@btc-embedded/cdk-extensions 0.22.11 → 0.22.12

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.
Files changed (52) hide show
  1. package/.jsii +3 -3
  2. package/CHANGELOG.md +7 -0
  3. package/README.md +4 -0
  4. package/assets/cli/catnip.js +2 -2
  5. package/lib/constructs/EventPipe.js +1 -1
  6. package/lib/constructs/ExportedService.js +1 -1
  7. package/lib/constructs/S3Bucket.js +1 -1
  8. package/lib/constructs/SecureRestApi.js +1 -1
  9. package/lib/constructs/SecureRestApiV2.js +1 -1
  10. package/lib/constructs/api-keys/ApiKeyClientAuthorization.js +1 -1
  11. package/lib/constructs/api-keys/ApiKeyManagement.js +1 -1
  12. package/lib/constructs/api-keys/ApiKeyPreTokenHandler.js +1 -1
  13. package/lib/constructs/api-keys/ApiKeyStore.js +1 -1
  14. package/lib/extensions/ApiGatewayExtension.js +1 -1
  15. package/lib/extensions/ApplicationContainer.js +1 -1
  16. package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
  17. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +1 -1
  18. package/lib/extensions/CloudMapExtension.js +1 -1
  19. package/lib/extensions/DeactivatableServiceExtension.js +1 -1
  20. package/lib/extensions/DeploymentConfigExtension.js +1 -1
  21. package/lib/extensions/DocumentDbAccessExtension.js +1 -1
  22. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  23. package/lib/extensions/EfsMountExtension.js +1 -1
  24. package/lib/extensions/ExtraContainerExtension.js +1 -1
  25. package/lib/extensions/HTTPApiExtension.js +1 -1
  26. package/lib/extensions/LogExtension.js +1 -1
  27. package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
  28. package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
  29. package/lib/extensions/OpenIdExtension.js +1 -1
  30. package/lib/extensions/OpenTelemetryExtension.js +1 -1
  31. package/lib/extensions/PostgresDbAccessExtension.js +1 -1
  32. package/lib/extensions/SharedVolumeExtension.js +1 -1
  33. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  34. package/lib/platform/ApiGateway.js +1 -1
  35. package/lib/platform/ApiGatewayVpcLink.js +2 -2
  36. package/lib/platform/ApplicationLoadBalancer.js +1 -1
  37. package/lib/platform/ApplicationLoadBalancerV2.js +2 -2
  38. package/lib/platform/BTCLogGroup.js +1 -1
  39. package/lib/platform/CognitoUserPool.js +2 -2
  40. package/lib/platform/DefaultUserPoolClients.js +1 -1
  41. package/lib/platform/DocumentDB.js +2 -2
  42. package/lib/platform/EcsCluster.js +1 -1
  43. package/lib/platform/EfsFileSystem.js +1 -1
  44. package/lib/platform/HostedZone.js +1 -1
  45. package/lib/platform/PrivateDnsNamespace.js +1 -1
  46. package/lib/platform/ResourceServer.js +1 -1
  47. package/lib/platform/Vpc.js +1 -1
  48. package/lib/platform/VpcV2.js +1 -1
  49. package/lib/stacks/ApplicationStack.js +1 -1
  50. package/lib/utils/BasePlatformStackResolver.js +1 -1
  51. package/lib/utils/StackParameter.js +1 -1
  52. package/package.json +1 -1
package/.jsii CHANGED
@@ -8497,7 +8497,7 @@
8497
8497
  },
8498
8498
  "name": "@btc-embedded/cdk-extensions",
8499
8499
  "readme": {
8500
- "markdown": "# BTC Embedded CDK Extensions\n\n# @btc-embedded/cdk-extensions\n\nA collection of reusable AWS CDK (Cloud Development Kit) extensions and constructs for building cloud infrastructure with TypeScript.\n\n## Features\n\n- **CDK Constructs**: Includes ready-to-use constructs for API Gateway, Application Load Balancer, Cognito, VPC, DocumentDB, and more.\n- **ECS Service Extensions**: Provides ECS service extensions for advanced container orchestration.\n- **Utilities**: Common utilities and helpers for stack parameters, value imports, and configuration parsing.\n- **Modular Extensions**: Easily extend AWS resources with features like logging, OpenTelemetry, EFS, Cloud Map, and custom containers.\n\n## Installation\n\n```sh\nyarn install @btc-embedded/cdk-extensions\n```\n\n## Usage Example\n\n### Basic Usage\n\n```typescript\nimport { ApiGateway } from \"@btc-embedded/cdk-extensions\";\n\n// Use constructs and extensions in your CDK app\n```\n\n### Using ApplicationStack for Simplified Configuration\n\nFor application-level stacks that reference a base platform stack, use `ApplicationStack` to ensure consistent use of the base platform stack name:\n\n```typescript\nimport { ApplicationStack } from \"@btc-embedded/cdk-extensions\";\n\nexport class MyAppStack extends ApplicationStack {\n constructor(scope: Construct, id: string) {\n super(scope, id, {\n basePlatformStackName: \"my-platform-stack\",\n env: {\n account: \"123456789012\",\n region: \"eu-central-1\",\n },\n });\n\n // Constructs and extensions automatically resolve the platform stack name\n // No need to pass basePlatformStackName repeatedly\n }\n}\n```\n\n### Config-Driven Deployments\n\nUse `createApplicationApp` for configuration-driven deployments:\n\n```typescript\nimport {\n createApplicationApp,\n ApplicationStack,\n} from \"@btc-embedded/cdk-extensions\";\nimport { z } from \"zod\";\n\nconst configSchema = z.object({\n env: z.object({ account: z.string(), region: z.string() }),\n basePlatformStackName: z.string(),\n});\n\ncreateApplicationApp({\n directory: \"./config\",\n schema: configSchema,\n createStack: (scope, config) => new MyAppStack(scope, \"MyApp\", config),\n});\n```\n\n## CLI Commands\n\n### catnip — Cloud Toolkit by the CAT Department\n\nThe `catnip` CLI tool provides commands for cloud infrastructure diagnostics and management.\n\n#### stack-diagnose\n\nDiagnose CloudFormation stack deployment failures.\n\n**Usage:**\n\n```bash\n# Auto-detect and diagnose the last failed stack\ncatnip stack-diagnose\n\n# Diagnose a specific stack\ncatnip stack-diagnose --stack-name my-stack\n\n# Customize log output and task inspection\ncatnip stack-diagnose --stack-name my-stack --tail 200 --tasks 10\n```\n\n**Description:**\n\nThe `stack-diagnose` command provides comprehensive diagnostics for failed CloudFormation stacks. If no stack name is provided, it automatically detects and diagnoses the last failed stack in your AWS account. The command displays:\n\n- **Stack Status**: Current CloudFormation stack status and reason for failure\n- **CloudFormation Events**: Recent stack events showing what failed during deployment\n- **ECS Diagnostics** (if applicable): If the stack contains ECS services, additional diagnostics are performed including:\n - Service event history\n - Recent stopped task logs\n - Container output for troubleshooting\n\n**Options:**\n\n- `--stack-name <name>` — CloudFormation stack name (optional; auto-detects last failed stack if omitted)\n- `--tail <n>` — Number of log lines to show per container (default: 100)\n- `--tasks <n>` — Number of recent stopped tasks to inspect (default: 5)\n- `--region <region>` — AWS region (uses AWS_DEFAULT_REGION / AWS_REGION environment variable if not specified)\n- `--profile <profile>` — AWS named profile for local development\n\n**Examples:**\n\n```bash\n# Quick diagnosis of last failed stack\ncatnip stack-diagnose\n\n# Diagnose specific stack with extended logging\ncatnip stack-diagnose --stack-name prod-api-stack --tail 500 --tasks 10\n\n# Use specific AWS profile and region\ncatnip stack-diagnose --profile my-profile --region eu-central-1\n```\n\n#### ecs-logs\n\nStream live logs from running ECS services in a CloudFormation stack.\n\n**Usage:**\n\n```bash\n# Stream logs from all ECS services in a stack\nnpx catnip ecs-logs --stack-name my-stack\n\n# Follow logs in real-time\nnpx catnip ecs-logs --stack-name my-stack --follow\n\n# Filter by service name and show last 50 lines\nnpx catnip ecs-logs --stack-name my-stack --tail 50 --service api\n\n# Raw JSON output (for piping to jq or pino-pretty)\nnpx catnip ecs-logs --stack-name my-stack --output raw\n\n# Pretty-printed JSON with colors\nnpx catnip ecs-logs --stack-name my-stack --output pretty\n```\n\n**Options:**\n\n- `--stack-name <name>` — CloudFormation stack name (required)\n- `--tail <n>` — Lines of history to show per container (default: 100)\n- `-f, --follow` — Keep polling for new log events\n- `--service <name>` — Filter services by name\n- `-o, --output <mode>` — Output mode: `text`, `raw`, or `pretty` (default: text)\n- `--region <region>` — AWS region\n- `--profile <profile>` — AWS profile\n\n## Documentation\n\n- [API Reference](./API.md)\n\n## License\n\nApache-2.0 © BTC Embedded Systems AG\n"
8500
+ "markdown": "# BTC Embedded CDK Extensions\n\n# @btc-embedded/cdk-extensions\n\nA collection of reusable AWS CDK (Cloud Development Kit) extensions and constructs for building cloud infrastructure with TypeScript.\n\n## Features\n\n- **CDK Constructs**: Includes ready-to-use constructs for API Gateway, Application Load Balancer, Cognito, VPC, DocumentDB, and more.\n- **ECS Service Extensions**: Provides ECS service extensions for advanced container orchestration.\n- **Utilities**: Common utilities and helpers for stack parameters, value imports, and configuration parsing.\n- **Modular Extensions**: Easily extend AWS resources with features like logging, OpenTelemetry, EFS, Cloud Map, and custom containers.\n\n## Installation\n\n```sh\nyarn install @btc-embedded/cdk-extensions\n```\n\n## Usage Example\n\n### Basic Usage\n\n```typescript\nimport { ApiGateway } from \"@btc-embedded/cdk-extensions\";\n\n// Use constructs and extensions in your CDK app\n```\n\n### Using ApplicationStack for Simplified Configuration\n\nFor application-level stacks that reference a base platform stack, use `ApplicationStack` to ensure consistent use of the base platform stack name:\n\n```typescript\nimport { ApplicationStack } from \"@btc-embedded/cdk-extensions\";\n\nexport class MyAppStack extends ApplicationStack {\n constructor(scope: Construct, id: string) {\n super(scope, id, {\n basePlatformStackName: \"my-platform-stack\",\n env: {\n account: \"123456789012\",\n region: \"eu-central-1\",\n },\n });\n\n // Constructs and extensions automatically resolve the platform stack name\n // No need to pass basePlatformStackName repeatedly\n }\n}\n```\n\n### Config-Driven Deployments\n\nUse `createApplicationApp` for configuration-driven deployments:\n\n```typescript\nimport {\n createApplicationApp,\n ApplicationStack,\n} from \"@btc-embedded/cdk-extensions\";\nimport { z } from \"zod\";\n\nconst configSchema = z.object({\n env: z.object({ account: z.string(), region: z.string() }),\n basePlatformStackName: z.string(),\n});\n\ncreateApplicationApp({\n directory: \"./config\",\n schema: configSchema,\n createStack: (scope, config) => new MyAppStack(scope, \"MyApp\", config),\n});\n```\n\n## CLI Commands\n\n### catnip — Cloud Toolkit by the CAT Department\n\nThe `catnip` CLI tool provides commands for cloud infrastructure diagnostics and management.\n\n#### stack-diagnose\n\nDiagnose CloudFormation stack deployment failures.\n\n**Usage:**\n\n```bash\n# Auto-detect and diagnose the last failed stack\ncatnip stack-diagnose\n\n# Diagnose a specific stack\ncatnip stack-diagnose --stack-name my-stack\n\n# Customize log output and task inspection\ncatnip stack-diagnose --stack-name my-stack --tail 200 --tasks 10\n```\n\n**Description:**\n\nThe `stack-diagnose` command provides comprehensive diagnostics for failed CloudFormation stacks. If no stack name is provided, it automatically detects and diagnoses the last failed stack in your AWS account. The command displays:\n\n- **Stack Status**: Current CloudFormation stack status and reason for failure\n- **CloudFormation Events**: Recent stack events showing what failed during deployment\n- **ECS Diagnostics** (if applicable): If the stack contains ECS services, additional diagnostics are performed including:\n - Service event history\n - Recent stopped task logs\n - Container output for troubleshooting\n\n**Options:**\n\n- `--stack-name <name>` — CloudFormation stack name (optional; auto-detects last failed stack if omitted)\n- `--stage <name>` — Filter stacks by stage name (e.g., 'prod', 'dev') when auto-detecting; only used if --stack-name is not provided\n- `--tail <n>` — Number of log lines to show per container (default: 100)\n- `--tasks <n>` — Number of recent stopped tasks to inspect (default: 5)\n- `--region <region>` — AWS region (uses AWS_DEFAULT_REGION / AWS_REGION environment variable if not specified)\n- `--profile <profile>` — AWS named profile for local development\n\n**Examples:**\n\n```bash\n# Quick diagnosis of last failed stack\ncatnip stack-diagnose\n\n# Auto-detect failed stack for a specific stage (useful when multiple stages in same account)\ncatnip stack-diagnose --stage prod\n\n# Diagnose specific stack with extended logging\ncatnip stack-diagnose --stack-name prod-api-stack --tail 500 --tasks 10\n\n# Use specific AWS profile and region\ncatnip stack-diagnose --profile my-profile --region eu-central-1\n```\n\n#### ecs-logs\n\nStream live logs from running ECS services in a CloudFormation stack.\n\n**Usage:**\n\n```bash\n# Stream logs from all ECS services in a stack\nnpx catnip ecs-logs --stack-name my-stack\n\n# Follow logs in real-time\nnpx catnip ecs-logs --stack-name my-stack --follow\n\n# Filter by service name and show last 50 lines\nnpx catnip ecs-logs --stack-name my-stack --tail 50 --service api\n\n# Raw JSON output (for piping to jq or pino-pretty)\nnpx catnip ecs-logs --stack-name my-stack --output raw\n\n# Pretty-printed JSON with colors\nnpx catnip ecs-logs --stack-name my-stack --output pretty\n```\n\n**Options:**\n\n- `--stack-name <name>` — CloudFormation stack name (required)\n- `--tail <n>` — Lines of history to show per container (default: 100)\n- `-f, --follow` — Keep polling for new log events\n- `--service <name>` — Filter services by name\n- `-o, --output <mode>` — Output mode: `text`, `raw`, or `pretty` (default: text)\n- `--region <region>` — AWS region\n- `--profile <profile>` — AWS profile\n\n## Documentation\n\n- [API Reference](./API.md)\n\n## License\n\nApache-2.0 © BTC Embedded Systems AG\n"
8501
8501
  },
8502
8502
  "repository": {
8503
8503
  "type": "git",
@@ -19883,6 +19883,6 @@
19883
19883
  "symbolId": "src/platform/VpcV2:VpcV2Props"
19884
19884
  }
19885
19885
  },
19886
- "version": "0.22.11",
19887
- "fingerprint": "tFOP05AizrkdYOh25E8nhxF4BCsuHDrs+B731DuvmNQ="
19886
+ "version": "0.22.12",
19887
+ "fingerprint": "vVdhIzE4n7lhVu3V5P8r4sGtCjXxsaLrtBn883wlaTw="
19888
19888
  }
package/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
1
 
