-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(aws-s3-notifications): add s3 trust to key for SNS event subscription #16271
Comments
Thanks for raising this, @SamStephens. The challenge I see here is that the We can't work on a design for this immediately, but we welcome community contributions! If you are able, we encourage you to contribute a bug fix or new feature to the CDK. If you decide to contribute, please start an engineering discussion in this issue to ensure there is a commonly understood design before submitting code. This will minimize the number of review cycles and get your code merged faster. |
You should be able to mirror exactly what is done for an SQS queue, as I say; in this context an SQS queue and an SNS topic are equivalent. IQueue exposes encryption information. They deal with the import case by simply assuming there's no encryption in fromQueueArn. If you want to import a queue that has encryption, and you need that encryption information in your stack, you need to use fromQueueAttributes. Topics should be able to parallel all of these constructs; indeed, there's probably room for refactoring to reflect this commonality. Once the encryption information is available, the S3 notification logic for SQS encryption could then be applied for SNS notifications. Is it possible to contribute this as a potential design to implement, even though I may not end up being the one to implement it (I'm not sure I'll have the bandwidth)? |
This issue has not received any attention in 1 year. If you want to keep this issue open, please leave a comment below and auto-close will be canceled. |
Still relevant, commenting to avoid auto-close |
### Issue # (if applicable) Fixes #18387, #31012, #24848 Pre-requisite for #16271, #29511 ### Reason for this change For SNS topics with SSE enabled, the grants added by `grantPublish` are insufficient, since they don't include any KMS actions. The SNS docs discuss what's required to publish to an encrypted topic [here](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse) (`sns:Publish`, `kms:Decrypt`, `kms:GenerateKeyData*`). ### Description of changes I used the SQS queue implementation as a reference, since it's configured similarly, etc. * Have `Topic#grantPublish` grant `kms:Decrypt` + `kms:GenerateKeyData*` * This is least-privilege, but slightly inconsistent with SQS queues, which [need these same actions](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html) and use `grantEncryptDecrypt` (but I have no preference -- just let me know what's best) * Exposes `masterKey` as a property of `ITopic` so callers can access it after creation * Enables [this](#16271 (comment)), for example, and in general makes it consistent with SQS queues ### Describe any new or updated permissions being added (Discussed above) ### Description of how you validated changes * Unit/integration tests * `yarn integ test/aws-sns/test/integ.sns.js --update-on-failed` ### Checklist - [X] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [@aws-lambda-powertools/logger](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/logger#readme) ([source](https://github.com/aws-powertools/powertools-lambda-typescript)) | dependencies | minor | [`2.15.0` -> `2.16.0`](https://renovatebot.com/diffs/npm/@aws-lambda-powertools%2flogger/2.15.0/2.16.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-lambda-powertools/tracer](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/tracer#readme) ([source](https://github.com/aws-powertools/powertools-lambda-typescript)) | dependencies | minor | [`2.15.0` -> `2.16.0`](https://renovatebot.com/diffs/npm/@aws-lambda-powertools%2ftracer/2.15.0/2.16.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@fallobst22/cdk-cross-account-route53](https://github.com/SvenKirschbaum/cdk-cross-account-route53) | dependencies | patch | [`^0.0.55` -> `^0.0.56`](https://renovatebot.com/diffs/npm/@fallobst22%2fcdk-cross-account-route53/0.0.55/0.0.56) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@fontsource/roboto](https://fontsource.org/fonts/roboto) ([source](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/roboto)) | dependencies | patch | [`5.2.0` -> `5.2.5`](https://renovatebot.com/diffs/npm/@fontsource%2froboto/5.2.0/5.2.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/core](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/core)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fcore/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/error-logger](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/error-logger)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2ferror-logger/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-content-negotiation](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-content-negotiation)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-content-negotiation/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-error-handler](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-error-handler)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-error-handler/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-header-normalizer](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-header-normalizer)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-header-normalizer/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-json-body-parser](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-json-body-parser)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-json-body-parser/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-response-serializer](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-response-serializer)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-response-serializer/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/icons-material](https://mui.com/material-ui/material-icons/) ([source](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material)) | dependencies | patch | [`6.4.6` -> `6.4.7`](https://renovatebot.com/diffs/npm/@mui%2ficons-material/6.4.6/6.4.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/material](https://mui.com/material-ui/) ([source](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material)) | dependencies | patch | [`6.4.6` -> `6.4.7`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/6.4.6/6.4.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`22.13.8` -> `22.13.9`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.8/22.13.9) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | devDependencies | minor | [`8.25.0` -> `8.26.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.25.0/8.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | devDependencies | minor | [`8.25.0` -> `8.26.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.25.0/8.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk](https://github.com/aws/aws-cdk) ([source](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk)) | devDependencies | minor | [`2.1001.0` -> `2.1003.0`](https://renovatebot.com/diffs/npm/aws-cdk/2.1001.0/2.1003.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk-lib](https://github.com/aws/aws-cdk) ([source](https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib)) | dependencies | minor | [`2.181.1` -> `2.182.0`](https://renovatebot.com/diffs/npm/aws-cdk-lib/2.181.1/2.182.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/x-data-grid](https://mui.com/x/react-data-grid/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-data-grid)) | dependencies | patch | [`7.27.2` -> `7.27.3`](https://renovatebot.com/diffs/npm/@mui%2fx-data-grid/7.27.2/7.27.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`9.21.0` -> `9.22.0`](https://renovatebot.com/diffs/npm/eslint/9.21.0/9.22.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)) | dependencies | minor | [`7.2.0` -> `7.3.0`](https://renovatebot.com/diffs/npm/react-router/7.2.0/7.3.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | devDependencies | patch | [`6.2.0` -> `6.2.1`](https://renovatebot.com/diffs/npm/vite/6.2.0/6.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | dependencies | minor | [`7.2.0` -> `7.3.0`](https://renovatebot.com/diffs/npm/react-router-dom/7.2.0/7.3.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>aws-powertools/powertools-lambda-typescript (@​aws-lambda-powertools/logger)</summary> ### [`v2.16.0`](https://github.com/aws-powertools/powertools-lambda-typescript/blob/HEAD/CHANGELOG.md#2160-2025-03-07) [Compare Source](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.15.0...v2.16.0) ##### Bug Fixes - **batch:** clear message group references after request ([#​3674](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3674)) ([270115e](https://github.com/aws-powertools/powertools-lambda-typescript/commit/270115e288a552bdb32083f04f23530725a86243)) - **ci:** Update layer balance scripts ([#​3660](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3660)) ([aa14637](https://github.com/aws-powertools/powertools-lambda-typescript/commit/aa14637b0531b7a4a36d38158f684b68723c822e)) - **parser:** envelope sub-path exports regression ([#​3667](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3667)) ([beac102](https://github.com/aws-powertools/powertools-lambda-typescript/commit/beac1021107f4c117a561829b3b9ab1f404a4e14)) - **parser:** update S3 Event Schema ([#​3671](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3671)) ([c14c7b3](https://github.com/aws-powertools/powertools-lambda-typescript/commit/c14c7b3e7e1366379cd5062c91e09a62ddf7a42a)) ##### Features - **logger:** Enable log buffering feature ([#​3641](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3641)) ([8203016](https://github.com/aws-powertools/powertools-lambda-typescript/commit/82030167abe3797392b919db2b4a006ae47e0ef7)) - **logger:** flush buffer on uncaught error decorator ([#​3676](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3676)) ([28db2e3](https://github.com/aws-powertools/powertools-lambda-typescript/commit/28db2e3c34e5fe27cb894112bf5c248704b3d9ea)) - **logger:** Flush buffer on uncaught error in Middy middleware ([#​3690](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3690)) ([23eebe4](https://github.com/aws-powertools/powertools-lambda-typescript/commit/23eebe46bd4d07315545ecefa672d53d14ac9a72)) - **logger:** refresh sample rate calculation before each invocation ([#​3672](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3672)) ([8c8d6b2](https://github.com/aws-powertools/powertools-lambda-typescript/commit/8c8d6b2ea4ccd473f56b05913169cc5995765562)) - **validation:** add [@​validator](https://github.com/validator) decorator for JSON Schema validation ([#​3679](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3679)) ([ae6b7cf](https://github.com/aws-powertools/powertools-lambda-typescript/commit/ae6b7cf9dae3e1d233b9c51ca1e1dc04b26efa9a)) - **validation:** Add Middy.js middleware for JSON Schema validation ([#​3694](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3694)) ([443202b](https://github.com/aws-powertools/powertools-lambda-typescript/commit/443202bad2672ff26cc8237f417b8bf14bbd02d9)) - **validation:** implement validate function ([#​3662](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3662)) ([f55127b](https://github.com/aws-powertools/powertools-lambda-typescript/commit/f55127b7f894b5c673e739da06cbaabe12d0d1ca)) </details> <details> <summary>SvenKirschbaum/cdk-cross-account-route53 (@​fallobst22/cdk-cross-account-route53)</summary> ### [`v0.0.56`](https://github.com/SvenKirschbaum/cdk-cross-account-route53/releases/tag/v0.0.56) [Compare Source](https://github.com/SvenKirschbaum/cdk-cross-account-route53/compare/v0.0.55...v0.0.56) #### [0.0.56](https://github.com/SvenKirschbaum/cdk-cross-account-route53/compare/v0.0.55...v0.0.56) (2025-03-01) </details> <details> <summary>fontsource/font-files (@​fontsource/roboto)</summary> ### [`v5.2.5`](https://github.com/fontsource/font-files/compare/3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2...90f4206a30838317875479a13ee5046613af42f7) [Compare Source](https://github.com/fontsource/font-files/compare/3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2...90f4206a30838317875479a13ee5046613af42f7) ### [`v5.2.4`](https://github.com/fontsource/font-files/compare/6886f55dbb35b422167b8a076039102ece9ac364...3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2) [Compare Source](https://github.com/fontsource/font-files/compare/6886f55dbb35b422167b8a076039102ece9ac364...3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2) ### [`v5.2.1`](https://github.com/fontsource/font-files/compare/eea9ca3390a9f116f4454b1926b7ba927410bdba...6886f55dbb35b422167b8a076039102ece9ac364) [Compare Source](https://github.com/fontsource/font-files/compare/eea9ca3390a9f116f4454b1926b7ba927410bdba...6886f55dbb35b422167b8a076039102ece9ac364) </details> <details> <summary>middyjs/middy (@​middy/core)</summary> ### [`v6.1.5`](https://github.com/middyjs/middy/releases/tag/6.1.5) [Compare Source](https://github.com/middyjs/middy/compare/6.1.4...6.1.5) ##### What's Changed - fix(http-json-body-parser): allow "undefined" body if disableContentTypeError:true by [@​apalchys](https://github.com/apalchys) in [https://github.com/middyjs/middy/pull/1285](https://github.com/middyjs/middy/pull/1285) **Full Changelog**: https://github.com/middyjs/middy/compare/6.1.4...6.1.5 ### [`v6.1.4`](https://github.com/middyjs/middy/releases/tag/6.1.4) [Compare Source](https://github.com/middyjs/middy/compare/6.1.3...6.1.4) ##### What's Changed - chore: update test fixture by [@​iiroj](https://github.com/iiroj) in [https://github.com/middyjs/middy/pull/1279](https://github.com/middyjs/middy/pull/1279) - fix: support Web API ReadableStream when streamifyResponse:true by [@​apalchys](https://github.com/apalchys) in [https://github.com/middyjs/middy/pull/1280](https://github.com/middyjs/middy/pull/1280) - fix: make request.earlyResponse an optional field in TypeScript type definitions by [@​iiroj](https://github.com/iiroj) in [https://github.com/middyjs/middy/pull/1281](https://github.com/middyjs/middy/pull/1281) - docs: update default origin for http-cors documentation by [@​connorreitz](https://github.com/connorreitz) in [https://github.com/middyjs/middy/pull/1282](https://github.com/middyjs/middy/pull/1282) - chore: add missing input type supporting notFoundResponse in http-router by [@​andre2w](https://github.com/andre2w) in [https://github.com/middyjs/middy/pull/1283](https://github.com/middyjs/middy/pull/1283) ##### New Contributors - [@​apalchys](https://github.com/apalchys) made their first contribution in [https://github.com/middyjs/middy/pull/1280](https://github.com/middyjs/middy/pull/1280) - [@​andre2w](https://github.com/andre2w) made their first contribution in [https://github.com/middyjs/middy/pull/1283](https://github.com/middyjs/middy/pull/1283) **Full Changelog**: https://github.com/middyjs/middy/compare/6.1.3...6.1.4 </details> <details> <summary>mui/material-ui (@​mui/icons-material)</summary> ### [`v6.4.7`](https://github.com/mui/material-ui/compare/v6.4.6...63cd45d85d3daae5a83ad309b0656d90d822430b) [Compare Source](https://github.com/mui/material-ui/compare/v6.4.6...v6.4.7) </details> <details> <summary>mui/material-ui (@​mui/material)</summary> ### [`v6.4.7`](https://github.com/mui/material-ui/compare/v6.4.6...63cd45d85d3daae5a83ad309b0656d90d822430b) [Compare Source](https://github.com/mui/material-ui/compare/v6.4.6...v6.4.7) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v8.26.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8260-2025-03-03) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.25.0...v8.26.0) ##### 🚀 Features - **eslint-plugin:** \[unified-signatures] support ignoring overload signatures with different JSDoc comments ([#​10781](https://github.com/typescript-eslint/typescript-eslint/pull/10781)) - **eslint-plugin:** \[explicit-module-boundary-types] add an option to ignore overload implementations ([#​10889](https://github.com/typescript-eslint/typescript-eslint/pull/10889)) - **eslint-plugin:** \[no-unused-var] handle implicit exports in declaration files ([#​10714](https://github.com/typescript-eslint/typescript-eslint/pull/10714)) - support TypeScript 5.8 ([#​10903](https://github.com/typescript-eslint/typescript-eslint/pull/10903)) - **eslint-plugin:** \[no-unnecessary-type-parameters] special case tuples and parameter location arrays as single-use ([#​9536](https://github.com/typescript-eslint/typescript-eslint/pull/9536)) ##### 🩹 Fixes - **eslint-plugin:** \[no-unnecessary-type-assertion] handle unknown ([#​10875](https://github.com/typescript-eslint/typescript-eslint/pull/10875)) - **eslint-plugin:** \[no-invalid-void-type] report `accessor` properties with an invalid `void` type ([#​10864](https://github.com/typescript-eslint/typescript-eslint/pull/10864)) - **eslint-plugin:** \[unified-signatures] does not differentiate truly private methods ([#​10806](https://github.com/typescript-eslint/typescript-eslint/pull/10806)) ##### ❤️ Thank You - Andrea Simone Costa [@​jfet97](https://github.com/jfet97) - Dirk Luijk [@​dirkluijk](https://github.com/dirkluijk) - Ronen Amiel - YeonJuan [@​yeonjuan](https://github.com/yeonjuan) - Yukihiro Hasegawa [@​y-hsgw](https://github.com/y-hsgw) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v8.26.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8260-2025-03-03) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.25.0...v8.26.0) ##### 🚀 Features - support TypeScript 5.8 ([#​10903](https://github.com/typescript-eslint/typescript-eslint/pull/10903)) ##### ❤️ Thank You - Dirk Luijk [@​dirkluijk](https://github.com/dirkluijk) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>aws/aws-cdk-cli (aws-cdk)</summary> ### [`v2.1003.0`](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1003.0) [Compare Source](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1003.0) ### [`v2.1002.0`](https://github.com/aws/aws-cdk-cli/releases/tag/aws-cdk%40v2.1002.0) [Compare Source](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1002.0) #### [2.1002.0](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1002.0) (2025-03-03) ##### Features - **cli:** control library init version with a command-line parameter ([#​149](https://github.com/aws/aws-cdk-cli/issues/149)) ([f925551](https://github.com/aws/aws-cdk-cli/commit/f92555104c8bd54b0654999e5e5fb61ffceba1d2)) ##### Bug Fixes - **bootstrap:** add DeletionPolicy and UpdateReplacePolicy to FileAssetsBucketEncryptionKey ([#​100](https://github.com/aws/aws-cdk-cli/issues/100)) ([bd02059](https://github.com/aws/aws-cdk-cli/commit/bd0205937c82950538dd1a1524fa3b1753aacf4a)) - **cli:** `[object Object]` in error message when CcApiContextProviderPlugin `listResources` throws ([#​168](https://github.com/aws/aws-cdk-cli/issues/168)) ([c913ff1](https://github.com/aws/aws-cdk-cli/commit/c913ff1c5e4b5e94be14ce5c6329f959aca4dcb3)) - **cli:** change-set arn is not printed on `cdk deploy --no-execute` ([#​166](https://github.com/aws/aws-cdk-cli/issues/166)) ([bf33829](https://github.com/aws/aws-cdk-cli/commit/bf338292739835b5f9766982ccc8474caf69bcee)) - **cli:** notices for ranged alpha modules are not showing up correctly ([#​163](https://github.com/aws/aws-cdk-cli/issues/163)) ([b6faaba](https://github.com/aws/aws-cdk-cli/commit/b6faaba40bbb0f70c8415bebf5b6f7c6b460a09c)) </details> <details> <summary>aws/aws-cdk (aws-cdk-lib)</summary> ### [`v2.182.0`](https://github.com/aws/aws-cdk/releases/tag/v2.182.0) [Compare Source](https://github.com/aws/aws-cdk/compare/v2.181.1...v2.182.0) ##### Features - **assertions:** added getResourceId method to Template ([#​33521](https://github.com/aws/aws-cdk/issues/33521)) ([a96b0f1](https://github.com/aws/aws-cdk/commit/a96b0f1dca27b262fb2c72637ed9043830477c2c)) - **autoscaling:** add new `HealthChecks` for multiple health check types, including EBS and VPC_LATTICE types ([#​31286](https://github.com/aws/aws-cdk/issues/31286)) ([b3edd0d](https://github.com/aws/aws-cdk/commit/b3edd0da9d0f49070b94120051c48716a69102c3)), closes [#​31289](https://github.com/aws/aws-cdk/issues/31289) [/github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts#L233](https://github.com/aws//github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts/issues/L233) [/github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts#L2232-L2258](https://github.com/aws//github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts/issues/L2232-L2258) [/github.com/aws/aws-cdk/pull/31286#discussion_r1740763781](https://github.com/aws//github.com/aws/aws-cdk/pull/31286/issues/discussion_r1740763781) - **ecs:** encrypting managed storage ([#​33535](https://github.com/aws/aws-cdk/issues/33535)) ([07f0fe3](https://github.com/aws/aws-cdk/commit/07f0fe3a851cce328433ada9aac674ab9464b5ca)), closes [#​33380](https://github.com/aws/aws-cdk/issues/33380) - **inspector:** add minimal L2 interface for Inspector assessment template and fromCfnAssessmentTemplate() ([#​33614](https://github.com/aws/aws-cdk/issues/33614)) ([d51f70a](https://github.com/aws/aws-cdk/commit/d51f70ab40d237a3145d986e75c7ea2465afd6b4)) - **opensearchservice:** nodeoptions for domain ([#​32936](https://github.com/aws/aws-cdk/issues/32936)) ([1b6f0c3](https://github.com/aws/aws-cdk/commit/1b6f0c3d0eb4aedfc72c716ee18aa3ae4dbf16b8)), closes [#​32553](https://github.com/aws/aws-cdk/issues/32553) - **rds:** `DatabaseCluster` support `replicationSourceIdentifier` ([#​33471](https://github.com/aws/aws-cdk/issues/33471)) ([878ad54](https://github.com/aws/aws-cdk/commit/878ad546c2d4f330c777734a0c7919bd6ce46395)), closes [#​33280](https://github.com/aws/aws-cdk/issues/33280) - update L1 CloudFormation resource definitions ([#​33676](https://github.com/aws/aws-cdk/issues/33676)) ([92dba49](https://github.com/aws/aws-cdk/commit/92dba49571caec118001b9f13b82378bec2150f0)) - upgrade [@​aws-cdk/cloud-assembly-schema](https://github.com/aws-cdk/cloud-assembly-schema) to v40 ([#​33620](https://github.com/aws/aws-cdk/issues/33620)) ([127059e](https://github.com/aws/aws-cdk/commit/127059e890c78fcfaf11a97a961395b2ceb2a339)) ##### Bug Fixes - **apigateway:** move endpointConfiguration to RestApiBaseProps ([#​33514](https://github.com/aws/aws-cdk/issues/33514)) ([e07a89c](https://github.com/aws/aws-cdk/commit/e07a89ccb053fe22bcb96456c75304ac7a3c7670)), closes [#​33295](https://github.com/aws/aws-cdk/issues/33295) - **appsync:** appsync Event API integration assertion tests ([#​33572](https://github.com/aws/aws-cdk/issues/33572)) ([6f966a6](https://github.com/aws/aws-cdk/commit/6f966a6dcc010fe6af7999e7b5f97a447287aed3)) - **cloudwatch:** update regex expression that prevents CloudWatch:Mah:UnknownIdentifier warnings ([#​33591](https://github.com/aws/aws-cdk/issues/33591)) ([#​33592](https://github.com/aws/aws-cdk/issues/33592)) ([97744e7](https://github.com/aws/aws-cdk/commit/97744e746670bf067da40c8ff6a902a9c15b707e)) - **iam:** adding organization id pattern verification ([#​33555](https://github.com/aws/aws-cdk/issues/33555)) ([6df9bfe](https://github.com/aws/aws-cdk/commit/6df9bfe566a913c6c0538b2f380a83d06891a027)), closes [#​32756](https://github.com/aws/aws-cdk/issues/32756) - **lambda-nodejs:** do not require a frozen lockfile for bun ([#​32908](https://github.com/aws/aws-cdk/issues/32908)) ([a21190e](https://github.com/aws/aws-cdk/commit/a21190eb85bbc64820389ca5979a324932b9ab4b)), closes [#​32906](https://github.com/aws/aws-cdk/issues/32906) [#​32906](https://github.com/aws/aws-cdk/issues/32906) - **s3:** cannot deploy multiple replication source buckets (under feature flag) ([#​33360](https://github.com/aws/aws-cdk/issues/33360)) ([d580853](https://github.com/aws/aws-cdk/commit/d580853c546b4ee2d49afb52be75b4eb036bd6cd)), closes [#​33355](https://github.com/aws/aws-cdk/issues/33355) - **sns:** for SSE topics, add KMS permissions in grantPublish ([#​32794](https://github.com/aws/aws-cdk/issues/32794)) ([f1c0926](https://github.com/aws/aws-cdk/commit/f1c092634a391b0b7aed0f75626dd6d0ffd56564)), closes [#​18387](https://github.com/aws/aws-cdk/issues/18387) [#​31012](https://github.com/aws/aws-cdk/issues/31012) [#​24848](https://github.com/aws/aws-cdk/issues/24848) [#​16271](https://github.com/aws/aws-cdk/issues/16271) [#​29511](https://github.com/aws/aws-cdk/issues/29511) [/github.com/aws/aws-cdk/issues/16271#issuecomment-917221985](https://github.com/aws//github.com/aws/aws-cdk/issues/16271/issues/issuecomment-917221985) *** #### Alpha modules (2.182.0-alpha.0) ##### Features - **pipes-alpha:** support for customer-managed KMS keys to encrypt pipe data ([#​33546](https://github.com/aws/aws-cdk/issues/33546)) ([dd0d62f](https://github.com/aws/aws-cdk/commit/dd0d62f84da06e2cafbe7a8bac80899d86b6f153)), closes [#​31453](https://github.com/aws/aws-cdk/issues/31453) ##### Bug Fixes - **cognito-identitypool-alpha:** prevent stacks from not deploying correctly ([#​33609](https://github.com/aws/aws-cdk/issues/33609)) ([e220bc8](https://github.com/aws/aws-cdk/commit/e220bc8ca9b75bcbb4bb7447703f32737b47fc77)), closes [#​33510](https://github.com/aws/aws-cdk/issues/33510) - **eks-v2-alpha:** can't delete fargate cluster ([#​33573](https://github.com/aws/aws-cdk/issues/33573)) ([4ada313](https://github.com/aws/aws-cdk/commit/4ada3132e73e8f6b299548003d46e68f9db353a5)), closes [#​33347](https://github.com/aws/aws-cdk/issues/33347) - **scheduler-targets:** update kinesis firehose imports ([#​33615](https://github.com/aws/aws-cdk/issues/33615)) ([1df1a78](https://github.com/aws/aws-cdk/commit/1df1a784ca4d4ed8c724f0a8840137724fb46ca9)) </details> <details> <summary>mui/mui-x (@​mui/x-data-grid)</summary> ### [`v7.27.3`](https://github.com/mui/mui-x/releases/tag/v7.27.3) [Compare Source](https://github.com/mui/mui-x/compare/v7.27.2...v7.27.3) We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨: - 🐞 Bugfixes Team members who have contributed to this release: [@​arminmeh](https://github.com/arminmeh), [@​cherniavskii](https://github.com/cherniavskii), [@​LukasTy](https://github.com/LukasTy), [@​michelengelen](https://github.com/michelengelen). ##### Data Grid ##### `@mui/[email protected]` - \[DataGrid] Fix `aria-hidden` console error when scrollbar is dragged ([#​16834](https://github.com/mui/mui-x/issues/16834)) [@​arminmeh](https://github.com/arminmeh) - \[DataGrid] Fix scroll jump with dynamic row height ([#​16801](https://github.com/mui/mui-x/issues/16801)) [@​cherniavskii](https://github.com/cherniavskii) ##### `@mui/[email protected]` [](https://mui.com/r/x-pro-svg-link "Pro plan") Same changes as in `@mui/[email protected]`. ##### `@mui/[email protected]` [](https://mui.com/r/x-premium-svg-link "Premium plan") Same changes as in `@mui/[email protected]`. ##### Date and Time Pickers ##### `@mui/[email protected]` - \[fields] Fix Fields aria relationship with `helperText` ([#​16828](https://github.com/mui/mui-x/issues/16828)) [@​LukasTy](https://github.com/LukasTy) ##### `@mui/[email protected]` [](https://mui.com/r/x-pro-svg-link "Pro plan") Same changes as in `@mui/[email protected]`. ##### Core - \[infra] Update contributor acknowledgment wording ([#​16753](https://github.com/mui/mui-x/issues/16753)) [@​michelengelen](https://github.com/michelengelen) </details> <details> <summary>eslint/eslint (eslint)</summary> ### [`v9.22.0`](https://github.com/eslint/eslint/compare/v9.21.0...60a78e7964fbb79c0e55e86845a87e0eb22d4de3) [Compare Source](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0) </details> <details> <summary>remix-run/react-router (react-router)</summary> ### [`v7.3.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#730) [Compare Source](https://github.com/remix-run/react-router/compare/[email protected]@7.3.0) ##### Minor Changes - Add `fetcherKey` as a parameter to `patchRoutesOnNavigation` ([#​13061](https://github.com/remix-run/react-router/pull/13061)) - In framework mode, Lazy Route Discovery will now detect manifest version mismatches after a new deploy - On navigations to undiscovered routes, this mismatch will trigger a document reload of the destination path - On `fetcher` calls to undiscovered routes, this mismatch will trigger a document reload of the current path ##### Patch Changes - Skip resource route flow in dev server in SPA mode ([#​13113](https://github.com/remix-run/react-router/pull/13113)) - Support middleware on routes (unstable) ([#​12941](https://github.com/remix-run/react-router/pull/12941)) Middleware is implemented behind a `future.unstable_middleware` flag. To enable, you must enable the flag and the types in your `react-router-config.ts` file: ```ts import type { Config } from "@​react-router/dev/config"; import type { Future } from "react-router"; declare module "react-router" { interface Future { unstable_middleware: true; // 👈 Enable middleware types } } export default { future: { unstable_middleware: true, // 👈 Enable middleware }, } satisfies Config; ``` ⚠️ Middleware is unstable and should not be adopted in production. There is at least one known de-optimization in route module loading for `clientMiddleware` that we will be addressing this before a stable release. ⚠️ Enabling middleware contains a breaking change to the `context` parameter passed to your `loader`/`action` functions - see below for more information. Once enabled, routes can define an array of middleware functions that will run sequentially before route handlers run. These functions accept the same parameters as `loader`/`action` plus an additional `next` parameter to run the remaining data pipeline. This allows middlewares to perform logic before and after handlers execute. ```tsx // Framework mode export const unstable_middleware = [serverLogger, serverAuth]; // server export const unstable_clientMiddleware = [clientLogger]; // client // Library mode const routes = [ { path: "/", // Middlewares are client-side for library mode SPA's unstable_middleware: [clientLogger, clientAuth], loader: rootLoader, Component: Root, }, ]; ``` Here's a simple example of a client-side logging middleware that can be placed on the root route: ```tsx const clientLogger: Route.unstable_ClientMiddlewareFunction = async ( { request }, next ) => { let start = performance.now(); // Run the remaining middlewares and all route loaders await next(); let duration = performance.now() - start; console.log(`Navigated to ${request.url} (${duration}ms)`); }; ``` Note that in the above example, the `next`/`middleware` functions don't return anything. This is by design as on the client there is no "response" to send over the network like there would be for middlewares running on the server. The data is all handled behind the scenes by the stateful `router`. For a server-side middleware, the `next` function will return the HTTP `Response` that React Router will be sending across the wire, thus giving you a chance to make changes as needed. You may throw a new response to short circuit and respond immediately, or you may return a new or altered response to override the default returned by `next()`. ```tsx const serverLogger: Route.unstable_MiddlewareFunction = async ( { request, params, context }, next ) => { let start = performance.now(); // 👇 Grab the response here let res = await next(); let duration = performance.now() - start; console.log(`Navigated to ${request.url} (${duration}ms)`); // 👇 And return it here (optional if you don't modify the response) return res; }; ``` You can throw a `redirect` from a middleware to short circuit any remaining processing: ```tsx import { sessionContext } from "../context"; const serverAuth: Route.unstable_MiddlewareFunction = ( { request, params, context }, next ) => { let session = context.get(sessionContext); let user = session.get("user"); if (!user) { session.set("returnTo", request.url); throw redirect("/login", 302); } }; ``` *Note that in cases like this where you don't need to do any post-processing you don't need to call the `next` function or return a `Response`.* Here's another example of using a server middleware to detect 404s and check the CMS for a redirect: ```tsx const redirects: Route.unstable_MiddlewareFunction = async ({ request, next, }) => { // attempt to handle the request let res = await next(); // if it's a 404, check the CMS for a redirect, do it last // because it's expensive if (res.status === 404) { let cmsRedirect = await checkCMSRedirects(request.url); if (cmsRedirect) { throw redirect(cmsRedirect, 302); } } return res; }; ``` **`context` parameter** When middleware is enabled, your application will use a different type of `context` parameter in your loaders and actions to provide better type safety. Instead of `AppLoadContext`, `context` will now be an instance of `ContextProvider` that you can use with type-safe contexts (similar to `React.createContext`): ```ts import { unstable_createContext } from "react-router"; import { Route } from "./+types/root"; import type { Session } from "./sessions.server"; import { getSession } from "./sessions.server"; let sessionContext = unstable_createContext<Session>(); const sessionMiddleware: Route.unstable_MiddlewareFunction = ({ context, request, }) => { let session = await getSession(request); context.set(sessionContext, session); // ^ must be of type Session }; // ... then in some downstream middleware const loggerMiddleware: Route.unstable_MiddlewareFunction = ({ context, request, }) => { let session = context.get(sessionContext); // ^ typeof Session console.log(session.get("userId"), request.method, request.url); }; // ... or some downstream loader export function loader({ context }: Route.LoaderArgs) { let session = context.get(sessionContext); let profile = await getProfile(session.get("userId")); return { profile }; } ``` If you are using a custom server with a `getLoadContext` function, the return value for initial context values passed from the server adapter layer is no longer an object and should now return an `unstable_InitialContext` (`Map<RouterContext, unknown>`): ```ts let adapterContext = unstable_createContext<MyAdapterContext>(); function getLoadContext(req, res): unstable_InitialContext { let map = new Map(); map.set(adapterContext, getAdapterContext(req)); return map; } ``` - Fix types for loaderData and actionData that contained `Record`s ([#​13139](https://github.com/remix-run/react-router/pull/13139)) UNSTABLE(BREAKING): `unstable_SerializesTo` added a way to register custom serialization types in Single Fetch for other library and framework authors like Apollo. It was implemented with branded type whose branded property that was made optional so that casting arbitrary values was easy: ```ts // without the brand being marked as optional let x1 = 42 as unknown as unstable_SerializesTo<number>; // ^^^^^^^^^^ // with the brand being marked as optional let x2 = 42 as unstable_SerializesTo<number>; ``` However, this broke type inference in `loaderData` and `actionData` for any `Record` types as those would now (incorrectly) match `unstable_SerializesTo`. This affected all users, not just those that depended on `unstable_SerializesTo`. To fix this, the branded property of `unstable_SerializesTo` is marked as required instead of optional. For library and framework authors using `unstable_SerializesTo`, you may need to add `as unknown` casts before casting to `unstable_SerializesTo`. - \[REMOVE] Remove middleware depth logic and always call middlware for all matches ([#​13172](https://github.com/remix-run/react-router/pull/13172)) - Fix single fetch `_root.data` requests when a `basename` is used ([#​12898](https://github.com/remix-run/react-router/pull/12898)) - Add `context` support to client side data routers (unstable) ([#​12941](https://github.com/remix-run/react-router/pull/12941)) Your application `loader` and `action` functions on the client will now receive a `context` parameter. This is an instance of `unstable_RouterContextProvider` that you use with type-safe contexts (similar to `React.createContext`) and is most useful with the corresponding `middleware`/`clientMiddleware` API's: ```ts import { unstable_createContext } from "react-router"; type User = { /*...*/ }; let userContext = unstable_createContext<User>(); function sessionMiddleware({ context }) { let user = await getUser(); context.set(userContext, user); } // ... then in some downstream loader function loader({ context }) { let user = context.get(userContext); let profile = await getProfile(user.id); return { profile }; } ``` Similar to server-side requests, a fresh `context` will be created per navigation (or `fetcher` call). If you have initial data you'd like to populate in the context for every request, you can provide an `unstable_getContext` function at the root of your app: - Library mode - `createBrowserRouter(routes, { unstable_getContext })` - Framework mode - `<HydratedRouter unstable_getContext>` This function should return an value of type `unstable_InitialContext` which is a `Map<unstable_RouterContext, unknown>` of context's and initial values: ```ts const loggerContext = unstable_createContext<(...args: unknown[]) => void>(); function logger(...args: unknown[]) { console.log(new Date.toISOString(), ...args); } function unstable_getContext() { let map = new Map(); map.set(loggerContext, logger); return map; } ``` </details> <details> <summary>vitejs/vite (vite)</summary> ### [`v6.2.1`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small621-2025-03-07-small) [Compare Source](https://github.com/vitejs/vite/compare/v6.2.0...v6.2.1) - refactor: remove `isBuild` check from preAliasPlugin ([#​19587](https://github.com/vitejs/vite/issues/19587)) ([c9e086d](https://github.com/vitejs/vite/commit/c9e086d35ac35ee1c6d85d48369e8a67a2ba6bfe)), closes [#​19587](https://github.com/vitejs/vite/issues/19587) - refactor: restore endsWith usage ([#​19554](https://github.com/vitejs/vite/issues/19554)) ([6113a96](https://github.com/vitejs/vite/commit/6113a9670cc9b7d29fe0bffe033f7823e36ded00)), closes [#​19554](https://github.com/vitejs/vite/issues/19554) - refactor: use `applyToEnvironment` in internal plugins ([#​19588](https://github.com/vitejs/vite/issues/19588)) ([f678442](https://github.com/vitejs/vite/commit/f678442d5701a00648a745956f9d884247e4e710)), closes [#​19588](https://github.com/vitejs/vite/issues/19588) - fix(css): stabilize css module hashes with lightningcss in dev mode ([#​19481](https://github.com/vitejs/vite/issues/19481)) ([92125b4](https://github.com/vitejs/vite/commit/92125b41e4caa3e862bf5fd9b1941546f25d9bf2)), closes [#​19481](https://github.com/vitejs/vite/issues/19481) - fix(deps): update all non-major dependencies ([#​19555](https://github.com/vitejs/vite/issues/19555)) ([f612e0f](https://github.com/vitejs/vite/commit/f612e0fdf6810317b61fcca1ded125755f261d78)), closes [#​19555](https://github.com/vitejs/vite/issues/19555) - fix(reporter): fix incorrect bundle size calculation with non-ASCII characters ([#​19561](https://github.com/vitejs/vite/issues/19561)) ([437c0ed](https://github.com/vitejs/vite/commit/437c0ed8baa6739bbe944779b9e7515f9035046a)), closes [#​19561](https://github.com/vitejs/vite/issues/19561) - fix(sourcemap): combine sourcemaps with multiple sources without matched source ([#​18971](https://github.com/vitejs/vite/issues/18971)) ([e3f6ae1](https://github.com/vitejs/vite/commit/e3f6ae14f7a93118d7341de7379967f815725c4b)), closes [#​18971](https://github.com/vitejs/vite/issues/18971) - fix(ssr): named export should overwrite export all ([#​19534](https://github.com/vitejs/vite/issues/19534)) ([2fd2fc1](https://github.com/vitejs/vite/commit/2fd2fc110738622651d361488767734cc23c34dd)), closes [#​19534](https://github.com/vitejs/vite/issues/19534) - feat: add `*?url&no-inline` type and warning for `.json?inline` / `.json?no-inline` ([#​19566](https://github.com/vitejs/vite/issues/19566)) ([c0d3667](https://github.com/vitejs/vite/commit/c0d36677cd305e8fa89153ed6305f0e0df43d289)), closes [#​19566](https://github.com/vitejs/vite/issues/19566) - test: add glob import test case ([#​19516](https://github.com/vitejs/vite/issues/19516)) ([aa1d807](https://github.com/vitejs/vite/commit/aa1d8075cc7ce7fbba62fea9e37ccb9b304fc039)), closes [#​19516](https://github.com/vitejs/vite/issues/19516) - test: convert config playground to unit tests ([#​19568](https://github.com/vitejs/vite/issues/19568)) ([c0e68da](https://github.com/vitejs/vite/commit/c0e68da4774f3487e9ba0c4d4d2c5e76bdc890ea)), closes [#​19568](https://github.com/vitejs/vite/issues/19568) - test: convert resolve-config playground to unit tests ([#​19567](https:/ </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 12pm on saturday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/SvenKirschbaum/aws-utils).
This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | | | | | [@aws-lambda-powertools/logger](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/logger#readme) ([source](https://github.com/aws-powertools/powertools-lambda-typescript)) | dependencies | minor | [`2.15.0` -> `2.16.0`](https://renovatebot.com/diffs/npm/@aws-lambda-powertools%2flogger/2.15.0/2.16.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-lambda-powertools/tracer](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/tracer#readme) ([source](https://github.com/aws-powertools/powertools-lambda-typescript)) | dependencies | minor | [`2.15.0` -> `2.16.0`](https://renovatebot.com/diffs/npm/@aws-lambda-powertools%2ftracer/2.15.0/2.16.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@fallobst22/cdk-cross-account-route53](https://github.com/SvenKirschbaum/cdk-cross-account-route53) | dependencies | patch | [`0.0.55` -> `0.0.56`](https://renovatebot.com/diffs/npm/@fallobst22%2fcdk-cross-account-route53/0.0.55/0.0.56) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@fontsource/roboto](https://fontsource.org/fonts/roboto) ([source](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/roboto)) | dependencies | patch | [`5.2.0` -> `5.2.5`](https://renovatebot.com/diffs/npm/@fontsource%2froboto/5.2.0/5.2.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/core](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/core)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fcore/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/error-logger](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/error-logger)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2ferror-logger/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-content-negotiation](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-content-negotiation)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-content-negotiation/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-error-handler](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-error-handler)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-error-handler/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-header-normalizer](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-header-normalizer)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-header-normalizer/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-json-body-parser](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-json-body-parser)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-json-body-parser/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/http-response-serializer](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/http-response-serializer)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fhttp-response-serializer/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@middy/validator](https://middy.js.org) ([source](https://github.com/middyjs/middy/tree/HEAD/packages/validator)) | dependencies | patch | [`6.1.3` -> `6.1.5`](https://renovatebot.com/diffs/npm/@middy%2fvalidator/6.1.3/6.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/icons-material](https://mui.com/material-ui/material-icons/) ([source](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material)) | dependencies | patch | [`6.4.6` -> `6.4.7`](https://renovatebot.com/diffs/npm/@mui%2ficons-material/6.4.6/6.4.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/material](https://mui.com/material-ui/) ([source](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material)) | dependencies | patch | [`6.4.6` -> `6.4.7`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/6.4.6/6.4.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/x-date-pickers](https://mui.com/x/react-date-pickers/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-date-pickers)) | dependencies | patch | [`7.27.1` -> `7.27.3`](https://renovatebot.com/diffs/npm/@mui%2fx-date-pickers/7.27.1/7.27.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@reduxjs/toolkit](https://redux-toolkit.js.org) ([source](https://github.com/reduxjs/redux-toolkit)) | dependencies | patch | [`2.6.0` -> `2.6.1`](https://renovatebot.com/diffs/npm/@reduxjs%2ftoolkit/2.6.0/2.6.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`22.13.8` -> `22.13.9`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.8/22.13.9) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | devDependencies | minor | [`8.25.0` -> `8.26.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.25.0/8.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | devDependencies | minor | [`8.25.0` -> `8.26.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.25.0/8.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk](https://github.com/aws/aws-cdk) ([source](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk)) | devDependencies | minor | [`2.1001.0` -> `2.1003.0`](https://renovatebot.com/diffs/npm/aws-cdk/2.1001.0/2.1003.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk-lib](https://github.com/aws/aws-cdk) ([source](https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib)) | dependencies | minor | [`2.181.1` -> `2.182.0`](https://renovatebot.com/diffs/npm/aws-cdk-lib/2.181.1/2.182.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [axios](https://axios-http.com) ([source](https://github.com/axios/axios)) | dependencies | patch | [`1.8.1` -> `1.8.2`](https://renovatebot.com/diffs/npm/axios/1.8.1/1.8.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)) | dependencies | minor | [`7.2.0` -> `7.3.0`](https://renovatebot.com/diffs/npm/react-router/7.2.0/7.3.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | dependencies | minor | [`7.2.0` -> `7.3.0`](https://renovatebot.com/diffs/npm/react-router-dom/7.2.0/7.3.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | devDependencies | patch | [`6.2.0` -> `6.2.1`](https://renovatebot.com/diffs/npm/vite/6.2.0/6.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>aws-powertools/powertools-lambda-typescript (@​aws-lambda-powertools/logger)</summary> ### [`v2.16.0`](https://github.com/aws-powertools/powertools-lambda-typescript/blob/HEAD/CHANGELOG.md#2160-2025-03-07) [Compare Source](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.15.0...v2.16.0) ##### Bug Fixes - **batch:** clear message group references after request ([#​3674](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3674)) ([270115e](https://github.com/aws-powertools/powertools-lambda-typescript/commit/270115e288a552bdb32083f04f23530725a86243)) - **ci:** Update layer balance scripts ([#​3660](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3660)) ([aa14637](https://github.com/aws-powertools/powertools-lambda-typescript/commit/aa14637b0531b7a4a36d38158f684b68723c822e)) - **parser:** envelope sub-path exports regression ([#​3667](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3667)) ([beac102](https://github.com/aws-powertools/powertools-lambda-typescript/commit/beac1021107f4c117a561829b3b9ab1f404a4e14)) - **parser:** update S3 Event Schema ([#​3671](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3671)) ([c14c7b3](https://github.com/aws-powertools/powertools-lambda-typescript/commit/c14c7b3e7e1366379cd5062c91e09a62ddf7a42a)) ##### Features - **logger:** Enable log buffering feature ([#​3641](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3641)) ([8203016](https://github.com/aws-powertools/powertools-lambda-typescript/commit/82030167abe3797392b919db2b4a006ae47e0ef7)) - **logger:** flush buffer on uncaught error decorator ([#​3676](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3676)) ([28db2e3](https://github.com/aws-powertools/powertools-lambda-typescript/commit/28db2e3c34e5fe27cb894112bf5c248704b3d9ea)) - **logger:** Flush buffer on uncaught error in Middy middleware ([#​3690](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3690)) ([23eebe4](https://github.com/aws-powertools/powertools-lambda-typescript/commit/23eebe46bd4d07315545ecefa672d53d14ac9a72)) - **logger:** refresh sample rate calculation before each invocation ([#​3672](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3672)) ([8c8d6b2](https://github.com/aws-powertools/powertools-lambda-typescript/commit/8c8d6b2ea4ccd473f56b05913169cc5995765562)) - **validation:** add [@​validator](https://github.com/validator) decorator for JSON Schema validation ([#​3679](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3679)) ([ae6b7cf](https://github.com/aws-powertools/powertools-lambda-typescript/commit/ae6b7cf9dae3e1d233b9c51ca1e1dc04b26efa9a)) - **validation:** Add Middy.js middleware for JSON Schema validation ([#​3694](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3694)) ([443202b](https://github.com/aws-powertools/powertools-lambda-typescript/commit/443202bad2672ff26cc8237f417b8bf14bbd02d9)) - **validation:** implement validate function ([#​3662](https://github.com/aws-powertools/powertools-lambda-typescript/issues/3662)) ([f55127b](https://github.com/aws-powertools/powertools-lambda-typescript/commit/f55127b7f894b5c673e739da06cbaabe12d0d1ca)) </details> <details> <summary>SvenKirschbaum/cdk-cross-account-route53 (@​fallobst22/cdk-cross-account-route53)</summary> ### [`v0.0.56`](https://github.com/SvenKirschbaum/cdk-cross-account-route53/releases/tag/v0.0.56) [Compare Source](https://github.com/SvenKirschbaum/cdk-cross-account-route53/compare/v0.0.55...v0.0.56) #### [0.0.56](https://github.com/SvenKirschbaum/cdk-cross-account-route53/compare/v0.0.55...v0.0.56) (2025-03-01) </details> <details> <summary>fontsource/font-files (@​fontsource/roboto)</summary> ### [`v5.2.5`](https://github.com/fontsource/font-files/compare/3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2...90f4206a30838317875479a13ee5046613af42f7) [Compare Source](https://github.com/fontsource/font-files/compare/3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2...90f4206a30838317875479a13ee5046613af42f7) ### [`v5.2.4`](https://github.com/fontsource/font-files/compare/6886f55dbb35b422167b8a076039102ece9ac364...3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2) [Compare Source](https://github.com/fontsource/font-files/compare/6886f55dbb35b422167b8a076039102ece9ac364...3b86ba2d642841b79118fda6d4cf7d1f2a0eafb2) ### [`v5.2.1`](https://github.com/fontsource/font-files/compare/eea9ca3390a9f116f4454b1926b7ba927410bdba...6886f55dbb35b422167b8a076039102ece9ac364) [Compare Source](https://github.com/fontsource/font-files/compare/eea9ca3390a9f116f4454b1926b7ba927410bdba...6886f55dbb35b422167b8a076039102ece9ac364) </details> <details> <summary>middyjs/middy (@​middy/core)</summary> ### [`v6.1.5`](https://github.com/middyjs/middy/releases/tag/6.1.5) [Compare Source](https://github.com/middyjs/middy/compare/6.1.4...6.1.5) ##### What's Changed - fix(http-json-body-parser): allow "undefined" body if disableContentTypeError:true by [@​apalchys](https://github.com/apalchys) in [https://github.com/middyjs/middy/pull/1285](https://github.com/middyjs/middy/pull/1285) **Full Changelog**: https://github.com/middyjs/middy/compare/6.1.4...6.1.5 ### [`v6.1.4`](https://github.com/middyjs/middy/releases/tag/6.1.4) [Compare Source](https://github.com/middyjs/middy/compare/6.1.3...6.1.4) ##### What's Changed - chore: update test fixture by [@​iiroj](https://github.com/iiroj) in [https://github.com/middyjs/middy/pull/1279](https://github.com/middyjs/middy/pull/1279) - fix: support Web API ReadableStream when streamifyResponse:true by [@​apalchys](https://github.com/apalchys) in [https://github.com/middyjs/middy/pull/1280](https://github.com/middyjs/middy/pull/1280) - fix: make request.earlyResponse an optional field in TypeScript type definitions by [@​iiroj](https://github.com/iiroj) in [https://github.com/middyjs/middy/pull/1281](https://github.com/middyjs/middy/pull/1281) - docs: update default origin for http-cors documentation by [@​connorreitz](https://github.com/connorreitz) in [https://github.com/middyjs/middy/pull/1282](https://github.com/middyjs/middy/pull/1282) - chore: add missing input type supporting notFoundResponse in http-router by [@​andre2w](https://github.com/andre2w) in [https://github.com/middyjs/middy/pull/1283](https://github.com/middyjs/middy/pull/1283) ##### New Contributors - [@​apalchys](https://github.com/apalchys) made their first contribution in [https://github.com/middyjs/middy/pull/1280](https://github.com/middyjs/middy/pull/1280) - [@​andre2w](https://github.com/andre2w) made their first contribution in [https://github.com/middyjs/middy/pull/1283](https://github.com/middyjs/middy/pull/1283) **Full Changelog**: https://github.com/middyjs/middy/compare/6.1.3...6.1.4 </details> <details> <summary>mui/material-ui (@​mui/icons-material)</summary> ### [`v6.4.7`](https://github.com/mui/material-ui/compare/v6.4.6...63cd45d85d3daae5a83ad309b0656d90d822430b) [Compare Source](https://github.com/mui/material-ui/compare/v6.4.6...v6.4.7) </details> <details> <summary>mui/material-ui (@​mui/material)</summary> ### [`v6.4.7`](https://github.com/mui/material-ui/compare/v6.4.6...63cd45d85d3daae5a83ad309b0656d90d822430b) [Compare Source](https://github.com/mui/material-ui/compare/v6.4.6...v6.4.7) </details> <details> <summary>mui/mui-x (@​mui/x-date-pickers)</summary> ### [`v7.27.3`](https://github.com/mui/mui-x/releases/tag/v7.27.3) [Compare Source](https://github.com/mui/mui-x/compare/v7.27.1...v7.27.3) We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨: - 🐞 Bugfixes Team members who have contributed to this release: [@​arminmeh](https://github.com/arminmeh), [@​cherniavskii](https://github.com/cherniavskii), [@​LukasTy](https://github.com/LukasTy), [@​michelengelen](https://github.com/michelengelen). ##### Data Grid ##### `@mui/[email protected]` - \[DataGrid] Fix `aria-hidden` console error when scrollbar is dragged ([#​16834](https://github.com/mui/mui-x/issues/16834)) [@​arminmeh](https://github.com/arminmeh) - \[DataGrid] Fix scroll jump with dynamic row height ([#​16801](https://github.com/mui/mui-x/issues/16801)) [@​cherniavskii](https://github.com/cherniavskii) ##### `@mui/[email protected]` [](https://mui.com/r/x-pro-svg-link "Pro plan") Same changes as in `@mui/[email protected]`. ##### `@mui/[email protected]` [](https://mui.com/r/x-premium-svg-link "Premium plan") Same changes as in `@mui/[email protected]`. ##### Date and Time Pickers ##### `@mui/[email protected]` - \[fields] Fix Fields aria relationship with `helperText` ([#​16828](https://github.com/mui/mui-x/issues/16828)) [@​LukasTy](https://github.com/LukasTy) ##### `@mui/[email protected]` [](https://mui.com/r/x-pro-svg-link "Pro plan") Same changes as in `@mui/[email protected]`. ##### Core - \[infra] Update contributor acknowledgment wording ([#​16753](https://github.com/mui/mui-x/issues/16753)) [@​michelengelen](https://github.com/michelengelen) </details> <details> <summary>reduxjs/redux-toolkit (@​reduxjs/toolkit)</summary> ### [`v2.6.1`](https://github.com/reduxjs/redux-toolkit/compare/v2.6.0...v2.6.1) [Compare Source](https://github.com/reduxjs/redux-toolkit/compare/v2.6.0...v2.6.1) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v8.26.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8260-2025-03-03) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.25.0...v8.26.0) ##### 🚀 Features - **eslint-plugin:** \[unified-signatures] support ignoring overload signatures with different JSDoc comments ([#​10781](https://github.com/typescript-eslint/typescript-eslint/pull/10781)) - **eslint-plugin:** \[explicit-module-boundary-types] add an option to ignore overload implementations ([#​10889](https://github.com/typescript-eslint/typescript-eslint/pull/10889)) - **eslint-plugin:** \[no-unused-var] handle implicit exports in declaration files ([#​10714](https://github.com/typescript-eslint/typescript-eslint/pull/10714)) - support TypeScript 5.8 ([#​10903](https://github.com/typescript-eslint/typescript-eslint/pull/10903)) - **eslint-plugin:** \[no-unnecessary-type-parameters] special case tuples and parameter location arrays as single-use ([#​9536](https://github.com/typescript-eslint/typescript-eslint/pull/9536)) ##### 🩹 Fixes - **eslint-plugin:** \[no-unnecessary-type-assertion] handle unknown ([#​10875](https://github.com/typescript-eslint/typescript-eslint/pull/10875)) - **eslint-plugin:** \[no-invalid-void-type] report `accessor` properties with an invalid `void` type ([#​10864](https://github.com/typescript-eslint/typescript-eslint/pull/10864)) - **eslint-plugin:** \[unified-signatures] does not differentiate truly private methods ([#​10806](https://github.com/typescript-eslint/typescript-eslint/pull/10806)) ##### ❤️ Thank You - Andrea Simone Costa [@​jfet97](https://github.com/jfet97) - Dirk Luijk [@​dirkluijk](https://github.com/dirkluijk) - Ronen Amiel - YeonJuan [@​yeonjuan](https://github.com/yeonjuan) - Yukihiro Hasegawa [@​y-hsgw](https://github.com/y-hsgw) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v8.26.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8260-2025-03-03) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.25.0...v8.26.0) ##### 🚀 Features - support TypeScript 5.8 ([#​10903](https://github.com/typescript-eslint/typescript-eslint/pull/10903)) ##### ❤️ Thank You - Dirk Luijk [@​dirkluijk](https://github.com/dirkluijk) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>aws/aws-cdk-cli (aws-cdk)</summary> ### [`v2.1003.0`](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1003.0) [Compare Source](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1003.0) ### [`v2.1002.0`](https://github.com/aws/aws-cdk-cli/releases/tag/aws-cdk%40v2.1002.0) [Compare Source](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1002.0) #### [2.1002.0](https://github.com/aws/aws-cdk-cli/compare/[email protected]@v2.1002.0) (2025-03-03) ##### Features - **cli:** control library init version with a command-line parameter ([#​149](https://github.com/aws/aws-cdk-cli/issues/149)) ([f925551](https://github.com/aws/aws-cdk-cli/commit/f92555104c8bd54b0654999e5e5fb61ffceba1d2)) ##### Bug Fixes - **bootstrap:** add DeletionPolicy and UpdateReplacePolicy to FileAssetsBucketEncryptionKey ([#​100](https://github.com/aws/aws-cdk-cli/issues/100)) ([bd02059](https://github.com/aws/aws-cdk-cli/commit/bd0205937c82950538dd1a1524fa3b1753aacf4a)) - **cli:** `[object Object]` in error message when CcApiContextProviderPlugin `listResources` throws ([#​168](https://github.com/aws/aws-cdk-cli/issues/168)) ([c913ff1](https://github.com/aws/aws-cdk-cli/commit/c913ff1c5e4b5e94be14ce5c6329f959aca4dcb3)) - **cli:** change-set arn is not printed on `cdk deploy --no-execute` ([#​166](https://github.com/aws/aws-cdk-cli/issues/166)) ([bf33829](https://github.com/aws/aws-cdk-cli/commit/bf338292739835b5f9766982ccc8474caf69bcee)) - **cli:** notices for ranged alpha modules are not showing up correctly ([#​163](https://github.com/aws/aws-cdk-cli/issues/163)) ([b6faaba](https://github.com/aws/aws-cdk-cli/commit/b6faaba40bbb0f70c8415bebf5b6f7c6b460a09c)) </details> <details> <summary>aws/aws-cdk (aws-cdk-lib)</summary> ### [`v2.182.0`](https://github.com/aws/aws-cdk/releases/tag/v2.182.0) [Compare Source](https://github.com/aws/aws-cdk/compare/v2.181.1...v2.182.0) ##### Features - **assertions:** added getResourceId method to Template ([#​33521](https://github.com/aws/aws-cdk/issues/33521)) ([a96b0f1](https://github.com/aws/aws-cdk/commit/a96b0f1dca27b262fb2c72637ed9043830477c2c)) - **autoscaling:** add new `HealthChecks` for multiple health check types, including EBS and VPC_LATTICE types ([#​31286](https://github.com/aws/aws-cdk/issues/31286)) ([b3edd0d](https://github.com/aws/aws-cdk/commit/b3edd0da9d0f49070b94120051c48716a69102c3)), closes [#​31289](https://github.com/aws/aws-cdk/issues/31289) [/github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts#L233](https://github.com/aws//github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts/issues/L233) [/github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts#L2232-L2258](https://github.com/aws//github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-autoscaling/lib/auto-scaling-group.ts/issues/L2232-L2258) [/github.com/aws/aws-cdk/pull/31286#discussion_r1740763781](https://github.com/aws//github.com/aws/aws-cdk/pull/31286/issues/discussion_r1740763781) - **ecs:** encrypting managed storage ([#​33535](https://github.com/aws/aws-cdk/issues/33535)) ([07f0fe3](https://github.com/aws/aws-cdk/commit/07f0fe3a851cce328433ada9aac674ab9464b5ca)), closes [#​33380](https://github.com/aws/aws-cdk/issues/33380) - **inspector:** add minimal L2 interface for Inspector assessment template and fromCfnAssessmentTemplate() ([#​33614](https://github.com/aws/aws-cdk/issues/33614)) ([d51f70a](https://github.com/aws/aws-cdk/commit/d51f70ab40d237a3145d986e75c7ea2465afd6b4)) - **opensearchservice:** nodeoptions for domain ([#​32936](https://github.com/aws/aws-cdk/issues/32936)) ([1b6f0c3](https://github.com/aws/aws-cdk/commit/1b6f0c3d0eb4aedfc72c716ee18aa3ae4dbf16b8)), closes [#​32553](https://github.com/aws/aws-cdk/issues/32553) - **rds:** `DatabaseCluster` support `replicationSourceIdentifier` ([#​33471](https://github.com/aws/aws-cdk/issues/33471)) ([878ad54](https://github.com/aws/aws-cdk/commit/878ad546c2d4f330c777734a0c7919bd6ce46395)), closes [#​33280](https://github.com/aws/aws-cdk/issues/33280) - update L1 CloudFormation resource definitions ([#​33676](https://github.com/aws/aws-cdk/issues/33676)) ([92dba49](https://github.com/aws/aws-cdk/commit/92dba49571caec118001b9f13b82378bec2150f0)) - upgrade [@​aws-cdk/cloud-assembly-schema](https://github.com/aws-cdk/cloud-assembly-schema) to v40 ([#​33620](https://github.com/aws/aws-cdk/issues/33620)) ([127059e](https://github.com/aws/aws-cdk/commit/127059e890c78fcfaf11a97a961395b2ceb2a339)) ##### Bug Fixes - **apigateway:** move endpointConfiguration to RestApiBaseProps ([#​33514](https://github.com/aws/aws-cdk/issues/33514)) ([e07a89c](https://github.com/aws/aws-cdk/commit/e07a89ccb053fe22bcb96456c75304ac7a3c7670)), closes [#​33295](https://github.com/aws/aws-cdk/issues/33295) - **appsync:** appsync Event API integration assertion tests ([#​33572](https://github.com/aws/aws-cdk/issues/33572)) ([6f966a6](https://github.com/aws/aws-cdk/commit/6f966a6dcc010fe6af7999e7b5f97a447287aed3)) - **cloudwatch:** update regex expression that prevents CloudWatch:Mah:UnknownIdentifier warnings ([#​33591](https://github.com/aws/aws-cdk/issues/33591)) ([#​33592](https://github.com/aws/aws-cdk/issues/33592)) ([97744e7](https://github.com/aws/aws-cdk/commit/97744e746670bf067da40c8ff6a902a9c15b707e)) - **iam:** adding organization id pattern verification ([#​33555](https://github.com/aws/aws-cdk/issues/33555)) ([6df9bfe](https://github.com/aws/aws-cdk/commit/6df9bfe566a913c6c0538b2f380a83d06891a027)), closes [#​32756](https://github.com/aws/aws-cdk/issues/32756) - **lambda-nodejs:** do not require a frozen lockfile for bun ([#​32908](https://github.com/aws/aws-cdk/issues/32908)) ([a21190e](https://github.com/aws/aws-cdk/commit/a21190eb85bbc64820389ca5979a324932b9ab4b)), closes [#​32906](https://github.com/aws/aws-cdk/issues/32906) [#​32906](https://github.com/aws/aws-cdk/issues/32906) - **s3:** cannot deploy multiple replication source buckets (under feature flag) ([#​33360](https://github.com/aws/aws-cdk/issues/33360)) ([d580853](https://github.com/aws/aws-cdk/commit/d580853c546b4ee2d49afb52be75b4eb036bd6cd)), closes [#​33355](https://github.com/aws/aws-cdk/issues/33355) - **sns:** for SSE topics, add KMS permissions in grantPublish ([#​32794](https://github.com/aws/aws-cdk/issues/32794)) ([f1c0926](https://github.com/aws/aws-cdk/commit/f1c092634a391b0b7aed0f75626dd6d0ffd56564)), closes [#​18387](https://github.com/aws/aws-cdk/issues/18387) [#​31012](https://github.com/aws/aws-cdk/issues/31012) [#​24848](https://github.com/aws/aws-cdk/issues/24848) [#​16271](https://github.com/aws/aws-cdk/issues/16271) [#​29511](https://github.com/aws/aws-cdk/issues/29511) [/github.com/aws/aws-cdk/issues/16271#issuecomment-917221985](https://github.com/aws//github.com/aws/aws-cdk/issues/16271/issues/issuecomment-917221985) *** #### Alpha modules (2.182.0-alpha.0) ##### Features - **pipes-alpha:** support for customer-managed KMS keys to encrypt pipe data ([#​33546](https://github.com/aws/aws-cdk/issues/33546)) ([dd0d62f](https://github.com/aws/aws-cdk/commit/dd0d62f84da06e2cafbe7a8bac80899d86b6f153)), closes [#​31453](https://github.com/aws/aws-cdk/issues/31453) ##### Bug Fixes - **cognito-identitypool-alpha:** prevent stacks from not deploying correctly ([#​33609](https://github.com/aws/aws-cdk/issues/33609)) ([e220bc8](https://github.com/aws/aws-cdk/commit/e220bc8ca9b75bcbb4bb7447703f32737b47fc77)), closes [#​33510](https://github.com/aws/aws-cdk/issues/33510) - **eks-v2-alpha:** can't delete fargate cluster ([#​33573](https://github.com/aws/aws-cdk/issues/33573)) ([4ada313](https://github.com/aws/aws-cdk/commit/4ada3132e73e8f6b299548003d46e68f9db353a5)), closes [#​33347](https://github.com/aws/aws-cdk/issues/33347) - **scheduler-targets:** update kinesis firehose imports ([#​33615](https://github.com/aws/aws-cdk/issues/33615)) ([1df1a78](https://github.com/aws/aws-cdk/commit/1df1a784ca4d4ed8c724f0a8840137724fb46ca9)) </details> <details> <summary>axios/axios (axios)</summary> ### [`v1.8.2`](https://github.com/axios/axios/blob/HEAD/CHANGELOG.md#182-2025-03-07) [Compare Source](https://github.com/axios/axios/compare/v1.8.1...v1.8.2) ##### Bug Fixes - **http-adapter:** add allowAbsoluteUrls to path building ([#​6810](https://github.com/axios/axios/issues/6810)) ([fb8eec2](https://github.com/axios/axios/commit/fb8eec214ce7744b5ca787f2c3b8339b2f54b00f)) ##### Contributors to this release - <img src="https://avatars.githubusercontent.com/u/14166260?v=4&s=18" alt="avatar" width="18"/> [Fasoro-Joseph Alexander](https://github.com/lexcorp16 "+1/-1 (#​6810 )") </details> <details> <summary>remix-run/react-router (react-router)</summary> ### [`v7.3.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#730) [Compare Source](https://github.com/remix-run/react-router/compare/[email protected]@7.3.0) ##### Minor Changes - Add `fetcherKey` as a parameter to `patchRoutesOnNavigation` ([#​13061](https://github.com/remix-run/react-router/pull/13061)) - In framework mode, Lazy Route Discovery will now detect manifest version mismatches after a new deploy - On navigations to undiscovered routes, this mismatch will trigger a document reload of the destination path - On `fetcher` calls to undiscovered routes, this mismatch will trigger a document reload of the current path ##### Patch Changes - Skip resource route flow in dev server in SPA mode ([#​13113](https://github.com/remix-run/react-router/pull/13113)) - Support middleware on routes (unstable) ([#​12941](https://github.com/remix-run/react-router/pull/12941)) Middleware is implemented behind a `future.unstable_middleware` flag. To enable, you must enable the flag and the types in your `react-router-config.ts` file: ```ts import type { Config } from "@​react-router/dev/config"; import type { Future } from "react-router"; declare module "react-router" { interface Future { unstable_middleware: true; // 👈 Enable middleware types } } export default { future: { unstable_middleware: true, // 👈 Enable middleware }, } satisfies Config; ``` ⚠️ Middleware is unstable and should not be adopted in production. There is at least one known de-optimization in route module loading for `clientMiddleware` that we will be addressing this before a stable release. ⚠️ Enabling middleware contains a breaking change to the `context` parameter passed to your `loader`/`action` functions - see below for more information. Once enabled, routes can define an array of middleware functions that will run sequentially before route handlers run. These functions accept the same parameters as `loader`/`action` plus an additional `next` parameter to run the remaining data pipeline. This allows middlewares to perform logic before and after handlers execute. ```tsx // Framework mode export const unstable_middleware = [serverLogger, serverAuth]; // server export const unstable_clientMiddleware = [clientLogger]; // client // Library mode const routes = [ { path: "/", // Middlewares are client-side for library mode SPA's unstable_middleware: [clientLogger, clientAuth], loader: rootLoader, Component: Root, }, ]; ``` Here's a simple example of a client-side logging middleware that can be placed on the root route: ```tsx const clientLogger: Route.unstable_ClientMiddlewareFunction = async ( { request }, next ) => { let start = performance.now(); // Run the remaining middlewares and all route loaders await next(); let duration = performance.now() - start; console.log(`Navigated to ${request.url} (${duration}ms)`); }; ``` Note that in the above example, the `next`/`middleware` functions don't return anything. This is by design as on the client there is no "response" to send over the network like there would be for middlewares running on the server. The data is all handled behind the scenes by the stateful `router`. For a server-side middleware, the `next` function will return the HTTP `Response` that React Router will be sending across the wire, thus giving you a chance to make changes as needed. You may throw a new response to short circuit and respond immediately, or you may return a new or altered response to override the default returned by `next()`. ```tsx const serverLogger: Route.unstable_MiddlewareFunction = async ( { request, params, context }, next ) => { let start = performance.now(); // 👇 Grab the response here let res = await next(); let duration = performance.now() - start; console.log(`Navigated to ${request.url} (${duration}ms)`); // 👇 And return it here (optional if you don't modify the response) return res; }; ``` You can throw a `redirect` from a middleware to short circuit any remaining processing: ```tsx import { sessionContext } from "../context"; const serverAuth: Route.unstable_MiddlewareFunction = ( { request, params, context }, next ) => { let session = context.get(sessionContext); let user = session.get("user"); if (!user) { session.set("returnTo", request.url); throw redirect("/login", 302); } }; ``` *Note that in cases like this where you don't need to do any post-processing you don't need to call the `next` function or return a `Response`.* Here's another example of using a server middleware to detect 404s and check the CMS for a redirect: ```tsx const redirects: Route.unstable_MiddlewareFunction = async ({ request, next, }) => { // attempt to handle the request let res = await next(); // if it's a 404, check the CMS for a redirect, do it last // because it's expensive if (res.status === 404) { let cmsRedirect = await checkCMSRedirects(request.url); if (cmsRedirect) { throw redirect(cmsRedirect, 302); } } return res; }; ``` **`context` parameter** When middleware is enabled, your application will use a different type of `context` parameter in your loaders and actions to provide better type safety. Instead of `AppLoadContext`, `context` will now be an instance of `ContextProvider` that you can use with type-safe contexts (similar to `React.createContext`): ```ts import { unstable_createContext } from "react-router"; import { Route } from "./+types/root"; import type { Session } from "./sessions.server"; import { getSession } from "./sessions.server"; let sessionContext = unstable_createContext<Session>(); const sessionMiddleware: Route.unstable_MiddlewareFunction = ({ context, request, }) => { let session = await getSession(request); context.set(sessionContext, session); // ^ must be of type Session }; // ... then in some downstream middleware const loggerMiddleware: Route.unstable_MiddlewareFunction = ({ context, request, }) => { let session = context.get(sessionContext); // ^ typeof Session console.log(session.get("userId"), request.method, request.url); }; // ... or some downstream loader export function loader({ context }: Route.LoaderArgs) { let session = context.get(sessionContext); let profile = await getProfile(session.get("userId")); return { profile }; } ``` If you are using a custom server with a `getLoadContext` function, the return value for initial context values passed from the server adapter layer is no longer an object and should now return an `unstable_InitialContext` (`Map<RouterContext, unknown>`): ```ts let adapterContext = unstable_createContext<MyAdapterContext>(); function getLoadContext(req, res): unstable_InitialContext { let map = new Map(); map.set(adapterContext, getAdapterContext(req)); return map; } ``` - Fix types for loaderData and actionData that contained `Record`s ([#​13139](https://github.com/remix-run/react-router/pull/13139)) UNSTABLE(BREAKING): `unstable_SerializesTo` added a way to register custom serialization types in Single Fetch for other library and framework authors like Apollo. It was implemented with branded type whose branded property that was made optional so that casting arbitrary values was easy: ```ts // without the brand being marked as optional let x1 = 42 as unknown as unstable_SerializesTo<number>; // ^^^^^^^^^^ // with the brand being marked as optional let x2 = 42 as unstable_SerializesTo<number>; ``` However, this broke type inference in `loaderData` and `actionData` for any `Record` types as those would now (incorrectly) match `unstable_SerializesTo`. This affected all users, not just those that depended on `unstable_SerializesTo`. To fix this, the branded property of `unstable_SerializesTo` is marked as required instead of optional. For library and framework authors using `unstable_SerializesTo`, you may need to add `as unknown` casts before casting to `unstable_SerializesTo`. - \[REMOVE] Remove middleware depth logic and always call middlware for all matches ([#​13172](https://github.com/remix-run/react-router/pull/13172)) - Fix single fetch `_root.data` requests when a `basename` is used ([#​12898](https://github.com/remix-run/react-router/pull/12898)) - Add `context` support to client side data routers (unstable) ([#​12941](https://github.com/remix-run/react-router/pull/12941)) Your application `loader` and `action` functions on the client will now receive a `context` parameter. This is an instance of `unstable_RouterContextProvider` that you use with type-safe contexts (similar to `React.createContext`) and is most useful with the corresponding `middleware`/`clientMiddleware` API's: ```ts import { unstable_createContext } from "react-router"; type User = { /*...*/ }; let userContext = unstable_createContext<User>(); function sessionMiddleware({ context }) { let user = await getUser(); context.set(userContext, user); } // ... then in some downstream loader function loader({ context }) { let user = context.get(userContext); let profile = await getProfile(user.id); return { profile }; } ``` Similar to server-side requests, a fresh `context` will be created per navigation (or `fetcher` call). If you have initial data you'd like to populate in the context for every request, you can provide an `unstable_getContext` function at the root of your app: - Library mode - `createBrowserRouter(routes, { unstable_getContext })` - Framework mode - `<HydratedRouter unstable_getContext>` This function should return an value of type `unstable_InitialContext` which is a `Map<unstable_RouterContext, unknown>` of context's and initial values: ```ts const loggerContext = unstable_createContext<(...args: unknown[]) => void>(); function logger(...args: unknown[]) { console.log(new Date.toISOString(), ...args); } function unstable_getContext() { let map = new Map(); map.set(loggerContext, logger); return map; } ``` </details> <details> <summary>remix-run/react-router (react-router-dom)</summary> ### [`v7.3.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#730) [Compare Source](https://github.com/remix-run/react-router/compare/[email protected]@7.3.0) ##### Patch Changes - Updated dependencies: - `[email protected]` </details> <details> <summary>vitejs/vite (vite)</summary> ### [`v6.2.1`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small621-2025-03-07-small) [Compare Source](https://github.com/vitejs/vite/compare/v6.2.0...v6.2.1) - refactor: remove `isBuild` check from preAliasPlugin ([#​19587](https://github.com/vitejs/vite/issues/19587)) ([c9e086d](https://github.com/vitejs/vite/commit/c9e086d35ac35ee1c6d85d48369e8a67a2ba6bfe)), closes [#​19587](https://github.com/vitejs/vite/issues/19587) - refactor: restore endsWith usage ([#​19554](https://github.com/vitejs/vite/issues/19554)) ([6113a96](https://github.com/vitejs/vite/commit/6113a9670cc9b7d29fe0bffe033f7823e36ded00)), closes [#​19554](https://github.com/vitejs/vite/issues/19554) - refactor: use `applyToEnvironment` in int </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 12pm on saturday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/SvenKirschbaum/share.kirschbaum.cloud).
Automatically add the required policy to the KMS key when an encrypted SNS topic is subscribed to S3 event.
Equivalent logic is present when subscribing an SQS queue to an S3 event.
Use Case
When configuring S3 notifications, I do not have to manually configure KMS trust for S3 when subscribing an encrypted SNS topic.
Proposed Solution
Add similar logic to encrypted SNS notification subscriptions as is present for encrypted SQS notification subscriptions.
Other
I had trouble finding where the logic doing this lives in the CDK currently, but here is the test showing this is done for SQS subscriptions, and here is the logic in an old version of the CDK, as referenced in #2504.
This is a 🚀 Feature Request
The text was updated successfully, but these errors were encountered: