From 50bbcab65b6f074f446e7e71d990b107c2fe6e29 Mon Sep 17 00:00:00 2001 From: Patrick Florek Date: Thu, 19 Dec 2024 09:58:31 +0100 Subject: [PATCH] fix: runtime parameter of nodejs14.x is no longer supported bumping aws-cdk-lib enforcing projen to use given latest runtime transient log retention lambda will also be greater than nodejs14 Fixes #1090 Fixes #1021 --- .projen/deps.json | 6 +- .projen/tasks.json | 8 +- .projenrc.ts | 13 +- package.json | 5 +- src/api-docs-function.ts | 2 +- src/swagger-ui-function.ts | 2 +- test/__snapshots__/swagger-ui.test.ts.snap | 201 +++++++++++++++------ test/swagger-ui.test.ts | 12 +- yarn.lock | 136 ++++++++++---- 9 files changed, 277 insertions(+), 108 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index 96b1f014..6e0354b4 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -57,6 +57,10 @@ "name": "jest", "type": "build" }, + { + "name": "jest-cdk-snapshot", + "type": "build" + }, { "name": "jest-junit", "version": "^15", @@ -112,7 +116,7 @@ }, { "name": "aws-cdk-lib", - "version": "^2.1.0", + "version": "^2.173.2", "type": "peer" }, { diff --git a/.projen/tasks.json b/.projen/tasks.json index 57e5c453..ca853ac2 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -60,7 +60,7 @@ "description": "Create a JavaScript bundle from functions/src/api-docs.lambda.ts", "steps": [ { - "exec": "esbuild --bundle functions/src/api-docs.lambda.ts --target=\"node18\" --platform=\"node\" --outfile=\"assets/functions/src/api-docs.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/*" + "exec": "esbuild --bundle functions/src/api-docs.lambda.ts --target=\"node22\" --platform=\"node\" --outfile=\"assets/functions/src/api-docs.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/*" } ] }, @@ -69,7 +69,7 @@ "description": "Continuously update the JavaScript bundle from functions/src/api-docs.lambda.ts", "steps": [ { - "exec": "esbuild --bundle functions/src/api-docs.lambda.ts --target=\"node18\" --platform=\"node\" --outfile=\"assets/functions/src/api-docs.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/* --watch" + "exec": "esbuild --bundle functions/src/api-docs.lambda.ts --target=\"node22\" --platform=\"node\" --outfile=\"assets/functions/src/api-docs.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/* --watch" } ] }, @@ -78,7 +78,7 @@ "description": "Create a JavaScript bundle from functions/src/swagger-ui.lambda.ts", "steps": [ { - "exec": "esbuild --bundle functions/src/swagger-ui.lambda.ts --target=\"node18\" --platform=\"node\" --outfile=\"assets/functions/src/swagger-ui.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/*" + "exec": "esbuild --bundle functions/src/swagger-ui.lambda.ts --target=\"node22\" --platform=\"node\" --outfile=\"assets/functions/src/swagger-ui.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/*" } ] }, @@ -87,7 +87,7 @@ "description": "Continuously update the JavaScript bundle from functions/src/swagger-ui.lambda.ts", "steps": [ { - "exec": "esbuild --bundle functions/src/swagger-ui.lambda.ts --target=\"node18\" --platform=\"node\" --outfile=\"assets/functions/src/swagger-ui.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/* --watch" + "exec": "esbuild --bundle functions/src/swagger-ui.lambda.ts --target=\"node22\" --platform=\"node\" --outfile=\"assets/functions/src/swagger-ui.lambda/index.js\" --tsconfig=\"tsconfig.dev.json\" --external:@aws-sdk/* --watch" } ] }, diff --git a/.projenrc.ts b/.projenrc.ts index 8fa6916b..f783a187 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -3,7 +3,7 @@ import { awscdk, javascript, typescript } from "projen"; const project = new AwsCdkConstructLibrary({ author: "Patrick Florek", authorAddress: "patrick.florek@gmail.com", - cdkVersion: "2.1.0", + cdkVersion: "2.173.2", name: "@pepperize/cdk-apigateway-swagger-ui", description: "Add SwaggerUI to your AWS Apigateway RestApi", keywords: [ @@ -22,7 +22,7 @@ const project = new AwsCdkConstructLibrary({ projenrcTs: true, - devDeps: ["@pepperize/projen-awscdk-construct@~0.0.730"], + devDeps: ["@pepperize/projen-awscdk-construct@~0.0.730", "jest-cdk-snapshot"], versionrcOptions: { types: [{ type: "chore", section: "Chore", hidden: false }], @@ -48,6 +48,13 @@ const project = new AwsCdkConstructLibrary({ gitignore: ["/cdk.out/"], npmignore: ["/functions/", "!/assets/functions/"], + + lambdaOptions: { + runtime: awscdk.LambdaRuntime.NODEJS_22_X, + bundlingOptions: { + externals: [], + }, + }, }); new awscdk.LambdaFunction(project, { @@ -55,12 +62,14 @@ new awscdk.LambdaFunction(project, { constructFile: "src/api-docs-function.ts", constructName: "ApiDocsFunction", cdkDeps: project.cdkDeps, + runtime: awscdk.LambdaRuntime.NODEJS_22_X, }); new awscdk.LambdaFunction(project, { entrypoint: "functions/src/swagger-ui.lambda.ts", constructFile: "src/swagger-ui-function.ts", constructName: "SwaggerUiFunction", cdkDeps: project.cdkDeps, + runtime: awscdk.LambdaRuntime.NODEJS_22_X, }); const dependabot = project.tryFindObjectFile(".github/dependabot.yml"); diff --git a/package.json b/package.json index 8a854dca..760cb00c 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@types/node": "^14", "@typescript-eslint/eslint-plugin": "^8", "@typescript-eslint/parser": "^8", - "aws-cdk-lib": "2.1.0", + "aws-cdk-lib": "2.173.2", "commit-and-tag-version": "^12", "constructs": "10.0.5", "esbuild": "^0.17.11", @@ -58,6 +58,7 @@ "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "jest": "^27", + "jest-cdk-snapshot": "^2.2.5", "jest-junit": "^15", "jsii": "~5.6.0", "jsii-diff": "^1.76.0", @@ -71,7 +72,7 @@ "typescript": "^4.9.5" }, "peerDependencies": { - "aws-cdk-lib": "^2.1.0", + "aws-cdk-lib": "^2.173.2", "constructs": "^10.0.5" }, "keywords": [ diff --git a/src/api-docs-function.ts b/src/api-docs-function.ts index 3d9042b3..62389a72 100644 --- a/src/api-docs-function.ts +++ b/src/api-docs-function.ts @@ -17,7 +17,7 @@ export class ApiDocsFunction extends lambda.Function { super(scope, id, { description: 'functions/src/api-docs.lambda.ts', ...props, - runtime: new lambda.Runtime('nodejs18.x', lambda.RuntimeFamily.NODEJS), + runtime: new lambda.Runtime('nodejs22.x', lambda.RuntimeFamily.NODEJS), handler: 'index.handler', code: lambda.Code.fromAsset(path.join(__dirname, '../assets/functions/src/api-docs.lambda')), }); diff --git a/src/swagger-ui-function.ts b/src/swagger-ui-function.ts index 2359c4c9..ffc8a80e 100644 --- a/src/swagger-ui-function.ts +++ b/src/swagger-ui-function.ts @@ -17,7 +17,7 @@ export class SwaggerUiFunction extends lambda.Function { super(scope, id, { description: 'functions/src/swagger-ui.lambda.ts', ...props, - runtime: new lambda.Runtime('nodejs18.x', lambda.RuntimeFamily.NODEJS), + runtime: new lambda.Runtime('nodejs22.x', lambda.RuntimeFamily.NODEJS), handler: 'index.handler', code: lambda.Code.fromAsset(path.join(__dirname, '../assets/functions/src/swagger-ui.lambda')), }); diff --git a/test/__snapshots__/swagger-ui.test.ts.snap b/test/__snapshots__/swagger-ui.test.ts.snap index 55afbd40..2a78c6a7 100644 --- a/test/__snapshots__/swagger-ui.test.ts.snap +++ b/test/__snapshots__/swagger-ui.test.ts.snap @@ -2,6 +2,130 @@ exports[`SwaggerUi Should match snapshot 1`] = ` Object { + "Mappings": Object { + "LatestNodeRuntimeMap": Object { + "af-south-1": Object { + "value": "nodejs20.x", + }, + "ap-east-1": Object { + "value": "nodejs20.x", + }, + "ap-northeast-1": Object { + "value": "nodejs20.x", + }, + "ap-northeast-2": Object { + "value": "nodejs20.x", + }, + "ap-northeast-3": Object { + "value": "nodejs20.x", + }, + "ap-south-1": Object { + "value": "nodejs20.x", + }, + "ap-south-2": Object { + "value": "nodejs20.x", + }, + "ap-southeast-1": Object { + "value": "nodejs20.x", + }, + "ap-southeast-2": Object { + "value": "nodejs20.x", + }, + "ap-southeast-3": Object { + "value": "nodejs20.x", + }, + "ap-southeast-4": Object { + "value": "nodejs20.x", + }, + "ap-southeast-5": Object { + "value": "nodejs20.x", + }, + "ap-southeast-7": Object { + "value": "nodejs20.x", + }, + "ca-central-1": Object { + "value": "nodejs20.x", + }, + "ca-west-1": Object { + "value": "nodejs20.x", + }, + "cn-north-1": Object { + "value": "nodejs18.x", + }, + "cn-northwest-1": Object { + "value": "nodejs18.x", + }, + "eu-central-1": Object { + "value": "nodejs20.x", + }, + "eu-central-2": Object { + "value": "nodejs20.x", + }, + "eu-isoe-west-1": Object { + "value": "nodejs18.x", + }, + "eu-north-1": Object { + "value": "nodejs20.x", + }, + "eu-south-1": Object { + "value": "nodejs20.x", + }, + "eu-south-2": Object { + "value": "nodejs20.x", + }, + "eu-west-1": Object { + "value": "nodejs20.x", + }, + "eu-west-2": Object { + "value": "nodejs20.x", + }, + "eu-west-3": Object { + "value": "nodejs20.x", + }, + "il-central-1": Object { + "value": "nodejs20.x", + }, + "me-central-1": Object { + "value": "nodejs20.x", + }, + "me-south-1": Object { + "value": "nodejs20.x", + }, + "mx-central-1": Object { + "value": "nodejs20.x", + }, + "sa-east-1": Object { + "value": "nodejs20.x", + }, + "us-east-1": Object { + "value": "nodejs20.x", + }, + "us-east-2": Object { + "value": "nodejs20.x", + }, + "us-gov-east-1": Object { + "value": "nodejs18.x", + }, + "us-gov-west-1": Object { + "value": "nodejs18.x", + }, + "us-iso-east-1": Object { + "value": "nodejs18.x", + }, + "us-iso-west-1": Object { + "value": "nodejs18.x", + }, + "us-isob-east-1": Object { + "value": "nodejs18.x", + }, + "us-west-1": Object { + "value": "nodejs20.x", + }, + "us-west-2": Object { + "value": "nodejs20.x", + }, + }, + }, "Outputs": Object { "ApiEndpoint4F160690": Object { "Value": Object { @@ -30,15 +154,9 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { - "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", - "Type": "AWS::SSM::Parameter::Value", - }, - }, "Resources": Object { "ApiAccountA18C9B29": Object { + "DeletionPolicy": "Retain", "DependsOn": Array [ "ApiF70053CD", ], @@ -51,8 +169,10 @@ Object { }, }, "Type": "AWS::ApiGateway::Account", + "UpdateReplacePolicy": "Retain", }, "ApiCloudWatchRole73EC6FC4": Object { + "DeletionPolicy": "Retain", "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ @@ -82,6 +202,7 @@ Object { ], }, "Type": "AWS::IAM::Role", + "UpdateReplacePolicy": "Retain", }, "ApiDeploymentB17BE62D53ff4e9ae5ff9cf54bd6b3125f8b416f": Object { "DependsOn": Array [ @@ -100,6 +221,9 @@ Object { "Type": "AWS::ApiGateway::Deployment", }, "ApiDeploymentStageprod3EB9684E": Object { + "DependsOn": Array [ + "ApiAccountA18C9B29", + ], "Properties": Object { "DeploymentId": Object { "Ref": "ApiDeploymentB17BE62D53ff4e9ae5ff9cf54bd6b3125f8b416f", @@ -401,12 +525,7 @@ Object { "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", - }, + "Code": Any, "Handler": "index.handler", "Role": Object { "Fn::GetAtt": Array [ @@ -414,7 +533,16 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": Object { + "Fn::FindInMap": Array [ + "LatestNodeRuntimeMap", + Object { + "Ref": "AWS::Region", + }, + "value", + ], + }, + "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, @@ -479,12 +607,7 @@ Object { "SwaggerUiApiDocsFunctionServiceRoleFFB489F6", ], "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "3c6225d593e2b0972576d9a998891587398cfe9a0b004db02bb249bf51730e4d.zip", - }, + "Code": Any, "Description": "functions/src/api-docs.lambda.ts", "Environment": Object { "Variables": Object { @@ -498,7 +621,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs22.x", }, "Type": "AWS::Lambda::Function", }, @@ -601,12 +724,7 @@ Object { "SwaggerUiSwaggerUiFunctionServiceRoleD19EE363", ], "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "4abd242e514a9d016c0e3fd5f973c0c1bcf2aa922dd5120ee4eb342eca8e5f2a.zip", - }, + "Code": Any, "Description": "functions/src/swagger-ui.lambda.ts", "Environment": Object { "Variables": Object { @@ -620,7 +738,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs22.x", }, "Type": "AWS::Lambda::Function", }, @@ -679,32 +797,5 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ - "1", - "2", - "3", - "4", - "5", - ], - Object { - "Ref": "BootstrapVersion", - }, - ], - }, - ], - }, - "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", - }, - ], - }, - }, } `; diff --git a/test/swagger-ui.test.ts b/test/swagger-ui.test.ts index b82907ae..7cb840a8 100644 --- a/test/swagger-ui.test.ts +++ b/test/swagger-ui.test.ts @@ -1,19 +1,23 @@ import { Stack } from "aws-cdk-lib"; -import { Template } from "aws-cdk-lib/assertions"; import { RestApi } from "aws-cdk-lib/aws-apigateway"; import { SwaggerUi } from "../src"; +import "jest-cdk-snapshot"; describe("SwaggerUi", () => { it("Should match snapshot", () => { // Given const stack = new Stack(); const api = new RestApi(stack, "Api"); - new SwaggerUi(stack, "SwaggerUi", { resource: api.root }); // When - const template = Template.fromStack(stack); + new SwaggerUi(stack, "SwaggerUi", { resource: api.root }); // Then - expect(template).toMatchSnapshot(); + expect(stack).toMatchCdkSnapshot({ + ignoreAssets: true, + ignoreCurrentVersion: true, + ignoreMetadata: true, + ignoreTags: true, + }); }); }); diff --git a/yarn.lock b/yarn.lock index c39e5922..e8ba888c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,6 +10,29 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" +"@aws-cdk/asset-awscli-v1@^2.2.208": + version "2.2.215" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.215.tgz#430a39a597d79f6652192f3cee2700faa2b60dd9" + integrity sha512-D+Jzwpl+zlBGjJf7nuRcz6JFNwqDQ+IzwIq0VSC4LMRRvrkhGE/ZE+zab3EnjmVkipcQqtQe+PVKefgmxETbvA== + +"@aws-cdk/asset-kubectl-v20@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.3.tgz#80e09004be173995e91614e34d947da11dd9ff4d" + integrity sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ== + +"@aws-cdk/asset-node-proxy-agent-v6@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz#6d3c7860354d4856a7e75375f2f0ecab313b4989" + integrity sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A== + +"@aws-cdk/cloud-assembly-schema@^38.0.1": + version "38.0.1" + resolved "https://registry.yarnpkg.com/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-38.0.1.tgz#cdf4684ae8778459e039cd44082ea644a3504ca9" + integrity sha512-KvPe+NMWAulfNVwY7jenFhzhuLhLqJ/OPy5jx7wUstbjnYnjRVLpUHPU3yCjXFE0J8cuJVdx95BJ4rOs66Pi9w== + dependencies: + jsonschema "^1.4.1" + semver "^7.6.3" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": version "7.26.2" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" @@ -253,7 +276,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.3.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== @@ -865,11 +888,11 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/estree@^1.0.6": version "1.0.6" @@ -943,9 +966,9 @@ integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/prettier@^2.1.5": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" - integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/stack-utils@^2.0.0": version "2.0.3" @@ -1125,7 +1148,7 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.17.1: +ajv@^8.0.1, ajv@^8.17.1: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -1271,16 +1294,16 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -1288,19 +1311,25 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -aws-cdk-lib@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.1.0.tgz#2497484cfd4e2eeaba99b070bbfa54486d52ae34" - integrity sha512-W607G3aSrWpawpcqzIuUYKlU+grfvkbszyqikyVYqJgMHFCCQXq0S1ynPMzfQ49CwjlwZsu4LIsPM+dNR+Yj6g== +aws-cdk-lib@2.173.2: + version "2.173.2" + resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.173.2.tgz#9e51332973163eb0d0a89cb67973a89b75c5f0b1" + integrity sha512-cL9+z8Pl3VZGoO7BwdsrFAOeud/vSl3at7OvmhihbNprMN15XuFUx/rViAU5OI1m92NbV4NBzYSLbSeCwYLNyw== dependencies: + "@aws-cdk/asset-awscli-v1" "^2.2.208" + "@aws-cdk/asset-kubectl-v20" "^2.1.3" + "@aws-cdk/asset-node-proxy-agent-v6" "^2.1.0" + "@aws-cdk/cloud-assembly-schema" "^38.0.1" "@balena/dockerignore" "^1.0.2" case "1.6.3" - fs-extra "^9.1.0" - ignore "^5.1.9" - jsonschema "^1.4.0" - minimatch "^3.0.4" - punycode "^2.1.1" - semver "^7.3.5" + fs-extra "^11.2.0" + ignore "^5.3.2" + jsonschema "^1.4.1" + mime-types "^2.1.35" + minimatch "^3.1.2" + punycode "^2.3.1" + semver "^7.6.3" + table "^6.8.2" yaml "1.10.2" babel-jest@^27.5.1: @@ -2603,6 +2632,15 @@ fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -2612,16 +2650,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2975,7 +3003,7 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ignore@^5.1.9, ignore@^5.2.0, ignore@^5.3.1: +ignore@^5.2.0, ignore@^5.3.1, ignore@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -3329,6 +3357,13 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jest-cdk-snapshot@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/jest-cdk-snapshot/-/jest-cdk-snapshot-2.2.5.tgz#e49eca4cdbcb461392a3df92e53d8492400b6bdb" + integrity sha512-+7TLHTRwfWm1Cslu8fnSSc53cFufE89BbRTBtytZN0Ac4uS6ha9yMsEiN4tOl/SLAsu+q/8/ppAs0LCX0GP/AQ== + dependencies: + js-yaml "^3.13.1" + jest-changed-files@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" @@ -3990,7 +4025,7 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsonschema@^1.4.0: +jsonschema@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== @@ -4085,6 +4120,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -4194,7 +4234,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.35: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -4899,7 +4939,7 @@ semver-intersect@^1.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.6.0, semver@^7.6.3: +semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -5015,6 +5055,15 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + sort-json@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sort-json/-/sort-json-2.0.1.tgz#7338783bef807185dc37d5b02e3afd905d537cfb" @@ -5261,6 +5310,17 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +table@^6.8.2: + version "6.9.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" + integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"