Socket
Socket
Sign inDemoInstall

@aws-cdk/aws-ecr-assets

Package Overview
Dependencies
Maintainers
5
Versions
249
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-ecr-assets - npm Package Compare versions

Comparing version 1.157.0 to 1.158.0

182

.jsii.tabl.json

@@ -63,3 +63,3 @@ {

},
"fqnsFingerprint": "9435bfbbe41675b274c1ddda9986e9350661f3ed785942be4d6a1ee2c80a9045"
"fqnsFingerprint": "a3bf2cc4a1cff07b93f88152cab8b8542f4d315510815f7a5a519304146b909e"
},

@@ -126,3 +126,3 @@ "eb973f070b0692c2a17735a9c0004bfbd480874699a6621169a0a7b1fbaad328": {

},
"fqnsFingerprint": "c12552360b2b8f27a4baac03a10c16ff46b8a95bc1e87db0415cda693e5ceda5"
"fqnsFingerprint": "deb5efb6806128a9a0b9069e08a2792858128e3b669248b173741146fdc2b58c"
},

@@ -187,3 +187,3 @@ "fc7d692127ac6de2ff5a3462cb0051ff1e15a2fcdb5d8af78ddd8972f5211553": {

},
"fqnsFingerprint": "9435bfbbe41675b274c1ddda9986e9350661f3ed785942be4d6a1ee2c80a9045"
"fqnsFingerprint": "a3bf2cc4a1cff07b93f88152cab8b8542f4d315510815f7a5a519304146b909e"
},

@@ -250,4 +250,66 @@ "7915130d5c27abf686f0bf131b6e7d85e9f2ba9502550757d21520c3a1617c01": {

},
"fqnsFingerprint": "2f4ba87161ae859497699312cb1764e5dc7c467499154afdc03cbc4a7dc20d02"
"fqnsFingerprint": "451b4f92025b250a7979ae6fa7a6f0089091ebf32367bae13447930877578672"
},
"b92b0e1cda86633918df90ecd87660e9ec5e910de58ecbbdb55928a4d4129dfb": {
"translations": {
"python": {
"source": "from aws_cdk.aws_ecr_assets import DockerImageAsset, Platform\n\n\nasset = DockerImageAsset(self, \"MyBuildImage\",\n directory=path.join(__dirname, \"my-image\"),\n platform=Platform.LINUX_ARM64\n)",
"version": "2"
},
"csharp": {
"source": "using Amazon.CDK.AWS.Ecr.Assets;\n\n\nDockerImageAsset asset = new DockerImageAsset(this, \"MyBuildImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"my-image\"),\n Platform = Platform.LINUX_ARM64\n});",
"version": "1"
},
"java": {
"source": "import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\nimport software.amazon.awscdk.services.ecr.assets.Platform;\n\n\nDockerImageAsset asset = DockerImageAsset.Builder.create(this, \"MyBuildImage\")\n .directory(join(__dirname, \"my-image\"))\n .platform(Platform.LINUX_ARM64)\n .build();",
"version": "1"
},
"go": {
"source": "import \"github.com/aws-samples/dummy/awscdkawsecrassets\"\n\n\nasset := awscdkawsecrassets.NewDockerImageAsset(this, jsii.String(\"MyBuildImage\"), &dockerImageAssetProps{\n\tdirectory: path.join(__dirname, jsii.String(\"my-image\")),\n\tplatform: *awscdkawsecrassets.Platform_LINUX_ARM64(),\n})",
"version": "1"
},
"$": {
"source": "import { DockerImageAsset, Platform } from '@aws-cdk/aws-ecr-assets';\n\nconst asset = new DockerImageAsset(this, 'MyBuildImage', {\n directory: path.join(__dirname, 'my-image'),\n platform: Platform.LINUX_ARM64,\n})",
"version": "0"
}
},
"location": {
"api": {
"api": "moduleReadme",
"moduleFqn": "@aws-cdk/aws-ecr-assets"
},
"field": {
"field": "markdown",
"line": 98
}
},
"didCompile": true,
"fqnsReferenced": [
"@aws-cdk/aws-ecr-assets.DockerImageAsset",
"@aws-cdk/aws-ecr-assets.DockerImageAssetProps",
"@aws-cdk/aws-ecr-assets.Platform",
"@aws-cdk/aws-ecr-assets.Platform#LINUX_ARM64",
"constructs.Construct"
],
"fullSource": "// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset, Platform } from '@aws-cdk/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Stack } from '@aws-cdk/core';\nimport { Construct } from 'constructs';\nimport * as path from 'path';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst asset = new DockerImageAsset(this, 'MyBuildImage', {\n directory: path.join(__dirname, 'my-image'),\n platform: Platform.LINUX_ARM64,\n})\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
"syntaxKindCounter": {
"10": 3,
"75": 11,
"104": 1,
"193": 1,
"194": 2,
"196": 1,
"197": 1,
"225": 1,
"242": 1,
"243": 1,
"254": 1,
"255": 1,
"257": 1,
"258": 2,
"281": 2,
"290": 1
},
"fqnsFingerprint": "dfc031506b110d2844b2f1ba151c56176ed266418b073d28bd7c55c8a21fd01f"
},
"9ced306af8958edcd7adfeba8cbbee89c70ba425ccd84802e53b5aa9b53a95df": {

@@ -283,3 +345,3 @@ "translations": {

"field": "markdown",
"line": 100
"line": 112
}

@@ -310,3 +372,3 @@ },

},
"fqnsFingerprint": "7d278727956208639ad9443f3d73707b5ed74f82d00d40ae3eae47df9a18ee64"
"fqnsFingerprint": "ce8bb6d06539af6c9bf2c48c0d27f0266fcc1b200d8665efdb879f8de38da62f"
},

@@ -372,3 +434,3 @@ "dcc64c89b8e57087a9bd346c425e87e9203b550e13011b17bf02da474fc219da": {

},
"fqnsFingerprint": "2f4ba87161ae859497699312cb1764e5dc7c467499154afdc03cbc4a7dc20d02"
"fqnsFingerprint": "451b4f92025b250a7979ae6fa7a6f0089091ebf32367bae13447930877578672"
},

