diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index bf55eac0a8..2ddaac52df 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # See here for image contents: https://github.com/microsoft/vscode-dev-containers/blob/v0.212.0/containers/javascript-node/.devcontainer/base.Dockerfile -# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster +# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 16-bullseye, 14-bullseye, 16-buster, 14-buster ARG VARIANT="16-bullseye" FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3a3ea23721..8880b27661 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,7 +4,7 @@ "name": "Node.js", "build": { "dockerfile": "Dockerfile", - // Update 'VARIANT' to pick a Node version: 16, 14, 12. + // Update 'VARIANT' to pick a Node version: 16, 14. // Append -bullseye or -buster to pin to an OS version. // Use -bullseye variants on local arm64/Apple Silicon. "args": { diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 452ca49707..89f191f218 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -58,7 +58,6 @@ body: attributes: label: AWS Lambda function runtime options: - - 12.x - 14.x - 16.x validations: diff --git a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml index 637b2d5d55..376659b104 100644 --- a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml +++ b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml @@ -10,7 +10,7 @@ jobs: NODE_ENV: dev strategy: matrix: - version: [12, 14, 16] + version: [14, 16] fail-fast: false steps: - name: Checkout code diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 23fde6dc1f..e7f4dc272b 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: package: [logger, metrics, tracer] - version: [12, 14, 16] + version: [14, 16] fail-fast: false steps: - name: Checkout Repo @@ -70,7 +70,7 @@ jobs: strategy: fail-fast: false matrix: - version: [12, 14, 16] + version: [14, 16] steps: - name: Checkout Repo uses: actions/checkout@v3 diff --git a/layer-publisher/src/powertools-typescript-layer.ts b/layer-publisher/src/powertools-typescript-layer.ts index df0e5b01a2..3ced6eb093 100644 --- a/layer-publisher/src/powertools-typescript-layer.ts +++ b/layer-publisher/src/powertools-typescript-layer.ts @@ -38,11 +38,11 @@ export class PowerToolsTypeScriptLayer extends lambda.LayerVersion { super(scope, id, { layerVersionName: props?.layerVersionName, description: `Lambda Powertools for TypeScript version ${props?.version}`, - compatibleRuntimes: [ lambda.Runtime.NODEJS_12_X, lambda.Runtime.NODEJS_14_X, lambda.Runtime.NODEJS_16_X ], + compatibleRuntimes: [ lambda.Runtime.NODEJS_14_X, lambda.Runtime.NODEJS_16_X ], code: lambda.Code.fromAsset(path.join(__dirname, '.'), { assetHash: Md5.hashStr(commandJoined), bundling: { - image: lambda.Runtime.NODEJS_12_X.bundlingImage, + image: lambda.Runtime.NODEJS_14_X.bundlingImage, local: { tryBundle(outputDir: string) { try { diff --git a/package.json b/package.json index 24809d929b..a55567bc36 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "lib/**/*" ], "engines": { - "node": ">=12" + "node": ">=14" }, "dependencies": { "hosted-git-info": "^5.0.0" diff --git a/packages/commons/tests/utils/e2eUtils.ts b/packages/commons/tests/utils/e2eUtils.ts index 44f0375a6e..bb53b1e8fe 100644 --- a/packages/commons/tests/utils/e2eUtils.ts +++ b/packages/commons/tests/utils/e2eUtils.ts @@ -14,10 +14,9 @@ import { InvocationLogs } from './InvocationLogs'; const lambdaClient = new AWS.Lambda(); -const testRuntimeKeys = [ 'nodejs12x', 'nodejs14x', 'nodejs16x' ]; +const testRuntimeKeys = [ 'nodejs14x', 'nodejs16x' ]; export type TestRuntimesKey = typeof testRuntimeKeys[number]; export const TEST_RUNTIMES: Record = { - nodejs12x: Runtime.NODEJS_12_X, nodejs14x: Runtime.NODEJS_14_X, nodejs16x: Runtime.NODEJS_16_X, }; diff --git a/packages/commons/tsconfig-dev.json b/packages/commons/tsconfig-dev.json index 7743a7b77d..802f18e8f9 100644 --- a/packages/commons/tsconfig-dev.json +++ b/packages/commons/tsconfig-dev.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -23,7 +23,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/commons/tsconfig.json b/packages/commons/tsconfig.json index 19330d4c1b..cbd9922f32 100644 --- a/packages/commons/tsconfig.json +++ b/packages/commons/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -23,7 +23,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 8448e48872..5a5e1e06b7 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -13,7 +13,6 @@ "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs12x": "echo \"Not implemented\"", "test:e2e:nodejs14x": "echo \"Not implemented\"", "test:e2e:nodejs16x": "echo \"Not implemented\"", "test:e2e": "echo \"Not implemented\"", diff --git a/packages/idempotency/tsconfig.json b/packages/idempotency/tsconfig.json index 555c42c9e8..09df4b9ba4 100644 --- a/packages/idempotency/tsconfig.json +++ b/packages/idempotency/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "outDir": "lib", @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "node" ] diff --git a/packages/logger/package.json b/packages/logger/package.json index 1952251bc1..eaab9995ae 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -13,7 +13,6 @@ "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs12x": "RUNTIME=nodejs12x jest --group=e2e", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", "test:e2e": "jest --group=e2e", @@ -59,4 +58,4 @@ "serverless", "nodejs" ] -} +} \ No newline at end of file diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index 6a57f92eb4..030cb2627b 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -316,7 +316,8 @@ class Logger extends Utility implements ClassThatLogs { /** * The descriptor.value is the method this decorator decorates, it cannot be undefined. */ - const originalMethod = descriptor.value; + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const originalMethod = descriptor.value!; // eslint-disable-next-line @typescript-eslint/no-this-alias const loggerRef = this; @@ -331,10 +332,9 @@ class Logger extends Utility implements ClassThatLogs { Logger.injectLambdaContextBefore(loggerRef, event, context, options); - /* eslint-disable @typescript-eslint/no-non-null-assertion */ let result: unknown; try { - result = await originalMethod!.apply(this, [ event, context, callback ]); + result = await originalMethod.apply(this, [ event, context, callback ]); } catch (error) { throw error; } finally { diff --git a/packages/logger/tsconfig-dev.json b/packages/logger/tsconfig-dev.json index 7c6046c8bc..4ea999b37f 100644 --- a/packages/logger/tsconfig-dev.json +++ b/packages/logger/tsconfig-dev.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/logger/tsconfig.es.json b/packages/logger/tsconfig.es.json index 7c6046c8bc..4ea999b37f 100644 --- a/packages/logger/tsconfig.es.json +++ b/packages/logger/tsconfig.es.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/logger/tsconfig.json b/packages/logger/tsconfig.json index 3d7d8b8b05..20da6e39a9 100644 --- a/packages/logger/tsconfig.json +++ b/packages/logger/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "outDir": "lib", @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 616169db00..0e2c34832d 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -13,7 +13,6 @@ "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs12x": "RUNTIME=nodejs12x jest --group=e2e", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", "test:e2e": "jest --group=e2e", @@ -56,4 +55,4 @@ "serverless", "nodejs" ] -} +} \ No newline at end of file diff --git a/packages/metrics/tsconfig.es.json b/packages/metrics/tsconfig.es.json index 65215a1c76..d28abaa6d5 100644 --- a/packages/metrics/tsconfig.es.json +++ b/packages/metrics/tsconfig.es.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -23,7 +23,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/metrics/tsconfig.json b/packages/metrics/tsconfig.json index 23252b808b..582618277f 100644 --- a/packages/metrics/tsconfig.json +++ b/packages/metrics/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -24,7 +24,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/parameters/package.json b/packages/parameters/package.json index c66f4d71a9..dabf1ad82b 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -13,7 +13,6 @@ "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs12x": "echo \"Not implemented\"", "test:e2e:nodejs14x": "echo \"Not implemented\"", "test:e2e:nodejs16x": "echo \"Not implemented\"", "test:e2e": "echo \"Not implemented\"", diff --git a/packages/parameters/tsconfig-dev.json b/packages/parameters/tsconfig-dev.json index 7c6046c8bc..4ea999b37f 100644 --- a/packages/parameters/tsconfig-dev.json +++ b/packages/parameters/tsconfig-dev.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/parameters/tsconfig.es.json b/packages/parameters/tsconfig.es.json index 7c6046c8bc..4ea999b37f 100644 --- a/packages/parameters/tsconfig.es.json +++ b/packages/parameters/tsconfig.es.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/parameters/tsconfig.json b/packages/parameters/tsconfig.json index 3d7d8b8b05..20da6e39a9 100644 --- a/packages/parameters/tsconfig.json +++ b/packages/parameters/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "outDir": "lib", @@ -22,7 +22,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 545d7ac177..5f2c4d6c0d 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -13,7 +13,6 @@ "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs12x": "RUNTIME=nodejs12x jest --group=e2e", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", "test:e2e": "jest --group=e2e", @@ -59,4 +58,4 @@ "serverless", "nodejs" ] -} +} \ No newline at end of file diff --git a/packages/tracer/tsconfig.es.json b/packages/tracer/tsconfig.es.json index 7743a7b77d..802f18e8f9 100644 --- a/packages/tracer/tsconfig.es.json +++ b/packages/tracer/tsconfig.es.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -23,7 +23,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node" diff --git a/packages/tracer/tsconfig.json b/packages/tracer/tsconfig.json index c3cb48b6fb..8b93f8c299 100644 --- a/packages/tracer/tsconfig.json +++ b/packages/tracer/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "experimentalDecorators": true, "noImplicitAny": true, - "target": "ES2019", + "target": "ES2020", "module": "commonjs", "declaration": true, "declarationMap": true, @@ -24,7 +24,7 @@ "watchDirectory": "useFsEvents", "fallbackPolling": "dynamicPriority" }, - "lib": [ "es2019" ], + "lib": [ "es2020" ], "types": [ "jest", "node"