@rio-cloud/cdk-v2-constructs 7.12.2 → 7.12.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/API.md CHANGED
@@ -1423,7 +1423,9 @@ Check whether the given object is a CfnResource.
1423
1423
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
1424
1424
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
1425
1425
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
1426
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
1426
1427
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.attrId">attrId</a></code> | <code>string</code> | *No description.* |
1428
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.tableRef">tableRef</a></code> | <code>aws-cdk-lib.interfaces.aws_glue.TableReference</code> | A reference to a Table resource. |
1427
1429
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.catalogId">catalogId</a></code> | <code>string</code> | The ID of the Data Catalog in which to create the `Table` . |
1428
1430
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.databaseName">databaseName</a></code> | <code>string</code> | The name of the database where the table metadata resides. |
1429
1431
  | <code><a href="#@rio-cloud/cdk-v2-constructs.CsvTable.property.tableInput">tableInput</a></code> | <code>aws-cdk-lib.IResolvable \| aws-cdk-lib.aws_glue.CfnTable.TableInputProperty</code> | A structure used to define a table. |
@@ -1523,6 +1525,16 @@ AWS resource type.
1523
1525
 
1524
1526
  ---
1525
1527
 
1528
+ ##### `env`<sup>Required</sup> <a name="env" id="@rio-cloud/cdk-v2-constructs.CsvTable.property.env"></a>
1529
+
1530
+ ```typescript
1531
+ public readonly env: ResourceEnvironment;
1532
+ ```
1533
+
1534
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
1535
+
1536
+ ---
1537
+
1526
1538
  ##### `attrId`<sup>Required</sup> <a name="attrId" id="@rio-cloud/cdk-v2-constructs.CsvTable.property.attrId"></a>
1527
1539
 
1528
1540
  ```typescript
@@ -1533,6 +1545,18 @@ public readonly attrId: string;
1533
1545
 
1534
1546
  ---
1535
1547
 
1548
+ ##### `tableRef`<sup>Required</sup> <a name="tableRef" id="@rio-cloud/cdk-v2-constructs.CsvTable.property.tableRef"></a>
1549
+
1550
+ ```typescript
1551
+ public readonly tableRef: TableReference;
1552
+ ```
1553
+
1554
+ - *Type:* aws-cdk-lib.interfaces.aws_glue.TableReference
1555
+
1556
+ A reference to a Table resource.
1557
+
1558
+ ---
1559
+
1536
1560
  ##### `catalogId`<sup>Required</sup> <a name="catalogId" id="@rio-cloud/cdk-v2-constructs.CsvTable.property.catalogId"></a>
1537
1561
 
1538
1562
  ```typescript
@@ -2869,6 +2893,7 @@ For "owned" secrets, this will be the full resource name (secret name + suffix),
2869
2893
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the IAM resource policy associated with this secret. |
2870
2894
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
2871
2895
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.attach">attach</a></code> | Attach a target to this secret. |
2896
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.cfnDynamicReferenceKey">cfnDynamicReferenceKey</a></code> | Returns a key which can be used within an AWS CloudFormation dynamic reference to dynamically load this secret from AWS Secrets Manager. |
2872
2897
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.denyAccountRootDelete">denyAccountRootDelete</a></code> | Denies the `DeleteSecret` action to all principals within the current account. |
2873
2898
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.getSecret">getSecret</a></code> | *No description.* |
2874
2899
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.getSecretValue">getSecretValue</a></code> | *No description.* |
@@ -2960,6 +2985,20 @@ Attach a target to this secret.
2960
2985
 
2961
2986
  ---
2962
2987
 
2988
+ ##### `cfnDynamicReferenceKey` <a name="cfnDynamicReferenceKey" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.cfnDynamicReferenceKey"></a>
2989
+
2990
+ ```typescript
2991
+ public cfnDynamicReferenceKey(options?: SecretsManagerSecretOptions): string
2992
+ ```
2993
+
2994
+ Returns a key which can be used within an AWS CloudFormation dynamic reference to dynamically load this secret from AWS Secrets Manager.
2995
+
2996
+ ###### `options`<sup>Optional</sup> <a name="options" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.cfnDynamicReferenceKey.parameter.options"></a>
2997
+
2998
+ - *Type:* aws-cdk-lib.SecretsManagerSecretOptions
2999
+
3000
+ ---
3001
+
2963
3002
  ##### `denyAccountRootDelete` <a name="denyAccountRootDelete" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.denyAccountRootDelete"></a>
2964
3003
 
2965
3004
  ```typescript
@@ -3085,7 +3124,7 @@ Any object.
3085
3124
  | **Name** | **Type** | **Description** |
3086
3125
  | --- | --- | --- |
3087
3126
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
3088
- | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.env">env</a></code> | <code>aws-cdk-lib.ResourceEnvironment</code> | The environment this resource belongs to. |
3127
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
3089
3128
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.secretArn">secretArn</a></code> | <code>string</code> | The ARN of the secret in AWS Secrets Manager. |
3090
3129
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.secretName">secretName</a></code> | <code>string</code> | The name of the secret. |
3091
3130
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials.property.secretValue">secretValue</a></code> | <code>aws-cdk-lib.SecretValue</code> | Retrieve the value of the stored secret as a `SecretValue`. |
@@ -3113,16 +3152,17 @@ The tree node.
3113
3152
  public readonly env: ResourceEnvironment;
3114
3153
  ```
3115
3154
 
3116
- - *Type:* aws-cdk-lib.ResourceEnvironment
3155
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
3117
3156
 
3118
3157
  The environment this resource belongs to.
3119
3158
 