2
+ ## [0.22.11](https://github.com/btc-embedded/cdk-extensions/compare/v0.22.10...v0.22.11) (2026-02-25)
3
+
4
+
5
+ ### Features
6
+
7
+ * **cli:** add catnip ecs-logs command for live CloudWatch log streaming ([55716ba](https://github.com/btc-embedded/cdk-extensions/commit/55716ba1c446ccfc740e1be29b19b64d85c6f475))
8
+
2
9
  ## [0.22.10](https://github.com/btc-embedded/cdk-extensions/compare/v0.22.9...v0.22.10) (2026-02-25)
3
10
 
4
11
 
package/README.md CHANGED
@@ -110,6 +110,7 @@ The `stack-diagnose` command provides comprehensive diagnostics for failed Cloud
110
110
  **Options:**
111
111
 
112
112
  - `--stack-name <name>` — CloudFormation stack name (optional; auto-detects last failed stack if omitted)
113
+ - `--stage <name>` — Filter stacks by stage name (e.g., 'prod', 'dev') when auto-detecting; only used if --stack-name is not provided
113
114
  - `--tail <n>` — Number of log lines to show per container (default: 100)
114
115
  - `--tasks <n>` — Number of recent stopped tasks to inspect (default: 5)
115
116
  - `--region <region>` — AWS region (uses AWS_DEFAULT_REGION / AWS_REGION environment variable if not specified)
@@ -121,6 +122,9 @@ The `stack-diagnose` command provides comprehensive diagnostics for failed Cloud
121
122
  # Quick diagnosis of last failed stack
122
123
  catnip stack-diagnose
123
124
 
125
+ # Auto-detect failed stack for a specific stage (useful when multiple stages in same account)
126
+ catnip stack-diagnose --stage prod
127
+
124
128
  # Diagnose specific stack with extended logging
125
129
  catnip stack-diagnose --stack-name prod-api-stack --tail 500 --tasks 10
126
130
 
@@ -184,7 +184,7 @@ Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.ht
184
184
  However, a future version may change this behavior to prefer the ENV static credentials.
185
185
  Please ensure that your environment only sets either the AWS_PROFILE or the
186
186
  AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.
187
- `),w5e=!0)),new qT.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),mte.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new qT.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>T(vee()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>T(D5e()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>T(cte()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>T(lte()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await dwr(t))()),async()=>{throw new qT.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],$5e),gwr=t=>t?.expiration!==void 0,$5e=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;BB.credentialsTreatedAsExpired=$5e;BB.credentialsWillNeedRefresh=gwr;BB.defaultProvider=fwr});var J5e=O(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.ruleSet=void 0;var K5e="required",fo="fn",go="argv",Nf="ref",Op="properties",kp="headers",k5e=!0,N5e="isSet",BT="booleanEquals",fy="error",Rc="endpoint",Yu="tree",GB="PartitionResult",fte="stringEquals",L5e={[K5e]:!1,type:"string"},U5e={[K5e]:!0,default:!1,type:"boolean"},F5e={[Nf]:"Endpoint"},Q5e={[fo]:BT,[go]:[{[Nf]:"UseFIPS"},!0]},Y5e={[fo]:BT,[go]:[{[Nf]:"UseDualStack"},!0]},$i={},M5e={[fo]:"getAttr",[go]:[{[Nf]:GB},"supportsFIPS"]},q5e={[fo]:BT,[go]:[!0,{[fo]:"getAttr",[go]:[{[Nf]:GB},"supportsDualStack"]}]},gte={[fo]:"getAttr",[go]:[{[Nf]:GB},"name"]},B5e={url:"https://secretsmanager-fips.{Region}.amazonaws.com",[Op]:{},[kp]:{}},G5e={url:"https://secretsmanager.{Region}.amazonaws.com",[Op]:{},[kp]:{}},H5e=[Q5e],V5e=[Y5e],j5e=[{[Nf]:"Region"}],W5e=[{[fo]:fte,[go]:["aws",gte]}],z5e=[{[fo]:fte,[go]:["aws-us-gov",gte]}],hwr={version:"1.0",parameters:{Region:L5e,UseDualStack:U5e,UseFIPS:U5e,Endpoint:L5e},rules:[{conditions:[{[fo]:N5e,[go]:[F5e]}],rules:[{conditions:H5e,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:fy},{conditions:V5e,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:fy},{endpoint:{url:F5e,[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{conditions:[{[fo]:N5e,[go]:j5e}],rules:[{conditions:[{[fo]:"aws.partition",[go]:j5e,assign:GB}],rules:[{conditions:[Q5e,Y5e],rules:[{conditions:[{[fo]:BT,[go]:[k5e,M5e]},q5e],rules:[{conditions:W5e,endpoint:B5e,type:Rc},{conditions:z5e,endpoint:B5e,type:Rc},{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:fy}],type:Yu},{conditions:H5e,rules:[{conditions:[{[fo]:BT,[go]:[M5e,k5e]}],rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"FIPS is enabled but this partition does not support FIPS",type:fy}],type:Yu},{conditions:V5e,rules:[{conditions:[q5e],rules:[{conditions:W5e,endpoint:G5e,type:Rc},{conditions:[{[fo]:fte,[go]:["aws-cn",gte]}],endpoint:{url:"https://secretsmanager.{Region}.amazonaws.com.cn",[Op]:$i,[kp]:$i},type:Rc},{conditions:z5e,endpoint:G5e,type:Rc},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"DualStack is enabled but this partition does not support DualStack",type:fy}],type:Yu},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu}],type:Yu},{error:"Invalid Configuration: Missing Region",type:fy}]};HB.ruleSet=hwr});var X5e=O(VB=>{"use strict";Object.defineProperty(VB,"__esModule",{value:!0});VB.defaultEndpointResolver=void 0;var Swr=yf(),hte=Hn(),ywr=J5e(),Ewr=new hte.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Cwr=(t,e={})=>Ewr.get(t,()=>(0,hte.resolveEndpoint)(ywr.ruleSet,{endpointParams:t,logger:e.logger}));VB.defaultEndpointResolver=Cwr;hte.customEndpointFunctions.aws=Swr.awsEndpointFunctions});var tQe=O(jB=>{"use strict";Object.defineProperty(jB,"__esModule",{value:!0});jB.getRuntimeConfig=void 0;var _wr=(Un(),J(Sp)),Rwr=(Ef(),J(BZ)),Twr=lt(),Awr=Sn(),Z5e=De(),eQe=He(),Pwr=QZ(),vwr=X5e(),bwr=t=>({apiVersion:"2017-10-17",base64Decoder:t?.base64Decoder??Z5e.fromBase64,base64Encoder:t?.base64Encoder??Z5e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??vwr.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??Pwr.defaultSecretsManagerHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new _wr.AwsSdkSigV4Signer}],logger:t?.logger??new Twr.NoOpLogger,protocol:t?.protocol??Rwr.AwsJson1_1Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.secretsmanager",version:"2017-10-17",serviceTarget:"secretsmanager"},serviceId:t?.serviceId??"Secrets Manager",urlParser:t?.urlParser??Awr.parseUrl,utf8Decoder:t?.utf8Decoder??eQe.fromUtf8,utf8Encoder:t?.utf8Encoder??eQe.toUtf8});jB.getRuntimeConfig=bwr});var aQe=O(zB=>{"use strict";Object.defineProperty(zB,"__esModule",{value:!0});zB.getRuntimeConfig=void 0;var Iwr=(Cs(),J(Es)),Dwr=Iwr.__importDefault(dWe()),rQe=(Un(),J(Sp)),xwr=O5e(),nQe=ZS(),WB=At(),wwr=Co(),sQe=ca(),Lf=Jr(),oQe=_f(),iQe=lt(),$wr=Cn(),Owr=ey(),kwr=vs(),Nwr=tQe(),Lwr=t=>{(0,iQe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Owr.resolveDefaultsModeConfig)(t),r=()=>e().then(iQe.loadConfigsForDefaultMode),n=(0,Nwr.getRuntimeConfig)(t);(0,rQe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Lf.loadConfig)(rQe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??$wr.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??xwr.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,nQe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Dwr.default.version}),maxAttempts:t?.maxAttempts??(0,Lf.loadConfig)(sQe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Lf.loadConfig)(WB.NODE_REGION_CONFIG_OPTIONS,{...WB.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:oQe.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Lf.loadConfig)({...sQe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||kwr.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??wwr.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??oQe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Lf.loadConfig)(WB.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Lf.loadConfig)(WB.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Lf.loadConfig)(nQe.NODE_APP_ID_CONFIG_OPTIONS,s)}};zB.getRuntimeConfig=Lwr});var Pte=O(K=>{"use strict";var cQe=bS(),Uwr=IS(),Fwr=DS(),uQe=Cf(),Mwr=At(),gy=(zs(),J(US)),ho=(bt(),J(gq)),qwr=yo(),Pr=hc(),lQe=ca(),kt=lt(),dQe=QZ(),Bwr=aQe(),pQe=Tf(),mQe=qe(),Gwr=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"secretsmanager"}),$r={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},Hwr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Vwr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),jwr=(t,e)=>{let r=Object.assign(pQe.getAwsRegionExtensionConfiguration(t),kt.getDefaultExtensionConfiguration(t),mQe.getHttpHandlerExtensionConfiguration(t),Hwr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,pQe.resolveAwsRegionExtensionConfiguration(r),kt.resolveDefaultRuntimeConfig(r),mQe.resolveHttpHandlerRuntimeConfig(r),Vwr(r))},Uf=class extends kt.Client{config;constructor(...[e]){let r=Bwr.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=Gwr(r),s=uQe.resolveUserAgentConfig(n),o=lQe.resolveRetryConfig(s),i=Mwr.resolveRegionConfig(o),a=cQe.resolveHostHeaderConfig(i),c=Pr.resolveEndpointConfig(a),u=dQe.resolveHttpAuthSchemeConfig(c),f=jwr(u,e?.extensions||[]);this.config=f,this.middlewareStack.use(ho.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(uQe.getUserAgentPlugin(this.config)),this.middlewareStack.use(lQe.getRetryPlugin(this.config)),this.middlewareStack.use(qwr.getContentLengthPlugin(this.config)),this.middlewareStack.use(cQe.getHostHeaderPlugin(this.config)),this.middlewareStack.use(Uwr.getLoggerPlugin(this.config)),this.middlewareStack.use(Fwr.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(gy.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:dQe.defaultSecretsManagerHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async m=>new gy.DefaultIdentityProviderConfig({"aws.auth#sigv4":m.credentials})})),this.middlewareStack.use(gy.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},Ss=class t extends kt.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}},KB=class t extends Ss{name="DecryptionFailure";$fault="client";Message;constructor(e){super({name:"DecryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},QB=class t extends Ss{name="InternalServiceError";$fault="server";Message;constructor(e){super({name:"InternalServiceError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},YB=class t extends Ss{name="InvalidNextTokenException";$fault="client";Message;constructor(e){super({name:"InvalidNextTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},JB=class t extends Ss{name="InvalidParameterException";$fault="client";Message;constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},XB=class t extends Ss{name="InvalidRequestException";$fault="client";Message;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},ZB=class t extends Ss{name="ResourceNotFoundException";$fault="client";Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},eG=class t extends Ss{name="EncryptionFailure";$fault="client";Message;constructor(e){super({name:"EncryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},tG=class t extends Ss{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},rG=class t extends Ss{name="MalformedPolicyDocumentException";$fault="client";Message;constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},nG=class t extends Ss{name="PreconditionNotMetException";$fault="client";Message;constructor(e){super({name:"PreconditionNotMetException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},sG=class t extends Ss{name="ResourceExistsException";$fault="client";Message;constructor(e){super({name:"ResourceExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},oG=class t extends Ss{name="PublicPolicyException";$fault="client";Message;constructor(e){super({name:"PublicPolicyException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Wwr="AutomaticallyAfterDays",zwr="APIErrorListType",Kwr="APIErrorType",fn="ARN",fQe="AddReplicaRegions",Qwr="AddReplicaRegionListType",Ywr="BatchGetSecretValue",Jwr="BatchGetSecretValueRequest",Xwr="BatchGetSecretValueResponse",Zwr="BlockPublicPolicy",jT="CreatedDate",e$r="CheckName",t$r="CancelRotateSecret",r$r="CancelRotateSecretRequest",n$r="CancelRotateSecretResponse",bG="ClientRequestToken",s$r="CreateSecret",o$r="CreateSecretRequest",i$r="CreateSecretResponse",IG="Description",a$r="DeletionDate",gQe="DeletedDate",c$r="DecryptionFailure",u$r="DeleteResourcePolicy",l$r="DeleteResourcePolicyRequest",d$r="DeleteResourcePolicyResponse",p$r="DeleteSecret",m$r="DeleteSecretRequest",f$r="DeleteSecretResponse",g$r="DescribeSecretRequest",h$r="DescribeSecretResponse",S$r="DescribeSecret",y$r="Duration",E$r="Errors",C$r="ErrorCode",_$r="ExcludeCharacters",R$r="EncryptionFailure",T$r="ExcludeLowercase",A$r="ErrorMessage",P$r="ExcludeNumbers",v$r="ExcludePunctuation",Ste="ExternalSecretRotationMetadata",b$r="ExternalSecretRotationMetadataItem",I$r="ExternalSecretRotationMetadataType",yte="ExternalSecretRotationRoleArn",D$r="ExcludeUppercase",hQe="Filters",x$r="ForceDeleteWithoutRecovery",w$r="FiltersListType",SQe="ForceOverwriteReplicaSecret",$$r="Filter",O$r="GetRandomPassword",k$r="GetRandomPasswordRequest",N$r="GetRandomPasswordResponse",L$r="GetResourcePolicyRequest",U$r="GetResourcePolicyResponse",F$r="GetResourcePolicy",M$r="GetSecretValue",q$r="GetSecretValueRequest",B$r="GetSecretValueResponse",G$r="IncludeDeprecated",H$r="InvalidNextTokenException",V$r="IncludePlannedDeletion",j$r="InvalidParameterException",W$r="InvalidRequestException",z$r="IncludeSpace",K$r="InternalServiceError",Ete="Key",hy="KmsKeyId",Q$r="KmsKeyIds",DG="LastAccessedDate",yQe="LastChangedDate",Y$r="LimitExceededException",EQe="LastRotatedDate",J$r="ListSecrets",X$r="ListSecretsRequest",Z$r="ListSecretsResponse",eOr="ListSecretVersionIds",tOr="ListSecretVersionIdsRequest",rOr="ListSecretVersionIdsResponse",qo="Message",nOr="MalformedPolicyDocumentException",Cte="MaxResults",sOr="MoveToVersionId",qn="Name",CQe="NextRotationDate",Sy="NextToken",_Qe="OwningService",oOr="PasswordLength",iOr="PreconditionNotMetException",aOr="PublicPolicyException",RQe="PrimaryRegion",cOr="PutResourcePolicy",uOr="PutResourcePolicyRequest",lOr="PutResourcePolicyResponse",dOr="PutSecretValue",pOr="PutSecretValueRequest",mOr="PutSecretValueResponse",fOr="PolicyValidationPassed",TQe="Region",AQe="RotationEnabled",gOr="ResourceExistsException",hOr="RequireEachIncludedType",SOr="RemoveFromVersionId",yOr="RotateImmediately",_te="RotationLambdaARN",EOr="ResourceNotFoundException",COr="RandomPassword",_Or="RandomPasswordType",Rte="ResourcePolicy",Tte="RotationRules",ROr="RemoveRegionsFromReplication",TOr="RemoveRegionsFromReplicationRequest",AOr="RemoveRegionsFromReplicationResponse",POr="RemoveReplicaRegions",vOr="ReplicaRegionType",bOr="RotationRulesType",xG="ReplicationStatus",IOr="ReplicationStatusListType",DOr="RestoreSecretRequest",xOr="RestoreSecretResponse",wOr="RotateSecretRequest",$Or="RotateSecretResponse",OOr="ReplicationStatusType",kOr="ReplicateSecretToRegions",NOr="ReplicateSecretToRegionsRequest",LOr="ReplicateSecretToRegionsResponse",UOr="RestoreSecret",FOr="RotateSecret",MOr="RotationToken",qOr="RotationTokenType",BOr="RecoveryWindowInDays",GOr="Status",WT="SecretBinary",HOr="SecretBinaryType",VOr="SortBy",jOr="ScheduleExpression",sn="SecretId",WOr="SecretIdList",zOr="SecretList",KOr="SecretListEntry",QOr="SecretListType",YOr="StatusMessage",JOr="SortOrder",XOr="StopReplicationToReplica",ZOr="StopReplicationToReplicaRequest",ekr="StopReplicationToReplicaResponse",zT="SecretString",tkr="SecretStringType",rkr="SecretValues",nkr="SecretValueEntry",skr="SecretVersionsListEntry",okr="SecretVersionsListType",ikr="SecretValuesType",akr="SecretVersionsToStages",PQe="SecretVersionsToStagesMapType",wG="Tags",ckr="TagKeys",ukr="TagListType",lkr="TagResource",dkr="TagResourceRequest",pkr="Tag",$G="Type",mkr="UntagResource",fkr="UntagResourceRequest",gkr="UpdateSecret",hkr="UpdateSecretRequest",Skr="UpdateSecretResponse",ykr="UpdateSecretVersionStage",Ekr="UpdateSecretVersionStageRequest",Ckr="UpdateSecretVersionStageResponse",vQe="Value",_kr="ValidationErrors",Rkr="ValidationErrorsEntry",Tkr="ValidationErrorsType",Ju="VersionId",Akr="VersionIdsToStages",Pkr="ValidateResourcePolicy",vkr="ValidateResourcePolicyRequest",bkr="ValidateResourcePolicyResponse",bQe="VersionStage",KT="VersionStages",Ikr="Values",Dkr="Versions",ga="client",Oi="error",xkr="server",IQe="smithy.ts.sdk.synthetic.com.amazonaws.secretsmanager",ee="com.amazonaws.secretsmanager",wkr=[0,ee,_Or,8,0],$kr=[0,ee,qOr,8,0],QT=[0,ee,HOr,8,21],YT=[0,ee,tkr,8,0],DQe=[3,ee,Kwr,0,[sn,C$r,qo],[0,0,0]],xQe=[3,ee,Jwr,0,[WOr,hQe,Cte,Sy],[64,()=>VYe,1,0]],wQe=[3,ee,Xwr,0,[rkr,Sy,E$r],[[()=>Nkr,0],0,()=>Okr]],$Qe=[3,ee,r$r,0,[sn],[0],1],OQe=[3,ee,n$r,0,[fn,qn,Ju],[0,0,0]],kQe=[3,ee,o$r,0,[qn,bG,IG,hy,WT,zT,wG,fQe,SQe,$G],[0,[0,4],0,0,[()=>QT,0],[()=>YT,0],()=>NG,()=>HYe,2,0],1],NQe=[3,ee,i$r,0,[fn,qn,Ju,xG],[0,0,0,()=>kG]],LQe=[-3,ee,c$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(LQe,KB);var UQe=[3,ee,l$r,0,[sn],[0],1],FQe=[3,ee,d$r,0,[fn,qn],[0,0]],MQe=[3,ee,m$r,0,[sn,BOr,x$r],[0,1,2],1],qQe=[3,ee,f$r,0,[fn,qn,a$r],[0,0,4]],BQe=[3,ee,g$r,0,[sn],[0],1],GQe=[3,ee,h$r,0,[fn,qn,$G,IG,hy,AQe,_te,Tte,Ste,yte,EQe,yQe,DG,gQe,CQe,wG,Akr,_Qe,jT,RQe,xG],[0,0,0,0,0,2,0,()=>OG,()=>Ate,0,4,4,4,4,4,()=>NG,[2,ee,PQe,0,0,64],0,4,0,()=>kG]],HQe=[-3,ee,R$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(HQe,eG);var VQe=[3,ee,b$r,0,[Ete,vQe],[0,0]],jQe=[3,ee,$$r,0,[Ete,Ikr],[0,64]],WQe=[3,ee,k$r,0,[oOr,_$r,P$r,v$r,D$r,T$r,z$r,hOr],[1,0,2,2,2,2,2,2]],zQe=[3,ee,N$r,0,[COr],[[()=>wkr,0]]],KQe=[3,ee,L$r,0,[sn],[0],1],QQe=[3,ee,U$r,0,[fn,qn,Rte],[0,0,0]],YQe=[3,ee,q$r,0,[sn,Ju,bQe],[0,0,0],1],JQe=[3,ee,B$r,0,[fn,qn,Ju,WT,zT,KT,jT],[0,0,0,[()=>QT,0],[()=>YT,0],64,4]],XQe=[-3,ee,K$r,{[Oi]:xkr},[qo],[0]];ho.TypeRegistry.for(ee).registerError(XQe,QB);var ZQe=[-3,ee,H$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(ZQe,YB);var eYe=[-3,ee,j$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(eYe,JB);var tYe=[-3,ee,W$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(tYe,XB);var rYe=[-3,ee,Y$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(rYe,tG);var nYe=[3,ee,X$r,0,[V$r,Cte,Sy,hQe,JOr,VOr],[2,1,0,()=>VYe,0,0]],sYe=[3,ee,Z$r,0,[zOr,Sy],[()=>kkr,0]],oYe=[3,ee,tOr,0,[sn,Cte,Sy,G$r],[0,1,0,2],1],iYe=[3,ee,rOr,0,[Dkr,Sy,fn,qn],[()=>Lkr,0,0,0]],aYe=[-3,ee,nOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(aYe,rG);var cYe=[-3,ee,iOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(cYe,nG);var uYe=[-3,ee,aOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(uYe,oG);var lYe=[3,ee,uOr,0,[sn,Rte,Zwr],[0,0,2],2],dYe=[3,ee,lOr,0,[fn,qn],[0,0]],pYe=[3,ee,pOr,0,[sn,bG,WT,zT,KT,MOr],[0,[0,4],[()=>QT,0],[()=>YT,0],64,[()=>$kr,0]],1],mYe=[3,ee,mOr,0,[fn,qn,Ju,KT],[0,0,0,64]],fYe=[3,ee,TOr,0,[sn,POr],[0,64],2],gYe=[3,ee,AOr,0,[fn,xG],[0,()=>kG]],hYe=[3,ee,vOr,0,[TQe,hy],[0,0]],SYe=[3,ee,NOr,0,[sn,fQe,SQe],[0,()=>HYe,2],2],yYe=[3,ee,LOr,0,[fn,xG],[0,()=>kG]],EYe=[3,ee,OOr,0,[TQe,hy,GOr,YOr,DG],[0,0,0,0,4]],CYe=[-3,ee,gOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(CYe,sG);var _Ye=[-3,ee,EOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(_Ye,ZB);var RYe=[3,ee,DOr,0,[sn],[0],1],TYe=[3,ee,xOr,0,[fn,qn],[0,0]],AYe=[3,ee,wOr,0,[sn,bG,_te,Tte,Ste,yte,yOr],[0,[0,4],0,()=>OG,()=>Ate,0,2],1],PYe=[3,ee,$Or,0,[fn,qn,Ju],[0,0,0]],OG=[3,ee,bOr,0,[Wwr,y$r,jOr],[1,0,0]],vYe=[3,ee,KOr,0,[fn,qn,$G,IG,hy,AQe,_te,Tte,Ste,yte,EQe,yQe,DG,gQe,CQe,wG,akr,_Qe,jT,RQe],[0,0,0,0,0,2,0,()=>OG,()=>Ate,0,4,4,4,4,4,()=>NG,[2,ee,PQe,0,0,64],0,4,0]],bYe=[3,ee,nkr,0,[fn,qn,Ju,WT,zT,KT,jT],[0,0,0,[()=>QT,0],[()=>YT,0],64,4]],IYe=[3,ee,skr,0,[Ju,KT,DG,jT,Q$r],[0,64,4,4,64]],DYe=[3,ee,ZOr,0,[sn],[0],1],xYe=[3,ee,ekr,0,[fn],[0]],wYe=[3,ee,pkr,0,[Ete,vQe],[0,0]],$Ye=[3,ee,dkr,0,[sn,wG],[0,()=>NG],2],OYe=[3,ee,fkr,0,[sn,ckr],[0,64],2],kYe=[3,ee,hkr,0,[sn,bG,IG,hy,WT,zT,$G],[0,[0,4],0,0,[()=>QT,0],[()=>YT,0],0],1],NYe=[3,ee,Skr,0,[fn,qn,Ju],[0,0,0]],LYe=[3,ee,Ekr,0,[sn,bQe,SOr,sOr],[0,0,0,0],2],UYe=[3,ee,Ckr,0,[fn,qn],[0,0]],FYe=[3,ee,vkr,0,[Rte,sn],[0,0],1],MYe=[3,ee,bkr,0,[fOr,_kr],[2,()=>Ukr]],qYe=[3,ee,Rkr,0,[e$r,A$r],[0,0]],BYe="unit",GYe=[-3,IQe,"SecretsManagerServiceException",0,[],[]];ho.TypeRegistry.for(IQe).registerError(GYe,Ss);var HYe=[1,ee,Qwr,0,()=>hYe],Okr=[1,ee,zwr,0,()=>DQe],Ate=[1,ee,I$r,0,()=>VQe],VYe=[1,ee,w$r,0,()=>jQe],kG=[1,ee,IOr,0,()=>EYe],kkr=[1,ee,QOr,0,()=>vYe],Nkr=[1,ee,ikr,0,[()=>bYe,0]],Lkr=[1,ee,okr,0,()=>IYe],NG=[1,ee,ukr,0,()=>wYe],Ukr=[1,ee,Tkr,0,()=>qYe],jYe=[9,ee,Ywr,0,()=>xQe,()=>wQe],WYe=[9,ee,t$r,0,()=>$Qe,()=>OQe],zYe=[9,ee,s$r,0,()=>kQe,()=>NQe],KYe=[9,ee,u$r,0,()=>UQe,()=>FQe],QYe=[9,ee,p$r,0,()=>MQe,()=>qQe],YYe=[9,ee,S$r,0,()=>BQe,()=>GQe],JYe=[9,ee,O$r,0,()=>WQe,()=>zQe],XYe=[9,ee,F$r,0,()=>KQe,()=>QQe],ZYe=[9,ee,M$r,0,()=>YQe,()=>JQe],e7e=[9,ee,J$r,0,()=>nYe,()=>sYe],t7e=[9,ee,eOr,0,()=>oYe,()=>iYe],r7e=[9,ee,cOr,0,()=>lYe,()=>dYe],n7e=[9,ee,dOr,0,()=>pYe,()=>mYe],s7e=[9,ee,ROr,0,()=>fYe,()=>gYe],o7e=[9,ee,kOr,0,()=>SYe,()=>yYe],i7e=[9,ee,UOr,0,()=>RYe,()=>TYe],a7e=[9,ee,FOr,0,()=>AYe,()=>PYe],c7e=[9,ee,XOr,0,()=>DYe,()=>xYe],u7e=[9,ee,lkr,0,()=>$Ye,()=>BYe],l7e=[9,ee,mkr,0,()=>OYe,()=>BYe],d7e=[9,ee,gkr,0,()=>kYe,()=>NYe],p7e=[9,ee,ykr,0,()=>LYe,()=>UYe],m7e=[9,ee,Pkr,0,()=>FYe,()=>MYe],GT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","BatchGetSecretValue",{}).n("SecretsManagerClient","BatchGetSecretValueCommand").sc(jYe).build(){},iG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CancelRotateSecret",{}).n("SecretsManagerClient","CancelRotateSecretCommand").sc(WYe).build(){},aG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CreateSecret",{}).n("SecretsManagerClient","CreateSecretCommand").sc(zYe).build(){},cG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteResourcePolicy",{}).n("SecretsManagerClient","DeleteResourcePolicyCommand").sc(KYe).build(){},uG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteSecret",{}).n("SecretsManagerClient","DeleteSecretCommand").sc(QYe).build(){},lG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DescribeSecret",{}).n("SecretsManagerClient","DescribeSecretCommand").sc(YYe).build(){},dG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetRandomPassword",{}).n("SecretsManagerClient","GetRandomPasswordCommand").sc(JYe).build(){},pG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetResourcePolicy",{}).n("SecretsManagerClient","GetResourcePolicyCommand").sc(XYe).build(){},mG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetSecretValue",{}).n("SecretsManagerClient","GetSecretValueCommand").sc(ZYe).build(){},HT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecrets",{}).n("SecretsManagerClient","ListSecretsCommand").sc(e7e).build(){},VT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecretVersionIds",{}).n("SecretsManagerClient","ListSecretVersionIdsCommand").sc(t7e).build(){},fG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutResourcePolicy",{}).n("SecretsManagerClient","PutResourcePolicyCommand").sc(r7e).build(){},gG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutSecretValue",{}).n("SecretsManagerClient","PutSecretValueCommand").sc(n7e).build(){},hG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RemoveRegionsFromReplication",{}).n("SecretsManagerClient","RemoveRegionsFromReplicationCommand").sc(s7e).build(){},SG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ReplicateSecretToRegions",{}).n("SecretsManagerClient","ReplicateSecretToRegionsCommand").sc(o7e).build(){},yG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RestoreSecret",{}).n("SecretsManagerClient","RestoreSecretCommand").sc(i7e).build(){},EG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RotateSecret",{}).n("SecretsManagerClient","RotateSecretCommand").sc(a7e).build(){},CG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","StopReplicationToReplica",{}).n("SecretsManagerClient","StopReplicationToReplicaCommand").sc(c7e).build(){},_G=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","TagResource",{}).n("SecretsManagerClient","TagResourceCommand").sc(u7e).build(){},RG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UntagResource",{}).n("SecretsManagerClient","UntagResourceCommand").sc(l7e).build(){},TG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecret",{}).n("SecretsManagerClient","UpdateSecretCommand").sc(d7e).build(){},AG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecretVersionStage",{}).n("SecretsManagerClient","UpdateSecretVersionStageCommand").sc(p7e).build(){},PG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ValidateResourcePolicy",{}).n("SecretsManagerClient","ValidateResourcePolicyCommand").sc(m7e).build(){},Fkr={BatchGetSecretValueCommand:GT,CancelRotateSecretCommand:iG,CreateSecretCommand:aG,DeleteResourcePolicyCommand:cG,DeleteSecretCommand:uG,DescribeSecretCommand:lG,GetRandomPasswordCommand:dG,GetResourcePolicyCommand:pG,GetSecretValueCommand:mG,ListSecretsCommand:HT,ListSecretVersionIdsCommand:VT,PutResourcePolicyCommand:fG,PutSecretValueCommand:gG,RemoveRegionsFromReplicationCommand:hG,ReplicateSecretToRegionsCommand:SG,RestoreSecretCommand:yG,RotateSecretCommand:EG,StopReplicationToReplicaCommand:CG,TagResourceCommand:_G,UntagResourceCommand:RG,UpdateSecretCommand:TG,UpdateSecretVersionStageCommand:AG,ValidateResourcePolicyCommand:PG},vG=class extends Uf{};kt.createAggregatedClient(Fkr,vG);var Mkr=gy.createPaginator(Uf,GT,"NextToken","NextToken","MaxResults"),qkr=gy.createPaginator(Uf,HT,"NextToken","NextToken","MaxResults"),Bkr=gy.createPaginator(Uf,VT,"NextToken","NextToken","MaxResults"),Gkr={all:"all",description:"description",name:"name",owning_service:"owning-service",primary_region:"primary-region",tag_key:"tag-key",tag_value:"tag-value"},Hkr={Failed:"Failed",InProgress:"InProgress",InSync:"InSync"},Vkr={created_date:"created-date",last_accessed_date:"last-accessed-date",last_changed_date:"last-changed-date",name:"name"},jkr={asc:"asc",desc:"desc"};Object.defineProperty(K,"$Command",{enumerable:!0,get:function(){return kt.Command}});Object.defineProperty(K,"__Client",{enumerable:!0,get:function(){return kt.Client}});K.APIErrorType$=DQe;K.BatchGetSecretValue$=jYe;K.BatchGetSecretValueCommand=GT;K.BatchGetSecretValueRequest$=xQe;K.BatchGetSecretValueResponse$=wQe;K.CancelRotateSecret$=WYe;K.CancelRotateSecretCommand=iG;K.CancelRotateSecretRequest$=$Qe;K.CancelRotateSecretResponse$=OQe;K.CreateSecret$=zYe;K.CreateSecretCommand=aG;K.CreateSecretRequest$=kQe;K.CreateSecretResponse$=NQe;K.DecryptionFailure=KB;K.DecryptionFailure$=LQe;K.DeleteResourcePolicy$=KYe;K.DeleteResourcePolicyCommand=cG;K.DeleteResourcePolicyRequest$=UQe;K.DeleteResourcePolicyResponse$=FQe;K.DeleteSecret$=QYe;K.DeleteSecretCommand=uG;K.DeleteSecretRequest$=MQe;K.DeleteSecretResponse$=qQe;K.DescribeSecret$=YYe;K.DescribeSecretCommand=lG;K.DescribeSecretRequest$=BQe;K.DescribeSecretResponse$=GQe;K.EncryptionFailure=eG;K.EncryptionFailure$=HQe;K.ExternalSecretRotationMetadataItem$=VQe;K.Filter$=jQe;K.FilterNameStringType=Gkr;K.GetRandomPassword$=JYe;K.GetRandomPasswordCommand=dG;K.GetRandomPasswordRequest$=WQe;K.GetRandomPasswordResponse$=zQe;K.GetResourcePolicy$=XYe;K.GetResourcePolicyCommand=pG;K.GetResourcePolicyRequest$=KQe;K.GetResourcePolicyResponse$=QQe;K.GetSecretValue$=ZYe;K.GetSecretValueCommand=mG;K.GetSecretValueRequest$=YQe;K.GetSecretValueResponse$=JQe;K.InternalServiceError=QB;K.InternalServiceError$=XQe;K.InvalidNextTokenException=YB;K.InvalidNextTokenException$=ZQe;K.InvalidParameterException=JB;K.InvalidParameterException$=eYe;K.InvalidRequestException=XB;K.InvalidRequestException$=tYe;K.LimitExceededException=tG;K.LimitExceededException$=rYe;K.ListSecretVersionIds$=t7e;K.ListSecretVersionIdsCommand=VT;K.ListSecretVersionIdsRequest$=oYe;K.ListSecretVersionIdsResponse$=iYe;K.ListSecrets$=e7e;K.ListSecretsCommand=HT;K.ListSecretsRequest$=nYe;K.ListSecretsResponse$=sYe;K.MalformedPolicyDocumentException=rG;K.MalformedPolicyDocumentException$=aYe;K.PreconditionNotMetException=nG;K.PreconditionNotMetException$=cYe;K.PublicPolicyException=oG;K.PublicPolicyException$=uYe;K.PutResourcePolicy$=r7e;K.PutResourcePolicyCommand=fG;K.PutResourcePolicyRequest$=lYe;K.PutResourcePolicyResponse$=dYe;K.PutSecretValue$=n7e;K.PutSecretValueCommand=gG;K.PutSecretValueRequest$=pYe;K.PutSecretValueResponse$=mYe;K.RemoveRegionsFromReplication$=s7e;K.RemoveRegionsFromReplicationCommand=hG;K.RemoveRegionsFromReplicationRequest$=fYe;K.RemoveRegionsFromReplicationResponse$=gYe;K.ReplicaRegionType$=hYe;K.ReplicateSecretToRegions$=o7e;K.ReplicateSecretToRegionsCommand=SG;K.ReplicateSecretToRegionsRequest$=SYe;K.ReplicateSecretToRegionsResponse$=yYe;K.ReplicationStatusType$=EYe;K.ResourceExistsException=sG;K.ResourceExistsException$=CYe;K.ResourceNotFoundException=ZB;K.ResourceNotFoundException$=_Ye;K.RestoreSecret$=i7e;K.RestoreSecretCommand=yG;K.RestoreSecretRequest$=RYe;K.RestoreSecretResponse$=TYe;K.RotateSecret$=a7e;K.RotateSecretCommand=EG;K.RotateSecretRequest$=AYe;K.RotateSecretResponse$=PYe;K.RotationRulesType$=OG;K.SecretListEntry$=vYe;K.SecretValueEntry$=bYe;K.SecretVersionsListEntry$=IYe;K.SecretsManager=vG;K.SecretsManagerClient=Uf;K.SecretsManagerServiceException=Ss;K.SecretsManagerServiceException$=GYe;K.SortByType=Vkr;K.SortOrderType=jkr;K.StatusType=Hkr;K.StopReplicationToReplica$=c7e;K.StopReplicationToReplicaCommand=CG;K.StopReplicationToReplicaRequest$=DYe;K.StopReplicationToReplicaResponse$=xYe;K.Tag$=wYe;K.TagResource$=u7e;K.TagResourceCommand=_G;K.TagResourceRequest$=$Ye;K.UntagResource$=l7e;K.UntagResourceCommand=RG;K.UntagResourceRequest$=OYe;K.UpdateSecret$=d7e;K.UpdateSecretCommand=TG;K.UpdateSecretRequest$=kYe;K.UpdateSecretResponse$=NYe;K.UpdateSecretVersionStage$=p7e;K.UpdateSecretVersionStageCommand=AG;K.UpdateSecretVersionStageRequest$=LYe;K.UpdateSecretVersionStageResponse$=UYe;K.ValidateResourcePolicy$=m7e;K.ValidateResourcePolicyCommand=PG;K.ValidateResourcePolicyRequest$=FYe;K.ValidateResourcePolicyResponse$=MYe;K.ValidationErrorsEntry$=qYe;K.paginateBatchGetSecretValue=Mkr;K.paginateListSecretVersionIds=Bkr;K.paginateListSecrets=qkr});var N7e=O((Ean,mNr)=>{mNr.exports={name:"@btc-embedded/cdk-extensions",description:"A collection of useful CDK extensions and common logic",repository:{type:"git",url:"https://github.com/btc-embedded/cdk-extensions.git"},bin:{catnip:"assets/cli/catnip.js"},scripts:{build:"npx projen build",bump:"npx projen bump",bundle:"npx projen bundle","bundle:cli/catnip":"npx projen bundle:cli/catnip","bundle:constructs/api-keys/lambdas/api-client-authorization.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-client-authorization.lambda","bundle:constructs/api-keys/lambdas/api-client-authorization.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-client-authorization.lambda:watch","bundle:constructs/api-keys/lambdas/api-key-creation.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-key-creation.lambda","bundle:constructs/api-keys/lambdas/api-key-creation.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-key-creation.lambda:watch","bundle:constructs/api-keys/lambdas/api-key-update.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-key-update.lambda","bundle:constructs/api-keys/lambdas/api-key-update.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-key-update.lambda:watch","bundle:constructs/api-keys/lambdas/pre-token.lambda":"npx projen bundle:constructs/api-keys/lambdas/pre-token.lambda","bundle:constructs/api-keys/lambdas/pre-token.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/pre-token.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda","bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda:watch",clobber:"npx projen clobber",compat:"npx projen compat",compile:"npx projen compile",default:"npx projen default",docgen:"npx projen docgen",eject:"npx projen eject",eslint:"npx projen eslint",integ:"npx projen integ","integ:update":"npx projen integ:update",package:"npx projen package","package-all":"npx projen package-all","package:js":"npx projen package:js","post-compile":"npx projen post-compile","post-upgrade":"npx projen post-upgrade","pre-compile":"npx projen pre-compile","publish:git":"npx projen publish:git",release:"npx projen release",test:"npx projen test","test:watch":"npx projen test:watch",unbump:"npx projen unbump","update-docs":"npx projen update-docs",upgrade:"npx projen upgrade",watch:"npx projen watch","yalc:watch":"npx projen yalc:watch",projen:"npx projen"},author:{name:"BTC Embedded Systems AG",url:"https://www.btc-embedded.com",organization:!0},devDependencies:{"@aws-cdk-containers/ecs-service-extensions":"2.0.1-alpha.535","@aws-cdk/integ-runner":"latest","@aws-cdk/integ-tests-alpha":"latest","@aws-sdk/client-cloudformation":"^3.993.0","@aws-sdk/client-cloudwatch-logs":"^3.993.0","@aws-sdk/client-ecs":"^3.993.0","@aws-sdk/credential-providers":"^3.993.0","@types/aws-api-gateway-client":"^0.3.3","@types/jest":"^30.0.0","@types/node":"^24.10.9","@types/url-template":"^3.0.0","@typescript-eslint/eslint-plugin":"^8","@typescript-eslint/parser":"^8","aws-api-gateway-client":"^0.3.7","aws-cdk-lib":"2.232.1","aws-sdk-client-mock":"^4.1.0","cdk-nag":"^2.37.55",commander:"^14.0.3","commit-and-tag-version":"^12",constructs:"10.0.5",esbuild:"^0.27.1",eslint:"^9","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0","eslint-plugin-prettier":"^5.5.5",jest:"^30.2.0","jest-junit":"^16",jsii:"~5.9.0","jsii-diff":"^1.125.0","jsii-docgen":"^10.5.0","jsii-pacmak":"^1.125.0","jsii-rosetta":"~5.9.0",nodemon:"^3.1.11",prettier:"^3.8.0",projen:"^0.99.3","ts-jest":"^29.4.6","ts-node":"^10.9.2",typedoc:"^0.28.16","typedoc-plugin-markdown":"^4.9.0",typescript:"^5.9.3","url-template":"^3.1.1",yalc:"^1.0.0-pre.53"},peerDependencies:{"@aws-cdk-containers/ecs-service-extensions":">=2.0.1-alpha.535","aws-cdk-lib":"^2.232.1",constructs:"^10.0.5"},dependencies:{"@aws-lambda-powertools/logger":"^2.30.2","@aws-lambda-powertools/parameters":"^2.30.2","@aws-lambda-powertools/parser":"^2.30.2","@aws-sdk/client-cognito-identity-provider":"^3.965.0","@aws-sdk/client-dynamodb":"^3.948.0","@aws-sdk/client-secrets-manager":"^3.971.0","@aws-sdk/lib-dynamodb":"^3.948.0","@types/aws-lambda":"^8.10.159",yaml:"^2.8.2",zod:"~3"},bundledDependencies:["@aws-lambda-powertools/logger","@aws-lambda-powertools/parameters","@aws-lambda-powertools/parser","@aws-sdk/client-cognito-identity-provider","@aws-sdk/client-dynamodb","@aws-sdk/client-secrets-manager","@aws-sdk/lib-dynamodb","@types/aws-lambda","yaml","zod"],resolutions:{"@smithy/types":"^4.12.0"},keywords:["cdk"],main:"lib/index.js",license:"Apache-2.0",version:"0.22.11",jest:{coverageProvider:"v8",maxWorkers:4,testMatch:["<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)","<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)","<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)","<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"],clearMocks:!0,collectCoverage:!0,coverageReporters:["json","lcov","clover","cobertura","text"],coverageDirectory:"coverage",coveragePathIgnorePatterns:["/node_modules/"],testPathIgnorePatterns:["/node_modules/"],watchPathIgnorePatterns:["/node_modules/"],reporters:["default",["jest-junit",{outputDirectory:"test-reports"}]],transform:{"^.+\\.[t]sx?$":["ts-jest",{tsconfig:"tsconfig.dev.json"}]}},types:"lib/index.d.ts",stability:"experimental",jsii:{outdir:"dist",targets:{},tsc:{outDir:"lib",rootDir:"src"},excludeTypescript:["src/cli/**"]},"//":'~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".'}});var Bte=T(qte(),1),{program:TNr,createCommand:ANr,createArgument:PNr,createOption:vNr,CommanderError:bNr,InvalidArgumentError:INr,InvalidOptionArgumentError:DNr,Command:Gte,Argument:xNr,Option:wNr,Help:$Nr}=Bte.default;var tA=T(Ax()),Ey=T(Jw());var f7e=T(IK()),g7e=T(Ax()),h7e=T(OJ()),S7e=T(Jw()),y7e=T(Pte()),E7e=T(bW());function JT(t){let e=t.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION;return{...e&&{region:e},...t.profile&&{credentials:(0,E7e.fromIni)({profile:t.profile})}}}function Np(t){return new f7e.CloudFormationClient(JT(t))}function LG(t){return new S7e.ECSClient(JT(t))}function UG(t){return new g7e.CloudWatchLogsClient(JT(t))}function vte(t){return new h7e.CognitoIdentityProviderClient(JT(t))}function C7e(t){return new y7e.SecretsManagerClient(JT(t))}var Tc=T(IK());async function _7e(t,e){let r=await Wkr(t),n=`${e}:`;return Object.fromEntries(Object.entries(r).filter(([s])=>s.startsWith(n)))}async function yy(t,e,r){let n=[],s;do{let o=await t.send(new Tc.ListStackResourcesCommand({StackName:e,NextToken:s}));for(let i of o.StackResourceSummaries??[])i.ResourceType===r&&i.PhysicalResourceId&&n.push(i.PhysicalResourceId);s=o.NextToken}while(s);return n}async function Wkr(t){let e={},r;do{let n=await t.send(new Tc.ListExportsCommand({NextToken:r}));for(let s of n.Exports??[])s.Name&&s.Value&&(e[s.Name]=s.Value);r=n.NextToken}while(r);return e}async function R7e(t,e){try{let n=(await t.send(new Tc.DescribeStacksCommand({StackName:e}))).Stacks?.[0];return n?{status:n.StackStatus,statusReason:n.StackStatusReason,lastUpdated:n.LastUpdatedTime}:null}catch(r){if(r.name==="ValidationError"||r.message?.includes("does not exist"))return null;throw r}}async function T7e(t,e,r=10){return((await t.send(new Tc.DescribeStackEventsCommand({StackName:e}))).StackEvents||[]).slice(0,r)}async function A7e(t){let e=["CREATE_FAILED","ROLLBACK_COMPLETE","ROLLBACK_FAILED","DELETE_FAILED","UPDATE_ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","IMPORT_ROLLBACK_COMPLETE","IMPORT_ROLLBACK_FAILED"],r=await t.send(new Tc.ListStacksCommand({StackStatusFilter:e}));return!r.StackSummaries||r.StackSummaries.length===0?null:r.StackSummaries.sort((s,o)=>{let i=s.LastUpdatedTime?.getTime()||0;return(o.LastUpdatedTime?.getTime()||0)-i})[0].StackName||null}var XT="\x1B[0m",FG="\x1B[1m",zkr="\x1B[2m",Kkr="\x1B[31m",Qkr="\x1B[36m";function ZT(t){let e=` \u{1F431} catnip \u2014 ${t} `,r=Math.max(e.length+2,44),n="\u2550".repeat(r);console.log(`${Qkr}${FG}\u2554${n}\u2557`),console.log(`\u2551${e.padEnd(r)}\u2551`),console.log(`\u255A${n}\u255D${XT}`)}function Ac(t){console.log(`
187
+ `),w5e=!0)),new qT.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),mte.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new qT.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>T(vee()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>T(D5e()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>T(cte()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>T(lte()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await dwr(t))()),async()=>{throw new qT.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],$5e),gwr=t=>t?.expiration!==void 0,$5e=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;BB.credentialsTreatedAsExpired=$5e;BB.credentialsWillNeedRefresh=gwr;BB.defaultProvider=fwr});var J5e=O(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.ruleSet=void 0;var K5e="required",fo="fn",go="argv",Nf="ref",Op="properties",kp="headers",k5e=!0,N5e="isSet",BT="booleanEquals",fy="error",Rc="endpoint",Yu="tree",GB="PartitionResult",fte="stringEquals",L5e={[K5e]:!1,type:"string"},U5e={[K5e]:!0,default:!1,type:"boolean"},F5e={[Nf]:"Endpoint"},Q5e={[fo]:BT,[go]:[{[Nf]:"UseFIPS"},!0]},Y5e={[fo]:BT,[go]:[{[Nf]:"UseDualStack"},!0]},$i={},M5e={[fo]:"getAttr",[go]:[{[Nf]:GB},"supportsFIPS"]},q5e={[fo]:BT,[go]:[!0,{[fo]:"getAttr",[go]:[{[Nf]:GB},"supportsDualStack"]}]},gte={[fo]:"getAttr",[go]:[{[Nf]:GB},"name"]},B5e={url:"https://secretsmanager-fips.{Region}.amazonaws.com",[Op]:{},[kp]:{}},G5e={url:"https://secretsmanager.{Region}.amazonaws.com",[Op]:{},[kp]:{}},H5e=[Q5e],V5e=[Y5e],j5e=[{[Nf]:"Region"}],W5e=[{[fo]:fte,[go]:["aws",gte]}],z5e=[{[fo]:fte,[go]:["aws-us-gov",gte]}],hwr={version:"1.0",parameters:{Region:L5e,UseDualStack:U5e,UseFIPS:U5e,Endpoint:L5e},rules:[{conditions:[{[fo]:N5e,[go]:[F5e]}],rules:[{conditions:H5e,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:fy},{conditions:V5e,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:fy},{endpoint:{url:F5e,[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{conditions:[{[fo]:N5e,[go]:j5e}],rules:[{conditions:[{[fo]:"aws.partition",[go]:j5e,assign:GB}],rules:[{conditions:[Q5e,Y5e],rules:[{conditions:[{[fo]:BT,[go]:[k5e,M5e]},q5e],rules:[{conditions:W5e,endpoint:B5e,type:Rc},{conditions:z5e,endpoint:B5e,type:Rc},{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:fy}],type:Yu},{conditions:H5e,rules:[{conditions:[{[fo]:BT,[go]:[M5e,k5e]}],rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"FIPS is enabled but this partition does not support FIPS",type:fy}],type:Yu},{conditions:V5e,rules:[{conditions:[q5e],rules:[{conditions:W5e,endpoint:G5e,type:Rc},{conditions:[{[fo]:fte,[go]:["aws-cn",gte]}],endpoint:{url:"https://secretsmanager.{Region}.amazonaws.com.cn",[Op]:$i,[kp]:$i},type:Rc},{conditions:z5e,endpoint:G5e,type:Rc},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu},{error:"DualStack is enabled but this partition does not support DualStack",type:fy}],type:Yu},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}",[Op]:$i,[kp]:$i},type:Rc}],type:Yu}],type:Yu},{error:"Invalid Configuration: Missing Region",type:fy}]};HB.ruleSet=hwr});var X5e=O(VB=>{"use strict";Object.defineProperty(VB,"__esModule",{value:!0});VB.defaultEndpointResolver=void 0;var Swr=yf(),hte=Hn(),ywr=J5e(),Ewr=new hte.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Cwr=(t,e={})=>Ewr.get(t,()=>(0,hte.resolveEndpoint)(ywr.ruleSet,{endpointParams:t,logger:e.logger}));VB.defaultEndpointResolver=Cwr;hte.customEndpointFunctions.aws=Swr.awsEndpointFunctions});var tQe=O(jB=>{"use strict";Object.defineProperty(jB,"__esModule",{value:!0});jB.getRuntimeConfig=void 0;var _wr=(Un(),J(Sp)),Rwr=(Ef(),J(BZ)),Twr=lt(),Awr=Sn(),Z5e=De(),eQe=He(),Pwr=QZ(),vwr=X5e(),bwr=t=>({apiVersion:"2017-10-17",base64Decoder:t?.base64Decoder??Z5e.fromBase64,base64Encoder:t?.base64Encoder??Z5e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??vwr.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??Pwr.defaultSecretsManagerHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new _wr.AwsSdkSigV4Signer}],logger:t?.logger??new Twr.NoOpLogger,protocol:t?.protocol??Rwr.AwsJson1_1Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.secretsmanager",version:"2017-10-17",serviceTarget:"secretsmanager"},serviceId:t?.serviceId??"Secrets Manager",urlParser:t?.urlParser??Awr.parseUrl,utf8Decoder:t?.utf8Decoder??eQe.fromUtf8,utf8Encoder:t?.utf8Encoder??eQe.toUtf8});jB.getRuntimeConfig=bwr});var aQe=O(zB=>{"use strict";Object.defineProperty(zB,"__esModule",{value:!0});zB.getRuntimeConfig=void 0;var Iwr=(Cs(),J(Es)),Dwr=Iwr.__importDefault(dWe()),rQe=(Un(),J(Sp)),xwr=O5e(),nQe=ZS(),WB=At(),wwr=Co(),sQe=ca(),Lf=Jr(),oQe=_f(),iQe=lt(),$wr=Cn(),Owr=ey(),kwr=vs(),Nwr=tQe(),Lwr=t=>{(0,iQe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Owr.resolveDefaultsModeConfig)(t),r=()=>e().then(iQe.loadConfigsForDefaultMode),n=(0,Nwr.getRuntimeConfig)(t);(0,rQe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Lf.loadConfig)(rQe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??$wr.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??xwr.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,nQe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Dwr.default.version}),maxAttempts:t?.maxAttempts??(0,Lf.loadConfig)(sQe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Lf.loadConfig)(WB.NODE_REGION_CONFIG_OPTIONS,{...WB.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:oQe.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Lf.loadConfig)({...sQe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||kwr.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??wwr.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??oQe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Lf.loadConfig)(WB.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Lf.loadConfig)(WB.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Lf.loadConfig)(nQe.NODE_APP_ID_CONFIG_OPTIONS,s)}};zB.getRuntimeConfig=Lwr});var Pte=O(K=>{"use strict";var cQe=bS(),Uwr=IS(),Fwr=DS(),uQe=Cf(),Mwr=At(),gy=(zs(),J(US)),ho=(bt(),J(gq)),qwr=yo(),Pr=hc(),lQe=ca(),kt=lt(),dQe=QZ(),Bwr=aQe(),pQe=Tf(),mQe=qe(),Gwr=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"secretsmanager"}),$r={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},Hwr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Vwr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),jwr=(t,e)=>{let r=Object.assign(pQe.getAwsRegionExtensionConfiguration(t),kt.getDefaultExtensionConfiguration(t),mQe.getHttpHandlerExtensionConfiguration(t),Hwr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,pQe.resolveAwsRegionExtensionConfiguration(r),kt.resolveDefaultRuntimeConfig(r),mQe.resolveHttpHandlerRuntimeConfig(r),Vwr(r))},Uf=class extends kt.Client{config;constructor(...[e]){let r=Bwr.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=Gwr(r),s=uQe.resolveUserAgentConfig(n),o=lQe.resolveRetryConfig(s),i=Mwr.resolveRegionConfig(o),a=cQe.resolveHostHeaderConfig(i),c=Pr.resolveEndpointConfig(a),u=dQe.resolveHttpAuthSchemeConfig(c),f=jwr(u,e?.extensions||[]);this.config=f,this.middlewareStack.use(ho.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(uQe.getUserAgentPlugin(this.config)),this.middlewareStack.use(lQe.getRetryPlugin(this.config)),this.middlewareStack.use(qwr.getContentLengthPlugin(this.config)),this.middlewareStack.use(cQe.getHostHeaderPlugin(this.config)),this.middlewareStack.use(Uwr.getLoggerPlugin(this.config)),this.middlewareStack.use(Fwr.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(gy.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:dQe.defaultSecretsManagerHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async m=>new gy.DefaultIdentityProviderConfig({"aws.auth#sigv4":m.credentials})})),this.middlewareStack.use(gy.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},Ss=class t extends kt.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}},KB=class t extends Ss{name="DecryptionFailure";$fault="client";Message;constructor(e){super({name:"DecryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},QB=class t extends Ss{name="InternalServiceError";$fault="server";Message;constructor(e){super({name:"InternalServiceError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},YB=class t extends Ss{name="InvalidNextTokenException";$fault="client";Message;constructor(e){super({name:"InvalidNextTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},JB=class t extends Ss{name="InvalidParameterException";$fault="client";Message;constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},XB=class t extends Ss{name="InvalidRequestException";$fault="client";Message;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},ZB=class t extends Ss{name="ResourceNotFoundException";$fault="client";Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},eG=class t extends Ss{name="EncryptionFailure";$fault="client";Message;constructor(e){super({name:"EncryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},tG=class t extends Ss{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},rG=class t extends Ss{name="MalformedPolicyDocumentException";$fault="client";Message;constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},nG=class t extends Ss{name="PreconditionNotMetException";$fault="client";Message;constructor(e){super({name:"PreconditionNotMetException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},sG=class t extends Ss{name="ResourceExistsException";$fault="client";Message;constructor(e){super({name:"ResourceExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},oG=class t extends Ss{name="PublicPolicyException";$fault="client";Message;constructor(e){super({name:"PublicPolicyException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Wwr="AutomaticallyAfterDays",zwr="APIErrorListType",Kwr="APIErrorType",fn="ARN",fQe="AddReplicaRegions",Qwr="AddReplicaRegionListType",Ywr="BatchGetSecretValue",Jwr="BatchGetSecretValueRequest",Xwr="BatchGetSecretValueResponse",Zwr="BlockPublicPolicy",jT="CreatedDate",e$r="CheckName",t$r="CancelRotateSecret",r$r="CancelRotateSecretRequest",n$r="CancelRotateSecretResponse",bG="ClientRequestToken",s$r="CreateSecret",o$r="CreateSecretRequest",i$r="CreateSecretResponse",IG="Description",a$r="DeletionDate",gQe="DeletedDate",c$r="DecryptionFailure",u$r="DeleteResourcePolicy",l$r="DeleteResourcePolicyRequest",d$r="DeleteResourcePolicyResponse",p$r="DeleteSecret",m$r="DeleteSecretRequest",f$r="DeleteSecretResponse",g$r="DescribeSecretRequest",h$r="DescribeSecretResponse",S$r="DescribeSecret",y$r="Duration",E$r="Errors",C$r="ErrorCode",_$r="ExcludeCharacters",R$r="EncryptionFailure",T$r="ExcludeLowercase",A$r="ErrorMessage",P$r="ExcludeNumbers",v$r="ExcludePunctuation",Ste="ExternalSecretRotationMetadata",b$r="ExternalSecretRotationMetadataItem",I$r="ExternalSecretRotationMetadataType",yte="ExternalSecretRotationRoleArn",D$r="ExcludeUppercase",hQe="Filters",x$r="ForceDeleteWithoutRecovery",w$r="FiltersListType",SQe="ForceOverwriteReplicaSecret",$$r="Filter",O$r="GetRandomPassword",k$r="GetRandomPasswordRequest",N$r="GetRandomPasswordResponse",L$r="GetResourcePolicyRequest",U$r="GetResourcePolicyResponse",F$r="GetResourcePolicy",M$r="GetSecretValue",q$r="GetSecretValueRequest",B$r="GetSecretValueResponse",G$r="IncludeDeprecated",H$r="InvalidNextTokenException",V$r="IncludePlannedDeletion",j$r="InvalidParameterException",W$r="InvalidRequestException",z$r="IncludeSpace",K$r="InternalServiceError",Ete="Key",hy="KmsKeyId",Q$r="KmsKeyIds",DG="LastAccessedDate",yQe="LastChangedDate",Y$r="LimitExceededException",EQe="LastRotatedDate",J$r="ListSecrets",X$r="ListSecretsRequest",Z$r="ListSecretsResponse",eOr="ListSecretVersionIds",tOr="ListSecretVersionIdsRequest",rOr="ListSecretVersionIdsResponse",qo="Message",nOr="MalformedPolicyDocumentException",Cte="MaxResults",sOr="MoveToVersionId",qn="Name",CQe="NextRotationDate",Sy="NextToken",_Qe="OwningService",oOr="PasswordLength",iOr="PreconditionNotMetException",aOr="PublicPolicyException",RQe="PrimaryRegion",cOr="PutResourcePolicy",uOr="PutResourcePolicyRequest",lOr="PutResourcePolicyResponse",dOr="PutSecretValue",pOr="PutSecretValueRequest",mOr="PutSecretValueResponse",fOr="PolicyValidationPassed",TQe="Region",AQe="RotationEnabled",gOr="ResourceExistsException",hOr="RequireEachIncludedType",SOr="RemoveFromVersionId",yOr="RotateImmediately",_te="RotationLambdaARN",EOr="ResourceNotFoundException",COr="RandomPassword",_Or="RandomPasswordType",Rte="ResourcePolicy",Tte="RotationRules",ROr="RemoveRegionsFromReplication",TOr="RemoveRegionsFromReplicationRequest",AOr="RemoveRegionsFromReplicationResponse",POr="RemoveReplicaRegions",vOr="ReplicaRegionType",bOr="RotationRulesType",xG="ReplicationStatus",IOr="ReplicationStatusListType",DOr="RestoreSecretRequest",xOr="RestoreSecretResponse",wOr="RotateSecretRequest",$Or="RotateSecretResponse",OOr="ReplicationStatusType",kOr="ReplicateSecretToRegions",NOr="ReplicateSecretToRegionsRequest",LOr="ReplicateSecretToRegionsResponse",UOr="RestoreSecret",FOr="RotateSecret",MOr="RotationToken",qOr="RotationTokenType",BOr="RecoveryWindowInDays",GOr="Status",WT="SecretBinary",HOr="SecretBinaryType",VOr="SortBy",jOr="ScheduleExpression",sn="SecretId",WOr="SecretIdList",zOr="SecretList",KOr="SecretListEntry",QOr="SecretListType",YOr="StatusMessage",JOr="SortOrder",XOr="StopReplicationToReplica",ZOr="StopReplicationToReplicaRequest",ekr="StopReplicationToReplicaResponse",zT="SecretString",tkr="SecretStringType",rkr="SecretValues",nkr="SecretValueEntry",skr="SecretVersionsListEntry",okr="SecretVersionsListType",ikr="SecretValuesType",akr="SecretVersionsToStages",PQe="SecretVersionsToStagesMapType",wG="Tags",ckr="TagKeys",ukr="TagListType",lkr="TagResource",dkr="TagResourceRequest",pkr="Tag",$G="Type",mkr="UntagResource",fkr="UntagResourceRequest",gkr="UpdateSecret",hkr="UpdateSecretRequest",Skr="UpdateSecretResponse",ykr="UpdateSecretVersionStage",Ekr="UpdateSecretVersionStageRequest",Ckr="UpdateSecretVersionStageResponse",vQe="Value",_kr="ValidationErrors",Rkr="ValidationErrorsEntry",Tkr="ValidationErrorsType",Ju="VersionId",Akr="VersionIdsToStages",Pkr="ValidateResourcePolicy",vkr="ValidateResourcePolicyRequest",bkr="ValidateResourcePolicyResponse",bQe="VersionStage",KT="VersionStages",Ikr="Values",Dkr="Versions",ga="client",Oi="error",xkr="server",IQe="smithy.ts.sdk.synthetic.com.amazonaws.secretsmanager",ee="com.amazonaws.secretsmanager",wkr=[0,ee,_Or,8,0],$kr=[0,ee,qOr,8,0],QT=[0,ee,HOr,8,21],YT=[0,ee,tkr,8,0],DQe=[3,ee,Kwr,0,[sn,C$r,qo],[0,0,0]],xQe=[3,ee,Jwr,0,[WOr,hQe,Cte,Sy],[64,()=>VYe,1,0]],wQe=[3,ee,Xwr,0,[rkr,Sy,E$r],[[()=>Nkr,0],0,()=>Okr]],$Qe=[3,ee,r$r,0,[sn],[0],1],OQe=[3,ee,n$r,0,[fn,qn,Ju],[0,0,0]],kQe=[3,ee,o$r,0,[qn,bG,IG,hy,WT,zT,wG,fQe,SQe,$G],[0,[0,4],0,0,[()=>QT,0],[()=>YT,0],()=>NG,()=>HYe,2,0],1],NQe=[3,ee,i$r,0,[fn,qn,Ju,xG],[0,0,0,()=>kG]],LQe=[-3,ee,c$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(LQe,KB);var UQe=[3,ee,l$r,0,[sn],[0],1],FQe=[3,ee,d$r,0,[fn,qn],[0,0]],MQe=[3,ee,m$r,0,[sn,BOr,x$r],[0,1,2],1],qQe=[3,ee,f$r,0,[fn,qn,a$r],[0,0,4]],BQe=[3,ee,g$r,0,[sn],[0],1],GQe=[3,ee,h$r,0,[fn,qn,$G,IG,hy,AQe,_te,Tte,Ste,yte,EQe,yQe,DG,gQe,CQe,wG,Akr,_Qe,jT,RQe,xG],[0,0,0,0,0,2,0,()=>OG,()=>Ate,0,4,4,4,4,4,()=>NG,[2,ee,PQe,0,0,64],0,4,0,()=>kG]],HQe=[-3,ee,R$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(HQe,eG);var VQe=[3,ee,b$r,0,[Ete,vQe],[0,0]],jQe=[3,ee,$$r,0,[Ete,Ikr],[0,64]],WQe=[3,ee,k$r,0,[oOr,_$r,P$r,v$r,D$r,T$r,z$r,hOr],[1,0,2,2,2,2,2,2]],zQe=[3,ee,N$r,0,[COr],[[()=>wkr,0]]],KQe=[3,ee,L$r,0,[sn],[0],1],QQe=[3,ee,U$r,0,[fn,qn,Rte],[0,0,0]],YQe=[3,ee,q$r,0,[sn,Ju,bQe],[0,0,0],1],JQe=[3,ee,B$r,0,[fn,qn,Ju,WT,zT,KT,jT],[0,0,0,[()=>QT,0],[()=>YT,0],64,4]],XQe=[-3,ee,K$r,{[Oi]:xkr},[qo],[0]];ho.TypeRegistry.for(ee).registerError(XQe,QB);var ZQe=[-3,ee,H$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(ZQe,YB);var eYe=[-3,ee,j$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(eYe,JB);var tYe=[-3,ee,W$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(tYe,XB);var rYe=[-3,ee,Y$r,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(rYe,tG);var nYe=[3,ee,X$r,0,[V$r,Cte,Sy,hQe,JOr,VOr],[2,1,0,()=>VYe,0,0]],sYe=[3,ee,Z$r,0,[zOr,Sy],[()=>kkr,0]],oYe=[3,ee,tOr,0,[sn,Cte,Sy,G$r],[0,1,0,2],1],iYe=[3,ee,rOr,0,[Dkr,Sy,fn,qn],[()=>Lkr,0,0,0]],aYe=[-3,ee,nOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(aYe,rG);var cYe=[-3,ee,iOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(cYe,nG);var uYe=[-3,ee,aOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(uYe,oG);var lYe=[3,ee,uOr,0,[sn,Rte,Zwr],[0,0,2],2],dYe=[3,ee,lOr,0,[fn,qn],[0,0]],pYe=[3,ee,pOr,0,[sn,bG,WT,zT,KT,MOr],[0,[0,4],[()=>QT,0],[()=>YT,0],64,[()=>$kr,0]],1],mYe=[3,ee,mOr,0,[fn,qn,Ju,KT],[0,0,0,64]],fYe=[3,ee,TOr,0,[sn,POr],[0,64],2],gYe=[3,ee,AOr,0,[fn,xG],[0,()=>kG]],hYe=[3,ee,vOr,0,[TQe,hy],[0,0]],SYe=[3,ee,NOr,0,[sn,fQe,SQe],[0,()=>HYe,2],2],yYe=[3,ee,LOr,0,[fn,xG],[0,()=>kG]],EYe=[3,ee,OOr,0,[TQe,hy,GOr,YOr,DG],[0,0,0,0,4]],CYe=[-3,ee,gOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(CYe,sG);var _Ye=[-3,ee,EOr,{[Oi]:ga},[qo],[0]];ho.TypeRegistry.for(ee).registerError(_Ye,ZB);var RYe=[3,ee,DOr,0,[sn],[0],1],TYe=[3,ee,xOr,0,[fn,qn],[0,0]],AYe=[3,ee,wOr,0,[sn,bG,_te,Tte,Ste,yte,yOr],[0,[0,4],0,()=>OG,()=>Ate,0,2],1],PYe=[3,ee,$Or,0,[fn,qn,Ju],[0,0,0]],OG=[3,ee,bOr,0,[Wwr,y$r,jOr],[1,0,0]],vYe=[3,ee,KOr,0,[fn,qn,$G,IG,hy,AQe,_te,Tte,Ste,yte,EQe,yQe,DG,gQe,CQe,wG,akr,_Qe,jT,RQe],[0,0,0,0,0,2,0,()=>OG,()=>Ate,0,4,4,4,4,4,()=>NG,[2,ee,PQe,0,0,64],0,4,0]],bYe=[3,ee,nkr,0,[fn,qn,Ju,WT,zT,KT,jT],[0,0,0,[()=>QT,0],[()=>YT,0],64,4]],IYe=[3,ee,skr,0,[Ju,KT,DG,jT,Q$r],[0,64,4,4,64]],DYe=[3,ee,ZOr,0,[sn],[0],1],xYe=[3,ee,ekr,0,[fn],[0]],wYe=[3,ee,pkr,0,[Ete,vQe],[0,0]],$Ye=[3,ee,dkr,0,[sn,wG],[0,()=>NG],2],OYe=[3,ee,fkr,0,[sn,ckr],[0,64],2],kYe=[3,ee,hkr,0,[sn,bG,IG,hy,WT,zT,$G],[0,[0,4],0,0,[()=>QT,0],[()=>YT,0],0],1],NYe=[3,ee,Skr,0,[fn,qn,Ju],[0,0,0]],LYe=[3,ee,Ekr,0,[sn,bQe,SOr,sOr],[0,0,0,0],2],UYe=[3,ee,Ckr,0,[fn,qn],[0,0]],FYe=[3,ee,vkr,0,[Rte,sn],[0,0],1],MYe=[3,ee,bkr,0,[fOr,_kr],[2,()=>Ukr]],qYe=[3,ee,Rkr,0,[e$r,A$r],[0,0]],BYe="unit",GYe=[-3,IQe,"SecretsManagerServiceException",0,[],[]];ho.TypeRegistry.for(IQe).registerError(GYe,Ss);var HYe=[1,ee,Qwr,0,()=>hYe],Okr=[1,ee,zwr,0,()=>DQe],Ate=[1,ee,I$r,0,()=>VQe],VYe=[1,ee,w$r,0,()=>jQe],kG=[1,ee,IOr,0,()=>EYe],kkr=[1,ee,QOr,0,()=>vYe],Nkr=[1,ee,ikr,0,[()=>bYe,0]],Lkr=[1,ee,okr,0,()=>IYe],NG=[1,ee,ukr,0,()=>wYe],Ukr=[1,ee,Tkr,0,()=>qYe],jYe=[9,ee,Ywr,0,()=>xQe,()=>wQe],WYe=[9,ee,t$r,0,()=>$Qe,()=>OQe],zYe=[9,ee,s$r,0,()=>kQe,()=>NQe],KYe=[9,ee,u$r,0,()=>UQe,()=>FQe],QYe=[9,ee,p$r,0,()=>MQe,()=>qQe],YYe=[9,ee,S$r,0,()=>BQe,()=>GQe],JYe=[9,ee,O$r,0,()=>WQe,()=>zQe],XYe=[9,ee,F$r,0,()=>KQe,()=>QQe],ZYe=[9,ee,M$r,0,()=>YQe,()=>JQe],e7e=[9,ee,J$r,0,()=>nYe,()=>sYe],t7e=[9,ee,eOr,0,()=>oYe,()=>iYe],r7e=[9,ee,cOr,0,()=>lYe,()=>dYe],n7e=[9,ee,dOr,0,()=>pYe,()=>mYe],s7e=[9,ee,ROr,0,()=>fYe,()=>gYe],o7e=[9,ee,kOr,0,()=>SYe,()=>yYe],i7e=[9,ee,UOr,0,()=>RYe,()=>TYe],a7e=[9,ee,FOr,0,()=>AYe,()=>PYe],c7e=[9,ee,XOr,0,()=>DYe,()=>xYe],u7e=[9,ee,lkr,0,()=>$Ye,()=>BYe],l7e=[9,ee,mkr,0,()=>OYe,()=>BYe],d7e=[9,ee,gkr,0,()=>kYe,()=>NYe],p7e=[9,ee,ykr,0,()=>LYe,()=>UYe],m7e=[9,ee,Pkr,0,()=>FYe,()=>MYe],GT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","BatchGetSecretValue",{}).n("SecretsManagerClient","BatchGetSecretValueCommand").sc(jYe).build(){},iG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CancelRotateSecret",{}).n("SecretsManagerClient","CancelRotateSecretCommand").sc(WYe).build(){},aG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CreateSecret",{}).n("SecretsManagerClient","CreateSecretCommand").sc(zYe).build(){},cG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteResourcePolicy",{}).n("SecretsManagerClient","DeleteResourcePolicyCommand").sc(KYe).build(){},uG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteSecret",{}).n("SecretsManagerClient","DeleteSecretCommand").sc(QYe).build(){},lG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DescribeSecret",{}).n("SecretsManagerClient","DescribeSecretCommand").sc(YYe).build(){},dG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetRandomPassword",{}).n("SecretsManagerClient","GetRandomPasswordCommand").sc(JYe).build(){},pG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetResourcePolicy",{}).n("SecretsManagerClient","GetResourcePolicyCommand").sc(XYe).build(){},mG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetSecretValue",{}).n("SecretsManagerClient","GetSecretValueCommand").sc(ZYe).build(){},HT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecrets",{}).n("SecretsManagerClient","ListSecretsCommand").sc(e7e).build(){},VT=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecretVersionIds",{}).n("SecretsManagerClient","ListSecretVersionIdsCommand").sc(t7e).build(){},fG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutResourcePolicy",{}).n("SecretsManagerClient","PutResourcePolicyCommand").sc(r7e).build(){},gG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutSecretValue",{}).n("SecretsManagerClient","PutSecretValueCommand").sc(n7e).build(){},hG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RemoveRegionsFromReplication",{}).n("SecretsManagerClient","RemoveRegionsFromReplicationCommand").sc(s7e).build(){},SG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ReplicateSecretToRegions",{}).n("SecretsManagerClient","ReplicateSecretToRegionsCommand").sc(o7e).build(){},yG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RestoreSecret",{}).n("SecretsManagerClient","RestoreSecretCommand").sc(i7e).build(){},EG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RotateSecret",{}).n("SecretsManagerClient","RotateSecretCommand").sc(a7e).build(){},CG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","StopReplicationToReplica",{}).n("SecretsManagerClient","StopReplicationToReplicaCommand").sc(c7e).build(){},_G=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","TagResource",{}).n("SecretsManagerClient","TagResourceCommand").sc(u7e).build(){},RG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UntagResource",{}).n("SecretsManagerClient","UntagResourceCommand").sc(l7e).build(){},TG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecret",{}).n("SecretsManagerClient","UpdateSecretCommand").sc(d7e).build(){},AG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecretVersionStage",{}).n("SecretsManagerClient","UpdateSecretVersionStageCommand").sc(p7e).build(){},PG=class extends kt.Command.classBuilder().ep($r).m(function(e,r,n,s){return[Pr.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ValidateResourcePolicy",{}).n("SecretsManagerClient","ValidateResourcePolicyCommand").sc(m7e).build(){},Fkr={BatchGetSecretValueCommand:GT,CancelRotateSecretCommand:iG,CreateSecretCommand:aG,DeleteResourcePolicyCommand:cG,DeleteSecretCommand:uG,DescribeSecretCommand:lG,GetRandomPasswordCommand:dG,GetResourcePolicyCommand:pG,GetSecretValueCommand:mG,ListSecretsCommand:HT,ListSecretVersionIdsCommand:VT,PutResourcePolicyCommand:fG,PutSecretValueCommand:gG,RemoveRegionsFromReplicationCommand:hG,ReplicateSecretToRegionsCommand:SG,RestoreSecretCommand:yG,RotateSecretCommand:EG,StopReplicationToReplicaCommand:CG,TagResourceCommand:_G,UntagResourceCommand:RG,UpdateSecretCommand:TG,UpdateSecretVersionStageCommand:AG,ValidateResourcePolicyCommand:PG},vG=class extends Uf{};kt.createAggregatedClient(Fkr,vG);var Mkr=gy.createPaginator(Uf,GT,"NextToken","NextToken","MaxResults"),qkr=gy.createPaginator(Uf,HT,"NextToken","NextToken","MaxResults"),Bkr=gy.createPaginator(Uf,VT,"NextToken","NextToken","MaxResults"),Gkr={all:"all",description:"description",name:"name",owning_service:"owning-service",primary_region:"primary-region",tag_key:"tag-key",tag_value:"tag-value"},Hkr={Failed:"Failed",InProgress:"InProgress",InSync:"InSync"},Vkr={created_date:"created-date",last_accessed_date:"last-accessed-date",last_changed_date:"last-changed-date",name:"name"},jkr={asc:"asc",desc:"desc"};Object.defineProperty(K,"$Command",{enumerable:!0,get:function(){return kt.Command}});Object.defineProperty(K,"__Client",{enumerable:!0,get:function(){return kt.Client}});K.APIErrorType$=DQe;K.BatchGetSecretValue$=jYe;K.BatchGetSecretValueCommand=GT;K.BatchGetSecretValueRequest$=xQe;K.BatchGetSecretValueResponse$=wQe;K.CancelRotateSecret$=WYe;K.CancelRotateSecretCommand=iG;K.CancelRotateSecretRequest$=$Qe;K.CancelRotateSecretResponse$=OQe;K.CreateSecret$=zYe;K.CreateSecretCommand=aG;K.CreateSecretRequest$=kQe;K.CreateSecretResponse$=NQe;K.DecryptionFailure=KB;K.DecryptionFailure$=LQe;K.DeleteResourcePolicy$=KYe;K.DeleteResourcePolicyCommand=cG;K.DeleteResourcePolicyRequest$=UQe;K.DeleteResourcePolicyResponse$=FQe;K.DeleteSecret$=QYe;K.DeleteSecretCommand=uG;K.DeleteSecretRequest$=MQe;K.DeleteSecretResponse$=qQe;K.DescribeSecret$=YYe;K.DescribeSecretCommand=lG;K.DescribeSecretRequest$=BQe;K.DescribeSecretResponse$=GQe;K.EncryptionFailure=eG;K.EncryptionFailure$=HQe;K.ExternalSecretRotationMetadataItem$=VQe;K.Filter$=jQe;K.FilterNameStringType=Gkr;K.GetRandomPassword$=JYe;K.GetRandomPasswordCommand=dG;K.GetRandomPasswordRequest$=WQe;K.GetRandomPasswordResponse$=zQe;K.GetResourcePolicy$=XYe;K.GetResourcePolicyCommand=pG;K.GetResourcePolicyRequest$=KQe;K.GetResourcePolicyResponse$=QQe;K.GetSecretValue$=ZYe;K.GetSecretValueCommand=mG;K.GetSecretValueRequest$=YQe;K.GetSecretValueResponse$=JQe;K.InternalServiceError=QB;K.InternalServiceError$=XQe;K.InvalidNextTokenException=YB;K.InvalidNextTokenException$=ZQe;K.InvalidParameterException=JB;K.InvalidParameterException$=eYe;K.InvalidRequestException=XB;K.InvalidRequestException$=tYe;K.LimitExceededException=tG;K.LimitExceededException$=rYe;K.ListSecretVersionIds$=t7e;K.ListSecretVersionIdsCommand=VT;K.ListSecretVersionIdsRequest$=oYe;K.ListSecretVersionIdsResponse$=iYe;K.ListSecrets$=e7e;K.ListSecretsCommand=HT;K.ListSecretsRequest$=nYe;K.ListSecretsResponse$=sYe;K.MalformedPolicyDocumentException=rG;K.MalformedPolicyDocumentException$=aYe;K.PreconditionNotMetException=nG;K.PreconditionNotMetException$=cYe;K.PublicPolicyException=oG;K.PublicPolicyException$=uYe;K.PutResourcePolicy$=r7e;K.PutResourcePolicyCommand=fG;K.PutResourcePolicyRequest$=lYe;K.PutResourcePolicyResponse$=dYe;K.PutSecretValue$=n7e;K.PutSecretValueCommand=gG;K.PutSecretValueRequest$=pYe;K.PutSecretValueResponse$=mYe;K.RemoveRegionsFromReplication$=s7e;K.RemoveRegionsFromReplicationCommand=hG;K.RemoveRegionsFromReplicationRequest$=fYe;K.RemoveRegionsFromReplicationResponse$=gYe;K.ReplicaRegionType$=hYe;K.ReplicateSecretToRegions$=o7e;K.ReplicateSecretToRegionsCommand=SG;K.ReplicateSecretToRegionsRequest$=SYe;K.ReplicateSecretToRegionsResponse$=yYe;K.ReplicationStatusType$=EYe;K.ResourceExistsException=sG;K.ResourceExistsException$=CYe;K.ResourceNotFoundException=ZB;K.ResourceNotFoundException$=_Ye;K.RestoreSecret$=i7e;K.RestoreSecretCommand=yG;K.RestoreSecretRequest$=RYe;K.RestoreSecretResponse$=TYe;K.RotateSecret$=a7e;K.RotateSecretCommand=EG;K.RotateSecretRequest$=AYe;K.RotateSecretResponse$=PYe;K.RotationRulesType$=OG;K.SecretListEntry$=vYe;K.SecretValueEntry$=bYe;K.SecretVersionsListEntry$=IYe;K.SecretsManager=vG;K.SecretsManagerClient=Uf;K.SecretsManagerServiceException=Ss;K.SecretsManagerServiceException$=GYe;K.SortByType=Vkr;K.SortOrderType=jkr;K.StatusType=Hkr;K.StopReplicationToReplica$=c7e;K.StopReplicationToReplicaCommand=CG;K.StopReplicationToReplicaRequest$=DYe;K.StopReplicationToReplicaResponse$=xYe;K.Tag$=wYe;K.TagResource$=u7e;K.TagResourceCommand=_G;K.TagResourceRequest$=$Ye;K.UntagResource$=l7e;K.UntagResourceCommand=RG;K.UntagResourceRequest$=OYe;K.UpdateSecret$=d7e;K.UpdateSecretCommand=TG;K.UpdateSecretRequest$=kYe;K.UpdateSecretResponse$=NYe;K.UpdateSecretVersionStage$=p7e;K.UpdateSecretVersionStageCommand=AG;K.UpdateSecretVersionStageRequest$=LYe;K.UpdateSecretVersionStageResponse$=UYe;K.ValidateResourcePolicy$=m7e;K.ValidateResourcePolicyCommand=PG;K.ValidateResourcePolicyRequest$=FYe;K.ValidateResourcePolicyResponse$=MYe;K.ValidationErrorsEntry$=qYe;K.paginateBatchGetSecretValue=Mkr;K.paginateListSecretVersionIds=Bkr;K.paginateListSecrets=qkr});var N7e=O((Ean,mNr)=>{mNr.exports={name:"@btc-embedded/cdk-extensions",description:"A collection of useful CDK extensions and common logic",repository:{type:"git",url:"https://github.com/btc-embedded/cdk-extensions.git"},bin:{catnip:"assets/cli/catnip.js"},scripts:{build:"npx projen build",bump:"npx projen bump",bundle:"npx projen bundle","bundle:cli/catnip":"npx projen bundle:cli/catnip","bundle:constructs/api-keys/lambdas/api-client-authorization.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-client-authorization.lambda","bundle:constructs/api-keys/lambdas/api-client-authorization.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-client-authorization.lambda:watch","bundle:constructs/api-keys/lambdas/api-key-creation.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-key-creation.lambda","bundle:constructs/api-keys/lambdas/api-key-creation.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-key-creation.lambda:watch","bundle:constructs/api-keys/lambdas/api-key-update.lambda":"npx projen bundle:constructs/api-keys/lambdas/api-key-update.lambda","bundle:constructs/api-keys/lambdas/api-key-update.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/api-key-update.lambda:watch","bundle:constructs/api-keys/lambdas/pre-token.lambda":"npx projen bundle:constructs/api-keys/lambdas/pre-token.lambda","bundle:constructs/api-keys/lambdas/pre-token.lambda:watch":"npx projen bundle:constructs/api-keys/lambdas/pre-token.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda","bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-management-runner.lambda:watch","bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda":"npx projen bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda","bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda:watch":"npx projen bundle:test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda:watch",clobber:"npx projen clobber",compat:"npx projen compat",compile:"npx projen compile",default:"npx projen default",docgen:"npx projen docgen",eject:"npx projen eject",eslint:"npx projen eslint",integ:"npx projen integ","integ:update":"npx projen integ:update",package:"npx projen package","package-all":"npx projen package-all","package:js":"npx projen package:js","post-compile":"npx projen post-compile","post-upgrade":"npx projen post-upgrade","pre-compile":"npx projen pre-compile","publish:git":"npx projen publish:git",release:"npx projen release",test:"npx projen test","test:watch":"npx projen test:watch",unbump:"npx projen unbump","update-docs":"npx projen update-docs",upgrade:"npx projen upgrade",watch:"npx projen watch","yalc:watch":"npx projen yalc:watch",projen:"npx projen"},author:{name:"BTC Embedded Systems AG",url:"https://www.btc-embedded.com",organization:!0},devDependencies:{"@aws-cdk-containers/ecs-service-extensions":"2.0.1-alpha.535","@aws-cdk/integ-runner":"latest","@aws-cdk/integ-tests-alpha":"latest","@aws-sdk/client-cloudformation":"^3.993.0","@aws-sdk/client-cloudwatch-logs":"^3.993.0","@aws-sdk/client-ecs":"^3.993.0","@aws-sdk/credential-providers":"^3.993.0","@types/aws-api-gateway-client":"^0.3.3","@types/jest":"^30.0.0","@types/node":"^24.10.9","@types/url-template":"^3.0.0","@typescript-eslint/eslint-plugin":"^8","@typescript-eslint/parser":"^8","aws-api-gateway-client":"^0.3.7","aws-cdk-lib":"2.232.1","aws-sdk-client-mock":"^4.1.0","cdk-nag":"^2.37.55",commander:"^14.0.3","commit-and-tag-version":"^12",constructs:"10.0.5",esbuild:"^0.27.1",eslint:"^9","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0","eslint-plugin-prettier":"^5.5.5",jest:"^30.2.0","jest-junit":"^16",jsii:"~5.9.0","jsii-diff":"^1.125.0","jsii-docgen":"^10.5.0","jsii-pacmak":"^1.125.0","jsii-rosetta":"~5.9.0",nodemon:"^3.1.11",prettier:"^3.8.0",projen:"^0.99.3","ts-jest":"^29.4.6","ts-node":"^10.9.2",typedoc:"^0.28.16","typedoc-plugin-markdown":"^4.9.0",typescript:"^5.9.3","url-template":"^3.1.1",yalc:"^1.0.0-pre.53"},peerDependencies:{"@aws-cdk-containers/ecs-service-extensions":">=2.0.1-alpha.535","aws-cdk-lib":"^2.232.1",constructs:"^10.0.5"},dependencies:{"@aws-lambda-powertools/logger":"^2.30.2","@aws-lambda-powertools/parameters":"^2.30.2","@aws-lambda-powertools/parser":"^2.30.2","@aws-sdk/client-cognito-identity-provider":"^3.965.0","@aws-sdk/client-dynamodb":"^3.948.0","@aws-sdk/client-secrets-manager":"^3.971.0","@aws-sdk/lib-dynamodb":"^3.948.0","@types/aws-lambda":"^8.10.159",yaml:"^2.8.2",zod:"~3"},bundledDependencies:["@aws-lambda-powertools/logger","@aws-lambda-powertools/parameters","@aws-lambda-powertools/parser","@aws-sdk/client-cognito-identity-provider","@aws-sdk/client-dynamodb","@aws-sdk/client-secrets-manager","@aws-sdk/lib-dynamodb","@types/aws-lambda","yaml","zod"],resolutions:{"@smithy/types":"^4.12.0"},keywords:["cdk"],main:"lib/index.js",license:"Apache-2.0",version:"0.22.12",jest:{coverageProvider:"v8",maxWorkers:4,testMatch:["<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)","<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)","<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)","<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"],clearMocks:!0,collectCoverage:!0,coverageReporters:["json","lcov","clover","cobertura","text"],coverageDirectory:"coverage",coveragePathIgnorePatterns:["/node_modules/"],testPathIgnorePatterns:["/node_modules/"],watchPathIgnorePatterns:["/node_modules/"],reporters:["default",["jest-junit",{outputDirectory:"test-reports"}]],transform:{"^.+\\.[t]sx?$":["ts-jest",{tsconfig:"tsconfig.dev.json"}]}},types:"lib/index.d.ts",stability:"experimental",jsii:{outdir:"dist",targets:{},tsc:{outDir:"lib",rootDir:"src"},excludeTypescript:["src/cli/**"]},"//":'~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".'}});var Bte=T(qte(),1),{program:TNr,createCommand:ANr,createArgument:PNr,createOption:vNr,CommanderError:bNr,InvalidArgumentError:INr,InvalidOptionArgumentError:DNr,Command:Gte,Argument:xNr,Option:wNr,Help:$Nr}=Bte.default;var tA=T(Ax()),Ey=T(Jw());var f7e=T(IK()),g7e=T(Ax()),h7e=T(OJ()),S7e=T(Jw()),y7e=T(Pte()),E7e=T(bW());function JT(t){let e=t.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION;return{...e&&{region:e},...t.profile&&{credentials:(0,E7e.fromIni)({profile:t.profile})}}}function Np(t){return new f7e.CloudFormationClient(JT(t))}function LG(t){return new S7e.ECSClient(JT(t))}function UG(t){return new g7e.CloudWatchLogsClient(JT(t))}function vte(t){return new h7e.CognitoIdentityProviderClient(JT(t))}function C7e(t){return new y7e.SecretsManagerClient(JT(t))}var Tc=T(IK());async function _7e(t,e){let r=await Wkr(t),n=`${e}:`;return Object.fromEntries(Object.entries(r).filter(([s])=>s.startsWith(n)))}async function yy(t,e,r){let n=[],s;do{let o=await t.send(new Tc.ListStackResourcesCommand({StackName:e,NextToken:s}));for(let i of o.StackResourceSummaries??[])i.ResourceType===r&&i.PhysicalResourceId&&n.push(i.PhysicalResourceId);s=o.NextToken}while(s);return n}async function Wkr(t){let e={},r;do{let n=await t.send(new Tc.ListExportsCommand({NextToken:r}));for(let s of n.Exports??[])s.Name&&s.Value&&(e[s.Name]=s.Value);r=n.NextToken}while(r);return e}async function R7e(t,e){try{let n=(await t.send(new Tc.DescribeStacksCommand({StackName:e}))).Stacks?.[0];return n?{status:n.StackStatus,statusReason:n.StackStatusReason,lastUpdated:n.LastUpdatedTime}:null}catch(r){if(r.name==="ValidationError"||r.message?.includes("does not exist"))return null;throw r}}async function T7e(t,e,r=10){return((await t.send(new Tc.DescribeStackEventsCommand({StackName:e}))).StackEvents||[]).slice(0,r)}async function A7e(t,e){let r=["CREATE_FAILED","ROLLBACK_COMPLETE","ROLLBACK_FAILED","DELETE_FAILED","UPDATE_ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","IMPORT_ROLLBACK_COMPLETE","IMPORT_ROLLBACK_FAILED"],n=await t.send(new Tc.ListStacksCommand({StackStatusFilter:r}));if(!n.StackSummaries||n.StackSummaries.length===0)return null;let s=n.StackSummaries;return e&&(s=s.filter(i=>i.StackName?.toLowerCase().includes(e.toLowerCase())),s.length===0)?null:s.sort((i,a)=>{let c=i.LastUpdatedTime?.getTime()||0;return(a.LastUpdatedTime?.getTime()||0)-c})[0].StackName||null}var XT="\x1B[0m",FG="\x1B[1m",zkr="\x1B[2m",Kkr="\x1B[31m",Qkr="\x1B[36m";function ZT(t){let e=` \u{1F431} catnip \u2014 ${t} `,r=Math.max(e.length+2,44),n="\u2550".repeat(r);console.log(`${Qkr}${FG}\u2554${n}\u2557`),console.log(`\u2551${e.padEnd(r)}\u2551`),console.log(`\u255A${n}\u255D${XT}`)}function Ac(t){console.log(`
188
188
  ${FG}${t}${XT}`)}function Lp(t){process.stderr.write(`${Kkr}${FG}Error:${XT} ${t}
189
189
  `)}function bn(t){return`${zkr}${t}${XT}`}function Xu(t){return`${FG}${t}${XT}`}var Ff="\x1B[0m",Ykr="\x1B[1m",eA="\x1B[2m",P7e=["\x1B[32m","\x1B[33m","\x1B[34m","\x1B[35m","\x1B[36m"],Jkr={10:"TRACE",20:"DEBUG",30:"INFO",40:"WARN",50:"ERROR",60:"FATAL"},Xkr={TRACE:"\x1B[2m",DEBUG:"\x1B[36m",INFO:"\x1B[32m",WARN:"\x1B[33m",ERROR:"\x1B[31m",FATAL:"\x1B[35m"};function b7e(t){t.command("ecs-logs").description("Stream live logs from running ECS services in a CloudFormation stack").requiredOption("--stack-name <name>","CloudFormation stack name").option("--tail <n>","Lines of history to show per container on startup","100").option("-f, --follow","Keep polling for new log events (Ctrl+C to stop)").option("--service <name>","Show only services whose name contains this string").option("-o, --output <mode>","Output mode: text, raw, or pretty","text").action(async e=>{try{let r=parseInt(e.tail,10);if(isNaN(r)||r<1)throw new Error("--tail must be a positive integer");let n=e.output;if(!["text","raw","pretty"].includes(n))throw new Error("--output must be one of: text, raw, pretty");await Zkr({region:t.opts().region,profile:t.opts().profile,stackName:e.stackName,tail:r,follow:!!e.follow,service:e.service,output:n})}catch(r){Lp(r instanceof Error?r.message:String(r)),process.exit(1)}})}async function Zkr(t){let e={region:t.region,profile:t.profile},r=Np(e),n=LG(e),s=UG(e),o=t.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION??"default";ZT("ecs-logs"),console.log(`Stack: ${Xu(t.stackName)} | Region: ${bn(o)}`);let i=await yy(r,t.stackName,"AWS::ECS::Service");i.length===0&&(Lp(`No ECS services found in stack '${t.stackName}'.`),process.exit(1)),t.service&&(i=i.filter(u=>u.includes(t.service)),i.length===0&&(Lp(`No ECS services matching '${t.service}' found in stack '${t.stackName}'.`),process.exit(1))),t.output==="raw"&&i.length>1&&process.stderr.write(`Warning: Multiple services found. Lines from different services will be interleaved without attribution.
190
190
  `);let a=[];for(let u=0;u<i.length;u++){let f=i[u],m=P7e[u%P7e.length],h=f.split("/").pop()??f,S=tNr(f),b=(await n.send(new Ey.DescribeServicesCommand({...S&&{cluster:S},services:[f]}))).services?.[0];if(!b){process.stderr.write(`${eA}[${h}] Could not retrieve service details, skipping.${Ff}
@@ -195,5 +195,5 @@ ${FG}${t}${XT}`)}function Lp(t){process.stderr.write(`${Kkr}${FG}Error:${XT} ${t
195
195
  `);return}let i=r.timestamp,a=i?new Date(i).toISOString().replace("T"," ").replace(/\.\d+Z$/," UTC"):"",c=`${s}[${t}/${e}]${Ff}`;if(n==="pretty"){try{let u=JSON.parse(o),f=eNr(c,u,i);process.stdout.write(f+`
196
196
  `);return}catch{}console.log(`${c} ${o.trimEnd()}`);return}console.log(`${c} ${eA}[${a}]${Ff} ${o.trimEnd()}`)}function eNr(t,e,r){let n=typeof e.level=="number"?e.level:30,s=Jkr[n]??String(n),o=Xkr[s]??"",a=(typeof e.time=="number"?e.time:void 0)??r,c=a?new Date(a).toISOString().slice(11,19):"",u=typeof e.msg=="string"?e.msg:"",f=e.req,m=e.res,h="";f&&typeof f.method=="string"&&typeof f.url=="string"&&(h=`${f.method} ${f.url}`,m&&m.statusCode!==void 0&&(h+=` \u2192 ${m.statusCode}`));let S=e.err,C=S&&typeof S.message=="string"?`: ${S.message}`:"",b=[u,h].filter(Boolean).join(" ")+C,$=c?` ${eA}(${c})${Ff}`:"";return`${t} ${o}${Ykr}${s}${Ff} ${b}${$}`}function tNr(t){let e=t.split("/");return e.length>=3?e[e.length-2]:void 0}function rNr(t){return new Promise(e=>setTimeout(e,t))}var _y=T(OJ()),D7e=T(Pte());function I7e(t){return Array.isArray(t)}function bte(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").toLowerCase()}function Cy(t,e){let{prefix:r,key:n,version:s}=e,o=I7e(r)?r:[r];return nNr(s,t,...o,n)}function nNr(t,...e){if(e.filter(s=>s.length>0).map((s,o)=>{if(o>0&&bte(s)!==s)throw new Error(`prefix '${s}' must be kebab-case (like '${bte(s)}')`);return s}).length<1)throw new Error("key must consist of at least one non-empty prefix");let n=s=>t&&t>1&&s===Math.min(e.length,2)-1;return e.map((s,o)=>n(o)?`${s}-v${t}`:s).join(":")}var ha={userPoolId:t=>Cy(t,{prefix:"cognito",key:"user-pool-id",version:2}),appClientId:t=>Cy(t,{prefix:"cognito",key:"application-client-id",version:2}),apiClientId:t=>Cy(t,{prefix:"cognito",key:"api-client-id",version:2}),userPoolDomain:t=>Cy(t,{prefix:"cognito",key:"user-pool-domain",version:1}),appClientSecretArn:t=>Cy(t,{prefix:"cognito",key:"app-client-secret-arn",version:1})};function x7e(t){t.command("oidc-token").description("Fetch an OIDC access token from a Cognito user pool client discovered via CloudFormation exports").requiredOption("--stack-name <name>","CloudFormation stack that exported the Cognito resources").option("--client <api|app>","Which Cognito client to use: api (client credentials) or app (user password)","api").option("--username <user>","Username (required for --client app)").option("--password <pass>","Password (or set CATNIP_PASSWORD env var; required for --client app)").option("--output <token|json>","Output format: bare access token or full JSON response","token").action(async e=>{try{await sNr({region:t.opts().region,profile:t.opts().profile,stackName:e.stackName,client:e.client,username:e.username,password:e.password??process.env.CATNIP_PASSWORD,output:e.output})}catch(r){Lp(r instanceof Error?r.message:String(r)),process.exit(1)}})}async function sNr(t){let e={region:t.region,profile:t.profile},r=Np(e),n=await _7e(r,t.stackName),s=n[ha.userPoolId(t.stackName)],o=n[ha.userPoolDomain(t.stackName)];if(!s)throw new Error(`Could not find Cognito User Pool ID in stack '${t.stackName}'. Expected CF export: '${ha.userPoolId(t.stackName)}'`);if(!o)throw new Error(`Could not find Cognito User Pool Domain in stack '${t.stackName}'. Expected CF export: '${ha.userPoolDomain(t.stackName)}'`);t.client==="api"?await oNr(t,e,s,o,n):await iNr(t,e,s,o,n)}async function oNr(t,e,r,n,s){let o=s[ha.apiClientId(t.stackName)];if(!o)throw new Error(`Could not find API Client ID in stack '${t.stackName}'. Expected CF export: '${ha.apiClientId(t.stackName)}'`);let c=(await vte(e).send(new _y.DescribeUserPoolClientCommand({UserPoolId:r,ClientId:o}))).UserPoolClient?.ClientSecret;if(!c)throw new Error("Could not retrieve client secret from Cognito. Ensure the calling principal has cognito-idp:DescribeUserPoolClient permission.");let u=`https://${cNr(n,e)}/oauth2/token`,f=Buffer.from(`${o}:${c}`).toString("base64"),m=await fetch(u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Basic ${f}`},body:"grant_type=client_credentials"});if(!m.ok){let S=await m.text();throw new Error(`Token endpoint returned ${m.status}: ${S}`)}let h=await m.json();w7e(h,"access_token",t.output)}async function iNr(t,e,r,n,s){if(!t.username)throw new Error("--username is required for --client app");if(!t.password)throw new Error("--password (or CATNIP_PASSWORD env var) is required for --client app");let o=s[ha.appClientId(t.stackName)],i=s[ha.appClientSecretArn(t.stackName)];if(!o)throw new Error(`Could not find App Client ID in stack '${t.stackName}'. Expected CF export: '${ha.appClientId(t.stackName)}'`);if(!i)throw new Error(`Could not find App Client Secret ARN in stack '${t.stackName}'. Expected CF export: '${ha.appClientSecretArn(t.stackName)}'`);let u=(await C7e(e).send(new D7e.GetSecretValueCommand({SecretId:i}))).SecretString;if(!u)throw new Error(`Could not read secret value from '${i}'`);let h=(await vte(e).send(new _y.InitiateAuthCommand({AuthFlow:_y.AuthFlowType.USER_PASSWORD_AUTH,ClientId:o,AuthParameters:{USERNAME:t.username,PASSWORD:t.password,SECRET_HASH:aNr(o,u,t.username)}}))).AuthenticationResult;if(!h)throw new Error("Authentication did not return a token (challenge may be required).");w7e({id_token:h.IdToken,access_token:h.AccessToken,refresh_token:h.RefreshToken,expires_in:h.ExpiresIn,token_type:h.TokenType},"id_token",t.output)}function w7e(t,e,r){if(r==="json")console.log(JSON.stringify(t,null,2));else{let n=t[e];if(!n)throw new Error(`No '${e}' found in token response.`);console.log(n)}}function aNr(t,e,r){return require("crypto").createHmac("sha256",e).update(r+t).digest("base64")}function cNr(t,e){if(t.includes(".amazoncognito.com"))return t;let r=e.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION??"us-east-1";return`${t}.auth.${r}.amazoncognito.com`}var MG=T(Ax()),Up=T(Jw());async function O7e(t,e,r,n){let s=Np({}),o=await yy(s,r,"AWS::ECS::Service");if(o.length===0)throw new Error(`No ECS services found in stack '${r}'.`);for(let i of o){let a=lNr(i),c=i.split("/").pop()??i;console.log(`
197
197
  ${"\u2500".repeat(64)}`),console.log(`Service: ${Xu(c)}${a?` | Cluster: ${bn(a)}`:""}`),console.log("\u2500".repeat(64));let f=(await t.send(new Up.DescribeServicesCommand({...a&&{cluster:a},services:[i]}))).services?.[0];if(!f){console.log(" Could not retrieve service details.");continue}let m=f.clusterArn??a;Ac("\u{1F4CB} SERVICE EVENTS (last 10)");let h=(f.events??[]).slice(0,10);if(h.length===0)console.log(" No events.");else for(let V of h){let W=V.createdAt?$7e(V.createdAt):"?";console.log(` ${bn(`[${W}]`)} ${V.message??""}`)}let S=(f.deployments??[]).find(V=>V.status==="PRIMARY"),C=S?.rolloutState==="FAILED"||S?.rolloutStateReason?.toLowerCase().includes("circuit breaker")===!0;Ac("\u26A0\uFE0F CIRCUIT BREAKER"),console.log(C?` ${Xu("TRIGGERED")}${S?.rolloutStateReason?`: ${S.rolloutStateReason}`:""}`:` Not triggered (rollout state: ${S?.rolloutState??"unknown"})`);let b=f.taskDefinition,$={};if(b){let V=await t.send(new Up.DescribeTaskDefinitionCommand({taskDefinition:b}));for(let W of V.taskDefinition?.containerDefinitions??[]){let te=W.logConfiguration?.options?.["awslogs-group"];W.name&&te&&W.logConfiguration?.logDriver==="awslogs"&&($[W.name]=te)}}Ac(`\u{1F534} STOPPED TASKS (${n.tasks} most recent)`);let U=((await t.send(new Up.ListTasksCommand({cluster:m,serviceName:i,desiredStatus:"STOPPED"}))).taskArns??[]).slice(0,n.tasks);if(U.length===0){console.log(" No stopped tasks found.");continue}let B=await t.send(new Up.DescribeTasksCommand({cluster:m,tasks:U}));for(let V of B.tasks??[]){let W=V.taskArn?.split("/").pop()??"unknown",te=V.stoppedAt?$7e(V.stoppedAt):"unknown";console.log(`
198
- Task ${bn(W.slice(0,12))}\u2026 \u2014 stopped ${te}`),V.stoppedReason&&console.log(` Reason: ${V.stoppedReason}`);for(let he of V.containers??[]){let j=he.exitCode!==void 0?`exit code: ${he.exitCode}`:"",Q=he.reason?` ${he.reason}`:"";console.log(` Container ${Xu(`'${he.name??"?"}'`)} ${j}${Q?` |${Q}`:""}`)}for(let he of V.containers??[]){let j=he.name??"unknown",Q=$[j];Q&&await uNr(e,Q,j,W,n.tail)}}}}async function uNr(t,e,r,n,s){Ac(`\u{1F4DC} LOGS \u2014 ${Xu(r)} ${bn(`[${e}]`)} (last ${s} lines)`);try{let i=((await t.send(new MG.DescribeLogStreamsCommand({logGroupName:e,orderBy:"LastEventTime",descending:!0,limit:50}))).logStreams??[]).find(u=>u.logStreamName?.includes(n));if(!i?.logStreamName){console.log(` ${bn("No log stream found for this task.")}`);return}let c=(await t.send(new MG.GetLogEventsCommand({logGroupName:e,logStreamName:i.logStreamName,limit:s,startFromHead:!1}))).events??[];if(c.length===0){console.log(` ${bn("No log events found.")}`);return}for(let u of c){let f=u.timestamp?bn(`[${new Date(u.timestamp).toISOString()}]`):"";console.log(` ${f} ${u.message?.trimEnd()??""}`)}}catch(o){console.log(` ${bn(`Could not fetch logs: ${o instanceof Error?o.message:String(o)}`)}`)}}function lNr(t){let e=t.split("/");return e.length>=3?e[e.length-2]:void 0}function $7e(t){return t.toISOString().replace("T"," ").replace(/\.\d+Z$/," UTC")}var dNr=["CREATE_COMPLETE","UPDATE_COMPLETE","IMPORT_COMPLETE"];function k7e(t){t.command("stack-diagnose").description("Diagnose CloudFormation stack deployment failures (auto-detects last failed stack if stack name omitted)").option("--stack-name <name>","CloudFormation stack name").option("--tail <n>","Number of log lines to show per container","100").option("--tasks <n>","Number of recent stopped tasks to inspect","5").action(async e=>{try{let r=parseInt(e.tail,10),n=parseInt(e.tasks,10);if(isNaN(r)||r<1)throw new Error("--tail must be a positive integer");if(isNaN(n)||n<1)throw new Error("--tasks must be a positive integer");await pNr({region:t.opts().region,profile:t.opts().profile,stackName:e.stackName,tail:r,tasks:n})}catch(r){Lp(r instanceof Error?r.message:String(r)),process.exit(1)}})}async function pNr(t){let e={region:t.region,profile:t.profile},r=Np(e),n=LG(e),s=UG(e),o=t.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION??"default",i=t.stackName;if(i)ZT("stack-diagnose");else{let f=await A7e(r);f||(console.log("\u2713 No failed stacks found in account"),process.exit(0)),i=f,ZT("stack-diagnose"),Ac(`\u2139\uFE0F Auto-detected failed stack: ${i}`),console.log(bn(` Use --stack-name to specify a different stack
198
+ Task ${bn(W.slice(0,12))}\u2026 \u2014 stopped ${te}`),V.stoppedReason&&console.log(` Reason: ${V.stoppedReason}`);for(let he of V.containers??[]){let j=he.exitCode!==void 0?`exit code: ${he.exitCode}`:"",Q=he.reason?` ${he.reason}`:"";console.log(` Container ${Xu(`'${he.name??"?"}'`)} ${j}${Q?` |${Q}`:""}`)}for(let he of V.containers??[]){let j=he.name??"unknown",Q=$[j];Q&&await uNr(e,Q,j,W,n.tail)}}}}async function uNr(t,e,r,n,s){Ac(`\u{1F4DC} LOGS \u2014 ${Xu(r)} ${bn(`[${e}]`)} (last ${s} lines)`);try{let i=((await t.send(new MG.DescribeLogStreamsCommand({logGroupName:e,orderBy:"LastEventTime",descending:!0,limit:50}))).logStreams??[]).find(u=>u.logStreamName?.includes(n));if(!i?.logStreamName){console.log(` ${bn("No log stream found for this task.")}`);return}let c=(await t.send(new MG.GetLogEventsCommand({logGroupName:e,logStreamName:i.logStreamName,limit:s,startFromHead:!1}))).events??[];if(c.length===0){console.log(` ${bn("No log events found.")}`);return}for(let u of c){let f=u.timestamp?bn(`[${new Date(u.timestamp).toISOString()}]`):"";console.log(` ${f} ${u.message?.trimEnd()??""}`)}}catch(o){console.log(` ${bn(`Could not fetch logs: ${o instanceof Error?o.message:String(o)}`)}`)}}function lNr(t){let e=t.split("/");return e.length>=3?e[e.length-2]:void 0}function $7e(t){return t.toISOString().replace("T"," ").replace(/\.\d+Z$/," UTC")}var dNr=["CREATE_COMPLETE","UPDATE_COMPLETE","IMPORT_COMPLETE"];function k7e(t){t.command("stack-diagnose").description("Diagnose CloudFormation stack deployment failures (auto-detects last failed stack if stack name omitted)").option("--stack-name <name>","CloudFormation stack name").option("--stage <name>","Filter stacks by stage name (e.g., 'prod', 'dev') - only used when auto-detecting").option("--tail <n>","Number of log lines to show per container","100").option("--tasks <n>","Number of recent stopped tasks to inspect","5").action(async e=>{try{let r=parseInt(e.tail,10),n=parseInt(e.tasks,10);if(isNaN(r)||r<1)throw new Error("--tail must be a positive integer");if(isNaN(n)||n<1)throw new Error("--tasks must be a positive integer");await pNr({region:t.opts().region,profile:t.opts().profile,stackName:e.stackName,stage:e.stage,tail:r,tasks:n})}catch(r){Lp(r instanceof Error?r.message:String(r)),process.exit(1)}})}async function pNr(t){let e={region:t.region,profile:t.profile},r=Np(e),n=LG(e),s=UG(e),o=t.region??process.env.AWS_DEFAULT_REGION??process.env.AWS_REGION??"default",i=t.stackName;if(i)ZT("stack-diagnose");else{let f=await A7e(r,t.stage);if(!f){let h=t.stage?`\u2713 No failed stacks found matching stage '${t.stage}'`:"\u2713 No failed stacks found in account";console.log(h),process.exit(0)}i=f,ZT("stack-diagnose");let m=t.stage?` (filtered by stage: ${t.stage})`:"";Ac(`\u2139\uFE0F Auto-detected failed stack: ${i}${m}`),console.log(bn(` Use --stack-name to specify a different stack
199
199
  `))}console.log(`Stack: ${Xu(i)} | Region: ${bn(o)}`);let a=await R7e(r,i);a||(console.log(`\u26A0\uFE0F Stack not found: ${i}`),process.exit(0)),dNr.includes(a.status||"")&&(console.log(`\u2713 Stack ${i} is healthy (${a.status})`),process.exit(0)),Ac("\u{1F4E6} Stack Status"),console.log(`Status: ${a.status} \u274C`),a.statusReason&&console.log(`Reason: ${a.statusReason}`),console.log("");let c=await T7e(r,i,10);if(c.length>0){Ac("\u{1F4DC} Recent CloudFormation Events");for(let f of c){let m=f.Timestamp?f.Timestamp.toISOString().replace("T"," ").substring(0,19):"",h=f.LogicalResourceId||"",S=f.ResourceStatus||"",C=f.ResourceStatusReason||"";console.log(`[${m}] ${h} | ${S}`),C&&C!==S&&console.log(bn(` \u2192 ${C}`))}console.log("")}(await yy(r,i,"AWS::ECS::Service")).length>0&&(Ac("\u{1F433} ECS Service Diagnostics"),await O7e(n,s,i,{tail:t.tail,tasks:t.tasks}))}var{version:fNr}=N7e(),qG=new Gte().name("catnip").description("\u{1F431} catnip \u2014 cloud toolkit by the CAT department (Cloud Architecture & Technologies)").version(fNr).option("--region <region>","AWS region (default: AWS_DEFAULT_REGION / AWS_REGION)").option("--profile <profile>","AWS named profile (for local use)");b7e(qG);x7e(qG);k7e(qG);qG.parse();
@@ -145,5 +145,5 @@ class EventPipe extends construct_1.Construct {
145
145
  }
146
146
  exports.EventPipe = EventPipe;
147
147
  _a = JSII_RTTI_SYMBOL_1;
148
- EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.22.11" };
148
+ EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.22.12" };
149
149
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQaXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXZlbnRQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLGlEQUE2RDtBQUU3RCxxREFBZ0Q7QUFHaEQsd0RBQXFEO0FBQ3JELDBDQUEwQztBQUMxQyx3RUFBdUU7QUFzQ3ZFLElBQVksUUFpQlg7QUFqQkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsdUJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBakJXLFFBQVEsd0JBQVIsUUFBUSxRQWlCbkI7QUFFRDs7R0FFRztBQUNILElBQVksY0FjWDtBQWRELFdBQVksY0FBYztJQUN4Qjs7Ozs7T0FLRztJQUNILDJFQUFnQixDQUFBO0lBQ2hCOzs7O09BSUc7SUFDSCx5RUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFkVyxjQUFjLDhCQUFkLGNBQWMsUUFjekI7QUEyRkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxrQkFBa0IsR0FDcEIsY0FBYyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsSUFBSSw0QkFBNEIsR0FDOUIsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFckUsSUFBSSxXQUFXLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFM0UsSUFBSSxTQUFTLEdBQUcsV0FBVyxLQUFLLFNBQVMsQ0FBQztRQUUxQyxJQUFJLFNBQVMsR0FBRyxTQUFTO1lBQ3ZCLENBQUMsQ0FBQyxXQUFZLENBQUMsUUFBUTtZQUN2QixDQUFDLENBQUMsa0JBQW1CLENBQUMsZUFBZSxDQUFDO1FBRXhDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLElBQUEsNkNBQXNCLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMvQix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFDaEUsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUk7WUFDUCxLQUFLLENBQUMsSUFBSTtnQkFDVixJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO29CQUM5QixTQUFTLEVBQUUsSUFBSSwwQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDdkQsQ0FBQyxDQUFDO1FBRUwsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDL0IsQ0FBQyxDQUFDO2dCQUNFLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQzs0QkFDdEIsSUFBSSxFQUFFO2dDQUNKLEdBQUcsS0FBSyxDQUFDLE1BQU07NkJBQ2hCO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxJQUFJLGdCQUFnQixHQUF5QyxFQUFFLENBQUM7UUFDaEUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixnQkFBZ0IsR0FBRztnQkFDakIsa0JBQWtCLEVBQUU7b0JBQ2xCLGNBQWMsRUFBRSxTQUFTO2lCQUMxQjthQUNGLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLGdCQUFnQixHQUFHO2dCQUNqQixrQ0FBa0MsRUFBRTtvQkFDbEMsY0FBYyxFQUFFLDRCQUE0QixFQUFFLGNBQWM7d0JBQzFELENBQUMsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLENBQUMsY0FBYyxDQUFDO3dCQUM3RCxDQUFDLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDcEQ7Z0JBQ0QsR0FBRyxDQUFDLDRCQUE0QixFQUFFLGFBQWEsSUFBSTtvQkFDakQsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQzNCLDRCQUE0QixDQUFDLGFBQWEsQ0FDM0MsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2lCQUNuQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLGdCQUFnQixHQUFHO1lBQ3JCLGtCQUFrQixFQUFFO2dCQUNsQixTQUFTLEVBQUUsQ0FBQzthQUNiO1lBQ0QsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQztTQUMxRCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQ2YsSUFBSSxzQkFBVyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtvQkFDekMsT0FBTyxFQUFFLFlBQVk7aUJBQ3RCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQ2xELENBQUMsQ0FBQztnQkFDRSxnQkFBZ0IsRUFBRTtvQkFDaEIsNEJBQTRCLEVBQUU7d0JBQzVCLFdBQVcsRUFBRSxRQUFTLENBQUMsV0FBVztxQkFDbkM7b0JBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRO2lCQUN0QjthQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksbUJBQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzdCLEdBQUcsaUJBQWlCO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM3QixNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBcUI7UUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDekUsQ0FBQzs7QUE5R0gsOEJBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBDZm5QaXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1waXBlc1wiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEJUQ0xvZ0dyb3VwIH0gZnJvbSBcIi4uL3BsYXRmb3JtXCI7XG5pbXBvcnQgeyBpc0RlYWN0aXZhdGVkQ29uc3RydWN0IH0gZnJvbSBcIi4uL3V0aWxzL2RlYWN0aXZhdGVkQ29uc3RydWN0XCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgcGlwZSBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQaXBlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBTUVMgcXVldWUuIE5vIG90aGVyIHNvdXJjZSB0eXBlcyBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBTUVMgcXVldWUgb3IgdGFyZ2V0IHN0ZXAgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFRhcmdldFF1ZXVlIHwgVGFyZ2V0U3RlcEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB1c2VkIGJ5IHRoZSBldmVudCBwaXBlLiBJZiBvbWl0dGVkLCBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogUm9sZTtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZmlsdGVyIGZvciB0aGUgcGlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBpcGVGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbG9nIGxldmVsIGZvciB0aGUgcGlwZS4gQ3JlYXRlcyBhIG5ldyBsb2cgZ3JvdXAsIGlmIGVuYWJsZWQuXG4gICAqIERlZmF1bHQ6IERpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIGxvZyBncm91cC4gSWYgbm9uZSBpcyBnaXZlbiBhbmQgbG9nZ2luZyBpcyBlbmFibGVkLCBhIG5ldyBsb2cgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBJTG9nR3JvdXA7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgbG9nZ2luZy4gTm8gbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIE9GRiA9IFwiT0ZGXCIsXG4gIC8qKlxuICAgKiBPbmx5IGxvZyBlcnJvcnMuXG4gICAqL1xuICBFUlJPUiA9IFwiRVJST1JcIixcbiAgLyoqXG4gICAqIExvZyBlcnJvcnMgYW5kIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMuXG4gICAqL1xuICBJTkZPID0gXCJJTkZPXCIsXG4gIC8qKlxuICAgKiBMb2cgdmVyeSB2ZXJib3NlLlxuICAgKi9cbiAgVFJBQ0UgPSBcIlRSQUNFXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9jYXRpb24gdHlwZSBvZiB0aGUgc3RlcCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gSW52b2NhdGlvblR5cGUge1xuICAvKipcbiAgICogKGRlZmF1bHQpIC0gSW52b2tlIHN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0U3luY0V4ZWN1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX1N0YXJ0U3luY0V4ZWN1dGlvbi5odG1sKVxuICAgKiBpbiB0aGUgKkFXUyBTdGVwIEZ1bmN0aW9ucyBBUEkgUmVmZXJlbmNlKi5cbiAgICogPiBgUkVRVUVTVF9SRVNQT05TRWAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYFNUQU5EQVJEYCBzdGF0ZSBtYWNoaW5lIHdvcmtmbG93cy5cbiAgICovXG4gIFJFUVVFU1RfUkVTUE9OU0UsXG4gIC8qKlxuICAgKiBJbnZva2UgYXN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0RXhlY3V0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfU3RhcnRFeGVjdXRpb24uaHRtbClcbiAgICogaW4gdGhlICpBV1MgU3RlcCBGdW5jdGlvbnMgQVBJIFJlZmVyZW5jZSouXG4gICAqL1xuICBGSVJFX0FORF9GT1JHRVQsXG59XG5cbi8qKlxuICogVGhlIGlucHV0IHRlbXBsYXRlLlxuICogTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGluIHRoZSByZXN1bHRpbmcgY29kZSBzaG91bGQgbm90IGhhdmUgcXVvdGVzIGFyb3VuZCB0aGUgdmFsdWUsIGUuZy4gaWYgYW4gb2JqZWN0XG4gKiBzaGFsbCBiZSBhZGRlZC4gVG8gcmVmbGVjdCB0aGlzLCBhZGQgY3VybHkgYnJhY2tldHMgYXJvdW5kIHRoZSB2YWx1ZSwgZS5nLiBge3s8JC5ib2R5Pn19YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBhcyBwaXBlIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRRdWV1ZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogU3RlcEZ1bmN0aW9uIGFzIHBpcGUgdGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFN0ZXBGdW5jdGlvbiB7XG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbjogSVN0YXRlTWFjaGluZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYSBzdGVwIGZ1bmN0aW9uIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzIHtcbiAgcmVhZG9ubHkgaW5wdXRUZW1wbGF0ZT86IElucHV0VGVtcGxhdGU7XG4gIHJlYWRvbmx5IGludm9jYXRpb25UeXBlPzogSW52b2NhdGlvblR5cGU7XG59XG5cbi8qKlxuICogQmFzZSB0eXBlIGZvciBmaWx0ZXIgcnVsZXMuIE5vdCBhbGwgYXZhaWxhYmxlIHJ1bGVzIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlclJ1bGUgPVxuICB8IFByZWZpeEZpbHRlclJ1bGVcbiAgfCBTdWZmaXhGaWx0ZXJSdWxlXG4gIHwgQW55dGhpbmdCdXRGaWx0ZXJSdWxlXG4gIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcblxuLyoqXG4gKiBSdWxlIHRoYXQgYSBwcm9wZXJ0eSBoYXMgdG8gc3RhcnQgd2l0aCBhIHByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhIHByb3BlcnR5IGhhcyB0byBlbmQgd2l0aCBhIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWZmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgc3VmZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhbGxvd3MgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGdpdmVuIG9uZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55dGhpbmdCdXRGaWx0ZXJSdWxlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJhbnl0aGluZy1idXRcIjogc3RyaW5nW10gfCBGaWx0ZXJSdWxlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBtYXRjaGVzIGEgc3RyaW5nLCBpZ25vcmluZyB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBmaWx0ZXIgZm9yIG1lc3NhZ2VzIGluIHRoZSBwaXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIHJ1bGVzIGZvciBlYWNoIGF0dHJpYnV0ZSBvZiB0aGUgYm9keS5cbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBGaWx0ZXJSdWxlW107XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciB0aGUgTDEgZXZlbnQgcGlwZSB3aXRoIHRoZSBhYmlsaXR5IHRvIGRlYWN0aXZhdGUgaXQgd2l0aGluIHRoZSBzdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50UGlwZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudFBpcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uID1cbiAgICAgIFwic3RlcEZ1bmN0aW9uXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnN0ZXBGdW5jdGlvbiA6IHVuZGVmaW5lZDtcbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycyA9XG4gICAgICBcInBhcmFtZXRlcnNcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucGFyYW1ldGVycyA6IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRRdWV1ZSA9IFwicXVldWVcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucXVldWUgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgc3FzVGFyZ2V0ID0gdGFyZ2V0UXVldWUgIT09IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRBcm4gPSBzcXNUYXJnZXRcbiAgICAgID8gdGFyZ2V0UXVldWUhLnF1ZXVlQXJuXG4gICAgICA6IHRhcmdldFN0ZXBGdW5jdGlvbiEuc3RhdGVNYWNoaW5lQXJuO1xuXG4gICAgbGV0IGRlc2lyZWRTdGF0ZSA9IFwiUlVOTklOR1wiO1xuICAgIGlmIChpc0RlYWN0aXZhdGVkQ29uc3RydWN0KGlkKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkSW5mbyhgJHtpZH0gaXMgc2V0IGRvIGJlIGRlYWN0aXZhdGVkLmApO1xuICAgICAgZGVzaXJlZFN0YXRlID0gXCJTVE9QUEVEXCI7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID1cbiAgICAgIHByb3BzLnJvbGUgfHxcbiAgICAgIG5ldyBSb2xlKHRoaXMsIFwiRXZlbnRQaXBlUm9sZVwiLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJwaXBlcy5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgfSk7XG5cbiAgICBsZXQgZmlsdGVyQ3JpdGVyaWEgPSBwcm9wcy5maWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0dGVybjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgIC4uLnByb3BzLmZpbHRlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0UGFyYW1ldGVyczogQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID0ge307XG4gICAgaWYgKHRhcmdldFF1ZXVlKSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBtZXNzYWdlR3JvdXBJZDogXCJkZWZhdWx0XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgaW52b2NhdGlvblR5cGU6IHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM/Lmludm9jYXRpb25UeXBlXG4gICAgICAgICAgICA/IEludm9jYXRpb25UeXBlW3RhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnMuaW52b2NhdGlvblR5cGVdXG4gICAgICAgICAgICA6IEludm9jYXRpb25UeXBlW0ludm9jYXRpb25UeXBlLlJFUVVFU1RfUkVTUE9OU0VdLFxuICAgICAgICB9LFxuICAgICAgICAuLi4odGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycz8uaW5wdXRUZW1wbGF0ZSAmJiB7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzLmlucHV0VGVtcGxhdGUsXG4gICAgICAgICAgKS5yZXBsYWNlKC9cIlxce1xceyguKz8pXFx9XFx9XCIvLCBcIiQxXCIpLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHNvdXJjZVBhcmFtZXRlcnMgPSB7XG4gICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgfSxcbiAgICAgIC4uLihmaWx0ZXJDcml0ZXJpYSAmJiB7IGZpbHRlckNyaXRlcmlhOiBmaWx0ZXJDcml0ZXJpYSB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyAocHJvcHMubG9nR3JvdXAgPz9cbiAgICAgICAgbmV3IEJUQ0xvZ0dyb3VwKHRoaXMsIFwiRXZlbnRQaXBlTG9nR3JvdXBcIiwge1xuICAgICAgICAgIGxvZ1R5cGU6IFwiZXZlbnQtcGlwZVwiLFxuICAgICAgICB9KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGlwZUNvbmZpZ3VyYXRpb24gPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyB7XG4gICAgICAgICAgbG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgY2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICAgICAgICBsb2dHcm91cEFybjogbG9nR3JvdXAhLmxvZ0dyb3VwQXJuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxldmVsOiBwcm9wcy5sb2dMZXZlbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gICAgbmV3IENmblBpcGUodGhpcywgXCJFdmVudFBpcGVcIiwge1xuICAgICAgLi4ucGlwZUNvbmZpZ3VyYXRpb24sXG4gICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIHNvdXJjZTogcHJvcHMuc291cmNlLnF1ZXVlQXJuLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRBcm4sXG4gICAgICBzb3VyY2VQYXJhbWV0ZXJzOiBzb3VyY2VQYXJhbWV0ZXJzLFxuICAgICAgdGFyZ2V0UGFyYW1ldGVyczogdGFyZ2V0UGFyYW1ldGVycyxcbiAgICAgIGRlc2lyZWRTdGF0ZTogZGVzaXJlZFN0YXRlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc291cmNlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0UXVldWU/LmdyYW50U2VuZE1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0U3RlcEZ1bmN0aW9uPy5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMucm9sZSk7XG4gICAgbG9nR3JvdXA/LmdyYW50V3JpdGUodGhpcy5yb2xlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nZ2luZ0VuYWJsZWQocHJvcHM6IEV2ZW50UGlwZVByb3BzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb3BzLmxvZ0xldmVsICE9PSB1bmRlZmluZWQgJiYgcHJvcHMubG9nTGV2ZWwgIT09IExvZ0xldmVsLk9GRjtcbiAgfVxufVxuIl19
@@ -135,5 +135,5 @@ class ExportedService extends ExportedServiceBase {
135
135
  }
136
136
  exports.ExportedService = ExportedService;
137
137
  _a = JSII_RTTI_SYMBOL_1;
138
- ExportedService[_a] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.22.11" };
138
+ ExportedService[_a] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.22.12" };
139
139
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0ZWRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXhwb3J0ZWRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsaURBSzZCO0FBQzdCLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFDMUMsNENBQTRDO0FBOEQ1Qzs7Ozs7R0FLRztBQUNILE1BQWUsbUJBQ2IsU0FBUSxzQkFBUztJQVFqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixXQUFtQixFQUNuQixhQUFxQixFQUNyQixJQUFZLEVBQ1osYUFBNkI7UUFFN0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTTtRQUNYLE9BQU8sVUFBVSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksU0FBUyxDQUNkLE9BQWdCLEVBQ2hCLGNBQXNCLG1DQUFtQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3RDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLGNBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNuQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBbUI7SUFDdEQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUMxQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLGtCQUFTLEVBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsQ0FDM0QscUJBQXFCLENBQ3RCLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNuRSxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQzdELEtBQUssRUFDTCxLQUFLLENBQUMsU0FBUyxDQUNoQixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsdUJBQWEsQ0FBQyxtQkFBbUIsQ0FDckQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztRQUVGLE1BQU0sTUFBTyxTQUFRLG1CQUFtQjtZQUN0QztnQkFDRSxLQUFLLENBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLEtBQUssQ0FBQyxJQUFJLEVBQ1YsYUFBYSxDQUNkLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFtQjtRQUN0RCxPQUFPO1lBQ0wsc0JBQXNCLEVBQUUsSUFBSSxzQkFBYyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUM7Z0JBQ3pDLEdBQUcsRUFBRSxtQkFBbUI7Z0JBQ3hCLFdBQVcsRUFBRSwrQ0FBK0M7YUFDN0QsQ0FBQztZQUNGLGtCQUFrQixFQUFFLElBQUksc0JBQWMsQ0FBQztnQkFDckMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2dCQUN6QyxHQUFHLEVBQUUsV0FBVztnQkFDaEIsV0FBVyxFQUFFLGdEQUFnRDthQUM5RCxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7SUFNRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxrQkFBUyxFQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixxQkFBcUIsRUFDckIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsQ0FBQyxFQUFFLDJEQUEyRDtRQUM5RCxLQUFLLENBQUMsYUFBYSxDQUNwQixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQzFELHFCQUFxQixDQUN0QixDQUFDO1FBRUYsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNoRCxJQUFJLEVBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQ3BDLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O0FBOUZILDBDQStGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2UgfSBmcm9tIFwiQGF3cy1jZGstY29udGFpbmVycy9lY3Mtc2VydmljZS1leHRlbnNpb25zXCI7XG5pbXBvcnQge1xuICBJQ29ubmVjdGFibGUsXG4gIElTZWN1cml0eUdyb3VwLFxuICBQb3J0LFxuICBTZWN1cml0eUdyb3VwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFN0YWNrUGFyYW1ldGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBrZWJhYkNhc2UgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaW1wb3J0aW5nIGFuIEV4cG9ydGVkU2VydmljZSBmcm9tIGFub3RoZXIgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlTG9va3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgd2hlcmUgdGhlIHNlcnZpY2Ugd2FzIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG9uIHdoaWNoIHRoZSBzZXJ2aWNlIGlzIGxpc3RlbmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQdWJsaWMgaW50ZXJmYWNlIGZvciBhbiBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydGVkU2VydmljZSBleHRlbmRzIElDb25uZWN0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgb2YgdGhlIGV4cG9ydGVkIEVDUyBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW50ZXJuYWwgQVBJIFVSTCBvZiB0aGUgc2VydmljZS5cbiAgICovXG4gIGFwaVVybCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93IGFuIEVDUyBzZXJ2aWNlIHRvIGNvbm5lY3QgdG8gdGhpcyBleHBvcnRlZCBzZXJ2aWNlLlxuICAgKi9cbiAgYWxsb3dGcm9tKHNlcnZpY2U6IFNlcnZpY2UsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEVDUyBzZXJ2aWNlIGJlaW5nIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoZSBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG5hbWUgd2hlcmUgdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCAoQ2xvdWRNYXAgbmFtZXNwYWNlKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbiBFQ1Mgc2VydmljZSB0aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzLlxuICpcbiAqIFRoaXMgYWJzdHJhY3QgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIHdvcmtpbmcgd2l0aCBleHBvcnRlZFxuICogRUNTIHNlcnZpY2VzLCBpbmNsdWRpbmcgQVBJIFVSTCBnZW5lcmF0aW9uIGFuZCBjb25uZWN0aW9uIG1hbmFnZW1lbnQuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEV4cG9ydGVkU2VydmljZUJhc2VcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJRXhwb3J0ZWRTZXJ2aWNlXG57XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlTmFtZTogc3RyaW5nLFxuICAgIHBvcnQ6IG51bWJlcixcbiAgICBzZWN1cml0eUdyb3VwOiBJU2VjdXJpdHlHcm91cCxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgdGhpcy5uYW1lc3BhY2VOYW1lID0gbmFtZXNwYWNlTmFtZTtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IHNlY3VyaXR5R3JvdXA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpbnRlcm5hbCBBUEkgVVJMIG9mIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGUgVVJMIGZvcm1hdCBpczogaHR0cDovLzxzZXJ2aWNlLW5hbWU+LjxuYW1lc3BhY2U+Ojxwb3J0Pi9cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGludGVybmFsIEFQSSBVUkxcbiAgICovXG4gIHB1YmxpYyBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGh0dHA6Ly8ke3RoaXMuc2VydmljZU5hbWV9LiR7dGhpcy5uYW1lc3BhY2VOYW1lfToke3RoaXMucG9ydH0vYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbm5lY3Rpb25zIG9iamVjdCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGlzIGFsbG93cyB0aGUgRXhwb3J0ZWRTZXJ2aWNlIHRvIGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhcmQgQ0RLIElDb25uZWN0YWJsZVxuICAgKiBwYXR0ZXJuIGZvciBzZWN1cml0eSBncm91cCBtYW5hZ2VtZW50LlxuICAgKi9cbiAgZ2V0IGNvbm5lY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgYW4gRUNTIHNlcnZpY2UgdG8gY29ubmVjdCB0byB0aGlzIGV4cG9ydGVkIHNlcnZpY2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFkZHMgYSBzZWN1cml0eSBncm91cCBpbmdyZXNzIHJ1bGUgYWxsb3dpbmcgdHJhZmZpYyBmcm9tIHRoZVxuICAgKiBnaXZlbiBzZXJ2aWNlIHRvIHRoaXMgZXhwb3J0ZWQgc2VydmljZSBvbiBpdHMgY29uZmlndXJlZCBwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gc2VydmljZSAtIFRoZSBFQ1Mgc2VydmljZSB0byBhbGxvdyBjb25uZWN0aW9ucyBmcm9tXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgc2VjdXJpdHkgZ3JvdXAgcnVsZVxuICAgKi9cbiAgcHVibGljIGFsbG93RnJvbShcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIkFsbG93IGNvbm5lY3Rpb24gZnJvbSBFQ1Mgc2VydmljZVwiLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgc2VydmljZS5lY3NTZXJ2aWNlLFxuICAgICAgUG9ydC50Y3AodGhpcy5wb3J0KSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDUyBzZXJ2aWNlIGV4cG9ydGVkIGZyb20gYW5vdGhlciBDREsgc3RhY2suXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgZW5hYmxlcyBjcm9zcy1zdGFjayBzZXJ2aWNlIGNvbm5lY3Rpdml0eSBieSB0cmFuc3BvcnRpbmcgc2VydmljZVxuICogbWV0YWRhdGEgKHNlY3VyaXR5IGdyb3VwIElEIGFuZCBuYW1lc3BhY2UpIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzIHVzaW5nIFN0YWNrUGFyYW1ldGVyLlxuICogVGhlIHBvcnQgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbXBvcnRpbmcgdGhlIHNlcnZpY2UuXG4gKlxuICogT24gdGhlIHByb3ZpZGVyIHNpZGUgKHdoZXJlIHRoZSBzZXJ2aWNlIGlzIGRlZmluZWQpLCB1c2UgRXhwb3J0ZWRTZXJ2aWNlXG4gKiB3aXRoaW4gdGhlIENsb3VkTWFwRXh0ZW5zaW9uIHRvIGV4cG9zZSB0aGUgc2VydmljZS4gT24gdGhlIGNvbnN1bWVyIHNpZGUsXG4gKiB1c2UgRXhwb3J0ZWRTZXJ2aWNlLmZyb21BdHRyaWJ1dGVzKCkgdG8gaW1wb3J0IHRoZSBzZXJ2aWNlIHdpdGggdGhlIHBvcnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb3ZpZGVyIHNpZGVcbiAqIGNvbnN0IGV4cG9ydGVkU2VydmljZSA9IG5ldyBFeHBvcnRlZFNlcnZpY2UodGhpcywgXCJFeHBvcnRlZFNlcnZpY2VcIiwge1xuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBzZWN1cml0eUdyb3VwOiBzZXJ2aWNlLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzWzBdLFxuICogICBuYW1lc3BhY2VOYW1lOiAnbXktbmFtZXNwYWNlJyxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb25zdW1lciBzaWRlXG4gKiBjb25zdCBleHBvcnRlZFNlcnZpY2UgPSBFeHBvcnRlZFNlcnZpY2UuZnJvbUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gKiAgIHN0YWNrTmFtZTogJ215LXNlcnZpY2Utc3RhY2snLFxuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBwb3J0OiA4MDgwLFxuICogfSk7XG4gKlxuICogZXhwb3J0ZWRTZXJ2aWNlLmFsbG93RnJvbShteVNlcnZpY2UpO1xuICogY29uc3QgdXJsID0gZXhwb3J0ZWRTZXJ2aWNlLmFwaVVybCgpO1xuICovXG5leHBvcnQgY2xhc3MgRXhwb3J0ZWRTZXJ2aWNlIGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gRXhwb3J0ZWRTZXJ2aWNlIGZyb20gYW5vdGhlciBzdGFjay5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaW1wb3J0cyB0aGUgc2VydmljZSBtZXRhZGF0YSAoc2VjdXJpdHkgZ3JvdXAgYW5kIG5hbWVzcGFjZSlcbiAgICogdGhhdCB3YXMgZXhwb3J0ZWQgYnkgdGhlIHByb3ZpZGVyIHN0YWNrIGFuZCBjb25zdHJ1Y3RzIGFuIElFeHBvcnRlZFNlcnZpY2VcbiAgICogaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gYXR0cnMgLSBUaGUgZXhwb3J0ZWQgc2VydmljZSBsb29rdXAgb3B0aW9ucyAoc3RhY2tOYW1lLCBzZXJ2aWNlTmFtZSwgYW5kIHBvcnQpXG4gICAqIEByZXR1cm5zIEFuIElFeHBvcnRlZFNlcnZpY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBFeHBvcnRlZFNlcnZpY2VMb29rdXBPcHRpb25zLFxuICApOiBJRXhwb3J0ZWRTZXJ2aWNlIHtcbiAgICBjb25zdCBub3JtYWxpemVkU2VydmljZU5hbWUgPSBrZWJhYkNhc2UoYXR0cnMuc2VydmljZU5hbWUpO1xuICAgIGNvbnN0IHN0YWNrUGFyYW1ldGVycyA9IEV4cG9ydGVkU2VydmljZS5jcmVhdGVTdGFja1BhcmFtZXRlcnMoXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBJZCA9IHN0YWNrUGFyYW1ldGVycy5zZWN1cml0eUdyb3VwUGFyYW1ldGVyLmltcG9ydChcbiAgICAgIHNjb3BlLFxuICAgICAgYXR0cnMuc3RhY2tOYW1lLFxuICAgICk7XG4gICAgY29uc3QgbmFtZXNwYWNlTmFtZSA9IHN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuaW1wb3J0KFxuICAgICAgc2NvcGUsXG4gICAgICBhdHRycy5zdGFja05hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXAgPSBTZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICBzY29wZSxcbiAgICAgIFwiSW1wb3J0ZWRTZWN1cml0eUdyb3VwXCIsXG4gICAgICBzZWN1cml0eUdyb3VwSWQsXG4gICAgICB7IGFsbG93QWxsT3V0Ym91bmQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbm9ybWFsaXplZFNlcnZpY2VOYW1lLFxuICAgICAgICAgIG5hbWVzcGFjZU5hbWUsXG4gICAgICAgICAgYXR0cnMucG9ydCxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlU3RhY2tQYXJhbWV0ZXJzKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VjdXJpdHlHcm91cFBhcmFtZXRlcjogbmV3IFN0YWNrUGFyYW1ldGVyKHtcbiAgICAgICAgcHJlZml4OiBbXCJleHBvcnRlZC1zZXJ2aWNlXCIsIHNlcnZpY2VOYW1lXSxcbiAgICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlNlY3VyaXR5IEdyb3VwIElEIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgICBuYW1lc3BhY2VQYXJhbWV0ZXI6IG5ldyBTdGFja1BhcmFtZXRlcih7XG4gICAgICAgIHByZWZpeDogW1wiZXhwb3J0ZWQtc2VydmljZVwiLCBzZXJ2aWNlTmFtZV0sXG4gICAgICAgIGtleTogXCJuYW1lc3BhY2VcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2xvdWRNYXAgbmFtZXNwYWNlIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tQYXJhbWV0ZXJzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBFeHBvcnRlZFNlcnZpY2UuY3JlYXRlU3RhY2tQYXJhbWV0ZXJzXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV4cG9ydGVkU2VydmljZVByb3BzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcnZpY2VOYW1lID0ga2ViYWJDYXNlKHByb3BzLnNlcnZpY2VOYW1lKTtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgICBwcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgMCwgLy8gRGVmYXVsdCBwb3J0IC0gYWN0dWFsIHBvcnQgaXMgc3BlY2lmaWVkIG9uIGNvbnN1bWVyIHNpZGVcbiAgICAgIHByb3BzLnNlY3VyaXR5R3JvdXAsXG4gICAgKTtcblxuICAgIHRoaXMuc3RhY2tQYXJhbWV0ZXJzID0gRXhwb3J0ZWRTZXJ2aWNlLmNyZWF0ZVN0YWNrUGFyYW1ldGVycyhcbiAgICAgIG5vcm1hbGl6ZWRTZXJ2aWNlTmFtZSxcbiAgICApO1xuXG4gICAgLy8gRXhwb3J0IHNlcnZpY2UgbWV0YWRhdGEgZm9yIGNyb3NzLXN0YWNrIGNvbnN1bXB0aW9uXG4gICAgdGhpcy5zdGFja1BhcmFtZXRlcnMuc2VjdXJpdHlHcm91cFBhcmFtZXRlci5leHBvcnQoXG4gICAgICB0aGlzLFxuICAgICAgcHJvcHMuc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgKTtcbiAgICB0aGlzLnN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuZXhwb3J0KHRoaXMsIHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuICB9XG59XG4iXX0=
@@ -35,5 +35,5 @@ class S3Bucket extends aws_s3_1.Bucket {
35
35
  }
36
36
  exports.S3Bucket = S3Bucket;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- S3Bucket[_a] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.22.11" };
38
+ S3Bucket[_a] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.22.12" };
39
39
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9TM0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtRTtBQUNuRSwrQ0FBeUQ7QUFFekQsb0NBQTRDO0FBRTVDLFNBQVMsV0FBVyxDQUNsQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUI7SUFFbkIsSUFBSSxJQUFBLHdCQUFnQixHQUFFLEVBQUUsQ0FBQztRQUN2Qix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQzNCLEdBQUcsRUFBRSx5RUFBeUUsQ0FDL0UsQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzVCLG1DQUFtQyxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxlQUFNO0lBQ2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOztBQUhILDRCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzRGV2ZWxvcGVyU3RhY2sgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gYWRqdXN0UHJvcHMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzPzogQnVja2V0UHJvcHMsXG4pOiBCdWNrZXRQcm9wcyB7XG4gIGlmIChpc0RldmVsb3BlclN0YWNrKCkpIHtcbiAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkSW5mbyhcbiAgICAgIGAke2lkfSBpcyBkZXBsb3llZCBpbiBhIGRldmVsb3BlciB2YXJpYW50LiBGaWxlcyB3aWxsIGJlIHJldGFpbmVkIGZvciAzIGRheXMuYCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMyksXG4gICAgICAgICAgYWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQWZ0ZXI6IER1cmF0aW9uLmRheXMoMSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4ucHJvcHMgfTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUge0BsaW5rIEJ1Y2tldH0gY29uc3RydWN0cyB0aGF0IGFkZHMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCBpZiBhIGRldmVsb3BlclxuICogc3RhY2sgaXMgZGV0ZWN0ZWQuIFdpbGwgY2F1c2UgZmlsZXMgdG8gZXhwaXJlIGFmdGVyIHRyZWUgZGF5cyBhbmQgYWxsb3dzIHRvIGRlbGV0ZSB0aGVcbiAqIGJ1Y2tldCBhbmQgYWxsIGl0cyBjb250ZW50cywgaWYgdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0J1Y2tldCBleHRlbmRzIEJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGFkanVzdFByb3BzKHNjb3BlLCBpZCwgcHJvcHMpKTtcbiAgfVxufVxuIl19
@@ -55,5 +55,5 @@ class SecureRestApi extends construct_1.Construct {
55
55
  }
56
56
  exports.SecureRestApi = SecureRestApi;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- SecureRestApi[_a] = { fqn: "@btc-embedded/cdk-extensions.SecureRestApi", version: "0.22.11" };
58
+ SecureRestApi[_a] = { fqn: "@btc-embedded/cdk-extensions.SecureRestApi", version: "0.22.12" };
59
59
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJlUmVzdEFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL1NlY3VyZVJlc3RBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrREFJb0M7QUFDcEMsK0VBRzRDO0FBQzVDLHlEQUFtRDtBQUNuRCx5REFBa0U7QUFDbEUsd0RBQXFEO0FBQ3JELDBDQUFrQztBQUNsQyxvQ0FBMEM7QUF1QjFDOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEscUJBQVM7SUFRMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLHNCQUFjLENBQUM7WUFDcEQsTUFBTSxFQUFFLFNBQVM7WUFDakIsR0FBRyxFQUFFLGNBQWM7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQyxNQUFNLENBQ3pELElBQUksRUFDSixLQUFLLENBQUMscUJBQXFCLENBQzVCLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxzQkFBUSxDQUFDLGNBQWMsQ0FDekMsSUFBSSxFQUNKLGFBQWEsRUFDYixpQkFBaUIsQ0FDbEIsQ0FBQztRQUVGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxjQUFHLENBQUMsZ0JBQWdCLENBQ25DLElBQUksRUFDSixRQUFRLEVBQ1IsS0FBSyxDQUFDLHFCQUFxQixDQUM1QixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLFVBQVU7WUFDaEIsd0JBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDeEMsVUFBVSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdEQsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSw4Q0FBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ3RELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLDJDQUEwQixDQUNyRCxJQUFJLEVBQ0osbUJBQW1CLEVBQ25CO1lBQ0UsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFXLENBQUM7U0FDaEMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHdCQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMxQyxHQUFHLEtBQUssQ0FBQyxZQUFZO1lBQ3JCLG9CQUFvQixFQUFFO2dCQUNwQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsb0JBQW9CO2dCQUMxQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNuQztZQUNELFVBQVUsRUFBRTtnQkFDVixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVTtnQkFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDOUI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5FSCxzQ0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2duaXRvVXNlclBvb2xzQXV0aG9yaXplcixcbiAgUmVzdEFwaSxcbiAgUmVzdEFwaVByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7XG4gIENlcnRpZmljYXRlLFxuICBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyBVc2VyUG9vbCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29nbml0b1wiO1xuaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IFZwYyB9IGZyb20gXCIuLi9wbGF0Zm9ybVwiO1xuaW1wb3J0IHsgU3RhY2tQYXJhbWV0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cmVSZXN0QXBpUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEJhc2UgcGxhdGZvcm0gU3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQbGF0Zm9ybVN0YWNrTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFN1YmRvbWFpbiB0aGF0IGlzIHVzZWQgZm9yIFJFU1QgQVBJIHByb3BzXG4gICAqL1xuICByZWFkb25seSBhcGlTdWJEb21haW46IHN0cmluZztcbiAgLyoqXG4gICAqIGhvc3RlZCB6b25lIGZvciB0aGUgc3ViZG9tYWluXG4gICAqIEFuIG9wdGlvbmFsIHBhcmFtZXRlclxuICAgKiBAZGVmYXVsdCAtIGZxZG4gb3V0cHV0IG9mIGJhc2UgcGxhdGZvcm0gc3RhY2sgaXMgdXNlZCB0byBpbXBvcnQgdGhlIGhvc3RlZCB6b25lXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAqIFByb3BzIGZvcndhcmRlZCB0byB0aGUgUmVzdEFwaSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSByZXN0QXBpUHJvcHM6IFJlc3RBcGlQcm9wcztcbn1cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBTZWN1cmVSZXN0QXBpVjJ9IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNlY3VyZVJlc3RBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvL3B1YmxpYyByZXN0QXBpRG9tYWluTmFtZTogRG9tYWluTmFtZTtcbiAgcHVibGljIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGRlZmF1bHRBdXRob3JpemVyOiBDb2duaXRvVXNlclBvb2xzQXV0aG9yaXplcjtcbiAgcHJpdmF0ZSBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGU7XG5cbiAgcHVibGljIHJlc3RBcGk6IFJlc3RBcGk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyZVJlc3RBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy92YWxpZGF0ZSB0aGUgcHJvcHNcbiAgICBpZiAoIXByb3BzLmFwaVN1YkRvbWFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXBpU3ViRG9tYWluIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvZ25pdG9Vc2VyUG9vbElkUGFyYW1ldGVyID0gbmV3IFN0YWNrUGFyYW1ldGVyKHtcbiAgICAgIHByZWZpeDogXCJjb2duaXRvXCIsXG4gICAgICBrZXk6IFwidXNlci1wb29sLWlkXCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb2duaXRvVXNlclBvb2xJZCA9IGNvZ25pdG9Vc2VyUG9vbElkUGFyYW1ldGVyLmltcG9ydChcbiAgICAgIHRoaXMsXG4gICAgICBwcm9wcy5iYXNlUGxhdGZvcm1TdGFja05hbWUsXG4gICAgKTtcbiAgICBjb25zdCB1c2VyUG9vbFJlZiA9IFVzZXJQb29sLmZyb21Vc2VyUG9vbElkKFxuICAgICAgdGhpcyxcbiAgICAgIFwiVXNlclBvb2xSZWZcIixcbiAgICAgIGNvZ25pdG9Vc2VyUG9vbElkLFxuICAgICk7XG5cbiAgICBjb25zdCB7IGZxZG4gfSA9IFZwYy5mcm9tQmFzZVBsYXRmb3JtKFxuICAgICAgdGhpcyxcbiAgICAgIFwiVnBjUmVmXCIsXG4gICAgICBwcm9wcy5iYXNlUGxhdGZvcm1TdGFja05hbWUsXG4gICAgKTtcbiAgICBjb25zdCBob3N0ZWRab25lID1cbiAgICAgIHByb3BzLmhvc3RlZFpvbmUgPz9cbiAgICAgIEhvc3RlZFpvbmUuZnJvbUxvb2t1cCh0aGlzLCBcIkhvc3RlZFpvbmVcIiwge1xuICAgICAgICBkb21haW5OYW1lOiBmcWRuLFxuICAgICAgfSk7XG4gICAgdGhpcy5kb21haW5OYW1lID0gYCR7cHJvcHMuYXBpU3ViRG9tYWlufS4ke2hvc3RlZFpvbmUuem9uZU5hbWV9YDtcblxuICAgIHRoaXMuY2VydGlmaWNhdGUgPSBuZXcgQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICBkb21haW5OYW1lOiB0aGlzLmRvbWFpbk5hbWUsXG4gICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURucyhob3N0ZWRab25lKSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGVmYXVsdEF1dGhvcml6ZXIgPSBuZXcgQ29nbml0b1VzZXJQb29sc0F1dGhvcml6ZXIoXG4gICAgICB0aGlzLFxuICAgICAgXCJkZWZhdWx0QXV0aG9yaXplclwiLFxuICAgICAge1xuICAgICAgICBjb2duaXRvVXNlclBvb2xzOiBbdXNlclBvb2xSZWZdLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXN0QXBpID0gbmV3IFJlc3RBcGkodGhpcywgXCJSZXN0QXBpXCIsIHtcbiAgICAgIC4uLnByb3BzLnJlc3RBcGlQcm9wcyxcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIC4uLnByb3BzLnJlc3RBcGlQcm9wcy5kZWZhdWx0TWV0aG9kT3B0aW9ucyxcbiAgICAgICAgYXV0aG9yaXplcjogdGhpcy5kZWZhdWx0QXV0aG9yaXplcixcbiAgICAgIH0sXG4gICAgICBkb21haW5OYW1lOiB7XG4gICAgICAgIC4uLnByb3BzLnJlc3RBcGlQcm9wcy5kb21haW5OYW1lLFxuICAgICAgICBkb21haW5OYW1lOiB0aGlzLmRvbWFpbk5hbWUsXG4gICAgICAgIGNlcnRpZmljYXRlOiB0aGlzLmNlcnRpZmljYXRlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -52,5 +52,5 @@ class SecureRestApiV2 extends construct_1.Construct {
52
52
  }
53
53
  exports.SecureRestApiV2 = SecureRestApiV2;
54
54
  _a = JSII_RTTI_SYMBOL_1;
55
- SecureRestApiV2[_a] = { fqn: "@btc-embedded/cdk-extensions.SecureRestApiV2", version: "0.22.11" };
55
+ SecureRestApiV2[_a] = { fqn: "@btc-embedded/cdk-extensions.SecureRestApiV2", version: "0.22.12" };
56
56
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJlUmVzdEFwaVYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvU2VjdXJlUmVzdEFwaVYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0RBTW9DO0FBQ3BDLCtFQUc0QztBQUM1Qyx5REFBa0U7QUFDbEUsd0RBQXFEO0FBQ3JELDBDQUFtRDtBQTJCbkQsTUFBYSxlQUFnQixTQUFRLHFCQUFTO0lBSzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUcsQ0FBQyxnQkFBZ0IsQ0FDOUIsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLENBQUMscUJBQXFCLENBQzVCLENBQUMsSUFBSSxDQUFDO1FBRVAsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLFVBQVU7WUFDaEIsd0JBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDeEMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ3RCLENBQUMsQ0FBQztRQUVMLE1BQU0sVUFBVSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdkQsVUFBVTtZQUNWLFVBQVUsRUFBRSw4Q0FBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ3RELENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFHLDBCQUFlLENBQUMsZ0JBQWdCLENBQzlDLElBQUksRUFDSixTQUFTLEVBQ1QsS0FBSyxDQUFDLHFCQUFxQixDQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUU3RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksd0JBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzFDLEdBQUcsS0FBSyxDQUFDLFlBQVk7WUFDckIsb0JBQW9CLEVBQUU7Z0JBQ3BCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxvQkFBb0I7Z0JBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM1QjtZQUNELFVBQVUsRUFBRTtnQkFDVixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVTtnQkFDaEMsVUFBVTtnQkFDVixXQUFXO2FBQ1o7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUyxDQUNkLFVBQWtCLEVBQ2xCLE1BQW9CLEVBQ3BCLE9BQXVCO1FBRXZCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDekUsQ0FBQyxDQUFDO2dCQUNFLGVBQWUsSUFBSSxDQUFDLElBQUksV0FBVztnQkFDbkMsZUFBZSxJQUFJLENBQUMsSUFBSSxZQUFZO2FBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixtQkFBbUI7WUFDbkIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsRUgsMENBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29nbml0b1VzZXJQb29sc0F1dGhvcml6ZXIsXG4gIEludGVncmF0aW9uLFxuICBNZXRob2RPcHRpb25zLFxuICBSZXN0QXBpLFxuICBSZXN0QXBpUHJvcHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGUsXG4gIENlcnRpZmljYXRlVmFsaWRhdGlvbixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7IEhvc3RlZFpvbmUsIElIb3N0ZWRab25lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0cy9saWIvY29uc3RydWN0XCI7XG5pbXBvcnQgeyBDb2duaXRvVXNlclBvb2wsIFZwYyB9IGZyb20gXCIuLi9wbGF0Zm9ybVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyZVJlc3RBcGlQcm9wc1YyIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBCYXNlIHBsYXRmb3JtIFN0YWNrXG4gICAqL1xuICByZWFkb25seSBiYXNlUGxhdGZvcm1TdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmRvbWFpbiB0aGF0IGlzIHVzZWQgZm9yIFJFU1QgQVBJIHByb3BzXG4gICAqL1xuICByZWFkb25seSBhcGlTdWJEb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogaG9zdGVkIHpvbmUgZm9yIHRoZSBzdWJkb21haW4uXG4gICAqIEFuIG9wdGlvbmFsIHBhcmFtZXRlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZxZG4gb3V0cHV0IG9mIGJhc2UgcGxhdGZvcm0gc3RhY2sgaXMgdXNlZCB0byBpbXBvcnQgdGhlIGhvc3RlZCB6b25lXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAqIFByb3BzIGZvcndhcmRlZCB0byB0aGUgUmVzdEFwaSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSByZXN0QXBpUHJvcHM6IFJlc3RBcGlQcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3VyZVJlc3RBcGlWMiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aG9yaXplcjogQ29nbml0b1VzZXJQb29sc0F1dGhvcml6ZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZnFkbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3RBcGk6IFJlc3RBcGk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyZVJlc3RBcGlQcm9wc1YyKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZnFkbiA9IFZwYy5mcm9tQmFzZVBsYXRmb3JtKFxuICAgICAgdGhpcyxcbiAgICAgIFwiVnBjUmVmXCIsXG4gICAgICBwcm9wcy5iYXNlUGxhdGZvcm1TdGFja05hbWUsXG4gICAgKS5mcWRuO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9XG4gICAgICBwcm9wcy5ob3N0ZWRab25lID8/XG4gICAgICBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXCJIb3N0ZWRab25lXCIsIHtcbiAgICAgICAgZG9tYWluTmFtZTogdGhpcy5mcWRuLFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gYCR7cHJvcHMuYXBpU3ViRG9tYWlufS4ke2hvc3RlZFpvbmUuem9uZU5hbWV9YDtcblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwge1xuICAgICAgZG9tYWluTmFtZSxcbiAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKGhvc3RlZFpvbmUpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29nbml0byA9IENvZ25pdG9Vc2VyUG9vbC5mcm9tQmFzZVBsYXRmb3JtKFxuICAgICAgdGhpcyxcbiAgICAgIFwiQ29nbml0b1wiLFxuICAgICAgcHJvcHMuYmFzZVBsYXRmb3JtU3RhY2tOYW1lLFxuICAgICk7XG5cbiAgICB0aGlzLmF1dGhvcml6ZXIgPSBjb2duaXRvLmNyZWF0ZUNvZ25pdG9Vc2VyUG9vbHNBdXRob3JpemVyKCk7XG5cbiAgICB0aGlzLnJlc3RBcGkgPSBuZXcgUmVzdEFwaSh0aGlzLCBcIlJlc3RBcGlcIiwge1xuICAgICAgLi4ucHJvcHMucmVzdEFwaVByb3BzLFxuICAgICAgZGVmYXVsdE1ldGhvZE9wdGlvbnM6IHtcbiAgICAgICAgLi4ucHJvcHMucmVzdEFwaVByb3BzLmRlZmF1bHRNZXRob2RPcHRpb25zLFxuICAgICAgICBhdXRob3JpemVyOiB0aGlzLmF1dGhvcml6ZXIsXG4gICAgICB9LFxuICAgICAgZG9tYWluTmFtZToge1xuICAgICAgICAuLi5wcm9wcy5yZXN0QXBpUHJvcHMuZG9tYWluTmFtZSxcbiAgICAgICAgZG9tYWluTmFtZSxcbiAgICAgICAgY2VydGlmaWNhdGUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZE1ldGhvZChcbiAgICBodHRwTWV0aG9kOiBzdHJpbmcsXG4gICAgdGFyZ2V0PzogSW50ZWdyYXRpb24sXG4gICAgb3B0aW9ucz86IE1ldGhvZE9wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb25TY29wZXMgPSBbYEdFVGAsIGBIRUFEYCwgYE9QVElPTlNgXS5pbmNsdWRlcyhodHRwTWV0aG9kKVxuICAgICAgPyBbXG4gICAgICAgICAgYGh0dHBzOi8vYXBpLiR7dGhpcy5mcWRufS9yZWFkX2FwaWAsXG4gICAgICAgICAgYGh0dHBzOi8vYXBpLiR7dGhpcy5mcWRufS93cml0ZV9hcGlgLFxuICAgICAgICBdXG4gICAgICA6IFtgaHR0cHM6Ly9hcGkuJHt0aGlzLmZxZG59L3dyaXRlX2FwaWBdO1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdEFwaS5yb290LmFkZE1ldGhvZChodHRwTWV0aG9kLCB0YXJnZXQsIHtcbiAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplcixcbiAgICAgIGF1dGhvcml6YXRpb25TY29wZXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -52,5 +52,5 @@ class ApiKeyClientAuthorization extends constructs_1.Construct {
52
52
  }
53
53
  exports.ApiKeyClientAuthorization = ApiKeyClientAuthorization;
54
54
  _a = JSII_RTTI_SYMBOL_1;
55
- ApiKeyClientAuthorization[_a] = { fqn: "@btc-embedded/cdk-extensions.ApiKeyClientAuthorization", version: "0.22.11" };
55
+ ApiKeyClientAuthorization[_a] = { fqn: "@btc-embedded/cdk-extensions.ApiKeyClientAuthorization", version: "0.22.12" };
56
56
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpS2V5Q2xpZW50QXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdHJ1Y3RzL2FwaS1rZXlzL0FwaUtleUNsaWVudEF1dGhvcml6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFDdkMsbUVBTXNDO0FBQ3RDLDZGQUFrRjtBQUVsRiwyQ0FBdUM7QUFDdkMsbUdBQTZGO0FBRTdGLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDO0FBNkMzQzs7O0dBR0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLHNCQUFTO0lBR3REOzs7OztPQUtHO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBcUM7UUFFckMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLG1CQUFtQixHQUFHLElBQUksa0VBQThCLENBQzVELElBQUksRUFDSix1QkFBdUIsRUFDdkI7WUFDRSxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQzlCLENBQ0YsQ0FBQztRQUVGLG1CQUFtQixDQUFDLGNBQWMsQ0FDaEMsZ0JBQWdCLEVBQ2hCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDdkIsQ0FBQztRQUNGLG1CQUFtQixDQUFDLGNBQWMsQ0FDaEMsd0JBQXdCLEVBQ3hCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ3JDLENBQUM7UUFDRixtQkFBbUIsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUxRCxNQUFNLGlCQUFpQixHQUFHLElBQUkscURBQXFCLENBQ2pELG1CQUFtQixFQUNuQixtQkFBbUIsQ0FDcEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSwwQkFBMEIsQ0FBQztRQUVuRSxJQUFJLDRCQUFTLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hDLE9BQU8sRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ25DLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLCtCQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsNkJBQVUsQ0FBQyxJQUFJLENBQUM7WUFDeEQsVUFBVSxFQUFFLElBQUkscUNBQWtCLEVBQUU7U0FDckMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixDQUFDLEtBQUssQ0FBQyx1QkFBdUI7Z0JBQzVCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsU0FBUztvQkFDaEQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQzs7QUE5REgsOERBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEh0dHBNZXRob2QsXG4gIEh0dHBOb25lQXV0aG9yaXplcixcbiAgSHR0cFJvdXRlLFxuICBIdHRwUm91dGVLZXksXG4gIElIdHRwQXBpLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXl2MlwiO1xuaW1wb3J0IHsgSHR0cExhbWJkYUludGVncmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djItaW50ZWdyYXRpb25zXCI7XG5pbXBvcnQgeyBJU2VjcmV0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFwaUNsaWVudEF1dGhvcml6YXRpb25GdW5jdGlvbiB9IGZyb20gXCIuL2xhbWJkYXMvYXBpLWNsaWVudC1hdXRob3JpemF0aW9uLWZ1bmN0aW9uXCI7XG5cbmNvbnN0IERFRkFVTFRfQVVUSE9SSVpBVElPTl9QQVRIID0gXCJ0b2tlblwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5zdGFudGlhdGUgdGhlIHtAbGluayBBcGlLZXlDbGllbnRBdXRob3JpemF0aW9ufSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5Q2xpZW50QXV0aG9yaXphdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIEFuIGV4aXN0aW5nIEh0dHBBcGkgdG8gYXR0YWNoIHRoZSBlbmRwb2ludCB0by4gVGhlIGRlZmF1bHQgYXV0aG9yaXplciB3aWxsIHdlIGlnbm9yZWRcbiAgICogYW5kIG5vIGF1dGhvcml6YXRpb24gd2lsbCBiZSByZXF1aXJlZCBmb3IgdGhlIGVuZHBvaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkh0dHBBcGk6IElIdHRwQXBpO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBiYXNlIFVSTCBmb3IgdGhlIHtAbGluayBJSHR0cEFwaX0gaW4gY2FzZSBpdCBjYW5ub3QgYmUgcmV0cmlldmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkh0dHBBcGlVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVBJIGNsaWVudC4gQ3JlZGVudGlhbHMgcmVxdWlyZWQgZm9yIGF1dGhvcml6YXRpb24gd2lsbCBiZSBmZXRjaGVkIGZvclxuICAgKiB0aGlzIGNsaWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBjb250YWluaW5nIHRoZSB1c2VyIHBvb2wgY2xpZW50IHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0OiBJU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWVyIFVSTCBmb3IgdGhlIHVzZXIgcG9vbC4gVXNlZCB0byBleHRyYWN0IHRoZSBPQXV0aCBVUkwuXG4gICAqL1xuICByZWFkb25seSBvaWRjSXNzdWVyVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY29wZSB0byBiZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSB0b2tlbi5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggKHdpdGhvdXQgcHJlY2VkaW5nIGFuZCB0cmFpbGluZyBzbGFzaCkgdG8gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgdG9rZW4uXG4gICAqIFdpbGwgZGVmYXVsdCB0byBgdG9rZW5gIGlmIG5vdCBzZXQuXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdGhhdCBwcm92aWRlcyBhIGN1c3RvbSBPQXV0aCBVUkwgZm9yIGF1dGhvcml6aW5nIGFuIEFQSSBjbGllbnQgYnkgb25seSBwYXNzaW5nIGFcbiAqIHZhbGlkIGNsaWVudCBpZC4gSXQgd2lsbCBhZGQgYSBuZXcgZW5kcG9pbnQgdG8gYW4gZXhpc3RpbmcgSHR0cEFwaSBhcyBgL2F1dGhvcml6ZS97aWR9YC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUtleUNsaWVudEF1dGhvcml6YXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIGF1dGhvcml6YXRpb25Vcmw6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgdG8gYmUgdXNlZC5cbiAgICogQHBhcmFtIGlkIFRoZSBJRCB1c2VkIGZvciB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHtAbGluayBBcGlLZXlDbGllbnRBdXRob3JpemF0aW9uUHJvcHN9IHJlcXVpcmVkIGZvciBjcmVhdGluZyB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEFwaUtleUNsaWVudEF1dGhvcml6YXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNsaWVudEF1dGhvcml6YXRpb24gPSBuZXcgQXBpQ2xpZW50QXV0aG9yaXphdGlvbkZ1bmN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIFwiQXV0aG9yaXphdGlvbkZ1bmN0aW9uXCIsXG4gICAgICB7XG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNDUpLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY2xpZW50QXV0aG9yaXphdGlvbi5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiT0lEQ19DTElFTlRfSURcIixcbiAgICAgIHByb3BzLnVzZXJQb29sQ2xpZW50SWQsXG4gICAgKTtcbiAgICBjbGllbnRBdXRob3JpemF0aW9uLmFkZEVudmlyb25tZW50KFxuICAgICAgXCJPSURDX0NMSUVOVF9TRUNSRVRfQVJOXCIsXG4gICAgICBwcm9wcy51c2VyUG9vbENsaWVudFNlY3JldC5zZWNyZXRBcm4sXG4gICAgKTtcbiAgICBjbGllbnRBdXRob3JpemF0aW9uLmFkZEVudmlyb25tZW50KFwiT0lEQ19JU1NVRVJfVVJMXCIsIHByb3BzLm9pZGNJc3N1ZXJVcmwpO1xuICAgIGNsaWVudEF1dGhvcml6YXRpb24uYWRkRW52aXJvbm1lbnQoXCJPSURDX1NDT1BFXCIsIHByb3BzLnNjb3BlKTtcblxuICAgIHByb3BzLnVzZXJQb29sQ2xpZW50U2VjcmV0LmdyYW50UmVhZChjbGllbnRBdXRob3JpemF0aW9uKTtcblxuICAgIGNvbnN0IGFwaUtleUludGVncmF0aW9uID0gbmV3IEh0dHBMYW1iZGFJbnRlZ3JhdGlvbihcbiAgICAgIFwiQXBpS2V5SW50ZWdyYXRpb25cIixcbiAgICAgIGNsaWVudEF1dGhvcml6YXRpb24sXG4gICAgKTtcblxuICAgIGNvbnN0IHBhdGggPSBwcm9wcy5hdXRob3JpemF0aW9uUGF0aCA/PyBERUZBVUxUX0FVVEhPUklaQVRJT05fUEFUSDtcblxuICAgIG5ldyBIdHRwUm91dGUodGhpcywgXCJBdXRob3JpemF0aW9uUm91dGVcIiwge1xuICAgICAgaHR0cEFwaTogcHJvcHMuYXV0aG9yaXphdGlvbkh0dHBBcGksXG4gICAgICBpbnRlZ3JhdGlvbjogYXBpS2V5SW50ZWdyYXRpb24sXG4gICAgICByb3V0ZUtleTogSHR0cFJvdXRlS2V5LndpdGgoYC8ke3BhdGh9YCwgSHR0cE1ldGhvZC5QT1NUKSxcbiAgICAgIGF1dGhvcml6ZXI6IG5ldyBIdHRwTm9uZUF1dGhvcml6ZXIoKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXV0aG9yaXphdGlvblVybCA9XG4gICAgICAocHJvcHMuYXV0aG9yaXphdGlvbkh0dHBBcGlVcmwgPz9cbiAgICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbkh0dHBBcGkuZGVmYXVsdFN0YWdlPy5kb21haW5VcmwgK1xuICAgICAgICAgIHByb3BzLmF1dGhvcml6YXRpb25IdHRwQXBpLmFwaUVuZHBvaW50KSArIGAke3BhdGh9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGF1dGhvcml6YXRpb24gVVJMIHRvIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIHRva2VuLlxuICAgKi9cbiAgZ2V0IHRva2VuVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aG9yaXphdGlvblVybDtcbiAgfVxufVxuIl19
@@ -210,5 +210,5 @@ class ApiKeyManagement extends constructs_1.Construct {
210
210
  }
211
211
  exports.ApiKeyManagement = ApiKeyManagement;
212
212
  _a = JSII_RTTI_SYMBOL_1;
213
- ApiKeyManagement[_a] = { fqn: "@btc-embedded/cdk-extensions.ApiKeyManagement", version: "0.22.11" };
213
+ ApiKeyManagement[_a] = { fqn: "@btc-embedded/cdk-extensions.ApiKeyManagement", version: "0.22.12" };
214
214
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpS2V5TWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdHJ1Y3RzL2FwaS1rZXlzL0FwaUtleU1hbmFnZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrREFPb0M7QUFFcEMsaURBTzZCO0FBQzdCLDJDQUF1QztBQUV2QyxtRkFBNkU7QUFDN0UsK0VBQXlFO0FBRXpFLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQztBQVlsQzs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFLN0M7Ozs7O09BS0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUUzQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXZDLE1BQU0sT0FBTyxHQUFHLElBQUksd0JBQU8sQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ2pELFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxxQkFBcUIsRUFBRTtnQkFDckIsS0FBSyxFQUFFLENBQUMsNkJBQVksQ0FBQyxRQUFRLENBQUM7YUFDL0I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxJQUFXO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQWUsRUFBRSxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUNuQixJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGlDQUFpQyxFQUFFO1lBQ3pELFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUN4QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIscURBQXFEO1FBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksY0FBSSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUM5RCxTQUFTLEVBQUUsSUFBSSwwQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQztTQUM1RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlDLG1DQUFtQztRQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkUsdUNBQXVDO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0QsZUFBZTtRQUNmLGVBQWUsQ0FBQyxTQUFTLENBQ3ZCLEtBQUssRUFDTCxJQUFJLCtCQUFjLENBQUM7WUFDakIsT0FBTyxFQUFFLFVBQVU7WUFDbkIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsZUFBZSxFQUFFLGNBQWM7Z0JBQy9CLGdCQUFnQixFQUFFO29CQUNoQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO3dCQUMvQixjQUFjLEVBQUUsSUFBSTtxQkFDckIsQ0FBQztpQkFDSDtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEI7d0JBQ0UsVUFBVSxFQUFFLEtBQUs7d0JBQ2pCLGlCQUFpQixFQUFFOzRCQUNqQixrQkFBa0IsRUFBRTs7Ozs7OztpREFPYSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Ozs7Ozs7O29CQVE1RDt5QkFDTDtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxFQUNGO1lBQ0UsZUFBZSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDeEMsaUJBQWlCLEVBQUUsa0NBQWlCLENBQUMsR0FBRztTQUN6QyxDQUNGLENBQUM7UUFFRixtQkFBbUI7UUFDbkIsY0FBYyxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUksK0JBQWMsQ0FBQztZQUNqQixPQUFPLEVBQUUsVUFBVTtZQUNuQixNQUFNLEVBQUUsU0FBUztZQUNqQixPQUFPLEVBQUU7Z0JBQ1AsZUFBZSxFQUFFLGNBQWM7Z0JBQy9CLGdCQUFnQixFQUFFO29CQUNoQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO3dCQUMvQixHQUFHLEVBQUU7NEJBQ0gsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLHlCQUF5QixFQUFFO3lCQUNyQzt3QkFDRCxjQUFjLEVBQUUsSUFBSTtxQkFDckIsQ0FBQztpQkFDSDtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEI7d0JBQ0UsVUFBVSxFQUFFLEtBQUs7d0JBQ2pCLGlCQUFpQixFQUFFOzRCQUNqQixrQkFBa0IsRUFBRTs7Ozs7NkNBS1MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozt1QkFRckQ7eUJBQ1I7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsRUFDRjtZQUNFLGVBQWUsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3hDLGlCQUFpQixFQUFFLGtDQUFpQixDQUFDLEdBQUc7U0FDekMsQ0FDRixDQUFDO1FBRUYsZUFBZTtRQUNmLGNBQWMsQ0FBQyxTQUFTLENBQ3RCLFFBQVEsRUFDUixJQUFJLCtCQUFjLENBQUM7WUFDakIsT0FBTyxFQUFFLFVBQVU7WUFDbkIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixnQkFBZ0IsRUFBRTtvQkFDaEIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzt3QkFDL0IsR0FBRyxFQUFFOzRCQUNILEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSx5QkFBeUIsRUFBRTt5QkFDckM7cUJBQ0YsQ0FBQztpQkFDSDtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEI7d0JBQ0UsVUFBVSxFQUFFLEtBQUs7d0JBQ2pCLGlCQUFpQixFQUFFOzRCQUNqQixrQkFBa0IsRUFBRSwwQ0FBMEM7eUJBQy9EO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN4QyxpQkFBaUIsRUFBRSxrQ0FBaUIsQ0FBQyxHQUFHO1NBQ3pDLENBQ0YsQ0FBQztRQUVGLGVBQWU7UUFDZixNQUFNLGVBQWUsR0FBRyxJQUFJLGtEQUFzQixDQUNoRCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDdEQsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFL0MsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxrQ0FBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN4RSxlQUFlLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN4QyxpQkFBaUIsRUFBRSxrQ0FBaUIsQ0FBQyxHQUFHO1NBQ3pDLENBQUMsQ0FBQztRQUVILGVBQWU7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLDhDQUFvQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDcEUsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ2hDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDakU7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTdDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksa0NBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckUsZUFBZSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDeEMsaUJBQWlCLEVBQUUsa0NBQWlCLENBQUMsR0FBRztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdPSCw0Q0E4T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRob3JpemF0aW9uVHlwZSxcbiAgQXdzSW50ZWdyYXRpb24sXG4gIEVuZHBvaW50VHlwZSxcbiAgSVJlc3RBcGksXG4gIExhbWJkYUludGVncmF0aW9uLFxuICBSZXN0QXBpLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7XG4gIEVmZmVjdCxcbiAgSVJvbGUsXG4gIE1hbmFnZWRQb2xpY3ksXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcGlLZXlBdHRyaWJ1dGUsIEFwaUtleVN0b3JlIH0gZnJvbSBcIi4vQXBpS2V5U3RvcmVcIjtcbmltcG9ydCB7IEFwaUtleUNyZWF0aW9uRnVuY3Rpb24gfSBmcm9tIFwiLi9sYW1iZGFzL2FwaS1rZXktY3JlYXRpb24tZnVuY3Rpb25cIjtcbmltcG9ydCB7IEFwaUtleVVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4vbGFtYmRhcy9hcGkta2V5LXVwZGF0ZS1mdW5jdGlvblwiO1xuXG5jb25zdCBNQU5BR0VNRU5UX1BBVEggPSBcImFwaUtleXNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluc3RhbnRpYXRlIHRoZSB7QGxpbmsgQXBpS2V5TWFuYWdlbWVudH0gY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUtleU1hbmFnZW1lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUge0BsaW5rIEFwaUtleVN0b3JlfSBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBhcGlLZXlzOiBBcGlLZXlTdG9yZTtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBwcm92aWRlcyBhIFJFU1QgQVBJIHRvIG1hbmFnZSAoY3JlYXRlLCBtb2RpZnksIGRlbGV0ZSkgQVBJIGtleXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlLZXlNYW5hZ2VtZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBleHRlcm5hbFVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlc3RBcGk6IElSZXN0QXBpO1xuICBwcml2YXRlIHRhYmxlOiBJVGFibGU7XG4gIHByaXZhdGUgYXR0cmlidXRlczogQXBpS2V5QXR0cmlidXRlW107XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSB0byBiZSB1c2VkLlxuICAgKiBAcGFyYW0gaWQgVGhlIElEIHVzZWQgZm9yIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUge0BsaW5rIEFwaUtleU1hbmFnZW1lbnRQcm9wc30gcmVxdWlyZWQgZm9yIGNyZWF0aW5nIHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcGlLZXlNYW5hZ2VtZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gcHJvcHMuYXBpS2V5cy5hdHRyaWJ1dGVzO1xuXG4gICAgdGhpcy50YWJsZSA9IHByb3BzLmFwaUtleXMuYXBpS2V5VGFibGU7XG5cbiAgICBjb25zdCByZXN0QXBpID0gbmV3IFJlc3RBcGkodGhpcywgXCJNYW5hZ2VtZW50QXBpXCIsIHtcbiAgICAgIHJlc3RBcGlOYW1lOiBcIkFQSSBLZXkgTWFuYWdlbWVudFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQVBJIGZvciBtYW5hZ2luZyBBUEkga2V5c1wiLFxuICAgICAgZW5kcG9pbnRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHR5cGVzOiBbRW5kcG9pbnRUeXBlLlJFR0lPTkFMXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmV4dGVybmFsVXJsID0gYCR7cmVzdEFwaS51cmx9YDtcbiAgICB0aGlzLnJlc3RBcGkgPSByZXN0QXBpO1xuXG4gICAgdGhpcy5zZXRVcFJlc291cmNlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZSBVUkwgdG8gbWFuYWdlIHRoZSBrZXlzLlxuICAgKi9cbiAgcHVibGljIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxVcmw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHVybCB0byBtYW5hZ2UgYWxsIGtleXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleXNNYW5hZ2VtZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBNQU5BR0VNRU5UX1BBVEg7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHVybCB0byBtYW5hZ2UgYSBzaW5nbGUga2V5LiBDb250YWluc1xuICAgKiBhIHBsYWNlaG9sZGVyIHtpZH0gdGhhdCBoYXMgdG8gcmVwbGFjZWQgYnkgdGhlIElEIG9mIHRoZSBlbGVtZW50IHRvIGJlIG1hbmFnZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleU1hbmFnZW1lbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMua2V5c01hbmFnZW1lbnRQYXRoICsgXCIve2lkfVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IGNvbm5lY3Rpb24gcHJpdmlsZWdlcyB0byB0aGUgcGFzc2VkIHJvbGUuXG4gICAqIEBwYXJhbSByb2xlIFRoZSByb2xlIHRvIGFsbG93IGFjY2VzcyB0byB0aGUgQVBJLlxuICAgKi9cbiAgcHVibGljIGFsbG93Q29ubmVjdGlvbihyb2xlOiBJUm9sZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IG5ldyBQb2xpY3lTdGF0ZW1lbnQoKTtcbiAgICBzdGF0ZW1lbnQuYWRkUmVzb3VyY2VzKHRoaXMucmVzdEFwaS5hcm5Gb3JFeGVjdXRlQXBpKCkpO1xuICAgIHN0YXRlbWVudC5hZGRBY3Rpb25zKFwiZXhlY3V0ZS1hcGk6SW52b2tlXCIpO1xuICAgIHN0YXRlbWVudC5lZmZlY3QgPSBFZmZlY3QuQUxMT1c7XG4gICAgcm9sZS5hZGRNYW5hZ2VkUG9saWN5KFxuICAgICAgbmV3IE1hbmFnZWRQb2xpY3kocm9sZSwgXCJBcGlDbGllbnRNYW5hZ2VtZW50QWNjZXNzUG9saWN5XCIsIHtcbiAgICAgICAgc3RhdGVtZW50czogW3N0YXRlbWVudF0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgYXZhaWxhYmxlIHJlc291cmNlcyBmb3IgdGhlIEFQSS5cbiAgICovXG4gIHByaXZhdGUgc2V0VXBSZXNvdXJjZXMoKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIElBTSByb2xlIGZvciBBUEkgR2F0ZXdheSB0byBhY2Nlc3MgRHluYW1vREJcbiAgICBjb25zdCBhcGlHYXRld2F5Um9sZSA9IG5ldyBSb2xlKHRoaXMsIFwiQXBpR2F0ZXdheUR5bmFtb0RCUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tXCIpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEoYXBpR2F0ZXdheVJvbGUpO1xuXG4gICAgLy8gUmVzb3VyY2UgZm9yIGFjdGlvbnMgb24gYWxsIGtleXNcbiAgICBjb25zdCBhcGlLZXlzUmVzb3VyY2UgPSB0aGlzLnJlc3RBcGkucm9vdC5hZGRSZXNvdXJjZShNQU5BR0VNRU5UX1BBVEgpO1xuICAgIC8vIFJlc291cmNlIGZvciBhY3Rpb25zIG9uIGEgc2luZ2xlIGtleVxuICAgIGNvbnN0IGFwaUtleVJlc291cmNlID0gYXBpS2V5c1Jlc291cmNlLmFkZFJlc291cmNlKFwie2lkfVwiKTtcblxuICAgIC8vIEdldCBhbGwga2V5c1xuICAgIGFwaUtleXNSZXNvdXJjZS5hZGRNZXRob2QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgbmV3IEF3c0ludGVncmF0aW9uKHtcbiAgICAgICAgc2VydmljZTogXCJkeW5hbW9kYlwiLFxuICAgICAgICBhY3Rpb246IFwiU2NhblwiLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgY3JlZGVudGlhbHNSb2xlOiBhcGlHYXRld2F5Um9sZSxcbiAgICAgICAgICByZXF1ZXN0VGVtcGxhdGVzOiB7XG4gICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBUYWJsZU5hbWU6IHRoaXMudGFibGUudGFibGVOYW1lLFxuICAgICAgICAgICAgICBDb25zaXN0ZW50UmVhZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW50ZWdyYXRpb25SZXNwb25zZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgICAgICAgcmVzcG9uc2VUZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogYCNzZXQoJGlucHV0Um9vdCA9ICRpbnB1dC5wYXRoKCckJykpXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwia2V5c1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgI2ZvcmVhY2goJGVsZW0gaW4gJGlucHV0Um9vdC5JdGVtcylcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImlkXCI6IFwiJGVsZW0uaWQuU1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjogXCIkZWxlbS5jcmVhdGVkQXQuU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZm9yZWFjaCgkYXR0cmlidXRlIGluICR7SlNPTi5zdHJpbmdpZnkodGhpcy5hdHRyaWJ1dGVzKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICNpZigkZWxlbVskYXR0cmlidXRlLmFwaU5hbWVdLlMgIT0gJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLFwiJGF0dHJpYnV0ZS5hcGlOYW1lXCI6IFwiJGVsZW1bJGF0dHJpYnV0ZS5hcGlOYW1lXS5TXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgI2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgI2VuZFxuICAgICAgICAgICAgICAgICAgICAgIH0jaWYoJGZvcmVhY2guaGFzTmV4dCksI2VuZFxuICAgICAgICAgICAgICAgICAgICAgICNlbmRcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbeyBzdGF0dXNDb2RlOiBcIjIwMFwiIH1dLFxuICAgICAgICBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGUuSUFNLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gR2V0IGEgc2luZ2xlIGtleVxuICAgIGFwaUtleVJlc291cmNlLmFkZE1ldGhvZChcbiAgICAgIFwiR0VUXCIsXG4gICAgICBuZXcgQXdzSW50ZWdyYXRpb24oe1xuICAgICAgICBzZXJ2aWNlOiBcImR5bmFtb2RiXCIsXG4gICAgICAgIGFjdGlvbjogXCJHZXRJdGVtXCIsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBjcmVkZW50aWFsc1JvbGU6IGFwaUdhdGV3YXlSb2xlLFxuICAgICAgICAgIHJlcXVlc3RUZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIFRhYmxlTmFtZTogdGhpcy50YWJsZS50YWJsZU5hbWUsXG4gICAgICAgICAgICAgIEtleToge1xuICAgICAgICAgICAgICAgIGlkOiB7IFM6IFwiJG1ldGhvZC5yZXF1ZXN0LnBhdGguaWRcIiB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBDb25zaXN0ZW50UmVhZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW50ZWdyYXRpb25SZXNwb25zZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgICAgICAgcmVzcG9uc2VUZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogYCNzZXQoJGlucHV0Um9vdCA9ICRpbnB1dC5wYXRoKCckJykpXG4gICAgICAgICAgICAgICAgICAjaWYoJGlucHV0Um9vdC5JdGVtKVxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImlkXCI6IFwiJGlucHV0Um9vdC5JdGVtLmlkLlNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjogXCIkaW5wdXRSb290Lkl0ZW0uY3JlYXRlZEF0LlNcIlxuICAgICAgICAgICAgICAgICAgICAjZm9yZWFjaCgkYXR0cmlidXRlIGluICR7SlNPTi5zdHJpbmdpZnkodGhpcy5hdHRyaWJ1dGVzKX0pXG4gICAgICAgICAgICAgICAgICAgICAgI2lmKCRpbnB1dFJvb3QuSXRlbVskYXR0cmlidXRlLmFwaU5hbWVdLlMgIT0gJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAsXCIkYXR0cmlidXRlLmFwaU5hbWVcIjogXCIkaW5wdXRSb290Lkl0ZW1bJGF0dHJpYnV0ZS5hcGlOYW1lXS5TXCJcbiAgICAgICAgICAgICAgICAgICAgICAjZW5kXG4gICAgICAgICAgICAgICAgICAgICNlbmRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICNlbHNlXG4gICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICAgI2VuZGAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbeyBzdGF0dXNDb2RlOiBcIjIwMFwiIH1dLFxuICAgICAgICBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGUuSUFNLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gRGVsZXRlIGEga2V5XG4gICAgYXBpS2V5UmVzb3VyY2UuYWRkTWV0aG9kKFxuICAgICAgXCJERUxFVEVcIixcbiAgICAgIG5ldyBBd3NJbnRlZ3JhdGlvbih7XG4gICAgICAgIHNlcnZpY2U6IFwiZHluYW1vZGJcIixcbiAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZUl0ZW1cIixcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGNyZWRlbnRpYWxzUm9sZTogYXBpR2F0ZXdheVJvbGUsXG4gICAgICAgICAgcmVxdWVzdFRlbXBsYXRlczoge1xuICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgVGFibGVOYW1lOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgS2V5OiB7XG4gICAgICAgICAgICAgICAgaWQ6IHsgUzogXCIkbWV0aG9kLnJlcXVlc3QucGF0aC5pZFwiIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiMjAwXCIsXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGVtcGxhdGVzOiB7XG4gICAgICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6ICd7XCJtZXNzYWdlXCI6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwifScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbeyBzdGF0dXNDb2RlOiBcIjIwMFwiIH1dLFxuICAgICAgICBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGUuSUFNLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEga2V5XG4gICAgY29uc3QgY3JlYXRpb25IYW5kbGVyID0gbmV3IEFwaUtleUNyZWF0aW9uRnVuY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJDcmVhdGlvbkhhbmRsZXJcIixcbiAgICAgIHsgZW52aXJvbm1lbnQ6IHsgVEFCTEVfTkFNRTogdGhpcy50YWJsZS50YWJsZU5hbWUgfSB9LFxuICAgICk7XG5cbiAgICB0aGlzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShjcmVhdGlvbkhhbmRsZXIpO1xuXG4gICAgYXBpS2V5c1Jlc291cmNlLmFkZE1ldGhvZChcIlBPU1RcIiwgbmV3IExhbWJkYUludGVncmF0aW9uKGNyZWF0aW9uSGFuZGxlciksIHtcbiAgICAgIG1ldGhvZFJlc3BvbnNlczogW3sgc3RhdHVzQ29kZTogXCIyMDBcIiB9XSxcbiAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5JQU0sXG4gICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgYSBrZXlcbiAgICBjb25zdCB1cGRhdGVIYW5kbGVyID0gbmV3IEFwaUtleVVwZGF0ZUZ1bmN0aW9uKHRoaXMsIFwiVXBkYXRlSGFuZGxlclwiLCB7XG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBUQUJMRV9OQU1FOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgICAgQVRUUklCVVRFX05BTUVTOiB0aGlzLmF0dHJpYnV0ZXMubWFwKChmKSA9PiBmLmFwaU5hbWUpLmpvaW4oXCIsXCIpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMudGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHVwZGF0ZUhhbmRsZXIpO1xuXG4gICAgYXBpS2V5UmVzb3VyY2UuYWRkTWV0aG9kKFwiUE9TVFwiLCBuZXcgTGFtYmRhSW50ZWdyYXRpb24odXBkYXRlSGFuZGxlciksIHtcbiAgICAgIG1ldGhvZFJlc3BvbnNlczogW3sgc3RhdHVzQ29kZTogXCIyMDBcIiB9XSxcbiAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5JQU0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==