cdk-ecr-deployment 4.1.1 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -3453,7 +3453,7 @@
3453
3453
  "stability": "stable"
3454
3454
  },
3455
3455
  "homepage": "https://github.com/cdklabs/cdk-ecr-deployment",
3456
- "jsiiVersion": "5.9.28 (build cbad63d)",
3456
+ "jsiiVersion": "5.9.34 (build 8773a22)",
3457
3457
  "keywords": [
3458
3458
  "cdk"
3459
3459
  ],
@@ -3511,7 +3511,7 @@
3511
3511
  },
3512
3512
  "locationInModule": {
3513
3513
  "filename": "src/index.ts",
3514
- "line": 128
3514
+ "line": 137
3515
3515
  },
3516
3516
  "parameters": [
3517
3517
  {
@@ -3542,7 +3542,7 @@
3542
3542
  "kind": "class",
3543
3543
  "locationInModule": {
3544
3544
  "filename": "src/index.ts",
3545
- "line": 120
3545
+ "line": 129
3546
3546
  },
3547
3547
  "name": "DockerImageName",
3548
3548
  "properties": [
@@ -3555,7 +3555,7 @@
3555
3555
  "immutable": true,
3556
3556
  "locationInModule": {
3557
3557
  "filename": "src/index.ts",
3558
- "line": 129
3558
+ "line": 138
3559
3559
  },
3560
3560
  "name": "uri",
3561
3561
  "overrides": "cdk-ecr-deployment.IImageName",
@@ -3571,7 +3571,7 @@
3571
3571
  },
3572
3572
  "locationInModule": {
3573
3573
  "filename": "src/index.ts",
3574
- "line": 128
3574
+ "line": 137
3575
3575
  },
3576
3576
  "name": "creds",
3577
3577
  "optional": true,
@@ -3596,7 +3596,7 @@
3596
3596
  },
3597
3597
  "locationInModule": {
3598
3598
  "filename": "src/index.ts",
3599
- "line": 155
3599
+ "line": 164
3600
3600
  },
3601
3601
  "parameters": [
3602
3602
  {
@@ -3622,7 +3622,7 @@
3622
3622
  "kind": "class",
3623
3623
  "locationInModule": {
3624
3624
  "filename": "src/index.ts",
3625
- "line": 152
3625
+ "line": 161
3626
3626
  },
3627
3627
  "methods": [
3628
3628
  {
@@ -3631,7 +3631,7 @@
3631
3631
  },
3632
3632
  "locationInModule": {
3633
3633
  "filename": "src/index.ts",
3634
- "line": 232
3634
+ "line": 242
3635
3635
  },
3636
3636
  "name": "addToPrincipalPolicy",
3637
3637
  "parameters": [
@@ -3775,7 +3775,7 @@
3775
3775
  "immutable": true,
3776
3776
  "locationInModule": {
3777
3777
  "filename": "src/index.ts",
3778
- "line": 65
3778
+ "line": 74
3779
3779
  },
3780
3780
  "name": "memoryLimit",
3781
3781
  "optional": true,
@@ -3783,6 +3783,29 @@
3783
3783
  "primitive": "number"
3784
3784
  }
3785
3785
  },
3786
+ {
3787
+ "abstract": true,
3788
+ "docs": {
3789
+ "remarks": "For example, { 'numAttempts': 3, 'baseDelay': 1, 'maxDelay': 5 }",
3790
+ "stability": "stable",
3791
+ "summary": "Retry configuration to apply to when copying images such as the number of retry attemtps, the base amount of delay (in seconds) between each retry, and the max amount of delay (in seconds) between each retry."
3792
+ },
3793
+ "immutable": true,
3794
+ "locationInModule": {
3795
+ "filename": "src/index.ts",
3796
+ "line": 63
3797
+ },
3798
+ "name": "retryConfigs",
3799
+ "optional": true,
3800
+ "type": {
3801
+ "collection": {
3802
+ "elementtype": {
3803
+ "primitive": "number"
3804
+ },
3805
+ "kind": "map"
3806
+ }
3807
+ }
3808
+ },
3786
3809
  {
3787
3810
  "abstract": true,
3788
3811
  "docs": {
@@ -3793,7 +3816,7 @@
3793
3816
  "immutable": true,
3794
3817
  "locationInModule": {
3795
3818
  "filename": "src/index.ts",
3796
- "line": 72
3819
+ "line": 81
3797
3820
  },
3798
3821
  "name": "role",
3799
3822
  "optional": true,
@@ -3812,7 +3835,7 @@
3812
3835
  "immutable": true,
3813
3836
  "locationInModule": {
3814
3837
  "filename": "src/index.ts",
3815
- "line": 98
3838
+ "line": 107
3816
3839
  },
3817
3840
  "name": "securityGroups",
3818
3841
  "optional": true,
@@ -3835,7 +3858,7 @@
3835
3858
  "immutable": true,
3836
3859
  "locationInModule": {
3837
3860
  "filename": "src/index.ts",
3838
- "line": 79
3861
+ "line": 88
3839
3862
  },
3840
3863
  "name": "vpc",
3841
3864
  "optional": true,
@@ -3854,7 +3877,7 @@
3854
3877
  "immutable": true,
3855
3878
  "locationInModule": {
3856
3879
  "filename": "src/index.ts",
3857
- "line": 87
3880
+ "line": 96
3858
3881
  },
3859
3882
  "name": "vpcSubnets",
3860
3883
  "optional": true,
@@ -3874,7 +3897,7 @@
3874
3897
  "kind": "interface",
3875
3898
  "locationInModule": {
3876
3899
  "filename": "src/index.ts",
3877
- "line": 101
3900
+ "line": 110
3878
3901
  },
3879
3902
  "name": "IImageName",
3880
3903
  "properties": [
@@ -3888,7 +3911,7 @@
3888
3911
  "immutable": true,
3889
3912
  "locationInModule": {
3890
3913
  "filename": "src/index.ts",
3891
- "line": 107
3914
+ "line": 116
3892
3915
  },
3893
3916
  "name": "uri",
3894
3917
  "type": {
@@ -3904,7 +3927,7 @@
3904
3927
  },
3905
3928
  "locationInModule": {
3906
3929
  "filename": "src/index.ts",
3907
- "line": 117
3930
+ "line": 126
3908
3931
  },
3909
3932
  "name": "creds",
3910
3933
  "optional": true,
@@ -3927,7 +3950,7 @@
3927
3950
  },
3928
3951
  "locationInModule": {
3929
3952
  "filename": "src/index.ts",
3930
- "line": 143
3953
+ "line": 152
3931
3954
  },
3932
3955
  "parameters": [
3933
3956
  {
@@ -3968,7 +3991,7 @@
3968
3991
  "kind": "class",
3969
3992
  "locationInModule": {
3970
3993
  "filename": "src/index.ts",
3971
- "line": 132
3994
+ "line": 141
3972
3995
  },
3973
3996
  "name": "S3ArchiveName",
3974
3997
  "properties": [
@@ -3981,7 +4004,7 @@
3981
4004
  "immutable": true,
3982
4005
  "locationInModule": {
3983
4006
  "filename": "src/index.ts",
3984
- "line": 149
4007
+ "line": 158
3985
4008
  },
3986
4009
  "name": "uri",
3987
4010
  "overrides": "cdk-ecr-deployment.IImageName",
@@ -3997,7 +4020,7 @@
3997
4020
  },
3998
4021
  "locationInModule": {
3999
4022
  "filename": "src/index.ts",
4000
- "line": 143
4023
+ "line": 152
4001
4024
  },
4002
4025
  "name": "creds",
4003
4026
  "optional": true,
@@ -4010,6 +4033,6 @@
4010
4033
  "symbolId": "src/index:S3ArchiveName"
4011
4034
  }
4012
4035
  },
4013
- "version": "4.1.1",
4014
- "fingerprint": "RTy2BsIlfTUZ+761rAiF9/jYvd4LnHkFAdT5xRrZjwI="
4036
+ "version": "4.1.3",
4037
+ "fingerprint": "RLlTFjl5v0OmMmWJwxY6TiOE8iPNclnV37gNUHoEfY0="
4015
4038
  }
package/.jsii.tabl.json CHANGED
@@ -1 +1 @@
1
- {"version":"2","toolVersion":"5.9.32","snippets":{"2c9d92f1126c55cfce28304eeea97dcfb46c01e51c787db6d2acd957b5155bd0":{"translations":{"python":{"source":"from aws_cdk.aws_ecr_assets import DockerImageAsset\n\n\nimage = DockerImageAsset(self, \"CDKDockerImage\",\n directory=path.join(__dirname, \"docker\")\n)\n\n# Copy from cdk docker image asset to another ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage1\",\n src=ecrdeploy.DockerImageName(image.image_uri),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n)\n\n# Copy from docker registry to ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage2\",\n src=ecrdeploy.DockerImageName(\"nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n)\n\n# Copy from private docker registry to ECR.\n# The format of secret in aws secrets manager must be either:\n# - plain text in format <username>:<password>\n# - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\necrdeploy.ECRDeployment(self, \"DeployDockerImage3\",\n src=ecrdeploy.DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n).add_to_principal_policy(iam.PolicyStatement(\n effect=iam.Effect.ALLOW,\n actions=[\"secretsmanager:GetSecretValue\"\n ],\n resources=[\"*\"]\n))\n\n# Copy multi-architecture image index (manifest) with all architectures.\necrdeploy.ECRDeployment(self, \"DeployDockerImage4\",\n src=ecrdeploy.DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\"),\n copy_image_index=True,\n arch_image_tags={\n \"amd64\": \"my-nginx-amd64\",\n \"arm64\": \"my-nginx-arm64\"\n }\n)","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.Ecr.Assets;\n\n\nvar image = new DockerImageAsset(this, \"CDKDockerImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"docker\")\n});\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nnew ECRDeployment(this, \"DeployDockerImage1\", new ECRDeploymentProps {\n Src = new DockerImageName(image.ImageUri),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n});\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nnew ECRDeployment(this, \"DeployDockerImage2\", new ECRDeploymentProps {\n Src = new DockerImageName(\"nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ECRDeployment(this, \"DeployDockerImage3\", new ECRDeploymentProps {\n Src = new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n}).AddToPrincipalPolicy(new PolicyStatement(new PolicyStatementProps {\n Effect = Effect.ALLOW,\n Actions = new [] { \"secretsmanager:GetSecretValue\" },\n Resources = new [] { \"*\" }\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ECRDeployment(this, \"DeployDockerImage4\", new ECRDeploymentProps {\n Src = new DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\"),\n CopyImageIndex = true,\n ArchImageTags = new Dictionary<string, string> {\n { \"amd64\", \"my-nginx-amd64\" },\n { \"arm64\", \"my-nginx-arm64\" }\n }\n});","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\n\n\nDockerImageAsset image = DockerImageAsset.Builder.create(this, \"CDKDockerImage\")\n .directory(join(__dirname, \"docker\"))\n .build();\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage1\")\n .src(new DockerImageName(image.getImageUri()))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage2\")\n .src(new DockerImageName(\"nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nECRDeployment.Builder.create(this, \"DeployDockerImage3\")\n .src(new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"))\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", Aws.ACCOUNT_ID)))\n .build().addToPrincipalPolicy(PolicyStatement.Builder.create()\n .effect(Effect.ALLOW)\n .actions(List.of(\"secretsmanager:GetSecretValue\"))\n .resources(List.of(\"*\"))\n .build());\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\nECRDeployment.Builder.create(this, \"DeployDockerImage4\")\n .src(new DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\", Aws.ACCOUNT_ID)))\n .copyImageIndex(true)\n .archImageTags(Map.of(\n \"amd64\", \"my-nginx-amd64\",\n \"arm64\", \"my-nginx-arm64\"))\n .build();","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nimage := awscdk.NewDockerImageAsset(this, jsii.String(\"CDKDockerImage\"), &DockerImageAssetProps{\n\tDirectory: path.join(__dirname, jsii.String(\"docker\")),\n})\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage1\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(image.ImageUri),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage2\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage3\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"javacs3/nginx:latest\"), jsii.String(\"username:password\")),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", cdk.Aws_ACCOUNT_ID())),\n}).AddToPrincipalPolicy(awscdk.Aws_iam.NewPolicyStatement(&PolicyStatementProps{\n\tEffect: awscdk.*Aws_iam.Effect_ALLOW,\n\tActions: []*string{\n\t\tjsii.String(\"secretsmanager:GetSecretValue\"),\n\t},\n\tResources: []*string{\n\t\tjsii.String(\"*\"),\n\t},\n}))\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage4\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"public.ecr.aws/nginx/nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\", cdk.Aws_ACCOUNT_ID())),\n\tCopyImageIndex: jsii.Boolean(true),\n\tArchImageTags: map[string]*string{\n\t\t\"amd64\": jsii.String(\"my-nginx-amd64\"),\n\t\t\"arm64\": jsii.String(\"my-nginx-arm64\"),\n\t},\n})","version":"1"},"$":{"source":"import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage4', {\n src: new ecrdeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest`),\n copyImageIndex: true,\n archImageTags: {\n amd64: 'my-nginx-amd64',\n arm64: 'my-nginx-arm64',\n },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-ecr-deployment"},"field":{"field":"markdown","line":24}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_ecr_assets.DockerImageAsset","aws-cdk-lib.aws_ecr_assets.DockerImageAsset#imageUri","aws-cdk-lib.aws_ecr_assets.DockerImageAssetProps","aws-cdk-lib.aws_iam.Effect","aws-cdk-lib.aws_iam.Effect#ALLOW","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","cdk-ecr-deployment.DockerImageName","cdk-ecr-deployment.ECRDeployment","cdk-ecr-deployment.ECRDeployment#addToPrincipalPolicy","cdk-ecr-deployment.ECRDeploymentProps","cdk-ecr-deployment.IImageName"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport * as path from 'node:path';\nimport { Construct } from 'constructs';\n import * as ecrdeploy from 'cdk-ecr-deployment';\nimport {\n Stack,\n aws_iam as iam,\n} from 'aws-cdk-lib';\nimport * as cdk from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage4', {\n src: new ecrdeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest`),\n copyImageIndex: true,\n archImageTags: {\n amd64: 'my-nginx-amd64',\n arm64: 'my-nginx-arm64',\n },\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":15,"16":4,"18":4,"80":66,"110":5,"112":1,"210":2,"211":7,"212":26,"214":2,"215":14,"229":4,"240":4,"244":1,"245":4,"261":1,"262":1,"273":1,"274":1,"276":1,"277":1,"304":16,"308":1},"fqnsFingerprint":"bdc636fe2fe510c57ac1b1fbd9d87d25bee472663198288d5317db74c9060d6b"}}}
1
+ {"version":"2","toolVersion":"5.9.37","snippets":{"2c9d92f1126c55cfce28304eeea97dcfb46c01e51c787db6d2acd957b5155bd0":{"translations":{"python":{"source":"from aws_cdk.aws_ecr_assets import DockerImageAsset\n\n\nimage = DockerImageAsset(self, \"CDKDockerImage\",\n directory=path.join(__dirname, \"docker\")\n)\n\n# Copy from cdk docker image asset to another ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage1\",\n src=ecrdeploy.DockerImageName(image.image_uri),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n)\n\n# Copy from docker registry to ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage2\",\n src=ecrdeploy.DockerImageName(\"nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n)\n\n# Copy from private docker registry to ECR.\n# The format of secret in aws secrets manager must be either:\n# - plain text in format <username>:<password>\n# - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\necrdeploy.ECRDeployment(self, \"DeployDockerImage3\",\n src=ecrdeploy.DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n).add_to_principal_policy(iam.PolicyStatement(\n effect=iam.Effect.ALLOW,\n actions=[\"secretsmanager:GetSecretValue\"\n ],\n resources=[\"*\"]\n))\n\n# Copy multi-architecture image index (manifest) with all architectures.\necrdeploy.ECRDeployment(self, \"DeployDockerImage4\",\n src=ecrdeploy.DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\"),\n copy_image_index=True,\n arch_image_tags={\n \"amd64\": \"my-nginx-amd64\",\n \"arm64\": \"my-nginx-arm64\"\n }\n)","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.Ecr.Assets;\n\n\nvar image = new DockerImageAsset(this, \"CDKDockerImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"docker\")\n});\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nnew ECRDeployment(this, \"DeployDockerImage1\", new ECRDeploymentProps {\n Src = new DockerImageName(image.ImageUri),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n});\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nnew ECRDeployment(this, \"DeployDockerImage2\", new ECRDeploymentProps {\n Src = new DockerImageName(\"nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ECRDeployment(this, \"DeployDockerImage3\", new ECRDeploymentProps {\n Src = new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n}).AddToPrincipalPolicy(new PolicyStatement(new PolicyStatementProps {\n Effect = Effect.ALLOW,\n Actions = new [] { \"secretsmanager:GetSecretValue\" },\n Resources = new [] { \"*\" }\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ECRDeployment(this, \"DeployDockerImage4\", new ECRDeploymentProps {\n Src = new DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\"),\n CopyImageIndex = true,\n ArchImageTags = new Dictionary<string, string> {\n { \"amd64\", \"my-nginx-amd64\" },\n { \"arm64\", \"my-nginx-arm64\" }\n }\n});","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\n\n\nDockerImageAsset image = DockerImageAsset.Builder.create(this, \"CDKDockerImage\")\n .directory(join(__dirname, \"docker\"))\n .build();\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage1\")\n .src(new DockerImageName(image.getImageUri()))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage2\")\n .src(new DockerImageName(\"nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nECRDeployment.Builder.create(this, \"DeployDockerImage3\")\n .src(new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"))\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", Aws.ACCOUNT_ID)))\n .build().addToPrincipalPolicy(PolicyStatement.Builder.create()\n .effect(Effect.ALLOW)\n .actions(List.of(\"secretsmanager:GetSecretValue\"))\n .resources(List.of(\"*\"))\n .build());\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\nECRDeployment.Builder.create(this, \"DeployDockerImage4\")\n .src(new DockerImageName(\"public.ecr.aws/nginx/nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\", Aws.ACCOUNT_ID)))\n .copyImageIndex(true)\n .archImageTags(Map.of(\n \"amd64\", \"my-nginx-amd64\",\n \"arm64\", \"my-nginx-arm64\"))\n .build();","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nimage := awscdk.NewDockerImageAsset(this, jsii.String(\"CDKDockerImage\"), &DockerImageAssetProps{\n\tDirectory: path.join(__dirname, jsii.String(\"docker\")),\n})\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage1\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(image.ImageUri),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage2\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage3\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"javacs3/nginx:latest\"), jsii.String(\"username:password\")),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", cdk.Aws_ACCOUNT_ID())),\n}).AddToPrincipalPolicy(awscdk.Aws_iam.NewPolicyStatement(&PolicyStatementProps{\n\tEffect: awscdk.*Aws_iam.Effect_ALLOW,\n\tActions: []*string{\n\t\tjsii.String(\"secretsmanager:GetSecretValue\"),\n\t},\n\tResources: []*string{\n\t\tjsii.String(\"*\"),\n\t},\n}))\n\n// Copy multi-architecture image index (manifest) with all architectures.\n// Copy multi-architecture image index (manifest) with all architectures.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage4\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"public.ecr.aws/nginx/nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest\", cdk.Aws_ACCOUNT_ID())),\n\tCopyImageIndex: jsii.Boolean(true),\n\tArchImageTags: map[string]*string{\n\t\t\"amd64\": jsii.String(\"my-nginx-amd64\"),\n\t\t\"arm64\": jsii.String(\"my-nginx-arm64\"),\n\t},\n})","version":"1"},"$":{"source":"import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage4', {\n src: new ecrdeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest`),\n copyImageIndex: true,\n archImageTags: {\n amd64: 'my-nginx-amd64',\n arm64: 'my-nginx-arm64',\n },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-ecr-deployment"},"field":{"field":"markdown","line":24}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_ecr_assets.DockerImageAsset","aws-cdk-lib.aws_ecr_assets.DockerImageAsset#imageUri","aws-cdk-lib.aws_ecr_assets.DockerImageAssetProps","aws-cdk-lib.aws_iam.Effect","aws-cdk-lib.aws_iam.Effect#ALLOW","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","cdk-ecr-deployment.DockerImageName","cdk-ecr-deployment.ECRDeployment","cdk-ecr-deployment.ECRDeployment#addToPrincipalPolicy","cdk-ecr-deployment.ECRDeploymentProps","cdk-ecr-deployment.IImageName"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport * as path from 'node:path';\nimport { Construct } from 'constructs';\n import * as ecrdeploy from 'cdk-ecr-deployment';\nimport {\n Stack,\n aws_iam as iam,\n} from 'aws-cdk-lib';\nimport * as cdk from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be either:\n// - plain text in format <username>:<password>\n// - json in format {\"username\":\"<username>\",\"password\":\"<password>\"}\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n\n// Copy multi-architecture image index (manifest) with all architectures.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage4', {\n src: new ecrdeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx4:manifest`),\n copyImageIndex: true,\n archImageTags: {\n amd64: 'my-nginx-amd64',\n arm64: 'my-nginx-arm64',\n },\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":15,"16":4,"18":4,"80":66,"110":5,"112":1,"210":2,"211":7,"212":26,"214":2,"215":14,"229":4,"240":4,"244":1,"245":4,"261":1,"262":1,"273":1,"274":1,"276":1,"277":1,"304":16,"308":1},"fqnsFingerprint":"60d904326eb7fc376ddf3a23dec394e6db945cfdcef3658d7d8533e147d498e1"}}}
package/API.md CHANGED
@@ -150,6 +150,7 @@ const eCRDeploymentProps: ECRDeploymentProps = { ... }
150
150
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.copyImageIndex">copyImageIndex</a></code> | <code>boolean</code> | Whether to copy a source docker image index (multi-arch manifest) to the destination. |
151
151
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.imageArch">imageArch</a></code> | <code>string[]</code> | The image architecture to be copied. |
152
152
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.memoryLimit">memoryLimit</a></code> | <code>number</code> | The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket. |
153
+ | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.retryConfigs">retryConfigs</a></code> | <code>{[ key: string ]: number}</code> | Retry configuration to apply to when copying images such as the number of retry attemtps, the base amount of delay (in seconds) between each retry, and the max amount of delay (in seconds) between each retry. |
153
154
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Execution role associated with this function. |
154
155
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.securityGroups">securityGroups</a></code> | <code>aws-cdk-lib.aws_ec2.SecurityGroup[]</code> | The list of security groups to associate with the Lambda's network interfaces. |
155
156
  | <code><a href="#cdk-ecr-deployment.ECRDeploymentProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | The VPC network to place the deployment lambda handler in. |
@@ -250,6 +251,20 @@ accordingly.
250
251
 
251
252
  ---
252
253
 
254
+ ##### `retryConfigs`<sup>Optional</sup> <a name="retryConfigs" id="cdk-ecr-deployment.ECRDeploymentProps.property.retryConfigs"></a>
255
+
256
+ ```typescript
257
+ public readonly retryConfigs: {[ key: string ]: number};
258
+ ```
259
+
260
+ - *Type:* {[ key: string ]: number}
261
+
262
+ Retry configuration to apply to when copying images such as the number of retry attemtps, the base amount of delay (in seconds) between each retry, and the max amount of delay (in seconds) between each retry.
263
+
264
+ For example, { 'numAttempts': 3, 'baseDelay': 1, 'maxDelay': 5 }
265
+
266
+ ---
267
+
253
268
  ##### `role`<sup>Optional</sup> <a name="role" id="cdk-ecr-deployment.ECRDeploymentProps.property.role"></a>
254
269
 
255
270
  ```typescript
Binary file
package/lib/index.d.ts CHANGED
@@ -44,6 +44,16 @@ export interface ECRDeploymentProps {
44
44
  readonly archImageTags?: {
45
45
  [architecture: string]: string;
46
46
  };
47
+ /**
48
+ * Retry configuration to apply to when copying images such as the number of retry attemtps,
49
+ * the base amount of delay (in seconds) between each retry, and the max amount of delay (in seconds)
50
+ * between each retry.
51
+ *
52
+ * For example, { 'numAttempts': 3, 'baseDelay': 1, 'maxDelay': 5 }
53
+ */
54
+ readonly retryConfigs?: {
55
+ [fields: string]: number;
56
+ };
47
57
  /**
48
58
  * The amount of memory (in MiB) to allocate to the AWS Lambda function which
49
59
  * replicates the files from the CDK bucket to the destination bucket.
package/lib/index.js CHANGED
@@ -25,7 +25,7 @@ class DockerImageName {
25
25
  }
26
26
  exports.DockerImageName = DockerImageName;
27
27
  _a = JSII_RTTI_SYMBOL_1;
28
- DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "4.1.1" };
28
+ DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "4.1.3" };
29
29
  class S3ArchiveName {
30
30
  /**
31
31
  * @param p - the S3 bucket name and path of the archive (a S3 URI without the s3://)
@@ -46,7 +46,7 @@ class S3ArchiveName {
46
46
  }
47
47
  exports.S3ArchiveName = S3ArchiveName;
48
48
  _b = JSII_RTTI_SYMBOL_1;
49
- S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "4.1.1" };
49
+ S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "4.1.3" };
50
50
  class ECRDeployment extends constructs_1.Construct {
51
51
  constructor(scope, id, props) {
52
52
  super(scope, id);
@@ -118,6 +118,7 @@ class ECRDeployment extends constructs_1.Construct {
118
118
  ...imageArch ? { ImageArch: imageArch } : {},
119
119
  ...props.copyImageIndex ? { CopyImageIndex: props.copyImageIndex } : {},
120
120
  ...props.archImageTags ? { ArchImageTags: JSON.stringify(props.archImageTags) } : {},
121
+ ...props.retryConfigs ? { RetryConfigs: JSON.stringify(props.retryConfigs) } : {},
121
122
  },
122
123
  });
123
124
  }
@@ -144,5 +145,5 @@ class ECRDeployment extends constructs_1.Construct {
144
145
  }
145
146
  exports.ECRDeployment = ECRDeployment;
146
147
  _c = JSII_RTTI_SYMBOL_1;
147
- ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "4.1.1" };
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBb0g7QUFFcEgsdURBQXVEO0FBQ3ZELDJDQUF1QztBQWdIdkMsTUFBYSxlQUFlO0lBQzFCOzs7Ozs7T0FNRztJQUNILFlBQTJCLElBQVksRUFBUyxLQUFjO1FBQW5DLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQUksQ0FBQztJQUNuRSxJQUFXLEdBQUcsS0FBYSxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFUOUQsMENBVUM7OztBQUVELE1BQWEsYUFBYTtJQUd4Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBbUIsQ0FBUyxFQUFFLEdBQVksRUFBUyxLQUFjO1FBQWQsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFXLEdBQUcsS0FBYSxPQUFPLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFqQjFELHNDQWtCQzs7O0FBRUQsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFHMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx3QkFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUks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QUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLG1IQUFtSCxDQUFDLENBQUM7WUFDdkksQ0FBQztZQUVELElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO1FBQzFDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O0FBdEdILHNDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGF3c19lYzIgYXMgZWMyLCBhd3NfaWFtIGFzIGlhbSwgYXdzX2xhbWJkYSBhcyBsYW1iZGEsIER1cmF0aW9uLCBDdXN0b21SZXNvdXJjZSwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIEFkZFRvUHJpbmNpcGFsUG9saWN5UmVzdWx0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBSdW50aW1lRmFtaWx5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBFQ1JEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZG9ja2VyIGltYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjOiBJSW1hZ2VOYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gb2YgdGhlIGRvY2tlciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3Q6IElJbWFnZU5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBhcmNoaXRlY3R1cmUgdG8gYmUgY29waWVkLlxuICAgKlxuICAgKiBUaGUgJ2FtZDY0JyBhcmNoaXRlY3R1cmUgd2lsbCBiZSBjb3BpZWQgYnkgZGVmYXVsdC4gU3BlY2lmeSB0aGVcbiAgICogYXJjaGl0ZWN0dXJlIG9yIGFyY2hpdGVjdHVyZXMgdG8gY29weSBoZXJlLlxuICAgKlxuICAgKiBJdCBpcyBjdXJyZW50bHkgbm90IHBvc3NpYmxlIHRvIGNvcHkgbW9yZSB0aGFuIG9uZSBhcmNoaXRlY3R1cmVcbiAgICogYXQgYSB0aW1lOiB0aGUgYXJyYXkgeW91IHNwZWNpZnkgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIHN0cmluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgWydhbWQ2NCddXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFyY2g/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjb3B5IGEgc291cmNlIGRvY2tlciBpbWFnZSBpbmRleCAobXVsdGktYXJjaCBtYW5pZmVzdCkgdG8gdGhlIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBXaGVuIHRydWUsIGNvcGllcyB0aGUgaW1hZ2UgaW5kZXggYW5kIGFsbCB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS1zcGVjaWZpY1xuICAgKiBpbWFnZXMgaW4gYSBzaW5nbGUgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBGYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29weUltYWdlSW5kZXg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIGluZGl2aWR1YWwgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGltYWdlcyB3aGVuXG4gICAqIGNvcHlJbWFnZUluZGV4IGlzIHRydWUuXG4gICAqXG4gICAqIENhbiBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIGNvcHlJbWFnZUluZGV4IGlzIHRydWUuIE1hcHMgYXJjaGl0ZWN0dXJlIG5hbWVzIHRvXG4gICAqIHRoZWlyIHJlc3BlY3RpdmUgdGFncy4gVGhpcyBtYWtlcyBpbmRpdmlkdWFsIGFyY2hpdGVjdHVyZXMgZGlzY292ZXJhYmxlXG4gICAqIGJ5IGh1bWFuLXJlYWRhYmxlIHRhZ3MgaW4gYWRkaXRpb24gdG8gdGhlIGltYWdlIGluZGV4IHRhZy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIHsgJ2FybTY0JzogJ2ltYWdlLWFybTY0JywgJ2FtZDY0JzogJ2ltYWdlLWFtZDY0JyB9LlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaEltYWdlVGFncz86IHsgW2FyY2hpdGVjdHVyZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgbWVtb3J5IChpbiBNaUIpIHRvIGFsbG9jYXRlIHRvIHRoZSBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoXG4gICAqIHJlcGxpY2F0ZXMgdGhlIGZpbGVzIGZyb20gdGhlIENESyBidWNrZXQgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGFyZSBkZXBsb3lpbmcgbGFyZ2UgZmlsZXMsIHlvdSB3aWxsIG5lZWQgdG8gaW5jcmVhc2UgdGhpcyBudW1iZXJcbiAgICogYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNTEyXG4gICAqL1xuICByZWFkb25seSBtZW1vcnlMaW1pdD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhlY3V0aW9uIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIHJvbGUgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIG5ldHdvcmsgdG8gcGxhY2UgdGhlIGRlcGxveW1lbnQgbGFtYmRhIGhhbmRsZXIgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIGluIHRoZSBWUEMgdG8gcGxhY2UgdGhlIGRlcGxveW1lbnQgbGFtYmRhIGhhbmRsZXIuXG4gICAqIE9ubHkgdXNlZCBpZiAndnBjJyBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgVnBjIGRlZmF1bHQgc3RyYXRlZ3kgaWYgbm90IHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgTGFtYmRhJ3MgbmV0d29yayBpbnRlcmZhY2VzLlxuICAgKlxuICAgKiBPbmx5IHVzZWQgaWYgJ3ZwYycgaXMgc3VwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSWYgdGhlIGZ1bmN0aW9uIGlzIHBsYWNlZCB3aXRoaW4gYSBWUEMgYW5kIGEgc2VjdXJpdHkgZ3JvdXAgaXNcbiAgICogbm90IHNwZWNpZmllZCwgZWl0aGVyIGJ5IHRoaXMgb3Igc2VjdXJpdHlHcm91cCBwcm9wLCBhIGRlZGljYXRlZCBzZWN1cml0eVxuICAgKiBncm91cCB3aWxsIGJlIGNyZWF0ZWQgZm9yIHRoaXMgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5TZWN1cml0eUdyb3VwW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlTmFtZSB7XG4gIC8qKlxuICAgKiAgVGhlIHVyaSBvZiB0aGUgZG9ja2VyIGltYWdlLlxuICAgKlxuICAgKiAgVGhlIHVyaSBzcGVjIGZvbGxvd3MgaHR0cHM6Ly9naXRodWIuY29tL2NvbnRhaW5lcnMvc2tvcGVvXG4gICAqL1xuICByZWFkb25seSB1cmk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWxzIG9mIHRoZSBkb2NrZXIgaW1hZ2UuIEZvcm1hdCBgdXNlcjpwYXNzd29yZGAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGFybmAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IG5hbWVgLlxuICAgKlxuICAgKiBJZiBzcGVjaWZ5aW5nIGFuIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0LCB0aGUgZm9ybWF0IG9mIHRoZSBzZWNyZXQgc2hvdWxkIGJlIGVpdGhlciBwbGFpbiB0ZXh0IChgdXNlcjpwYXNzd29yZGApIG9yXG4gICAqIEpTT04gKGB7XCJ1c2VybmFtZVwiOlwiPHVzZXJuYW1lPlwiLFwicGFzc3dvcmRcIjpcIjxwYXNzd29yZD5cIn1gKS5cbiAgICpcbiAgICogRm9yIG1vcmUgZGV0YWlscyBvbiBKU09OIGZvcm1hdCwgc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3ByaXZhdGUtYXV0aC5odG1sXG4gICAqL1xuICBjcmVkcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERvY2tlckltYWdlTmFtZSBpbXBsZW1lbnRzIElJbWFnZU5hbWUge1xuICAvKipcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgaW1hZ2UsIGUuZy4gcmV0cmlldmVkIGZyb20gYERvY2tlckltYWdlQXNzZXQuaW1hZ2VVcmlgXG4gICAqIEBwYXJhbSBjcmVkcyAtIFRoZSBjcmVkZW50aWFscyBvZiB0aGUgZG9ja2VyIGltYWdlLiBGb3JtYXQgYHVzZXI6cGFzc3dvcmRgIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBhcm5gIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBuYW1lYC5cbiAgICogICAgIElmIHNwZWNpZnlpbmcgYW4gQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQsIHRoZSBmb3JtYXQgb2YgdGhlIHNlY3JldCBzaG91bGQgYmUgZWl0aGVyIHBsYWluIHRleHQgKGB1c2VyOnBhc3N3b3JkYCkgb3JcbiAgICogICAgIEpTT04gKGB7XCJ1c2VybmFtZVwiOlwiPHVzZXJuYW1lPlwiLFwicGFzc3dvcmRcIjpcIjxwYXNzd29yZD5cIn1gKS5cbiAgICogICAgIEZvciBtb3JlIGRldGFpbHMgb24gSlNPTiBmb3JtYXQsIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcml2YXRlLWF1dGguaHRtbFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgY3JlZHM/OiBzdHJpbmcpIHsgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYGRvY2tlcjovLyR7dGhpcy5uYW1lfWA7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFMzQXJjaGl2ZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgcHJpdmF0ZSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwIC0gdGhlIFMzIGJ1Y2tldCBuYW1lIGFuZCBwYXRoIG9mIHRoZSBhcmNoaXZlIChhIFMzIFVSSSB3aXRob3V0IHRoZSBzMzovLylcbiAgICogQHBhcmFtIHJlZiAtIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIG5hbWUgd2l0aCBhIGA6YCwgZS5nLiBgOmxhdGVzdGBcbiAgICogQHBhcmFtIGNyZWRzIC0gVGhlIGNyZWRlbnRpYWxzIG9mIHRoZSBkb2NrZXIgaW1hZ2UuIEZvcm1hdCBgdXNlcjpwYXNzd29yZGAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGFybmAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IG5hbWVgLlxuICAgKiAgICAgSWYgc3BlY2lmeWluZyBhbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCwgdGhlIGZvcm1hdCBvZiB0aGUgc2VjcmV0IHNob3VsZCBiZSBlaXRoZXIgcGxhaW4gdGV4dCAoYHVzZXI6cGFzc3dvcmRgKSBvclxuICAgKiAgICAgSlNPTiAoYHtcInVzZXJuYW1lXCI6XCI8dXNlcm5hbWU+XCIsXCJwYXNzd29yZFwiOlwiPHBhc3N3b3JkPlwifWApLlxuICAgKiAgICAgRm9yIG1vcmUgZGV0YWlscyBvbiBKU09OIGZvcm1hdCwgc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3ByaXZhdGUtYXV0aC5odG1sXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocDogc3RyaW5nLCByZWY/OiBzdHJpbmcsIHB1YmxpYyBjcmVkcz86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IHA7XG4gICAgaWYgKHJlZikge1xuICAgICAgdGhpcy5uYW1lICs9ICc6JyArIHJlZjtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB1cmkoKTogc3RyaW5nIHsgcmV0dXJuIGBzMzovLyR7dGhpcy5uYW1lfWA7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEVDUkRlcGxveW1lbnQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIGhhbmRsZXI6IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRUNSRGVwbG95bWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBtZW1vcnlMaW1pdCA9IHByb3BzLm1lbW9yeUxpbWl0ID8/IDUxMjtcbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdDdXN0b21SZXNvdXJjZUhhbmRsZXInLCB7XG4gICAgICB1dWlkOiB0aGlzLnJlbmRlclNpbmdsZXRvblV1aWQobWVtb3J5TGltaXQpLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9sYW1iZGEtYmluJykpLFxuICAgICAgcnVudGltZTogbmV3IGxhbWJkYS5SdW50aW1lKCdwcm92aWRlZC5hbDIwMjMnLCBSdW50aW1lRmFtaWx5Lk9USEVSKSwgLy8gbm90IHVzaW5nIFJ1bnRpbWUuUFJPVklERURfQUwyMDIzIHRvIHN1cHBvcnQgb2xkZXIgQ0RLIHZlcnNpb25zICg8IDIuMTA1LjApXG4gICAgICBoYW5kbGVyOiAnYm9vdHN0cmFwJyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDdXN0b206OkNES0VDUkRlcGxveW1lbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdDdXN0b20gcmVzb3VyY2UgaGFuZGxlciBmb3IgY29weWluZyBEb2NrZXIgaW1hZ2VzIGJldHdlZW4gZG9ja2VyIHJlZ2lzdHJpZXMuJyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgIG1lbW9yeVNpemU6IG1lbW9yeUxpbWl0LFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy52cGNTdWJuZXRzLFxuICAgICAgc2VjdXJpdHlHcm91cHM6IHByb3BzLnNlY3VyaXR5R3JvdXBzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlclJvbGUgPSB0aGlzLmhhbmRsZXIucm9sZTtcbiAgICBpZiAoIWhhbmRsZXJSb2xlKSB7IHRocm93IG5ldyBFcnJvcignbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uIHNob3VsZCBoYXZlIGNyZWF0ZWQgYSBSb2xlJyk7IH1cblxuICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlbicsXG4gICAgICAgICAgJ2VjcjpCYXRjaENoZWNrTGF5ZXJBdmFpbGFiaWxpdHknLFxuICAgICAgICAgICdlY3I6R2V0RG93bmxvYWRVcmxGb3JMYXllcicsXG4gICAgICAgICAgJ2VjcjpHZXRSZXBvc2l0b3J5UG9saWN5JyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlUmVwb3NpdG9yaWVzJyxcbiAgICAgICAgICAnZWNyOkxpc3RJbWFnZXMnLFxuICAgICAgICAgICdlY3I6RGVzY3JpYmVJbWFnZXMnLFxuICAgICAgICAgICdlY3I6QmF0Y2hHZXRJbWFnZScsXG4gICAgICAgICAgJ2VjcjpMaXN0VGFnc0ZvclJlc291cmNlJyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VTY2FuRmluZGluZ3MnLFxuICAgICAgICAgICdlY3I6SW5pdGlhdGVMYXllclVwbG9hZCcsXG4gICAgICAgICAgJ2VjcjpVcGxvYWRMYXllclBhcnQnLFxuICAgICAgICAgICdlY3I6Q29tcGxldGVMYXllclVwbG9hZCcsXG4gICAgICAgICAgJ2VjcjpQdXRJbWFnZScsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSk7XG4gICAgaGFuZGxlclJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnczM6R2V0T2JqZWN0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIGlmIChwcm9wcy5pbWFnZUFyY2ggJiYgcHJvcHMuY29weUltYWdlSW5kZXgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2VBcmNoIGFuZCBjb3B5SW1hZ2VJbmRleCBjYW5ub3QgYm90aCBiZSBzZXQnKTtcbiAgICB9XG4gICAgaWYgKCFwcm9wcy5jb3B5SW1hZ2VJbmRleCAmJiBwcm9wcy5hcmNoSW1hZ2VUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyY2hJbWFnZVRhZ3MgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIHdoZW4gY29weUltYWdlSW5kZXggaXMgdHJ1ZScpO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaW1hZ2VBcmNoICYmIHByb3BzLmltYWdlQXJjaC5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW1hZ2VBcmNoIG11c3QgY29udGFpbiBleGFjdGx5IDEgZWxlbWVudCwgZ290ICR7SlNPTi5zdHJpbmdpZnkocHJvcHMuaW1hZ2VBcmNoKX1gKTtcbiAgICB9XG4gICAgY29uc3QgaW1hZ2VBcmNoID0gcHJvcHMuaW1hZ2VBcmNoID8gcHJvcHMuaW1hZ2VBcmNoWzBdIDogJyc7XG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVJlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiB0aGlzLmhhbmRsZXIuZnVuY3Rpb25Bcm4sXG4gICAgICAvLyBUaGlzIGhhcyBiZWVuIGNvcHkvcGFzdGVkIGFuZCBpcyBhIHB1cmUgbGllLCBidXQgY2hhbmdpbmcgaXQgaXMgZ29pbmcgdG8gY2hhbmdlIHBlb3BsZSdzIGluZnJhISEgWChcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6Q0RLRUNSRGVwbG95bWVudCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFNyY0ltYWdlOiBwcm9wcy5zcmMudXJpLFxuICAgICAgICBTcmNDcmVkczogcHJvcHMuc3JjLmNyZWRzLFxuICAgICAgICBEZXN0SW1hZ2U6IHByb3BzLmRlc3QudXJpLFxuICAgICAgICBEZXN0Q3JlZHM6IHByb3BzLmRlc3QuY3JlZHMsXG4gICAgICAgIC4uLmltYWdlQXJjaCA/IHsgSW1hZ2VBcmNoOiBpbWFnZUFyY2ggfSA6IHt9LFxuICAgICAgICAuLi5wcm9wcy5jb3B5SW1hZ2VJbmRleCA/IHsgQ29weUltYWdlSW5kZXg6IHByb3BzLmNvcHlJbWFnZUluZGV4IH0gOiB7fSxcbiAgICAgICAgLi4ucHJvcHMuYXJjaEltYWdlVGFncyA/IHsgQXJjaEltYWdlVGFnczogSlNPTi5zdHJpbmdpZnkocHJvcHMuYXJjaEltYWdlVGFncykgfSA6IHt9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUHJpbmNpcGFsUG9saWN5UmVzdWx0IHtcbiAgICBjb25zdCBoYW5kbGVyUm9sZSA9IHRoaXMuaGFuZGxlci5yb2xlO1xuICAgIGlmICghaGFuZGxlclJvbGUpIHsgdGhyb3cgbmV3IEVycm9yKCdsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24gc2hvdWxkIGhhdmUgY3JlYXRlZCBhIFJvbGUnKTsgfVxuXG4gICAgcmV0dXJuIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclNpbmdsZXRvblV1aWQobWVtb3J5TGltaXQ/OiBudW1iZXIpIHtcbiAgICBsZXQgdXVpZCA9ICdiZDA3YzkzMC1lZGI5LTQxMTItYTIwZi0wM2YwOTZmNTM2NjYnO1xuXG4gICAgLy8gaWYgdXNlciBzcGVjaWZ5IGEgY3VzdG9tIG1lbW9yeSBsaW1pdCwgZGVmaW5lIGFub3RoZXIgc2luZ2xldG9uIGhhbmRsZXJcbiAgICAvLyB3aXRoIHRoaXMgY29uZmlndXJhdGlvbi4gb3RoZXJ3aXNlLCBpdCB3b24ndCBiZSBwb3NzaWJsZSB0byB1c2UgbXVsdGlwbGVcbiAgICAvLyBjb25maWd1cmF0aW9ucyBzaW5jZSB3ZSBoYXZlIGEgc2luZ2xldG9uLlxuICAgIGlmIChtZW1vcnlMaW1pdCkge1xuICAgICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChtZW1vcnlMaW1pdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5cXCd0IHVzZSB0b2tlbnMgd2hlbiBzcGVjaWZ5aW5nIFwibWVtb3J5TGltaXRcIiBzaW5jZSB3ZSB1c2UgaXQgdG8gaWRlbnRpZnkgdGhlIHNpbmdsZXRvbiBjdXN0b20gcmVzb3VyY2UgaGFuZGxlcicpO1xuICAgICAgfVxuXG4gICAgICB1dWlkICs9IGAtJHttZW1vcnlMaW1pdC50b1N0cmluZygpfU1pQmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHV1aWQ7XG4gIH1cbn1cbiJdfQ==
148
+ ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "4.1.3" };
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBb0g7QUFFcEgsdURBQXVEO0FBQ3ZELDJDQUF1QztBQXlIdkMsTUFBYSxlQUFlO0lBQzFCOzs7Ozs7T0FNRztJQUNILFlBQTJCLElBQVksRUFBUyxLQUFjO1FBQW5DLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQUksQ0FBQztJQUNuRSxJQUFXLEdBQUcsS0FBYSxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFUOUQsMENBVUM7OztBQUVELE1BQWEsYUFBYTtJQUd4Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBbUIsQ0FBUyxFQUFFLEdBQVksRUFBUyxLQUFjO1FBQWQsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFXLEdBQUcsS0FBYSxPQUFPLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFqQjFELHNDQWtCQzs7O0FBRUQsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFHMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx3QkFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUks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LEdBQUcsc0NBQXNDLENBQUM7UUFFbEQsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSw0Q0FBNEM7UUFDNUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUhBQW1ILENBQUMsQ0FBQztZQUN2SSxDQUFDO1lBRUQsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7QUF2R0gsc0NBd0dDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgYXdzX2VjMiBhcyBlYzIsIGF3c19pYW0gYXMgaWFtLCBhd3NfbGFtYmRhIGFzIGxhbWJkYSwgRHVyYXRpb24sIEN1c3RvbVJlc291cmNlLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgQWRkVG9QcmluY2lwYWxQb2xpY3lSZXN1bHQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWVGYW1pbHkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVDUkRlcGxveW1lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIG9mIHRoZSBkb2NrZXIgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBzcmM6IElJbWFnZU5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgZG9ja2VyIGltYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdDogSUltYWdlTmFtZTtcblxuICAvKipcbiAgICogVGhlIGltYWdlIGFyY2hpdGVjdHVyZSB0byBiZSBjb3BpZWQuXG4gICAqXG4gICAqIFRoZSAnYW1kNjQnIGFyY2hpdGVjdHVyZSB3aWxsIGJlIGNvcGllZCBieSBkZWZhdWx0LiBTcGVjaWZ5IHRoZVxuICAgKiBhcmNoaXRlY3R1cmUgb3IgYXJjaGl0ZWN0dXJlcyB0byBjb3B5IGhlcmUuXG4gICAqXG4gICAqIEl0IGlzIGN1cnJlbnRseSBub3QgcG9zc2libGUgdG8gY29weSBtb3JlIHRoYW4gb25lIGFyY2hpdGVjdHVyZVxuICAgKiBhdCBhIHRpbWU6IHRoZSBhcnJheSB5b3Ugc3BlY2lmeSBtdXN0IGNvbnRhaW4gZXhhY3RseSBvbmUgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ2FtZDY0J11cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXJjaD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNvcHkgYSBzb3VyY2UgZG9ja2VyIGltYWdlIGluZGV4IChtdWx0aS1hcmNoIG1hbmlmZXN0KSB0byB0aGUgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIFdoZW4gdHJ1ZSwgY29waWVzIHRoZSBpbWFnZSBpbmRleCBhbmQgYWxsIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlLXNwZWNpZmljXG4gICAqIGltYWdlcyBpbiBhIHNpbmdsZSBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IEZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb3B5SW1hZ2VJbmRleD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYXBwbHkgdG8gaW5kaXZpZHVhbCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgaW1hZ2VzIHdoZW5cbiAgICogY29weUltYWdlSW5kZXggaXMgdHJ1ZS5cbiAgICpcbiAgICogQ2FuIG9ubHkgYmUgc3BlY2lmaWVkIHdoZW4gY29weUltYWdlSW5kZXggaXMgdHJ1ZS4gTWFwcyBhcmNoaXRlY3R1cmUgbmFtZXMgdG9cbiAgICogdGhlaXIgcmVzcGVjdGl2ZSB0YWdzLiBUaGlzIG1ha2VzIGluZGl2aWR1YWwgYXJjaGl0ZWN0dXJlcyBkaXNjb3ZlcmFibGVcbiAgICogYnkgaHVtYW4tcmVhZGFibGUgdGFncyBpbiBhZGRpdGlvbiB0byB0aGUgaW1hZ2UgaW5kZXggdGFnLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgeyAnYXJtNjQnOiAnaW1hZ2UtYXJtNjQnLCAnYW1kNjQnOiAnaW1hZ2UtYW1kNjQnIH0uXG4gICAqL1xuICByZWFkb25seSBhcmNoSW1hZ2VUYWdzPzogeyBbYXJjaGl0ZWN0dXJlOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogUmV0cnkgY29uZmlndXJhdGlvbiB0byBhcHBseSB0byB3aGVuIGNvcHlpbmcgaW1hZ2VzIHN1Y2ggYXMgdGhlIG51bWJlciBvZiByZXRyeSBhdHRlbXRwcyxcbiAgICogdGhlIGJhc2UgYW1vdW50IG9mIGRlbGF5IChpbiBzZWNvbmRzKSBiZXR3ZWVuIGVhY2ggcmV0cnksIGFuZCB0aGUgbWF4IGFtb3VudCBvZiBkZWxheSAoaW4gc2Vjb25kcylcbiAgICogYmV0d2VlbiBlYWNoIHJldHJ5LlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgeyAnbnVtQXR0ZW1wdHMnOiAzLCAnYmFzZURlbGF5JzogMSwgJ21heERlbGF5JzogNSB9XG4gICAqL1xuICByZWFkb25seSByZXRyeUNvbmZpZ3M/OiB7IFtmaWVsZHM6IHN0cmluZ106IG51bWJlciB9O1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIG1lbW9yeSAoaW4gTWlCKSB0byBhbGxvY2F0ZSB0byB0aGUgQVdTIExhbWJkYSBmdW5jdGlvbiB3aGljaFxuICAgKiByZXBsaWNhdGVzIHRoZSBmaWxlcyBmcm9tIHRoZSBDREsgYnVja2V0IHRvIHRoZSBkZXN0aW5hdGlvbiBidWNrZXQuXG4gICAqXG4gICAqIElmIHlvdSBhcmUgZGVwbG95aW5nIGxhcmdlIGZpbGVzLCB5b3Ugd2lsbCBuZWVkIHRvIGluY3JlYXNlIHRoaXMgbnVtYmVyXG4gICAqIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDUxMlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGlvbiByb2xlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSByb2xlIGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIFZQQyBuZXR3b3JrIHRvIHBsYWNlIHRoZSBkZXBsb3ltZW50IGxhbWJkYSBoYW5kbGVyIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBXaGVyZSBpbiB0aGUgVlBDIHRvIHBsYWNlIHRoZSBkZXBsb3ltZW50IGxhbWJkYSBoYW5kbGVyLlxuICAgKiBPbmx5IHVzZWQgaWYgJ3ZwYycgaXMgc3VwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIFZwYyBkZWZhdWx0IHN0cmF0ZWd5IGlmIG5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIExhbWJkYSdzIG5ldHdvcmsgaW50ZXJmYWNlcy5cbiAgICpcbiAgICogT25seSB1c2VkIGlmICd2cGMnIGlzIHN1cHBsaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIHRoZSBmdW5jdGlvbiBpcyBwbGFjZWQgd2l0aGluIGEgVlBDIGFuZCBhIHNlY3VyaXR5IGdyb3VwIGlzXG4gICAqIG5vdCBzcGVjaWZpZWQsIGVpdGhlciBieSB0aGlzIG9yIHNlY3VyaXR5R3JvdXAgcHJvcCwgYSBkZWRpY2F0ZWQgc2VjdXJpdHlcbiAgICogZ3JvdXAgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuU2VjdXJpdHlHcm91cFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbWFnZU5hbWUge1xuICAvKipcbiAgICogIFRoZSB1cmkgb2YgdGhlIGRvY2tlciBpbWFnZS5cbiAgICpcbiAgICogIFRoZSB1cmkgc3BlYyBmb2xsb3dzIGh0dHBzOi8vZ2l0aHViLmNvbS9jb250YWluZXJzL3Nrb3Blb1xuICAgKi9cbiAgcmVhZG9ubHkgdXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyBvZiB0aGUgZG9ja2VyIGltYWdlLiBGb3JtYXQgYHVzZXI6cGFzc3dvcmRgIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBhcm5gIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBuYW1lYC5cbiAgICpcbiAgICogSWYgc3BlY2lmeWluZyBhbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCwgdGhlIGZvcm1hdCBvZiB0aGUgc2VjcmV0IHNob3VsZCBiZSBlaXRoZXIgcGxhaW4gdGV4dCAoYHVzZXI6cGFzc3dvcmRgKSBvclxuICAgKiBKU09OIChge1widXNlcm5hbWVcIjpcIjx1c2VybmFtZT5cIixcInBhc3N3b3JkXCI6XCI8cGFzc3dvcmQ+XCJ9YCkuXG4gICAqXG4gICAqIEZvciBtb3JlIGRldGFpbHMgb24gSlNPTiBmb3JtYXQsIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcml2YXRlLWF1dGguaHRtbFxuICAgKi9cbiAgY3JlZHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJJbWFnZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgLyoqXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGltYWdlLCBlLmcuIHJldHJpZXZlZCBmcm9tIGBEb2NrZXJJbWFnZUFzc2V0LmltYWdlVXJpYFxuICAgKiBAcGFyYW0gY3JlZHMgLSBUaGUgY3JlZGVudGlhbHMgb2YgdGhlIGRvY2tlciBpbWFnZS4gRm9ybWF0IGB1c2VyOnBhc3N3b3JkYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgYXJuYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgbmFtZWAuXG4gICAqICAgICBJZiBzcGVjaWZ5aW5nIGFuIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0LCB0aGUgZm9ybWF0IG9mIHRoZSBzZWNyZXQgc2hvdWxkIGJlIGVpdGhlciBwbGFpbiB0ZXh0IChgdXNlcjpwYXNzd29yZGApIG9yXG4gICAqICAgICBKU09OIChge1widXNlcm5hbWVcIjpcIjx1c2VybmFtZT5cIixcInBhc3N3b3JkXCI6XCI8cGFzc3dvcmQ+XCJ9YCkuXG4gICAqICAgICBGb3IgbW9yZSBkZXRhaWxzIG9uIEpTT04gZm9ybWF0LCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcHJpdmF0ZS1hdXRoLmh0bWxcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hbWU6IHN0cmluZywgcHVibGljIGNyZWRzPzogc3RyaW5nKSB7IH1cbiAgcHVibGljIGdldCB1cmkoKTogc3RyaW5nIHsgcmV0dXJuIGBkb2NrZXI6Ly8ke3RoaXMubmFtZX1gOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM0FyY2hpdmVOYW1lIGltcGxlbWVudHMgSUltYWdlTmFtZSB7XG4gIHByaXZhdGUgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcCAtIHRoZSBTMyBidWNrZXQgbmFtZSBhbmQgcGF0aCBvZiB0aGUgYXJjaGl2ZSAoYSBTMyBVUkkgd2l0aG91dCB0aGUgczM6Ly8pXG4gICAqIEBwYXJhbSByZWYgLSBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBuYW1lIHdpdGggYSBgOmAsIGUuZy4gYDpsYXRlc3RgXG4gICAqIEBwYXJhbSBjcmVkcyAtIFRoZSBjcmVkZW50aWFscyBvZiB0aGUgZG9ja2VyIGltYWdlLiBGb3JtYXQgYHVzZXI6cGFzc3dvcmRgIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBhcm5gIG9yIGBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBuYW1lYC5cbiAgICogICAgIElmIHNwZWNpZnlpbmcgYW4gQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQsIHRoZSBmb3JtYXQgb2YgdGhlIHNlY3JldCBzaG91bGQgYmUgZWl0aGVyIHBsYWluIHRleHQgKGB1c2VyOnBhc3N3b3JkYCkgb3JcbiAgICogICAgIEpTT04gKGB7XCJ1c2VybmFtZVwiOlwiPHVzZXJuYW1lPlwiLFwicGFzc3dvcmRcIjpcIjxwYXNzd29yZD5cIn1gKS5cbiAgICogICAgIEZvciBtb3JlIGRldGFpbHMgb24gSlNPTiBmb3JtYXQsIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcml2YXRlLWF1dGguaHRtbFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHA6IHN0cmluZywgcmVmPzogc3RyaW5nLCBwdWJsaWMgY3JlZHM/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBwO1xuICAgIGlmIChyZWYpIHtcbiAgICAgIHRoaXMubmFtZSArPSAnOicgKyByZWY7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdXJpKCk6IHN0cmluZyB7IHJldHVybiBgczM6Ly8ke3RoaXMubmFtZX1gOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBFQ1JEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBoYW5kbGVyOiBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVDUkRlcGxveW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgbWVtb3J5TGltaXQgPSBwcm9wcy5tZW1vcnlMaW1pdCA/PyA1MTI7XG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnQ3VzdG9tUmVzb3VyY2VIYW5kbGVyJywge1xuICAgICAgdXVpZDogdGhpcy5yZW5kZXJTaW5nbGV0b25VdWlkKG1lbW9yeUxpbWl0KSxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbGFtYmRhLWJpbicpKSxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgncHJvdmlkZWQuYWwyMDIzJywgUnVudGltZUZhbWlseS5PVEhFUiksIC8vIG5vdCB1c2luZyBSdW50aW1lLlBST1ZJREVEX0FMMjAyMyB0byBzdXBwb3J0IG9sZGVyIENESyB2ZXJzaW9ucyAoPCAyLjEwNS4wKVxuICAgICAgaGFuZGxlcjogJ2Jvb3RzdHJhcCcsXG4gICAgICBsYW1iZGFQdXJwb3NlOiAnQ3VzdG9tOjpDREtFQ1JEZXBsb3ltZW50JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIHJlc291cmNlIGhhbmRsZXIgZm9yIGNvcHlpbmcgRG9ja2VyIGltYWdlcyBiZXR3ZWVuIGRvY2tlciByZWdpc3RyaWVzLicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHJvbGU6IHByb3BzLnJvbGUsXG4gICAgICBtZW1vcnlTaXplOiBtZW1vcnlMaW1pdCxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMudnBjU3VibmV0cyxcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBwcm9wcy5zZWN1cml0eUdyb3VwcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZXJSb2xlID0gdGhpcy5oYW5kbGVyLnJvbGU7XG4gICAgaWYgKCFoYW5kbGVyUm9sZSkgeyB0aHJvdyBuZXcgRXJyb3IoJ2xhbWJkYS5TaW5nbGV0b25GdW5jdGlvbiBzaG91bGQgaGF2ZSBjcmVhdGVkIGEgUm9sZScpOyB9XG5cbiAgICBoYW5kbGVyUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjcjpHZXRBdXRob3JpemF0aW9uVG9rZW4nLFxuICAgICAgICAgICdlY3I6QmF0Y2hDaGVja0xheWVyQXZhaWxhYmlsaXR5JyxcbiAgICAgICAgICAnZWNyOkdldERvd25sb2FkVXJsRm9yTGF5ZXInLFxuICAgICAgICAgICdlY3I6R2V0UmVwb3NpdG9yeVBvbGljeScsXG4gICAgICAgICAgJ2VjcjpEZXNjcmliZVJlcG9zaXRvcmllcycsXG4gICAgICAgICAgJ2VjcjpMaXN0SW1hZ2VzJyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgICAnZWNyOkJhdGNoR2V0SW1hZ2UnLFxuICAgICAgICAgICdlY3I6TGlzdFRhZ3NGb3JSZXNvdXJjZScsXG4gICAgICAgICAgJ2VjcjpEZXNjcmliZUltYWdlU2NhbkZpbmRpbmdzJyxcbiAgICAgICAgICAnZWNyOkluaXRpYXRlTGF5ZXJVcGxvYWQnLFxuICAgICAgICAgICdlY3I6VXBsb2FkTGF5ZXJQYXJ0JyxcbiAgICAgICAgICAnZWNyOkNvbXBsZXRlTGF5ZXJVcGxvYWQnLFxuICAgICAgICAgICdlY3I6UHV0SW1hZ2UnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSkpO1xuICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ3MzOkdldE9iamVjdCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG5cbiAgICBpZiAocHJvcHMuaW1hZ2VBcmNoICYmIHByb3BzLmNvcHlJbWFnZUluZGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ltYWdlQXJjaCBhbmQgY29weUltYWdlSW5kZXggY2Fubm90IGJvdGggYmUgc2V0Jyk7XG4gICAgfVxuICAgIGlmICghcHJvcHMuY29weUltYWdlSW5kZXggJiYgcHJvcHMuYXJjaEltYWdlVGFncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhcmNoSW1hZ2VUYWdzIGNhbiBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIGNvcHlJbWFnZUluZGV4IGlzIHRydWUnKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmltYWdlQXJjaCAmJiBwcm9wcy5pbWFnZUFyY2gubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGltYWdlQXJjaCBtdXN0IGNvbnRhaW4gZXhhY3RseSAxIGVsZW1lbnQsIGdvdCAke0pTT04uc3RyaW5naWZ5KHByb3BzLmltYWdlQXJjaCl9YCk7XG4gICAgfVxuICAgIGNvbnN0IGltYWdlQXJjaCA9IHByb3BzLmltYWdlQXJjaCA/IHByb3BzLmltYWdlQXJjaFswXSA6ICcnO1xuXG4gICAgbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdDdXN0b21SZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5oYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgLy8gVGhpcyBoYXMgYmVlbiBjb3B5L3Bhc3RlZCBhbmQgaXMgYSBwdXJlIGxpZSwgYnV0IGNoYW5naW5nIGl0IGlzIGdvaW5nIHRvIGNoYW5nZSBwZW9wbGUncyBpbmZyYSEhIFgoXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNES0VDUkRlcGxveW1lbnQnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBTcmNJbWFnZTogcHJvcHMuc3JjLnVyaSxcbiAgICAgICAgU3JjQ3JlZHM6IHByb3BzLnNyYy5jcmVkcyxcbiAgICAgICAgRGVzdEltYWdlOiBwcm9wcy5kZXN0LnVyaSxcbiAgICAgICAgRGVzdENyZWRzOiBwcm9wcy5kZXN0LmNyZWRzLFxuICAgICAgICAuLi5pbWFnZUFyY2ggPyB7IEltYWdlQXJjaDogaW1hZ2VBcmNoIH0gOiB7fSxcbiAgICAgICAgLi4ucHJvcHMuY29weUltYWdlSW5kZXggPyB7IENvcHlJbWFnZUluZGV4OiBwcm9wcy5jb3B5SW1hZ2VJbmRleCB9IDoge30sXG4gICAgICAgIC4uLnByb3BzLmFyY2hJbWFnZVRhZ3MgPyB7IEFyY2hJbWFnZVRhZ3M6IEpTT04uc3RyaW5naWZ5KHByb3BzLmFyY2hJbWFnZVRhZ3MpIH0gOiB7fSxcbiAgICAgICAgLi4ucHJvcHMucmV0cnlDb25maWdzID8geyBSZXRyeUNvbmZpZ3M6IEpTT04uc3RyaW5naWZ5KHByb3BzLnJldHJ5Q29uZmlncykgfSA6IHt9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUHJpbmNpcGFsUG9saWN5UmVzdWx0IHtcbiAgICBjb25zdCBoYW5kbGVyUm9sZSA9IHRoaXMuaGFuZGxlci5yb2xlO1xuICAgIGlmICghaGFuZGxlclJvbGUpIHsgdGhyb3cgbmV3IEVycm9yKCdsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24gc2hvdWxkIGhhdmUgY3JlYXRlZCBhIFJvbGUnKTsgfVxuXG4gICAgcmV0dXJuIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclNpbmdsZXRvblV1aWQobWVtb3J5TGltaXQ/OiBudW1iZXIpIHtcbiAgICBsZXQgdXVpZCA9ICdiZDA3YzkzMC1lZGI5LTQxMTItYTIwZi0wM2YwOTZmNTM2NjYnO1xuXG4gICAgLy8gaWYgdXNlciBzcGVjaWZ5IGEgY3VzdG9tIG1lbW9yeSBsaW1pdCwgZGVmaW5lIGFub3RoZXIgc2luZ2xldG9uIGhhbmRsZXJcbiAgICAvLyB3aXRoIHRoaXMgY29uZmlndXJhdGlvbi4gb3RoZXJ3aXNlLCBpdCB3b24ndCBiZSBwb3NzaWJsZSB0byB1c2UgbXVsdGlwbGVcbiAgICAvLyBjb25maWd1cmF0aW9ucyBzaW5jZSB3ZSBoYXZlIGEgc2luZ2xldG9uLlxuICAgIGlmIChtZW1vcnlMaW1pdCkge1xuICAgICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChtZW1vcnlMaW1pdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5cXCd0IHVzZSB0b2tlbnMgd2hlbiBzcGVjaWZ5aW5nIFwibWVtb3J5TGltaXRcIiBzaW5jZSB3ZSB1c2UgaXQgdG8gaWRlbnRpZnkgdGhlIHNpbmdsZXRvbiBjdXN0b20gcmVzb3VyY2UgaGFuZGxlcicpO1xuICAgICAgfVxuXG4gICAgICB1dWlkICs9IGAtJHttZW1vcnlMaW1pdC50b1N0cmluZygpfU1pQmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHV1aWQ7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -61,10 +61,10 @@
61
61
  "jest": "^29",
62
62
  "jest-junit": "^16",
63
63
  "jsii": "5.9.x",
64
- "jsii-diff": "^1.126.0",
64
+ "jsii-diff": "^1.127.0",
65
65
  "jsii-docgen": "^10.5.0",
66
- "jsii-pacmak": "^1.126.0",
67
- "jsii-rosetta": "^5.9.32",
66
+ "jsii-pacmak": "^1.127.0",
67
+ "jsii-rosetta": "^5.9.37",
68
68
  "projen": "^0.98.28",
69
69
  "ts-jest": "^29",
70
70
  "ts-node": "^10.9.2",
@@ -82,7 +82,7 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "version": "4.1.1",
85
+ "version": "4.1.3",
86
86
  "jest": {
87
87
  "coverageProvider": "v8",
88
88
  "testMatch": [