3120
- For resources that are created and managed by the CDK
3121
- (generally, those created by creating new class instances like Role, Bucket, etc.),
3122
- this is always the same as the environment of the stack they belong to;
3123
- however, for imported resources
3124
- (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
3125
- that might be different than the stack they were imported into.
3159
+ For resources that are created and managed in a Stack (those created by
3160
+ creating new class instances like `new Role()`, `new Bucket()`, etc.), this
3161
+ is always the same as the environment of the stack they belong to.
3162
+
3163
+ For referenced resources (those obtained from referencing methods like
3164
+ `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
3165
+ different than the stack they were imported into.
3126
3166
 
3127
3167
  ---
3128
3168
 
@@ -3277,6 +3317,7 @@ For "owned" secrets, this will be the full resource name (secret name + suffix),
3277
3317
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the IAM resource policy associated with this secret. |
3278
3318
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
3279
3319
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.attach">attach</a></code> | Attach a target to this secret. |
3320
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.cfnDynamicReferenceKey">cfnDynamicReferenceKey</a></code> | Returns a key which can be used within an AWS CloudFormation dynamic reference to dynamically load this secret from AWS Secrets Manager. |
3280
3321
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.denyAccountRootDelete">denyAccountRootDelete</a></code> | Denies the `DeleteSecret` action to all principals within the current account. |
3281
3322
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantRead">grantRead</a></code> | Grants reading the secret value to some role. |
3282
3323
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.grantWrite">grantWrite</a></code> | Grants writing and updating the secret value to some role. |
@@ -3366,6 +3407,20 @@ Attach a target to this secret.
3366
3407
 
3367
3408
  ---
3368
3409
 
3410
+ ##### `cfnDynamicReferenceKey` <a name="cfnDynamicReferenceKey" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.cfnDynamicReferenceKey"></a>
3411
+
3412
+ ```typescript
3413
+ public cfnDynamicReferenceKey(options?: SecretsManagerSecretOptions): string
3414
+ ```
3415
+
3416
+ Returns a key which can be used within an AWS CloudFormation dynamic reference to dynamically load this secret from AWS Secrets Manager.
3417
+
3418
+ ###### `options`<sup>Optional</sup> <a name="options" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.cfnDynamicReferenceKey.parameter.options"></a>
3419
+
3420
+ - *Type:* aws-cdk-lib.SecretsManagerSecretOptions
3421
+
3422
+ ---
3423
+
3369
3424
  ##### `denyAccountRootDelete` <a name="denyAccountRootDelete" id="@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.denyAccountRootDelete"></a>
3370
3425
 
3371
3426
  ```typescript
@@ -3501,7 +3556,7 @@ This static function resolves to the json credentials secret that contains ['Api
3501
3556
  | **Name** | **Type** | **Description** |
3502
3557
  | --- | --- | --- |
3503
3558
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
3504
- | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.env">env</a></code> | <code>aws-cdk-lib.ResourceEnvironment</code> | The environment this resource belongs to. |
3559
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
3505
3560
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretArn">secretArn</a></code> | <code>string</code> | The ARN of the secret in AWS Secrets Manager. |
3506
3561
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretName">secretName</a></code> | <code>string</code> | The name of the secret. |
3507
3562
  | <code><a href="#@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret.property.secretValue">secretValue</a></code> | <code>aws-cdk-lib.SecretValue</code> | Retrieve the value of the stored secret as a `SecretValue`. |
@@ -3529,16 +3584,17 @@ The tree node.
3529
3584
  public readonly env: ResourceEnvironment;
3530
3585
  ```
3531
3586
 
3532
- - *Type:* aws-cdk-lib.ResourceEnvironment
3587
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
3533
3588
 
3534
3589
  The environment this resource belongs to.
3535
3590
 
3536
- For resources that are created and managed by the CDK
3537
- (generally, those created by creating new class instances like Role, Bucket, etc.),
3538
- this is always the same as the environment of the stack they belong to;
3539
- however, for imported resources
3540
- (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
3541
- that might be different than the stack they were imported into.
3591
+ For resources that are created and managed in a Stack (those created by
3592
+ creating new class instances like `new Role()`, `new Bucket()`, etc.), this
3593
+ is always the same as the environment of the stack they belong to.
3594
+
3595
+ For referenced resources (those obtained from referencing methods like
3596
+ `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
3597
+ different than the stack they were imported into.
3542
3598
 
3543
3599
  ---
3544
3600
 
@@ -4376,6 +4432,7 @@ Check whether the given object is a CfnResource.
4376
4432
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard.property.ref">ref</a></code> | <code>string</code> | Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. |
4377
4433
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard.property.cfnOptions">cfnOptions</a></code> | <code>aws-cdk-lib.ICfnResourceOptions</code> | Options for this resource, such as condition, update policy etc. |
4378
4434
  | <code><a href="#@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard.property.cfnResourceType">cfnResourceType</a></code> | <code>string</code> | AWS resource type. |
4435
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | *No description.* |
4379
4436
 
4380
4437
  ---
4381
4438
 
@@ -4471,6 +4528,16 @@ AWS resource type.
4471
4528
 
4472
4529
  ---
4473
4530
 
4531
+ ##### `env`<sup>Required</sup> <a name="env" id="@rio-cloud/cdk-v2-constructs.DownloadableDatadogDashboard.property.env"></a>
4532
+
4533
+ ```typescript
4534
+ public readonly env: ResourceEnvironment;
4535
+ ```
4536
+
4537
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
4538
+
4539
+ ---
4540
+
4474
4541
 
4475
4542
  ### GitlabRunner <a name="GitlabRunner" id="@rio-cloud/cdk-v2-constructs.GitlabRunner"></a>
4476
4543
 
@@ -8445,7 +8512,7 @@ Check whether the given construct is a Resource.
8445
8512
  | **Name** | **Type** | **Description** |
8446
8513
  | --- | --- | --- |
8447
8514
  | <code><a href="#@rio-cloud/cdk-v2-constructs.ViewTable.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
8448
- | <code><a href="#@rio-cloud/cdk-v2-constructs.ViewTable.property.env">env</a></code> | <code>aws-cdk-lib.ResourceEnvironment</code> | The environment this resource belongs to. |
8515
+ | <code><a href="#@rio-cloud/cdk-v2-constructs.ViewTable.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
8449
8516
  | <code><a href="#@rio-cloud/cdk-v2-constructs.ViewTable.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
8450
8517
 
8451
8518
  ---
@@ -8468,16 +8535,17 @@ The tree node.
8468
8535
  public readonly env: ResourceEnvironment;
8469
8536
  ```
8470
8537
 
8471
- - *Type:* aws-cdk-lib.ResourceEnvironment
8538
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
8472
8539
 
8473
8540
  The environment this resource belongs to.
8474
8541
 
8475
- For resources that are created and managed by the CDK
8476
- (generally, those created by creating new class instances like Role, Bucket, etc.),
8477
- this is always the same as the environment of the stack they belong to;
8478
- however, for imported resources
8479
- (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
8480
- that might be different than the stack they were imported into.
8542
+ For resources that are created and managed in a Stack (those created by
8543
+ creating new class instances like `new Role()`, `new Bucket()`, etc.), this
8544
+ is always the same as the environment of the stack they belong to.
8545
+
8546
+ For referenced resources (those obtained from referencing methods like
8547
+ `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
8548
+ different than the stack they were imported into.
8481
8549
 
8482
8550
  ---
8483
8551
 
@@ -10437,7 +10505,7 @@ public readonly notificationArns: string[];
10437
10505
  ```
10438
10506
 
10439
10507
  - *Type:* string[]
10440
- - *Default:* no notfication arns.
10508
+ - *Default:* no notification arns.
10441
10509
 
10442
10510
  SNS Topic ARNs that will receive stack events.
10443
10511
 
@@ -17253,7 +17321,7 @@ public readonly notificationArns: string[];
17253
17321
  ```
17254
17322
 
17255
17323
  - *Type:* string[]
17256
- - *Default:* no notfication arns.
17324
+ - *Default:* no notification arns.
17257
17325
 
17258
17326
  SNS Topic ARNs that will receive stack events.
17259
17327
 
package/docs/changelog.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [7.12.4-alpha.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.12.3&sourceBranch=refs%2Ftags%2Fv7.12.4-alpha.0) (2025-11-18)
6
+
7
+ ## [7.12.3](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.12.2&sourceBranch=refs%2Ftags%2Fv7.12.3) (2025-11-17)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * Incompatibility issue because of aws-cdk-lib@2.224.0. Minimum required cdk version has been bumped to 2.224.0 because of this ([4535c7f](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/4535c7fe843b180a13716b9e3a7ce859956e512c))
13
+
5
14
  ## [7.12.2](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.12.1&sourceBranch=refs%2Ftags%2Fv7.12.2) (2025-11-17)
6
15
 
7
16
  ## [7.12.1](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.12.1-alpha.0&sourceBranch=refs%2Ftags%2Fv7.12.1) (2025-11-12)
@@ -22,6 +22,7 @@ declare abstract class SharedSecret extends constructs.Construct implements sec.
22
22
  denyAccountRootDelete(): void;
23
23
  attach(_target: sec.ISecretAttachmentTarget): sec.ISecret;
24
24
  applyRemovalPolicy(_policy: cdk.RemovalPolicy): void;
25
+ cfnDynamicReferenceKey(options?: cdk.SecretsManagerSecretOptions): string;
25
26
  }
26
27
  /**
27
28
  * A custom resource that resolves the Datadog API keys from a shared secret
@@ -131,6 +131,9 @@ class SharedSecret extends constructs.Construct {
131
131
  applyRemovalPolicy(_policy) {
132
132
  throw new Error('Method not allowed.');
133
133
  }
134
+ cfnDynamicReferenceKey(options) {
135
+ return this.secret.cfnDynamicReferenceKey(options);
136
+ }
134
137
  }
135
138
  /**
136
139
  * A custom resource that resolves the Datadog API keys from a shared secret
@@ -189,4 +192,4 @@ class DatadogSharedCredentials extends SharedSecret {
189
192
  exports.DatadogSharedCredentials = DatadogSharedCredentials;
190
193
  _b = JSII_RTTI_SYMBOL_1;
191
194
  DatadogSharedCredentials[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials", version: "0.0.0" };
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhZG9ndjIvZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLDRDQUFvRDtBQUdwRCxNQUFNLHNCQUFzQixHQUFXLGNBQWMsQ0FBQztBQUN0RCxNQUFNLHlCQUF5QixHQUFXLGNBQWMsQ0FBQztBQUV6RCxNQUFNLDBCQUEwQixHQUFXLGNBQWMsQ0FBQztBQUUxRCxNQUFNLDBCQUEwQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsTUFBTSxJQUFJLDBCQUEwQixvQ0FBb0MsQ0FBQztBQUMxSixNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsTUFBTSxJQUFJLDBCQUEwQixpQ0FBaUMsQ0FBQztBQUVwSixNQUFNLFdBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUMvQyxNQUFNLG1CQUFtQixHQUFHLCtCQUErQixDQUFDO0FBQzVELE1BQU0sdUJBQXVCLEdBQUcsb0NBQW9DLENBQUM7QUFFckUsTUFBZSxZQUFhLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFDOUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWdCO1FBQ2pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRTtZQUNoRixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsRUFBRTtnQkFDbEYsT0FBTyxFQUFF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QUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQXdCLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQTJCO1FBQ2xELE1BQU0sRUFBRSxHQUFHLHVCQUF1QixDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBNkIsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN2RSxDQUFDOztBQXhCSCxrREEwQkM7OztBQUlEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHdCQUF5QixTQUFRLFlBQVk7SUFFeEQsY0FBYyxDQUFDLEtBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBWTtRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUzRCxDQUFDOztBQVRILDREQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2VjIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cblxuY29uc3QgRVVfTEFORElOR19aT05FX09SR19JRDogc3RyaW5nID0gJ28tcjVqZmw3bWJyOSc7XG5jb25zdCBMQVRBTV9MQU5ESU5HX1pPTkVfT1JHX0lEOiBzdHJpbmcgPSAnby01ajEydXQ1MjR3JztcblxuY29uc3QgREVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUQ6IHN0cmluZyA9ICc1NzcxNDY4OTc3ODUnO1xuXG5jb25zdCBzaGFyZWRMYXRhbVNlY3JldEFyblByZWZpeCA9IChyZWdpb246IHN0cmluZykgPT4gYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtyZWdpb259OiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDovZGF0YWRvZy1pbnRlZ3JhdGlvbi9sYXRhbWA7XG5jb25zdCBzaGFyZWRFdVNlY3JldEFyblByZWZpeCA9IChyZWdpb246IHN0cmluZykgPT4gYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtyZWdpb259OiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDovZGF0YWRvZy1pbnRlZ3JhdGlvbi9ldWA7XG5cbmNvbnN0IFJFU09VUkNFX0lEID0gJ19fT3JnQ3JlZGVudGlhbHNTZWNyZXRfXyc7XG5jb25zdCBBUElfS0VZX1JFU09VUkNFX0lEID0gJ19fRGF0YWRvZ0FwaUtleVNoYXJlZFNlY3JldF9fJztcbmNvbnN0IENSRURFTlRJQUxTX1JFU09VUkNFX0lEID0gJ19fRGF0YWRvZ0NyZWRlbnRpYWxzU2hhcmVkU2VjcmV0X18nO1xuXG5hYnN0cmFjdCBjbGFzcyBTaGFyZWRTZWNyZXQgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCBpbXBsZW1lbnRzIHNlYy5JU2VjcmV0IHtcbiAgcHJpdmF0ZSBzdGF0aWMgc2V0dXBDdXN0b21SZXNvdXJjZShzdGFjazogY2RrLlN0YWNrKTogY3IuUHJvdmlkZXIge1xuICAgIGNvbnN0IHNlY3JldExvY2F0b3JMYW1iZGEgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnUmVzb2x2ZVNlY3JldEFybkhhbmRsZXInLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NlY3JldC1sb2NhdG9yLWN1c3RvbS1yZXNvdXJjZScpLCB7XG4gICAgICAgIGV4Y2x1ZGU6IFsnKi5qcycsICcqLmQudHMnXSxcbiAgICAgIH0pLFxuICAgICAgaGFuZGxlcjogJ29uLWNyZWF0ZS5oYW5kbGVyJyxcbiAgICAgIHJ1bnRpbWU6IERFRkFVTFRfTk9ERV9SVU5USU1FLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIGxvZ0dyb3VwOiBuZXcgbG9ncy5Mb2dHcm91cChzdGFjaywgJ0RhdGFkb2dTaGFyZWRTZWNyZXRIYW5kbGVyTG9nR3JvdXAnLCB7XG4gICAgICAgIHJldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgfSksXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcyg2KSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNIQVJFRF9MQVRBTV9TRUNSRVRfQVJOX1BSRUZJWDogc2hhcmVkTGF0YW1TZWNyZXRBcm5QcmVmaXgoc3RhY2sucmVnaW9uKSxcbiAgICAgICAgU0hBUkVEX0VVX1NFQ1JFVF9BUk5fUFJFRklYOiBzaGFyZWRFdVNlY3JldEFyblByZWZpeChzdGFjay5yZWdpb24pLFxuICAgICAgICBMQVRBTV9MQU5ESU5HX1pPTkVfT1JHX0lEOiBMQVRBTV9MQU5ESU5HX1pPTkVfT1JHX0lELFxuICAgICAgICBFVV9MQU5ESU5HX1pPTkVfT1JHX0lEOiBFVV9MQU5ESU5HX1pPTkVfT1JHX0lELFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAvLyB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIG9yZGVyIG9mIGFzcGVjdHMgaW4gQ0RLLCB3ZSBuZWVkIHRvIGFkZCB0aGUgdGFnIGRpcmVjdGx5LlxuICAgIG5ldyBjZGsuVGFnKCdXYXRjaGZ1bCcsICdmYWxzZScpLnZpc2l0KHNlY3JldExvY2F0b3JMYW1iZGEubm9kZS5kZWZhdWx0Q2hpbGQhKTtcblxuICAgIHNlY3JldExvY2F0b3JMYW1iZGEuYWRkVG9Sb2xlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHsgYWN0aW9uczogWydvcmdhbml6YXRpb25zOkRlc2NyaWJlT3JnYW5pemF0aW9uJ10sIHJlc291cmNlczogWycqJ10gfSkpO1xuICAgIHNlY3JldExvY2F0b3JMYW1iZGEuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ3NlY3JldHNtYW5hZ2VyOkRlc2NyaWJlU2VjcmV0J10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RhY2sucmVnaW9ufToke0RFVkVMT1BFUl9UT09MU19BQ0NPVU5UX0lEfTpzZWNyZXQ6KmBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCBSRVNPVVJDRV9JRCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHNlY3JldExvY2F0b3JMYW1iZGEsXG4gICAgfSk7XG4gICAgLy8gdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBvcmRlciBvZiBhc3BlY3RzIGluIENESywgd2UgbmVlZCB0byBhZGQgdGhlIHRhZyBkaXJlY3RseS5cbiAgICBuZXcgY2RrLlRhZygnV2F0Y2hmdWwnLCAnZmFsc2UnKS52aXNpdChwcm92aWRlci5ub2RlLmZpbmRDaGlsZCgnZnJhbWV3b3JrLW9uRXZlbnQnKS5ub2RlLmRlZmF1bHRDaGlsZCEpO1xuICAgIHJldHVybiBwcm92aWRlcjtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VjcmV0OiBzZWMuSVNlY3JldDtcblxuICBwcml2YXRlIGN1c3RvbVJlc291cmNlOiBjci5Qcm92aWRlcjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuSUNvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VjcmV0TmFtZTogc3RyaW5nICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZih0aGlzKTtcbiAgICBpZiAoIXN0YWNrLm5vZGUudHJ5RmluZENoaWxkKFJFU09VUkNFX0lEKSkge1xuICAgICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IFNoYXJlZFNlY3JldC5zZXR1cEN1c3RvbVJlc291cmNlKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IHN0YWNrLm5vZGUuZmluZENoaWxkKFJFU09VUkNFX0lEKSBhcyBjci5Qcm92aWRlcjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNyZXRMb2NhdG9yID0gbmV3IGNkay5DdXN0b21SZXNvdXJjZSh0aGlzLCAnRGF0YWRvZ1NoYXJlZFNlY3JldCcsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5jdXN0b21SZXNvdXJjZS5zZXJ2aWNlVG9rZW4sXG4gICAgICBwYXNjYWxDYXNlUHJvcGVydGllczogdHJ1ZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgc2VjcmV0TmFtZTogc2VjcmV0TmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlY3JldCA9IHNlYy5TZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsICdSZXNvdXJjZScsIHNlY3JldExvY2F0b3IuZ2V0QXR0KCdTZWNyZXRBcm4nKS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGdldCBzdGFjaygpOiBjZGsuU3RhY2sge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zdGFjaztcbiAgfVxuXG4gIGdldCBlbnYoKTogY2RrLlJlc291cmNlRW52aXJvbm1lbnQge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5lbnY7XG4gIH1cblxuICBnZXQgZW5jcnlwdGlvbktleSgpIDogY2RrLmF3c19rbXMuSUtleSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBzZWNyZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0QXJuO1xuICB9O1xuXG4gIGdldCBzZWNyZXRGdWxsQXJuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldEZ1bGxBcm47XG4gIH1cblxuICBnZXQgc2VjcmV0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXROYW1lO1xuICB9XG5cbiAgZ2V0IHNlY3JldFZhbHVlKCk6IGNkay5TZWNyZXRWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldFZhbHVlO1xuICB9XG5cbiAgc2VjcmV0VmFsdWVGcm9tSnNvbihrZXk6IHN0cmluZyk6IGNkay5TZWNyZXRWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldFZhbHVlRnJvbUpzb24oa2V5KTtcbiAgfVxuXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgdmVyc2lvblN0YWdlcz86IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCByZXN1bHQgPSBncmFudGVlLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsna21zOkRlY3J5cHQnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOmttczoqOiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OmtleS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAgICdrbXM6UmVzb3VyY2VBbGlhc2VzJzogJ2FsaWFzL2RhdGFkb2ctaW50ZWdyYXRpb24tc2hhcmVkLWNyZWRlbnRpYWxzLWtleScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICBpZiAoIXJlc3VsdC5zdGF0ZW1lbnRBZGRlZCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ0NvdWxkIG5vdCBhZGQgc3RhdGVtZW50IHRvIHRoZSBwcmluY2lwYWwgcG9saWN5LicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuZ3JhbnRSZWFkKGdyYW50ZWUsIHZlcnNpb25TdGFnZXMpO1xuICB9XG5cbiAgZ3JhbnRXcml0ZShfZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYWRkUm90YXRpb25TY2hlZHVsZShfaWQ6IHN0cmluZywgX29wdGlvbnM6IHNlYy5Sb3RhdGlvblNjaGVkdWxlT3B0aW9ucyk6IHNlYy5Sb3RhdGlvblNjaGVkdWxlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koX3N0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGRlbnlBY2NvdW50Um9vdERlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGF0dGFjaChfdGFyZ2V0OiBzZWMuSVNlY3JldEF0dGFjaG1lbnRUYXJnZXQpOiBzZWMuSVNlY3JldCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGFsbG93ZWQuJyk7XG4gIH1cblxuICBhcHBseVJlbW92YWxQb2xpY3koX3BvbGljeTogY2RrLlJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgY3VzdG9tIHJlc291cmNlIHRoYXQgcmVzb2x2ZXMgdGhlIERhdGFkb2cgQVBJIGtleXMgZnJvbSBhIHNoYXJlZCBzZWNyZXRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBkYXRhZG9nQXBpS2V5ID0gRGF0YWRvZ1NoYXJlZFNlY3JldC5hcGlLZXlTZWNyZXQodGhpcyk7XG4gKlxuICogY29uc3QgZGF0YWRvZ1NlY3JldCA9IERhdGFkb2dTaGFyZWRTZWNyZXQuY3JlZGVudGlhbHNTZWNyZXQodGhpcyk7XG4gKiBjb25zdCBkYXRhZG9nU2l0ZSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0KCdTaXRlJyk7XG4gKiBjb25zdCBkYXRhZG9nQXBpS2V5ID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXQoJ0FwaUtleScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleVZhbHVlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnQXBpS2V5Jyk7XG4gKiBjb25zdCBkYXRhZG9nQXBpS2V5VmFsdWUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldFZhbHVlKCdBcHBsaWNhdGlvbktleScpO1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1NoYXJlZFNlY3JldCBleHRlbmRzIFNoYXJlZFNlY3JldCB7XG5cbiAgLyoqXG4gICAqIFRoaXMgc3RhdGljIGZ1bmN0aW9uIHJlc29sdmVzIHRvIHRoZSBwbGFpbiBhcGkta2V5IHNlY3JldCwgdGhhdCBjYW4gYmUgdXNlZCBmb3IgdGhlIGxvZyBmb3J3YXJkZXIgb3IgdGhlIExhbWJkYSBpbnN0cnVtZW50YXRpb24uXG4gICAqL1xuICBzdGF0aWMgYXBpS2V5U2VjcmV0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCk6IERhdGFkb2dTaGFyZWRTZWNyZXQge1xuICAgIGNvbnN0IGlkID0gQVBJX0tFWV9SRVNPVVJDRV9JRDtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgaWYgKHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKSkge1xuICAgICAgcmV0dXJuIHN0YWNrLm5vZGUuZmluZENoaWxkKGlkKSBhcyBEYXRhZG9nU2hhcmVkU2VjcmV0O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGFkb2dTaGFyZWRTZWNyZXQoc3RhY2ssIGlkLCAnc2hhcmVkLWFwaS1rZXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlcyB0byB0aGUganNvbiBjcmVkZW50aWFscyBzZWNyZXQgdGhhdCBjb250YWlucyBbJ0FwaUtleScsICdBcHBsaWNhdGlvbktleScsICdTaXRlJ10uXG4gICAqL1xuICBzdGF0aWMgY3JlZGVudGlhbHNTZWNyZXQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0KTogRGF0YWRvZ1NoYXJlZENyZWRlbnRpYWxzIHtcbiAgICBjb25zdCBpZCA9IENSRURFTlRJQUxTX1JFU09VUkNFX0lEO1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHNjb3BlKTtcbiAgICBpZiAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoaWQpKSB7XG4gICAgICByZXR1cm4gc3RhY2subm9kZS5maW5kQ2hpbGQoaWQpIGFzIERhdGFkb2dTaGFyZWRDcmVkZW50aWFscztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRhZG9nU2hhcmVkQ3JlZGVudGlhbHMoc2NvcGUsIGlkLCAnc2hhcmVkLWNyZWRlbnRpYWxzJyk7XG4gIH1cblxufVxuXG50eXBlIEZpZWxkID0gJ0FwcGxpY2F0aW9uS2V5JyB8ICdTaXRlJyB8ICdBcGlLZXknXG5cbi8qXG4gICogQSBjdXN0b20gcmVzb3VyY2UgdGhhdCByZXNvbHZlcyB0aGUgRGF0YWRvZyBjcmVkZW50aWFscyBmcm9tIGEgc2hhcmVkIHNlY3JldFxuICAqIEBleGFtcGxlXG4gICogY29uc3QgZGF0YWRvZ1NlY3JldCA9IERhdGFkb2dTaGFyZWRTZWNyZXQuY3JlZGVudGlhbHNTZWNyZXQodGhpcyk7XG4gICogY29uc3QgZGF0YWRvZ1NpdGUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldFZhbHVlKCdTaXRlJykudW5zYWZlVW53cmFwKCk7XG4gICogY29uc3QgZGF0YWRvZ0FwaUtleSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0KCdBcGlLZXknKTtcbiAgKiBjb25zdCBkYXRhZG9nQXBpS2V5VmFsdWUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldFZhbHVlKCdBcHBsaWNhdGlvbktleScpO1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1NoYXJlZENyZWRlbnRpYWxzIGV4dGVuZHMgU2hhcmVkU2VjcmV0IHtcblxuICBnZXRTZWNyZXRWYWx1ZShmaWVsZDogRmllbGQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbihmaWVsZCk7XG4gIH1cblxuICBnZXRTZWNyZXQoZmllbGQ6IEZpZWxkKSB7XG4gICAgcmV0dXJuIGVjcy5TZWNyZXQuZnJvbVNlY3JldHNNYW5hZ2VyKHRoaXMuc2VjcmV0LCBmaWVsZCk7XG5cbiAgfVxuXG59Il19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhZG9ndjIvZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLDRDQUFvRDtBQUdwRCxNQUFNLHNCQUFzQixHQUFXLGNBQWMsQ0FBQztBQUN0RCxNQUFNLHlCQUF5QixHQUFXLGNBQWMsQ0FBQztBQUV6RCxNQUFNLDBCQUEwQixHQUFXLGNBQWMsQ0FBQztBQUUxRCxNQUFNLDBCQUEwQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsTUFBTSxJQUFJLDBCQUEwQixvQ0FBb0MsQ0FBQztBQUMxSixNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsTUFBTSxJQUFJLDBCQUEwQixpQ0FBaUMsQ0FBQztBQUVwSixNQUFNLFdBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUMvQyxNQUFNLG1CQUFtQixHQUFHLCtCQUErQixDQUFDO0FBQzVELE1BQU0sdUJBQXVCLEdBQUcsb0NBQW9DLENBQUM7QUFFckUsTUFBZSxZQUFhLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFDOUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWdCO1FBQ2pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRTtZQUNoRixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsRUFBRTtnQkFDbEYsT0FBTyxFQUFF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Q29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcblxuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzZWMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGNyIGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERFRkFVTFRfTk9ERV9SVU5USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuXG5jb25zdCBFVV9MQU5ESU5HX1pPTkVfT1JHX0lEOiBzdHJpbmcgPSAnby1yNWpmbDdtYnI5JztcbmNvbnN0IExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IHN0cmluZyA9ICdvLTVqMTJ1dDUyNHcnO1xuXG5jb25zdCBERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRDogc3RyaW5nID0gJzU3NzE0Njg5Nzc4NSc7XG5cbmNvbnN0IHNoYXJlZExhdGFtU2VjcmV0QXJuUHJlZml4ID0gKHJlZ2lvbjogc3RyaW5nKSA9PiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3JlZ2lvbn06JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2xhdGFtYDtcbmNvbnN0IHNoYXJlZEV1U2VjcmV0QXJuUHJlZml4ID0gKHJlZ2lvbjogc3RyaW5nKSA9PiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3JlZ2lvbn06JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2V1YDtcblxuY29uc3QgUkVTT1VSQ0VfSUQgPSAnX19PcmdDcmVkZW50aWFsc1NlY3JldF9fJztcbmNvbnN0IEFQSV9LRVlfUkVTT1VSQ0VfSUQgPSAnX19EYXRhZG9nQXBpS2V5U2hhcmVkU2VjcmV0X18nO1xuY29uc3QgQ1JFREVOVElBTFNfUkVTT1VSQ0VfSUQgPSAnX19EYXRhZG9nQ3JlZGVudGlhbHNTaGFyZWRTZWNyZXRfXyc7XG5cbmFic3RyYWN0IGNsYXNzIFNoYXJlZFNlY3JldCBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IGltcGxlbWVudHMgc2VjLklTZWNyZXQge1xuICBwcml2YXRlIHN0YXRpYyBzZXR1cEN1c3RvbVJlc291cmNlKHN0YWNrOiBjZGsuU3RhY2spOiBjci5Qcm92aWRlciB7XG4gICAgY29uc3Qgc2VjcmV0TG9jYXRvckxhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdSZXNvbHZlU2VjcmV0QXJuSGFuZGxlcicsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VjcmV0LWxvY2F0b3ItY3VzdG9tLXJlc291cmNlJyksIHtcbiAgICAgICAgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddLFxuICAgICAgfSksXG4gICAgICBoYW5kbGVyOiAnb24tY3JlYXRlLmhhbmRsZXInLFxuICAgICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHN0YWNrLCAnRGF0YWRvZ1NoYXJlZFNlY3JldEhhbmRsZXJMb2dHcm91cCcsIHtcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB9KSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDYpLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgU0hBUkVEX0xBVEFNX1NFQ1JFVF9BUk5fUFJFRklYOiBzaGFyZWRMYXRhbVNlY3JldEFyblByZWZpeChzdGFjay5yZWdpb24pLFxuICAgICAgICBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVg6IHNoYXJlZEV1U2VjcmV0QXJuUHJlZml4KHN0YWNrLnJlZ2lvbiksXG4gICAgICAgIExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICAgIEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggb3JkZXIgb2YgYXNwZWN0cyBpbiBDREssIHdlIG5lZWQgdG8gYWRkIHRoZSB0YWcgZGlyZWN0bHkuXG4gICAgbmV3IGNkay5UYWcoJ1dhdGNoZnVsJywgJ2ZhbHNlJykudmlzaXQoc2VjcmV0TG9jYXRvckxhbWJkYS5ub2RlLmRlZmF1bHRDaGlsZCEpO1xuXG4gICAgc2VjcmV0TG9jYXRvckxhbWJkYS5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoeyBhY3Rpb25zOiBbJ29yZ2FuaXphdGlvbnM6RGVzY3JpYmVPcmdhbml6YXRpb24nXSwgcmVzb3VyY2VzOiBbJyonXSB9KSk7XG4gICAgc2VjcmV0TG9jYXRvckxhbWJkYS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtzdGFjay5yZWdpb259OiR7REVWRUxPUEVSX1RPT0xTX0FDQ09VTlRfSUR9OnNlY3JldDoqYF0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIoc3RhY2ssIFJFU09VUkNFX0lELCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogc2VjcmV0TG9jYXRvckxhbWJkYSxcbiAgICB9KTtcbiAgICAvLyB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIG9yZGVyIG9mIGFzcGVjdHMgaW4gQ0RLLCB3ZSBuZWVkIHRvIGFkZCB0aGUgdGFnIGRpcmVjdGx5LlxuICAgIG5ldyBjZGsuVGFnKCdXYXRjaGZ1bCcsICdmYWxzZScpLnZpc2l0KHByb3ZpZGVyLm5vZGUuZmluZENoaWxkKCdmcmFtZXdvcmstb25FdmVudCcpLm5vZGUuZGVmYXVsdENoaWxkISk7XG4gICAgcmV0dXJuIHByb3ZpZGVyO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWNyZXQ6IHNlYy5JU2VjcmV0O1xuXG4gIHByaXZhdGUgY3VzdG9tUmVzb3VyY2U6IGNyLlByb3ZpZGVyO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5JQ29uc3RydWN0LCBpZDogc3RyaW5nLCBzZWNyZXROYW1lOiBzdHJpbmcgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIGlmICghc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoUkVTT1VSQ0VfSUQpKSB7XG4gICAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gU2hhcmVkU2VjcmV0LnNldHVwQ3VzdG9tUmVzb3VyY2Uoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gc3RhY2subm9kZS5maW5kQ2hpbGQoUkVTT1VSQ0VfSUQpIGFzIGNyLlByb3ZpZGVyO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldExvY2F0b3IgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdEYXRhZG9nU2hhcmVkU2VjcmV0Jywge1xuICAgICAgc2VydmljZVRva2VuOiB0aGlzLmN1c3RvbVJlc291cmNlLnNlcnZpY2VUb2tlbixcbiAgICAgIHBhc2NhbENhc2VQcm9wZXJ0aWVzOiB0cnVlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBzZWNyZXROYW1lOiBzZWNyZXROYW1lLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuc2VjcmV0ID0gc2VjLlNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgJ1Jlc291cmNlJywgc2VjcmV0TG9jYXRvci5nZXRBdHQoJ1NlY3JldEFybicpLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgZ2V0IHN0YWNrKCk6IGNkay5TdGFjayB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnN0YWNrO1xuICB9XG5cbiAgZ2V0IGVudigpOiBjZGsuUmVzb3VyY2VFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LmVudjtcbiAgfVxuXG4gIGdldCBlbmNyeXB0aW9uS2V5KCkgOiBjZGsuYXdzX2ttcy5JS2V5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHNlY3JldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRBcm47XG4gIH07XG5cbiAgZ2V0IHNlY3JldEZ1bGxBcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0RnVsbEFybjtcbiAgfVxuXG4gIGdldCBzZWNyZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldE5hbWU7XG4gIH1cblxuICBnZXQgc2VjcmV0VmFsdWUoKTogY2RrLlNlY3JldFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0VmFsdWU7XG4gIH1cblxuICBzZWNyZXRWYWx1ZUZyb21Kc29uKGtleTogc3RyaW5nKTogY2RrLlNlY3JldFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbihrZXkpO1xuICB9XG5cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCB2ZXJzaW9uU3RhZ2VzPzogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdyYW50ZWUuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydrbXM6RGVjcnlwdCddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6a21zOio6JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06a2V5LypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgJ0ZvckFueVZhbHVlOlN0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgJ2ttczpSZXNvdXJjZUFsaWFzZXMnOiAnYWxpYXMvZGF0YWRvZy1pbnRlZ3JhdGlvbi1zaGFyZWQtY3JlZGVudGlhbHMta2V5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICAgIGlmICghcmVzdWx0LnN0YXRlbWVudEFkZGVkKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnQ291bGQgbm90IGFkZCBzdGF0ZW1lbnQgdG8gdGhlIHByaW5jaXBhbCBwb2xpY3kuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlY3JldC5ncmFudFJlYWQoZ3JhbnRlZSwgdmVyc2lvblN0YWdlcyk7XG4gIH1cblxuICBncmFudFdyaXRlKF9ncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGFsbG93ZWQuJyk7XG4gIH1cblxuICBhZGRSb3RhdGlvblNjaGVkdWxlKF9pZDogc3RyaW5nLCBfb3B0aW9uczogc2VjLlJvdGF0aW9uU2NoZWR1bGVPcHRpb25zKTogc2VjLlJvdGF0aW9uU2NoZWR1bGUge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShfc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgZGVueUFjY291bnRSb290RGVsZXRlKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYXR0YWNoKF90YXJnZXQ6IHNlYy5JU2VjcmV0QXR0YWNobWVudFRhcmdldCk6IHNlYy5JU2VjcmV0IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShfcG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgY2ZuRHluYW1pY1JlZmVyZW5jZUtleShvcHRpb25zPzogY2RrLlNlY3JldHNNYW5hZ2VyU2VjcmV0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LmNmbkR5bmFtaWNSZWZlcmVuY2VLZXkob3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGN1c3RvbSByZXNvdXJjZSB0aGF0IHJlc29sdmVzIHRoZSBEYXRhZG9nIEFQSSBrZXlzIGZyb20gYSBzaGFyZWQgc2VjcmV0XG4gKiBAZXhhbXBsZVxuICogY29uc3QgZGF0YWRvZ0FwaUtleSA9IERhdGFkb2dTaGFyZWRTZWNyZXQuYXBpS2V5U2VjcmV0KHRoaXMpO1xuICpcbiAqIGNvbnN0IGRhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMpO1xuICogY29uc3QgZGF0YWRvZ1NpdGUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldCgnU2l0ZScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0KCdBcGlLZXknKTtcbiAqIGNvbnN0IGRhdGFkb2dBcGlLZXlWYWx1ZSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0VmFsdWUoJ0FwaUtleScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleVZhbHVlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnQXBwbGljYXRpb25LZXknKTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTaGFyZWRTZWNyZXQgZXh0ZW5kcyBTaGFyZWRTZWNyZXQge1xuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlcyB0byB0aGUgcGxhaW4gYXBpLWtleSBzZWNyZXQsIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSBsb2cgZm9yd2FyZGVyIG9yIHRoZSBMYW1iZGEgaW5zdHJ1bWVudGF0aW9uLlxuICAgKi9cbiAgc3RhdGljIGFwaUtleVNlY3JldChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpOiBEYXRhZG9nU2hhcmVkU2VjcmV0IHtcbiAgICBjb25zdCBpZCA9IEFQSV9LRVlfUkVTT1VSQ0VfSUQ7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIGlmIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkpIHtcbiAgICAgIHJldHVybiBzdGFjay5ub2RlLmZpbmRDaGlsZChpZCkgYXMgRGF0YWRvZ1NoYXJlZFNlY3JldDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRhZG9nU2hhcmVkU2VjcmV0KHN0YWNrLCBpZCwgJ3NoYXJlZC1hcGkta2V5Jyk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBzdGF0aWMgZnVuY3Rpb24gcmVzb2x2ZXMgdG8gdGhlIGpzb24gY3JlZGVudGlhbHMgc2VjcmV0IHRoYXQgY29udGFpbnMgWydBcGlLZXknLCAnQXBwbGljYXRpb25LZXknLCAnU2l0ZSddLlxuICAgKi9cbiAgc3RhdGljIGNyZWRlbnRpYWxzU2VjcmV0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCk6IERhdGFkb2dTaGFyZWRDcmVkZW50aWFscyB7XG4gICAgY29uc3QgaWQgPSBDUkVERU5USUFMU19SRVNPVVJDRV9JRDtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgaWYgKHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKSkge1xuICAgICAgcmV0dXJuIHN0YWNrLm5vZGUuZmluZENoaWxkKGlkKSBhcyBEYXRhZG9nU2hhcmVkQ3JlZGVudGlhbHM7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0YWRvZ1NoYXJlZENyZWRlbnRpYWxzKHNjb3BlLCBpZCwgJ3NoYXJlZC1jcmVkZW50aWFscycpO1xuICB9XG5cbn1cblxudHlwZSBGaWVsZCA9ICdBcHBsaWNhdGlvbktleScgfCAnU2l0ZScgfCAnQXBpS2V5J1xuXG4vKlxuICAqIEEgY3VzdG9tIHJlc291cmNlIHRoYXQgcmVzb2x2ZXMgdGhlIERhdGFkb2cgY3JlZGVudGlhbHMgZnJvbSBhIHNoYXJlZCBzZWNyZXRcbiAgKiBAZXhhbXBsZVxuICAqIGNvbnN0IGRhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMpO1xuICAqIGNvbnN0IGRhdGFkb2dTaXRlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnU2l0ZScpLnVuc2FmZVVud3JhcCgpO1xuICAqIGNvbnN0IGRhdGFkb2dBcGlLZXkgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldCgnQXBpS2V5Jyk7XG4gICogY29uc3QgZGF0YWRvZ0FwaUtleVZhbHVlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnQXBwbGljYXRpb25LZXknKTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTaGFyZWRDcmVkZW50aWFscyBleHRlbmRzIFNoYXJlZFNlY3JldCB7XG5cbiAgZ2V0U2VjcmV0VmFsdWUoZmllbGQ6IEZpZWxkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldFZhbHVlRnJvbUpzb24oZmllbGQpO1xuICB9XG5cbiAgZ2V0U2VjcmV0KGZpZWxkOiBGaWVsZCkge1xuICAgIHJldHVybiBlY3MuU2VjcmV0LmZyb21TZWNyZXRzTWFuYWdlcih0aGlzLnNlY3JldCwgZmllbGQpO1xuXG4gIH1cblxufSJdfQ==
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "7.12.2",
18
+ "version": "7.12.4-alpha.0",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
@@ -79,10 +79,11 @@
79
79
  "@typescript-eslint/eslint-plugin": "6.12.0",
80
80
  "@typescript-eslint/parser": "6.12.0",
81
81
  "aws-cdk": "^2.177.0",
82
- "aws-cdk-lib": "^2.177.0",
82
+ "aws-cdk-lib": "^2.224.0",
83
83
  "aws-sdk-client-mock": "^4.1.0",
84
84
  "commit-and-tag-version": "^12.5.0",
85
85
  "constructs": "10.4.2",
86
+ "datadog-cdk-constructs-v2": "1.21.0",
86
87
  "esbuild": "0.25.0",
87
88
  "eslint": "8.54.0",
88
89
  "eslint-import-resolver-node": "0.3.9",
@@ -97,16 +98,14 @@
97
98
  "tmp": "^0.2.3",
98
99
  "ts-jest": "^29.2.5",
99
100
  "ts-node": "^10.9.2",
100
- "datadog-cdk-constructs-v2": "1.21.0",
101
101
  "typescript": "~5.6.3"
102
102
  },
103
103
  "peerDependencies": {
104
- "aws-cdk-lib": "^2.177.0",
104
+ "aws-cdk-lib": "^2.224.0",
105
105
  "constructs": "^10.4.2"
106
106
  },
107
107
  "dependencies": {
108
108
  "@aws-lambda-powertools/parameters": "^2.10.0",
109
- "@types/aws-lambda": "^8.10.145",
110
109
  "@aws-sdk/client-cloudformation": "^3.682.0",
111
110
  "@aws-sdk/client-codedeploy": "^3.682.0",
112
111
  "@aws-sdk/client-ecs": "^3.682.0",
@@ -114,14 +113,12 @@
114
113
  "@aws-sdk/client-secrets-manager": "^3.687.0",
115
114
  "@aws-sdk/client-ssm": "^3.682.0",
116
115
  "@datadog/datadog-api-client": "^1.29.0",
116
+ "@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624",
117
117
  "@smithy/util-retry": "^3.0.8",
118
+ "@types/aws-lambda": "^8.10.145",
118
119
  "js-yaml": "~4.1.1"
119
120
  },
120
121
  "optionalDependencies": {
121
- "@pepperize/cdk-autoscaling-gitlab-runner": "^0.2.624",
122
- "@pepperize/cdk-private-bucket": "^0.0.351",
123
- "@pepperize/cdk-security-group": "^0.0.439",
124
- "@pepperize/cdk-vpc": "^0.0.558",
125
122
  "datadog-cdk-constructs-v2": "^1.21.0"
126
123
  },
127
124
  "bundleDependencies": [
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "7.12.2"
2
+ "version": "7.12.4-alpha.0"
3
3
  }