From fd1e1da6d66107bf7fc0f5e7949b627be36ecc93 Mon Sep 17 00:00:00 2001 From: Bender Date: Wed, 15 Feb 2023 19:57:44 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(runtime):=20allow=20configurat?= =?UTF-8?q?ion=20of=20NodeJS=20runtime=20for=20Lambda=20(#74)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated depdencies to allow node18 runtime. Commander next major version (ndoe14 needed, so no change for us). All AWS related packages updated to accomodate node18 support #74 --- lib/cdk/config.ts | 15 + lib/cdk/stack.ts | 3 +- lib/cdk/types.ts | 2 + lib/cdk/utils/serverLambda.ts | 6 +- lib/cli.ts | 3 + lib/cli/deploy.ts | 5 +- package-lock.json | 935 ++++++++++++++++++++++++++-------- package.json | 18 +- 8 files changed, 752 insertions(+), 235 deletions(-) diff --git a/lib/cdk/config.ts b/lib/cdk/config.ts index d6ff87c..fd53b5e 100644 --- a/lib/cdk/config.ts +++ b/lib/cdk/config.ts @@ -1,11 +1,25 @@ +import { Runtime } from 'aws-cdk-lib/aws-lambda' import { bool, cleanEnv, num, str } from 'envalid' import { DEFAULT_MEMORY as IMAGE_LAMBDA_DEFAULT_MEMORY, DEFAULT_TIMEOUT as IMAGE_LAMBDA_DEFAULT_TIMEOUT } from './utils/imageLambda' import { DEFAULT_MEMORY as SERVER_LAMBDA_DEFAULT_MEMORY, DEFAULT_TIMEOUT as SERVER_LAMBDA_DEFAULT_TIMEOUT } from './utils/serverLambda' +enum RuntimeEnum { + NODEJS_14_X = 'node14', + NODEJS_16_X = 'node16', + NODEJS_18_X = 'node18', +} + +const runtimeMap = { + [RuntimeEnum.NODEJS_14_X]: Runtime.NODEJS_14_X, + [RuntimeEnum.NODEJS_16_X]: Runtime.NODEJS_16_X, + [RuntimeEnum.NODEJS_18_X]: Runtime.NODEJS_18_X, +} + const RawEnvConfig = cleanEnv(process.env, { STACK_NAME: str(), LAMBDA_TIMEOUT: num({ default: SERVER_LAMBDA_DEFAULT_TIMEOUT }), LAMBDA_MEMORY: num({ default: SERVER_LAMBDA_DEFAULT_MEMORY }), + LAMBDA_RUNTIME: str({ default: RuntimeEnum.NODEJS_16_X, choices: Object.values(RuntimeEnum) }), IMAGE_LAMBDA_TIMEOUT: num({ default: IMAGE_LAMBDA_DEFAULT_TIMEOUT }), IMAGE_LAMBDA_MEMORY: num({ default: IMAGE_LAMBDA_DEFAULT_MEMORY }), HOSTED_ZONE: str({ default: undefined }), @@ -18,6 +32,7 @@ export const envConfig = { stackName: RawEnvConfig.STACK_NAME, lambdaMemory: RawEnvConfig.LAMBDA_MEMORY, lambdaTimeout: RawEnvConfig.LAMBDA_TIMEOUT, + lambdaRuntime: runtimeMap[RawEnvConfig.LAMBDA_RUNTIME], imageLambdaMemory: RawEnvConfig.IMAGE_LAMBDA_MEMORY, imageLambdaTimeout: RawEnvConfig.IMAGE_LAMBDA_TIMEOUT, hostedZone: RawEnvConfig.HOSTED_ZONE, diff --git a/lib/cdk/stack.ts b/lib/cdk/stack.ts index 33c975c..b95a317 100644 --- a/lib/cdk/stack.ts +++ b/lib/cdk/stack.ts @@ -36,7 +36,7 @@ export class NextStandaloneStack extends Stack { this.domainName = config.dnsPrefix ? `${config.dnsPrefix}.${config.hostedZone}` : config.hostedZone } - console.log('Hosted zone:', this.hostedZone) + console.log('Hosted zone:', this.hostedZone?.zoneName) console.log('Normalized domain name:', this.domainName) this.assetsBucket = this.setupAssetsBucket() @@ -58,6 +58,7 @@ export class NextStandaloneStack extends Stack { dependenciesPath: config.dependenciesZipPath, timeout: config.lambdaTimeout, memory: config.lambdaMemory, + runtime: config.lambdaRuntime, }) this.apiGateway = this.setupApiGateway({ diff --git a/lib/cdk/types.ts b/lib/cdk/types.ts index d758ea3..5cbc50b 100644 --- a/lib/cdk/types.ts +++ b/lib/cdk/types.ts @@ -1,4 +1,5 @@ import { StackProps } from 'aws-cdk-lib' +import { Runtime } from 'aws-cdk-lib/aws-lambda' export interface CustomStackProps extends StackProps { apigwServerPath: string @@ -13,6 +14,7 @@ export interface CustomStackProps extends StackProps { customImageHandler: string lambdaTimeout: number lambdaMemory: number + lambdaRuntime: Runtime imageLambdaTimeout?: number imageLambdaMemory?: number hostedZone?: string diff --git a/lib/cdk/utils/serverLambda.ts b/lib/cdk/utils/serverLambda.ts index ad310c1..62e632b 100644 --- a/lib/cdk/utils/serverLambda.ts +++ b/lib/cdk/utils/serverLambda.ts @@ -8,14 +8,16 @@ export interface SetupServerLambdaProps { basePath: string memory: number timeout: number + runtime: Runtime } export const DEFAULT_MEMORY = 1024 export const DEFAULT_TIMEOUT = 20 +export const DEFAULT_RUNTIME = Runtime.NODEJS_16_X export const setupServerLambda = ( scope: Stack, - { basePath, codePath, dependenciesPath, handler, memory = DEFAULT_MEMORY, timeout = DEFAULT_TIMEOUT }: SetupServerLambdaProps, + { basePath, codePath, dependenciesPath, handler, memory = DEFAULT_MEMORY, timeout = DEFAULT_TIMEOUT, runtime = DEFAULT_RUNTIME }: SetupServerLambdaProps, ) => { const depsLayer = new LayerVersion(scope, 'DepsLayer', { // This folder does not use Custom hash as depenendencies are most likely changing every time we deploy. @@ -24,7 +26,7 @@ export const setupServerLambda = ( const serverLambda = new Function(scope, 'DefaultNextJs', { code: Code.fromAsset(codePath), - runtime: Runtime.NODEJS_16_X, + runtime, handler, layers: [depsLayer], // No need for big memory as image handling is done elsewhere. diff --git a/lib/cli.ts b/lib/cli.ts index a3f0c36..b65c7a9 100644 --- a/lib/cli.ts +++ b/lib/cli.ts @@ -59,6 +59,7 @@ program .option('--lambdaMemory ', 'Set memory for lambda function handling server requests.', Number, 512) .option('--imageLambdaTimeout ', 'Set timeout for lambda function handling image optimization.', Number, IMAGE_LAMBDA_DEFAULT_TIMEOUT) .option('--imageLambdaMemory ', 'Set memory for lambda function handling image optimization.', Number, IMAGE_LAMBDA_DEFAULT_MEMORY) + .option('--lambdaRuntime ', "Specify version of NodeJS to use as Lambda's runtime. Options: node14, node16, node18.", 'node16') .option('--hostedZone ', 'Hosted zone domain name to be used for creating DNS records (example: example.com).', undefined) .option('--domainNamePrefix ', 'Prefix for creating DNS records, if left undefined, hostedZone will be used (example: app).', undefined) .option('--customApiDomain ', 'Domain to forward the requests to /api routes, by default API routes will be handled by the server lambda.', undefined) @@ -72,6 +73,7 @@ program region, lambdaTimeout, lambdaMemory, + lambdaRuntime, imageLambdaMemory, imageLambdaTimeout, hostedZone, @@ -88,6 +90,7 @@ program region, lambdaTimeout, lambdaMemory, + lambdaRuntime, imageLambdaMemory, imageLambdaTimeout, hostedZone, diff --git a/lib/cli/deploy.ts b/lib/cli/deploy.ts index f49aaf9..4c68046 100644 --- a/lib/cli/deploy.ts +++ b/lib/cli/deploy.ts @@ -7,6 +7,7 @@ interface Props { region?: string lambdaMemory?: number lambdaTimeout?: number + lambdaRuntime?: string imageLambdaMemory?: number imageLambdaTimeout?: number customApiDomain?: string @@ -24,6 +25,7 @@ export const deployHandler = async ({ region, lambdaMemory, lambdaTimeout, + lambdaRuntime, imageLambdaMemory, imageLambdaTimeout, domainNamePrefix, @@ -33,13 +35,14 @@ export const deployHandler = async ({ }: Props) => { // All paths are absolute. const cdkApp = `node ${appPath}` - const cdkCiFlags = `--require-approval never --ci` + const cdkCiFlags = `--require-approval never --ci --hotswap` const variables = { STACK_NAME: stackName, ...(region && { AWS_REGION: region }), ...(lambdaMemory && { LAMBDA_MEMORY: lambdaMemory.toString() }), ...(lambdaTimeout && { LAMBDA_TIMEOUT: lambdaTimeout.toString() }), + ...(lambdaRuntime && { LAMBDA_RUNTIME: lambdaRuntime.toString() }), ...(imageLambdaMemory && { IMAGE_LAMBDA_MEMORY: imageLambdaMemory.toString() }), ...(imageLambdaTimeout && { IMAGE_LAMBDA_TIMEOUT: imageLambdaTimeout.toString() }), ...(hostedZone && { HOSTED_ZONE: hostedZone }), diff --git a/package-lock.json b/package-lock.json index 18dbb15..15bc944 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sladg/nextjs-lambda", - "version": "5.5.2", + "version": "6.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@sladg/nextjs-lambda", - "version": "5.5.2", + "version": "6.1.1", "license": "MIT", "dependencies": { "@sladg/imaginex-lambda": "0.7.0" @@ -16,52 +16,422 @@ }, "devDependencies": { "archiver": "^5.3.1", - "commander": "^9.4.0", - "serverless-http": "^3.0.3", - "tsup": "^6.5.0", - "typescript": "^4.8.2" + "commander": "^10.0.0", + "serverless-http": "^3.1.1", + "tsup": "^6.6.3", + "typescript": "^4.9.5" }, "engines": { "node": ">=16.15" }, "peerDependencies": { - "@aws-cdk/aws-apigatewayv2-alpha": "^2.41.0-alpha", - "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.41.0-alpha", + "@aws-cdk/aws-apigatewayv2-alpha": "^2.64.0-alpha.0", + "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.64.0-alpha.0", "@types/archiver": "^5.3.1", - "@types/node": "^18.7.16", - "aws-cdk": "^2.41.0", - "aws-cdk-lib": "^2.41.0", + "@types/node": "^18.13.0", + "aws-cdk": "^2.64.0", + "aws-cdk-lib": "^2.64.0", "envalid": "^7.3.1", "next": "^12.2 || ^13" } }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.68", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.68.tgz", + "integrity": "sha512-/rx5dTFSSyKtYa1VOFuqt+hjQv5AnEc3x0OAmaHRhHWIepgUQ3aPHCyln/izgnwR4Y4albsptxoerM4lGEoaUg==", + "peer": true + }, + "node_modules/@aws-cdk/asset-kubectl-v20": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.1.tgz", + "integrity": "sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw==", + "peer": true + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v5": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.57.tgz", + "integrity": "sha512-oLxJ9VQdSP2L8EALzChmWdzgq5wc4UidJfWYTCfuiZox6r0vW5ftYIffVgE/+iA0WxRstJUQz/nmpOeGfNbQDQ==", + "peer": true + }, "node_modules/@aws-cdk/aws-apigatewayv2-alpha": { - "version": "2.41.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.41.0-alpha.0.tgz", - "integrity": "sha512-J7VPAL4jQ7ySTyXfcOC54USGkn7H+SgQeMTrdr5Oi6a5Hj6s/4yCHVeR7IJHxgeDvMwlcqS9U+8J4HmzmChAFg==", + "version": "2.64.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.64.0-alpha.0.tgz", + "integrity": "sha512-/pRlT5Z7i2uIXJ9ZNOHWnNNSwpnsiXOtL++8/mb2gyxih6VjwBBmKk2b+MX0uE0X55OhViOc0Uh7GyPWwkHvjw==", "peer": true, "engines": { "node": ">= 14.15.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.41.0", + "aws-cdk-lib": "^2.64.0", "constructs": "^10.0.0" } }, "node_modules/@aws-cdk/aws-apigatewayv2-integrations-alpha": { - "version": "2.41.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.41.0-alpha.0.tgz", - "integrity": "sha512-tk3S/JMAvaPiV316nqnQHsClz3HtGE5NrIkl+tdp0CJQaslLSsELhbD8xIdkifBJD4AIy/cGtsodZWBjGx5Izw==", + "version": "2.64.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.64.0-alpha.0.tgz", + "integrity": "sha512-WACfXYe7xVBzvRC3agMCVP8Bm+MZSHTsJLoye2DXwGPHzed54AzlUJ+1d7TJkeWyujL2R4L9YLUCiwnRe+LBtQ==", "peer": true, "engines": { "node": ">= 14.15.0" }, "peerDependencies": { - "@aws-cdk/aws-apigatewayv2-alpha": "2.41.0-alpha.0", - "aws-cdk-lib": "^2.41.0", + "@aws-cdk/aws-apigatewayv2-alpha": "2.64.0-alpha.0", + "aws-cdk-lib": "^2.64.0", "constructs": "^10.0.0" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", + "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", + "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", + "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", + "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", + "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", + "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", + "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", + "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", + "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", + "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", + "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", + "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", + "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", + "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", + "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", + "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", + "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", + "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", + "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", + "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", + "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", + "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@next/env": { "version": "12.3.1", "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.1.tgz", @@ -165,9 +535,9 @@ "peer": true }, "node_modules/@types/node": { - "version": "18.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", - "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" + "version": "18.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", + "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" }, "node_modules/any-promise": { "version": "1.3.0", @@ -273,9 +643,9 @@ "dev": true }, "node_modules/aws-cdk": { - "version": "2.44.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.44.0.tgz", - "integrity": "sha512-9hbK4Yc1GQ28zSjZE2ajidt7sRrTLYpijkI7HT7JcDhXLe2ZGP9EOZrqKy5EEsOv0wDQ7cdXB3/oMiMGSmSQ5A==", + "version": "2.64.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.64.0.tgz", + "integrity": "sha512-iXkvVeYKt6Glboeicrb3QxC6K6o25+zitM/UTfgVzDlKEvC4hwQp1KqXy/caN7SfA6X2N0LJmXfC99T4cvIH0A==", "peer": true, "bin": { "cdk": "bin/cdk" @@ -288,9 +658,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.44.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.44.0.tgz", - "integrity": "sha512-h0lCcS3t2TPF5FIpkA7OcE2t4vChtz/FGcZ5jVaORj21quiUz84eOhGk2BeRoKqfSp1Zqu2QxQUk6p6YpAOrRA==", + "version": "2.64.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.64.0.tgz", + "integrity": "sha512-IrgL7thb6TeOyHgyR/qKWTdA9FBb9lv7Z9QPDzCNJlkKI+0ANjYHy3RYV8Gd+1+kc6l8DG9Z1elij40YCr/Ptg==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -304,14 +674,17 @@ ], "peer": true, "dependencies": { + "@aws-cdk/asset-awscli-v1": "^2.2.52", + "@aws-cdk/asset-kubectl-v20": "^2.1.1", + "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.42", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^9.1.0", - "ignore": "^5.2.0", + "ignore": "^5.2.4", "jsonschema": "^1.4.1", "minimatch": "^3.1.2", - "punycode": "^2.1.1", - "semver": "^7.3.7", + "punycode": "^2.3.0", + "semver": "^7.3.8", "yaml": "1.10.2" }, "engines": { @@ -324,14 +697,12 @@ "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { "version": "1.0.2", "inBundle": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/aws-cdk-lib/node_modules/at-least-node": { "version": "1.0.0", "inBundle": true, "license": "ISC", - "peer": true, "engines": { "node": ">= 4.0.0" } @@ -339,14 +710,12 @@ "node_modules/aws-cdk-lib/node_modules/balanced-match": { "version": "1.0.2", "inBundle": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/aws-cdk-lib/node_modules/brace-expansion": { "version": "1.1.11", "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -356,7 +725,6 @@ "version": "1.6.3", "inBundle": true, "license": "(MIT OR GPL-3.0-or-later)", - "peer": true, "engines": { "node": ">= 0.8.0" } @@ -364,14 +732,12 @@ "node_modules/aws-cdk-lib/node_modules/concat-map": { "version": "0.0.1", "inBundle": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/aws-cdk-lib/node_modules/fs-extra": { "version": "9.1.0", "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -385,14 +751,12 @@ "node_modules/aws-cdk-lib/node_modules/graceful-fs": { "version": "4.2.10", "inBundle": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/aws-cdk-lib/node_modules/ignore": { - "version": "5.2.0", + "version": "5.2.4", "inBundle": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4" } @@ -401,7 +765,6 @@ "version": "6.1.0", "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -413,7 +776,6 @@ "version": "1.4.1", "inBundle": true, "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -422,7 +784,6 @@ "version": "6.0.0", "inBundle": true, "license": "ISC", - "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -434,7 +795,6 @@ "version": "3.1.2", "inBundle": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -443,19 +803,17 @@ } }, "node_modules/aws-cdk-lib/node_modules/punycode": { - "version": "2.1.1", + "version": "2.3.0", "inBundle": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } }, "node_modules/aws-cdk-lib/node_modules/semver": { - "version": "7.3.7", + "version": "7.3.8", "inBundle": true, "license": "ISC", - "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -470,7 +828,6 @@ "version": "2.0.0", "inBundle": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -478,14 +835,12 @@ "node_modules/aws-cdk-lib/node_modules/yallist": { "version": "4.0.0", "inBundle": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/aws-cdk-lib/node_modules/yaml": { "version": "1.10.2", "inBundle": true, "license": "ISC", - "peer": true, "engines": { "node": ">= 6" } @@ -592,18 +947,18 @@ } }, "node_modules/bundle-require": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-3.1.2.tgz", - "integrity": "sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.1.tgz", + "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==", "dev": true, "dependencies": { - "load-tsconfig": "^0.2.0" + "load-tsconfig": "^0.2.3" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "peerDependencies": { - "esbuild": ">=0.13" + "esbuild": ">=0.17" } }, "node_modules/cac": { @@ -659,12 +1014,12 @@ } }, "node_modules/commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/compress-commons": { @@ -799,9 +1154,9 @@ "peer": true }, "node_modules/esbuild": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz", - "integrity": "sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", + "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", "dev": true, "hasInstallScript": true, "bin": { @@ -811,43 +1166,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/linux-loong64": "0.15.7", - "esbuild-android-64": "0.15.7", - "esbuild-android-arm64": "0.15.7", - "esbuild-darwin-64": "0.15.7", - "esbuild-darwin-arm64": "0.15.7", - "esbuild-freebsd-64": "0.15.7", - "esbuild-freebsd-arm64": "0.15.7", - "esbuild-linux-32": "0.15.7", - "esbuild-linux-64": "0.15.7", - "esbuild-linux-arm": "0.15.7", - "esbuild-linux-arm64": "0.15.7", - "esbuild-linux-mips64le": "0.15.7", - "esbuild-linux-ppc64le": "0.15.7", - "esbuild-linux-riscv64": "0.15.7", - "esbuild-linux-s390x": "0.15.7", - "esbuild-netbsd-64": "0.15.7", - "esbuild-openbsd-64": "0.15.7", - "esbuild-sunos-64": "0.15.7", - "esbuild-windows-32": "0.15.7", - "esbuild-windows-64": "0.15.7", - "esbuild-windows-arm64": "0.15.7" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz", - "integrity": "sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "@esbuild/android-arm": "0.17.8", + "@esbuild/android-arm64": "0.17.8", + "@esbuild/android-x64": "0.17.8", + "@esbuild/darwin-arm64": "0.17.8", + "@esbuild/darwin-x64": "0.17.8", + "@esbuild/freebsd-arm64": "0.17.8", + "@esbuild/freebsd-x64": "0.17.8", + "@esbuild/linux-arm": "0.17.8", + "@esbuild/linux-arm64": "0.17.8", + "@esbuild/linux-ia32": "0.17.8", + "@esbuild/linux-loong64": "0.17.8", + "@esbuild/linux-mips64el": "0.17.8", + "@esbuild/linux-ppc64": "0.17.8", + "@esbuild/linux-riscv64": "0.17.8", + "@esbuild/linux-s390x": "0.17.8", + "@esbuild/linux-x64": "0.17.8", + "@esbuild/netbsd-x64": "0.17.8", + "@esbuild/openbsd-x64": "0.17.8", + "@esbuild/sunos-x64": "0.17.8", + "@esbuild/win32-arm64": "0.17.8", + "@esbuild/win32-ia32": "0.17.8", + "@esbuild/win32-x64": "0.17.8" } }, "node_modules/execa": { @@ -1734,9 +2074,9 @@ } }, "node_modules/serverless-http": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.0.3.tgz", - "integrity": "sha512-op91LTe8s8ZtRckjrXxvnAxkoHQv+drk1bZr3inN3kunIP5QHuJIevHrvyDjVoL7yK9oOI1Vf/57radEcLVMjw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.1.1.tgz", + "integrity": "sha512-apCJb/xsB/E2IVT23bG9lBGoPv7kTgwhi6b/Reshc181vJv7Df4hCOj0WNQQRpPoKMEZAuGBEzhdIHUaL3pCLQ==", "dev": true, "engines": { "node": ">=12.0" @@ -1967,16 +2307,16 @@ "peer": true }, "node_modules/tsup": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.5.0.tgz", - "integrity": "sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz", + "integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==", "dev": true, "dependencies": { - "bundle-require": "^3.1.2", + "bundle-require": "^4.0.0", "cac": "^6.7.12", "chokidar": "^3.5.1", "debug": "^4.3.1", - "esbuild": "^0.15.1", + "esbuild": "^0.17.6", "execa": "^5.0.0", "globby": "^11.0.3", "joycon": "^3.0.1", @@ -1992,7 +2332,7 @@ "tsup-node": "dist/cli-node.js" }, "engines": { - "node": ">=14" + "node": ">=14.18" }, "peerDependencies": { "@swc/core": "^1", @@ -2028,9 +2368,9 @@ } }, "node_modules/typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -2118,20 +2458,192 @@ } }, "dependencies": { + "@aws-cdk/asset-awscli-v1": { + "version": "2.2.68", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.68.tgz", + "integrity": "sha512-/rx5dTFSSyKtYa1VOFuqt+hjQv5AnEc3x0OAmaHRhHWIepgUQ3aPHCyln/izgnwR4Y4albsptxoerM4lGEoaUg==", + "peer": true + }, + "@aws-cdk/asset-kubectl-v20": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.1.tgz", + "integrity": "sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw==", + "peer": true + }, + "@aws-cdk/asset-node-proxy-agent-v5": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.57.tgz", + "integrity": "sha512-oLxJ9VQdSP2L8EALzChmWdzgq5wc4UidJfWYTCfuiZox6r0vW5ftYIffVgE/+iA0WxRstJUQz/nmpOeGfNbQDQ==", + "peer": true + }, "@aws-cdk/aws-apigatewayv2-alpha": { - "version": "2.41.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.41.0-alpha.0.tgz", - "integrity": "sha512-J7VPAL4jQ7ySTyXfcOC54USGkn7H+SgQeMTrdr5Oi6a5Hj6s/4yCHVeR7IJHxgeDvMwlcqS9U+8J4HmzmChAFg==", + "version": "2.64.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.64.0-alpha.0.tgz", + "integrity": "sha512-/pRlT5Z7i2uIXJ9ZNOHWnNNSwpnsiXOtL++8/mb2gyxih6VjwBBmKk2b+MX0uE0X55OhViOc0Uh7GyPWwkHvjw==", "peer": true, "requires": {} }, "@aws-cdk/aws-apigatewayv2-integrations-alpha": { - "version": "2.41.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.41.0-alpha.0.tgz", - "integrity": "sha512-tk3S/JMAvaPiV316nqnQHsClz3HtGE5NrIkl+tdp0CJQaslLSsELhbD8xIdkifBJD4AIy/cGtsodZWBjGx5Izw==", + "version": "2.64.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.64.0-alpha.0.tgz", + "integrity": "sha512-WACfXYe7xVBzvRC3agMCVP8Bm+MZSHTsJLoye2DXwGPHzed54AzlUJ+1d7TJkeWyujL2R4L9YLUCiwnRe+LBtQ==", "peer": true, "requires": {} }, + "@esbuild/android-arm": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", + "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", + "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", + "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", + "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", + "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", + "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", + "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", + "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", + "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", + "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", + "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", + "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", + "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", + "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", + "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", + "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", + "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", + "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", + "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", + "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", + "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", + "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", + "dev": true, + "optional": true + }, "@next/env": { "version": "12.3.1", "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.1.tgz", @@ -2214,9 +2726,9 @@ "peer": true }, "@types/node": { - "version": "18.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", - "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" + "version": "18.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", + "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" }, "any-promise": { "version": "1.3.0", @@ -2312,50 +2824,49 @@ "dev": true }, "aws-cdk": { - "version": "2.44.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.44.0.tgz", - "integrity": "sha512-9hbK4Yc1GQ28zSjZE2ajidt7sRrTLYpijkI7HT7JcDhXLe2ZGP9EOZrqKy5EEsOv0wDQ7cdXB3/oMiMGSmSQ5A==", + "version": "2.64.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.64.0.tgz", + "integrity": "sha512-iXkvVeYKt6Glboeicrb3QxC6K6o25+zitM/UTfgVzDlKEvC4hwQp1KqXy/caN7SfA6X2N0LJmXfC99T4cvIH0A==", "peer": true, "requires": { "fsevents": "2.3.2" } }, "aws-cdk-lib": { - "version": "2.44.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.44.0.tgz", - "integrity": "sha512-h0lCcS3t2TPF5FIpkA7OcE2t4vChtz/FGcZ5jVaORj21quiUz84eOhGk2BeRoKqfSp1Zqu2QxQUk6p6YpAOrRA==", + "version": "2.64.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.64.0.tgz", + "integrity": "sha512-IrgL7thb6TeOyHgyR/qKWTdA9FBb9lv7Z9QPDzCNJlkKI+0ANjYHy3RYV8Gd+1+kc6l8DG9Z1elij40YCr/Ptg==", "peer": true, "requires": { + "@aws-cdk/asset-awscli-v1": "^2.2.52", + "@aws-cdk/asset-kubectl-v20": "^2.1.1", + "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.42", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^9.1.0", - "ignore": "^5.2.0", + "ignore": "^5.2.4", "jsonschema": "^1.4.1", "minimatch": "^3.1.2", - "punycode": "^2.1.1", - "semver": "^7.3.7", + "punycode": "^2.3.0", + "semver": "^7.3.8", "yaml": "1.10.2" }, "dependencies": { "@balena/dockerignore": { "version": "1.0.2", - "bundled": true, - "peer": true + "bundled": true }, "at-least-node": { "version": "1.0.0", - "bundled": true, - "peer": true + "bundled": true }, "balanced-match": { "version": "1.0.2", - "bundled": true, - "peer": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "peer": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2363,18 +2874,15 @@ }, "case": { "version": "1.6.3", - "bundled": true, - "peer": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "peer": true + "bundled": true }, "fs-extra": { "version": "9.1.0", "bundled": true, - "peer": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2384,18 +2892,15 @@ }, "graceful-fs": { "version": "4.2.10", - "bundled": true, - "peer": true + "bundled": true }, "ignore": { - "version": "5.2.0", - "bundled": true, - "peer": true + "version": "5.2.4", + "bundled": true }, "jsonfile": { "version": "6.1.0", "bundled": true, - "peer": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -2403,13 +2908,11 @@ }, "jsonschema": { "version": "1.4.1", - "bundled": true, - "peer": true + "bundled": true }, "lru-cache": { "version": "6.0.0", "bundled": true, - "peer": true, "requires": { "yallist": "^4.0.0" } @@ -2417,38 +2920,32 @@ "minimatch": { "version": "3.1.2", "bundled": true, - "peer": true, "requires": { "brace-expansion": "^1.1.7" } }, "punycode": { - "version": "2.1.1", - "bundled": true, - "peer": true + "version": "2.3.0", + "bundled": true }, "semver": { - "version": "7.3.7", + "version": "7.3.8", "bundled": true, - "peer": true, "requires": { "lru-cache": "^6.0.0" } }, "universalify": { "version": "2.0.0", - "bundled": true, - "peer": true + "bundled": true }, "yallist": { "version": "4.0.0", - "bundled": true, - "peer": true + "bundled": true }, "yaml": { "version": "1.10.2", - "bundled": true, - "peer": true + "bundled": true } } }, @@ -2517,12 +3014,12 @@ "dev": true }, "bundle-require": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-3.1.2.tgz", - "integrity": "sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.1.tgz", + "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==", "dev": true, "requires": { - "load-tsconfig": "^0.2.0" + "load-tsconfig": "^0.2.3" } }, "cac": { @@ -2554,9 +3051,9 @@ } }, "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "dev": true }, "compress-commons": { @@ -2660,40 +3157,34 @@ } }, "esbuild": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz", - "integrity": "sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.15.7", - "esbuild-android-64": "0.15.7", - "esbuild-android-arm64": "0.15.7", - "esbuild-darwin-64": "0.15.7", - "esbuild-darwin-arm64": "0.15.7", - "esbuild-freebsd-64": "0.15.7", - "esbuild-freebsd-arm64": "0.15.7", - "esbuild-linux-32": "0.15.7", - "esbuild-linux-64": "0.15.7", - "esbuild-linux-arm": "0.15.7", - "esbuild-linux-arm64": "0.15.7", - "esbuild-linux-mips64le": "0.15.7", - "esbuild-linux-ppc64le": "0.15.7", - "esbuild-linux-riscv64": "0.15.7", - "esbuild-linux-s390x": "0.15.7", - "esbuild-netbsd-64": "0.15.7", - "esbuild-openbsd-64": "0.15.7", - "esbuild-sunos-64": "0.15.7", - "esbuild-windows-32": "0.15.7", - "esbuild-windows-64": "0.15.7", - "esbuild-windows-arm64": "0.15.7" - } - }, - "esbuild-darwin-64": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz", - "integrity": "sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==", - "dev": true, - "optional": true + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", + "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.8", + "@esbuild/android-arm64": "0.17.8", + "@esbuild/android-x64": "0.17.8", + "@esbuild/darwin-arm64": "0.17.8", + "@esbuild/darwin-x64": "0.17.8", + "@esbuild/freebsd-arm64": "0.17.8", + "@esbuild/freebsd-x64": "0.17.8", + "@esbuild/linux-arm": "0.17.8", + "@esbuild/linux-arm64": "0.17.8", + "@esbuild/linux-ia32": "0.17.8", + "@esbuild/linux-loong64": "0.17.8", + "@esbuild/linux-mips64el": "0.17.8", + "@esbuild/linux-ppc64": "0.17.8", + "@esbuild/linux-riscv64": "0.17.8", + "@esbuild/linux-s390x": "0.17.8", + "@esbuild/linux-x64": "0.17.8", + "@esbuild/netbsd-x64": "0.17.8", + "@esbuild/openbsd-x64": "0.17.8", + "@esbuild/sunos-x64": "0.17.8", + "@esbuild/win32-arm64": "0.17.8", + "@esbuild/win32-ia32": "0.17.8", + "@esbuild/win32-x64": "0.17.8" + } }, "execa": { "version": "5.1.1", @@ -3314,9 +3805,9 @@ } }, "serverless-http": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.0.3.tgz", - "integrity": "sha512-op91LTe8s8ZtRckjrXxvnAxkoHQv+drk1bZr3inN3kunIP5QHuJIevHrvyDjVoL7yK9oOI1Vf/57radEcLVMjw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-3.1.1.tgz", + "integrity": "sha512-apCJb/xsB/E2IVT23bG9lBGoPv7kTgwhi6b/Reshc181vJv7Df4hCOj0WNQQRpPoKMEZAuGBEzhdIHUaL3pCLQ==", "dev": true }, "shebang-command": { @@ -3487,16 +3978,16 @@ "peer": true }, "tsup": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.5.0.tgz", - "integrity": "sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz", + "integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==", "dev": true, "requires": { - "bundle-require": "^3.1.2", + "bundle-require": "^4.0.0", "cac": "^6.7.12", "chokidar": "^3.5.1", "debug": "^4.3.1", - "esbuild": "^0.15.1", + "esbuild": "^0.17.6", "execa": "^5.0.0", "globby": "^11.0.3", "joycon": "^3.0.1", @@ -3520,9 +4011,9 @@ } }, "typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, "use-sync-external-store": { diff --git a/package.json b/package.json index bcc83ac..9e894ab 100644 --- a/package.json +++ b/package.json @@ -31,18 +31,18 @@ }, "devDependencies": { "archiver": "^5.3.1", - "commander": "^9.4.0", - "serverless-http": "^3.0.3", - "tsup": "^6.5.0", - "typescript": "^4.8.2" + "commander": "^10.0.0", + "serverless-http": "^3.1.1", + "tsup": "^6.6.3", + "typescript": "^4.9.5" }, "peerDependencies": { - "@aws-cdk/aws-apigatewayv2-alpha": "^2.41.0-alpha", - "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.41.0-alpha", + "@aws-cdk/aws-apigatewayv2-alpha": "^2.64.0-alpha.0", + "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.64.0-alpha.0", "@types/archiver": "^5.3.1", - "@types/node": "^18.7.16", - "aws-cdk": "^2.41.0", - "aws-cdk-lib": "^2.41.0", + "@types/node": "^18.13.0", + "aws-cdk": "^2.64.0", + "aws-cdk-lib": "^2.64.0", "envalid": "^7.3.1", "next": "^12.2 || ^13" },