diff --git a/.projen/deps.json b/.projen/deps.json index f1e619f..6176203 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -109,7 +109,7 @@ }, { "name": "aws-cdk-lib", - "version": "^2.88.0", + "version": "^2.108.1", "type": "peer" }, { diff --git a/.projenrc.js b/.projenrc.js index 7f7d687..106fbdf 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -14,7 +14,7 @@ const project = new awscdk.AwsCdkConstructLibrary({ 'typescript', 'nodejs', ], - cdkVersion: '2.88.0', + cdkVersion: '2.108.1', defaultReleaseBranch: 'main', minNodeVersion: '16.19.1', majorVersion: 3, diff --git a/package.json b/package.json index 2383d7e..fac0a0d 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@types/prettier": "2.6.0", "@typescript-eslint/eslint-plugin": "^6", "@typescript-eslint/parser": "^6", - "aws-cdk-lib": "2.88.0", + "aws-cdk-lib": "2.108.1", "constructs": "10.0.5", "eslint": "^8", "eslint-import-resolver-node": "^0.3.9", @@ -61,7 +61,7 @@ "typescript": "^4.9.5" }, "peerDependencies": { - "aws-cdk-lib": "^2.88.0", + "aws-cdk-lib": "^2.108.1", "constructs": "^10.0.5" }, "resolutions": { diff --git a/src/lambda-powertools-layer.ts b/src/lambda-powertools-layer.ts index 8f09b8d..5cd07ee 100644 --- a/src/lambda-powertools-layer.ts +++ b/src/lambda-powertools-layer.ts @@ -80,8 +80,12 @@ export class LambdaPowertoolsLayer extends lambda.LayerVersion { const runtimeFamily = props?.runtimeFamily ?? lambda.RuntimeFamily.PYTHON; const languageName = getLanguageNameFromRuntimeFamily(runtimeFamily); const dockerFilePath = path.join(__dirname, `../layer/${languageName}`); - const compatibleArchitectures = props?.compatibleArchitectures ?? [lambda.Architecture.X86_64]; - const compatibleArchitecturesDescription = compatibleArchitectures.map((arch) => arch.name).join(', '); + const compatibleArchitectures = props?.compatibleArchitectures ?? [ + lambda.Architecture.X86_64, + ]; + const compatibleArchitecturesDescription = compatibleArchitectures + .map((arch) => arch.name) + .join(', '); console.log(`path ${dockerFilePath}`); super(scope, id, { @@ -94,23 +98,35 @@ export class LambdaPowertoolsLayer extends lambda.LayerVersion { ), }, // supports cross-platform docker build - platform: getDockerPlatformNameFromArchitectures(compatibleArchitectures), + platform: getDockerPlatformNameFromArchitectures( + compatibleArchitectures, + ), }), - layerVersionName: props?.layerVersionName ? props?.layerVersionName : undefined, + layerVersionName: props?.layerVersionName + ? props?.layerVersionName + : undefined, license: 'MIT-0', compatibleRuntimes: getRuntimesFromRuntimeFamily(runtimeFamily), - description: `Powertools for AWS Lambda (${languageName}) [${compatibleArchitecturesDescription}]${ - props?.includeExtras ? ' with extra dependencies' : '' - } ${props?.version ? `version ${props?.version}` : 'latest version'}`.trim(), + description: + `Powertools for AWS Lambda (${languageName}) [${compatibleArchitecturesDescription}]${ + props?.includeExtras ? ' with extra dependencies' : '' + } ${ + props?.version ? `version ${props?.version}` : 'latest version' + }`.trim(), // Dear reader: I'm happy that you've stumbled upon this line too! You might wonder, why are we doing this and passing `undefined` when the list is empty? // Answer: on regions that don't support ARM64 Lambdas, we can't use the `compatibleArchitectures` parameter. Otherwise CloudFormation will bail with an error. // So if this construct is called with en empty list of architectures, just pass undefined down to the CDK construct. - compatibleArchitectures: compatibleArchitectures.length == 0 ? undefined : compatibleArchitectures, + compatibleArchitectures: + compatibleArchitectures.length == 0 + ? undefined + : compatibleArchitectures, }); } } -function getRuntimesFromRuntimeFamily(runtimeFamily: lambda.RuntimeFamily): lambda.Runtime[] | undefined { +function getRuntimesFromRuntimeFamily( + runtimeFamily: lambda.RuntimeFamily, +): lambda.Runtime[] | undefined { switch (runtimeFamily) { case lambda.RuntimeFamily.PYTHON: return [ @@ -119,6 +135,7 @@ function getRuntimesFromRuntimeFamily(runtimeFamily: lambda.RuntimeFamily): lamb lambda.Runtime.PYTHON_3_9, lambda.Runtime.PYTHON_3_10, lambda.Runtime.PYTHON_3_11, + lambda.Runtime.PYTHON_3_12, ]; case lambda.RuntimeFamily.NODEJS: return [ @@ -126,13 +143,16 @@ function getRuntimesFromRuntimeFamily(runtimeFamily: lambda.RuntimeFamily): lamb lambda.Runtime.NODEJS_14_X, lambda.Runtime.NODEJS_16_X, lambda.Runtime.NODEJS_18_X, + lambda.Runtime.NODEJS_20_X, ]; default: return []; } } -function getLanguageNameFromRuntimeFamily(runtimeFamily: lambda.RuntimeFamily): string { +function getLanguageNameFromRuntimeFamily( + runtimeFamily: lambda.RuntimeFamily, +): string { switch (runtimeFamily) { case lambda.RuntimeFamily.PYTHON: return 'Python'; @@ -145,7 +165,9 @@ function getLanguageNameFromRuntimeFamily(runtimeFamily: lambda.RuntimeFamily): // Docker expects a single string for the --platform option. // getDockerPlatformNameFromArchitectures converts the Architecture enum to a string. -function getDockerPlatformNameFromArchitectures(architectures: lambda.Architecture[]): string { +function getDockerPlatformNameFromArchitectures( + architectures: lambda.Architecture[], +): string { if (architectures.length == 1) { return architectures[0].dockerPlatform; } else { diff --git a/test/lambda-powertools-python-layer.test.ts b/test/lambda-powertools-python-layer.test.ts index c39e0af..6f5c3ea 100644 --- a/test/lambda-powertools-python-layer.test.ts +++ b/test/lambda-powertools-python-layer.test.ts @@ -3,7 +3,6 @@ import { Template } from 'aws-cdk-lib/assertions'; import { Architecture, RuntimeFamily } from 'aws-cdk-lib/aws-lambda'; import { LambdaPowertoolsLayer } from '../src'; - describe('with no configuration the construct', () => { const stack = new Stack(); new LambdaPowertoolsLayer(stack, 'PowertoolsLayer'); @@ -28,6 +27,7 @@ describe('with no configuration the construct', () => { 'python3.9', 'python3.10', 'python3.11', + 'python3.12', ], }); }); @@ -55,9 +55,12 @@ describe('for layerVersionName configuraiton the construct', () => { layerVersionName: 'mySpecialName', }); - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - LayerName: 'mySpecialName', - }); + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + LayerName: 'mySpecialName', + }, + ); }); }); @@ -68,17 +71,23 @@ describe('with version configuration the construct', () => { version: '1.21.0', }); - - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - Description: 'Powertools for AWS Lambda (Python) [x86_64] version 1.21.0', - }); + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + Description: + 'Powertools for AWS Lambda (Python) [x86_64] version 1.21.0', + }, + ); }); test('fails with invalid version', () => { const stack = new Stack(); - expect(() => new LambdaPowertoolsLayer(stack, 'PowertoolsLayerBadVersion', { - version: '0.0.0', - })).toThrow(/docker exited with status 1/); + expect( + () => + new LambdaPowertoolsLayer(stack, 'PowertoolsLayerBadVersion', { + version: '0.0.0', + }), + ).toThrow(/docker exited with status 1/); }); test('synthesizes with pynadtic and specific version', () => { @@ -88,10 +97,13 @@ describe('with version configuration the construct', () => { version: '1.22.0', }); - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - Description: 'Powertools for AWS Lambda (Python) [x86_64] with extra dependencies version 1.22.0', - }); - + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + Description: + 'Powertools for AWS Lambda (Python) [x86_64] with extra dependencies version 1.22.0', + }, + ); }); test('synthesizes with extras and latest version', () => { @@ -100,49 +112,78 @@ describe('with version configuration the construct', () => { includeExtras: true, }); - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - Description: 'Powertools for AWS Lambda (Python) [x86_64] with extra dependencies latest version', - }); + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + Description: + 'Powertools for AWS Lambda (Python) [x86_64] with extra dependencies latest version', + }, + ); }); }); describe('construct build args for Dockerfile', () => { test('returns extras and version', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, true, '1.21.0'); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + true, + '1.21.0', + ); expect(args).toEqual('[all]==1.21.0'); }); test('returns only extras when no version provided', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, true, undefined); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + true, + undefined, + ); expect(args).toEqual('[all]'); }); test('returns a git url with extras when a git url is provided', () => { - const version = 'git+https://github.com/awslabs/aws-lambda-powertools-python@v2'; - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, true, version); + const version = + 'git+https://github.com/awslabs/aws-lambda-powertools-python@v2'; + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + true, + version, + ); expect(args).toEqual(`[all] @ ${version}`); }); test('returns only version when no extras flag provided', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, undefined, '1.11.0'); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + undefined, + '1.11.0', + ); expect(args).toEqual('==1.11.0'); }); test('returns empty when no version and extras provided', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, undefined, undefined); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + undefined, + undefined, + ); expect(args).toEqual(''); }); test('returns a git url when a git url is provided and extras provided', () => { - const version = 'git+https://github.com/awslabs/aws-lambda-powertools-python@v2'; - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.PYTHON, false, version); + const version = + 'git+https://github.com/awslabs/aws-lambda-powertools-python@v2'; + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.PYTHON, + false, + version, + ); expect(args).toEqual(` @ ${version}`); }); - }); diff --git a/test/lambda-powertools-typescript-layer.test.ts b/test/lambda-powertools-typescript-layer.test.ts index b4b443b..7f50551 100644 --- a/test/lambda-powertools-typescript-layer.test.ts +++ b/test/lambda-powertools-typescript-layer.test.ts @@ -3,7 +3,6 @@ import { Template } from 'aws-cdk-lib/assertions'; import { RuntimeFamily } from 'aws-cdk-lib/aws-lambda'; import { LambdaPowertoolsLayer } from '../src'; - describe('with minimal configuration the construct', () => { const stack = new Stack(); new LambdaPowertoolsLayer(stack, 'PowertoolsLayer', { @@ -12,7 +11,8 @@ describe('with minimal configuration the construct', () => { const template = Template.fromStack(stack); test('synthesizes successfully', () => { template.hasResourceProperties('AWS::Lambda::LayerVersion', { - Description: 'Powertools for AWS Lambda (TypeScript) [x86_64] latest version', + Description: + 'Powertools for AWS Lambda (TypeScript) [x86_64] latest version', }); }); @@ -29,6 +29,7 @@ describe('with minimal configuration the construct', () => { 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', + 'nodejs20.x', ], }); }); @@ -41,9 +42,12 @@ describe('for layerVersionName configuration the construct', () => { layerVersionName: 'mySpecialName', }); - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - LayerName: 'mySpecialName', - }); + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + LayerName: 'mySpecialName', + }, + ); }); }); @@ -56,31 +60,42 @@ describe('with version configuration the construct', () => { version: version, }); - - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::LayerVersion', { - Description: `Powertools for AWS Lambda (TypeScript) [x86_64] version ${version}`, - }); + Template.fromStack(stack).hasResourceProperties( + 'AWS::Lambda::LayerVersion', + { + Description: `Powertools for AWS Lambda (TypeScript) [x86_64] version ${version}`, + }, + ); }); test('fails with invalid version', () => { const stack = new Stack(); - expect(() => new LambdaPowertoolsLayer(stack, 'PowertoolsLayerBadVersion', { - runtimeFamily: RuntimeFamily.NODEJS, - version: '12.222.21123', - })).toThrow(); + expect( + () => + new LambdaPowertoolsLayer(stack, 'PowertoolsLayerBadVersion', { + runtimeFamily: RuntimeFamily.NODEJS, + version: '12.222.21123', + }), + ).toThrow(); }); - test('returns version with @ when provided provided', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.NODEJS, undefined, '0.9.0'); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.NODEJS, + undefined, + '0.9.0', + ); expect(args).toEqual('@0.9.0'); }); test('returns empty when no version provided', () => { - const args = LambdaPowertoolsLayer.constructBuildArgs(RuntimeFamily.NODEJS, undefined, undefined); + const args = LambdaPowertoolsLayer.constructBuildArgs( + RuntimeFamily.NODEJS, + undefined, + undefined, + ); expect(args).toEqual(''); }); - }); diff --git a/yarn.lock b/yarn.lock index 1d318cd..b305205 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,20 +15,20 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@aws-cdk/asset-awscli-v1@^2.2.200": - version "2.2.200" - resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.200.tgz#6ead533f73f705ad7350eb46955e2538e50cd013" - integrity sha512-Kf5J8DfJK4wZFWT2Myca0lhwke7LwHcHBo+4TvWOGJrFVVKVuuiLCkzPPRBQQVDj0Vtn2NBokZAz8pfMpAqAKg== +"@aws-cdk/asset-awscli-v1@^2.2.201": + version "2.2.201" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.201.tgz#a7b51d3ecc8ff3ca9798269eda3a1db2400b506a" + integrity sha512-INZqcwDinNaIdb5CtW3ez5s943nX5stGBQS6VOP2JDlOFP81hM3fds/9NDknipqfUkZM43dx+HgVvkXYXXARCQ== "@aws-cdk/asset-kubectl-v20@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz#d8e20b5f5dc20128ea2000dc479ca3c7ddc27248" integrity sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg== -"@aws-cdk/asset-node-proxy-agent-v5@^2.0.165": - version "2.0.166" - resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.166.tgz#467507db141cd829ff8aa9d6ea5519310a4276b8" - integrity sha512-j0xnccpUQHXJKPgCwQcGGNu4lRiC1PptYfdxBIH1L4dRK91iBxtSQHESRQX+yB47oGLaF/WfNN/aF3WXwlhikg== +"@aws-cdk/asset-node-proxy-agent-v6@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz#6dc9b7cdb22ff622a7176141197962360c33e9ac" + integrity sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg== "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": version "7.22.13" @@ -327,7 +327,12 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.5.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint-community/regexpp@^4.6.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== @@ -934,9 +939,9 @@ pretty-format "^27.0.0" "@types/json-schema@^7.0.12": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" - integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -976,9 +981,9 @@ integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== "@types/semver@^7.5.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" + integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== "@types/stack-utils@^2.0.0": version "2.0.2" @@ -998,15 +1003,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz#06abe4265e7c82f20ade2dcc0e3403c32d4f148b" - integrity sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw== + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz#52aae65174ff526576351f9ccd41cea01001463f" + integrity sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/type-utils" "6.8.0" - "@typescript-eslint/utils" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/type-utils" "6.11.0" + "@typescript-eslint/utils" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1015,71 +1020,71 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.8.0.tgz#bb2a969d583db242f1ee64467542f8b05c2e28cb" - integrity sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg== - dependencies: - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/typescript-estree" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.11.0.tgz#9640d9595d905f3be4f278bf515130e6129b202e" + integrity sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ== + dependencies: + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz#5cac7977385cde068ab30686889dd59879811efd" - integrity sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g== +"@typescript-eslint/scope-manager@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" + integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== dependencies: - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" -"@typescript-eslint/type-utils@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz#50365e44918ca0fd159844b5d6ea96789731e11f" - integrity sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g== +"@typescript-eslint/type-utils@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz#d0b8b1ab6c26b974dbf91de1ebc5b11fea24e0d1" + integrity sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA== dependencies: - "@typescript-eslint/typescript-estree" "6.8.0" - "@typescript-eslint/utils" "6.8.0" + "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/utils" "6.11.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.8.0.tgz#1ab5d4fe1d613e3f65f6684026ade6b94f7e3ded" - integrity sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ== +"@typescript-eslint/types@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" + integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== -"@typescript-eslint/typescript-estree@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz#9565f15e0cd12f55cf5aa0dfb130a6cb0d436ba1" - integrity sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg== +"@typescript-eslint/typescript-estree@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" + integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== dependencies: - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.8.0.tgz#d42939c2074c6b59844d0982ce26a51d136c4029" - integrity sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q== +"@typescript-eslint/utils@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" + integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/typescript-estree" "6.11.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz#cffebed56ae99c45eba901c378a6447b06be58b8" - integrity sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg== +"@typescript-eslint/visitor-keys@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" + integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== dependencies: - "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/types" "6.11.0" eslint-visitor-keys "^3.4.1" "@xmldom/xmldom@^0.8.10": @@ -1359,21 +1364,21 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-cdk-lib@2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.88.0.tgz#72d165cb7dc168c5fa3b22caaacd8d33364866fc" - integrity sha512-bmhokh30HVeqlotWaoEmK7mKB9SJbJwpbsiVgmYe3JcMu8DposHQqaIPI7LnC+dg015tZaxUsExxOYBEw+vntQ== +aws-cdk-lib@2.108.1: + version "2.108.1" + resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.108.1.tgz#96497cdb6cd19f9f184c07c5e8b42cd1239ce137" + integrity sha512-rqBJIB8cVjF2BjO3kEUn1j0JVY0GqrQc7KzMez40ew6I/QzqJwy6j8lPAI+eibn1JBifNeMb8wU2DpwVxz4fhQ== dependencies: - "@aws-cdk/asset-awscli-v1" "^2.2.200" + "@aws-cdk/asset-awscli-v1" "^2.2.201" "@aws-cdk/asset-kubectl-v20" "^2.1.2" - "@aws-cdk/asset-node-proxy-agent-v5" "^2.0.165" + "@aws-cdk/asset-node-proxy-agent-v6" "^2.0.1" "@balena/dockerignore" "^1.0.2" case "1.6.3" fs-extra "^11.1.1" ignore "^5.2.4" jsonschema "^1.4.1" minimatch "^3.1.2" - punycode "^2.3.0" + punycode "^2.3.1" semver "^7.5.4" table "^6.8.1" yaml "1.10.2" @@ -5245,11 +5250,16 @@ psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + pupa@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579"