From 4d6f1b0435b4d7b69b2648a1342729bdfc9ee947 Mon Sep 17 00:00:00 2001 From: George Fu Date: Tue, 28 Oct 2025 13:08:03 -0400 Subject: [PATCH 1/3] chore(middleware-recursion-detection): update version of lambda invoke store --- .eslintrc.js | 33 +++++++++++++------ .../package.json | 2 +- yarn.lock | 10 +++--- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 585e943f18be..86826a527cae 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -28,19 +28,32 @@ module.exports = { /** Errors */ "simple-import-sort/imports": "error", "sort-export-all/sort-export-all": "error", - "no-restricted-imports": [ - "error", - { - patterns: [ - { - group: ["*src*", "!*CsrC*", "*dist-*"], - }, - ], - }, - ], }, ignorePatterns: [ "packages/nested-clients/src/submodules/**/protocols/*.ts", "packages/nested-clients/src/submodules/**/models/*.ts", ], + overrides: [ + { + files: ["lib/*/src/**/*.ts", "clients/*/src/**/*.ts", "packages/*/src/**/*.ts", "private/*/src/**/*.ts"], + excludedFiles: [ + "lib/*/src/**/*.spec.ts", + "clients/*/src/**/*.spec.ts", + "packages/*/src/**/*.spec.ts", + "private/*/src/**/*.spec.ts", + ], + rules: { + "no-restricted-imports": [ + "error", + { + patterns: [ + { + group: ["*src*", "*dist-*"], + }, + ], + }, + ], + }, + }, + ], }; diff --git a/packages/middleware-recursion-detection/package.json b/packages/middleware-recursion-detection/package.json index 1cf5d41880d5..e43df8f7ddc6 100644 --- a/packages/middleware-recursion-detection/package.json +++ b/packages/middleware-recursion-detection/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "*", - "@aws/lambda-invoke-store": "^0.0.1", + "@aws/lambda-invoke-store": "^0.1.1", "@smithy/protocol-http": "^5.3.3", "@smithy/types": "^4.8.0", "tslib": "^2.6.2" diff --git a/yarn.lock b/yarn.lock index 002f13666327..836e384b6cc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23610,7 +23610,7 @@ __metadata: resolution: "@aws-sdk/middleware-recursion-detection@workspace:packages/middleware-recursion-detection" dependencies: "@aws-sdk/types": "npm:*" - "@aws/lambda-invoke-store": "npm:^0.0.1" + "@aws/lambda-invoke-store": "npm:^0.1.1" "@smithy/protocol-http": "npm:^5.3.3" "@smithy/types": "npm:^4.8.0" "@tsconfig/recommended": "npm:1.0.1" @@ -24532,10 +24532,10 @@ __metadata: languageName: node linkType: hard -"@aws/lambda-invoke-store@npm:^0.0.1": - version: 0.0.1 - resolution: "@aws/lambda-invoke-store@npm:0.0.1" - checksum: 10c0/0bbf3060014a462177fb743e132e9b106a6743ad9cd905df4bd26e9ca8bfe2cc90473b03a79938fa908934e45e43f366f57af56a697991abda71d9ac92f5018f +"@aws/lambda-invoke-store@npm:^0.1.1": + version: 0.1.1 + resolution: "@aws/lambda-invoke-store@npm:0.1.1" + checksum: 10c0/27c90d9af7cca7ff4870e87dc303516e6d09ebe18f5fa13813397cd6a37fd26cf3ff1715469e3c5323fea0404a55c110f35e21bcc3ea595a4f6ba6406ea1f103 languageName: node linkType: hard From 3124c1c2aefbf807e0277bf65bbcbc2e39f13e9d Mon Sep 17 00:00:00 2001 From: George Fu Date: Tue, 28 Oct 2025 13:36:13 -0400 Subject: [PATCH 2/3] chore: update types tsconfig to node16 module resolution --- packages/middleware-recursion-detection/tsconfig.types.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/middleware-recursion-detection/tsconfig.types.json b/packages/middleware-recursion-detection/tsconfig.types.json index 6cdf9f52ea06..0b4a56e55076 100644 --- a/packages/middleware-recursion-detection/tsconfig.types.json +++ b/packages/middleware-recursion-detection/tsconfig.types.json @@ -2,7 +2,9 @@ "compilerOptions": { "baseUrl": ".", "declarationDir": "dist-types", - "rootDir": "src" + "rootDir": "src", + "module": "Node16", + "moduleResolution": "Node16" }, "extends": "../../tsconfig.types.json", "include": ["src/"] From 3dc7e7c334f451271d62b0ddf943c7f35537ba85 Mon Sep 17 00:00:00 2001 From: George Fu Date: Tue, 28 Oct 2025 14:56:30 -0400 Subject: [PATCH 3/3] chore: compilation fixes --- .../src/getCrc32ChecksumAlgorithmFunction.spec.ts | 10 +++++----- .../src/getCrc32ChecksumAlgorithmFunction.ts | 4 ++-- .../src/recursionDetectionMiddleware.spec.ts | 7 ++++++- .../src/recursionDetectionMiddleware.ts | 5 ++++- .../middleware-recursion-detection/tsconfig.types.json | 4 +--- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.spec.ts b/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.spec.ts index 053895b815f0..81968947f27e 100644 --- a/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.spec.ts +++ b/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.spec.ts @@ -15,7 +15,7 @@ describe(getCrc32ChecksumAlgorithmFunction.name, () => { const mockData = new Uint8Array([1, 2, 3]); const mockChecksum = 42; - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore zlib.crc32 = vi .fn() .mockReturnValueOnce(mockChecksum) @@ -24,20 +24,20 @@ describe(getCrc32ChecksumAlgorithmFunction.name, () => { const crc32Fn = getCrc32ChecksumAlgorithmFunction(); expect(crc32Fn).not.toBe(AwsCrc32); - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore expect(zlib.crc32).not.toHaveBeenCalled(); const crc32 = new crc32Fn(); - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore expect(zlib.crc32).not.toHaveBeenCalled(); expect(await crc32.digest()).toEqual(numToUint8(0)); crc32.update(mockData); - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore expect(zlib.crc32).toHaveBeenCalledWith(mockData, 0); expect(await crc32.digest()).toEqual(numToUint8(mockChecksum)); crc32.update(mockData); - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore expect(zlib.crc32).toHaveBeenCalledWith(mockData, mockChecksum); expect(await crc32.digest()).toEqual(numToUint8(2 * mockChecksum)); diff --git a/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.ts b/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.ts index 5ee421b46000..ee6afa1de9e2 100644 --- a/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.ts +++ b/packages/middleware-flexible-checksums/src/getCrc32ChecksumAlgorithmFunction.ts @@ -7,7 +7,7 @@ class NodeCrc32 implements Checksum { private checksum = 0; update(data: Uint8Array) { - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore this.checksum = zlib.crc32(data, this.checksum); } @@ -21,7 +21,7 @@ class NodeCrc32 implements Checksum { } export const getCrc32ChecksumAlgorithmFunction = () => { - // @ts-expect-error crc32 is defined only for Node.js >=v20.15.0 and >=v22.2.0. + // @ts-ignore if (typeof zlib.crc32 === "undefined") { return AwsCrc32; } diff --git a/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.spec.ts b/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.spec.ts index 7a06d8cf5f21..ee8db73bf245 100644 --- a/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.spec.ts +++ b/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.spec.ts @@ -1,9 +1,14 @@ -import { InvokeStore } from "@aws/lambda-invoke-store"; +// @ts-ignore +import { InvokeStore as InvokeStoreImpl } from "@aws/lambda-invoke-store"; +// eslint-disable-next-line no-restricted-imports +import type { InvokeStore as InvokeStoreType } from "@aws/lambda-invoke-store/dist-types/invoke-store.d"; import { HttpRequest } from "@smithy/protocol-http"; import { afterAll, beforeEach, describe, expect, test as it, vi } from "vitest"; import { recursionDetectionMiddleware } from "./recursionDetectionMiddleware"; +const InvokeStore = InvokeStoreImpl as typeof InvokeStoreType; + describe(recursionDetectionMiddleware.name, () => { const mockNextHandler = vi.fn(); const originEnv = process.env; diff --git a/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.ts b/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.ts index 21355280466d..c618f6cbbb20 100644 --- a/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.ts +++ b/packages/middleware-recursion-detection/src/recursionDetectionMiddleware.ts @@ -1,4 +1,7 @@ +// @ts-ignore import { InvokeStore } from "@aws/lambda-invoke-store"; +// eslint-disable-next-line no-restricted-imports +import type { InvokeStore as InvokeStoreType } from "@aws/lambda-invoke-store/dist-types/invoke-store.d"; import { HttpRequest } from "@smithy/protocol-http"; import { BuildHandler, @@ -34,7 +37,7 @@ export const recursionDetectionMiddleware = const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; const traceIdFromEnv = process.env[ENV_TRACE_ID]; - const traceIdFromInvokeStore = InvokeStore.getXRayTraceId(); + const traceIdFromInvokeStore = (InvokeStore as typeof InvokeStoreType).getXRayTraceId(); const traceId = traceIdFromInvokeStore ?? traceIdFromEnv; const nonEmptyString = (str: unknown): str is string => typeof str === "string" && str.length > 0; diff --git a/packages/middleware-recursion-detection/tsconfig.types.json b/packages/middleware-recursion-detection/tsconfig.types.json index 0b4a56e55076..6cdf9f52ea06 100644 --- a/packages/middleware-recursion-detection/tsconfig.types.json +++ b/packages/middleware-recursion-detection/tsconfig.types.json @@ -2,9 +2,7 @@ "compilerOptions": { "baseUrl": ".", "declarationDir": "dist-types", - "rootDir": "src", - "module": "Node16", - "moduleResolution": "Node16" + "rootDir": "src" }, "extends": "../../tsconfig.types.json", "include": ["src/"]