From b32a19f53dc4d1bce0f4261df358a7102a6c2b97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Oct 2025 15:52:44 +0000 Subject: [PATCH 1/2] chore(deps-dev): bump the vitest group across 1 directory with 2 updates Bumps the vitest group with 2 updates in the / directory: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Updates `@vitest/coverage-v8` from 3.2.4 to 4.0.1 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.1/packages/coverage-v8) Updates `vitest` from 3.2.4 to 4.0.1 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.1/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/coverage-v8" dependency-version: 4.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: vitest - dependency-name: vitest dependency-version: 4.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: vitest ... Signed-off-by: dependabot[bot] --- examples/app/package.json | 2 +- package-lock.json | 776 +++++++++++++++++++++----------------- package.json | 4 +- 3 files changed, 430 insertions(+), 352 deletions(-) diff --git a/examples/app/package.json b/examples/app/package.json index 6c0b89c8bd..f6367b1c74 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -36,7 +36,7 @@ "source-map-support": "^0.5.21", "tsx": "^4.20.6", "typescript": "^5.9.3", - "vitest": "^3.0.5" + "vitest": "^4.0.1" }, "dependencies": { "@aws-lambda-powertools/batch": "^2.28.1", diff --git a/package-lock.json b/package-lock.json index e33eb0494c..29c630653a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@biomejs/biome": "^2.2.6", "@types/aws-lambda": "^8.10.156", "@types/node": "^24.9.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.1", "husky": "^9.1.7", "lint-staged": "^16.2.5", "markdownlint-cli2": "^0.18.1", @@ -39,7 +39,7 @@ "typedoc": "^0.28.14", "typedoc-plugin-missing-exports": "^4.1.2", "typescript": "^5.9.3", - "vitest": "^3.0.9" + "vitest": "^4.0.1" }, "engines": { "node": ">=20" @@ -50,12 +50,12 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/batch": "^2.28.0", - "@aws-lambda-powertools/idempotency": "^2.28.0", - "@aws-lambda-powertools/logger": "^2.28.0", - "@aws-lambda-powertools/metrics": "^2.28.0", - "@aws-lambda-powertools/parameters": "^2.28.0", - "@aws-lambda-powertools/tracer": "^2.28.0", + "@aws-lambda-powertools/batch": "^2.28.1", + "@aws-lambda-powertools/idempotency": "^2.28.1", + "@aws-lambda-powertools/logger": "^2.28.1", + "@aws-lambda-powertools/metrics": "^2.28.1", + "@aws-lambda-powertools/parameters": "^2.28.1", + "@aws-lambda-powertools/tracer": "^2.28.1", "@aws-sdk/client-ssm": "^3.913.0", "@aws-sdk/lib-dynamodb": "^3.913.0", "@middy/core": "^4.7.0", @@ -74,7 +74,7 @@ "source-map-support": "^0.5.21", "tsx": "^4.20.6", "typescript": "^5.9.3", - "vitest": "^3.0.5" + "vitest": "^4.0.1" } }, "examples/snippets": { @@ -86,15 +86,15 @@ "valibot": "^1.1.0" }, "devDependencies": { - "@aws-lambda-powertools/batch": "^2.28.0", - "@aws-lambda-powertools/event-handler": "^2.28.0", - "@aws-lambda-powertools/idempotency": "^2.28.0", - "@aws-lambda-powertools/jmespath": "^2.28.0", - "@aws-lambda-powertools/logger": "^2.28.0", - "@aws-lambda-powertools/metrics": "^2.28.0", - "@aws-lambda-powertools/parameters": "^2.28.0", - "@aws-lambda-powertools/parser": "^2.28.0", - "@aws-lambda-powertools/tracer": "^2.28.0", + "@aws-lambda-powertools/batch": "^2.28.1", + "@aws-lambda-powertools/event-handler": "^2.28.1", + "@aws-lambda-powertools/idempotency": "^2.28.1", + "@aws-lambda-powertools/jmespath": "^2.28.1", + "@aws-lambda-powertools/logger": "^2.28.1", + "@aws-lambda-powertools/metrics": "^2.28.1", + "@aws-lambda-powertools/parameters": "^2.28.1", + "@aws-lambda-powertools/parser": "^2.28.1", + "@aws-lambda-powertools/tracer": "^2.28.1", "@aws-sdk/client-appconfigdata": "^3.913.0", "@aws-sdk/client-dynamodb": "^3.913.0", "@aws-sdk/client-secrets-manager": "^3.913.0", @@ -131,7 +131,7 @@ } }, "layers": { - "version": "2.28.0", + "version": "2.28.1", "license": "MIT-0", "dependencies": { "aws-cdk": "^2.1030.0", @@ -147,19 +147,6 @@ "source-map-support": "^0.5.21" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@ark/regex": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@ark/regex/-/regex-0.0.0.tgz", @@ -3669,29 +3656,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -3701,26 +3665,19 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3870,9 +3827,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", - "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", "cpu": [ "arm" ], @@ -3884,9 +3841,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", - "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", "cpu": [ "arm64" ], @@ -3898,9 +3855,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", "cpu": [ "arm64" ], @@ -3912,9 +3869,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", "cpu": [ "x64" ], @@ -3926,9 +3883,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", - "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", "cpu": [ "arm64" ], @@ -3940,9 +3897,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", - "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", "cpu": [ "x64" ], @@ -3954,9 +3911,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", - "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", "cpu": [ "arm" ], @@ -3968,9 +3925,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", - "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", "cpu": [ "arm" ], @@ -3982,9 +3939,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", "cpu": [ "arm64" ], @@ -3996,9 +3953,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", "cpu": [ "arm64" ], @@ -4009,10 +3966,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", - "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", "cpu": [ "loong64" ], @@ -4023,10 +3980,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", - "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", "cpu": [ "ppc64" ], @@ -4038,9 +3995,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", - "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", "cpu": [ "riscv64" ], @@ -4052,9 +4009,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", - "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", "cpu": [ "riscv64" ], @@ -4066,9 +4023,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", - "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", "cpu": [ "s390x" ], @@ -4080,9 +4037,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", "cpu": [ "x64" ], @@ -4094,9 +4051,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", "cpu": [ "x64" ], @@ -4107,10 +4064,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", "cpu": [ "arm64" ], @@ -4122,9 +4093,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", - "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", "cpu": [ "ia32" ], @@ -4135,10 +4106,24 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", "cpu": [ "x64" ], @@ -5467,32 +5452,30 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.1.tgz", + "integrity": "sha512-nmB+UVryiWQLC0pfPQ6KmJacew1ecpuKeUyiGbXtp1+KoYtCTAAlLI++8X/wJfzlULil+l/1jiWPreFnB1U5Mg==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", + "@vitest/utils": "4.0.1", + "ast-v8-to-istanbul": "^0.3.5", + "debug": "^4.4.3", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", + "istanbul-reports": "^3.2.0", "magicast": "^0.3.5", "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" + "@vitest/browser": "4.0.1", + "vitest": "4.0.1" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -5500,6 +5483,33 @@ } } }, + "node_modules/@vitest/coverage-v8/node_modules/@vitest/pretty-format": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.1.tgz", + "integrity": "sha512-6nq3JY/zQ91+oX1vd4fajiVNyA/HMhaF9cOw5P9cQi6ML7PRi7ilVaQ77PulF+4kvUKr9bcLm9GoAtwlVFbGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/@vitest/utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.1.tgz", + "integrity": "sha512-uRrACgpIz5sxuT87ml7xhh7EdKtW8k0N9oSFVBPl8gHB/JfLObLe9dXO6ZrsNN55FzciGIRqIEILgTQvg1eNHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", @@ -5514,33 +5524,14 @@ "node": ">=10" } }, - "node_modules/@vitest/coverage-v8/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "node_modules/@vitest/coverage-v8/node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=14.0.0" } }, "node_modules/@vitest/expect": { @@ -5561,22 +5552,22 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.1.tgz", + "integrity": "sha512-fwmvg8YvwSAE41Hyhul7dL4UzPhG+k2VaZCcL+aHagLx4qlNQgKYTw7coF4YdjAxSBBt0b408gQFYMX1Qeqweg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.4", + "@vitest/spy": "4.0.1", "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" + "magic-string": "^0.30.19" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -5587,6 +5578,16 @@ } } }, + "node_modules/@vitest/mocker/node_modules/@vitest/spy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.1.tgz", + "integrity": "sha512-Hj0/TBQ2EN72wDpfKiUf63mRCkE0ZiSGXGeDDvW9T3LBKVVApItd0GyQLDBIe03kWbyK9gOTEbJVVWthcLFzCg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/pretty-format": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", @@ -5601,35 +5602,94 @@ } }, "node_modules/@vitest/runner": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.1.tgz", + "integrity": "sha512-nxUoWmw7ZX2OiSNwolJeSOOzrrR/o79wRTwP7HhiW/lDFwQHtWMj9snMhrdvccFqanvI8897E81eXjgDbrRvqA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.4", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" + "@vitest/utils": "4.0.1", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/@vitest/pretty-format": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.1.tgz", + "integrity": "sha512-6nq3JY/zQ91+oX1vd4fajiVNyA/HMhaF9cOw5P9cQi6ML7PRi7ilVaQ77PulF+4kvUKr9bcLm9GoAtwlVFbGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/@vitest/utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.1.tgz", + "integrity": "sha512-uRrACgpIz5sxuT87ml7xhh7EdKtW8k0N9oSFVBPl8gHB/JfLObLe9dXO6ZrsNN55FzciGIRqIEILgTQvg1eNHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.1", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/runner/node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@vitest/snapshot": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.1.tgz", + "integrity": "sha512-CvfsEWutEIN/Z9ScXYup7YwlPeK9JICrV7FN9p3pVytsyh+aCHAH0PUi//YlTiQ7T8qYxJYpUrAwZL9XqmZ5ZA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "magic-string": "^0.30.17", + "@vitest/pretty-format": "4.0.1", + "magic-string": "^0.30.19", "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.1.tgz", + "integrity": "sha512-6nq3JY/zQ91+oX1vd4fajiVNyA/HMhaF9cOw5P9cQi6ML7PRi7ilVaQ77PulF+4kvUKr9bcLm9GoAtwlVFbGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@vitest/spy": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", @@ -5911,24 +5971,17 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.3.tgz", - "integrity": "sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.7.tgz", + "integrity": "sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", + "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^9.0.1" } }, - "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -6567,16 +6620,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -7072,9 +7115,9 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -7327,9 +7370,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7654,7 +7697,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/husky": { "version": "9.1.7", @@ -7880,6 +7924,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -7890,10 +7935,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -7928,6 +7974,13 @@ "node": ">= 0.6.0" } }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -8188,13 +8241,13 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/magicast": { @@ -8213,6 +8266,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -9154,7 +9208,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -9421,9 +9476,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", - "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", "dependencies": { @@ -9437,26 +9492,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.0", - "@rollup/rollup-android-arm64": "4.44.0", - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-freebsd-arm64": "4.44.0", - "@rollup/rollup-freebsd-x64": "4.44.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", - "@rollup/rollup-linux-arm-musleabihf": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-gnu": "4.44.0", - "@rollup/rollup-linux-riscv64-musl": "4.44.0", - "@rollup/rollup-linux-s390x-gnu": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-ia32-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0", + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "~2.3.2" } }, @@ -9786,26 +9843,6 @@ "node": ">=8" } }, - "node_modules/strip-literal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, "node_modules/strnum": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", @@ -9940,16 +9977,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/tinyrainbow": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", @@ -10247,29 +10274,6 @@ } } }, - "node_modules/vite-node": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/vite/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -10317,41 +10321,38 @@ } }, "node_modules/vitest": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.1.tgz", + "integrity": "sha512-4rwTfUNF0MExMZBiNirkzZpeyUZGOs3JD76N2qHNP9i6w6/bff7MRv2I9yFJKd1ICxzn2igpra+E4t9o2EfQhw==", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", - "@vitest/pretty-format": "^3.2.4", - "@vitest/runner": "3.2.4", - "@vitest/snapshot": "3.2.4", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", + "@vitest/expect": "4.0.1", + "@vitest/mocker": "4.0.1", + "@vitest/pretty-format": "4.0.1", + "@vitest/runner": "4.0.1", + "@vitest/snapshot": "4.0.1", + "@vitest/spy": "4.0.1", + "@vitest/utils": "4.0.1", + "debug": "^4.4.3", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.19", "pathe": "^2.0.3", - "picomatch": "^4.0.2", + "picomatch": "^4.0.3", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -10359,9 +10360,11 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.4", - "@vitest/ui": "3.2.4", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.1", + "@vitest/browser-preview": "4.0.1", + "@vitest/browser-webdriverio": "4.0.1", + "@vitest/ui": "4.0.1", "happy-dom": "*", "jsdom": "*" }, @@ -10375,7 +10378,13 @@ "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { @@ -10389,10 +10398,75 @@ } } }, + "node_modules/vitest/node_modules/@vitest/expect": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.1.tgz", + "integrity": "sha512-KtvGLN/IWoZfg68JF2q/zbDEo+UJTWnc7suYJ8RF+ZTBeBcBz4NIOJDxO4Q3bEY9GsOYhgy5cOevcVPFh4+V7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.1", + "@vitest/utils": "4.0.1", + "chai": "^6.0.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest/node_modules/@vitest/pretty-format": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.1.tgz", + "integrity": "sha512-6nq3JY/zQ91+oX1vd4fajiVNyA/HMhaF9cOw5P9cQi6ML7PRi7ilVaQ77PulF+4kvUKr9bcLm9GoAtwlVFbGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest/node_modules/@vitest/spy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.1.tgz", + "integrity": "sha512-Hj0/TBQ2EN72wDpfKiUf63mRCkE0ZiSGXGeDDvW9T3LBKVVApItd0GyQLDBIe03kWbyK9gOTEbJVVWthcLFzCg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest/node_modules/@vitest/utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.1.tgz", + "integrity": "sha512-uRrACgpIz5sxuT87ml7xhh7EdKtW8k0N9oSFVBPl8gHB/JfLObLe9dXO6ZrsNN55FzciGIRqIEILgTQvg1eNHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest/node_modules/chai": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.0.tgz", + "integrity": "sha512-aUTnJc/JipRzJrNADXVvpVqi6CO0dn3nx4EVPxijri+fj3LUUDyZQOgVeW54Ob3Y1Xh9Iz8f+CgaCl8v0mn9bA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10402,6 +10476,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vitest/node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10674,11 +10758,11 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", "@standard-schema/spec": "^1.0.0" }, "devDependencies": { - "@aws-lambda-powertools/parser": "2.28.0", + "@aws-lambda-powertools/parser": "2.28.1", "@aws-lambda-powertools/testing-utils": "file:../testing", "zod": "^4.1.12" } @@ -10696,7 +10780,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0" + "@aws-lambda-powertools/commons": "2.28.1" } }, "packages/idempotency": { @@ -10704,8 +10788,8 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", - "@aws-lambda-powertools/jmespath": "2.28.0" + "@aws-lambda-powertools/commons": "2.28.1", + "@aws-lambda-powertools/jmespath": "2.28.1" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -10743,7 +10827,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0" + "@aws-lambda-powertools/commons": "2.28.1" } }, "packages/kafka": { @@ -10751,7 +10835,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", "@standard-schema/spec": "^1.0.0" }, "devDependencies": { @@ -10781,7 +10865,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", "lodash.merge": "^4.6.2" }, "devDependencies": { @@ -10789,7 +10873,7 @@ "@types/lodash.merge": "^4.6.9" }, "peerDependencies": { - "@aws-lambda-powertools/jmespath": "2.28.0", + "@aws-lambda-powertools/jmespath": "2.28.1", "@middy/core": "4.x || 5.x || 6.x" }, "peerDependenciesMeta": { @@ -10806,7 +10890,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.27.0" + "@aws-lambda-powertools/commons": "2.28.1" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -10823,18 +10907,12 @@ } } }, - "packages/metrics/node_modules/@aws-lambda-powertools/commons": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-2.27.0.tgz", - "integrity": "sha512-LjrMrSNcAOUw5g9frev4J0NEs3B7AU0uemB0BXbNLAHrYUdP2ls+ncohwNYVVN+DwjfpYj+FYjdRhUlmWzs8Cw==", - "license": "MIT-0" - }, "packages/parameters": { "name": "@aws-lambda-powertools/parameters", "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0" + "@aws-lambda-powertools/commons": "2.28.1" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -10880,7 +10958,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", "@standard-schema/spec": "^1.0.0" }, "devDependencies": { @@ -10921,7 +10999,7 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", "aws-xray-sdk-core": "^3.11.0" }, "devDependencies": { @@ -10943,8 +11021,8 @@ "version": "2.28.1", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "2.28.0", - "@aws-lambda-powertools/jmespath": "2.28.0", + "@aws-lambda-powertools/commons": "2.28.1", + "@aws-lambda-powertools/jmespath": "2.28.1", "ajv": "^8.17.1" } } diff --git a/package.json b/package.json index fdd55ffb08..ee32441f5c 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@biomejs/biome": "^2.2.6", "@types/aws-lambda": "^8.10.156", "@types/node": "^24.9.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.1", "husky": "^9.1.7", "lint-staged": "^16.2.5", "markdownlint-cli2": "^0.18.1", @@ -62,7 +62,7 @@ "typedoc": "^0.28.14", "typedoc-plugin-missing-exports": "^4.1.2", "typescript": "^5.9.3", - "vitest": "^3.0.9" + "vitest": "^4.0.1" }, "lint-staged": { "*.{js,ts,json}": "biome check --write --no-errors-on-unmatched", From b659411edd9385e01e9b26aafef7430715c93408 Mon Sep 17 00:00:00 2001 From: Swopnil Dangol Date: Fri, 31 Oct 2025 10:07:48 +0000 Subject: [PATCH 2/2] fixed tests and updated ignore hints --- package-lock.json | 244 ------------------ packages/batch/src/BatchProcessorSync.ts | 6 +- .../batch/src/processPartialResponseSync.ts | 7 +- .../batch/tests/unit/BatchProcessor.test.ts | 37 +++ packages/commons/src/LRUCache.ts | 2 + .../commons/tests/unit/awsSdkUtils.test.ts | 2 +- .../appsync-events/RouteHandlerRegistry.ts | 1 + .../event-handler/src/appsync-events/utils.ts | 2 +- .../unit/rest/Router/basic-routing.test.ts | 4 +- .../src/middleware/makeHandlerIdempotent.ts | 2 +- .../persistence/BasePersistenceLayer.test.ts | 5 +- packages/kafka/src/consumer.ts | 3 +- packages/logger/src/Logger.ts | 12 +- packages/metrics/src/Metrics.ts | 10 +- .../src/appconfig/AppConfigProvider.ts | 8 +- .../parameters/src/secrets/SecretsProvider.ts | 8 +- .../tests/unit/setParameter.test.ts | 4 +- packages/parser/src/parser.ts | 3 +- packages/parser/src/schemas/alb.ts | 3 +- .../parser/tests/events/dynamodb/base.json | 26 ++ .../tests/unit/envelopes/dynamodb.test.ts | 6 + packages/parser/tests/unit/helpers.test.ts | 14 +- .../parser/tests/unit/schema/dynamodb.test.ts | 40 +++ packages/tracer/src/Tracer.ts | 11 +- .../tracer/src/provider/ProviderService.ts | 10 +- packages/tracer/tests/unit/Tracer.test.ts | 53 ++-- packages/validation/tests/unit/utils.test.ts | 18 ++ 27 files changed, 213 insertions(+), 328 deletions(-) create mode 100644 packages/validation/tests/unit/utils.test.ts diff --git a/package-lock.json b/package-lock.json index d6ad7f656c..1f31fa2387 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5134,25 +5134,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@valkey/valkey-glide": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide/-/valkey-glide-1.3.4.tgz", - "integrity": "sha512-EXjpGEeTjs2uhJm8ZNkHEK8d3qCQmppmxsv+553S6L9fArZTBvKMmfh7P2H7nxletHx6sxs+fc2UFFw9M5k5SQ==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^2.0.3" - }, - "optionalDependencies": { - "@valkey/valkey-glide-darwin-arm64": "1.3.4", - "@valkey/valkey-glide-darwin-x64": "1.3.4", - "@valkey/valkey-glide-linux-arm64": "1.3.4", - "@valkey/valkey-glide-linux-musl-arm64": "1.3.4", - "@valkey/valkey-glide-linux-musl-x64": "1.3.4", - "@valkey/valkey-glide-linux-x64": "1.3.4" - } - }, "node_modules/@valkey/valkey-glide-darwin-arm64": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-darwin-arm64/-/valkey-glide-darwin-arm64-2.1.1.tgz", @@ -5181,32 +5162,6 @@ "darwin" ] }, - "node_modules/@valkey/valkey-glide-linux-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-arm64/-/valkey-glide-linux-arm64-1.3.4.tgz", - "integrity": "sha512-ubTZDaEqlwS8NNuIggWt36I1BbtUNE17uHrCaBvUfc+aR1870r4xqvQNyvpQhT/VezfJisSBGKudFdLKeFrIjg==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "arm64" - ], - "deprecated": "This package will be replaced by @valkey/valkey-glide-linux-arm64-gnu in v2.0", - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@valkey/valkey-glide-linux-arm64-gnu": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-arm64-gnu/-/valkey-glide-linux-arm64-gnu-2.1.1.tgz", @@ -5235,114 +5190,6 @@ "linux" ] }, - "node_modules/@valkey/valkey-glide-linux-arm64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@valkey/valkey-glide-linux-musl-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-musl-arm64/-/valkey-glide-linux-musl-arm64-1.3.4.tgz", - "integrity": "sha512-zNkmKXrT9ebe/XWtevzFleRrXycrzsLtmDjdQJGVUC96gUA3DcczK/gfu2rgvgH84C5s5jKbSM7oeo8f8eX4Vw==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "arm64" - ], - "deprecated": "This package will be replaced by @valkey/valkey-glide-linux-arm64-musl in v2.0", - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@valkey/valkey-glide-linux-musl-arm64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@valkey/valkey-glide-linux-musl-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-musl-x64/-/valkey-glide-linux-musl-x64-1.3.4.tgz", - "integrity": "sha512-QSaLTp81V0agKcGXsr3LUF+Vl4nTHrf5eBNV7/2GwbA4Pwed2x8TzORAjv+aS368hWR/9zftbVA1Xjn8TAND3w==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "x64" - ], - "deprecated": "This package will be replaced by @valkey/valkey-glide-linux-x64-musl in v2.0", - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@valkey/valkey-glide-linux-musl-x64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@valkey/valkey-glide-linux-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-x64/-/valkey-glide-linux-x64-1.3.4.tgz", - "integrity": "sha512-j9acGMsr7T1oY377xBsIkY4rjtDqb78/OSH3CFcdntcJZU6u6fvcqGXG5Co/iRDvsm+q9uuYd/H5ITnGx60kng==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "x64" - ], - "deprecated": "This package will be replaced by @valkey/valkey-glide-linux-x64-gnu in v2.0", - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@valkey/valkey-glide-linux-x64-gnu": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-linux-x64-gnu/-/valkey-glide-linux-x64-gnu-2.1.1.tgz", @@ -5371,86 +5218,6 @@ "linux" ] }, - "node_modules/@valkey/valkey-glide-linux-x64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@valkey/valkey-glide/node_modules/@valkey/valkey-glide-darwin-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-darwin-arm64/-/valkey-glide-darwin-arm64-1.3.4.tgz", - "integrity": "sha512-Ry8PEWdMtENju/thkqMEDCcf9wJSz5JavpwTJ8+NEaTVeYUSNK7PJ91ZrgxTWyDr51YAdA8e5MjyK2+p2X1HiQ==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@valkey/valkey-glide/node_modules/@valkey/valkey-glide-darwin-arm64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@valkey/valkey-glide/node_modules/@valkey/valkey-glide-darwin-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@valkey/valkey-glide-darwin-x64/-/valkey-glide-darwin-x64-1.3.4.tgz", - "integrity": "sha512-Jl/x1WovhwiP7lWUcA99tw68Usb3GCHZ/ISD/1F23cVErXJ9qB4ZNCFI8Y1QrmwEPSeojKsxSpqylrsInuv1ng==", - "bundleDependencies": [ - "glide-rs" - ], - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "dependencies": { - "glide-rs": "file:rust-client", - "long": "5", - "protobufjs": "7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@valkey/valkey-glide/node_modules/@valkey/valkey-glide-darwin-x64/node_modules/glide-rs": { - "version": "0.1.0", - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@vitest/coverage-v8": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.1.tgz", @@ -7183,17 +6950,6 @@ "node": ">=6" } }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", diff --git a/packages/batch/src/BatchProcessorSync.ts b/packages/batch/src/BatchProcessorSync.ts index 45f47a6e21..2479d9c569 100644 --- a/packages/batch/src/BatchProcessorSync.ts +++ b/packages/batch/src/BatchProcessorSync.ts @@ -82,12 +82,13 @@ import type { BaseRecord, FailureResponse, SuccessResponse } from './types.js'; * @param eventType The type of event to process (SQS, Kinesis, DynamoDB) * @deprecated Use {@link BasePartialBatchProcessor} instead, this class is deprecated and will be removed in the next major version. */ -/* v8 ignore start */ class BatchProcessorSync extends BasePartialBatchProcessor { +class BatchProcessorSync extends BasePartialBatchProcessor { /** * @throws {BatchProcessingError} This method is not implemented for asynchronous processing. * * @param _record The record to be processed */ + /* v8 ignore next -- @preserve */ public processRecord( _record: BaseRecord ): Promise { @@ -108,6 +109,7 @@ import type { BaseRecord, FailureResponse, SuccessResponse } from './types.js'; * * @param record The record to be processed */ + /* v8 ignore next -- @preserve */ public processRecordSync( record: BaseRecord ): SuccessResponse | FailureResponse { @@ -120,6 +122,6 @@ import type { BaseRecord, FailureResponse, SuccessResponse } from './types.js'; return this.failureHandler(record, error as Error); } } -} /* v8 ignore stop */ +} export { BatchProcessorSync }; diff --git a/packages/batch/src/processPartialResponseSync.ts b/packages/batch/src/processPartialResponseSync.ts index d5c22d9975..94bcb53c72 100644 --- a/packages/batch/src/processPartialResponseSync.ts +++ b/packages/batch/src/processPartialResponseSync.ts @@ -99,9 +99,8 @@ import type { * @param processor Batch processor instance to handle the batch processing * @param options Batch processing options, which can vary with chosen batch processor implementation */ -/* v8 ignore start */ const processPartialResponseSync = < - T extends BasePartialBatchProcessor, ->( +/* v8 ignore next -- @preserve */ +const processPartialResponseSync = ( event: { Records: BaseRecord[] }, recordHandler: CallableFunction, processor: T, @@ -116,6 +115,6 @@ import type { processor.processSync(); return processor.response(); -}; /* v8 ignore stop */ +}; export { processPartialResponseSync }; diff --git a/packages/batch/tests/unit/BatchProcessor.test.ts b/packages/batch/tests/unit/BatchProcessor.test.ts index 650354d968..c02c2b8c52 100644 --- a/packages/batch/tests/unit/BatchProcessor.test.ts +++ b/packages/batch/tests/unit/BatchProcessor.test.ts @@ -240,6 +240,43 @@ describe('Class: AsyncBatchProcessor', () => { FullBatchFailureError ); }); + + it('ignores the failed record in the collector response when the sequence number is not defined', async () => { + // Prepare + const firstRecord = { + eventID: '1', + eventVersion: '1.0', + dynamodb: { + Keys: { Id: { N: '101' } }, + OldImage: { Message: { S: 'fail' } }, + NewImage: { Message: { S: 'fail' } }, + StreamViewType: 'NEW_AND_OLD_IMAGES', + SizeBytes: 26, + }, + awsRegion: 'us-west-2', + eventName: 'INSERT', + eventSourceARN: 'eventsource_arn', + eventSource: 'aws:dynamodb', + }; + const secondRecord = dynamodbRecordFactory('success'); + const records = [firstRecord, secondRecord]; + const processor = new BatchProcessor(EventType.DynamoDBStreams); + + // Act + processor.register(records, asyncDynamodbRecordHandler, options); + const processedMessages = await processor.process(); + + // Assess + expect(processedMessages[1]).toStrictEqual([ + 'success', + secondRecord.dynamodb?.NewImage?.Message, + secondRecord, + ]); + expect(processor.failureMessages.length).toBe(1); + expect(processor.response()).toStrictEqual({ + batchItemFailures: [], + }); + }); }); }); diff --git a/packages/commons/src/LRUCache.ts b/packages/commons/src/LRUCache.ts index b4482e9983..12129466cd 100644 --- a/packages/commons/src/LRUCache.ts +++ b/packages/commons/src/LRUCache.ts @@ -215,6 +215,7 @@ class LRUCache { if (this.mostRecentlyUsed === item) return; // If the item is not the newest, we need to mark it as the newest + /* v8 ignore else -- @preserve */ if (item[NEWER]) { if (item === this.leastRecentlyUsed) { this.leastRecentlyUsed = item[NEWER]; @@ -226,6 +227,7 @@ class LRUCache { } item[NEWER] = undefined; item[OLDER] = this.mostRecentlyUsed; + /* v8 ignore else -- @preserve */ if (this.mostRecentlyUsed) { this.mostRecentlyUsed[NEWER] = item; } diff --git a/packages/commons/tests/unit/awsSdkUtils.test.ts b/packages/commons/tests/unit/awsSdkUtils.test.ts index 5223605292..8a93bdc870 100644 --- a/packages/commons/tests/unit/awsSdkUtils.test.ts +++ b/packages/commons/tests/unit/awsSdkUtils.test.ts @@ -55,7 +55,7 @@ describe('Helpers: awsSdk', () => { // Prepare const client = { middlewareStack: { - identify: () => '', + identify: () => [''], addRelativeTo: vi.fn(), }, send: vi.fn(), diff --git a/packages/event-handler/src/appsync-events/RouteHandlerRegistry.ts b/packages/event-handler/src/appsync-events/RouteHandlerRegistry.ts index 4ad6937aa9..4fcd218ef5 100644 --- a/packages/event-handler/src/appsync-events/RouteHandlerRegistry.ts +++ b/packages/event-handler/src/appsync-events/RouteHandlerRegistry.ts @@ -115,6 +115,7 @@ class RouteHandlerRegistry { } } if (mostSpecificHandler === undefined) { + /* v8 ignore else -- @preserve */ if (!this.#warningSet.has(path)) { this.#logger.warn( `No route handler found for path '${path}' registered for ${this.#eventType}.` diff --git a/packages/event-handler/src/appsync-events/utils.ts b/packages/event-handler/src/appsync-events/utils.ts index c3d8943782..2122164b56 100644 --- a/packages/event-handler/src/appsync-events/utils.ts +++ b/packages/event-handler/src/appsync-events/utils.ts @@ -38,7 +38,7 @@ const isAppSyncEventsEvent = (event: unknown): event is AppSyncEventsEvent => { 'name' in event.info.channelNamespace && isString(event.info.channelNamespace.name) && 'operation' in event.info && - /* v8 ignore next */ + /* v8 ignore next -- @preserve */ (event.info.operation === 'PUBLISH' || event.info.operation === 'SUBSCRIBE') ); }; diff --git a/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts b/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts index 3fdd5b0954..9c3fdd37e4 100644 --- a/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts +++ b/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts @@ -107,13 +107,13 @@ describe('Class: Router - Basic Routing', () => { expect(actual.hasContext).toBe(true); }); - it('throws an internal server error for non-API Gateway events', () => { + it('throws an internal server error for non-API Gateway events', async () => { // Prepare const app = new Router(); const nonApiGatewayEvent = { Records: [] }; // SQS-like event // Act & Assess - expect(app.resolve(nonApiGatewayEvent, context)).rejects.toThrowError( + await expect(app.resolve(nonApiGatewayEvent, context)).rejects.toThrowError( InternalServerError ); }); diff --git a/packages/idempotency/src/middleware/makeHandlerIdempotent.ts b/packages/idempotency/src/middleware/makeHandlerIdempotent.ts index 60c647a6ae..cdc5403994 100644 --- a/packages/idempotency/src/middleware/makeHandlerIdempotent.ts +++ b/packages/idempotency/src/middleware/makeHandlerIdempotent.ts @@ -124,7 +124,7 @@ const makeHandlerIdempotent = ( }); const idempotencyHandler = new IdempotencyHandler({ - functionToMakeIdempotent: /* v8 ignore next */ () => ({}), + functionToMakeIdempotent: /* v8 ignore next -- @preserve */ () => ({}), functionArguments: [], idempotencyConfig, persistenceStore, diff --git a/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts b/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts index 6344a9246a..411797bd52 100644 --- a/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts +++ b/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts @@ -28,8 +28,6 @@ vi.mock('node:crypto', () => ({ })); describe('Class: BasePersistenceLayer', () => { - const ENVIRONMENT_VARIABLES = process.env; - beforeAll(() => { vi.useFakeTimers().setSystemTime(new Date()); }); @@ -37,11 +35,10 @@ describe('Class: BasePersistenceLayer', () => { beforeEach(() => { vi.clearAllMocks(); vi.resetModules(); - process.env = { ...ENVIRONMENT_VARIABLES }; + vi.stubEnv('AWS_LAMBDA_FUNCTION_NAME', 'my-lambda-function'); }); afterAll(() => { - process.env = ENVIRONMENT_VARIABLES; vi.useRealTimers(); }); diff --git a/packages/kafka/src/consumer.ts b/packages/kafka/src/consumer.ts index 10436372f2..df8016a25b 100644 --- a/packages/kafka/src/consumer.ts +++ b/packages/kafka/src/consumer.ts @@ -139,12 +139,11 @@ const getDeserializer = async (type?: string) => { */ const parseSchema = (value: unknown, schema: StandardSchemaV1) => { const result = schema['~standard'].validate(value); - /* v8 ignore start */ + /* v8 ignore if -- @preserve */ if (result instanceof Promise) throw new KafkaConsumerParserError( 'Schema parsing supports only synchronous validation' ); - /* v8 ignore stop */ if (result.issues) { throw new KafkaConsumerParserError('Schema validation failed', { cause: result.issues, diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index 9c409d6d26..8098ce3fd4 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -515,7 +515,7 @@ class Logger extends Utility implements LoggerInterface { }); } throw error; - /* v8 ignore next */ + /* v8 ignore next -- @preserve */ } finally { if (options?.clearState || options?.resetKeys) loggerRef.resetKeys(); loggerRef.clearBuffer(); @@ -527,7 +527,8 @@ class Logger extends Utility implements LoggerInterface { /** * @deprecated This method is deprecated and will be removed in the future major versions. Use {@link resetKeys()} instead. */ - /* v8 ignore start */ public static injectLambdaContextAfterOrOnError( + /* v8 ignore next -- @preserve */ + public static injectLambdaContextAfterOrOnError( logger: Logger, _persistentAttributes: LogAttributes, options?: InjectLambdaContextOptions @@ -535,12 +536,13 @@ class Logger extends Utility implements LoggerInterface { if (options && (options.clearState || options?.resetKeys)) { logger.resetKeys(); } - } /* v8 ignore stop */ + } /** * @deprecated - This method is deprecated and will be removed in the next major version. */ - /* v8 ignore start */ public static injectLambdaContextBefore( + /* v8 ignore next -- @preserve */ + public static injectLambdaContextBefore( logger: Logger, event: unknown, context: Context, @@ -548,7 +550,7 @@ class Logger extends Utility implements LoggerInterface { ): void { logger.addContext(context); logger.logEventIfEnabled(event, options?.logEvent); - } /* v8 ignore stop */ + } /** * Log the AWS Lambda event payload for the current invocation if the environment variable `POWERTOOLS_LOGGER_LOG_EVENT` is set to `true`. diff --git a/packages/metrics/src/Metrics.ts b/packages/metrics/src/Metrics.ts index ad9e2de7f4..aab8c2ca20 100644 --- a/packages/metrics/src/Metrics.ts +++ b/packages/metrics/src/Metrics.ts @@ -817,9 +817,10 @@ class Metrics extends Utility implements MetricsInterface { * - `POWERTOOLS_FUNCTION_NAME` environment variable * - {@link Metrics.captureColdStartMetric | `captureColdStartMetric('myFunctionName')`} method */ - /* v8 ignore start */ public setFunctionName(name: string): void { + /* v8 ignore next -- @preserve */ + public setFunctionName(name: string): void { this.functionName = name; - } /* v8 ignore end */ + } /** * Set the flag to throw an error if no metrics are emitted. @@ -874,9 +875,10 @@ class Metrics extends Utility implements MetricsInterface { /** * @deprecated Use {@link Metrics.setThrowOnEmptyMetrics | `setThrowOnEmptyMetrics()`} instead. */ - /* v8 ignore start */ public throwOnEmptyMetrics(): void { + /* v8 ignore next -- @preserve */ + public throwOnEmptyMetrics(): void { this.shouldThrowOnEmptyMetrics = true; - } /* v8 ignore stop */ + } /** * Gets the current number of dimensions count. diff --git a/packages/parameters/src/appconfig/AppConfigProvider.ts b/packages/parameters/src/appconfig/AppConfigProvider.ts index 338916ef08..d8443c9f2b 100644 --- a/packages/parameters/src/appconfig/AppConfigProvider.ts +++ b/packages/parameters/src/appconfig/AppConfigProvider.ts @@ -259,12 +259,10 @@ class AppConfigProvider extends BaseProvider { /** * Retrieving multiple configurations is not supported by AWS AppConfig. */ - /* v8 ignore start */ public async getMultiple( - path: string, - _options?: unknown - ): Promise { + /* v8 ignore next -- @preserve */ + public async getMultiple(path: string, _options?: unknown): Promise { await super.getMultiple(path); - } /* v8 ignore stop */ + } /** * Retrieve a configuration from AWS AppConfig. diff --git a/packages/parameters/src/secrets/SecretsProvider.ts b/packages/parameters/src/secrets/SecretsProvider.ts index a53dfc120a..d6d67a612c 100644 --- a/packages/parameters/src/secrets/SecretsProvider.ts +++ b/packages/parameters/src/secrets/SecretsProvider.ts @@ -194,12 +194,10 @@ class SecretsProvider extends BaseProvider { /** * Retrieving multiple secrets is not supported with AWS Secrets Manager. */ - /* v8 ignore start */ public async getMultiple( - path: string, - _options?: unknown - ): Promise { + /* v8 ignore next -- @preserve */ + public async getMultiple(path: string, _options?: unknown): Promise { await super.getMultiple(path); - } /* v8 ignore stop */ + } /** * Retrieve a secret from AWS Secrets Manager. diff --git a/packages/parameters/tests/unit/setParameter.test.ts b/packages/parameters/tests/unit/setParameter.test.ts index fa03b2ed58..2b1accd0e7 100644 --- a/packages/parameters/tests/unit/setParameter.test.ts +++ b/packages/parameters/tests/unit/setParameter.test.ts @@ -49,13 +49,13 @@ describe('Function: setParameter', () => { expect(DEFAULT_PROVIDERS.ssm).toBe(provider); }); - it('rethrows the error thrown by the underlying sdk client', () => { + it('rethrows the error thrown by the underlying sdk client', async () => { // Prepare const options: SSMSetOptions = { value: 'my-value' }; client.on(PutParameterCommand).rejects(new Error('Could not send command')); // Assess - expect(async () => { + await expect(async () => { await setParameter(parameterName, options); }).rejects.toThrowError( `Unable to set parameter with name ${parameterName}` diff --git a/packages/parser/src/parser.ts b/packages/parser/src/parser.ts index 9a7077f8c1..df8751dbc4 100644 --- a/packages/parser/src/parser.ts +++ b/packages/parser/src/parser.ts @@ -119,11 +119,10 @@ function parse( } const result = schema['~standard'].validate(data); - /* v8 ignore start */ + /* v8 ignore if -- @preserve */ if (result instanceof Promise) { throw new ParseError('Schema parsing supports only synchronous validation'); } - /* v8 ignore stop */ if (result.issues) { const error = new ParseError('Failed to parse schema', { diff --git a/packages/parser/src/schemas/alb.ts b/packages/parser/src/schemas/alb.ts index 9b61825ba4..c86357a0fc 100644 --- a/packages/parser/src/schemas/alb.ts +++ b/packages/parser/src/schemas/alb.ts @@ -87,11 +87,10 @@ const AlbSchema = z.object({ * * This schema will be removed in a future major release. */ -/* v8 ignore start */ +/* v8 ignore next -- @preserve */ const AlbMultiValueHeadersSchema = AlbSchema.extend({ multiValueHeaders: z.record(z.string(), z.array(z.string())), multiValueQueryStringParameters: z.record(z.string(), z.array(z.string())), }); -/* v8 ignore stop */ export { AlbSchema, AlbMultiValueHeadersSchema }; diff --git a/packages/parser/tests/events/dynamodb/base.json b/packages/parser/tests/events/dynamodb/base.json index 3c7eda20f7..b756571a2a 100644 --- a/packages/parser/tests/events/dynamodb/base.json +++ b/packages/parser/tests/events/dynamodb/base.json @@ -60,6 +60,32 @@ "eventName": "MODIFY", "eventSourceARN": "source_arn", "eventSource": "aws:dynamodb" + }, + { + "eventID": "3", + "eventVersion": "1.0", + "dynamodb": { + "OldImage": { + "Message": { + "S": "New item!" + }, + "Id": { + "N": "101" + } + }, + "SequenceNumber": "222", + "Keys": { + "Id": { + "N": "101" + } + }, + "SizeBytes": 59, + "StreamViewType": "OLD_IMAGE" + }, + "awsRegion": "us-west-2", + "eventName": "MODIFY", + "eventSourceARN": "source_arn", + "eventSource": "aws:dynamodb" } ] } diff --git a/packages/parser/tests/unit/envelopes/dynamodb.test.ts b/packages/parser/tests/unit/envelopes/dynamodb.test.ts index dc5b920904..f7011f8346 100644 --- a/packages/parser/tests/unit/envelopes/dynamodb.test.ts +++ b/packages/parser/tests/unit/envelopes/dynamodb.test.ts @@ -106,6 +106,12 @@ describe('Envelope: DynamoDB Stream', () => { Id: 101, }, }, + { + OldImage: { + Message: 'New item!', + Id: 101, + }, + }, ], }); }); diff --git a/packages/parser/tests/unit/helpers.test.ts b/packages/parser/tests/unit/helpers.test.ts index efb184de0c..931a0599db 100644 --- a/packages/parser/tests/unit/helpers.test.ts +++ b/packages/parser/tests/unit/helpers.test.ts @@ -1,9 +1,4 @@ import { gzipSync } from 'node:zlib'; -import { - KinesisDataStreamRecord, - KinesisDataStreamRecordPayload, - KinesisDataStreamSchema, -} from 'src/schemas/kinesis.js'; import { describe, expect, it } from 'vitest'; import { z } from 'zod'; import { DynamoDBMarshalled } from '../../src/helpers/dynamodb.js'; @@ -13,6 +8,11 @@ import { DynamoDBStreamRecord, DynamoDBStreamSchema, } from '../../src/schemas/dynamodb.js'; +import { + KinesisDataStreamRecord, + KinesisDataStreamRecordPayload, + KinesisDataStreamSchema, +} from '../../src/schemas/kinesis.js'; import { SnsNotificationSchema, SnsRecordSchema, @@ -232,6 +232,10 @@ describe('Helper: DynamoDBMarshalled', () => { }, }, }, + { + ...event.Records[2], + dynamodb: {}, + }, ], }); }); diff --git a/packages/parser/tests/unit/schema/dynamodb.test.ts b/packages/parser/tests/unit/schema/dynamodb.test.ts index d10940b289..2b966dfb11 100644 --- a/packages/parser/tests/unit/schema/dynamodb.test.ts +++ b/packages/parser/tests/unit/schema/dynamodb.test.ts @@ -64,6 +64,26 @@ describe('Schema: DynamoDB', () => { eventSourceARN: 'source_arn', eventSource: 'aws:dynamodb', }, + { + eventID: '3', + eventVersion: '1.0', + dynamodb: { + OldImage: { + Message: 'New item!', + Id: 101, + }, + SequenceNumber: '222', + Keys: { + Id: 101, + }, + SizeBytes: 59, + StreamViewType: 'OLD_IMAGE', + }, + awsRegion: 'us-west-2', + eventName: 'MODIFY', + eventSourceARN: 'source_arn', + eventSource: 'aws:dynamodb', + }, ], }); }); @@ -179,6 +199,26 @@ describe('Schema: DynamoDB', () => { eventSourceARN: 'source_arn', eventSource: 'aws:dynamodb', }, + { + eventID: '3', + eventVersion: '1.0', + dynamodb: { + OldImage: { + Message: 'New item!', + Id: 101, + }, + SequenceNumber: '222', + Keys: { + Id: 101, + }, + SizeBytes: 59, + StreamViewType: 'OLD_IMAGE', + }, + awsRegion: 'us-west-2', + eventName: 'MODIFY', + eventSourceARN: 'source_arn', + eventSource: 'aws:dynamodb', + }, ], window: { start: '2020-07-30T17:00:00Z', diff --git a/packages/tracer/src/Tracer.ts b/packages/tracer/src/Tracer.ts index 738ef9955a..d59908b37c 100644 --- a/packages/tracer/src/Tracer.ts +++ b/packages/tracer/src/Tracer.ts @@ -4,6 +4,7 @@ * This is to prevent the AWS X-Ray SDK from logging errors when using top-level await features that make HTTP requests. * For example, when using the Parameters utility to fetch parameters during the initialization of the Lambda handler - See #2046 */ +/* v8 ignore else --@preserve */ if ( process.env.AWS_XRAY_CONTEXT_MISSING === '' || process.env.AWS_XRAY_CONTEXT_MISSING === undefined @@ -304,11 +305,12 @@ class Tracer extends Utility implements TracerInterface { * * @param aws - AWS SDK v2 import */ - /* v8 ignore start */ public captureAWS(aws: T): T { + /* v8 ignore next -- @preserve */ + public captureAWS(aws: T): T { if (!this.isTracingEnabled()) return aws; return this.provider.captureAWS(aws); - } /* v8 ignore stop */ + } /** * @deprecated Use {@link captureAWSv3Client | `captureAWSv3Client()`} instead. @@ -334,7 +336,8 @@ class Tracer extends Utility implements TracerInterface { * * @param service - AWS SDK v2 client */ - /* v8 ignore start */ public captureAWSClient(service: T): T { + /* v8 ignore next -- @preserve */ + public captureAWSClient(service: T): T { if (!this.isTracingEnabled()) return service; try { @@ -351,7 +354,7 @@ class Tracer extends Utility implements TracerInterface { throw error; } } - } /* v8 ignore stop */ + } /** * Patch an AWS SDK v3 client and create traces when your application makes calls to that AWS service. diff --git a/packages/tracer/src/provider/ProviderService.ts b/packages/tracer/src/provider/ProviderService.ts index 44a1488af5..58eec10ed6 100644 --- a/packages/tracer/src/provider/ProviderService.ts +++ b/packages/tracer/src/provider/ProviderService.ts @@ -50,16 +50,18 @@ class ProviderService implements ProviderServiceInterface { /** * @deprecated Use {@link captureAWSv3Client} instead. */ - /* v8 ignore start */ public captureAWS(awssdk: T): T { + /* v8 ignore next -- @preserve */ + public captureAWS(awssdk: T): T { return captureAWS(awssdk); - } /* v8 ignore stop */ + } /** * @deprecated Use {@link captureAWSv3Client} instead. */ - /* v8 ignore start */ public captureAWSClient(service: T): T { + /* v8 ignore next -- @preserve */ + public captureAWSClient(service: T): T { return captureAWSClient(service); - } /* v8 ignore stop */ + } public captureAWSv3Client(service: T): T { addUserAgentMiddleware(service, 'tracer'); diff --git a/packages/tracer/tests/unit/Tracer.test.ts b/packages/tracer/tests/unit/Tracer.test.ts index 8f9046a171..8e42a5f0e5 100644 --- a/packages/tracer/tests/unit/Tracer.test.ts +++ b/packages/tracer/tests/unit/Tracer.test.ts @@ -7,7 +7,7 @@ import { Subsegment, setContextMissingStrategy, } from 'aws-xray-sdk-core'; -import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { Tracer } from './../../src/index.js'; import type { ConfigServiceInterface } from '../../src/types/ConfigServiceInterface.js'; import type { CaptureLambdaHandlerOptions } from './../../src/types/index.js'; @@ -26,20 +26,15 @@ const createCaptureAsyncFuncMock = ( }); describe('Class: Tracer', () => { - const ENVIRONMENT_VARIABLES = process.env; const event = { foo: 'bar', bar: 'baz', }; beforeEach(() => { - vi.clearAllMocks(); + vi.unstubAllEnvs(); + vi.resetAllMocks(); vi.resetModules(); - process.env = { ...ENVIRONMENT_VARIABLES }; - }); - - afterAll(() => { - process.env = ENVIRONMENT_VARIABLES; }); describe('Method: constructor', () => { @@ -188,7 +183,7 @@ describe('Class: Tracer', () => { describe('Environment Variables configs', () => { it('disables tracing when AWS_EXECUTION_ENV environment variable is equal to AWS_Lambda_amplify-mock', () => { // Prepare - process.env.AWS_EXECUTION_ENV = 'AWS_Lambda_amplify-mock'; + vi.stubEnv('AWS_EXECUTION_ENV', 'AWS_Lambda_amplify-mock'); // Act const tracer = new Tracer(); @@ -203,7 +198,7 @@ describe('Class: Tracer', () => { it('disables tracing when AWS_SAM_LOCAL environment variable is set', () => { // Prepare - process.env.AWS_SAM_LOCAL = 'true'; + vi.stubEnv('AWS_SAM_LOCAL', 'true'); // Act const tracer = new Tracer(); @@ -218,7 +213,7 @@ describe('Class: Tracer', () => { it('leaves tracing enabled when AWS_EXECUTION_ENV environment variable is set', () => { // Prepare - process.env.AWS_EXECUTION_ENV = 'nodejs20.x'; + vi.stubEnv('AWS_EXECUTION_ENV', 'nodejs20.x'); // Act const tracer = new Tracer(); @@ -233,7 +228,7 @@ describe('Class: Tracer', () => { it('disables tracing when AWS_EXECUTION_ENV environment variable is NOT set', () => { // Prepare - process.env.AWS_EXECUTION_ENV = undefined; + vi.stubEnv('AWS_EXECUTION_ENV', undefined); // Act const tracer = new Tracer(); @@ -248,7 +243,7 @@ describe('Class: Tracer', () => { it('disables tracing when POWERTOOLS_TRACE_ENABLED environment variable is set to false', () => { // Prepare - process.env.POWERTOOLS_TRACE_ENABLED = 'false'; + vi.stubEnv('POWERTOOLS_TRACE_ENABLED', 'false'); // Act const tracer = new Tracer(); @@ -263,7 +258,7 @@ describe('Class: Tracer', () => { it('picks up the service name from the POWERTOOLS_SERVICE_NAME environment variable', () => { // Prepare - process.env.POWERTOOLS_SERVICE_NAME = 'my-backend-service'; + vi.stubEnv('POWERTOOLS_SERVICE_NAME', 'my-backend-service'); // Act const tracer = new Tracer(); @@ -278,7 +273,7 @@ describe('Class: Tracer', () => { it('configures the capture response feature from the POWERTOOLS_TRACER_CAPTURE_RESPONSE environment variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_RESPONSE = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_RESPONSE', 'false'); // Act const tracer = new Tracer(); @@ -293,7 +288,7 @@ describe('Class: Tracer', () => { it('ignores invalid values for the POWERTOOLS_TRACER_CAPTURE_RESPONSE environment variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_RESPONSE = ''; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_RESPONSE', ''); // Act const tracer = new Tracer(); @@ -308,7 +303,7 @@ describe('Class: Tracer', () => { it('configures the capture error feature using the POWERTOOLS_TRACER_CAPTURE_ERROR environment variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', 'false'); // Act const tracer = new Tracer(); @@ -323,7 +318,7 @@ describe('Class: Tracer', () => { it('ignores invalid POWERTOOLS_TRACER_CAPTURE_ERROR environment variable values', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = ''; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', ''); // Act const tracer = new Tracer(); @@ -338,7 +333,7 @@ describe('Class: Tracer', () => { it('configures the http instrumentation feature using the POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS environment variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS', 'false'); // Act const tracer = new Tracer(); @@ -353,7 +348,7 @@ describe('Class: Tracer', () => { it('ignores invalid values for the POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS environment variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS = ''; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS', ''); // Act const tracer = new Tracer(); @@ -434,7 +429,7 @@ describe('Class: Tracer', () => { it('uses the default service name when one is not provided', () => { // Prepare - process.env.POWERTOOLS_SERVICE_NAME = undefined; + vi.stubEnv('POWERTOOLS_SERVICE_NAME', undefined); const tracer: Tracer = new Tracer(); const putAnnotation = vi .spyOn(tracer, 'putAnnotation') @@ -464,7 +459,7 @@ describe('Class: Tracer', () => { it('does nothing when the feature is disabled via the POWERTOOLS_TRACER_CAPTURE_RESPONSE env variable', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_RESPONSE = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_RESPONSE', 'false'); const tracer: Tracer = new Tracer(); const putMetadataSpy = vi.spyOn(tracer, 'putMetadata'); @@ -473,7 +468,7 @@ describe('Class: Tracer', () => { // Assess expect(putMetadataSpy).toBeCalledTimes(0); - process.env.POWERTOOLS_TRACER_CAPTURE_RESPONSE = undefined; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_RESPONSE', undefined); }); it('it does nothing when the response is undefined', () => { @@ -522,7 +517,7 @@ describe('Class: Tracer', () => { it('does not capture the error when called while POWERTOOLS_TRACER_CAPTURE_ERROR is set to false', () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', 'false'); const tracer: Tracer = new Tracer(); const subsegment = new Subsegment(`## ${context.functionName}`); vi.spyOn(tracer, 'getSegment').mockImplementation(() => subsegment); @@ -535,7 +530,7 @@ describe('Class: Tracer', () => { // Assess expect(addErrorFlagSpy).toBeCalledTimes(1); expect(addErrorSpy).toBeCalledTimes(0); - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = undefined; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', undefined); }); it('calls subsegment.addError correctly when called with default config', () => { @@ -598,7 +593,7 @@ describe('Class: Tracer', () => { it('returns a dummy segment when called outside of a namespace or without parent segment, and tracing is disabled', () => { // Prepare - process.env.AWS_EXECUTION_ENV = undefined; // This will disable the tracer, simulating local execution + vi.stubEnv('AWS_EXECUTION_ENV', undefined); // This will disable the tracer, simulating local execution const tracer: Tracer = new Tracer(); // Act @@ -670,7 +665,7 @@ describe('Class: Tracer', () => { it('does nothing when called outside of a namespace or without parent segment, and tracing is disabled', () => { // Prepare - process.env.AWS_EXECUTION_ENV = undefined; // This will disable the tracer, simulating local execution + vi.stubEnv('AWS_EXECUTION_ENV', undefined); // This will disable the tracer, simulating local execution const tracer: Tracer = new Tracer(); const setSegmentSpy = vi.spyOn(tracer.provider, 'setSegment'); @@ -875,7 +870,7 @@ describe('Class: Tracer', () => { it('does not capture exceptions when the feature is disabled', async () => { // Prepare - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = 'false'; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', 'false'); const tracer: Tracer = new Tracer(); const captureAsyncFuncSpy = vi.spyOn(tracer.provider, 'captureAsyncFunc'); const newSubsegment = new Subsegment('### dummyMethod'); @@ -891,7 +886,7 @@ describe('Class: Tracer', () => { expect(addErrorSpy).toHaveBeenCalledTimes(0); expect.assertions(4); - process.env.POWERTOOLS_TRACER_CAPTURE_ERROR = undefined; + vi.stubEnv('POWERTOOLS_TRACER_CAPTURE_ERROR', undefined); }); it('captures exceptions as metadata by default', async () => { diff --git a/packages/validation/tests/unit/utils.test.ts b/packages/validation/tests/unit/utils.test.ts new file mode 100644 index 0000000000..c853a7ec87 --- /dev/null +++ b/packages/validation/tests/unit/utils.test.ts @@ -0,0 +1,18 @@ +import { expect, it } from 'vitest'; +import { SchemaValidationError } from '../../src/errors.js'; +import { getErrorCause } from '../../src/utils.js'; + +it('gets the original cause of the error if it is a SchemaValidationError', () => { + const cause = getErrorCause( + new SchemaValidationError('Schema validation failed', { + cause: 'Original cause', + }) + ); + expect(cause).toBe('Original cause'); +}); + +it('gets the error itself if it is any error other than SchemaValidationError', () => { + const error = new Error('test-error'); + const cause = getErrorCause(error); + expect(cause).toBe(error); +});