From 72bee852ae6dcd19b674b9daa7197f59cabd861c Mon Sep 17 00:00:00 2001 From: DaveB93 Date: Thu, 25 Mar 2021 15:53:13 -0700 Subject: [PATCH] CDK stack now includes optional lambda functions for monitoring server status, and starting and stopping the server --- README.md | 8 +- bin/valheim-server-aws-cdk.ts | 25 +- cdk.json | 3 +- ...lambda-ecs-fargate-updownstatus-service.ts | 95 + lib/lambda-ecs-fargate-updownstatus-stack.ts | 22 + lib/valheim-server-aws-cdk-stack.ts | 4 +- package-lock.json | 2198 +++++++++++++---- package.json | 17 +- resources/serverstatus.ts | 104 + resources/startstopserver.ts | 84 + 10 files changed, 2013 insertions(+), 547 deletions(-) create mode 100644 lib/lambda-ecs-fargate-updownstatus-service.ts create mode 100644 lib/lambda-ecs-fargate-updownstatus-stack.ts create mode 100644 resources/serverstatus.ts create mode 100644 resources/startstopserver.ts diff --git a/README.md b/README.md index 45a6f80..e0e92dd 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,16 @@ npm i SERVER_PORT: "2456", ``` +5. Decide if you want the optional AWS App gateway lambda endpoints to start and stop your server and get the server status. If you do or don't want them, then update [here](bin/valheim-server-aws-cdk.ts#L29) + +```typescript +new ValheimServer(app, "ValheimServer", {addAppGatewayStartStopStatus: true, appGatewayStartStopPassword: "changeme"}); +``` + 5. Assuming you have already bootstrapped your account via the CDK (see [here](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) if not) - deploy the stack ``` -npx cdk deploy +npx cdk deploy --all ``` 6. enjoy accidentally chopping trees onto your friends powered by AWS! diff --git a/bin/valheim-server-aws-cdk.ts b/bin/valheim-server-aws-cdk.ts index 5294acf..63bbcaf 100644 --- a/bin/valheim-server-aws-cdk.ts +++ b/bin/valheim-server-aws-cdk.ts @@ -2,6 +2,29 @@ import "source-map-support/register"; import * as cdk from "@aws-cdk/core"; import { ValheimServerAwsCdkStack } from "../lib/valheim-server-aws-cdk-stack"; +import { LambdaEcsFargateUpdownstatusStack } from '../lib/lambda-ecs-fargate-updownstatus-stack'; + +class ValheimServerProps { + addAppGatewayStartStopStatus: boolean; + appGatewayStartStopPassword?: string; +} + +class ValheimServer extends cdk.Construct { + constructor(scope: cdk.Construct, id: string, props?: ValheimServerProps) { + super(scope, id); + var ecsStack = new ValheimServerAwsCdkStack(app, "ValheimServerAwsCdkStack"); + if( props?.addAppGatewayStartStopStatus ) + { + var lambdaStack = new LambdaEcsFargateUpdownstatusStack(app, 'LambdaEcsFargateUpdownstatusStack', { + serviceArn: cdk.Fn.importValue("fargateServiceName"), + clusterArn: cdk.Fn.importValue("fargateClusterName"), + startStopPassword: props.appGatewayStartStopPassword === undefined ? "" : props.appGatewayStartStopPassword, + }); + lambdaStack.addDependency(ecsStack); + } + } +} const app = new cdk.App(); -new ValheimServerAwsCdkStack(app, "ValheimServerAwsCdkStack"); +new ValheimServer(app, "ValheimServer", {addAppGatewayStartStopStatus: true, appGatewayStartStopPassword: "changeme"}); +app.synth(); diff --git a/cdk.json b/cdk.json index 8fada76..100c336 100644 --- a/cdk.json +++ b/cdk.json @@ -7,6 +7,7 @@ "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": true, "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": true, "@aws-cdk/aws-kms:defaultKeyPolicies": true, - "@aws-cdk/aws-s3:grantWriteWithoutAcl": true + "@aws-cdk/aws-s3:grantWriteWithoutAcl": true, + "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": true } } diff --git a/lib/lambda-ecs-fargate-updownstatus-service.ts b/lib/lambda-ecs-fargate-updownstatus-service.ts new file mode 100644 index 0000000..e77c614 --- /dev/null +++ b/lib/lambda-ecs-fargate-updownstatus-service.ts @@ -0,0 +1,95 @@ +import * as core from "@aws-cdk/core"; +import * as apigateway from "@aws-cdk/aws-apigateway"; +import * as lambda from "@aws-cdk/aws-lambda"; +import * as lambdanodejs from "@aws-cdk/aws-lambda-nodejs"; +import { Policy, PolicyStatement, PolicyProps, Effect } from "@aws-cdk/aws-iam" +import { Stack, Arn } from "@aws-cdk/core"; +import { EndpointType } from "@aws-cdk/aws-apigateway"; + +export interface LambdaEcsFargateUpDownServiceOptions { + region: string; + serviceArn: Arn; + clusterArn: Arn; + startStopPassword: string; +} + +export class LambdaEcsFargateUpDownService extends core.Construct { + constructor(scope: core.Construct, id: string, props: LambdaEcsFargateUpDownServiceOptions) { + super(scope, id); + + const serverStatusHandler = new lambdanodejs.NodejsFunction(this, "serverStatus", { + runtime: lambda.Runtime.NODEJS_10_X, // So we can use async + entry: 'resources/serverstatus.ts', + handler: "handler", + bundling: { + nodeModules: ['@aws-sdk/client-ecs', '@aws-sdk/client-ec2'], + }, + environment: { + REGION: props.region, + SERVICE_ARN: props.serviceArn as string, + CLUSTER_ARN: props.clusterArn as string + } + }); + + const ecsStatusPolicy = new Policy(this, "ecsStatusPolicy", { + statements: [ + new PolicyStatement({ + resources: ['*'], + effect: Effect.ALLOW, + actions: [ + "ecs:ListTasks", + "ecs:DescribeTasks", + "ec2:DescribeNetworkInterfaces" + ] + }) + ] + }); + serverStatusHandler.role?.attachInlinePolicy(ecsStatusPolicy); + + const startStopHandler = new lambdanodejs.NodejsFunction(this, "startstop", { + runtime: lambda.Runtime.NODEJS_10_X, // So we can use async + entry: 'resources/startstopserver.ts', + handler: "handler", + bundling: { + nodeModules: ['@aws-sdk/client-ecs'], + }, + environment: { + REGION: props.region, + SERVICE_NAME: props.serviceArn as string, + CLUSTER_ARN: props.clusterArn as string, + PASSWORD: props.startStopPassword, + } + }); + const ecsStartStopPolicy = new Policy(this, "ecsStartStopPolicy", { + statements: [ + new PolicyStatement({ + resources: ['*'], + effect: Effect.ALLOW, + actions: [ + "ecs:UpdateService", + ] + }) + ] + }); + startStopHandler.role?.attachInlinePolicy(ecsStartStopPolicy); + + + const api = new apigateway.RestApi(this, "startstopserver-api", { + restApiName: "Start Stop Status for ECS service", + description: "This service allows you to start / stop and get the status of an ECS task.", + endpointTypes: [ EndpointType.REGIONAL ] + }); + + const startStopResource = api.root.addResource("startstop"); + const serverStatusResource = api.root.addResource("serverstatus"); + + const serverStatusIntegration = new apigateway.LambdaIntegration(serverStatusHandler, { + }); + + const startStopIntegration = new apigateway.LambdaIntegration(startStopHandler, { + }); + + serverStatusResource.addMethod("ANY", serverStatusIntegration); // GET / + startStopResource.addMethod("ANY", startStopIntegration); + } +} \ No newline at end of file diff --git a/lib/lambda-ecs-fargate-updownstatus-stack.ts b/lib/lambda-ecs-fargate-updownstatus-stack.ts new file mode 100644 index 0000000..c22f33b --- /dev/null +++ b/lib/lambda-ecs-fargate-updownstatus-stack.ts @@ -0,0 +1,22 @@ +import * as cdk from '@aws-cdk/core'; +import { Arn, Stack } from '@aws-cdk/core'; +import * as lambda_service from '../lib/lambda-ecs-fargate-updownstatus-service'; + +interface MultiStackProps extends cdk.StackProps { + serviceArn: Arn; + clusterArn: Arn; + startStopPassword: string; +} + +export class LambdaEcsFargateUpdownstatusStack extends cdk.Stack { + constructor(scope: cdk.Construct, id: string, props: MultiStackProps) { + super(scope, id, props); + + new lambda_service.LambdaEcsFargateUpDownService(this, 'Status', { + region: cdk.Stack.of(this).region, + serviceArn: props.serviceArn, + clusterArn: props.clusterArn, + startStopPassword: props.startStopPassword, + }); + } +} diff --git a/lib/valheim-server-aws-cdk-stack.ts b/lib/valheim-server-aws-cdk-stack.ts index 639fd83..01a4a1a 100644 --- a/lib/valheim-server-aws-cdk-stack.ts +++ b/lib/valheim-server-aws-cdk-stack.ts @@ -131,10 +131,12 @@ export class ValheimServerAwsCdkStack extends cdk.Stack { new cdk.CfnOutput(this, "serviceName", { value: valheimService.serviceName, + exportName: "fargateServiceName", }); new cdk.CfnOutput(this, "clusterArn", { - value: fargateCluster.clusterName + value: fargateCluster.clusterName, + exportName:"fargateClusterName" }); new cdk.CfnOutput(this, "EFSId", { diff --git a/package-lock.json b/package-lock.json index e5ed1d3..50c2b69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,189 +5,189 @@ "requires": true, "dependencies": { "@aws-cdk/assert": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.89.0.tgz", - "integrity": "sha512-F/MnBkOqpTHBynxaoK6yW8vtTlOUdNO/uQjbfrc9EYqDnw5lRn62fwCcK9HIy82tFpmDNuyGWSzU/HzfRoSOVg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.95.0.tgz", + "integrity": "sha512-Tmi6rqKE+xX/ePqoxHRs3Orduh+Es9aFUpdUhq21rfPjH4NzLNVCgv0RS1Il/ruH/VsON/MMRiCPVMbEInrQIw==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/cloudformation-diff": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/cloudformation-diff": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/assets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.89.0.tgz", - "integrity": "sha512-kNdymlSZ8db1QVCmTLyu0M06TyIREdVqDmp4L1iF4Eoj9CfwtLIl1nlauaHnKgdSZAicvgZtDrXtf1SN5Mzalw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.95.0.tgz", + "integrity": "sha512-L4if69zmwNuKTJQDh8sX00F7YG4/tSOKOMwuSfKSCM9O3VVaqqZ7yRmie3F/7uTHsnVig94KCT9koZExjaiV7Q==", "requires": { - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-apigateway": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.89.0.tgz", - "integrity": "sha512-f5ZBlnI/r3ie69hh00e9OajDpCCo7gZbio4ZOBxy0IA+0WGQMAkLsSlxkM/YvWA32T3VoS2YM7M0dwTfY88Ahw==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-cognito": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-s3-assets": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.95.0.tgz", + "integrity": "sha512-vPwFWF/Ermga17IHONGuajArFT0+kTE7UCfq/NC4ImXdeolPMQB28lBAKVR7u3M5D+o13wmQQLNq40nLjw7iSw==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-cognito": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-s3-assets": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-apigatewayv2": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2/-/aws-apigatewayv2-1.89.0.tgz", - "integrity": "sha512-z2mSENc+uWWfY3e7mc1xbXUyn//mP2WTAMOl7zwue2l6ZUkDY4PJITtZjUNxLICpxxhkPuvrQMGQdIddVQ8Wfg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2/-/aws-apigatewayv2-1.95.0.tgz", + "integrity": "sha512-9HGgY7TZBK7xkD6vEsTkezHU/omSIK1wQZg3DUY8TF/ZyVmW8G/uy3M56QFW8gvILAkMEgW2Oa1NuAbfXN+5sg==", "requires": { - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-applicationautoscaling": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.89.0.tgz", - "integrity": "sha512-8UWmxyRlpSxCOhhgOUF1JJKdZ5SGpNe2RG1NluHFdhbcsPSwiN/wNfAWOFSqCGDjnn2QG1uWSCvGJhC8WGtHnw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.95.0.tgz", + "integrity": "sha512-YArfXH8cluSfzQ9Ycp+YgC4BXZb+WgQUvHk+KxLJ4ivcoQuzuBr9eWh6sU2Go9YLWCltYJz8UuTh3rd302NhUw==", "requires": { - "@aws-cdk/aws-autoscaling-common": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-autoscaling-common": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-autoscaling": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.89.0.tgz", - "integrity": "sha512-7QBlCK+1+1DmDmnn3VNeUC2S+F9mXAxMrUz/P/HZGeBUiqsx3mTVWeWXOPO2cnCJTgWeRCjiW3Kl2Lo7WFLSnA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.95.0.tgz", + "integrity": "sha512-NHPYiJpEvTNr2zhKAOuwDfRrQ0oXHZvqFiUYDXegvBInTO0L4eRopLnyseDXwIF1ctKqgDXhaHgr1Su0KiKEvg==", "requires": { - "@aws-cdk/aws-autoscaling-common": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-elasticloadbalancing": "1.89.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-autoscaling-common": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-elasticloadbalancing": "1.95.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-autoscaling-common": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.89.0.tgz", - "integrity": "sha512-nIDYklRKMUtqmvYI+BXcbIb8Bjb80g9rSizeTYR5BD6lj/T+7CdWJ+duKvacsjKDHnSoP/0V2bN4nlKp8qZq4w==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.95.0.tgz", + "integrity": "sha512-q6vzIs/6EXAeu6wUh279zcdAZ0xRnSIOFqsCsB29XyjPiS+ADzIMMYdXQPvlVQGYYnceN5pU7CMS9KKeGYbrEg==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-autoscaling-hooktargets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.89.0.tgz", - "integrity": "sha512-xlfJk34Z2NP0mGj0PJu/ZI7j2DMrmXVdJOPzBk+vKEVHf+lECc9elFjo86XYZMpcqSZ/Q/78kDufNO+bUvv+Bg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.95.0.tgz", + "integrity": "sha512-0hf4xYG3ZPj1tWVk3Zq0v/vzI11dp/KkpZJKJzOZ/A9dJJ2XHRjLUHPTaNgtXFAw9aVYmhZGKhvJg4CQR2EQSg==", "requires": { - "@aws-cdk/aws-autoscaling": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/aws-sns-subscriptions": "1.89.0", - "@aws-cdk/aws-sqs": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-autoscaling": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/aws-sns-subscriptions": "1.95.0", + "@aws-cdk/aws-sqs": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-certificatemanager": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.89.0.tgz", - "integrity": "sha512-b7fwr5HXBOuGiBd8SNQzVTyJyX1BsHtLgu5eUQI6tVHmqlSCe4QlmHZArywzn7Y4RCfikZEhL+u41fC5DEPTfQ==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.95.0.tgz", + "integrity": "sha512-wBzLmAVzKVLTfTApSFd9wr109738iEhkcBikZ2Eoiya+YKWVYcsHnUa+NG4CHY3umZxZEpQYt1MiSGJT3DFkfA==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-route53": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-route53": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-cloudformation": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.89.0.tgz", - "integrity": "sha512-ySWzDSua1V9l7Oc2oQrLttuQUQz/6qfpoU6rC/LwFUgcWmIYftx3xud8wwId9jTUfJaGv6pz5TG+TQ13gm45fw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.95.0.tgz", + "integrity": "sha512-bsvnhCkfsuqazAYdF9DvZLa24UravhO/UA62+0sbrscz8hBVr3RP8cn4aQe1G5rGJ3PwR9YVpd+6cti51pidzg==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-cloudfront": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.89.0.tgz", - "integrity": "sha512-LO7zJsGOC7KE7PtHkvGs7QHwWUrByp3KlaalzY8Akp7WgLhnPSuQEjDe0uhTq+9ADPCrl+6UzVQMXzZgpSX0Jg==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-ssm": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.95.0.tgz", + "integrity": "sha512-To+ZK6P4ammcSVgEeQOOZoxmKpW29NtGj0nsR/mpTp+jXyfdOUU4G9QoZYnelwLiUqBwt0I2dUdGKR31WQREXQ==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-ssm": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-cloudwatch": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.89.0.tgz", - "integrity": "sha512-PsLZjYEPfMqgaBphUxx8j+Y41TPkwShDi/rO6azgysJfAL0LX9AGgytl1A2hgFSEpz9WCCXFBKwV1Bv6H3Mo+A==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.95.0.tgz", + "integrity": "sha512-27M8jmZr/oKKEFe0dhS0MasUkJvQxrOJldRJy/YDlZ7z7imuApvDE3XQa1eptvOEumYedjar8v1ZXpDp6/ybrA==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-codeguruprofiler": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.89.0.tgz", - "integrity": "sha512-/kb0t9oXP+WSIIchji9sx/+2XkK0n1HFV0LQ2mhOUk/NmwoBJVYgGZF9htReMD2ugTiCoh7hTMRla5KjsLOC7g==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.95.0.tgz", + "integrity": "sha512-MZuq1Rbjj2FsKu9tuqJbrwZwAIK7wk4u9acaesyA0qujTbtOip0snnWDkBSELUxXbrQDYMgcrTDVk5Alh/+T3w==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-cognito": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.89.0.tgz", - "integrity": "sha512-KsAHFnvetNCg7o9fLYAQpSwwDanjZ7lNhPdbUQlRIiq81KiRoLQFrLbA+HcN+t8cY/KnmvpVSbfGIWhh02MHBg==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/custom-resources": "1.89.0", - "constructs": "^3.2.0", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.95.0.tgz", + "integrity": "sha512-sZ9QjKBxLZudmQhF4fquB2Qpk7Fyd3TLDdujqNZ/i8bKerWvmibZZVdiK2VzngDvgsYCUK05OU34DvwEhDxCog==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/custom-resources": "1.95.0", + "constructs": "^3.3.69", "punycode": "^2.1.1" }, "dependencies": { @@ -198,47 +198,47 @@ } }, "@aws-cdk/aws-ec2": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.89.0.tgz", - "integrity": "sha512-ygBG0zYqxkKhvFKgxVls1wWUXhrUGrY9u0yVwBjyeVGhFIvq61+L0U97heNtlk8xcWp4RZVxJ+NtFOfe6BZ2cg==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-s3-assets": "1.89.0", - "@aws-cdk/aws-ssm": "1.89.0", - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "@aws-cdk/region-info": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.95.0.tgz", + "integrity": "sha512-EqamyjAo33LhA4/UECceefrqCqU0diFKz9fC+JlTnbQMUOYltfrgc5PxAb+I33Qtjp/O5MTrlcQeeixDo5my8Q==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-s3-assets": "1.95.0", + "@aws-cdk/aws-ssm": "1.95.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "@aws-cdk/region-info": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-ecr": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.89.0.tgz", - "integrity": "sha512-6WTH1cq8klOwJ8HAvp+fMDQI+MJN1ONBn3E9oWvwdOkl9+xobEC0QuBUzy688N1JFi2okecZ/UiaHMTN9n9GQg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.95.0.tgz", + "integrity": "sha512-OYW2/WSiAkJYdqX1erFSjwuang7WIppIjyz02neMV8/U9CDLKcwgk3HVkGYZYm4P3dZzlUowvCfDxKcrAvv7tA==", "requires": { - "@aws-cdk/aws-events": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-events": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-ecr-assets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.89.0.tgz", - "integrity": "sha512-H1tqXmgeiDguV+7aEfX3pu/Qnnop93pGBzwqKLJof6CWFDDj7Kta4JOv3TO0bA5eUeOMko9kSPoizmlyQvIOFg==", - "requires": { - "@aws-cdk/assets": "1.89.0", - "@aws-cdk/aws-ecr": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.95.0.tgz", + "integrity": "sha512-I0awbn30CtQ3acxqlQSnxTAKx7qkepFQI73GCBLGornTO99fC0UsTZEK0DGSLQ48AvtPPWqRB+p59Uw5uUCTJg==", + "requires": { + "@aws-cdk/assets": "1.95.0", + "@aws-cdk/aws-ecr": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69", "minimatch": "^3.0.4" }, "dependencies": { @@ -268,347 +268,406 @@ } }, "@aws-cdk/aws-ecs": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.89.0.tgz", - "integrity": "sha512-eIzuEIieqgXRfQMCrkxAfI74XhiqlyknZvQD7LFoWSORXv/9xG6ysjWqeDOP37cANp7iFP55EQuMR5uLGCafuw==", - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.89.0", - "@aws-cdk/aws-autoscaling": "1.89.0", - "@aws-cdk/aws-autoscaling-hooktargets": "1.89.0", - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-ecr": "1.89.0", - "@aws-cdk/aws-ecr-assets": "1.89.0", - "@aws-cdk/aws-elasticloadbalancing": "1.89.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/aws-route53": "1.89.0", - "@aws-cdk/aws-route53-targets": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-s3-assets": "1.89.0", - "@aws-cdk/aws-secretsmanager": "1.89.0", - "@aws-cdk/aws-servicediscovery": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/aws-sqs": "1.89.0", - "@aws-cdk/aws-ssm": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.95.0.tgz", + "integrity": "sha512-drQoFUThFg+1bhW82gpi+24huPaqKFQpc0uZ8StoNcBiWXB5frmFeb0iyNZ+iYVgbytgBcywYZP2J84F0OVu1Q==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.95.0", + "@aws-cdk/aws-autoscaling": "1.95.0", + "@aws-cdk/aws-autoscaling-hooktargets": "1.95.0", + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-ecr": "1.95.0", + "@aws-cdk/aws-ecr-assets": "1.95.0", + "@aws-cdk/aws-elasticloadbalancing": "1.95.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/aws-route53": "1.95.0", + "@aws-cdk/aws-route53-targets": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-s3-assets": "1.95.0", + "@aws-cdk/aws-secretsmanager": "1.95.0", + "@aws-cdk/aws-servicediscovery": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/aws-sqs": "1.95.0", + "@aws-cdk/aws-ssm": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-efs": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.89.0.tgz", - "integrity": "sha512-puCMoesfMXJEgGYEdzHPwLXRLMcitBaBYul2MpvQ1EUUUEXe4Ap7H2psJ5Z5FraDTBYEqBxB0EGzURCdgDpPLg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.95.0.tgz", + "integrity": "sha512-9XrhUcPlAany/TQNijQT6SqI5E/ag5miRoUIkoxWR3JGCCb4KH23qbXdFev7f2s/b01mIj+ElGH/AWyYvblEDg==", "requires": { - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-elasticloadbalancing": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.89.0.tgz", - "integrity": "sha512-spiMtTTDgH8SXsEXK+fGCYHfCK99FA4ZPnXB/4XkXOgNQj5yo18zuqLxvcPMCTd9Z6j/rRTwuEhW2l0LRjpu0Q==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.95.0.tgz", + "integrity": "sha512-33afYK6nvyMiemcHbQRCX2pBgeom8Vh77UvZL91V3HnR90HihBYahx8y7l23xoDnv4oehUotE/K7JPglF+M4iQ==", "requires": { - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-elasticloadbalancingv2": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.89.0.tgz", - "integrity": "sha512-2EV4SgK825wivWnK53RVrKiy6kdjgI/p0fwkqWnW/gCkhlHjix+++cPHfj6kFmvPwyA4wvsxFWTRTu46EnrAKA==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "@aws-cdk/region-info": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.95.0.tgz", + "integrity": "sha512-g0NhGURZ8BaUBu4b/se0CPKvyOOJ3WogZQn8OVlS/TBTvvxHyCcCUQaMna0OIp93kyuJMvl7o6/ABNqR/DP4ew==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "@aws-cdk/region-info": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-events": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.89.0.tgz", - "integrity": "sha512-W2ev8lwMsA7oxXSgrPHCPtN61Zzb4CcA8luGu4cJI4PiZ56emE8d0g6J67crokGJANCwMMHSErRCUl4rVta5dg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.95.0.tgz", + "integrity": "sha512-6XMejpsnRu4YgbnHModpB9/UfxgCc5gzxB8PfcyMPr25oOh6LoFSDLAYof1HK/7scHmRvoEKBgzWB3X/Dw0Skw==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" + } + }, + "@aws-cdk/aws-globalaccelerator": { + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-globalaccelerator/-/aws-globalaccelerator-1.95.0.tgz", + "integrity": "sha512-FX3Yd8A0/twH40ISEE17CZYhZrGXUHTs/vlrIYSNDfp2gPHY/KbEsk/lTGUnS0SvjF5VuxHQIHgurh+wYwfZAw==", + "requires": { + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/custom-resources": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-iam": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.89.0.tgz", - "integrity": "sha512-qWMGk6jx6bHhmCeUPOlJ+nSFQeSeblBgo/TVYu8J65LaBEs36uDaaSE5Py+q68EyQ4smDDPiD9SpijJLVpQEbg==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.95.0.tgz", + "integrity": "sha512-jhwSb6fQHrMKMOyKQIY6KN4mAfIP2jDEr1FBRAh7kkjWDrScOa7m7YvyRhzgiQPxn8dWgf1P/b/mctxXfCUAFQ==", "requires": { - "@aws-cdk/core": "1.89.0", - "@aws-cdk/region-info": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/core": "1.95.0", + "@aws-cdk/region-info": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-kms": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.89.0.tgz", - "integrity": "sha512-UcGxcPmR5/z8LOeU4zyaujFyCUYl5UQzeLrUvdSDdmlh1yuQGKqUvlP6oLTNf7otf3mCRxkGtNyTP32CitBZiA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.95.0.tgz", + "integrity": "sha512-EiWWqDLoDCCbmsrqFPSXOFI7LnE03Axn1F7+h4w3Oo/Wnpav01mhh3kCNhlA0Hlr92taV3+qYcrcwJir42wN9w==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-lambda": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.89.0.tgz", - "integrity": "sha512-RC2wpWPG6QsrIs3X3nEOfNNM1a/sCsJX3ZgCqN0ACUogAH5aTMNeqknlfQZHTHtLIY5Y85hv2BPcGtyCEyvWCA==", - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.89.0", - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-codeguruprofiler": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-ecr": "1.89.0", - "@aws-cdk/aws-ecr-assets": "1.89.0", - "@aws-cdk/aws-efs": "1.89.0", - "@aws-cdk/aws-events": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/aws-s3-assets": "1.89.0", - "@aws-cdk/aws-sqs": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.95.0.tgz", + "integrity": "sha512-uvfaSOb/FQdMReqyraGNCvTT6MZwoE07730z/tLAu4d0A+qSrC7dUsLhFIcLnoX4S0aHd1R54Tp+CONHwlDiHA==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.95.0", + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-codeguruprofiler": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-ecr": "1.95.0", + "@aws-cdk/aws-ecr-assets": "1.95.0", + "@aws-cdk/aws-efs": "1.95.0", + "@aws-cdk/aws-events": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/aws-s3-assets": "1.95.0", + "@aws-cdk/aws-signer": "1.95.0", + "@aws-cdk/aws-sqs": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" + } + }, + "@aws-cdk/aws-lambda-nodejs": { + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-nodejs/-/aws-lambda-nodejs-1.95.0.tgz", + "integrity": "sha512-XfCYwfAYyT2xtUiiq05DawT3Jc5R3FE5mll2SXqGGHk2hVz30MeeQaRoe5HGmoaQiJdoY6EnHD3lZmgeEbPmCw==", + "requires": { + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-logs": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.89.0.tgz", - "integrity": "sha512-sK8GMkbHlVeBMYILw/ExV7XmwvqnRknR0g2qZY3P3yG1atT+6gSmhjdK5rgqIlzQ1NaI9G3DHcKHbd6jatueCA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.95.0.tgz", + "integrity": "sha512-V8IUzLlbmadMeBLXTaAkt+uW6D5EjRwgsrXLcgMl4xkO1SGfG+5FBgBhIpeTS1doXHh5SEQZPBJjAnpNJzCGaA==", "requires": { - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-s3-assets": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-s3-assets": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-route53": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.89.0.tgz", - "integrity": "sha512-dJGIIczaJYmNyIUxZHYhdUJQ39H5mttW8V5TzSLj1hDm9IK1bgfQapj4jZgOlUNADb8z6/zKAiFSOvtqfthKcQ==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.95.0.tgz", + "integrity": "sha512-W0WOs23HMEhyObLLcR88XvUHEgidJ4TBtcELzkG1qmai7+3+Vsd8z0tt5Nwc0RU3sMP22+qjGr1UVE88mW0RQA==", "requires": { - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/custom-resources": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/custom-resources": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-route53-targets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.89.0.tgz", - "integrity": "sha512-XoJjO8VevPopyFbe0qdluSV5Cdu4GTsl/4kKUsN+nRZlwwEjOBqeHm4YvtopUPmp+5TW2y+DAmAf31WFc+tRJQ==", - "requires": { - "@aws-cdk/aws-apigateway": "1.89.0", - "@aws-cdk/aws-apigatewayv2": "1.89.0", - "@aws-cdk/aws-cloudfront": "1.89.0", - "@aws-cdk/aws-cognito": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-elasticloadbalancing": "1.89.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-route53": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/region-info": "1.89.0", - "constructs": "^3.2.0" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.95.0.tgz", + "integrity": "sha512-Vk9xb90gvR9KrhCy75EeUC5rvPCwd2o5lxueruKSkF2eNKlVylaz6JMpf5MZy7AZUut5s9lkLUox7yC3QhkSyg==", + "requires": { + "@aws-cdk/aws-apigateway": "1.95.0", + "@aws-cdk/aws-apigatewayv2": "1.95.0", + "@aws-cdk/aws-cloudfront": "1.95.0", + "@aws-cdk/aws-cognito": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-elasticloadbalancing": "1.95.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.95.0", + "@aws-cdk/aws-globalaccelerator": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-route53": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/region-info": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-s3": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.89.0.tgz", - "integrity": "sha512-WhHe8lDFwUoWuPLdDkpWUJj88sJsHGFzF1zmuWah8RB0aXJF7obK/S3ySSP+/Q/it53ksnyp3IY5Tmng5kmc9w==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.95.0.tgz", + "integrity": "sha512-8VqGw5LKmGPX3xPBayEiSEmslZFxELWr2/x3IMN72KEUrUwEO9wJAVpfwFSfhAJ1uQEvU9VmKiXdHosG0zb1UA==", "requires": { - "@aws-cdk/aws-events": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-events": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-s3-assets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.89.0.tgz", - "integrity": "sha512-qWdFjXyPS8PVjYNSNMzokc8NWQlyDUrBRH9BwRhAUDUr3LrGglcpgGJb44GZ0Bv0dmvERx5q/l3j6r4bdEZNaw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.95.0.tgz", + "integrity": "sha512-gSZp3CAmF3Sa5iD32XzGIOX4QO/g9ZSGuABIt60BZ8B/vaELfCoz5EMuZb2NySJL49cm6WIGu2VzKEZRAX2S3A==", "requires": { - "@aws-cdk/assets": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-s3": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/assets": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-s3": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-sam": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.89.0.tgz", - "integrity": "sha512-haEyc6YTYqiddZTBX1XCMDy1ZAiZxH8Fsuw4bN7/rHhrX+uA8kVfR7VLZtzNW5HmFFjRrsVptzyCX0YvipP9uA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.95.0.tgz", + "integrity": "sha512-lIRSnIgyGrmO5G5Qz6aOlpSkkbslRRUYMKWC4t02XMr9fTsZba3ZvtBOkXIi935ibRKHuCYdGpcujH72jOBCOA==", "requires": { - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-secretsmanager": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.89.0.tgz", - "integrity": "sha512-2QJR+cwjz6iUAmPRiEY/U9e63lnZVAfUJxGLgFUR/Jas34S0FDtoWX3p2HJn1mGTspXlEJT+B5/342xG/OSrIQ==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.95.0.tgz", + "integrity": "sha512-qS9X4pLNqjU5g3jRaFxb73BGIAeutLVVOQSdeidsU077cmvUfi4tOlsbAu352tXDxAsKvhFC+jJ7SniAQCerJg==", "requires": { - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-sam": "1.89.0", - "@aws-cdk/core": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-sam": "1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-servicediscovery": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.89.0.tgz", - "integrity": "sha512-/k1CqJOWKdYYJX/SNAhkhVXqfEC3B+oMQCxQLAYKAZFr+mz/C/KWbuwtMe3XUHVNV8TR3bTzSJt+oSLO3NswCw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.95.0.tgz", + "integrity": "sha512-92lPmZZvHSe3YZ0f6U89GLzNpYTw/p+s9kMXpsGKMAsoW5m+17mcexJfLlyJnAGBxKNK55P1KZA1HbZ8vKLxlQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.95.0", + "@aws-cdk/aws-route53": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" + } + }, + "@aws-cdk/aws-signer": { + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-signer/-/aws-signer-1.95.0.tgz", + "integrity": "sha512-B+Xa4BhmUmUH/Mnd8sOVLHXp4v2ZgUnJealGasuzmYaNwKl3M1qpkNTx3OqRo+JY6SLpCXQshpjWlD8cCobYLA==", "requires": { - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.89.0", - "@aws-cdk/aws-route53": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-sns": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.89.0.tgz", - "integrity": "sha512-L7NtyQ40WnDepA1ZOaisHcRpFYu766dqQN7Ci7qIi9cFofG4BlGZ+SX3x90ThD2gtL17Ey6GODhnh9robv7YtQ==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.95.0.tgz", + "integrity": "sha512-nKD4YuenAgzM/3Q6e77hVuQZAHpFO0R73zrPCAqs2fZphYWLckIftF8D0Ywe2pWDW3F2b47d+QbbNoF5CYhg3A==", "requires": { - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-events": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/aws-sqs": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-events": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/aws-sqs": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-sns-subscriptions": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.89.0.tgz", - "integrity": "sha512-zJS32dpRTRXT5Y4kx2pPgEEdZgB3WCRRRkOu5s5Q1Vh23Q0gW4hj30S4+oyZhpi+kaGPBfmKAhPbrtctGshSZA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.95.0.tgz", + "integrity": "sha512-qXcQnjvGSG6dJlJceii4Ra/8g+eYPC091fhNbfApxeYdJGwmjW930ueTFAfvu4onSI0pe0smsQIm1tg34CVMGw==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/aws-sqs": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/aws-sqs": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-sqs": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.89.0.tgz", - "integrity": "sha512-J3L4W52gutJrNvMu8GoJyFpNi5OrexNpTr0bzSEKr7VVyKrfLUXrgY6vKPaXzZrA+D6EoI/h1Zc4+FuW/xTYJQ==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.95.0.tgz", + "integrity": "sha512-e68eVJqZYwrDAe2cM+U8jQsSITXlXWa6d6j7BcB8xoGm9b6bbU3rIlCq2rz9+FCrqhzul9elN68Ygi93saHDLg==", "requires": { - "@aws-cdk/aws-cloudwatch": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-cloudwatch": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/aws-ssm": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.89.0.tgz", - "integrity": "sha512-7oufk065H1l5YPnS3vX4ti4+dPVMYQjcjAABfvt/LxmmehZyQp+RkHRXq4IkOSQyW145MNK/oUHTnVEVbxl44A==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.95.0.tgz", + "integrity": "sha512-ykjFPq4GCxwqR4AS5XGcg+A0uy3SNnML67mNh7z6oh1Kg40POsGIsOn1ZDdAkwZILpHr7o5kkhLFt1V7qjLVIg==", "requires": { - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-kms": "1.89.0", - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-kms": "1.95.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/cfnspec": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.89.0.tgz", - "integrity": "sha512-dZJZEbjDQNFBvcghRGPC/jOUM297iPqNkO1ypzNPOvlKi7ToCR5njLYnj4hprai335SvC6PrcBaX2k7dYMmoZw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.95.0.tgz", + "integrity": "sha512-ZtafV3kK/+T2TpUHm+nlPHiteUJ9JFI7QWia4jP439aBLeHzRd7KxhBmfKSJiE+hlD1r8jARjafpBrdOyThJkQ==", "dev": true, "requires": { "md5": "^2.3.0" } }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.89.0.tgz", - "integrity": "sha512-MbnYJfZvGQfHLAR/ueVASJXNGrzlwXQEAPaj/1/TU3I4ZSfBh4KU+Puhgja3201NBN/6ImDayoCWBhM1Qjtt2A==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.95.0.tgz", + "integrity": "sha512-i3Q9vb6NiJ7pwYY9E8Ana5SYs24lldxpRz7fv8MGCAr+90qlLSAujw4yCvw5cjyT8FcyaQUttlFH3xsta7k2lA==", "requires": { "jsonschema": "^1.4.0", - "semver": "^7.3.2" + "semver": "^7.3.5" }, "dependencies": { "jsonschema": { "version": "1.4.0", "bundled": true }, + "lru-cache": { + "version": "6.0.0", + "bundled": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.2", + "version": "7.3.5", + "bundled": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", "bundled": true } } }, "@aws-cdk/cloudformation-diff": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.89.0.tgz", - "integrity": "sha512-om3y79SXaNATRUBEqyKNyqrq7VJ5mqVOSnhNGApnpLt4l8U8Sr7YKACwuRoGbbSGrzGoJ5z2+vpBJgJYHjq+yw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.95.0.tgz", + "integrity": "sha512-0FJlfHhmc6EhcaswwqUUIrEWrP8UEZnIcWFO/4QToGHdhqJ6KpoLJ1sBA2JN7jyFc5EV2XuaUwI9aXfDnLPAJw==", "dev": true, "requires": { - "@aws-cdk/cfnspec": "1.89.0", + "@aws-cdk/cfnspec": "1.95.0", "colors": "^1.4.0", "diff": "^5.0.0", "fast-deep-equal": "^3.1.3", - "string-width": "^4.2.0", + "string-width": "^4.2.2", "table": "^6.0.7" + }, + "dependencies": { + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } } }, "@aws-cdk/core": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.89.0.tgz", - "integrity": "sha512-Ou3DI7f/Wb6mrGqG8TQsBdJNuOte1PwnDpGnhdS5PeIWE2D+NMHvj+ryDdP/TCfRHn2AIqSlgVtjUn1dIhZyag==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.95.0.tgz", + "integrity": "sha512-vCwNqyW31+kOgzbTjUKRQQ/ODaHznrTvteu06zIe1jhpla+kyCHRqmViD8sWz/45kl14kcnaWYCaY3py61rQUQ==", "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "@aws-cdk/region-info": "1.89.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "@aws-cdk/region-info": "1.95.0", "@balena/dockerignore": "^1.0.2", - "constructs": "^3.2.0", + "constructs": "^3.3.69", "fs-extra": "^9.1.0", "ignore": "^5.1.8", "minimatch": "^3.0.4" @@ -649,7 +708,7 @@ } }, "graceful-fs": { - "version": "4.2.4", + "version": "4.2.6", "bundled": true }, "ignore": { @@ -678,39 +737,1040 @@ } }, "@aws-cdk/custom-resources": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.89.0.tgz", - "integrity": "sha512-dSsz1nfKltz6GZD6B3OwAx64lWxVUCPPxcEtzjO0A6r7MNFV18zD6GXk9fzvTRKaAevQjyeos31QVLRYib+aqw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.95.0.tgz", + "integrity": "sha512-ld7+ilbsVELqXLOxmxnoQO7Gwk1NN++eFimHG7b011Qq/NVGlvNRkPRPqkqrJqVNJUi5dqF0fRsA6jRrLhv0+Q==", "requires": { - "@aws-cdk/aws-cloudformation": "1.89.0", - "@aws-cdk/aws-ec2": "1.89.0", - "@aws-cdk/aws-iam": "1.89.0", - "@aws-cdk/aws-lambda": "1.89.0", - "@aws-cdk/aws-logs": "1.89.0", - "@aws-cdk/aws-sns": "1.89.0", - "@aws-cdk/core": "1.89.0", - "constructs": "^3.2.0" + "@aws-cdk/aws-cloudformation": "1.95.0", + "@aws-cdk/aws-ec2": "1.95.0", + "@aws-cdk/aws-iam": "1.95.0", + "@aws-cdk/aws-lambda": "1.95.0", + "@aws-cdk/aws-logs": "1.95.0", + "@aws-cdk/aws-sns": "1.95.0", + "@aws-cdk/core": "1.95.0", + "constructs": "^3.3.69" } }, "@aws-cdk/cx-api": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.89.0.tgz", - "integrity": "sha512-8tpwu0CHbVXq7oJiMzIhg9mOL3BG05Wq30ifpxSPrQjr1FTp2zRHKErAyi64CRtiNswWZLTtwt9JGQQD1QLQVA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.95.0.tgz", + "integrity": "sha512-/yZRI/URs7B+TZ0Sz0zOVZuajEmAPbiyJQwFx3NZN/v0KeMbxaTC1hT4dv+Pcf/vnZGOO9Hw2P6/QfwetY8Okw==", "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "semver": "^7.3.2" + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "semver": "^7.3.5" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "bundled": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.2", + "version": "7.3.5", + "bundled": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", "bundled": true } } }, "@aws-cdk/region-info": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.89.0.tgz", - "integrity": "sha512-GH2Do89upZ4rP7hZRNFsWz/z+NxNZFTSUg3Jy1D4hnr9KlQC/GpKytNp3ptDeo18GGZsuZqHqVfMSPpiIQXXlA==" + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.95.0.tgz", + "integrity": "sha512-UJH6mYAv185VoZHf56L6HUuC78GfyZfE7sM4zVV9t3ZuCSDrRqTq1jPpsylCmrsKtMc3ikRW6MLIf7BpLmo0fQ==" + }, + "@aws-crypto/ie11-detection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-1.0.0.tgz", + "integrity": "sha512-kCKVhCF1oDxFYgQrxXmIrS5oaWulkvRcPz+QBDMsUr2crbF4VGgGT6+uQhSwJFdUAQ2A//Vq+uT83eJrkzFgXA==", + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/sha256-browser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-1.1.0.tgz", + "integrity": "sha512-VIpuLRDonMAHgomrsm/zKbeXTnxpr4aHDQmS4pF+NcpvBp64l675yjGA9hyUYs/QJwBjUl8WqMjh9tIRgi85Sg==", + "requires": { + "@aws-crypto/ie11-detection": "^1.0.0", + "@aws-crypto/sha256-js": "^1.1.0", + "@aws-crypto/supports-web-crypto": "^1.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/sha256-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.1.0.tgz", + "integrity": "sha512-VIhuqbPgXDVr8sZe2yhgQcDRRmzf4CI8fmC1A3bHiRfE6wlz1d8KpeemqbuoEHotz/Dch9yOxlshyQDNjNFeHA==", + "requires": { + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/supports-web-crypto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-1.0.0.tgz", + "integrity": "sha512-IHLfv+WmVH89EW4n6a5eE8/hUlz6qkWGMn/v4r5ZgzcXdTC5nolii2z3k46y01hWRiC2PPhOdeSLzMUCUMco7g==", + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/abort-controller": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.6.1.tgz", + "integrity": "sha512-X81XkxX/2Tvv9YNcEto/rcQzPIdKJHFSnl9hBl/qkSdCFV/GaQ2XNWfKm5qFXMLlZNFS0Fn5CnBJ83qnBm47vg==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/client-ec2": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ec2/-/client-ec2-3.8.1.tgz", + "integrity": "sha512-ggOSHQJALka+72n6qwykFkSW+SwBlMT0DZDHD7QTIO4PcejEhJoOYHPyQOU6w4jr8aswo6TyabQLUivWv8bICg==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "3.8.0", + "@aws-sdk/credential-provider-node": "3.8.0", + "@aws-sdk/fetch-http-handler": "3.6.1", + "@aws-sdk/hash-node": "3.6.1", + "@aws-sdk/invalid-dependency": "3.6.1", + "@aws-sdk/middleware-content-length": "3.6.1", + "@aws-sdk/middleware-host-header": "3.6.1", + "@aws-sdk/middleware-logger": "3.6.1", + "@aws-sdk/middleware-retry": "3.8.0", + "@aws-sdk/middleware-sdk-ec2": "3.6.1", + "@aws-sdk/middleware-serde": "3.6.1", + "@aws-sdk/middleware-signing": "3.8.1", + "@aws-sdk/middleware-stack": "3.6.1", + "@aws-sdk/middleware-user-agent": "3.6.1", + "@aws-sdk/node-config-provider": "3.8.0", + "@aws-sdk/node-http-handler": "3.6.1", + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/smithy-client": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/url-parser": "3.6.1", + "@aws-sdk/url-parser-native": "3.6.1", + "@aws-sdk/util-base64-browser": "3.6.1", + "@aws-sdk/util-base64-node": "3.6.1", + "@aws-sdk/util-body-length-browser": "3.6.1", + "@aws-sdk/util-body-length-node": "3.6.1", + "@aws-sdk/util-user-agent-browser": "3.6.1", + "@aws-sdk/util-user-agent-node": "3.8.0", + "@aws-sdk/util-utf8-browser": "3.6.1", + "@aws-sdk/util-utf8-node": "3.6.1", + "@aws-sdk/util-waiter": "3.6.1", + "fast-xml-parser": "3.17.4", + "tslib": "^2.0.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "@aws-sdk/client-ecs": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ecs/-/client-ecs-3.8.1.tgz", + "integrity": "sha512-5D5rdZawMPo0Jxs6tro1iZyv8AgChRnCi3Wb30EfWYD499QTxhT8ehAXHFdeBU8i1A2vdUDQOTxrUAw0ss6qCQ==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "3.8.0", + "@aws-sdk/credential-provider-node": "3.8.0", + "@aws-sdk/fetch-http-handler": "3.6.1", + "@aws-sdk/hash-node": "3.6.1", + "@aws-sdk/invalid-dependency": "3.6.1", + "@aws-sdk/middleware-content-length": "3.6.1", + "@aws-sdk/middleware-host-header": "3.6.1", + "@aws-sdk/middleware-logger": "3.6.1", + "@aws-sdk/middleware-retry": "3.8.0", + "@aws-sdk/middleware-serde": "3.6.1", + "@aws-sdk/middleware-signing": "3.8.1", + "@aws-sdk/middleware-stack": "3.6.1", + "@aws-sdk/middleware-user-agent": "3.6.1", + "@aws-sdk/node-config-provider": "3.8.0", + "@aws-sdk/node-http-handler": "3.6.1", + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/smithy-client": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/url-parser": "3.6.1", + "@aws-sdk/url-parser-native": "3.6.1", + "@aws-sdk/util-base64-browser": "3.6.1", + "@aws-sdk/util-base64-node": "3.6.1", + "@aws-sdk/util-body-length-browser": "3.6.1", + "@aws-sdk/util-body-length-node": "3.6.1", + "@aws-sdk/util-user-agent-browser": "3.6.1", + "@aws-sdk/util-user-agent-node": "3.8.0", + "@aws-sdk/util-utf8-browser": "3.6.1", + "@aws-sdk/util-utf8-node": "3.6.1", + "@aws-sdk/util-waiter": "3.6.1", + "tslib": "^2.0.0" + } + }, + "@aws-sdk/client-sso": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.8.0.tgz", + "integrity": "sha512-7ACmEm7FVe6WnW7XimqpPeF02i2JtFsuP72u8V0p4u8Jo1li9WOE9qc/Q2u9ptDhKQ+YL49dRLW65Ltu4JsFIw==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "3.8.0", + "@aws-sdk/fetch-http-handler": "3.6.1", + "@aws-sdk/hash-node": "3.6.1", + "@aws-sdk/invalid-dependency": "3.6.1", + "@aws-sdk/middleware-content-length": "3.6.1", + "@aws-sdk/middleware-host-header": "3.6.1", + "@aws-sdk/middleware-logger": "3.6.1", + "@aws-sdk/middleware-retry": "3.8.0", + "@aws-sdk/middleware-serde": "3.6.1", + "@aws-sdk/middleware-stack": "3.6.1", + "@aws-sdk/middleware-user-agent": "3.6.1", + "@aws-sdk/node-config-provider": "3.8.0", + "@aws-sdk/node-http-handler": "3.6.1", + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/smithy-client": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/url-parser": "3.6.1", + "@aws-sdk/url-parser-native": "3.6.1", + "@aws-sdk/util-base64-browser": "3.6.1", + "@aws-sdk/util-base64-node": "3.6.1", + "@aws-sdk/util-body-length-browser": "3.6.1", + "@aws-sdk/util-body-length-node": "3.6.1", + "@aws-sdk/util-user-agent-browser": "3.6.1", + "@aws-sdk/util-user-agent-node": "3.8.0", + "@aws-sdk/util-utf8-browser": "3.6.1", + "@aws-sdk/util-utf8-node": "3.6.1", + "tslib": "^2.0.0" + } + }, + "@aws-sdk/config-resolver": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.8.0.tgz", + "integrity": "sha512-dtVB+yaT6gEqvzDt/pFS2suESTHb4qMiak3i34emSAcXilLYwOm3avUV/GApc499epQdxv/aRDAupanLVqTA1g==", + "requires": { + "@aws-sdk/signature-v4": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.8.0.tgz", + "integrity": "sha512-XUTu1rN1JAGEw3E5WBy00c5Dsu1WKG807bRNSMhlHZDus0ml24MHnypeQ7A2sluE1RJDUZC6vo4GmpM0pV//ug==", + "requires": { + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-imds": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.8.0.tgz", + "integrity": "sha512-//O6uy4HX3KeFTcGP/+GUPQhj1Ljooh+Lp0DDXqkXa79cfV2zCqoBDXeOHiPPwZCWQ14hYhD2qcriiiqEXFsmA==", + "requires": { + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-ini": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.8.0.tgz", + "integrity": "sha512-p/1fiV0vwN9VmNZh/4CVAJXrLpHZO6Dm5OPdIKmmQJaiF9/pZFTaxO82xtMiELDcRV4FAueGV+ptEHIJMZAfsg==", + "requires": { + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/shared-ini-file-loader": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-node": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.8.0.tgz", + "integrity": "sha512-O5r2LdPlsKlipyFsfDPnhnWnpW/K7MQ0W+7mOJoEaGUnB/ua7VrEvRiqacKWbjzqNz+ztyZZMWaiqJQCOjIINA==", + "requires": { + "@aws-sdk/credential-provider-env": "3.8.0", + "@aws-sdk/credential-provider-imds": "3.8.0", + "@aws-sdk/credential-provider-ini": "3.8.0", + "@aws-sdk/credential-provider-process": "3.8.0", + "@aws-sdk/credential-provider-sso": "3.8.0", + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/shared-ini-file-loader": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-process": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.8.0.tgz", + "integrity": "sha512-8wsJFne7CzJnf1D3TjD831WyJsJjEPK+zITgN2FWijUlsC3A8n7cibwRnGOWoSIh3hO6ELNflr33tL1GD2qd/g==", + "requires": { + "@aws-sdk/credential-provider-ini": "3.8.0", + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/shared-ini-file-loader": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/credential-provider-sso": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.8.0.tgz", + "integrity": "sha512-9sd6vBgs2uZVUz1tCiX6OuA/u21UL4ekzRpUMSs1NBin1Za1axYSOpjFDo/u2ajg9EYJ6s0SsE96y8WCDmq8vA==", + "requires": { + "@aws-sdk/client-sso": "3.8.0", + "@aws-sdk/credential-provider-ini": "3.8.0", + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/shared-ini-file-loader": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/fetch-http-handler": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.6.1.tgz", + "integrity": "sha512-N8l6ZbwhINuWG5hsl625lmIQmVjzsqRPmlgh061jm5D90IhsM5/3A3wUxpB/k0av1dmuMRw/m0YtBU5w4LOwvw==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/querystring-builder": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/util-base64-browser": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/hash-node": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.6.1.tgz", + "integrity": "sha512-iKEpzpyaG9PYCnaOGwTIf0lffsF/TpsXrzAfnBlfeOU/3FbgniW2z/yq5xBbtMDtLobtOYC09kUFwDnDvuveSA==", + "requires": { + "@aws-sdk/types": "3.6.1", + "@aws-sdk/util-buffer-from": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/invalid-dependency": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.6.1.tgz", + "integrity": "sha512-d0RLqK7yeDCZJKopnGmGXo2rYkQNE7sGKVmBHQD1j1kKZ9lWwRoJeWqo834JNPZzY5XRvZG5SuIjJ1kFy8LpyQ==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/is-array-buffer": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.6.1.tgz", + "integrity": "sha512-qm2iDJmCrxlQE2dsFG+TujPe7jw4DF+4RTrsFMhk/e3lOl3MAzQ6Fc2kXtgeUcVrZVFTL8fQvXE1ByYyI6WbCw==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-content-length": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.6.1.tgz", + "integrity": "sha512-QRcocG9f5YjYzbjs2HjKla6ZIjvx8Y8tm1ZSFOPey81m18CLif1O7M3AtJXvxn+0zeSck9StFdhz5gfjVNYtDg==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-host-header": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.6.1.tgz", + "integrity": "sha512-nwq8R2fGBRZQE0Fr/jiOgqfppfiTQCUoD8hyX3qSS7Qc2uqpsDOt2TnnoZl56mpQYkF/344IvMAkp+ew6wR73w==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-logger": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.6.1.tgz", + "integrity": "sha512-zxaSLpwKlja7JvK20UsDTxPqBZUo3rbDA1uv3VWwpxzOrEWSlVZYx/KLuyGWGkx9V71ZEkf6oOWWJIstS0wyQQ==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-retry": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.8.0.tgz", + "integrity": "sha512-VzBEMO7h+doctrNSuNXQhTs8pkR2r6qCEDIn3xRen4qaG80PpryC7oUExhuFyAljQBRsAH7ZPZtlSh7cAKnhTA==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/service-error-classification": "3.6.1", + "@aws-sdk/types": "3.6.1", + "react-native-get-random-values": "^1.4.0", + "tslib": "^1.8.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "@aws-sdk/middleware-sdk-ec2": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.6.1.tgz", + "integrity": "sha512-qH7BAPd+NbPyhKlocFVPJGbzjSO5hhSdNGTJ013cUjOau178G7DXQQSY4PRpodvufg+yMEPvFm/ZWu/iEWuhQQ==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/signature-v4": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/util-format-url": "3.6.1", + "@aws-sdk/util-uri-escape": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-serde": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.6.1.tgz", + "integrity": "sha512-EdQCFZRERfP3uDuWcPNuaa2WUR3qL1WFDXafhcx+7ywQxagdYqBUWKFJlLYi6njbkOKXFM+eHBzoXGF0OV3MJA==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-signing": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.8.1.tgz", + "integrity": "sha512-g6tJS/ph1whk7AsNOlFetAiZdvB2k0RHfoO5g6TPDAV8pvBLgjdhmTJg349iPyMDD2f1eabN3GGbeC0mDDEFMA==", + "requires": { + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/signature-v4": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-stack": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.6.1.tgz", + "integrity": "sha512-EPsIxMi8LtCt7YwTFpWGlVGYJc0q4kwFbOssY02qfqdCnyqi2y5wo089dH7OdxUooQ0D7CPsXM1zTTuzvm+9Fw==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/middleware-user-agent": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.6.1.tgz", + "integrity": "sha512-YvXvwllNDVvxQ30vIqLsx+P6jjnfFEQUmhlv64n98gOme6h2BqoyQDcC3yHRGctuxRZEsR7W/H1ASTKC+iabbQ==", + "requires": { + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/node-config-provider": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.8.0.tgz", + "integrity": "sha512-VBpFquxACQO9MbdOIz35JgwOH+oJ5JwXpEq2faIhK+0zyM0JqLfJNFnnmHaEH9kBVcdOYJihzDgFje3AnYn7PQ==", + "requires": { + "@aws-sdk/property-provider": "3.8.0", + "@aws-sdk/shared-ini-file-loader": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/node-http-handler": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.6.1.tgz", + "integrity": "sha512-6XSaoqbm9ZF6T4UdBCcs/Gn2XclwBotkdjj46AxO+9vRAgZDP+lH/8WwZsvfqJhhRhS0qxWrks98WGJwmaTG8g==", + "requires": { + "@aws-sdk/abort-controller": "3.6.1", + "@aws-sdk/protocol-http": "3.6.1", + "@aws-sdk/querystring-builder": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/property-provider": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.8.0.tgz", + "integrity": "sha512-9tOvTp6ObNdBgkqxXu5bpEdyzVnStO+aUprTbCH0lUfgCeig4q21xOt6Xsqt616WGtDJCAbMcdCay0XiDLLjAw==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/protocol-http": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.6.1.tgz", + "integrity": "sha512-WkQz7ncVYTLvCidDfXWouDzqxgSNPZDz3Bql+7VhZeITnzAEcr4hNMyEqMAVYBVugGmkG2W6YiUqNNs1goOcDA==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/querystring-builder": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.6.1.tgz", + "integrity": "sha512-ESe255Yl6vB1AMNqaGSQow3TBYYnpw0AFjE40q2VyiNrkbaqKmW2EzjeCy3wEmB1IfJDHy3O12ZOMUMOnjFT8g==", + "requires": { + "@aws-sdk/types": "3.6.1", + "@aws-sdk/util-uri-escape": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/querystring-parser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.6.1.tgz", + "integrity": "sha512-hh6dhqamKrWWaDSuO2YULci0RGwJWygoy8hpCRxs/FpzzHIcbm6Cl6Jhrn5eKBzOBv+PhCcYwbfad0kIZZovcQ==", + "requires": { + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/service-error-classification": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.6.1.tgz", + "integrity": "sha512-kZ7ZhbrN1f+vrSRkTJvXsu7BlOyZgym058nPA745+1RZ1Rtv4Ax8oknf2RvJyj/1qRUi8LBaAREjzQ3C8tmLBA==" + }, + "@aws-sdk/shared-ini-file-loader": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.8.0.tgz", + "integrity": "sha512-wjywtEcsYPwB+asK5iWGeox9ZI4ycaxIGRKJTahFo+VUK6mByIEEG/IF7HuQclSSeDFTt9Occ7hQpXpJ97zpdA==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/signature-v4": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.6.1.tgz", + "integrity": "sha512-EAR0qGVL4AgzodZv4t+BSuBfyOXhTNxDxom50IFI1MqidR9vI6avNZKcPHhgXbm7XVcsDGThZKbzQ2q7MZ2NTA==", + "requires": { + "@aws-sdk/is-array-buffer": "3.6.1", + "@aws-sdk/types": "3.6.1", + "@aws-sdk/util-hex-encoding": "3.6.1", + "@aws-sdk/util-uri-escape": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/smithy-client": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.6.1.tgz", + "integrity": "sha512-AVpRK4/iUxNeDdAm8UqP0ZgtgJMQeWcagTylijwelhWXyXzHUReY1sgILsWcdWnoy6gq845W7K2VBhBleni8+w==", + "requires": { + "@aws-sdk/middleware-stack": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/types": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz", + "integrity": "sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g==" + }, + "@aws-sdk/url-parser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.6.1.tgz", + "integrity": "sha512-pWFIePDx0PMCleQRsQDWoDl17YiijOLj0ZobN39rQt+wv5PhLSZDz9PgJsqS48nZ6hqsKgipRcjiBMhn5NtFcQ==", + "requires": { + "@aws-sdk/querystring-parser": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/url-parser-native": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser-native/-/url-parser-native-3.6.1.tgz", + "integrity": "sha512-3O+ktsrJoE8YQCho9L41YXO8EWILXrSeES7amUaV3mgIV5w4S3SB/r4RkmylpqRpQF7Ry8LFiAnMqH1wa4WBPA==", + "requires": { + "@aws-sdk/querystring-parser": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0", + "url": "^0.11.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-base64-browser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.6.1.tgz", + "integrity": "sha512-+DHAIgt0AFARDVC7J0Z9FkSmJhBMlkYdOPeAAgO0WaQoKj7rtsLQJ7P3v3aS1paKN5/sk5xNY7ziVB6uHtOvHA==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-base64-node": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.6.1.tgz", + "integrity": "sha512-oiqzpsvtTSS92+cL3ykhGd7t3qBJKeHvrgOwUyEf1wFWHQ2DPJR+dIMy5rMFRXWLKCl3w7IddY2rJCkLYMjaqQ==", + "requires": { + "@aws-sdk/util-buffer-from": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-body-length-browser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.6.1.tgz", + "integrity": "sha512-IdWwE3rm/CFDk2F+IwTZOFTnnNW5SB8y1lWiQ54cfc7y03hO6jmXNnpZGZ5goHhT+vf1oheNQt1J47m0pM/Irw==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-body-length-node": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.6.1.tgz", + "integrity": "sha512-CUG3gc18bSOsqViQhB3M4AlLpAWV47RE6yWJ6rLD0J6/rSuzbwbjzxM39q0YTAVuSo/ivdbij+G9c3QCirC+QQ==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-buffer-from": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.6.1.tgz", + "integrity": "sha512-OGUh2B5NY4h7iRabqeZ+EgsrzE1LUmNFzMyhoZv0tO4NExyfQjxIYXLQQvydeOq9DJUbCw+yrRZrj8vXNDQG+g==", + "requires": { + "@aws-sdk/is-array-buffer": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-format-url": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.6.1.tgz", + "integrity": "sha512-FvhcXcqLyJ0j0WdlmGs7PtjCCv8NaY4zBuXYO2iwAmqoy2SIZXQL63uAvmilqWj25q47ASAsUwSFLReCCfMklQ==", + "requires": { + "@aws-sdk/querystring-builder": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-hex-encoding": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.6.1.tgz", + "integrity": "sha512-pzsGOHtU2eGca4NJgFg94lLaeXDOg8pcS9sVt4f9LmtUGbrqRveeyBv0XlkHeZW2n0IZBssPHipVYQFlk7iaRA==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-locate-window": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.6.1.tgz", + "integrity": "sha512-xXJmtCNa1Sku2JkCx0RHRyXmTMBAraup6L14a5vgLrV2TNL89HRy2iybbe/6LqG8hg9QC3HFtr3QsXQXrsBI8Q==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-uri-escape": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.6.1.tgz", + "integrity": "sha512-tgABiT71r0ScRJZ1pMX0xO0QPMMiISCtumph50IU5VDyZWYgeIxqkMhIcrL1lX0QbNCMgX0n6rZxGrrbjDNavA==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-user-agent-browser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.6.1.tgz", + "integrity": "sha512-KhJ4VED4QpuBVPXoTjb5LqspX1xHWJTuL8hbPrKfxj+cAaRRW2CNEe7PPy2CfuHtPzP3dU3urtGTachbwNb0jg==", + "requires": { + "@aws-sdk/types": "3.6.1", + "bowser": "^2.11.0", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-user-agent-node": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.8.0.tgz", + "integrity": "sha512-TjIjxmGrO3HuWcycD5IDQzD5HUXhCIANQwpdBfTS0TOI/5kxmLWz48mU4tN5+l0ix0OhN3JutQV/zWoguNsebQ==", + "requires": { + "@aws-sdk/node-config-provider": "3.8.0", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-utf8-browser": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.6.1.tgz", + "integrity": "sha512-gZPySY6JU5gswnw3nGOEHl3tYE7vPKvtXGYoS2NRabfDKRejFvu+4/nNW6SSpoOxk6LSXsrWB39NO51k+G4PVA==", + "requires": { + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-utf8-node": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.6.1.tgz", + "integrity": "sha512-4s0vYfMUn74XLn13rUUhNsmuPMh0j1d4rF58wXtjlVUU78THxonnN8mbCLC48fI3fKDHTmDDkeEqy7+IWP9VyA==", + "requires": { + "@aws-sdk/util-buffer-from": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/util-waiter": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.6.1.tgz", + "integrity": "sha512-CQMRteoxW1XZSzPBVrTsOTnfzsEGs8N/xZ8BuBnXLBjoIQmRKVxIH9lgphm1ohCtVHoSWf28XH/KoOPFULQ4Tg==", + "requires": { + "@aws-sdk/abort-controller": "3.6.1", + "@aws-sdk/types": "3.6.1", + "tslib": "^1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } }, "@babel/code-frame": { "version": "7.12.13", @@ -1501,9 +2561,9 @@ "dev": true }, "ajv": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", - "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", + "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1633,20 +2693,20 @@ "dev": true }, "aws-cdk": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.89.0.tgz", - "integrity": "sha512-X1SEo8Q3TzLF3RE9wiKyxCRK9S29cnTimrganXLVgo9rhbVhkgtk78iN80RZarhSRs4ooTotnoH2rX7Uqg62ow==", - "dev": true, - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/cloudformation-diff": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "@aws-cdk/region-info": "1.89.0", - "@aws-cdk/yaml-cfn": "1.89.0", - "archiver": "^5.2.0", - "aws-sdk": "^2.830.0", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.95.0.tgz", + "integrity": "sha512-U36qZyBQ4EJuvOFiBLIv362KZOpNqy9VgAZNA6uF62MF3o8vCxsgrmX34Vj2Hechw9LY4Gt33pABSXyTxZmOow==", + "dev": true, + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/cloudformation-diff": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "@aws-cdk/region-info": "1.95.0", + "@aws-cdk/yaml-cfn": "1.95.0", + "archiver": "^5.3.0", + "aws-sdk": "^2.848.0", "camelcase": "^6.2.0", - "cdk-assets": "1.89.0", + "cdk-assets": "1.95.0", "colors": "^1.4.0", "decamelize": "^5.0.0", "fs-extra": "^9.1.0", @@ -1655,7 +2715,7 @@ "minimatch": ">=3.0", "promptly": "^3.2.0", "proxy-agent": "^4.0.1", - "semver": "^7.3.2", + "semver": "^7.3.5", "source-map-support": "^0.5.19", "table": "^6.0.7", "uuid": "^8.3.2", @@ -1664,61 +2724,61 @@ }, "dependencies": { "@aws-cdk/cfnspec": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.89.0.tgz", - "integrity": "sha512-dZJZEbjDQNFBvcghRGPC/jOUM297iPqNkO1ypzNPOvlKi7ToCR5njLYnj4hprai335SvC6PrcBaX2k7dYMmoZw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.95.0.tgz", + "integrity": "sha512-ZtafV3kK/+T2TpUHm+nlPHiteUJ9JFI7QWia4jP439aBLeHzRd7KxhBmfKSJiE+hlD1r8jARjafpBrdOyThJkQ==", "dev": true, "requires": { "md5": "^2.3.0" } }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.89.0.tgz", - "integrity": "sha512-MbnYJfZvGQfHLAR/ueVASJXNGrzlwXQEAPaj/1/TU3I4ZSfBh4KU+Puhgja3201NBN/6ImDayoCWBhM1Qjtt2A==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.95.0.tgz", + "integrity": "sha512-i3Q9vb6NiJ7pwYY9E8Ana5SYs24lldxpRz7fv8MGCAr+90qlLSAujw4yCvw5cjyT8FcyaQUttlFH3xsta7k2lA==", "dev": true, "requires": { "jsonschema": "^1.4.0", - "semver": "^7.3.2" + "semver": "^7.3.5" } }, "@aws-cdk/cloudformation-diff": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.89.0.tgz", - "integrity": "sha512-om3y79SXaNATRUBEqyKNyqrq7VJ5mqVOSnhNGApnpLt4l8U8Sr7YKACwuRoGbbSGrzGoJ5z2+vpBJgJYHjq+yw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.95.0.tgz", + "integrity": "sha512-0FJlfHhmc6EhcaswwqUUIrEWrP8UEZnIcWFO/4QToGHdhqJ6KpoLJ1sBA2JN7jyFc5EV2XuaUwI9aXfDnLPAJw==", "dev": true, "requires": { - "@aws-cdk/cfnspec": "1.89.0", + "@aws-cdk/cfnspec": "1.95.0", "colors": "^1.4.0", "diff": "^5.0.0", "fast-deep-equal": "^3.1.3", - "string-width": "^4.2.0", + "string-width": "^4.2.2", "table": "^6.0.7" } }, "@aws-cdk/cx-api": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.89.0.tgz", - "integrity": "sha512-8tpwu0CHbVXq7oJiMzIhg9mOL3BG05Wq30ifpxSPrQjr1FTp2zRHKErAyi64CRtiNswWZLTtwt9JGQQD1QLQVA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.95.0.tgz", + "integrity": "sha512-/yZRI/URs7B+TZ0Sz0zOVZuajEmAPbiyJQwFx3NZN/v0KeMbxaTC1hT4dv+Pcf/vnZGOO9Hw2P6/QfwetY8Okw==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "semver": "^7.3.2" + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "semver": "^7.3.5" } }, "@aws-cdk/region-info": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.89.0.tgz", - "integrity": "sha512-GH2Do89upZ4rP7hZRNFsWz/z+NxNZFTSUg3Jy1D4hnr9KlQC/GpKytNp3ptDeo18GGZsuZqHqVfMSPpiIQXXlA==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.95.0.tgz", + "integrity": "sha512-UJH6mYAv185VoZHf56L6HUuC78GfyZfE7sM4zVV9t3ZuCSDrRqTq1jPpsylCmrsKtMc3ikRW6MLIf7BpLmo0fQ==", "dev": true }, "@aws-cdk/yaml-cfn": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/yaml-cfn/-/yaml-cfn-1.89.0.tgz", - "integrity": "sha512-t7IDf1h36luIKjNv1yHYdUfJ+WpGaSYiNNPP6hWA/qBmBa3DmTw+BF92MRrEP/OPZ+rJTAPPEDm/gOl8syPOhw==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/yaml-cfn/-/yaml-cfn-1.95.0.tgz", + "integrity": "sha512-KuaXDPgB5D+cF90CihdpXrIA+4WN9EAV3hJkuhdGo8hEOSqL7KxjiODUkr9VQ8Nnkv0P/VP4vVPhWsUGRlrcog==", "dev": true, "requires": { - "yaml": "1.10.0" + "yaml": "1.10.2" } }, "@tootallnate/once": { @@ -1737,9 +2797,9 @@ } }, "ajv": { - "version": "7.0.3", - "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "version": "7.2.1", + "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-7.2.1.tgz#a5ac226171912447683524fa2f1248fcf8bac83d", + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1764,9 +2824,9 @@ } }, "archiver": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz#25aa1b3d9febf7aec5b0f296e77e69960c26db94", - "integrity": "sha512-QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==", + "version": "5.3.0", + "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba", + "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", "dev": true, "requires": { "archiver-utils": "^2.1.0", @@ -1774,8 +2834,8 @@ "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.0.0", - "tar-stream": "^2.1.4", - "zip-stream": "^4.0.4" + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" }, "dependencies": { "readable-stream": { @@ -1852,9 +2912,9 @@ "dev": true }, "aws-sdk": { - "version": "2.830.0", - "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.830.0.tgz#1d3631d573d18c48373046da7ad92855a7fd1636", - "integrity": "sha512-vFatoWkdJmRzpymWbqsuwVsAJdhdAvU2JcM9jKRENTNKJw90ljnLyeP1eKCp4O3/4Lg43PVBwY/KUqPy4wL+OA==", + "version": "2.866.0", + "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.866.0.tgz#8150fb2e0cfecd281968edee7cad84598d8d7a09", + "integrity": "sha512-6Z581Ek2Yfm78NpeEFMNuSoyiYG7tipEaqfWNFR1AGyYheZwql4ajhzzlpWn91LBpdm7qcFldSNY9U0tKpKWNw==", "dev": true, "requires": { "buffer": "4.9.2", @@ -1914,9 +2974,9 @@ "dev": true }, "bl": { - "version": "4.0.3", - "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { "buffer": "^5.5.0", @@ -1997,15 +3057,15 @@ "dev": true }, "cdk-assets": { - "version": "1.89.0", - "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.89.0.tgz", - "integrity": "sha512-AL4GwsAuLLTic6ohbePHn9tor1H/vZIh7NYp6dzF/0eW8fVFISYKeDjti18XBLDB7UTCPKHPmrDBH62OrGEPig==", + "version": "1.95.0", + "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.95.0.tgz", + "integrity": "sha512-wVK5fM9LfmkDm45Jg7qz9wCnW+4VguW0OqEf+r3Ji1eAbNAr3hVkfd8QCdZ9zt+Ec1Z8zd18JfYtqlzzv0VVWA==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.89.0", - "@aws-cdk/cx-api": "1.89.0", - "archiver": "^5.2.0", - "aws-sdk": "^2.830.0", + "@aws-cdk/cloud-assembly-schema": "1.95.0", + "@aws-cdk/cx-api": "1.95.0", + "archiver": "^5.3.0", + "aws-sdk": "^2.848.0", "glob": "^7.1.6", "yargs": "^16.2.0" } @@ -2058,9 +3118,9 @@ "dev": true }, "compress-commons": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz#d6896be386e52f37610cef9e6fa5defc58c31bd7", - "integrity": "sha512-qhd32a9xgzmpfoga1VQEiLEwdKZ6Plnpx5UCgIsf89FSolyJ7WnifY4Gtjgv5WR6hWAyRaHxC5MiEhU/38U70A==", + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz#25ec7a4528852ccd1d441a7d4353cd0ece11371b", + "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", "dev": true, "requires": { "buffer-crc32": "^0.2.13", @@ -2120,9 +3180,9 @@ } }, "crc32-stream": { - "version": "4.0.1", - "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz#0f047d74041737f8a55e86837a1b826bd8ab0067", - "integrity": "sha512-FN5V+weeO/8JaXsamelVYO1PHyeCsuL3HcG4cqsj0ceARcocxalaShCsohZMSAF+db7UYFwBy1rARK/0oFItUw==", + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", "dev": true, "requires": { "crc-32": "^1.2.0", @@ -2170,9 +3230,9 @@ "dev": true }, "debug": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -2267,8 +3327,7 @@ "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "optionator": "^0.8.1" } }, "esprima": { @@ -2414,10 +3473,7 @@ "version": "4.0.0", "resolved": "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } + "dev": true }, "universalify": { "version": "0.1.2", @@ -2442,9 +3498,9 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.6", + "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "heap": { @@ -2571,7 +3627,6 @@ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6", "universalify": "^2.0.0" } }, @@ -2601,9 +3656,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.defaults": { @@ -2883,10 +3938,30 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } }, "setprototypeof": { "version": "1.1.1", @@ -2912,9 +3987,9 @@ "dev": true }, "socks": { - "version": "2.5.0", - "resolved": "https://registry.yarnpkg.com/socks/-/socks-2.5.0.tgz#3a7c286db114f67864a4bd8b4207a91d1db3d6db", - "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "version": "2.6.0", + "resolved": "https://registry.yarnpkg.com/socks/-/socks-2.6.0.tgz#6b984928461d39871b3666754b9000ecf39dfac2", + "integrity": "sha512-mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==", "dev": true, "requires": { "ip": "^1.1.5", @@ -2955,9 +4030,9 @@ "dev": true }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -2996,9 +4071,9 @@ } }, "tar-stream": { - "version": "2.1.4", - "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa", - "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", + "version": "2.2.0", + "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "requires": { "bl": "^4.0.3", @@ -3043,9 +4118,9 @@ "dev": true }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", "dev": true }, "type-check": { @@ -3070,9 +4145,9 @@ "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -3180,9 +4255,9 @@ "dev": true }, "yaml": { - "version": "1.10.0", - "resolved": "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "version": "1.10.2", + "resolved": "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yargs": { @@ -3201,19 +4276,19 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.7", + "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true }, "zip-stream": { - "version": "4.0.4", - "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz#3a8f100b73afaa7d1ae9338d910b321dec77ff3a", - "integrity": "sha512-a65wQ3h5gcQ/nQGWV1mSZCEzCML6EK/vyVPcrPNynySP1j3VBbQKh3nhC8CbORb+jfl2vXvh56Ul5odP1bAHqw==", + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "dev": true, "requires": { "archiver-utils": "^2.1.0", - "compress-commons": "^4.0.2", + "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" }, "dependencies": { @@ -3400,6 +4475,11 @@ "tweetnacl": "^0.14.3" } }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3625,9 +4705,9 @@ "dev": true }, "constructs": { - "version": "3.3.20", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.3.20.tgz", - "integrity": "sha512-2vVjcfH5HdjYcyubr/aEZtQvm0pHz6C62FPyRZXu1tbHrsi7r4t0P490DdtApLoB0xbhYikQaneuRfSIzsIjSQ==" + "version": "3.3.71", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.3.71.tgz", + "integrity": "sha512-3KFtTsA7OV27m/+pJhN4iJkKzHbPIPvyvEX5BQ/JCAWjfCHOQEVpIgxHLpT4i8L1OFta+pJrzcEVAHo6UitwqA==" }, "convert-source-map": { "version": "1.7.0", @@ -4105,6 +5185,11 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4123,6 +5208,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-xml-parser": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.17.4.tgz", + "integrity": "sha512-qudnQuyYBgnvzf5Lj/yxMcf4L9NcVWihXJg7CiU1L+oUCq8MUnFEfH2/nXR/W5uq+yvUN1h7z6s7vs2v1WkL1A==" + }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -5930,12 +7020,25 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, "react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, + "react-native-get-random-values": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.6.0.tgz", + "integrity": "sha512-sPTRTJk4bpuZeTBf6d7DldQGAOCi0GZh5NxzNI3eHXzxwHbNkV13Q22TehiSb3bsaVqwLC4UAa6QvYIucyyc+A==", + "requires": { + "fast-base64-decode": "^1.0.0" + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -6912,6 +8015,11 @@ } } }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -7030,6 +8138,22 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", diff --git a/package.json b/package.json index a352dbf..378ec8c 100644 --- a/package.json +++ b/package.json @@ -11,20 +11,25 @@ "cdk": "cdk" }, "devDependencies": { - "@aws-cdk/assert": "1.89.0", + "@aws-cdk/assert": "1.95.0", "@types/jest": "^26.0.10", "@types/node": "10.17.27", "jest": "^26.4.2", "ts-jest": "^26.2.0", - "aws-cdk": "1.89.0", + "aws-cdk": "1.95.0", "ts-node": "^9.0.0", "typescript": "~3.9.7" }, "dependencies": { - "@aws-cdk/aws-ec2": "^1.89.0", - "@aws-cdk/aws-ecs": "^1.89.0", - "@aws-cdk/aws-secretsmanager": "^1.89.0", - "@aws-cdk/core": "1.89.0", + "@aws-cdk/aws-apigateway": "^1.95.0", + "@aws-cdk/aws-ecs": "^1.95.0", + "@aws-cdk/aws-lambda": "^1.95.0", + "@aws-cdk/aws-lambda-nodejs": "^1.95.0", + "@aws-cdk/aws-ec2": "^1.95.0", + "@aws-cdk/aws-secretsmanager": "^1.95.0", + "@aws-cdk/core": "1.95.0", + "@aws-sdk/client-ec2": "^3.8.1", + "@aws-sdk/client-ecs": "^3.8.1", "source-map-support": "^0.5.16" } } diff --git a/resources/serverstatus.ts b/resources/serverstatus.ts new file mode 100644 index 0000000..0bc14dd --- /dev/null +++ b/resources/serverstatus.ts @@ -0,0 +1,104 @@ +/* + +This code was created from sample code provided for the AWS SDK for JavaScript version 3 (v3), +which is available at https://github.com/aws/aws-sdk-js-v3. This example is in the 'AWS SDK for JavaScript v3 Developer Guide' at +https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/using-lambda-function-prep.html. + +Purpose: +This function queries the server status of an ecs container, and if it's running returns the public ip + +Inputs (into code): +- REGION +- SERVICE_ARN - service arn or name of the ecs service +- CLUSTER_ARN - cluster arn or name of the ecs cluster + +*/ +"use strict"; + +const { ECSClient, ListServicesCommand, DescribeServicesCommand, ListTasksCommand, DescribeTasksCommand } = require('@aws-sdk/client-ecs'); +const { EC2Client, DescribeNetworkInterfacesCommand } = require('@aws-sdk/client-ec2'); + +//Set the AWS Region +const REGION = process.env.REGION; +const SERVICE_ARN = process.env.SERVICE_ARN; +const CLUSTER_ARN = process.env.CLUSTER_ARN; + +const client = new ECSClient({ region: REGION }); +const ec2Client = new EC2Client({ region: REGION }); + +exports.handler = async (event, context, callback) => { + + + var statusResults = await getIPFunction(); + console.log("status results: " + JSON.stringify(statusResults)); + + let response = { + statusCode: 200, + headers: { + }, + body: JSON.stringify(statusResults) + }; + + callback(null, response); +}; + + +async function getIPFunction() { + + // Define the object that will hold the data values returned + let statusResults = { + running: false, + ip: "", + }; + + try { + + var ListTasksParams = { + servicesName: SERVICE_ARN, + cluster: CLUSTER_ARN, + desiredStatus: "RUNNING" + }; + const listTasksCommand = new ListTasksCommand(ListTasksParams); + + const listTasks = await client.send(listTasksCommand); + console.log(listTasks); + + if (listTasks.taskArns.length > 0) { + var describeTaskParams = { + cluster: CLUSTER_ARN, + tasks: listTasks.taskArns + }; + + + const describeTaskCommand = new DescribeTasksCommand(describeTaskParams); + + const describeTasks = await client.send(describeTaskCommand); + console.log(describeTasks); + var networkInterfaceId = describeTasks.tasks[0].attachments[0].details.find(x => x.name === "networkInterfaceId").value; + + console.log("found network interfaceid " + networkInterfaceId); + + var describeNetworkInterfacesParams = { + NetworkInterfaceIds: [networkInterfaceId] + }; + + const describeNetworkInterfacesCommand = new DescribeNetworkInterfacesCommand(ListTasksParams); + + const networkInterfaces = await ec2Client.send(describeNetworkInterfacesCommand); + console.log(networkInterfaces); + var publicIp = networkInterfaces.NetworkInterfaces.find(x => x.Association != undefined).Association.PublicIp; + console.log("found public IP " + publicIp); + statusResults.running = true; + statusResults.ip = publicIp + ":2456"; + } + + } catch (error) { + console.log(error); + } + + console.log(JSON.stringify(statusResults)); + + + return statusResults; +} + diff --git a/resources/startstopserver.ts b/resources/startstopserver.ts new file mode 100644 index 0000000..7140150 --- /dev/null +++ b/resources/startstopserver.ts @@ -0,0 +1,84 @@ +/* + +ABOUT THIS NODE.JS EXAMPLE: This example works with AWS SDK for JavaScript version 3 (v3), +which is available at https://github.com/aws/aws-sdk-js-v3. This example is in the 'AWS SDK for JavaScript v3 Developer Guide' at +https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/using-lambda-function-prep.html. + +Purpose: +startstopserver.ts sets the desiredCount for an ECS Service after authenticating with a ( poor ) password. ( min 0, max 1) + +Inputs (into code): +- REGION +- SERVICE_NAME ( or ARN ) +- CLUSTER_ARN +- PASSWORD + +*/ +"use strict"; + +const { ECSClient, UpdateServiceCommand } = require( '@aws-sdk/client-ecs'); + +//Set the AWS Region +const REGION = process.env.REGION; + +const SERVICE_NAME = process.env.SERVICE_NAME; +const CLUSTER_ARN = process.env.CLUSTER_ARN; +const PASSWORD = process.env.PASSWORD; + +exports.handler = (event, context, callback) => { + console.log("request: " + JSON.stringify(event)); + let responseCode = 400; + let message = "authentication failed"; + + var params = { + desiredCount: 1, + service: SERVICE_NAME, + cluster: CLUSTER_ARN + } + + if (event.queryStringParameters && event.queryStringParameters.desiredCount !== undefined) { + let count = Math.min(Math.max(event.queryStringParameters.desiredCount, 0), 1); + params.desiredCount = count; + console.log("changing desiredCount to " + count); + } + + if (event.queryStringParameters && event.queryStringParameters.key) { + let key = event.queryStringParameters.key; + if (key == PASSWORD) { + const client = new ECSClient({ region: REGION }); + console.log("starting service " + JSON.stringify(params)); + message = "authentication success"; + responseCode = 200; + + + const updateCommand = new UpdateServiceCommand(params); + + client.send(updateCommand).then( + (data) => {console.log(data);}, + (err) => { console.log(err);} + ); + } + } + + let responseBody = { + message: message, + }; + + // The output from a Lambda proxy integration must be + // in the following JSON object. The 'headers' property + // is for custom response headers in addition to standard + // ones. The 'body' property must be a JSON string. For + // base64-encoded payload, you must also set the 'isBase64Encoded' + // property to 'true'. + let response = { + statusCode: responseCode, + headers: { + }, + body: JSON.stringify(responseBody) + }; + + // Return the JSON result to the caller of the Lambda function + callback(null, response); +}; + +