@@ -434,24 +496,24 @@ "2fd2d78776ebdd00d7b8d9a0ae95a1ffdfa1c272fb7ff8b900adcbdfdf82aab6": {

},
"fqnsFingerprint": "c12552360b2b8f27a4baac03a10c16ff46b8a95bc1e87db0415cda693e5ceda5"
"fqnsFingerprint": "deb5efb6806128a9a0b9069e08a2792858128e3b669248b173741146fdc2b58c"
},
"169a50a9b32b2ad865e04c0020e83e71c4ce288db7d5133073c1b5fe5c23f53c": {
"2273f3317dd8cb98c750fa5dc596ffcd81e417037a32bbaf35746e190b2964c7": {
"translations": {
"python": {
"source": "# The code below shows an example of how to instantiate this type.\n# The values are placeholders you should change.\nimport aws_cdk.assets as assets\nimport aws_cdk.aws_ecr_assets as ecr_assets\nimport aws_cdk.core as cdk\n\n# network_mode: ecr_assets.NetworkMode\n\ndocker_image_asset_options = ecr_assets.DockerImageAssetOptions(\n build_args={\n \"build_args_key\": \"buildArgs\"\n },\n exclude=[\"exclude\"],\n extra_hash=\"extraHash\",\n file=\"file\",\n follow=assets.FollowMode.NEVER,\n follow_symlinks=cdk.SymlinkFollowMode.NEVER,\n ignore_mode=cdk.IgnoreMode.GLOB,\n invalidation=ecr_assets.DockerImageAssetInvalidationOptions(\n build_args=False,\n extra_hash=False,\n file=False,\n network_mode=False,\n repository_name=False,\n target=False\n ),\n network_mode=network_mode,\n repository_name=\"repositoryName\",\n target=\"target\"\n)",
"source": "# The code below shows an example of how to instantiate this type.\n# The values are placeholders you should change.\nimport aws_cdk.assets as assets\nimport aws_cdk.aws_ecr_assets as ecr_assets\nimport aws_cdk.core as cdk\n\n# network_mode: ecr_assets.NetworkMode\n# platform: ecr_assets.Platform\n\ndocker_image_asset_options = ecr_assets.DockerImageAssetOptions(\n build_args={\n \"build_args_key\": \"buildArgs\"\n },\n exclude=[\"exclude\"],\n extra_hash=\"extraHash\",\n file=\"file\",\n follow=assets.FollowMode.NEVER,\n follow_symlinks=cdk.SymlinkFollowMode.NEVER,\n ignore_mode=cdk.IgnoreMode.GLOB,\n invalidation=ecr_assets.DockerImageAssetInvalidationOptions(\n build_args=False,\n extra_hash=False,\n file=False,\n network_mode=False,\n platform=False,\n repository_name=False,\n target=False\n ),\n network_mode=network_mode,\n platform=platform,\n repository_name=\"repositoryName\",\n target=\"target\"\n)",
"version": "2"
},
"csharp": {
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nusing Amazon.CDK.Assets;\nusing Amazon.CDK.AWS.Ecr.Assets;\nusing Amazon.CDK;\n\nNetworkMode networkMode;\nDockerImageAssetOptions dockerImageAssetOptions = new DockerImageAssetOptions {\n BuildArgs = new Dictionary<string, string> {\n { \"buildArgsKey\", \"buildArgs\" }\n },\n Exclude = new [] { \"exclude\" },\n ExtraHash = \"extraHash\",\n File = \"file\",\n Follow = FollowMode.NEVER,\n FollowSymlinks = SymlinkFollowMode.NEVER,\n IgnoreMode = IgnoreMode.GLOB,\n Invalidation = new DockerImageAssetInvalidationOptions {\n BuildArgs = false,\n ExtraHash = false,\n File = false,\n NetworkMode = false,\n RepositoryName = false,\n Target = false\n },\n NetworkMode = networkMode,\n RepositoryName = \"repositoryName\",\n Target = \"target\"\n};",
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nusing Amazon.CDK.Assets;\nusing Amazon.CDK.AWS.Ecr.Assets;\nusing Amazon.CDK;\n\nNetworkMode networkMode;\nPlatform platform;\nDockerImageAssetOptions dockerImageAssetOptions = new DockerImageAssetOptions {\n BuildArgs = new Dictionary<string, string> {\n { \"buildArgsKey\", \"buildArgs\" }\n },\n Exclude = new [] { \"exclude\" },\n ExtraHash = \"extraHash\",\n File = \"file\",\n Follow = FollowMode.NEVER,\n FollowSymlinks = SymlinkFollowMode.NEVER,\n IgnoreMode = IgnoreMode.GLOB,\n Invalidation = new DockerImageAssetInvalidationOptions {\n BuildArgs = false,\n ExtraHash = false,\n File = false,\n NetworkMode = false,\n Platform = false,\n RepositoryName = false,\n Target = false\n },\n NetworkMode = networkMode,\n Platform = platform,\n RepositoryName = \"repositoryName\",\n Target = \"target\"\n};",
"version": "1"
},
"java": {
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport software.amazon.awscdk.assets.*;\nimport software.amazon.awscdk.services.ecr.assets.*;\nimport software.amazon.awscdk.core.*;\n\nNetworkMode networkMode;\n\nDockerImageAssetOptions dockerImageAssetOptions = DockerImageAssetOptions.builder()\n .buildArgs(Map.of(\n \"buildArgsKey\", \"buildArgs\"))\n .exclude(List.of(\"exclude\"))\n .extraHash(\"extraHash\")\n .file(\"file\")\n .follow(FollowMode.NEVER)\n .followSymlinks(SymlinkFollowMode.NEVER)\n .ignoreMode(IgnoreMode.GLOB)\n .invalidation(DockerImageAssetInvalidationOptions.builder()\n .buildArgs(false)\n .extraHash(false)\n .file(false)\n .networkMode(false)\n .repositoryName(false)\n .target(false)\n .build())\n .networkMode(networkMode)\n .repositoryName(\"repositoryName\")\n .target(\"target\")\n .build();",
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport software.amazon.awscdk.assets.*;\nimport software.amazon.awscdk.services.ecr.assets.*;\nimport software.amazon.awscdk.core.*;\n\nNetworkMode networkMode;\nPlatform platform;\n\nDockerImageAssetOptions dockerImageAssetOptions = DockerImageAssetOptions.builder()\n .buildArgs(Map.of(\n \"buildArgsKey\", \"buildArgs\"))\n .exclude(List.of(\"exclude\"))\n .extraHash(\"extraHash\")\n .file(\"file\")\n .follow(FollowMode.NEVER)\n .followSymlinks(SymlinkFollowMode.NEVER)\n .ignoreMode(IgnoreMode.GLOB)\n .invalidation(DockerImageAssetInvalidationOptions.builder()\n .buildArgs(false)\n .extraHash(false)\n .file(false)\n .networkMode(false)\n .platform(false)\n .repositoryName(false)\n .target(false)\n .build())\n .networkMode(networkMode)\n .platform(platform)\n .repositoryName(\"repositoryName\")\n .target(\"target\")\n .build();",
"version": "1"
},
"go": {
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport assets \"github.com/aws-samples/dummy/awscdkassets\"\nimport ecr_assets \"github.com/aws-samples/dummy/awscdkawsecrassets\"\nimport cdk \"github.com/aws-samples/dummy/awscdkcore\"\n\nvar networkMode networkMode\n\ndockerImageAssetOptions := &dockerImageAssetOptions{\n\tbuildArgs: map[string]*string{\n\t\t\"buildArgsKey\": jsii.String(\"buildArgs\"),\n\t},\n\texclude: []*string{\n\t\tjsii.String(\"exclude\"),\n\t},\n\textraHash: jsii.String(\"extraHash\"),\n\tfile: jsii.String(\"file\"),\n\tfollow: assets.followMode_NEVER,\n\tfollowSymlinks: cdk.symlinkFollowMode_NEVER,\n\tignoreMode: cdk.ignoreMode_GLOB,\n\tinvalidation: &dockerImageAssetInvalidationOptions{\n\t\tbuildArgs: jsii.Boolean(false),\n\t\textraHash: jsii.Boolean(false),\n\t\tfile: jsii.Boolean(false),\n\t\tnetworkMode: jsii.Boolean(false),\n\t\trepositoryName: jsii.Boolean(false),\n\t\ttarget: jsii.Boolean(false),\n\t},\n\tnetworkMode: networkMode,\n\trepositoryName: jsii.String(\"repositoryName\"),\n\ttarget: jsii.String(\"target\"),\n}",
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport assets \"github.com/aws-samples/dummy/awscdkassets\"\nimport ecr_assets \"github.com/aws-samples/dummy/awscdkawsecrassets\"\nimport cdk \"github.com/aws-samples/dummy/awscdkcore\"\n\nvar networkMode networkMode\nvar platform platform\n\ndockerImageAssetOptions := &dockerImageAssetOptions{\n\tbuildArgs: map[string]*string{\n\t\t\"buildArgsKey\": jsii.String(\"buildArgs\"),\n\t},\n\texclude: []*string{\n\t\tjsii.String(\"exclude\"),\n\t},\n\textraHash: jsii.String(\"extraHash\"),\n\tfile: jsii.String(\"file\"),\n\tfollow: assets.followMode_NEVER,\n\tfollowSymlinks: cdk.symlinkFollowMode_NEVER,\n\tignoreMode: cdk.ignoreMode_GLOB,\n\tinvalidation: &dockerImageAssetInvalidationOptions{\n\t\tbuildArgs: jsii.Boolean(false),\n\t\textraHash: jsii.Boolean(false),\n\t\tfile: jsii.Boolean(false),\n\t\tnetworkMode: jsii.Boolean(false),\n\t\tplatform: jsii.Boolean(false),\n\t\trepositoryName: jsii.Boolean(false),\n\t\ttarget: jsii.Boolean(false),\n\t},\n\tnetworkMode: networkMode,\n\tplatform: platform,\n\trepositoryName: jsii.String(\"repositoryName\"),\n\ttarget: jsii.String(\"target\"),\n}",
"version": "1"
},
"$": {
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as assets from '@aws-cdk/assets';\nimport * as ecr_assets from '@aws-cdk/aws-ecr-assets';\nimport * as cdk from '@aws-cdk/core';\n\ndeclare const networkMode: ecr_assets.NetworkMode;\nconst dockerImageAssetOptions: ecr_assets.DockerImageAssetOptions = {\n buildArgs: {\n buildArgsKey: 'buildArgs',\n },\n exclude: ['exclude'],\n extraHash: 'extraHash',\n file: 'file',\n follow: assets.FollowMode.NEVER,\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n invalidation: {\n buildArgs: false,\n extraHash: false,\n file: false,\n networkMode: false,\n repositoryName: false,\n target: false,\n },\n networkMode: networkMode,\n repositoryName: 'repositoryName',\n target: 'target',\n};",
"source": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as assets from '@aws-cdk/assets';\nimport * as ecr_assets from '@aws-cdk/aws-ecr-assets';\nimport * as cdk from '@aws-cdk/core';\n\ndeclare const networkMode: ecr_assets.NetworkMode;\ndeclare const platform: ecr_assets.Platform;\nconst dockerImageAssetOptions: ecr_assets.DockerImageAssetOptions = {\n buildArgs: {\n buildArgsKey: 'buildArgs',\n },\n exclude: ['exclude'],\n extraHash: 'extraHash',\n file: 'file',\n follow: assets.FollowMode.NEVER,\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n invalidation: {\n buildArgs: false,\n extraHash: false,\n file: false,\n networkMode: false,\n platform: false,\n repositoryName: false,\n target: false,\n },\n networkMode: networkMode,\n platform: platform,\n repositoryName: 'repositoryName',\n target: 'target',\n};",
"version": "0"

@@ -476,2 +538,3 @@ }

"@aws-cdk/aws-ecr-assets.NetworkMode",
"@aws-cdk/aws-ecr-assets.Platform",
"@aws-cdk/core.IgnoreMode",

@@ -482,23 +545,23 @@ "@aws-cdk/core.IgnoreMode#GLOB",

],
"fullSource": "// Hoisted imports begin after !show marker below\n/// !show\n// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as assets from '@aws-cdk/assets';\nimport * as ecr_assets from '@aws-cdk/aws-ecr-assets';\nimport * as cdk from '@aws-cdk/core';\n\ndeclare const networkMode: ecr_assets.NetworkMode;\n/// !hide\n// Hoisted imports ended before !hide marker above\nimport { Construct } from \"@aws-cdk/core\";\nclass MyConstruct extends Construct {\nconstructor(scope: Construct, id: string) {\nsuper(scope, id);\n// Code snippet begins after !show marker below\n/// !show\n\nconst dockerImageAssetOptions: ecr_assets.DockerImageAssetOptions = {\n buildArgs: {\n buildArgsKey: 'buildArgs',\n },\n exclude: ['exclude'],\n extraHash: 'extraHash',\n file: 'file',\n follow: assets.FollowMode.NEVER,\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n invalidation: {\n buildArgs: false,\n extraHash: false,\n file: false,\n networkMode: false,\n repositoryName: false,\n target: false,\n },\n networkMode: networkMode,\n repositoryName: 'repositoryName',\n target: 'target',\n};\n/// !hide\n// Code snippet ended before !hide marker above\n} }",
"fullSource": "// Hoisted imports begin after !show marker below\n/// !show\n// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as assets from '@aws-cdk/assets';\nimport * as ecr_assets from '@aws-cdk/aws-ecr-assets';\nimport * as cdk from '@aws-cdk/core';\n\ndeclare const networkMode: ecr_assets.NetworkMode;\ndeclare const platform: ecr_assets.Platform;\n/// !hide\n// Hoisted imports ended before !hide marker above\nimport { Construct } from \"@aws-cdk/core\";\nclass MyConstruct extends Construct {\nconstructor(scope: Construct, id: string) {\nsuper(scope, id);\n// Code snippet begins after !show marker below\n/// !show\n\nconst dockerImageAssetOptions: ecr_assets.DockerImageAssetOptions = {\n buildArgs: {\n buildArgsKey: 'buildArgs',\n },\n exclude: ['exclude'],\n extraHash: 'extraHash',\n file: 'file',\n follow: assets.FollowMode.NEVER,\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n invalidation: {\n buildArgs: false,\n extraHash: false,\n file: false,\n networkMode: false,\n platform: false,\n repositoryName: false,\n target: false,\n },\n networkMode: networkMode,\n platform: platform,\n repositoryName: 'repositoryName',\n target: 'target',\n};\n/// !hide\n// Code snippet ended before !hide marker above\n} }",
"syntaxKindCounter": {
"10": 9,
"75": 37,
"91": 6,
"130": 1,
"153": 2,
"169": 2,
"75": 43,
"91": 7,
"130": 2,
"153": 3,
"169": 3,
"192": 1,
"193": 3,
"194": 6,
"225": 2,
"242": 2,
"243": 2,
"225": 3,
"242": 3,
"243": 3,
"254": 3,
"255": 3,
"256": 3,
"281": 18,
"281": 20,
"290": 1
},
"fqnsFingerprint": "312b0c66f688a6111a58e3159730c4f987401c2c7af440dc4124e2d6aba97c09"
"fqnsFingerprint": "92726999214f7858b2f7ecb2dedd8b383540fd0a36e0c8fb85606a07958b8eb9"
},

@@ -564,3 +627,3 @@ "e208cb002aadfae048e7557700fcf665a1127aa8ed5e58526ddb16bde602d229": {

},
"fqnsFingerprint": "c12552360b2b8f27a4baac03a10c16ff46b8a95bc1e87db0415cda693e5ceda5"
"fqnsFingerprint": "deb5efb6806128a9a0b9069e08a2792858128e3b669248b173741146fdc2b58c"
},

@@ -626,4 +689,65 @@ "f894aeba36952865c0a6e64768b511be390a1c9071aa37a8e0f5a26155cbdcbb": {

},
"fqnsFingerprint": "2f4ba87161ae859497699312cb1764e5dc7c467499154afdc03cbc4a7dc20d02"
"fqnsFingerprint": "451b4f92025b250a7979ae6fa7a6f0089091ebf32367bae13447930877578672"
},
"9f8c6e26a297d7cf029d4948206aeee7c77f42d1666bdbf46b89f48283842283": {
"translations": {
"python": {
"source": "from aws_cdk.aws_ecr_assets import DockerImageAsset, Platform\n\n\nasset = DockerImageAsset(self, \"MyBuildImage\",\n directory=path.join(__dirname, \"my-image\"),\n platform=Platform.LINUX_ARM64\n)",
"version": "2"
},
"csharp": {
"source": "using Amazon.CDK.AWS.Ecr.Assets;\n\n\nDockerImageAsset asset = new DockerImageAsset(this, \"MyBuildImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"my-image\"),\n Platform = Platform.LINUX_ARM64\n});",
"version": "1"
},
"java": {
"source": "import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\nimport software.amazon.awscdk.services.ecr.assets.Platform;\n\n\nDockerImageAsset asset = DockerImageAsset.Builder.create(this, \"MyBuildImage\")\n .directory(join(__dirname, \"my-image\"))\n .platform(Platform.LINUX_ARM64)\n .build();",
"version": "1"
},
"go": {
"source": "import \"github.com/aws-samples/dummy/awscdkawsecrassets\"\n\n\nasset := awscdkawsecrassets.NewDockerImageAsset(this, jsii.String(\"MyBuildImage\"), &dockerImageAssetProps{\n\tdirectory: path.join(__dirname, jsii.String(\"my-image\")),\n\tplatform: *awscdkawsecrassets.Platform_LINUX_ARM64(),\n})",
"version": "1"
},
"$": {
"source": "import { DockerImageAsset, Platform } from '@aws-cdk/aws-ecr-assets';\n\nconst asset = new DockerImageAsset(this, 'MyBuildImage', {\n directory: path.join(__dirname, 'my-image'),\n platform: Platform.LINUX_ARM64,\n})",
"version": "0"
}
},
"location": {
"api": {
"api": "type",
"fqn": "@aws-cdk/aws-ecr-assets.Platform"
},
"field": {
"field": "example"
}
},
"didCompile": true,
"fqnsReferenced": [
"@aws-cdk/aws-ecr-assets.DockerImageAsset",
"@aws-cdk/aws-ecr-assets.DockerImageAssetProps",
"@aws-cdk/aws-ecr-assets.Platform",
"@aws-cdk/aws-ecr-assets.Platform#LINUX_ARM64",
"constructs.Construct"
],
"fullSource": "// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset, Platform } from '@aws-cdk/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Stack } from '@aws-cdk/core';\nimport { Construct } from 'constructs';\nimport * as path from 'path';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst asset = new DockerImageAsset(this, 'MyBuildImage', {\n directory: path.join(__dirname, 'my-image'),\n platform: Platform.LINUX_ARM64,\n})\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
"syntaxKindCounter": {
"10": 3,
"75": 11,
"104": 1,
"193": 1,
"194": 2,
"196": 1,
"197": 1,
"225": 1,
"242": 1,
"243": 1,
"254": 1,
"255": 1,
"257": 1,
"258": 2,
"281": 2,
"290": 1
},
"fqnsFingerprint": "dfc031506b110d2844b2f1ba151c56176ed266418b073d28bd7c55c8a21fd01f"
},
"31b1370e43cb6e1b22494565d15f5551500c72166e79160b649f18e3b5240bdc": {

@@ -684,3 +808,3 @@ "translations": {

},
"fqnsFingerprint": "7d278727956208639ad9443f3d73707b5ed74f82d00d40ae3eae47df9a18ee64"
"fqnsFingerprint": "ce8bb6d06539af6c9bf2c48c0d27f0266fcc1b200d8665efdb879f8de38da62f"
},

@@ -742,5 +866,5 @@ "c8b097e26b19ad3ca6fd16f8bb4b4face125820051f5945715ae1ee0997e6d82": {

},
"fqnsFingerprint": "7d278727956208639ad9443f3d73707b5ed74f82d00d40ae3eae47df9a18ee64"
"fqnsFingerprint": "ce8bb6d06539af6c9bf2c48c0d27f0266fcc1b200d8665efdb879f8de38da62f"
}
}
}
function _aws_cdk_aws_ecr_assets_NetworkMode(p) {
}
function _aws_cdk_aws_ecr_assets_Platform(p) {
}
function _aws_cdk_aws_ecr_assets_DockerImageAssetInvalidationOptions(p) {

@@ -14,2 +16,4 @@ }

_aws_cdk_aws_ecr_assets_NetworkMode(p.networkMode);
if (!visitedObjects.has(p.platform))
_aws_cdk_aws_ecr_assets_Platform(p.platform);
if ("repositoryName" in p)

@@ -33,2 +37,4 @@ print("@aws-cdk/aws-ecr-assets.DockerImageAssetOptions#repositoryName", "to control the location of docker image assets, please override\n`Stack.addDockerImageAsset`. this feature will be removed in future\nreleases.");

_aws_cdk_aws_ecr_assets_NetworkMode(p.networkMode);
if (!visitedObjects.has(p.platform))
_aws_cdk_aws_ecr_assets_Platform(p.platform);
if ("repositoryName" in p)

@@ -85,2 +91,2 @@ print("@aws-cdk/aws-ecr-assets.DockerImageAssetOptions#repositoryName", "to control the location of docker image assets, please override\n`Stack.addDockerImageAsset`. this feature will be removed in future\nreleases.");

}
module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_ecr_assets_NetworkMode, _aws_cdk_aws_ecr_assets_DockerImageAssetInvalidationOptions, _aws_cdk_aws_ecr_assets_DockerImageAssetOptions, _aws_cdk_aws_ecr_assets_DockerImageAssetProps, _aws_cdk_aws_ecr_assets_DockerImageAsset, _aws_cdk_aws_ecr_assets_TarballImageAssetProps, _aws_cdk_aws_ecr_assets_TarballImageAsset };
module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_ecr_assets_NetworkMode, _aws_cdk_aws_ecr_assets_Platform, _aws_cdk_aws_ecr_assets_DockerImageAssetInvalidationOptions, _aws_cdk_aws_ecr_assets_DockerImageAssetOptions, _aws_cdk_aws_ecr_assets_DockerImageAssetProps, _aws_cdk_aws_ecr_assets_DockerImageAsset, _aws_cdk_aws_ecr_assets_TarballImageAssetProps, _aws_cdk_aws_ecr_assets_TarballImageAsset };

@@ -42,2 +42,27 @@ import * as ecr from '@aws-cdk/aws-ecr';

/**
* platform supported by docker
*/
export declare class Platform {
readonly platform: string;
/**
* Build for linux/amd64
*/
static readonly LINUX_AMD64: Platform;
/**
* Build for linux/arm64
*/
static readonly LINUX_ARM64: Platform;
/**
* Used to specify a custom platform
* Use this if the platform name is not yet supported by the CDK.
*
* @param platform The platform to use for docker build
*/
static custom(platform: string): Platform;
/**
* @param platform The platform to use for docker build
*/
private constructor();
}
/**
* Options to control invalidation of `DockerImageAsset` asset hashes

@@ -82,2 +107,8 @@ */

readonly networkMode?: boolean;
/**
* Use `platform` while calculating the asset hash
*
* @default true
*/
readonly platform?: boolean;
}

@@ -132,2 +163,8 @@ /**

/**
* Platform to build for. _Requires Docker Buildx_.
*
* @default - no platform specified (the current machine architecture will be used)
*/
readonly platform?: Platform;
/**
* Options to control which parameters are used to invalidate the asset hash.

@@ -134,0 +171,0 @@ *

69

lib/image-asset.js
"use strict";
var _a, _b;
var _a, _b, _c;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerImageAsset = exports.NetworkMode = void 0;
exports.DockerImageAsset = exports.Platform = exports.NetworkMode = void 0;
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");

@@ -48,3 +48,3 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");

_a = JSII_RTTI_SYMBOL_1;
NetworkMode[_a] = { fqn: "@aws-cdk/aws-ecr-assets.NetworkMode", version: "1.157.0" };
NetworkMode[_a] = { fqn: "@aws-cdk/aws-ecr-assets.NetworkMode", version: "1.158.0" };
/**

@@ -63,2 +63,33 @@ * The default networking mode if omitted, create a network stack on the default Docker bridge

/**
* platform supported by docker
*/
class Platform {
/**
* @param platform The platform to use for docker build
*/
constructor(platform) {
this.platform = platform;
}
/**
* Used to specify a custom platform
* Use this if the platform name is not yet supported by the CDK.
*
* @param platform The platform to use for docker build
*/
static custom(platform) {
return new Platform(platform);
}
}
exports.Platform = Platform;
_b = JSII_RTTI_SYMBOL_1;
Platform[_b] = { fqn: "@aws-cdk/aws-ecr-assets.Platform", version: "1.158.0" };
/**
* Build for linux/amd64
*/
Platform.LINUX_AMD64 = new Platform('linux/amd64');
/**
* Build for linux/arm64
*/
Platform.LINUX_ARM64 = new Platform('linux/arm64');
/**
* An asset that represents a Docker image.

@@ -70,3 +101,3 @@ *

constructor(scope, id, props) {
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
super(scope, id);

@@ -97,3 +128,3 @@ try {

? core_1.IgnoreMode.DOCKER : core_1.IgnoreMode.GLOB;
let ignoreMode = (_c = props.ignoreMode) !== null && _c !== void 0 ? _c : defaultIgnoreMode;
let ignoreMode = (_d = props.ignoreMode) !== null && _d !== void 0 ? _d : defaultIgnoreMode;
let exclude = props.exclude || [];

@@ -113,3 +144,3 @@ const ignore = path.join(dir, '.dockerignore');

// Ensure the cdk.out folder is not included to avoid infinite loops.
const cdkout = (_e = (_d = core_1.Stage.of(this)) === null || _d === void 0 ? void 0 : _d.outdir) !== null && _e !== void 0 ? _e : 'cdk.out';
const cdkout = (_f = (_e = core_1.Stage.of(this)) === null || _e === void 0 ? void 0 : _e.outdir) !== null && _f !== void 0 ? _f : 'cdk.out';
exclude.push(cdkout);

@@ -121,20 +152,23 @@ if (props.repositoryName) {

const extraHash = {};
if (((_f = props.invalidation) === null || _f === void 0 ? void 0 : _f.extraHash) !== false && props.extraHash) {
if (((_g = props.invalidation) === null || _g === void 0 ? void 0 : _g.extraHash) !== false && props.extraHash) {
extraHash.user = props.extraHash;
}
if (((_g = props.invalidation) === null || _g === void 0 ? void 0 : _g.buildArgs) !== false && props.buildArgs) {
if (((_h = props.invalidation) === null || _h === void 0 ? void 0 : _h.buildArgs) !== false && props.buildArgs) {
extraHash.buildArgs = props.buildArgs;
}
if (((_h = props.invalidation) === null || _h === void 0 ? void 0 : _h.target) !== false && props.target) {
if (((_j = props.invalidation) === null || _j === void 0 ? void 0 : _j.target) !== false && props.target) {
extraHash.target = props.target;
}
if (((_j = props.invalidation) === null || _j === void 0 ? void 0 : _j.file) !== false && props.file) {
if (((_k = props.invalidation) === null || _k === void 0 ? void 0 : _k.file) !== false && props.file) {
extraHash.file = props.file;
}
if (((_k = props.invalidation) === null || _k === void 0 ? void 0 : _k.repositoryName) !== false && props.repositoryName) {
if (((_l = props.invalidation) === null || _l === void 0 ? void 0 : _l.repositoryName) !== false && props.repositoryName) {
extraHash.repositoryName = props.repositoryName;
}
if (((_l = props.invalidation) === null || _l === void 0 ? void 0 : _l.networkMode) !== false && props.networkMode) {
if (((_m = props.invalidation) === null || _m === void 0 ? void 0 : _m.networkMode) !== false && props.networkMode) {
extraHash.networkMode = props.networkMode;
}
if (((_o = props.invalidation) === null || _o === void 0 ? void 0 : _o.platform) !== false && props.platform) {
extraHash.platform = props.platform;
}
// add "salt" to the hash in order to invalidate the image in the upgrade to

@@ -146,3 +180,3 @@ // 1.21.0 which removes the AdoptedRepository resource (and will cause the

...props,
follow: (_m = props.followSymlinks) !== null && _m !== void 0 ? _m : toSymlinkFollow(props.follow),
follow: (_p = props.followSymlinks) !== null && _p !== void 0 ? _p : toSymlinkFollow(props.follow),
exclude,

@@ -167,3 +201,4 @@ ignoreMode,

sourceHash: staging.assetHash,
networkMode: (_o = props.networkMode) === null || _o === void 0 ? void 0 : _o.mode,
networkMode: (_q = props.networkMode) === null || _q === void 0 ? void 0 : _q.mode,
platform: (_r = props.platform) === null || _r === void 0 ? void 0 : _r.platform,
});

@@ -204,4 +239,4 @@ this.repository = ecr.Repository.fromRepositoryName(this, 'Repository', location.repositoryName);

exports.DockerImageAsset = DockerImageAsset;
_b = JSII_RTTI_SYMBOL_1;
DockerImageAsset[_b] = { fqn: "@aws-cdk/aws-ecr-assets.DockerImageAsset", version: "1.157.0" };
_c = JSII_RTTI_SYMBOL_1;
DockerImageAsset[_c] = { fqn: "@aws-cdk/aws-ecr-assets.DockerImageAsset", version: "1.158.0" };
function validateProps(props) {

@@ -231,2 +266,2 @@ for (const [key, value] of Object.entries(props)) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbWFnZS1hc3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLHdDQUF3QztBQUN4Qyx3Q0FBaUs7QUFDaksseUNBQXlDO0FBR3pDLGlHQUFpRztBQUNqRywyQkFBMkI7QUFDM0IsNENBQXlFO0FBQ3pFLGlHQUFpRztBQUNqRyw4REFBOEQ7QUFDOUQsd0NBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBbUN0Qjs7T0FFRztJQUNILFlBQW9DLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0tBQUk7SUF0QnBEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQW1CO1FBQzdDLE9BQU8sSUFBSSxXQUFXLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDL0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5Qjs7QUFqQ0gsa0NBdUNDOzs7QUF0Q0M7O0dBRUc7QUFDb0IsbUJBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1RDs7R0FFRztBQUNvQixnQkFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXREOztHQUVHO0FBQ29CLGdCQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFnSnhEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGdCQUFhO0lBbURqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCOztRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7Ozs7O1FBRWpCLG9DQUFvQztRQUNwQyxhQUFhLENBQUMsS0FBSyxDQUFDLENB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QyxFQUFFO1lBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsNEZBQTRGLENBQUMsQ0FBQztTQUMvRztLQUNGO0FBQ0gsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQW1CO0lBQzFDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztRQUNqQyxLQUFLLG1CQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyx3QkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDdEQsS0FBSyxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sd0JBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3hELEtBQUssbUJBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLHdCQUFpQixDQUFDLGNBQWMsQ0FBQztRQUN4RSxLQUFLLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyx3QkFBaUIsQ0FBQyxRQUFRLENBQUM7S0FDN0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdAYXdzLWNkay9hd3MtZWNyJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBBc3NldFN0YWdpbmcsIEZlYXR1cmVGbGFncywgRmlsZUZpbmdlcnByaW50T3B0aW9ucywgSWdub3JlTW9kZSwgU3RhY2ssIFN5bWxpbmtGb2xsb3dNb2RlLCBUb2tlbiwgU3RhZ2UsIENmblJlc291cmNlIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8vIGtlZXAgdGhpcyBpbXBvcnQgc2VwYXJhdGUgZnJvbSBvdGhlciBpbXBvcnRzIHRvIHJlZHVjZSBjaGFuY2UgZm9yIG1lcmdlIGNvbmZsaWN0cyB3aXRoIHYyLW1haW5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuaW1wb3J0IHsgRmluZ2VycHJpbnRPcHRpb25zLCBGb2xsb3dNb2RlLCBJQXNzZXQgfSBmcm9tICdAYXdzLWNkay9hc3NldHMnO1xuLy8ga2VlcCB0aGlzIGltcG9ydCBzZXBhcmF0ZSBmcm9tIG90aGVyIGltcG9ydHMgdG8gcmVkdWNlIGNoYW5jZSBmb3IgbWVyZ2UgY29uZmxpY3RzIHdpdGggdjItbWFpblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1pbXBvcnRzLCBpbXBvcnQvb3JkZXJcbmltcG9ydCB7IENvbnN0cnVjdCBhcyBDb3JlQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbi8qKlxuICogbmV0d29ya2luZyBtb2RlIG9uIGJ1aWxkIHRpbWUgc3VwcG9ydGVkIGJ5IGRvY2tlclxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya01vZGUge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGlmIG9taXR0ZWQsIGNyZWF0ZSBhIG5ldHdvcmsgc3RhY2sgb24gdGhlIGRlZmF1bHQgRG9ja2VyIGJyaWRnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUID0gbmV3IE5ldHdvcmtNb2RlKCdkZWZhdWx0Jyk7XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgRG9ja2VyIGhvc3QgbmV0d29yayBzdGFja1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBIT1NUID0gbmV3IE5ldHdvcmtNb2RlKCdob3N0Jyk7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIG5ldHdvcmsgc3RhY2ssIG9ubHkgdGhlIGxvb3BiYWNrIGRldmljZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBOZXR3b3JrTW9kZSgnbm9uZScpO1xuXG4gIC8qKlxuICAgKiBSZXVzZSBhbm90aGVyIGNvbnRhaW5lcidzIG5ldHdvcmsgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lcklkIFRoZSB0YXJnZXQgY29udGFpbmVyJ3MgaWQgb3IgbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29udGFpbmVyKGNvbnRhaW5lcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKGBjb250YWluZXI6JHtjb250YWluZXJJZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gbmV0d29ya2luZyBtb2RlXG4gICAqIFVzZSB0aGlzIGlmIHRoZSBuZXR3b3JraW5nIG1vZGUgbmFtZSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSB0aGUgQ0RLLlxuICAgKlxuICAgKiBAcGFyYW0gbW9kZSBUaGUgbmV0d29ya2luZyBtb2RlIHRvIHVzZSBmb3IgZG9ja2VyIGJ1aWxkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShtb2RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKG1vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtb2RlIFRoZSBuZXR3b3JraW5nIG1vZGUgdG8gdXNlIGZvciBkb2NrZXIgYnVpbGRcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG1vZGU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNvbnRyb2wgaW52YWxpZGF0aW9uIG9mIGBEb2NrZXJJbWFnZUFzc2V0YCBhc3NldCBoYXNoZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVc2UgYGV4dHJhSGFzaGAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFIYXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBidWlsZEFyZ3NgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgdGFyZ2V0YCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYGZpbGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYHJlcG9zaXRvcnlOYW1lYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgbmV0d29ya01vZGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBEb2NrZXJJbWFnZUFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMgZXh0ZW5kcyBGaW5nZXJwcmludE9wdGlvbnMsIEZpbGVGaW5nZXJwcmludE9wdGlvbnMge1xuICAvKipcbiAgICogRUNSIHJlcG9zaXRvcnkgbmFtZVxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgaWYgeW91IG5lZWQgdG8gc3RhdGljYWxseSBhZGRyZXNzIHRoZSBpbWFnZSwgZS5nLlxuICAgKiBmcm9tIGEgS3ViZXJuZXRlcyBQb2QuIE5vdGUsIHRoaXMgaXMgb25seSB0aGUgcmVwb3NpdG9yeSBuYW1lLCB3aXRob3V0IHRoZVxuICAgKiByZWdpc3RyeSBhbmQgdGhlIHRhZyBwYXJ0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBFQ1IgcmVwb3NpdG9yeSBmb3IgQ0RLIGFzc2V0c1xuICAgKiBAZGVwcmVjYXRlZCB0byBjb250cm9sIHRoZSBsb2NhdGlvbiBvZiBkb2NrZXIgaW1hZ2UgYXNzZXRzLCBwbGVhc2Ugb3ZlcnJpZGVcbiAgICogYFN0YWNrLmFkZERvY2tlckltYWdlQXNzZXRgLiB0aGlzIGZlYXR1cmUgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZVxuICAgKiByZWxlYXNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIFNpbmNlIERvY2tlciBidWlsZCBhcmd1bWVudHMgYXJlIHJlc29sdmVkIGJlZm9yZSBkZXBsb3ltZW50LCBrZXlzIGFuZFxuICAgKiB2YWx1ZXMgY2Fubm90IHJlZmVyIHRvIHVucmVzb2x2ZWQgdG9rZW5zIChzdWNoIGFzIGBsYW1iZGEuZnVuY3Rpb25Bcm5gIG9yXG4gICAqIGBxdWV1ZS5xdWV1ZVVybGApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBEb2NrZXJmaWxlIChyZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5KS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0RvY2tlcmZpbGUnXG4gICAqL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IE5ldHdvcmtNb2RlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbnRyb2wgd2hpY2ggcGFyYW1ldGVycyBhcmUgdXNlZCB0byBpbnZhbGlkYXRlIHRoZSBhc3NldCBoYXNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGhhc2ggYWxsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGludmFsaWRhdGlvbj86IERvY2tlckltYWdlQXNzZXRJbnZhbGlkYXRpb25PcHRpb25zO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciBEb2NrZXJJbWFnZUFzc2V0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckltYWdlQXNzZXRQcm9wcyBleHRlbmRzIERvY2tlckltYWdlQXNzZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIERvY2tlcmZpbGUgaXMgc3RvcmVkXG4gICAqXG4gICAqIEFueSBkaXJlY3RvcnkgaW5zaWRlIHdpdGggYSBuYW1lIHRoYXQgbWF0Y2hlcyB0aGUgQ0RLIG91dHB1dCBmb2xkZXIgKGNkay5vdXQgYnkgZGVmYXVsdCkgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gYXNzZXQgdGhhdCByZXByZXNlbnRzIGEgRG9ja2VyIGltYWdlLlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIGNyZWF0ZWQgaW4gYnVpbGQgdGltZSBhbmQgdXBsb2FkZWQgdG8gYW4gRUNSIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb2NrZXJJbWFnZUFzc2V0IGV4dGVuZHMgQ29yZUNvbnN0cnVjdCBpbXBsZW1lbnRzIElBc3NldCB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBVUkkgb2YgdGhlIGltYWdlIChpbmNsdWRpbmcgYSB0YWcpLiBVc2UgdGhpcyByZWZlcmVuY2UgdG8gcHVsbFxuICAgKiB0aGUgYXNzZXQuXG4gICAqL1xuICBwdWJsaWMgaW1hZ2VVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwb3NpdG9yeSB3aGVyZSB0aGUgaW1hZ2UgaXMgc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVwb3NpdG9yeTogZWNyLklSZXBvc2l0b3J5O1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhlIHNvdXJjZSBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpblxuICAgKiBzdHJpbmcsIGl0IGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuXG4gICAqIHRoZSBjb250ZW50IGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBhc3NldEhhc2hcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpbiBzdHJpbmcsIGl0XG4gICAqIGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuIHRoZSBjb250ZW50XG4gICAqIGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBhc3NldCwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgQ2xvdWQgQXNzZW1ibHlcbiAgICpcbiAgICogSWYgYXNzZXQgc3RhZ2luZyBpcyBkaXNhYmxlZCwgdGhpcyB3aWxsIGp1c3QgYmUgdGhlIG9yaWdpbmFsIHBhdGguXG4gICAqXG4gICAqIElmIGFzc2V0IHN0YWdpbmcgaXMgZW5hYmxlZCBpdCB3aWxsIGJlIHRoZSBzdGFnZWQgcGF0aC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBEb2NrZXJmaWxlLCByZWxhdGl2ZSB0byB0aGUgYXNzZXRQYXRoXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlcmZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIERvY2tlciB0YXJnZXQgdG8gYnVpbGQgdG9cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRUYXJnZXQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvY2tlckltYWdlQXNzZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBub25lIG9mIHRoZSBwcm9wZXJ0aWVzIHVzZSB0b2tlbnNcbiAgICB2YWxpZGF0ZVByb3BzKHByb3BzKTtcblxuICAgIC8vIHJlc29sdmUgZnVsbCBwYXRoXG4gICAgY29uc3QgZGlyID0gcGF0aC5yZXNvbHZlKHByb3BzLmRpcmVjdG9yeSk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgaW1hZ2UgZGlyZWN0b3J5IGF0ICR7ZGlyfWApO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIHRoZSBkb2NrZXIgZmlsZSBleGlzdHNcbiAgICB0aGlzLmRvY2tlcmZpbGVQYXRoID0gcHJvcHMuZmlsZSB8fCAnRG9ja2VyZmlsZSc7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsIHRoaXMuZG9ja2VyZmlsZVBhdGgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBmaWxlIGF0ICR7ZmlsZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0SWdub3JlTW9kZSA9IEZlYXR1cmVGbGFncy5vZih0aGlzKS5pc0VuYWJsZWQoY3hhcGkuRE9DS0VSX0lHTk9SRV9TVVBQT1JUKVxuICAgICAgPyBJZ25vcmVNb2RlLkRPQ0tFUiA6IElnbm9yZU1vZGUuR0xPQjtcbiAgICBsZXQgaWdub3JlTW9kZSA9IHByb3BzLmlnbm9yZU1vZGUgPz8gZGVmYXVsdElnbm9yZU1vZGU7XG5cbiAgICBsZXQgZXhjbHVkZTogc3RyaW5nW10gPSBwcm9wcy5leGNsdWRlIHx8IFtdO1xuXG4gICAgY29uc3QgaWdub3JlID0gcGF0aC5qb2luKGRpciwgJy5kb2NrZXJpZ25vcmUnKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKGlnbm9yZSkpIHtcbiAgICAgIGNvbnN0IGRvY2tlcklnbm9yZVBhdHRlcm5zID0gZnMucmVhZEZpbGVTeW5jKGlnbm9yZSkudG9TdHJpbmcoKS5zcGxpdCgnXFxuJykuZmlsdGVyKGUgPT4gISFlKTtcblxuICAgICAgZXhjbHVkZSA9IFtcbiAgICAgICAgLi4uZG9ja2VySWdub3JlUGF0dGVybnMsXG4gICAgICAgIC4uLmV4Y2x1ZGUsXG5cbiAgICAgICAgLy8gRW5zdXJlIC5kb2NrZXJpZ25vcmUgaXMgaW5jbHVkZWQgbm8gbWF0dGVyIHdoYXQuXG4gICAgICAgICchLmRvY2tlcmlnbm9yZScsXG4gICAgICBdO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGUgRG9ja2VyZmlsZSBpcyBpbmNsdWRlZCBubyBtYXR0ZXIgd2hhdC5cbiAgICBleGNsdWRlLnB1c2goJyEnICsgcGF0aC5iYXNlbmFtZShmaWxlKSk7XG4gICAgLy8gRW5zdXJlIHRoZSBjZGsub3V0IGZvbGRlciBpcyBub3QgaW5jbHVkZWQgdG8gYXZvaWQgaW5maW5pdGUgbG9vcHMuXG4gICAgY29uc3QgY2Rrb3V0ID0gU3RhZ2Uub2YodGhpcyk/Lm91dGRpciA/PyAnY2RrLm91dCc7XG4gICAgZXhjbHVkZS5wdXNoKGNka291dCk7XG5cbiAgICBpZiAocHJvcHMucmVwb3NpdG9yeU5hbWUpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ0RvY2tlckltYWdlQXNzZXQucmVwb3NpdG9yeU5hbWUgaXMgZGVwcmVjYXRlZC4gT3ZlcnJpZGUgXCJjb3JlLlN0YWNrLmFkZERvY2tlckltYWdlQXNzZXRcIiB0byBjb250cm9sIGFzc2V0IGxvY2F0aW9ucycpO1xuICAgIH1cblxuICAgIC8vIGluY2x1ZGUgYnVpbGQgY29udGV4dCBpbiBcImV4dHJhXCIgc28gaXQgd2lsbCBpbXBhY3QgdGhlIGhhc2hcbiAgICBjb25zdCBleHRyYUhhc2g6IHsgW2ZpZWxkOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmV4dHJhSGFzaCAhPT0gZmFsc2UgJiYgcHJvcHMuZXh0cmFIYXNoKSB7IGV4dHJhSGFzaC51c2VyID0gcHJvcHMuZXh0cmFIYXNoOyB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8uYnVpbGRBcmdzICE9PSBmYWxzZSAmJiBwcm9wcy5idWlsZEFyZ3MpIHsgZXh0cmFIYXNoLmJ1aWxkQXJncyA9IHByb3BzLmJ1aWxkQXJnczsgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LnRhcmdldCAhPT0gZmFsc2UgJiYgcHJvcHMudGFyZ2V0KSB7IGV4dHJhSGFzaC50YXJnZXQgPSBwcm9wcy50YXJnZXQ7IH1cbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5maWxlICE9PSBmYWxzZSAmJiBwcm9wcy5maWxlKSB7IGV4dHJhSGFzaC5maWxlID0gcHJvcHMuZmlsZTsgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LnJlcG9zaXRvcnlOYW1lICE9PSBmYWxzZSAmJiBwcm9wcy5yZXBvc2l0b3J5TmFtZSkgeyBleHRyYUhhc2gucmVwb3NpdG9yeU5hbWUgPSBwcm9wcy5yZXBvc2l0b3J5TmFtZTsgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/Lm5ldHdvcmtNb2RlICE9PSBmYWxzZSAmJiBwcm9wcy5uZXR3b3JrTW9kZSkgeyBleHRyYUhhc2gubmV0d29ya01vZGUgPSBwcm9wcy5uZXR3b3JrTW9kZTsgfVxuXG4gICAgLy8gYWRkIFwic2FsdFwiIHRvIHRoZSBoYXNoIGluIG9yZGVyIHRvIGludmFsaWRhdGUgdGhlIGltYWdlIGluIHRoZSB1cGdyYWRlIHRvXG4gICAgLy8gMS4yMS4wIHdoaWNoIHJlbW92ZXMgdGhlIEFkb3B0ZWRSZXBvc2l0b3J5IHJlc291cmNlIChhbmQgd2lsbCBjYXVzZSB0aGVcbiAgICAvLyBkZWxldGlvbiBvZiB0aGUgRUNSIHJlcG9zaXRvcnkgdGhlIGFwcCB1c2VkKS5cbiAgICBleHRyYUhhc2gudmVyc2lvbiA9ICcxLjIxLjAnO1xuXG4gICAgY29uc3Qgc3RhZ2luZyA9IG5ldyBBc3NldFN0YWdpbmcodGhpcywgJ1N0YWdpbmcnLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGZvbGxvdzogcHJvcHMuZm9sbG93U3ltbGlua3MgPz8gdG9TeW1saW5rRm9sbG93KHByb3BzLmZvbGxvdyksXG4gICAgICBleGNsdWRlLFxuICAgICAgaWdub3JlTW9kZSxcbiAgICAgIHNvdXJjZVBhdGg6IGRpcixcbiAgICAgIGV4dHJhSGFzaDogT2JqZWN0LmtleXMoZXh0cmFIYXNoKS5sZW5ndGggPT09IDBcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBKU09OLnN0cmluZ2lmeShleHRyYUhhc2gpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zb3VyY2VIYXNoID0gc3RhZ2luZy5hc3NldEhhc2g7XG4gICAgdGhpcy5hc3NldEhhc2ggPSBzdGFnaW5nLmFzc2V0SGFzaDtcblxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG4gICAgdGhpcy5hc3NldFBhdGggPSBzdGFnaW5nLnJlbGF0aXZlU3RhZ2VkUGF0aChzdGFjayk7XG4gICAgdGhpcy5kb2NrZXJCdWlsZEFyZ3MgPSBwcm9wcy5idWlsZEFyZ3M7XG4gICAgdGhpcy5kb2NrZXJCdWlsZFRhcmdldCA9IHByb3BzLnRhcmdldDtcblxuICAgIGNvbnN0IGxvY2F0aW9uID0gc3RhY2suc3ludGhlc2l6ZXIuYWRkRG9ja2VySW1hZ2VBc3NldCh7XG4gICAgICBkaXJlY3RvcnlOYW1lOiB0aGlzLmFzc2V0UGF0aCxcbiAgICAgIGRvY2tlckJ1aWxkQXJnczogdGhpcy5kb2NrZXJCdWlsZEFyZ3MsXG4gICAgICBkb2NrZXJCdWlsZFRhcmdldDogdGhpcy5kb2NrZXJCdWlsZFRhcmdldCxcbiAgICAgIGRvY2tlckZpbGU6IHByb3BzLmZpbGUsXG4gICAgICBzb3VyY2VIYXNoOiBzdGFnaW5nLmFzc2V0SGFzaCxcbiAgICAgIG5ldHdvcmtNb2RlOiBwcm9wcy5uZXR3b3JrTW9kZT8ubW9kZSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVwb3NpdG9yeSA9IGVjci5SZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCAnUmVwb3NpdG9yeScsIGxvY2F0aW9uLnJlcG9zaXRvcnlOYW1lKTtcbiAgICB0aGlzLmltYWdlVXJpID0gbG9jYXRpb24uaW1hZ2VVcmk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBtZXRhZGF0YSB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlIHdpdGhcbiAgICogaW5mb3JtYXRpb24gdGhhdCBpbmRpY2F0ZXMgd2hpY2ggcmVzb3VyY2UgcHJvcGVydHkgaXMgbWFwcGVkIHRvIHRoaXMgbG9jYWxcbiAgICogYXNzZXQuIFRoaXMgY2FuIGJlIHVzZWQgYnkgdG9vbHMgc3VjaCBhcyBTQU0gQ0xJIHRvIHByb3ZpZGUgbG9jYWxcbiAgICogZXhwZXJpZW5jZSBzdWNoIGFzIGxvY2FsIGludm9jYXRpb24gYW5kIGRlYnVnZ2luZyBvZiBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKlxuICAgKiBBc3NldCBtZXRhZGF0YSB3aWxsIG9ubHkgYmUgaW5jbHVkZWQgaWYgdGhlIHN0YWNrIGlzIHN5bnRoZXNpemVkIHdpdGggdGhlXG4gICAqIFwiYXdzOmNkazplbmFibGUtYXNzZXQtbWV0YWRhdGFcIiBjb250ZXh0IGtleSBkZWZpbmVkLCB3aGljaCBpcyB0aGUgZGVmYXVsdFxuICAgKiBiZWhhdmlvciB3aGVuIHN5bnRoZXNpemluZyB2aWEgdGhlIENESyBUb29sa2l0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHdoaWNoIGlzIHVzaW5nIHRoaXMgYXNzZXQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICogQHBhcmFtIHJlc291cmNlUHJvcGVydHkgVGhlIHByb3BlcnR5IG5hbWUgd2hlcmUgdGhpcyBhc3NldCBpcyByZWZlcmVuY2VkXG4gICAqL1xuICBwdWJsaWMgYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZTogQ2ZuUmVzb3VyY2UsIHJlc291cmNlUHJvcGVydHk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5ub2RlLnRyeUdldENvbnRleHQoY3hhcGkuQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhUKSkge1xuICAgICAgcmV0dXJuOyAvLyBub3QgZW5hYmxlZFxuICAgIH1cblxuICAgIC8vIHRlbGwgdG9vbHMgc3VjaCBhcyBTQU0gQ0xJIHRoYXQgdGhlIHJlc291cmNlUHJvcGVydHkgb2YgdGhpcyByZXNvdXJjZVxuICAgIC8vIHBvaW50cyB0byBhIGxvY2FsIHBhdGggYW5kIGluY2x1ZGUgdGhlIHBhdGggdG8gZGUgZG9ja2VyZmlsZSwgZG9ja2VyIGJ1aWxkIGFyZ3MsIGFuZCB0YXJnZXQsXG4gICAgLy8gaW4gb3JkZXIgdG8gZW5hYmxlIGxvY2FsIGludm9jYXRpb24gb2YgdGhpcyBmdW5jdGlvbi5cbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhID0gcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YSB8fCB7IH07XG4gICAgcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YVtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9QQVRIX0tFWV0gPSB0aGlzLmFzc2V0UGF0aDtcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUkZJTEVfUEFUSF9LRVldID0gdGhpcy5kb2NrZXJmaWxlUGF0aDtcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9BUkdTX0tFWV0gPSB0aGlzLmRvY2tlckJ1aWxkQXJncztcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9UQVJHRVRfS0VZXSA9IHRoaXMuZG9ja2VyQnVpbGRUYXJnZXQ7XG4gICAgcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YVtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9QUk9QRVJUWV9LRVldID0gcmVzb3VyY2VQcm9wZXJ0eTtcbiAgfVxuXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcHMocHJvcHM6IERvY2tlckltYWdlQXNzZXRQcm9wcykge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9wcykpIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIFRva2VuIGFzIHZhbHVlIG9mICcke2tleX0nOiB0aGlzIHZhbHVlIGlzIHVzZWQgYmVmb3JlIGRlcGxveW1lbnQgc3RhcnRzYCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVCdWlsZEFyZ3MocHJvcHMuYnVpbGRBcmdzKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVCdWlsZEFyZ3MoYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhidWlsZEFyZ3MgfHwge30pKSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSB0b2tlbnMgaW4ga2V5cyBvciB2YWx1ZXMgb2YgXCJidWlsZEFyZ3NcIiBzaW5jZSB0aGV5IGFyZSBuZWVkZWQgYmVmb3JlIGRlcGxveW1lbnQnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9TeW1saW5rRm9sbG93KGZvbGxvdz86IEZvbGxvd01vZGUpOiBTeW1saW5rRm9sbG93TW9kZSB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoZm9sbG93KSB7XG4gICAgY2FzZSB1bmRlZmluZWQ6IHJldHVybiB1bmRlZmluZWQ7XG4gICAgY2FzZSBGb2xsb3dNb2RlLk5FVkVSOiByZXR1cm4gU3ltbGlua0ZvbGxvd01vZGUuTkVWRVI7XG4gICAgY2FzZSBGb2xsb3dNb2RlLkFMV0FZUzogcmV0dXJuIFN5bWxpbmtGb2xsb3dNb2RlLkFMV0FZUztcbiAgICBjYXNlIEZvbGxvd01vZGUuQkxPQ0tfRVhURVJOQUw6IHJldHVybiBTeW1saW5rRm9sbG93TW9kZS5CTE9DS19FWFRFUk5BTDtcbiAgICBjYXNlIEZvbGxvd01vZGUuRVhURVJOQUw6IHJldHVybiBTeW1saW5rRm9sbG93TW9kZS5FWFRFUk5BTDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbWFnZS1hc3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLHdDQUF3QztBQUN4Qyx3Q0FBaUs7QUFDaksseUNBQXlDO0FBR3pDLGlHQUFpRztBQUNqRywyQkFBMkI7QUFDM0IsNENBQXlFO0FBQ3pFLGlHQUFpRztBQUNqRyw4REFBOEQ7QUFDOUQsd0NBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBbUN0Qjs7T0FFRztJQUNILFlBQW9DLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0tBQUk7SUF0QnBEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQW1CO1FBQzdDLE9BQU8sSUFBSSxXQUFXLENBQUMsYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDL0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5Qjs7QUFqQ0gsa0NBdUNDOzs7QUF0Q0M7O0dBRUc7QUFDb0IsbUJBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1RDs7R0FFRztBQUNvQixnQkFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXREOztHQUVHO0FBQ29CLGdCQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUEyQnhEOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBcUJuQjs7T0FFRztJQUNILFlBQW9DLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7S0FBSTtJQWJ4RDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FB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QUM3RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZWNyIGZyb20gJ0Bhd3MtY2RrL2F3cy1lY3InO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEFzc2V0U3RhZ2luZywgRmVhdHVyZUZsYWdzLCBGaWxlRmluZ2VycHJpbnRPcHRpb25zLCBJZ25vcmVNb2RlLCBTdGFjaywgU3ltbGlua0ZvbGxvd01vZGUsIFRva2VuLCBTdGFnZSwgQ2ZuUmVzb3VyY2UgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8ga2VlcCB0aGlzIGltcG9ydCBzZXBhcmF0ZSBmcm9tIG90aGVyIGltcG9ydHMgdG8gcmVkdWNlIGNoYW5jZSBmb3IgbWVyZ2UgY29uZmxpY3RzIHdpdGggdjItbWFpblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5pbXBvcnQgeyBGaW5nZXJwcmludE9wdGlvbnMsIEZvbGxvd01vZGUsIElBc3NldCB9IGZyb20gJ0Bhd3MtY2RrL2Fzc2V0cyc7XG4vLyBrZWVwIHRoaXMgaW1wb3J0IHNlcGFyYXRlIGZyb20gb3RoZXIgaW1wb3J0cyB0byByZWR1Y2UgY2hhbmNlIGZvciBtZXJnZSBjb25mbGljdHMgd2l0aCB2Mi1tYWluXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLWltcG9ydHMsIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgQ29uc3RydWN0IGFzIENvcmVDb25zdHJ1Y3QgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcblxuLyoqXG4gKiBuZXR3b3JraW5nIG1vZGUgb24gYnVpbGQgdGltZSBzdXBwb3J0ZWQgYnkgZG9ja2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrTW9kZSB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBuZXR3b3JraW5nIG1vZGUgaWYgb21pdHRlZCwgY3JlYXRlIGEgbmV0d29yayBzdGFjayBvbiB0aGUgZGVmYXVsdCBEb2NrZXIgYnJpZGdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFQgPSBuZXcgTmV0d29ya01vZGUoJ2RlZmF1bHQnKTtcblxuICAvKipcbiAgICogVXNlIHRoZSBEb2NrZXIgaG9zdCBuZXR3b3JrIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhPU1QgPSBuZXcgTmV0d29ya01vZGUoJ2hvc3QnKTtcblxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgbmV0d29yayBzdGFjaywgb25seSB0aGUgbG9vcGJhY2sgZGV2aWNlIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IE5ldHdvcmtNb2RlKCdub25lJyk7XG5cbiAgLyoqXG4gICAqIFJldXNlIGFub3RoZXIgY29udGFpbmVyJ3MgbmV0d29yayBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVySWQgVGhlIHRhcmdldCBjb250YWluZXIncyBpZCBvciBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db250YWluZXIoY29udGFpbmVySWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTmV0d29ya01vZGUoYGNvbnRhaW5lcjoke2NvbnRhaW5lcklkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBhIGN1c3RvbSBuZXR3b3JraW5nIG1vZGVcbiAgICogVXNlIHRoaXMgaWYgdGhlIG5ldHdvcmtpbmcgbW9kZSBuYW1lIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSBDREsuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RlIFRoZSBuZXR3b3JraW5nIG1vZGUgdG8gdXNlIGZvciBkb2NrZXIgYnVpbGRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3VzdG9tKG1vZGU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTmV0d29ya01vZGUobW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG1vZGUgVGhlIG5ldHdvcmtpbmcgbW9kZSB0byB1c2UgZm9yIGRvY2tlciBidWlsZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbW9kZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIHBsYXRmb3JtIHN1cHBvcnRlZCBieSBkb2NrZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFBsYXRmb3JtIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGZvciBsaW51eC9hbWQ2NFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5VWF9BTUQ2NCA9IG5ldyBQbGF0Zm9ybSgnbGludXgvYW1kNjQnKTtcblxuICAvKipcbiAgICogQnVpbGQgZm9yIGxpbnV4L2FybTY0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTlVYX0FSTTY0ID0gbmV3IFBsYXRmb3JtKCdsaW51eC9hcm02NCcpO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gcGxhdGZvcm1cbiAgICogVXNlIHRoaXMgaWYgdGhlIHBsYXRmb3JtIG5hbWUgaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgdGhlIENESy5cbiAgICpcbiAgICogQHBhcmFtIHBsYXRmb3JtIFRoZSBwbGF0Zm9ybSB0byB1c2UgZm9yIGRvY2tlciBidWlsZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20ocGxhdGZvcm06IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgUGxhdGZvcm0ocGxhdGZvcm0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwbGF0Zm9ybSBUaGUgcGxhdGZvcm0gdG8gdXNlIGZvciBkb2NrZXIgYnVpbGRcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBjb250cm9sIGludmFsaWRhdGlvbiBvZiBgRG9ja2VySW1hZ2VBc3NldGAgYXNzZXQgaGFzaGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldEludmFsaWRhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVXNlIGBleHRyYUhhc2hgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhSGFzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgYnVpbGRBcmdzYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYHRhcmdldGAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBmaWxlYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmaWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGByZXBvc2l0b3J5TmFtZWAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYG5ldHdvcmtNb2RlYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgcGxhdGZvcm1gIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBEb2NrZXJJbWFnZUFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMgZXh0ZW5kcyBGaW5nZXJwcmludE9wdGlvbnMsIEZpbGVGaW5nZXJwcmludE9wdGlvbnMge1xuICAvKipcbiAgICogRUNSIHJlcG9zaXRvcnkgbmFtZVxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgaWYgeW91IG5lZWQgdG8gc3RhdGljYWxseSBhZGRyZXNzIHRoZSBpbWFnZSwgZS5nLlxuICAgKiBmcm9tIGEgS3ViZXJuZXRlcyBQb2QuIE5vdGUsIHRoaXMgaXMgb25seSB0aGUgcmVwb3NpdG9yeSBuYW1lLCB3aXRob3V0IHRoZVxuICAgKiByZWdpc3RyeSBhbmQgdGhlIHRhZyBwYXJ0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBFQ1IgcmVwb3NpdG9yeSBmb3IgQ0RLIGFzc2V0c1xuICAgKiBAZGVwcmVjYXRlZCB0byBjb250cm9sIHRoZSBsb2NhdGlvbiBvZiBkb2NrZXIgaW1hZ2UgYXNzZXRzLCBwbGVhc2Ugb3ZlcnJpZGVcbiAgICogYFN0YWNrLmFkZERvY2tlckltYWdlQXNzZXRgLiB0aGlzIGZlYXR1cmUgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZVxuICAgKiByZWxlYXNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIFNpbmNlIERvY2tlciBidWlsZCBhcmd1bWVudHMgYXJlIHJlc29sdmVkIGJlZm9yZSBkZXBsb3ltZW50LCBrZXlzIGFuZFxuICAgKiB2YWx1ZXMgY2Fubm90IHJlZmVyIHRvIHVucmVzb2x2ZWQgdG9rZW5zIChzdWNoIGFzIGBsYW1iZGEuZnVuY3Rpb25Bcm5gIG9yXG4gICAqIGBxdWV1ZS5xdWV1ZVVybGApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBEb2NrZXJmaWxlIChyZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5KS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0RvY2tlcmZpbGUnXG4gICAqL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IE5ldHdvcmtNb2RlO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSB0byBidWlsZCBmb3IuIF9SZXF1aXJlcyBEb2NrZXIgQnVpbGR4Xy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwbGF0Zm9ybSBzcGVjaWZpZWQgKHRoZSBjdXJyZW50IG1hY2hpbmUgYXJjaGl0ZWN0dXJlIHdpbGwgYmUgdXNlZClcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogUGxhdGZvcm07XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29udHJvbCB3aGljaCBwYXJhbWV0ZXJzIGFyZSB1c2VkIHRvIGludmFsaWRhdGUgdGhlIGFzc2V0IGhhc2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBhbGwgcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgaW52YWxpZGF0aW9uPzogRG9ja2VySW1hZ2VBc3NldEludmFsaWRhdGlvbk9wdGlvbnM7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIERvY2tlckltYWdlQXNzZXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldFByb3BzIGV4dGVuZHMgRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgRG9ja2VyZmlsZSBpcyBzdG9yZWRcbiAgICpcbiAgICogQW55IGRpcmVjdG9yeSBpbnNpZGUgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSBDREsgb3V0cHV0IGZvbGRlciAoY2RrLm91dCBieSBkZWZhdWx0KSB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGFzc2V0XG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBhc3NldCB0aGF0IHJlcHJlc2VudHMgYSBEb2NrZXIgaW1hZ2UuXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgY3JlYXRlZCBpbiBidWlsZCB0aW1lIGFuZCB1cGxvYWRlZCB0byBhbiBFQ1IgcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlckltYWdlQXNzZXQgZXh0ZW5kcyBDb3JlQ29uc3RydWN0IGltcGxlbWVudHMgSUFzc2V0IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIFVSSSBvZiB0aGUgaW1hZ2UgKGluY2x1ZGluZyBhIHRhZykuIFVzZSB0aGlzIHJlZmVyZW5jZSB0byBwdWxsXG4gICAqIHRoZSBhc3NldC5cbiAgICovXG4gIHB1YmxpYyBpbWFnZVVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IHdoZXJlIHRoZSBpbWFnZSBpcyBzdG9yZWRcbiAgICovXG4gIHB1YmxpYyByZXBvc2l0b3J5OiBlY3IuSVJlcG9zaXRvcnk7XG5cbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGUgc291cmNlIG9mIHRoaXMgYXNzZXQsIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBjb25zdHJ1Y3Rpb24gdGltZS4gQXMgdGhpcyBpcyBhIHBsYWluXG4gICAqIHN0cmluZywgaXQgY2FuIGJlIHVzZWQgaW4gY29uc3RydWN0IElEcyBpbiBvcmRlciB0byBlbmZvcmNlIGNyZWF0aW9uIG9mIGEgbmV3IHJlc291cmNlIHdoZW5cbiAgICogdGhlIGNvbnRlbnQgaGFzaCBoYXMgY2hhbmdlZC5cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFzc2V0SGFzaFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZUhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogQSBoYXNoIG9mIHRoaXMgYXNzZXQsIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBjb25zdHJ1Y3Rpb24gdGltZS4gQXMgdGhpcyBpcyBhIHBsYWluIHN0cmluZywgaXRcbiAgICogY2FuIGJlIHVzZWQgaW4gY29uc3RydWN0IElEcyBpbiBvcmRlciB0byBlbmZvcmNlIGNyZWF0aW9uIG9mIGEgbmV3IHJlc291cmNlIHdoZW4gdGhlIGNvbnRlbnRcbiAgICogaGFzaCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldEhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGFzc2V0LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBDbG91ZCBBc3NlbWJseVxuICAgKlxuICAgKiBJZiBhc3NldCBzdGFnaW5nIGlzIGRpc2FibGVkLCB0aGlzIHdpbGwganVzdCBiZSB0aGUgb3JpZ2luYWwgcGF0aC5cbiAgICpcbiAgICogSWYgYXNzZXQgc3RhZ2luZyBpcyBlbmFibGVkIGl0IHdpbGwgYmUgdGhlIHN0YWdlZCBwYXRoLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIERvY2tlcmZpbGUsIHJlbGF0aXZlIHRvIHRoZSBhc3NldFBhdGhcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyZmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXJCdWlsZFRhcmdldD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRG9ja2VySW1hZ2VBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIG5vbmUgb2YgdGhlIHByb3BlcnRpZXMgdXNlIHRva2Vuc1xuICAgIHZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgLy8gcmVzb2x2ZSBmdWxsIHBhdGhcbiAgICBjb25zdCBkaXIgPSBwYXRoLnJlc29sdmUocHJvcHMuZGlyZWN0b3J5KTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBpbWFnZSBkaXJlY3RvcnkgYXQgJHtkaXJ9YCk7XG4gICAgfVxuXG4gICAgLy8gdmFsaWRhdGUgdGhlIGRvY2tlciBmaWxlIGV4aXN0c1xuICAgIHRoaXMuZG9ja2VyZmlsZVBhdGggPSBwcm9wcy5maWxlIHx8ICdEb2NrZXJmaWxlJztcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKGRpciwgdGhpcy5kb2NrZXJmaWxlUGF0aCk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGZpbGUgYXQgJHtmaWxlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRJZ25vcmVNb2RlID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeGFwaS5ET0NLRVJfSUdOT1JFX1NVUFBPUlQpXG4gICAgICA/IElnbm9yZU1vZGUuRE9DS0VSIDogSWdub3JlTW9kZS5HTE9CO1xuICAgIGxldCBpZ25vcmVNb2RlID0gcHJvcHMuaWdub3JlTW9kZSA/PyBkZWZhdWx0SWdub3JlTW9kZTtcblxuICAgIGxldCBleGNsdWRlOiBzdHJpbmdbXSA9IHByb3BzLmV4Y2x1ZGUgfHwgW107XG5cbiAgICBjb25zdCBpZ25vcmUgPSBwYXRoLmpvaW4oZGlyLCAnLmRvY2tlcmlnbm9yZScpO1xuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoaWdub3JlKSkge1xuICAgICAgY29uc3QgZG9ja2VySWdub3JlUGF0dGVybnMgPSBmcy5yZWFkRmlsZVN5bmMoaWdub3JlKS50b1N0cmluZygpLnNwbGl0KCdcXG4nKS5maWx0ZXIoZSA9PiAhIWUpO1xuXG4gICAgICBleGNsdWRlID0gW1xuICAgICAgICAuLi5kb2NrZXJJZ25vcmVQYXR0ZXJucyxcbiAgICAgICAgLi4uZXhjbHVkZSxcblxuICAgICAgICAvLyBFbnN1cmUgLmRvY2tlcmlnbm9yZSBpcyBpbmNsdWRlZCBubyBtYXR0ZXIgd2hhdC5cbiAgICAgICAgJyEuZG9ja2VyaWdub3JlJyxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoZSBEb2NrZXJmaWxlIGlzIGluY2x1ZGVkIG5vIG1hdHRlciB3aGF0LlxuICAgIGV4Y2x1ZGUucHVzaCgnIScgKyBwYXRoLmJhc2VuYW1lKGZpbGUpKTtcbiAgICAvLyBFbnN1cmUgdGhlIGNkay5vdXQgZm9sZGVyIGlzIG5vdCBpbmNsdWRlZCB0byBhdm9pZCBpbmZpbml0ZSBsb29wcy5cbiAgICBjb25zdCBjZGtvdXQgPSBTdGFnZS5vZih0aGlzKT8ub3V0ZGlyID8/ICdjZGsub3V0JztcbiAgICBleGNsdWRlLnB1c2goY2Rrb3V0KTtcblxuICAgIGlmIChwcm9wcy5yZXBvc2l0b3J5TmFtZSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnRG9ja2VySW1hZ2VBc3NldC5yZXBvc2l0b3J5TmFtZSBpcyBkZXByZWNhdGVkLiBPdmVycmlkZSBcImNvcmUuU3RhY2suYWRkRG9ja2VySW1hZ2VBc3NldFwiIHRvIGNvbnRyb2wgYXNzZXQgbG9jYXRpb25zJyk7XG4gICAgfVxuXG4gICAgLy8gaW5jbHVkZSBidWlsZCBjb250ZXh0IGluIFwiZXh0cmFcIiBzbyBpdCB3aWxsIGltcGFjdCB0aGUgaGFzaFxuICAgIGNvbnN0IGV4dHJhSGFzaDogeyBbZmllbGQ6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8uZXh0cmFIYXNoICE9PSBmYWxzZSAmJiBwcm9wcy5leHRyYUhhc2gpIHsgZXh0cmFIYXNoLnVzZXIgPSBwcm9wcy5leHRyYUhhc2g7IH1cbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5idWlsZEFyZ3MgIT09IGZhbHNlICYmIHByb3BzLmJ1aWxkQXJncykgeyBleHRyYUhhc2guYnVpbGRBcmdzID0gcHJvcHMuYnVpbGRBcmdzOyB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8udGFyZ2V0ICE9PSBmYWxzZSAmJiBwcm9wcy50YXJnZXQpIHsgZXh0cmFIYXNoLnRhcmdldCA9IHByb3BzLnRhcmdldDsgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmZpbGUgIT09IGZhbHNlICYmIHByb3BzLmZpbGUpIHsgZXh0cmFIYXNoLmZpbGUgPSBwcm9wcy5maWxlOyB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucmVwb3NpdG9yeU5hbWUgIT09IGZhbHNlICYmIHByb3BzLnJlcG9zaXRvcnlOYW1lKSB7IGV4dHJhSGFzaC5yZXBvc2l0b3J5TmFtZSA9IHByb3BzLnJlcG9zaXRvcnlOYW1lOyB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ubmV0d29ya01vZGUgIT09IGZhbHNlICYmIHByb3BzLm5ldHdvcmtNb2RlKSB7IGV4dHJhSGFzaC5uZXR3b3JrTW9kZSA9IHByb3BzLm5ldHdvcmtNb2RlOyB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucGxhdGZvcm0gIT09IGZhbHNlICYmIHByb3BzLnBsYXRmb3JtKSB7IGV4dHJhSGFzaC5wbGF0Zm9ybSA9IHByb3BzLnBsYXRmb3JtOyB9XG5cbiAgICAvLyBhZGQgXCJzYWx0XCIgdG8gdGhlIGhhc2ggaW4gb3JkZXIgdG8gaW52YWxpZGF0ZSB0aGUgaW1hZ2UgaW4gdGhlIHVwZ3JhZGUgdG9cbiAgICAvLyAxLjIxLjAgd2hpY2ggcmVtb3ZlcyB0aGUgQWRvcHRlZFJlcG9zaXRvcnkgcmVzb3VyY2UgKGFuZCB3aWxsIGNhdXNlIHRoZVxuICAgIC8vIGRlbGV0aW9uIG9mIHRoZSBFQ1IgcmVwb3NpdG9yeSB0aGUgYXBwIHVzZWQpLlxuICAgIGV4dHJhSGFzaC52ZXJzaW9uID0gJzEuMjEuMCc7XG5cbiAgICBjb25zdCBzdGFnaW5nID0gbmV3IEFzc2V0U3RhZ2luZyh0aGlzLCAnU3RhZ2luZycsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZm9sbG93OiBwcm9wcy5mb2xsb3dTeW1saW5rcyA/PyB0b1N5bWxpbmtGb2xsb3cocHJvcHMuZm9sbG93KSxcbiAgICAgIGV4Y2x1ZGUsXG4gICAgICBpZ25vcmVNb2RlLFxuICAgICAgc291cmNlUGF0aDogZGlyLFxuICAgICAgZXh0cmFIYXNoOiBPYmplY3Qua2V5cyhleHRyYUhhc2gpLmxlbmd0aCA9PT0gMFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KGV4dHJhSGFzaCksXG4gICAgfSk7XG5cbiAgICB0aGlzLnNvdXJjZUhhc2ggPSBzdGFnaW5nLmFzc2V0SGFzaDtcbiAgICB0aGlzLmFzc2V0SGFzaCA9IHN0YWdpbmcuYXNzZXRIYXNoO1xuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICB0aGlzLmFzc2V0UGF0aCA9IHN0YWdpbmcucmVsYXRpdmVTdGFnZWRQYXRoKHN0YWNrKTtcbiAgICB0aGlzLmRvY2tlckJ1aWxkQXJncyA9IHByb3BzLmJ1aWxkQXJncztcbiAgICB0aGlzLmRvY2tlckJ1aWxkVGFyZ2V0ID0gcHJvcHMudGFyZ2V0O1xuXG4gICAgY29uc3QgbG9jYXRpb24gPSBzdGFjay5zeW50aGVzaXplci5hZGREb2NrZXJJbWFnZUFzc2V0KHtcbiAgICAgIGRpcmVjdG9yeU5hbWU6IHRoaXMuYXNzZXRQYXRoLFxuICAgICAgZG9ja2VyQnVpbGRBcmdzOiB0aGlzLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGRvY2tlckJ1aWxkVGFyZ2V0OiB0aGlzLmRvY2tlckJ1aWxkVGFyZ2V0LFxuICAgICAgZG9ja2VyRmlsZTogcHJvcHMuZmlsZSxcbiAgICAgIHNvdXJjZUhhc2g6IHN0YWdpbmcuYXNzZXRIYXNoLFxuICAgICAgbmV0d29ya01vZGU6IHByb3BzLm5ldHdvcmtNb2RlPy5tb2RlLFxuICAgICAgcGxhdGZvcm06IHByb3BzLnBsYXRmb3JtPy5wbGF0Zm9ybSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVwb3NpdG9yeSA9IGVjci5SZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCAnUmVwb3NpdG9yeScsIGxvY2F0aW9uLnJlcG9zaXRvcnlOYW1lKTtcbiAgICB0aGlzLmltYWdlVXJpID0gbG9jYXRpb24uaW1hZ2VVcmk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBtZXRhZGF0YSB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlIHdpdGhcbiAgICogaW5mb3JtYXRpb24gdGhhdCBpbmRpY2F0ZXMgd2hpY2ggcmVzb3VyY2UgcHJvcGVydHkgaXMgbWFwcGVkIHRvIHRoaXMgbG9jYWxcbiAgICogYXNzZXQuIFRoaXMgY2FuIGJlIHVzZWQgYnkgdG9vbHMgc3VjaCBhcyBTQU0gQ0xJIHRvIHByb3ZpZGUgbG9jYWxcbiAgICogZXhwZXJpZW5jZSBzdWNoIGFzIGxvY2FsIGludm9jYXRpb24gYW5kIGRlYnVnZ2luZyBvZiBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKlxuICAgKiBBc3NldCBtZXRhZGF0YSB3aWxsIG9ubHkgYmUgaW5jbHVkZWQgaWYgdGhlIHN0YWNrIGlzIHN5bnRoZXNpemVkIHdpdGggdGhlXG4gICAqIFwiYXdzOmNkazplbmFibGUtYXNzZXQtbWV0YWRhdGFcIiBjb250ZXh0IGtleSBkZWZpbmVkLCB3aGljaCBpcyB0aGUgZGVmYXVsdFxuICAgKiBiZWhhdmlvciB3aGVuIHN5bnRoZXNpemluZyB2aWEgdGhlIENESyBUb29sa2l0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHdoaWNoIGlzIHVzaW5nIHRoaXMgYXNzZXQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICogQHBhcmFtIHJlc291cmNlUHJvcGVydHkgVGhlIHByb3BlcnR5IG5hbWUgd2hlcmUgdGhpcyBhc3NldCBpcyByZWZlcmVuY2VkXG4gICAqL1xuICBwdWJsaWMgYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZTogQ2ZuUmVzb3VyY2UsIHJlc291cmNlUHJvcGVydHk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5ub2RlLnRyeUdldENvbnRleHQoY3hhcGkuQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhUKSkge1xuICAgICAgcmV0dXJuOyAvLyBub3QgZW5hYmxlZFxuICAgIH1cblxuICAgIC8vIHRlbGwgdG9vbHMgc3VjaCBhcyBTQU0gQ0xJIHRoYXQgdGhlIHJlc291cmNlUHJvcGVydHkgb2YgdGhpcyByZXNvdXJjZVxuICAgIC8vIHBvaW50cyB0byBhIGxvY2FsIHBhdGggYW5kIGluY2x1ZGUgdGhlIHBhdGggdG8gZGUgZG9ja2VyZmlsZSwgZG9ja2VyIGJ1aWxkIGFyZ3MsIGFuZCB0YXJnZXQsXG4gICAgLy8gaW4gb3JkZXIgdG8gZW5hYmxlIGxvY2FsIGludm9jYXRpb24gb2YgdGhpcyBmdW5jdGlvbi5cbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhID0gcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YSB8fCB7IH07XG4gICAgcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YVtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9QQVRIX0tFWV0gPSB0aGlzLmFzc2V0UGF0aDtcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUkZJTEVfUEFUSF9LRVldID0gdGhpcy5kb2NrZXJmaWxlUGF0aDtcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9BUkdTX0tFWV0gPSB0aGlzLmRvY2tlckJ1aWxkQXJncztcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9UQVJHRVRfS0VZXSA9IHRoaXMuZG9ja2VyQnVpbGRUYXJnZXQ7XG4gICAgcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YVtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9QUk9QRVJUWV9LRVldID0gcmVzb3VyY2VQcm9wZXJ0eTtcbiAgfVxuXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcHMocHJvcHM6IERvY2tlckltYWdlQXNzZXRQcm9wcykge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9wcykpIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIFRva2VuIGFzIHZhbHVlIG9mICcke2tleX0nOiB0aGlzIHZhbHVlIGlzIHVzZWQgYmVmb3JlIGRlcGxveW1lbnQgc3RhcnRzYCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVCdWlsZEFyZ3MocHJvcHMuYnVpbGRBcmdzKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVCdWlsZEFyZ3MoYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhidWlsZEFyZ3MgfHwge30pKSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSB0b2tlbnMgaW4ga2V5cyBvciB2YWx1ZXMgb2YgXCJidWlsZEFyZ3NcIiBzaW5jZSB0aGV5IGFyZSBuZWVkZWQgYmVmb3JlIGRlcGxveW1lbnQnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9TeW1saW5rRm9sbG93KGZvbGxvdz86IEZvbGxvd01vZGUpOiBTeW1saW5rRm9sbG93TW9kZSB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoZm9sbG93KSB7XG4gICAgY2FzZSB1bmRlZmluZWQ6IHJldHVybiB1bmRlZmluZWQ7XG4gICAgY2FzZSBGb2xsb3dNb2RlLk5FVkVSOiByZXR1cm4gU3ltbGlua0ZvbGxvd01vZGUuTkVWRVI7XG4gICAgY2FzZSBGb2xsb3dNb2RlLkFMV0FZUzogcmV0dXJuIFN5bWxpbmtGb2xsb3dNb2RlLkFMV0FZUztcbiAgICBjYXNlIEZvbGxvd01vZGUuQkxPQ0tfRVhURVJOQUw6IHJldHVybiBTeW1saW5rRm9sbG93TW9kZS5CTE9DS19FWFRFUk5BTDtcbiAgICBjYXNlIEZvbGxvd01vZGUuRVhURVJOQUw6IHJldHVybiBTeW1saW5rRm9sbG93TW9kZS5FWFRFUk5BTDtcbiAgfVxufVxuIl19

@@ -54,3 +54,3 @@ "use strict";

_a = JSII_RTTI_SYMBOL_1;
TarballImageAsset[_a] = { fqn: "@aws-cdk/aws-ecr-assets.TarballImageAsset", version: "1.157.0" };
TarballImageAsset[_a] = { fqn: "@aws-cdk/aws-ecr-assets.TarballImageAsset", version: "1.158.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyYmFsbC1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhcmJhbGwtYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3Qix3Q0FBd0M7QUFDeEMsd0NBQTJEO0FBTTNELGlHQUFpRztBQUNqRyw4REFBOEQ7QUFDOUQsd0NBQTJEO0FBZ0IzRDs7OztHQUlHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxnQkFBYTtJQTJCbEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7Ozs7O1FBRWpCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUM3RDtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksbUJBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNGLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFFekMsTUFBTSxLQUFLLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7UUFFM0ksTUFBTSxLQUFLLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO1lBQ3JELFVBQVUsRUFBRSxhQUFhLENBQUMsU0FBUztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSTtnQkFDSixJQUFJO2dCQUNKLGtCQUFrQixvQkFBb0IsOEJBQThCO2FBQ3JFO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztLQUNuQzs7QUF0REgsOENBdURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdAYXdzLWNkay9hd3MtZWNyJztcbmltcG9ydCB7IEFzc2V0U3RhZ2luZywgU3RhY2ssIFN0YWdlIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8ga2VlcCB0aGlzIGltcG9ydCBzZXBhcmF0ZSBmcm9tIG90aGVyIGltcG9ydHMgdG8gcmVkdWNlIGNoYW5jZSBmb3IgbWVyZ2UgY29uZmxpY3RzIHdpdGggdjItbWFpblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5pbXBvcnQgeyBJQXNzZXQgfSBmcm9tICdAYXdzLWNkay9hc3NldHMnO1xuLy8ga2VlcCB0aGlzIGltcG9ydCBzZXBhcmF0ZSBmcm9tIG90aGVyIGltcG9ydHMgdG8gcmVkdWNlIGNoYW5jZSBmb3IgbWVyZ2UgY29uZmxpY3RzIHdpdGggdjItbWFpblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1pbXBvcnRzLCBpbXBvcnQvb3JkZXJcbmltcG9ydCB7IENvbnN0cnVjdCBhcyBDb3JlQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgVGFyYmFsbEltYWdlQXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJiYWxsSW1hZ2VBc3NldFByb3BzIHtcbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIHRhcmJhbGwuXG4gICAqXG4gICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHRvIHVzZSB0aGUgc2NyaXB0IHJ1bm5pbmcgZGlyZWN0b3J5IChlLmcuIGBfX2Rpcm5hbWVgXG4gICAqIGluIE5vZGUuanMgcHJvamVjdHMgb3IgZGlybmFtZSBvZiBgX19maWxlX19gIGluIFB5dGhvbikgaWYgeW91ciB0YXJiYWxsXG4gICAqIGlzIGxvY2F0ZWQgYXMgYSByZXNvdXJjZSBpbnNpZGUgeW91ciBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyYmFsbEZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBhc3NldCB0aGF0IHJlcHJlc2VudHMgYSBEb2NrZXIgaW1hZ2UuXG4gKlxuICogVGhlIGltYWdlIHdpbGwgbG9hZGVkIGZyb20gYW4gZXhpc3RpbmcgdGFyYmFsbCBhbmQgdXBsb2FkZWQgdG8gYW4gRUNSIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJiYWxsSW1hZ2VBc3NldCBleHRlbmRzIENvcmVDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQXNzZXQge1xuICAvKipcbiAgICogVGhlIGZ1bGwgVVJJIG9mIHRoZSBpbWFnZSAoaW5jbHVkaW5nIGEgdGFnKS4gVXNlIHRoaXMgcmVmZXJlbmNlIHRvIHB1bGxcbiAgICogdGhlIGFzc2V0LlxuICAgKi9cbiAgcHVibGljIGltYWdlVXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgd2hlcmUgdGhlIGltYWdlIGlzIHN0b3JlZFxuICAgKi9cbiAgcHVibGljIHJlcG9zaXRvcnk6IGVjci5JUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogQSBoYXNoIG9mIHRoZSBzb3VyY2Ugb2YgdGhpcyBhc3NldCwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lLiBBcyB0aGlzIGlzIGEgcGxhaW5cbiAgICogc3RyaW5nLCBpdCBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIGluIG9yZGVyIHRvIGVuZm9yY2UgY3JlYXRpb24gb2YgYSBuZXcgcmVzb3VyY2Ugd2hlblxuICAgKiB0aGUgY29udGVudCBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYXNzZXRIYXNoXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlSGFzaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhpcyBhc3NldCwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lLiBBcyB0aGlzIGlzIGEgcGxhaW4gc3RyaW5nLCBpdFxuICAgKiBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIGluIG9yZGVyIHRvIGVuZm9yY2UgY3JlYXRpb24gb2YgYSBuZXcgcmVzb3VyY2Ugd2hlbiB0aGUgY29udGVudFxuICAgKiBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0SGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYXJiYWxsSW1hZ2VBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhwcm9wcy50YXJiYWxsRmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgZmlsZSBhdCAke3Byb3BzLnRhcmJhbGxGaWxlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWdlZFRhcmJhbGwgPSBuZXcgQXNzZXRTdGFnaW5nKHRoaXMsICdTdGFnaW5nJywgeyBzb3VyY2VQYXRoOiBwcm9wcy50YXJiYWxsRmlsZSB9KTtcblxuICAgIHRoaXMuc291cmNlSGFzaCA9IHN0YWdlZFRhcmJhbGwuYXNzZXRIYXNoO1xuICAgIHRoaXMuYXNzZXRIYXNoID0gc3RhZ2VkVGFyYmFsbC5hc3NldEhhc2g7XG5cbiAgICBjb25zdCBzdGFnZSA9IFN0YWdlLm9mKHRoaXMpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aEluT3V0RGlyID0gc3RhZ2UgPyBwYXRoLnJlbGF0aXZlKHN0YWdlLmFzc2V0T3V0ZGlyLCBzdGFnZWRUYXJiYWxsLmFic29sdXRlU3RhZ2VkUGF0aCkgOiBzdGFnZWRUYXJiYWxsLmFic29sdXRlU3RhZ2VkUGF0aDtcblxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG4gICAgY29uc3QgbG9jYXRpb24gPSBzdGFjay5zeW50aGVzaXplci5hZGREb2NrZXJJbWFnZUFzc2V0KHtcbiAgICAgIHNvdXJjZUhhc2g6IHN0YWdlZFRhcmJhbGwuYXNzZXRIYXNoLFxuICAgICAgZXhlY3V0YWJsZTogW1xuICAgICAgICAnc2gnLFxuICAgICAgICAnLWMnLFxuICAgICAgICBgZG9ja2VyIGxvYWQgLWkgJHtyZWxhdGl2ZVBhdGhJbk91dERpcn0gfCBzZWQgXCJzL0xvYWRlZCBpbWFnZTogLy9nXCJgLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVwb3NpdG9yeSA9IGVjci5SZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCAnUmVwb3NpdG9yeScsIGxvY2F0aW9uLnJlcG9zaXRvcnlOYW1lKTtcbiAgICB0aGlzLmltYWdlVXJpID0gbG9jYXRpb24uaW1hZ2VVcmk7XG4gIH1cbn1cblxuIl19
{
"name": "@aws-cdk/aws-ecr-assets",
"version": "1.157.0",
"version": "1.158.0",
"description": "Docker image assets deployed to ECR",

@@ -75,10 +75,10 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assertions": "1.157.0",
"@aws-cdk/cdk-build-tools": "1.157.0",
"@aws-cdk/integ-runner": "1.157.0",
"@aws-cdk/cloud-assembly-schema": "1.157.0",
"@aws-cdk/pkglint": "1.157.0",
"@aws-cdk/assertions": "1.158.0",
"@aws-cdk/cdk-build-tools": "1.158.0",
"@aws-cdk/integ-runner": "1.158.0",
"@aws-cdk/cloud-assembly-schema": "1.158.0",
"@aws-cdk/pkglint": "1.158.0",
"@types/jest": "^27.5.0",
"@types/proxyquire": "^1.3.28",
"aws-cdk": "1.157.0",
"aws-cdk": "1.158.0",
"jest": "^27.5.1",

@@ -88,8 +88,8 @@ "proxyquire": "^2.1.3"

"dependencies": {
"@aws-cdk/assets": "1.157.0",
"@aws-cdk/aws-ecr": "1.157.0",
"@aws-cdk/aws-iam": "1.157.0",
"@aws-cdk/aws-s3": "1.157.0",
"@aws-cdk/core": "1.157.0",
"@aws-cdk/cx-api": "1.157.0",
"@aws-cdk/assets": "1.158.0",
"@aws-cdk/aws-ecr": "1.158.0",
"@aws-cdk/aws-iam": "1.158.0",
"@aws-cdk/aws-s3": "1.158.0",
"@aws-cdk/core": "1.158.0",
"@aws-cdk/cx-api": "1.158.0",
"constructs": "^3.3.69"

@@ -99,8 +99,8 @@ },

"peerDependencies": {
"@aws-cdk/assets": "1.157.0",
"@aws-cdk/aws-ecr": "1.157.0",
"@aws-cdk/aws-iam": "1.157.0",
"@aws-cdk/aws-s3": "1.157.0",
"@aws-cdk/core": "1.157.0",
"@aws-cdk/cx-api": "1.157.0",
"@aws-cdk/assets": "1.158.0",
"@aws-cdk/aws-ecr": "1.158.0",
"@aws-cdk/aws-iam": "1.158.0",
"@aws-cdk/aws-s3": "1.158.0",
"@aws-cdk/core": "1.158.0",
"@aws-cdk/cx-api": "1.158.0",
"constructs": "^3.3.69"

@@ -107,0 +107,0 @@ },

@@ -95,2 +95,14 @@ # AWS CDK Docker Image Assets

You can optionally pass an alternate platform to the `docker build` command by specifying
the `platform` property:
```ts
import { DockerImageAsset, Platform } from '@aws-cdk/aws-ecr-assets';
const asset = new DockerImageAsset(this, 'MyBuildImage', {
directory: path.join(__dirname, 'my-image'),
platform: Platform.LINUX_ARM64,
})
```
## Images from Tarball

@@ -97,0 +109,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc