From 7693e5dd8a42ffc00def32ccf5e9260a3d37dae5 Mon Sep 17 00:00:00 2001 From: Kazuho CryerShinozuka Date: Wed, 23 Oct 2024 07:12:37 +0900 Subject: [PATCH] add integ test --- .projen/deps.json | 22 +- .projen/tasks.json | 4 +- .projenrc.ts | 7 +- API.md | 268 +++++++ package.json | 16 +- src/lambda/adapters/thing.ts | 102 +-- src/lambda/index.ts | 4 +- test/hello.test.ts | 5 - ...efaultTestDeployAssertE3E7D2A4.assets.json | 19 + ...aultTestDeployAssertE3E7D2A4.template.json | 36 + .../IntegTestStack.assets.json | 58 ++ .../IntegTestStack.template.json | 396 ++++++++++ .../integ.thing-with-cert.js.snapshot/cdk.out | 1 + .../integ.json | 12 + .../manifest.json | 209 +++++ .../tree.json | 735 ++++++++++++++++++ test/integ.thing-with-cert.ts | 32 + yarn.lock | 547 ++++++------- 18 files changed, 2130 insertions(+), 343 deletions(-) create mode 100644 API.md delete mode 100644 test/hello.test.ts create mode 100644 test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.assets.json create mode 100644 test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.template.json create mode 100644 test/integ.thing-with-cert.js.snapshot/IntegTestStack.assets.json create mode 100644 test/integ.thing-with-cert.js.snapshot/IntegTestStack.template.json create mode 100644 test/integ.thing-with-cert.js.snapshot/cdk.out create mode 100644 test/integ.thing-with-cert.js.snapshot/integ.json create mode 100644 test/integ.thing-with-cert.js.snapshot/manifest.json create mode 100644 test/integ.thing-with-cert.js.snapshot/tree.json create mode 100644 test/integ.thing-with-cert.ts diff --git a/.projen/deps.json b/.projen/deps.json index 017ed0f..0f5210c 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -2,12 +2,12 @@ "dependencies": [ { "name": "@aws-cdk/integ-runner", - "version": "2.80.0-alpha.0", + "version": "2.100.0-alpha.0", "type": "build" }, { "name": "@aws-cdk/integ-tests-alpha", - "version": "2.80.0-alpha.0", + "version": "2.100.0-alpha.0", "type": "build" }, { @@ -94,9 +94,25 @@ "name": "typescript", "type": "build" }, + { + "name": "@aws-sdk/client-iot", + "type": "bundled" + }, + { + "name": "@smithy/smithy-client", + "type": "bundled" + }, + { + "name": "@types/aws-lambda", + "type": "bundled" + }, + { + "name": "aws-lambda", + "type": "bundled" + }, { "name": "aws-cdk-lib", - "version": "^2.80.0", + "version": "^2.100.0", "type": "peer" }, { diff --git a/.projen/tasks.json b/.projen/tasks.json index 6606141..8a73bff 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -285,13 +285,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,@types/node,eslint-import-resolver-typescript,eslint-plugin-import,jest,jsii-diff,jsii-pacmak,projen,ts-jest,ts-node,typescript,@aws-sdk/client-iot,aws-lambda" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,@types/node,eslint-import-resolver-typescript,eslint-plugin-import,jest,jsii-diff,jsii-pacmak,projen,ts-jest,ts-node,typescript,@aws-sdk/client-iot,@smithy/smithy-client,@types/aws-lambda,aws-lambda" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @aws-cdk/integ-runner @aws-cdk/integ-tests-alpha @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser commit-and-tag-version eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii projen ts-jest ts-node typescript aws-cdk-lib constructs @aws-sdk/client-iot aws-lambda" + "exec": "yarn upgrade @aws-cdk/integ-runner @aws-cdk/integ-tests-alpha @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser commit-and-tag-version eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii projen ts-jest ts-node typescript @aws-sdk/client-iot @smithy/smithy-client @types/aws-lambda aws-lambda aws-cdk-lib constructs" }, { "exec": "npx projen" diff --git a/.projenrc.ts b/.projenrc.ts index 82a4e3e..0916940 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -2,7 +2,7 @@ import { awscdk } from 'projen'; const project = new awscdk.AwsCdkConstructLibrary({ author: 'Kazuho CryerShinozuka', authorAddress: 'malaysia.cryer@gmail.com', - cdkVersion: '2.80.0', + cdkVersion: '2.100.0', defaultReleaseBranch: 'main', jsiiVersion: '~5.5.0', name: 'cdk-iot-core-certificates-v3', @@ -14,8 +14,8 @@ const project = new awscdk.AwsCdkConstructLibrary({ deps: ['aws-lambda', '@aws-sdk/client-iot'], description: 'CDK Construct for AWS IoT Core certificates and things', devDeps: [ - '@aws-cdk/integ-runner@2.80.0-alpha.0', - '@aws-cdk/integ-tests-alpha@2.80.0-alpha.0', + '@aws-cdk/integ-runner@2.100.0-alpha.0', + '@aws-cdk/integ-tests-alpha@2.100.0-alpha.0', ], releaseToNpm: true, packageName: 'cdk-iot-core-certificates-v3', @@ -23,6 +23,7 @@ const project = new awscdk.AwsCdkConstructLibrary({ distName: 'cdk-iot-core-certificates-v3', module: 'cdk-iot-core-certificates-v3', }, + bundledDeps: ['@aws-sdk/client-iot', 'aws-lambda', '@smithy/smithy-client', '@types/aws-lambda'], }); project.projectBuild.testTask.exec( 'yarn tsc -p tsconfig.dev.json && yarn integ-runner', diff --git a/API.md b/API.md new file mode 100644 index 0000000..f068f25 --- /dev/null +++ b/API.md @@ -0,0 +1,268 @@ +# API Reference + +## Constructs + +### ThingWithCert + +#### Initializers + +```typescript +import { ThingWithCert } from 'cdk-iot-core-certificates-v3' + +new ThingWithCert(scope: Construct, id: string, props: ThingWithCertProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | +| props | ThingWithCertProps | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +##### `props`Required + +- *Type:* ThingWithCertProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | + +--- + +##### `toString` + +```typescript +public toString(): string +``` + +Returns a string representation of this construct. + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | + +--- + +##### ~~`isConstruct`~~ + +```typescript +import { ThingWithCert } from 'cdk-iot-core-certificates-v3' + +ThingWithCert.isConstruct(x: any) +``` + +Checks if `x` is a construct. + +###### `x`Required + +- *Type:* any + +Any object. + +--- + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| certId | string | *No description.* | +| certPem | string | *No description.* | +| privKey | string | *No description.* | +| thingArn | string | *No description.* | + +--- + +##### `node`Required + +```typescript +public readonly node: Node; +``` + +- *Type:* constructs.Node + +The tree node. + +--- + +##### `certId`Required + +```typescript +public readonly certId: string; +``` + +- *Type:* string + +--- + +##### `certPem`Required + +```typescript +public readonly certPem: string; +``` + +- *Type:* string + +--- + +##### `privKey`Required + +```typescript +public readonly privKey: string; +``` + +- *Type:* string + +--- + +##### `thingArn`Required + +```typescript +public readonly thingArn: string; +``` + +- *Type:* string + +--- + + +## Structs + +### ThingWithCertProps + +#### Initializer + +```typescript +import { ThingWithCertProps } from 'cdk-iot-core-certificates-v3' + +const thingWithCertProps: ThingWithCertProps = { ... } +``` + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| account | string | The AWS account ID this resource belongs to. | +| environmentFromArn | string | ARN to deduce region and account from. | +| physicalName | string | The value passed in by users to the physical name prop of the resource. | +| region | string | The AWS region this resource belongs to. | +| thingName | string | *No description.* | +| paramPrefix | string | *No description.* | +| saveToParamStore | boolean | *No description.* | + +--- + +##### `account`Optional + +```typescript +public readonly account: string; +``` + +- *Type:* string +- *Default:* the resource is in the same account as the stack it belongs to + +The AWS account ID this resource belongs to. + +--- + +##### `environmentFromArn`Optional + +```typescript +public readonly environmentFromArn: string; +``` + +- *Type:* string +- *Default:* take environment from `account`, `region` parameters, or use Stack environment. + +ARN to deduce region and account from. + +The ARN is parsed and the account and region are taken from the ARN. +This should be used for imported resources. + +Cannot be supplied together with either `account` or `region`. + +--- + +##### `physicalName`Optional + +```typescript +public readonly physicalName: string; +``` + +- *Type:* string +- *Default:* The physical name will be allocated by CloudFormation at deployment time + +The value passed in by users to the physical name prop of the resource. + +`undefined` implies that a physical name will be allocated by + CloudFormation during deployment. +- a concrete value implies a specific physical name +- `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated + by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation. + +--- + +##### `region`Optional + +```typescript +public readonly region: string; +``` + +- *Type:* string +- *Default:* the resource is in the same region as the stack it belongs to + +The AWS region this resource belongs to. + +--- + +##### `thingName`Required + +```typescript +public readonly thingName: string; +``` + +- *Type:* string + +--- + +##### `paramPrefix`Optional + +```typescript +public readonly paramPrefix: string; +``` + +- *Type:* string + +--- + +##### `saveToParamStore`Optional + +```typescript +public readonly saveToParamStore: boolean; +``` + +- *Type:* boolean + +--- + + + diff --git a/package.json b/package.json index f2c505c..6cf4851 100644 --- a/package.json +++ b/package.json @@ -36,13 +36,13 @@ "organization": false }, "devDependencies": { - "@aws-cdk/integ-runner": "2.80.0-alpha.0", - "@aws-cdk/integ-tests-alpha": "2.80.0-alpha.0", + "@aws-cdk/integ-runner": "2.100.0-alpha.0", + "@aws-cdk/integ-tests-alpha": "2.100.0-alpha.0", "@types/jest": "^29.5.13", "@types/node": "^22.7.8", "@typescript-eslint/eslint-plugin": "^7", "@typescript-eslint/parser": "^7", - "aws-cdk-lib": "2.80.0", + "aws-cdk-lib": "2.100.0", "commit-and-tag-version": "^12", "constructs": "10.0.5", "eslint": "^8", @@ -61,13 +61,21 @@ "typescript": "^5.6.3" }, "peerDependencies": { - "aws-cdk-lib": "^2.80.0", + "aws-cdk-lib": "^2.100.0", "constructs": "^10.0.5" }, "dependencies": { "@aws-sdk/client-iot": "^3.675.0", + "@smithy/smithy-client": "^3.4.2", + "@types/aws-lambda": "^8.10.145", "aws-lambda": "^1.0.7" }, + "bundledDependencies": [ + "@aws-sdk/client-iot", + "@smithy/smithy-client", + "@types/aws-lambda", + "aws-lambda" + ], "keywords": [ "aws", "aws-cdk", diff --git a/src/lambda/adapters/thing.ts b/src/lambda/adapters/thing.ts index 9feae51..99a50d8 100644 --- a/src/lambda/adapters/thing.ts +++ b/src/lambda/adapters/thing.ts @@ -2,57 +2,57 @@ import { IotPort } from '../ports/iot'; import { ThingPort } from '../ports/thing'; export const thingAdaptor = (iotAdaptor: IotPort): ThingPort => { - return { - create: async (thingName) => { - const { thingArn } = await iotAdaptor.createThing({ - thingName: thingName, - }); - console.info(`Thing created with ARN: ${thingArn}`); - const { certificateId, certificateArn, certificatePem, keyPair } = + return { + create: async (thingName) => { + const { thingArn } = await iotAdaptor.createThing({ + thingName: thingName, + }); + console.info(`Thing created with ARN: ${thingArn}`); + const { certificateId, certificateArn, certificatePem, keyPair } = await iotAdaptor.createKeysAndCertificates(); - const { PrivateKey } = keyPair!; - const { policyArn } = await iotAdaptor.createPolicy(thingName); - console.info(`Policy created with ARN: ${policyArn}`); - await iotAdaptor.attachPrincipalPolicy({ - policyName: thingName, - principal: certificateArn!, - }); - console.info('Policy attached to certificate'); - await iotAdaptor.attachThingPrincipal({ - principal: certificateArn!, - thingName: thingName, - }); - console.info('Certificate attached to thing'); - return { - certId: certificateId!, - certPem: certificatePem!, - privKey: PrivateKey!, - thingArn: thingArn!, - }; - }, - delete: async (thingName) => { - const { principals } = await iotAdaptor.listThingPrincipals(thingName); - for await (const certificateArn of principals!) { - await iotAdaptor.detachPrincipalPolicy({ - policyName: thingName, - principal: certificateArn, - }); - console.info(`Policy detached from certificate for ${thingName}`); - await iotAdaptor.detachThingPrincipal({ - principal: certificateArn, - thingName: thingName, - }); - console.info(`Certificate detached from thing for ${certificateArn}`); - await iotAdaptor.updateCertificateToInactive(certificateArn); - console.info(`Certificate marked as inactive for ${certificateArn}`); + const { PrivateKey } = keyPair!; + const { policyArn } = await iotAdaptor.createPolicy(thingName); + console.info(`Policy created with ARN: ${policyArn}`); + await iotAdaptor.attachPrincipalPolicy({ + policyName: thingName, + principal: certificateArn!, + }); + console.info('Policy attached to certificate'); + await iotAdaptor.attachThingPrincipal({ + principal: certificateArn!, + thingName: thingName, + }); + console.info('Certificate attached to thing'); + return { + certId: certificateId!, + certPem: certificatePem!, + privKey: PrivateKey!, + thingArn: thingArn!, + }; + }, + delete: async (thingName) => { + const { principals } = await iotAdaptor.listThingPrincipals(thingName); + for await (const certificateArn of principals!) { + await iotAdaptor.detachPrincipalPolicy({ + policyName: thingName, + principal: certificateArn, + }); + console.info(`Policy detached from certificate for ${thingName}`); + await iotAdaptor.detachThingPrincipal({ + principal: certificateArn, + thingName: thingName, + }); + console.info(`Certificate detached from thing for ${certificateArn}`); + await iotAdaptor.updateCertificateToInactive(certificateArn); + console.info(`Certificate marked as inactive for ${certificateArn}`); - await iotAdaptor.deleteCertificate(certificateArn); - console.info(`Certificate deleted from thing for ${certificateArn}`); - await iotAdaptor.deleteThing(thingName); - console.info(`Thing deleted with name: ${thingName}`); - } - await iotAdaptor.deletePolicy(thingName); - console.info(`Policy deleted: ${thingName}`); - }, - }; + await iotAdaptor.deleteCertificate(certificateArn); + console.info(`Certificate deleted from thing for ${certificateArn}`); + await iotAdaptor.deleteThing(thingName); + console.info(`Thing deleted with name: ${thingName}`); + } + await iotAdaptor.deletePolicy(thingName); + console.info(`Policy deleted: ${thingName}`); + }, + }; }; diff --git a/src/lambda/index.ts b/src/lambda/index.ts index 9c73c45..16d88f8 100644 --- a/src/lambda/index.ts +++ b/src/lambda/index.ts @@ -1,10 +1,10 @@ +import { IoT } from '@aws-sdk/client-iot'; +import { ServiceException } from '@smithy/smithy-client'; import { CloudFormationCustomResourceSuccessResponse as Success, CloudFormationCustomResourceFailedResponse as Failure, CloudFormationCustomResourceEvent as Event, } from 'aws-lambda'; -import { ServiceException } from '@smithy/smithy-client'; -import { IoT } from '@aws-sdk/client-iot'; import { iotAdaptor } from './adapters/iot'; import { thingAdaptor } from './adapters/thing'; diff --git a/test/hello.test.ts b/test/hello.test.ts deleted file mode 100644 index acbacd4..0000000 --- a/test/hello.test.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Hello } from '../src'; - -test('hello', () => { - expect(new Hello().sayHello()).toBe('hello, world!'); -}); \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.assets.json b/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.assets.json new file mode 100644 index 0000000..2220abb --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.assets.json @@ -0,0 +1,19 @@ +{ + "version": "34.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "IntegTestDefaultTestDeployAssertE3E7D2A4.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.template.json b/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.template.json new file mode 100644 index 0000000..ad9d0fb --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/IntegTestDefaultTestDeployAssertE3E7D2A4.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/IntegTestStack.assets.json b/test/integ.thing-with-cert.js.snapshot/IntegTestStack.assets.json new file mode 100644 index 0000000..d3ab4cb --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/IntegTestStack.assets.json @@ -0,0 +1,58 @@ +{ + "version": "34.0.0", + "files": { + "c085a111f0703709f9a84f9951bb669e8c32751397cabdd07608cfa852497e3e": { + "source": { + "path": "asset.c085a111f0703709f9a84f9951bb669e8c32751397cabdd07608cfa852497e3e", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "c085a111f0703709f9a84f9951bb669e8c32751397cabdd07608cfa852497e3e.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "5bc602ecde93c947efe5899ae355f999986a1acbe610b1c0b9c468d738857555": { + "source": { + "path": "asset.5bc602ecde93c947efe5899ae355f999986a1acbe610b1c0b9c468d738857555", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "5bc602ecde93c947efe5899ae355f999986a1acbe610b1c0b9c468d738857555.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": { + "source": { + "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "73a5e3a3079eff2bf1f8bf480400acdd68959c01408fbfbd8ac7542d28b34b22": { + "source": { + "path": "IntegTestStack.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "73a5e3a3079eff2bf1f8bf480400acdd68959c01408fbfbd8ac7542d28b34b22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/IntegTestStack.template.json b/test/integ.thing-with-cert.js.snapshot/IntegTestStack.template.json new file mode 100644 index 0000000..c7ed248 --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/IntegTestStack.template.json @@ -0,0 +1,396 @@ +{ + "Resources": { + "ThingWithCertLambdaExecutionRole25FAB8F4": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "ThingWithCertLambdaExecutionRoleDefaultPolicy9FF9FB4B": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Action": "iot:*", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "ThingWithCertLambdaExecutionRoleDefaultPolicy9FF9FB4B", + "Roles": [ + { + "Ref": "ThingWithCertLambdaExecutionRole25FAB8F4" + } + ] + } + }, + "ThingWithCertlambdaFunction9E90C8BA": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "c085a111f0703709f9a84f9951bb669e8c32751397cabdd07608cfa852497e3e.zip" + }, + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1" + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "ThingWithCertLambdaExecutionRole25FAB8F4", + "Arn" + ] + }, + "Runtime": "nodejs18.x", + "Timeout": 10 + }, + "DependsOn": [ + "ThingWithCertLambdaExecutionRoleDefaultPolicy9FF9FB4B", + "ThingWithCertLambdaExecutionRole25FAB8F4" + ] + }, + "ThingWithCertlambdaFunctionLogRetention1BE9E451": { + "Type": "Custom::LogRetention", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", + "Arn" + ] + }, + "LogGroupName": { + "Fn::Join": [ + "", + [ + "/aws/lambda/", + { + "Ref": "ThingWithCertlambdaFunction9E90C8BA" + } + ] + ] + }, + "RetentionInDays": 1 + } + }, + "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "ThingWithCertlambdaProviderframeworkonEventServiceRoleDefaultPolicyC133ABFF": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + }, + ":*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "ThingWithCertlambdaProviderframeworkonEventServiceRoleDefaultPolicyC133ABFF", + "Roles": [ + { + "Ref": "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588" + } + ] + } + }, + "ThingWithCertlambdaProviderframeworkonEvent497EC884": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip" + }, + "Description": "AWS CDK resource provider framework - onEvent (IntegTestStack/ThingWithCert/lambdaProvider)", + "Environment": { + "Variables": { + "USER_ON_EVENT_FUNCTION_ARN": { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + } + } + }, + "Handler": "framework.onEvent", + "Role": { + "Fn::GetAtt": [ + "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588", + "Arn" + ] + }, + "Runtime": "nodejs18.x", + "Timeout": 900 + }, + "DependsOn": [ + "ThingWithCertlambdaProviderframeworkonEventServiceRoleDefaultPolicyC133ABFF", + "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588" + ] + }, + "ThingWithCertlambdaCustomResource28E12CE8": { + "Type": "AWS::CloudFormation::CustomResource", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "ThingWithCertlambdaProviderframeworkonEvent497EC884", + "Arn" + ] + }, + "ThingName": "testThing" + } + }, + "ThingWithCertparamStoreCertPem15876E53": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/test/testThing/certPem", + "Type": "String", + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "certPem" + ] + } + } + }, + "ThingWithCertparamStorePrivKey2E5E90A6": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/test/testThing/privKey", + "Type": "String", + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "privKey" + ] + } + } + }, + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:DeleteRetentionPolicy", + "logs:PutRetentionPolicy" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", + "Roles": [ + { + "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB" + } + ] + } + }, + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Handler": "index.handler", + "Runtime": "nodejs18.x", + "Timeout": 900, + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "5bc602ecde93c947efe5899ae355f999986a1acbe610b1c0b9c468d738857555.zip" + }, + "Role": { + "Fn::GetAtt": [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", + "Arn" + ] + } + }, + "DependsOn": [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB" + ] + } + }, + "Outputs": { + "ThingArn": { + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "thingArn" + ] + } + }, + "CertId": { + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "certId" + ] + } + }, + "CertPem": { + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "certPem" + ] + } + }, + "PrivKey": { + "Value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "privKey" + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/cdk.out b/test/integ.thing-with-cert.js.snapshot/cdk.out new file mode 100644 index 0000000..2313ab5 --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"34.0.0"} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/integ.json b/test/integ.thing-with-cert.js.snapshot/integ.json new file mode 100644 index 0000000..b80c57a --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "34.0.0", + "testCases": { + "IntegTest/DefaultTest": { + "stacks": [ + "IntegTestStack" + ], + "assertionStack": "IntegTest/DefaultTest/DeployAssert", + "assertionStackName": "IntegTestDefaultTestDeployAssertE3E7D2A4" + } + } +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/manifest.json b/test/integ.thing-with-cert.js.snapshot/manifest.json new file mode 100644 index 0000000..3a01cd7 --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/manifest.json @@ -0,0 +1,209 @@ +{ + "version": "34.0.0", + "artifacts": { + "IntegTestStack.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegTestStack.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegTestStack": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegTestStack.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/73a5e3a3079eff2bf1f8bf480400acdd68959c01408fbfbd8ac7542d28b34b22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegTestStack.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegTestStack.assets" + ], + "metadata": { + "/IntegTestStack/ThingWithCert/LambdaExecutionRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertLambdaExecutionRole25FAB8F4" + } + ], + "/IntegTestStack/ThingWithCert/LambdaExecutionRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertLambdaExecutionRoleDefaultPolicy9FF9FB4B" + } + ], + "/IntegTestStack/ThingWithCert/lambdaFunction/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaFunction9E90C8BA" + } + ], + "/IntegTestStack/ThingWithCert/lambdaFunction/LogRetention/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaFunctionLogRetention1BE9E451" + } + ], + "/IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588" + } + ], + "/IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaProviderframeworkonEventServiceRoleDefaultPolicyC133ABFF" + } + ], + "/IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaProviderframeworkonEvent497EC884" + } + ], + "/IntegTestStack/ThingWithCert/lambdaCustomResource": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertlambdaCustomResource28E12CE8" + } + ], + "/IntegTestStack/ThingWithCert/paramStoreCertPem": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertparamStoreCertPem15876E53" + } + ], + "/IntegTestStack/ThingWithCert/paramStorePrivKey": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingWithCertparamStorePrivKey2E5E90A6" + } + ], + "/IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB" + } + ], + "/IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB" + } + ], + "/IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A" + } + ], + "/IntegTestStack/ThingArn": [ + { + "type": "aws:cdk:logicalId", + "data": "ThingArn" + } + ], + "/IntegTestStack/CertId": [ + { + "type": "aws:cdk:logicalId", + "data": "CertId" + } + ], + "/IntegTestStack/CertPem": [ + { + "type": "aws:cdk:logicalId", + "data": "CertPem" + } + ], + "/IntegTestStack/PrivKey": [ + { + "type": "aws:cdk:logicalId", + "data": "PrivKey" + } + ], + "/IntegTestStack/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/IntegTestStack/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "IntegTestStack" + }, + "IntegTestDefaultTestDeployAssertE3E7D2A4.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "IntegTestDefaultTestDeployAssertE3E7D2A4.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "IntegTestDefaultTestDeployAssertE3E7D2A4": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "IntegTestDefaultTestDeployAssertE3E7D2A4.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "IntegTestDefaultTestDeployAssertE3E7D2A4.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "IntegTestDefaultTestDeployAssertE3E7D2A4.assets" + ], + "metadata": { + "/IntegTest/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/IntegTest/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "IntegTest/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + } + } +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.js.snapshot/tree.json b/test/integ.thing-with-cert.js.snapshot/tree.json new file mode 100644 index 0000000..44333ae --- /dev/null +++ b/test/integ.thing-with-cert.js.snapshot/tree.json @@ -0,0 +1,735 @@ +{ + "version": "tree-0.1", + "tree": { + "id": "App", + "path": "", + "children": { + "IntegTestStack": { + "id": "IntegTestStack", + "path": "IntegTestStack", + "children": { + "ThingWithCert": { + "id": "ThingWithCert", + "path": "IntegTestStack/ThingWithCert", + "children": { + "LambdaExecutionRole": { + "id": "LambdaExecutionRole", + "path": "IntegTestStack/ThingWithCert/LambdaExecutionRole", + "children": { + "ImportLambdaExecutionRole": { + "id": "ImportLambdaExecutionRole", + "path": "IntegTestStack/ThingWithCert/LambdaExecutionRole/ImportLambdaExecutionRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/LambdaExecutionRole/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "2.100.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "IntegTestStack/ThingWithCert/LambdaExecutionRole/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/LambdaExecutionRole/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Action": "iot:*", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "policyName": "ThingWithCertLambdaExecutionRoleDefaultPolicy9FF9FB4B", + "roles": [ + { + "Ref": "ThingWithCertLambdaExecutionRole25FAB8F4" + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Policy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Role", + "version": "2.100.0" + } + }, + "lambdaFunction": { + "id": "lambdaFunction", + "path": "IntegTestStack/ThingWithCert/lambdaFunction", + "children": { + "Code": { + "id": "Code", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "2.100.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::Function", + "aws:cdk:cloudformation:props": { + "code": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "c085a111f0703709f9a84f9951bb669e8c32751397cabdd07608cfa852497e3e.zip" + }, + "environment": { + "variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1" + } + }, + "handler": "index.handler", + "role": { + "Fn::GetAtt": [ + "ThingWithCertLambdaExecutionRole25FAB8F4", + "Arn" + ] + }, + "runtime": "nodejs18.x", + "timeout": 10 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", + "version": "2.100.0" + } + }, + "LogRetention": { + "id": "LogRetention", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/LogRetention", + "children": { + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/LogRetention/Resource", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnResource", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_logs.LogRetention", + "version": "2.100.0" + } + }, + "LogGroup": { + "id": "LogGroup", + "path": "IntegTestStack/ThingWithCert/lambdaFunction/LogGroup", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda_nodejs.NodejsFunction", + "version": "2.100.0" + } + }, + "lambdaProvider": { + "id": "lambdaProvider", + "path": "IntegTestStack/ThingWithCert/lambdaProvider", + "children": { + "framework-onEvent": { + "id": "framework-onEvent", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent", + "children": { + "ServiceRole": { + "id": "ServiceRole", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole", + "children": { + "ImportServiceRole": { + "id": "ImportServiceRole", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/ImportServiceRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "managedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "2.100.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + }, + ":*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "policyName": "ThingWithCertlambdaProviderframeworkonEventServiceRoleDefaultPolicyC133ABFF", + "roles": [ + { + "Ref": "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588" + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Policy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Role", + "version": "2.100.0" + } + }, + "Code": { + "id": "Code", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "2.100.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/ThingWithCert/lambdaProvider/framework-onEvent/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Lambda::Function", + "aws:cdk:cloudformation:props": { + "code": { + "s3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "s3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip" + }, + "description": "AWS CDK resource provider framework - onEvent (IntegTestStack/ThingWithCert/lambdaProvider)", + "environment": { + "variables": { + "USER_ON_EVENT_FUNCTION_ARN": { + "Fn::GetAtt": [ + "ThingWithCertlambdaFunction9E90C8BA", + "Arn" + ] + } + } + }, + "handler": "framework.onEvent", + "role": { + "Fn::GetAtt": [ + "ThingWithCertlambdaProviderframeworkonEventServiceRole95EF1588", + "Arn" + ] + }, + "runtime": "nodejs18.x", + "timeout": 900 + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.CfnFunction", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_lambda.Function", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.custom_resources.Provider", + "version": "2.100.0" + } + }, + "lambdaCustomResource": { + "id": "lambdaCustomResource", + "path": "IntegTestStack/ThingWithCert/lambdaCustomResource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::CloudFormation::CustomResource", + "aws:cdk:cloudformation:props": { + "serviceToken": { + "Fn::GetAtt": [ + "ThingWithCertlambdaProviderframeworkonEvent497EC884", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_cloudformation.CfnCustomResource", + "version": "2.100.0" + } + }, + "paramStoreCertPem": { + "id": "paramStoreCertPem", + "path": "IntegTestStack/ThingWithCert/paramStoreCertPem", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::SSM::Parameter", + "aws:cdk:cloudformation:props": { + "name": "/test/testThing/certPem", + "type": "String", + "value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "certPem" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_ssm.CfnParameter", + "version": "2.100.0" + } + }, + "paramStorePrivKey": { + "id": "paramStorePrivKey", + "path": "IntegTestStack/ThingWithCert/paramStorePrivKey", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::SSM::Parameter", + "aws:cdk:cloudformation:props": { + "name": "/test/testThing/privKey", + "type": "String", + "value": { + "Fn::GetAtt": [ + "ThingWithCertlambdaCustomResource28E12CE8", + "privKey" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_ssm.CfnParameter", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.0.5" + } + }, + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a": { + "id": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a", + "children": { + "Code": { + "id": "Code", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code", + "children": { + "Stage": { + "id": "Stage", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/Stage", + "constructInfo": { + "fqn": "aws-cdk-lib.AssetStaging", + "version": "2.100.0" + } + }, + "AssetBucket": { + "id": "AssetBucket", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/AssetBucket", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.BucketBase", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3_assets.Asset", + "version": "2.100.0" + } + }, + "ServiceRole": { + "id": "ServiceRole", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole", + "children": { + "ImportServiceRole": { + "id": "ImportServiceRole", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/ImportServiceRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "managedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "2.100.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": [ + "logs:DeleteRetentionPolicy", + "logs:PutRetentionPolicy" + ], + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "policyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", + "roles": [ + { + "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB" + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Policy", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Role", + "version": "2.100.0" + } + }, + "Resource": { + "id": "Resource", + "path": "IntegTestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnResource", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.0.5" + } + }, + "ThingArn": { + "id": "ThingArn", + "path": "IntegTestStack/ThingArn", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnOutput", + "version": "2.100.0" + } + }, + "CertId": { + "id": "CertId", + "path": "IntegTestStack/CertId", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnOutput", + "version": "2.100.0" + } + }, + "CertPem": { + "id": "CertPem", + "path": "IntegTestStack/CertPem", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnOutput", + "version": "2.100.0" + } + }, + "PrivKey": { + "id": "PrivKey", + "path": "IntegTestStack/PrivKey", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnOutput", + "version": "2.100.0" + } + }, + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "IntegTestStack/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "2.100.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "IntegTestStack/CheckBootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnRule", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Stack", + "version": "2.100.0" + } + }, + "IntegTest": { + "id": "IntegTest", + "path": "IntegTest", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "IntegTest/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "IntegTest/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.0.5" + } + }, + "DeployAssert": { + "id": "DeployAssert", + "path": "IntegTest/DefaultTest/DeployAssert", + "children": { + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "IntegTest/DefaultTest/DeployAssert/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "2.100.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "IntegTest/DefaultTest/DeployAssert/CheckBootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnRule", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Stack", + "version": "2.100.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", + "version": "2.100.0-alpha.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", + "version": "2.100.0-alpha.0" + } + }, + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.0.5" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.App", + "version": "2.100.0" + } + } +} \ No newline at end of file diff --git a/test/integ.thing-with-cert.ts b/test/integ.thing-with-cert.ts new file mode 100644 index 0000000..8d4174d --- /dev/null +++ b/test/integ.thing-with-cert.ts @@ -0,0 +1,32 @@ +import { IntegTest } from '@aws-cdk/integ-tests-alpha'; +import { App, CfnOutput, Stack } from 'aws-cdk-lib'; +import { ThingWithCert } from '../src'; + +const app = new App(); +const stack = new Stack(app, 'IntegTestStack'); + +const thingWithCert = new ThingWithCert(stack, 'ThingWithCert', { + thingName: 'testThing', + saveToParamStore: true, + paramPrefix: 'test', +}); + +new CfnOutput(stack, 'ThingArn', { + value: thingWithCert.thingArn, +}); + +new CfnOutput(stack, 'CertId', { + value: thingWithCert.certId, +}); + +new CfnOutput(stack, 'CertPem', { + value: thingWithCert.certPem, +}); + +new CfnOutput(stack, 'PrivKey', { + value: thingWithCert.privKey, +}); + +new IntegTest(app, 'IntegTest', { + testCases: [stack], +}); diff --git a/yarn.lock b/yarn.lock index d3b389c..ba1a6f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,32 +10,34 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@aws-cdk/asset-awscli-v1@^2.2.177": +"@aws-cdk/asset-awscli-v1@^2.2.200": version "2.2.208" resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.208.tgz#1675c6ba6061c0541ad0d258b42f0101d5ee10cf" integrity sha512-r4CuHZaiBioU6waWhCNdEL4MO1+rfbcYVS/Ndz1XNGB5cxIRZwAS0Si6qD2D6nsgpPojiruFl67T1t5M9Va8kQ== -"@aws-cdk/asset-kubectl-v20@^2.1.1": +"@aws-cdk/asset-kubectl-v20@^2.1.2": version "2.1.3" resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.3.tgz#80e09004be173995e91614e34d947da11dd9ff4d" integrity sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ== -"@aws-cdk/asset-node-proxy-agent-v5@^2.0.148": - version "2.0.166" - resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.166.tgz#467507db141cd829ff8aa9d6ea5519310a4276b8" - integrity sha512-j0xnccpUQHXJKPgCwQcGGNu4lRiC1PptYfdxBIH1L4dRK91iBxtSQHESRQX+yB47oGLaF/WfNN/aF3WXwlhikg== +"@aws-cdk/asset-node-proxy-agent-v6@^2.0.1": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz#6d3c7860354d4856a7e75375f2f0ecab313b4989" + integrity sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A== -"@aws-cdk/integ-runner@2.80.0-alpha.0": - version "2.80.0-alpha.0" - resolved "https://registry.yarnpkg.com/@aws-cdk/integ-runner/-/integ-runner-2.80.0-alpha.0.tgz#1e6738c6b2793faae292d08edae5344c8fede40c" - integrity sha512-J8JPmntIzZxljM5eqEbZfAfYPiWaYrSFbwK+CT6mTbw4XTPDZCrGU0n5BGZHLsp/3PIvE7MeK4X92ZxxYiEv6w== +"@aws-cdk/integ-runner@2.100.0-alpha.0": + version "2.100.0-alpha.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/integ-runner/-/integ-runner-2.100.0-alpha.0.tgz#36d69daea9235a8a2758c223747d300813a7bf06" + integrity sha512-NTgJCrrFT1rDBFPzutcFeqg5byl650NPGk18FJmm2rFu0KRWGOqbXOfIgEDYlQQunm4Of2i4pKvl+lHqN3tTkw== dependencies: - aws-cdk "2.80.0" + aws-cdk "2.100.0" + optionalDependencies: + fsevents "2.3.2" -"@aws-cdk/integ-tests-alpha@2.80.0-alpha.0": - version "2.80.0-alpha.0" - resolved "https://registry.yarnpkg.com/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.80.0-alpha.0.tgz#d232c3885347336b9da0289c180675482c5d2a9f" - integrity sha512-XU5+8pqd2sUvxfyz6zluskydX1pY+NGL5jtZf2sUukkqN1PNQ/zZrQwyY6An8mCGggSwj0uMGrzItiuDKaiGuA== +"@aws-cdk/integ-tests-alpha@2.100.0-alpha.0": + version "2.100.0-alpha.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/integ-tests-alpha/-/integ-tests-alpha-2.100.0-alpha.0.tgz#67211ad140d7060d355d9bc73af30663ebcf1017" + integrity sha512-u5E9hPk0LEHhPJpBPWLlKiAWVZNkl2ryw4kG4As/R5Ees01VeyTfdRhpDdwofSfN9NFFqqdkxyMMjwD2l5r9uw== "@aws-crypto/sha256-browser@5.2.0": version "5.2.0" @@ -76,25 +78,25 @@ tslib "^2.6.2" "@aws-sdk/client-iot@^3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iot/-/client-iot-3.675.0.tgz#0938293310e86f3bdd24212c7c0c7b943e2851a0" - integrity sha512-C+i1336vPtPMbwqqioiE+/3kb1uBieWOsEiIBFFtyswO3tFItlIDI/22BrhMY53rZdyYCEeYoneLeQofezIjCA== + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iot/-/client-iot-3.677.0.tgz#9394665d49f51e1654754b0da7c72c04283a8ea8" + integrity sha512-7SOcS1oWw+HkmkYvYNUJpEtu9bEPDJPWo1Ayc6owKC1INPZ/0Ou9VebW/HCjwZedN5UDyzqq7RoI/JxF2MssBQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.675.0" - "@aws-sdk/client-sts" "3.675.0" - "@aws-sdk/core" "3.667.0" - "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/client-sso-oidc" "3.677.0" + "@aws-sdk/client-sts" "3.677.0" + "@aws-sdk/core" "3.677.0" + "@aws-sdk/credential-provider-node" "3.677.0" "@aws-sdk/middleware-host-header" "3.667.0" "@aws-sdk/middleware-logger" "3.667.0" "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/middleware-user-agent" "3.677.0" "@aws-sdk/region-config-resolver" "3.667.0" "@aws-sdk/types" "3.667.0" "@aws-sdk/util-endpoints" "3.667.0" "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.669.0" + "@aws-sdk/util-user-agent-node" "3.677.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -124,24 +126,24 @@ tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-sso-oidc@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.675.0.tgz#a30650a462afcf0386adb26e99283d4989b9bbf4" - integrity sha512-4kEcaa2P/BFz+xy5tagbtzM08gbjHXyYqW+n6SJuUFK7N6bZNnA4cu1hVgHcqOqk8Dbwv7fiseGT0x3Hhqjwqg== +"@aws-sdk/client-sso-oidc@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.677.0.tgz#5557cb45ded0ebe0d25cf62611507f36d4b45afd" + integrity sha512-2zgZkRIU7DsnUVOy+9bjfJ0IYMzi9ONWXQt/WqMa7HOnj4RfenfpipyhHYxGZR5kmehgv53EI79yvUu+SAfGNg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.667.0" - "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/core" "3.677.0" + "@aws-sdk/credential-provider-node" "3.677.0" "@aws-sdk/middleware-host-header" "3.667.0" "@aws-sdk/middleware-logger" "3.667.0" "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/middleware-user-agent" "3.677.0" "@aws-sdk/region-config-resolver" "3.667.0" "@aws-sdk/types" "3.667.0" "@aws-sdk/util-endpoints" "3.667.0" "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.669.0" + "@aws-sdk/util-user-agent-node" "3.677.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -169,23 +171,23 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.675.0.tgz#4e400ef0141ee2e19b64c9948af7a27697a3f0cc" - integrity sha512-2goBCEr4acZJ1YJ69eWPTsIfZUbO7enog+lBA5kZShDiwovqzwYSHSlf6OGz4ETs2xT1n7n+QfKY0p+TluTfEw== +"@aws-sdk/client-sso@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.677.0.tgz#a099a0e39b807cd93f3ead5ddf52bcd27a6f6338" + integrity sha512-/y6EskFhOa2w9VwXaXoyOrGeBjnOj/72wsxDOslS908qH+nf7m40pBK6e/iBelg04vlx0gqhlbfK8hLbaT6KHA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/middleware-host-header" "3.667.0" "@aws-sdk/middleware-logger" "3.667.0" "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/middleware-user-agent" "3.677.0" "@aws-sdk/region-config-resolver" "3.667.0" "@aws-sdk/types" "3.667.0" "@aws-sdk/util-endpoints" "3.667.0" "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.669.0" + "@aws-sdk/util-user-agent-node" "3.677.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -213,25 +215,25 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.675.0.tgz#8efcff1270d1f10e7dafa469f88fb71dcfd70178" - integrity sha512-zgjyR4GyuONeDGJBKNt9lFJ8HfDX7rpxZZVR7LSXr9lUkjf6vUGgD2k/K4UAoOTWCKKCor6TA562ezGlA8su6Q== +"@aws-sdk/client-sts@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.677.0.tgz#70f57f2fc6bb709b854d384e825e408109af589d" + integrity sha512-N5fs1GLSthnwrs44b4IJI//dcShuIT42g4pM8FCUJZwbrWn9Sp9F876R1mvb8A9TAy2S4qCXi7TkHS0REnuicQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.675.0" - "@aws-sdk/core" "3.667.0" - "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/client-sso-oidc" "3.677.0" + "@aws-sdk/core" "3.677.0" + "@aws-sdk/credential-provider-node" "3.677.0" "@aws-sdk/middleware-host-header" "3.667.0" "@aws-sdk/middleware-logger" "3.667.0" "@aws-sdk/middleware-recursion-detection" "3.667.0" - "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/middleware-user-agent" "3.677.0" "@aws-sdk/region-config-resolver" "3.667.0" "@aws-sdk/types" "3.667.0" "@aws-sdk/util-endpoints" "3.667.0" "@aws-sdk/util-user-agent-browser" "3.675.0" - "@aws-sdk/util-user-agent-node" "3.669.0" + "@aws-sdk/util-user-agent-node" "3.677.0" "@smithy/config-resolver" "^3.0.9" "@smithy/core" "^2.4.8" "@smithy/fetch-http-handler" "^3.2.9" @@ -259,10 +261,10 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.667.0.tgz#ecf93bf8e3ebea3bd972576a67b87dd291d7a90a" - integrity sha512-pMcDVI7Tmdsc8R3sDv0Omj/4iRParGY+uJtAfF669WnZfDfaBQaix2Mq7+Mu08vdjqO9K3gicFvjk9S1VLmOKA== +"@aws-sdk/core@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.677.0.tgz#4782cc573b28407e892db111cd730a5183a207ec" + integrity sha512-5auvc1wmXmd7u9Y9nM95Ia+VX7J2FiZLuADitHqE4mHPH9riDgOY+uK/yM+UKr+lfq4zKiZQG7i8cfabZlCY8g== dependencies: "@aws-sdk/types" "3.667.0" "@smithy/core" "^2.4.8" @@ -276,23 +278,23 @@ fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.667.0.tgz#1b3a4b049fc164a3a3eb3617f7448fed3cb3a2db" - integrity sha512-zZbrkkaPc54WXm+QAnpuv0LPNfsts0HPPd+oCECGs7IQRaFsGj187cwvPg9RMWDFZqpm64MdBDoA8OQHsqzYCw== +"@aws-sdk/credential-provider-env@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.677.0.tgz#ee5b6a7fb30fad6363f57d9df88779cda5981930" + integrity sha512-0ctcqKzclr9TiNIkB8I+YRogjWH/4mLWQGv/bgb8ElHqph+rPy4pOubj1Ax01sbs7XdwDaImjBYV5xXE+BEsYw== dependencies: - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/property-provider" "^3.1.7" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.667.0.tgz#ff78b7f76715a7456976930bff6221dfac70afbc" - integrity sha512-sjtybFfERZWiqTY7fswBxKQLvUkiCucOWyqh3IaPo/4nE1PXRnaZCVG0+kRBPrYIxWqiVwytvZzMJy8sVZcG0A== +"@aws-sdk/credential-provider-http@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.677.0.tgz#d0b3ad71409f8ac80d70c19cd2d96d5f22d760c2" + integrity sha512-c4TnShdzk37dhL1HGGzZ2PDKIIEmo1IbT/4y5hSRdNc8Z8fu6spE5GoeVsv6p/HdSGPS7XTy6aOFCMCk4AeIzQ== dependencies: - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/fetch-http-handler" "^3.2.9" "@smithy/node-http-handler" "^3.2.4" @@ -303,17 +305,17 @@ "@smithy/util-stream" "^3.1.9" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.675.0.tgz#031b75d26ab8e2921c8945a905f6ca7c2005e15e" - integrity sha512-kCBlC6grpbpCvgowk9T4JHZxJ88VfN0r77bDZClcadFRAKQ8UHyO02zhgFCfUdnU1lNv1mr3ngEcGN7XzJlYWA== - dependencies: - "@aws-sdk/core" "3.667.0" - "@aws-sdk/credential-provider-env" "3.667.0" - "@aws-sdk/credential-provider-http" "3.667.0" - "@aws-sdk/credential-provider-process" "3.667.0" - "@aws-sdk/credential-provider-sso" "3.675.0" - "@aws-sdk/credential-provider-web-identity" "3.667.0" +"@aws-sdk/credential-provider-ini@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.677.0.tgz#0010b22444d2ed69c9dc55283dbd4e73c4fff83d" + integrity sha512-hW+oHj5zplPLzTk74LG+gZVOKQnmBPyRIbwg3uZWr23xfOxh/Osu9Wq8qwgu2+UyFHr+6/DRFjZJ6avNA2jpKw== + dependencies: + "@aws-sdk/core" "3.677.0" + "@aws-sdk/credential-provider-env" "3.677.0" + "@aws-sdk/credential-provider-http" "3.677.0" + "@aws-sdk/credential-provider-process" "3.677.0" + "@aws-sdk/credential-provider-sso" "3.677.0" + "@aws-sdk/credential-provider-web-identity" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/credential-provider-imds" "^3.2.4" "@smithy/property-provider" "^3.1.7" @@ -321,17 +323,17 @@ "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.675.0.tgz#25ebe731279dbc1f165e2fb5f7648bae43b7c693" - integrity sha512-VO1WVZCDmAYu4sY/6qIBzdm5vJTxLhWKJWvL5kVFfSe8WiNNoHlTqYYUK9vAm/JYpIgFLTefPbIc5W4MK7o6Pg== - dependencies: - "@aws-sdk/credential-provider-env" "3.667.0" - "@aws-sdk/credential-provider-http" "3.667.0" - "@aws-sdk/credential-provider-ini" "3.675.0" - "@aws-sdk/credential-provider-process" "3.667.0" - "@aws-sdk/credential-provider-sso" "3.675.0" - "@aws-sdk/credential-provider-web-identity" "3.667.0" +"@aws-sdk/credential-provider-node@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.677.0.tgz#9a0fbe5846cc6088576b7a682128e9b8979754e1" + integrity sha512-DwFriiDx2SSdj7VhRv/0fm8UIK7isy+WZAlqUdZ9xDsX4x1AD5KwMv9AwGhJrMuTjnPSxRSwjt23S7ZXwUfhdw== + dependencies: + "@aws-sdk/credential-provider-env" "3.677.0" + "@aws-sdk/credential-provider-http" "3.677.0" + "@aws-sdk/credential-provider-ini" "3.677.0" + "@aws-sdk/credential-provider-process" "3.677.0" + "@aws-sdk/credential-provider-sso" "3.677.0" + "@aws-sdk/credential-provider-web-identity" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/credential-provider-imds" "^3.2.4" "@smithy/property-provider" "^3.1.7" @@ -339,25 +341,25 @@ "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.667.0.tgz#fa721b1b5b0024156c3852a9fc92c0ed9935959f" - integrity sha512-HZHnvop32fKgsNHkdhVaul7UzQ25sEc0j9yqA4bjhtbk0ECl42kj3f1pJ+ZU/YD9ut8lMJs/vVqiOdNThVdeBw== +"@aws-sdk/credential-provider-process@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.677.0.tgz#38b29c89355fb22a1417573832a1684e5b3c6f19" + integrity sha512-pBqHjIFvHBJb2NOsVqdIHWcOzXDoNXBokxTvMggb3WYML6ixwrH7kpd1CAzegeQlvZD4SCcRoy3ahv5rbuR+og== dependencies: - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/property-provider" "^3.1.7" "@smithy/shared-ini-file-loader" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.675.0": - version "3.675.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.675.0.tgz#d9bf80e25cd7756e959747804484340071ac3e83" - integrity sha512-p/EE2c0ebSgRhg1Fe1OH2+xNl7j1P4DTc7kZy1mX1NJ72fkqnGgBuf1vk5J9RmiRpbauPNMlm+xohjkGS7iodA== +"@aws-sdk/credential-provider-sso@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.677.0.tgz#9f57dd4067cd5d321c8977197f67f878e368c805" + integrity sha512-OkRP3z8yI22t9LS9At5fYr6RN7zKSDiGgeyjEnrqiGHOWGPMJN2GKa8IAFC4dgXt4Nm/EfmEW7UweiqzEKJKOA== dependencies: - "@aws-sdk/client-sso" "3.675.0" - "@aws-sdk/core" "3.667.0" + "@aws-sdk/client-sso" "3.677.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/token-providers" "3.667.0" "@aws-sdk/types" "3.667.0" "@smithy/property-provider" "^3.1.7" @@ -365,12 +367,12 @@ "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.667.0": - version "3.667.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.667.0.tgz#439e3aa2fc9a081de53186f6d8aa78a8a6913769" - integrity sha512-t8CFlZMD/1p/8Cli3rvRiTJpjr/8BO64gw166AHgFZYSN2h95L2l1tcW0jpsc3PprA32nLg1iQVKYt4WGM4ugw== +"@aws-sdk/credential-provider-web-identity@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.677.0.tgz#dcc66ee9a9e1bb09a38c5a52b4dff4bc84f77d8f" + integrity sha512-yjuI6hSt1rLFqBQiNKx/nF75Ao72xR8ybqKztzebtFNCrYl8oXVkRiigg5XKNCDmelsx1lcU9IcSiuPHzlGtUQ== dependencies: - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/property-provider" "^3.1.7" "@smithy/types" "^3.5.0" @@ -405,12 +407,12 @@ "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.669.0": - version "3.669.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.669.0.tgz#a313a4f1fcc9cc77eef3e04573ce0edade931a26" - integrity sha512-K8ScPi45zjJrj5Y2gRqVsvKKQCQbvQBfYGcBw9ZOx9TTavH80bOCBjWg/GFnvs4f37tqVc1wMN2oGvcTF6HveQ== +"@aws-sdk/middleware-user-agent@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.677.0.tgz#0fcc6a0d17fa6338729c8c527e53844c2ae199fc" + integrity sha512-A3gzUsTsvyv/JCmD0p2fkbiOyp+tpAiAADDwzi+eYeyzH4xzqnrzSkGk5KSb58uUQo27eeBzRXHd46d0u+sMrQ== dependencies: - "@aws-sdk/core" "3.667.0" + "@aws-sdk/core" "3.677.0" "@aws-sdk/types" "3.667.0" "@aws-sdk/util-endpoints" "3.667.0" "@smithy/core" "^2.4.8" @@ -484,142 +486,142 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.669.0": - version "3.669.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.669.0.tgz#e83e17d04c65fa2bec942c239b5ad9b02c22ebc1" - integrity sha512-9jxCYrgggy2xd44ZASqI7AMiRVaSiFp+06Kg8BQSU0ijKpBJlwcsqIS8pDT/n6LxuOw2eV5ipvM2C0r1iKzrGA== +"@aws-sdk/util-user-agent-node@3.677.0": + version "3.677.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.677.0.tgz#260f0418bc8a5b542a82beb6bd67091b544ef86f" + integrity sha512-gFhL0zVY/um0Eu2aWil82pjWaZL4yBmOnjz0+RDz18okFBHaz1Om8o/H+1Vvj+xsnuDYV4ezVMyAaXVtTcYOnw== dependencies: - "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/middleware-user-agent" "3.677.0" "@aws-sdk/types" "3.667.0" "@smithy/node-config-provider" "^3.1.8" "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" - integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.9.tgz#895b6c7e04a7271a0cbfd575d2e8131751914cc7" + integrity sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ== dependencies: - "@babel/highlight" "^7.25.7" + "@babel/highlight" "^7.25.9" picocolors "^1.0.0" -"@babel/compat-data@^7.25.7": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.8.tgz#0376e83df5ab0eb0da18885c0140041f0747a402" - integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== +"@babel/compat-data@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.9.tgz#24b01c5db6a3ebf85661b4fb4a946a9bccc72ac8" + integrity sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.8.tgz#a57137d2a51bbcffcfaeba43cb4dd33ae3e0e1c6" - integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.9.tgz#855a4cddcec4158f3f7afadacdab2a7de8af7434" + integrity sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helpers" "^7.25.7" - "@babel/parser" "^7.25.8" - "@babel/template" "^7.25.7" - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.8" + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helpers" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.7", "@babel/generator@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56" - integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== +"@babel/generator@^7.25.9", "@babel/generator@^7.7.2": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.9.tgz#c7e828ebe0c2baba103b712924699c9e8a6e32f0" + integrity sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA== dependencies: - "@babel/types" "^7.25.7" + "@babel/types" "^7.25.9" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4" - integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== +"@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== dependencies: - "@babel/compat-data" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-module-imports@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz#dba00d9523539152906ba49263e36d7261040472" - integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-module-transforms@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz#2ac9372c5e001b19bc62f1fe7d96a18cb0901d1a" - integrity sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ== - dependencies: - "@babel/helper-module-imports" "^7.25.7" - "@babel/helper-simple-access" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz#8ec5b21812d992e1ef88a9b068260537b6f0e36c" - integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== - -"@babel/helper-simple-access@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz#5eb9f6a60c5d6b2e0f76057004f8dacbddfae1c0" - integrity sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-string-parser@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" - integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== - -"@babel/helper-validator-identifier@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" - integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== - -"@babel/helper-validator-option@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz#97d1d684448228b30b506d90cace495d6f492729" - integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== - -"@babel/helpers@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.7.tgz#091b52cb697a171fe0136ab62e54e407211f09c2" - integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== - dependencies: - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/highlight@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" - integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== - dependencies: - "@babel/helper-validator-identifier" "^7.25.7" +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.9.tgz#12e4fb2969197ef6d78ea8a2f24375ce85b425fb" + integrity sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-simple-access" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + +"@babel/helper-simple-access@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz#6d51783299884a2c74618d6ef0f86820ec2e7739" + integrity sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helpers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.9.tgz#9e26aa6fbefdbca4f8c8a1d66dc6f1c00ddadb0a" + integrity sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g== + dependencies: + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/highlight@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" + integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.8.tgz#f6aaf38e80c36129460c1657c0762db584c9d5e2" - integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.9.tgz#8fcaa079ac7458facfddc5cd705cc8005e4d3817" + integrity sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg== dependencies: - "@babel/types" "^7.25.8" + "@babel/types" "^7.25.9" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -650,11 +652,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz#d78dd0499d30df19a598e63ab895e21b909bc43f" - integrity sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.9.tgz#29c9643445deea4533c05e6ac6c39d15424bbe78" + integrity sha512-u3EN9ub8LyYvgTnrgp8gboElouayiwPdnM7x5tcnW3iSt09/lQYPwMNK40I9IUxo7QOZhAsPHCmmuO7EPdruqg== dependencies: - "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -671,11 +673,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz#5352d398d11ea5e7ef330c854dea1dae0bf18165" - integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" + integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== dependencies: - "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -734,42 +736,41 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz#bfc05b0cc31ebd8af09964650cee723bb228108b" - integrity sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/template@^7.25.7", "@babel/template@^7.3.3": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769" - integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== - dependencies: - "@babel/code-frame" "^7.25.7" - "@babel/parser" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/traverse@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" - integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== - dependencies: - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/parser" "^7.25.7" - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" + integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/template@^7.25.9", "@babel/template@^7.3.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.3.3": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.8.tgz#5cf6037258e8a9bcad533f4979025140cb9993e1" - integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.3.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.9.tgz#620f35ea1f4233df529ec9a2668d2db26574deee" + integrity sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ== dependencies: - "@babel/helper-string-parser" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" "@balena/dockerignore@^1.0.2": version "1.0.2" @@ -1623,6 +1624,11 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@types/aws-lambda@^8.10.145": + version "8.10.145" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.145.tgz#b2d31a987f4888e5553ff1819f57cafa475594d9" + integrity sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw== + "@types/babel__core@^7.1.14": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" @@ -2046,14 +2052,14 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -aws-cdk-lib@2.80.0: - version "2.80.0" - resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.80.0.tgz#1118860637d33fab8f646551c29a75728404b64e" - integrity sha512-PoqD3Yms5I0ajuTi071nTW/hpkH3XsdyZzn5gYsPv0qD7mqP3h6Qr+6RiGx+yQ1KcVFyxWdX15uK+DsC0KwvcQ== +aws-cdk-lib@2.100.0: + version "2.100.0" + resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.100.0.tgz#1f7706871064c41397f2533129f4489ea48058c3" + integrity sha512-oWDPcbdqD69wDIUvcGdbDxmKcDfkCg515wf8JkiQLnhAI/AFyKAVTEWhbSUi00lvJQNUjX8Mal2lbKlCRA4hjQ== dependencies: - "@aws-cdk/asset-awscli-v1" "^2.2.177" - "@aws-cdk/asset-kubectl-v20" "^2.1.1" - "@aws-cdk/asset-node-proxy-agent-v5" "^2.0.148" + "@aws-cdk/asset-awscli-v1" "^2.2.200" + "@aws-cdk/asset-kubectl-v20" "^2.1.2" + "@aws-cdk/asset-node-proxy-agent-v6" "^2.0.1" "@balena/dockerignore" "^1.0.2" case "1.6.3" fs-extra "^11.1.1" @@ -2061,14 +2067,14 @@ aws-cdk-lib@2.80.0: jsonschema "^1.4.1" minimatch "^3.1.2" punycode "^2.3.0" - semver "^7.5.1" + semver "^7.5.4" table "^6.8.1" yaml "1.10.2" -aws-cdk@2.80.0: - version "2.80.0" - resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-2.80.0.tgz#fef040f2b01df6551fba828a9df350c4c792baba" - integrity sha512-SKMZ/sGlNmFV37Lk40HHe4QJ2hJZmD0PrkScBmkr33xzEqjyKhN3jIHC4PYqTUeUK/qYemq3Y5OpXKQuWTCoKA== +aws-cdk@2.100.0: + version "2.100.0" + resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-2.100.0.tgz#d87b87796c08e620bc5f615aeebb00dda620884c" + integrity sha512-Gt/4wPuEiBYw2tl0+cN0EbLxxJEvltcJxSQAcVHgNbqvDj49KUJ/oCbZ335dF0gK/hrVVb70xfNiYbBSPOsmvg== optionalDependencies: fsevents "2.3.2" @@ -5523,7 +5529,7 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: +semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -5890,28 +5896,23 @@ through@2, "through@>=2.2.7 <3": resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tldts-core@^6.1.53: - version "6.1.53" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.53.tgz#841a93a7d0ec6d13bb0cba0933e24b55c349d0ff" - integrity sha512-IleS872aGdTB/UtocD2dSZBnQi/nqMIZxxezVgfcKKjw6+G2hJGzFw9buIDJO2MVJyEJe3rCAdyMTl2yvGMMrQ== +tldts-core@^6.1.54: + version "6.1.54" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.54.tgz#a3c3b5f45a64a1f9ea4bb32a94642218c7b7baa5" + integrity sha512-5cc42+0G0EjYRDfIJHKraaT3I5kPm7j6or3Zh1T9sF+Ftj1T+isT4thicUyQQ1bwN7/xjHQIuY2fXCoXP8Haqg== tldts@^6.1.32: - version "6.1.53" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.53.tgz#50542056156198f28ba14736a3a2d797117fabd4" - integrity sha512-4uCStuOjPFaY2/LUjTSwdnJTC82W/gvSFL6FoTC9ehNOHboA9cyO3wX1erh2yGofVls37OdXr5sQLEfL5hS1TA== + version "6.1.54" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.54.tgz#782594001a7b95e577b4cc391c0f0ed7c8307d37" + integrity sha512-rDaL1t59gb/Lg0HPMUGdV1vAKLQcXwU74D26aMaYV4QW7mnMvShd1Vmkg3HYAPWx2JCTUmsrXt/Yl9eJ5UFBQw== dependencies: - tldts-core "^6.1.53" + tldts-core "^6.1.54" tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"