@aligent/cdk-aspects 0.6.4 → 0.6.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @aligent/cdk-aspects
2
2
 
3
+ ## 0.6.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1717](https://github.com/aligent/cdk-constructs/pull/1717) [`3dd2e7a`](https://github.com/aligent/cdk-constructs/commit/3dd2e7a126d245bf5eb8d785ea5b46ad11b50580) Thanks [@kai-nguyen-aligent](https://github.com/kai-nguyen-aligent)! - Fix conflicting throughput config when aspect overrides DynamoDB billing mode
8
+
3
9
  ## 0.6.4
4
10
 
5
11
  ### Patch Changes
@@ -3,26 +3,6 @@ import { IConstruct } from "constructs";
3
3
  interface Config {
4
4
  duration: "SHORT" | "MEDIUM" | "LONG";
5
5
  }
6
- /**
7
- * Aspect that automatically applies configuration-aware defaults to DynamoDB Tables
8
- *
9
- * Visits all constructs in the scope and automatically applies configuration-specific
10
- * removal policies and point-in-time recovery settings to DynamoDB tables.
11
- * Different configurations balance between cost optimization and data retention needs.
12
- *
13
- * @example
14
- * ```typescript
15
- * // Apply configuration-specific defaults to all tables
16
- * Aspects.of(app).add(new DynamoDbDefaultsAspect({ duration: 'SHORT' }));
17
- *
18
- * // Tables automatically inherit configuration defaults
19
- * new Table(stack, 'MyTable', {
20
- * // point-in-time recovery and removal policy applied automatically
21
- * });
22
- * ```
23
- *
24
- * @see https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html
25
- */
26
6
  export declare class DynamoDbDefaultsAspect implements IAspect {
27
7
  private readonly defaultProps;
28
8
  /**
@@ -3,26 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DynamoDbDefaultsAspect = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const aws_dynamodb_1 = require("aws-cdk-lib/aws-dynamodb");
6
- /**
7
- * Aspect that automatically applies configuration-aware defaults to DynamoDB Tables
8
- *
9
- * Visits all constructs in the scope and automatically applies configuration-specific
10
- * removal policies and point-in-time recovery settings to DynamoDB tables.
11
- * Different configurations balance between cost optimization and data retention needs.
12
- *
13
- * @example
14
- * ```typescript
15
- * // Apply configuration-specific defaults to all tables
16
- * Aspects.of(app).add(new DynamoDbDefaultsAspect({ duration: 'SHORT' }));
17
- *
18
- * // Tables automatically inherit configuration defaults
19
- * new Table(stack, 'MyTable', {
20
- * // point-in-time recovery and removal policy applied automatically
21
- * });
22
- * ```
23
- *
24
- * @see https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html
25
- */
26
6
  class DynamoDbDefaultsAspect {
27
7
  /**
28
8
  * Creates a new DynamoDbDefaultsAspect
@@ -82,6 +62,7 @@ class DynamoDbDefaultsAspect {
82
62
  * @param node - The construct to potentially modify
83
63
  */
84
64
  visit(node) {
65
+ var _a;
85
66
  if (node instanceof aws_dynamodb_1.Table) {
86
67
  const { billingMode, readCapacity, writeCapacity, maxReadRequestUnits, maxWriteRequestUnits, removalPolicy, } = this.defaultProps;
87
68
  if (removalPolicy) {
@@ -90,27 +71,30 @@ class DynamoDbDefaultsAspect {
90
71
  const cfnTable = node.node.defaultChild;
91
72
  if (!cfnTable)
92
73
  return;
93
- if (cfnTable.billingMode === undefined) {
94
- cfnTable.billingMode = billingMode;
74
+ cfnTable.billingMode = (_a = cfnTable.billingMode) !== null && _a !== void 0 ? _a : billingMode;
75
+ // Clear conflicting throughput config to prevent CloudFormation errors
76
+ if (cfnTable.billingMode === aws_dynamodb_1.BillingMode.PAY_PER_REQUEST) {
77
+ cfnTable.provisionedThroughput = undefined;
95
78
  }
96
- if (cfnTable.provisionedThroughput === undefined &&
97
- cfnTable.billingMode !== aws_dynamodb_1.BillingMode.PAY_PER_REQUEST &&
98
- this.isProvisionedThroughputConfigured()) {
99
- cfnTable.provisionedThroughput = {
100
- readCapacityUnits: readCapacity,
101
- writeCapacityUnits: writeCapacity,
102
- };
79
+ else if (cfnTable.billingMode === aws_dynamodb_1.BillingMode.PROVISIONED) {
80
+ cfnTable.onDemandThroughput = undefined;
103
81
  }
104
- if (cfnTable.onDemandThroughput === undefined &&
105
- cfnTable.billingMode !== aws_dynamodb_1.BillingMode.PROVISIONED &&
82
+ if (cfnTable.billingMode === aws_dynamodb_1.BillingMode.PAY_PER_REQUEST &&
106
83
  this.isOnDemandThroughputConfigured()) {
107
84
  cfnTable.onDemandThroughput = {
108
85
  maxReadRequestUnits,
109
86
  maxWriteRequestUnits,
110
87
  };
111
88
  }
89
+ if (cfnTable.billingMode === aws_dynamodb_1.BillingMode.PROVISIONED &&
90
+ this.isProvisionedThroughputConfigured()) {
91
+ cfnTable.provisionedThroughput = {
92
+ readCapacityUnits: readCapacity,
93
+ writeCapacityUnits: writeCapacity,
94
+ };
95
+ }
112
96
  }
113
97
  }
114
98
  }
115
99
  exports.DynamoDbDefaultsAspect = DynamoDbDefaultsAspect;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkeW5hbW9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEQ7QUFDMUQsMkRBS2tDO0FBT2xDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBYSxzQkFBc0I7SUFHakM7Ozs7T0FJRztJQUNILFlBQVksTUFBYztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssbUJBQW1CLENBQ3pCLFFBQXFDO1FBRXJDLFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxPQUFPO2dCQUNWLE9BQU87b0JBQ0wsV0FBVyxFQUFFLDBCQUFXLENBQUMsV0FBVztvQkFDcEMsWUFBWSxFQUFFLENBQUM7b0JBQ2YsYUFBYSxFQUFFLENBQUM7b0JBQ2hCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87aUJBQ3JDLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTztvQkFDTCxXQUFXLEVBQUUsMEJBQVcsQ0FBQyxlQUFlO29CQUN4QyxtQkFBbUIsRUFBRSxHQUFHO29CQUN4QixvQkFBb0IsRUFBRSxHQUFHO29CQUN6QixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO2lCQUNyQyxDQUFDO1lBQ0o7Z0JBQ0UsT0FBTztvQkFDTCxXQUFXLEVBQUUsMEJBQVcsQ0FBQyxlQUFlO29CQUN4QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO2lCQUNwQyxDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFTyxpQ0FBaUM7UUFDdkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV2RSxPQUFPLENBQ0wsV0FBVyxLQUFLLDBCQUFXLENBQUMsV0FBVztZQUN2QyxZQUFZLEtBQUssU0FBUztZQUMxQixhQUFhLEtBQUssU0FBUyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLEdBQzlELElBQUksQ0FBQyxZQUFZLENBQUM7UUFFcEIsT0FBTyxDQUNMLFdBQVcsS0FBSywwQkFBVyxDQUFDLGVBQWU7WUFDM0MsbUJBQW1CLEtBQUssU0FBUztZQUNqQyxvQkFBb0IsS0FBSyxTQUFTLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxJQUFnQjtRQUNwQixJQUFJLElBQUksWUFBWSxvQkFBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUV0QixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBd0IsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBRXRCLElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdkMsUUFBUSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDckMsQ0FBQztZQUVELElBQ0UsUUFBUSxDQUFDLHFCQUFxQixLQUFLLFNBQVM7Z0JBQzVDLFFBQVEsQ0FBQyxXQUFXLEtBQUssMEJBQVcsQ0FBQyxlQUFlO2dCQUNwRCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsRUFDeEMsQ0FBQztnQkFDRCxRQUFRLENBQUMscUJBQXFCLEdBQUc7b0JBQy9CLGlCQUFpQixFQUFFLFlBQWE7b0JBQ2hDLGtCQUFrQixFQUFFLGFBQWM7aUJBQ25DLENBQUM7WUFDSixDQUFDO1lBRUQsSUFDRSxRQUFRLENBQUMsa0JBQWtCLEtBQUssU0FBUztnQkFDekMsUUFBUSxDQUFDLFdBQVcsS0FBSywwQkFBVyxDQUFDLFdBQVc7Z0JBQ2hELElBQUksQ0FBQyw4QkFBOEIsRUFBRSxFQUNyQyxDQUFDO2dCQUNELFFBQVEsQ0FBQyxrQkFBa0IsR0FBRztvQkFDNUIsbUJBQW1CO29CQUNuQixvQkFBb0I7aUJBQ3JCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRIRCx3REFzSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5LCB0eXBlIElBc3BlY3QgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEJpbGxpbmdNb2RlLFxuICBDZm5UYWJsZSxcbiAgVGFibGUsXG4gIHR5cGUgVGFibGVQcm9wcyxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmludGVyZmFjZSBDb25maWcge1xuICBkdXJhdGlvbjogXCJTSE9SVFwiIHwgXCJNRURJVU1cIiB8IFwiTE9OR1wiO1xufVxuXG4vKipcbiAqIEFzcGVjdCB0aGF0IGF1dG9tYXRpY2FsbHkgYXBwbGllcyBjb25maWd1cmF0aW9uLWF3YXJlIGRlZmF1bHRzIHRvIER5bmFtb0RCIFRhYmxlc1xuICpcbiAqIFZpc2l0cyBhbGwgY29uc3RydWN0cyBpbiB0aGUgc2NvcGUgYW5kIGF1dG9tYXRpY2FsbHkgYXBwbGllcyBjb25maWd1cmF0aW9uLXNwZWNpZmljXG4gKiByZW1vdmFsIHBvbGljaWVzIGFuZCBwb2ludC1pbi10aW1lIHJlY292ZXJ5IHNldHRpbmdzIHRvIER5bmFtb0RCIHRhYmxlcy5cbiAqIERpZmZlcmVudCBjb25maWd1cmF0aW9ucyBiYWxhbmNlIGJldHdlZW4gY29zdCBvcHRpbWl6YXRpb24gYW5kIGRhdGEgcmV0ZW50aW9uIG5lZWRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBBcHBseSBjb25maWd1cmF0aW9uLXNwZWNpZmljIGRlZmF1bHRzIHRvIGFsbCB0YWJsZXNcbiAqIEFzcGVjdHMub2YoYXBwKS5hZGQobmV3IER5bmFtb0RiRGVmYXVsdHNBc3BlY3QoeyBkdXJhdGlvbjogJ1NIT1JUJyB9KSk7XG4gKlxuICogLy8gVGFibGVzIGF1dG9tYXRpY2FsbHkgaW5oZXJpdCBjb25maWd1cmF0aW9uIGRlZmF1bHRzXG4gKiBuZXcgVGFibGUoc3RhY2ssICdNeVRhYmxlJywge1xuICogICAvLyBwb2ludC1pbi10aW1lIHJlY292ZXJ5IGFuZCByZW1vdmFsIHBvbGljeSBhcHBsaWVkIGF1dG9tYXRpY2FsbHlcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi9kb2NzL2F3cy1jZGstbGliLmF3c19keW5hbW9kYi5UYWJsZS5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBEeW5hbW9EYkRlZmF1bHRzQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFByb3BzOiBUYWJsZVByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IER5bmFtb0RiRGVmYXVsdHNBc3BlY3RcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gaWRlbnRpZmllciB1c2VkIHRvIHNlbGVjdCBhcHByb3ByaWF0ZSBkZWZhdWx0cy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5kZWZhdWx0UHJvcHMgPSB0aGlzLnJldGVudGlvblByb3BlcnRpZXMoY29uZmlnLmR1cmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZHVyYXRpb24tc3BlY2lmaWMgRHluYW1vREIgdGFibGUgcHJvcGVydGllc1xuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb24gLSBUaGUgZHVyYXRpb24gdG8gZ2V0IHRoZSB0YWJsZSBwcm9wZXJ0aWVzIGZvclxuICAgKiBAcmV0dXJucyBUaGUgdGFibGUgcHJvcGVydGllcyBmb3IgdGhlIGR1cmF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJldGVudGlvblByb3BlcnRpZXMoXG4gICAgZHVyYXRpb246IFwiU0hPUlRcIiB8IFwiTUVESVVNXCIgfCBcIkxPTkdcIlxuICApOiBUYWJsZVByb3BzIHtcbiAgICBzd2l0Y2ggKGR1cmF0aW9uKSB7XG4gICAgICBjYXNlIFwiU0hPUlRcIjpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiaWxsaW5nTW9kZTogQmlsbGluZ01vZGUuUFJPVklTSU9ORUQsXG4gICAgICAgICAgcmVhZENhcGFjaXR5OiAxLFxuICAgICAgICAgIHdyaXRlQ2FwYWNpdHk6IDEsXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICB9O1xuICAgICAgY2FzZSBcIk1FRElVTVwiOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgICAgbWF4UmVhZFJlcXVlc3RVbml0czogMTAwLFxuICAgICAgICAgIG1heFdyaXRlUmVxdWVzdFVuaXRzOiAxMDAsXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiaWxsaW5nTW9kZTogQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNQcm92aXNpb25lZFRocm91Z2hwdXRDb25maWd1cmVkKCkge1xuICAgIGNvbnN0IHsgYmlsbGluZ01vZGUsIHJlYWRDYXBhY2l0eSwgd3JpdGVDYXBhY2l0eSB9ID0gdGhpcy5kZWZhdWx0UHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgYmlsbGluZ01vZGUgPT09IEJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEICYmXG4gICAgICByZWFkQ2FwYWNpdHkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgd3JpdGVDYXBhY2l0eSAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPbkRlbWFuZFRocm91Z2hwdXRDb25maWd1cmVkKCkge1xuICAgIGNvbnN0IHsgYmlsbGluZ01vZGUsIG1heFJlYWRSZXF1ZXN0VW5pdHMsIG1heFdyaXRlUmVxdWVzdFVuaXRzIH0gPVxuICAgICAgdGhpcy5kZWZhdWx0UHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgYmlsbGluZ01vZGUgPT09IEJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCAmJlxuICAgICAgbWF4UmVhZFJlcXVlc3RVbml0cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBtYXhXcml0ZVJlcXVlc3RVbml0cyAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWaXNpdHMgYSBjb25zdHJ1Y3QgYW5kIGFwcGxpZXMgY29uZmlndXJhdGlvbi1hcHByb3ByaWF0ZSBkZWZhdWx0c1xuICAgKlxuICAgKiBBcHBsaWVzIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWMgYmlsbGluZyBtb2RlLCB0aHJvdWdocHV0LCBwb2ludC1pbi10aW1lIHJlY292ZXJ5LFxuICAgKiBhbmQgcmVtb3ZhbCBwb2xpY2llcyB0byB0YWJsZXMgdGhhdCBkb24ndCBhbHJlYWR5IGhhdmUgdGhlc2UgcHJvcGVydGllcyBleHBsaWNpdGx5IHNldC5cbiAgICpcbiAgICogQHBhcmFtIG5vZGUgLSBUaGUgY29uc3RydWN0IHRvIHBvdGVudGlhbGx5IG1vZGlmeVxuICAgKi9cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgVGFibGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYmlsbGluZ01vZGUsXG4gICAgICAgIHJlYWRDYXBhY2l0eSxcbiAgICAgICAgd3JpdGVDYXBhY2l0eSxcbiAgICAgICAgbWF4UmVhZFJlcXVlc3RVbml0cyxcbiAgICAgICAgbWF4V3JpdGVSZXF1ZXN0VW5pdHMsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICB9ID0gdGhpcy5kZWZhdWx0UHJvcHM7XG5cbiAgICAgIGlmIChyZW1vdmFsUG9saWN5KSB7XG4gICAgICAgIG5vZGUuYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjZm5UYWJsZSA9IG5vZGUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuVGFibGU7XG4gICAgICBpZiAoIWNmblRhYmxlKSByZXR1cm47XG5cbiAgICAgIGlmIChjZm5UYWJsZS5iaWxsaW5nTW9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNmblRhYmxlLmJpbGxpbmdNb2RlID0gYmlsbGluZ01vZGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2ZuVGFibGUucHJvdmlzaW9uZWRUaHJvdWdocHV0ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgY2ZuVGFibGUuYmlsbGluZ01vZGUgIT09IEJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCAmJlxuICAgICAgICB0aGlzLmlzUHJvdmlzaW9uZWRUaHJvdWdocHV0Q29uZmlndXJlZCgpXG4gICAgICApIHtcbiAgICAgICAgY2ZuVGFibGUucHJvdmlzaW9uZWRUaHJvdWdocHV0ID0ge1xuICAgICAgICAgIHJlYWRDYXBhY2l0eVVuaXRzOiByZWFkQ2FwYWNpdHkhLFxuICAgICAgICAgIHdyaXRlQ2FwYWNpdHlVbml0czogd3JpdGVDYXBhY2l0eSEsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2ZuVGFibGUub25EZW1hbmRUaHJvdWdocHV0ID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgY2ZuVGFibGUuYmlsbGluZ01vZGUgIT09IEJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEICYmXG4gICAgICAgIHRoaXMuaXNPbkRlbWFuZFRocm91Z2hwdXRDb25maWd1cmVkKClcbiAgICAgICkge1xuICAgICAgICBjZm5UYWJsZS5vbkRlbWFuZFRocm91Z2hwdXQgPSB7XG4gICAgICAgICAgbWF4UmVhZFJlcXVlc3RVbml0cyxcbiAgICAgICAgICBtYXhXcml0ZVJlcXVlc3RVbml0cyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkeW5hbW9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEQ7QUFDMUQsMkRBS2tDO0FBNkJsQyxNQUFhLHNCQUFzQjtJQUdqQzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFjO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxtQkFBbUIsQ0FDekIsUUFBcUM7UUFFckMsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE9BQU87Z0JBQ1YsT0FBTztvQkFDTCxXQUFXLEVBQUUsMEJBQVcsQ0FBQyxXQUFXO29CQUNwQyxZQUFZLEVBQUUsQ0FBQztvQkFDZixhQUFhLEVBQUUsQ0FBQztvQkFDaEIsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztpQkFDckMsQ0FBQztZQUNKLEtBQUssUUFBUTtnQkFDWCxPQUFPO29CQUNMLFdBQVcsRUFBRSwwQkFBVyxDQUFDLGVBQWU7b0JBQ3hDLG1CQUFtQixFQUFFLEdBQUc7b0JBQ3hCLG9CQUFvQixFQUFFLEdBQUc7b0JBQ3pCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87aUJBQ3JDLENBQUM7WUFDSjtnQkFDRSxPQUFPO29CQUNMLFdBQVcsRUFBRSwwQkFBVyxDQUFDLGVBQWU7b0JBQ3hDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07aUJBQ3BDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVPLGlDQUFpQztRQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZFLE9BQU8sQ0FDTCxXQUFXLEtBQUssMEJBQVcsQ0FBQyxXQUFXO1lBQ3ZDLFlBQVksS0FBSyxTQUFTO1lBQzFCLGFBQWEsS0FBSyxTQUFTLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLE1BQU0sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsR0FDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVwQixPQUFPLENBQ0wsV0FBVyxLQUFLLDBCQUFXLENBQUMsZUFBZTtZQUMzQyxtQkFBbUIsS0FBSyxTQUFTO1lBQ2pDLG9CQUFvQixLQUFLLFNBQVMsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLElBQWdCOztRQUNwQixJQUFJLElBQUksWUFBWSxvQkFBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUV0QixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBd0IsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBRXRCLFFBQVEsQ0FBQyxXQUFXLEdBQUcsTUFBQSxRQUFRLENBQUMsV0FBVyxtQ0FBSSxXQUFXLENBQUM7WUFFM0QsdUVBQXVFO1lBQ3ZFLElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSywwQkFBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6RCxRQUFRLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLDBCQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzVELFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7WUFDMUMsQ0FBQztZQUVELElBQ0UsUUFBUSxDQUFDLFdBQVcsS0FBSywwQkFBVyxDQUFDLGVBQWU7Z0JBQ3BELElBQUksQ0FBQyw4QkFBOEIsRUFBRSxFQUNyQyxDQUFDO2dCQUNELFFBQVEsQ0FBQyxrQkFBa0IsR0FBRztvQkFDNUIsbUJBQW1CO29CQUNuQixvQkFBb0I7aUJBQ3JCLENBQUM7WUFDSixDQUFDO1lBRUQsSUFDRSxRQUFRLENBQUMsV0FBVyxLQUFLLDBCQUFXLENBQUMsV0FBVztnQkFDaEQsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLEVBQ3hDLENBQUM7Z0JBQ0QsUUFBUSxDQUFDLHFCQUFxQixHQUFHO29CQUMvQixpQkFBaUIsRUFBRSxZQUFhO29CQUNoQyxrQkFBa0IsRUFBRSxhQUFjO2lCQUNuQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6SEQsd0RBeUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgdHlwZSBJQXNwZWN0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCaWxsaW5nTW9kZSxcbiAgQ2ZuVGFibGUsXG4gIFRhYmxlLFxuICB0eXBlIFRhYmxlUHJvcHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbnRlcmZhY2UgQ29uZmlnIHtcbiAgZHVyYXRpb246IFwiU0hPUlRcIiB8IFwiTUVESVVNXCIgfCBcIkxPTkdcIjtcbn1cblxuLyoqXG4gKiBBc3BlY3QgdGhhdCBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgY29uZmlndXJhdGlvbi1hd2FyZSBkZWZhdWx0cyB0byBEeW5hbW9EQiBUYWJsZXNcbiAqXG4gKiBWaXNpdHMgYWxsIGNvbnN0cnVjdHMgaW4gdGhlIHNjb3BlIGFuZCBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgY29uZmlndXJhdGlvbi1zcGVjaWZpY1xuICogcmVtb3ZhbCBwb2xpY2llcyBhbmQgcG9pbnQtaW4tdGltZSByZWNvdmVyeSBzZXR0aW5ncyB0byBEeW5hbW9EQiB0YWJsZXMuXG4gKiBEaWZmZXJlbnQgY29uZmlndXJhdGlvbnMgYmFsYW5jZSBiZXR3ZWVuIGNvc3Qgb3B0aW1pemF0aW9uIGFuZCBkYXRhIHJldGVudGlvbiBuZWVkcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQXBwbHkgY29uZmlndXJhdGlvbi1zcGVjaWZpYyBkZWZhdWx0cyB0byBhbGwgdGFibGVzXG4gKiBBc3BlY3RzLm9mKGFwcCkuYWRkKG5ldyBEeW5hbW9EYkRlZmF1bHRzQXNwZWN0KHsgZHVyYXRpb246ICdTSE9SVCcgfSkpO1xuICpcbiAqIC8vIFRhYmxlcyBhdXRvbWF0aWNhbGx5IGluaGVyaXQgY29uZmlndXJhdGlvbiBkZWZhdWx0c1xuICogbmV3IFRhYmxlKHN0YWNrLCAnTXlUYWJsZScsIHtcbiAqICAgLy8gcG9pbnQtaW4tdGltZSByZWNvdmVyeSBhbmQgcmVtb3ZhbCBwb2xpY3kgYXBwbGllZCBhdXRvbWF0aWNhbGx5XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5hd3NfZHluYW1vZGIuVGFibGUuaHRtbFxuICovXG50eXBlIERlZmF1bHRQcm9wcyA9IFRhYmxlUHJvcHMgJiB7IGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZSB9O1xuXG5leHBvcnQgY2xhc3MgRHluYW1vRGJEZWZhdWx0c0FzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRQcm9wczogRGVmYXVsdFByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IER5bmFtb0RiRGVmYXVsdHNBc3BlY3RcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gaWRlbnRpZmllciB1c2VkIHRvIHNlbGVjdCBhcHByb3ByaWF0ZSBkZWZhdWx0cy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5kZWZhdWx0UHJvcHMgPSB0aGlzLnJldGVudGlvblByb3BlcnRpZXMoY29uZmlnLmR1cmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZHVyYXRpb24tc3BlY2lmaWMgRHluYW1vREIgdGFibGUgcHJvcGVydGllc1xuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb24gLSBUaGUgZHVyYXRpb24gdG8gZ2V0IHRoZSB0YWJsZSBwcm9wZXJ0aWVzIGZvclxuICAgKiBAcmV0dXJucyBUaGUgdGFibGUgcHJvcGVydGllcyBmb3IgdGhlIGR1cmF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJldGVudGlvblByb3BlcnRpZXMoXG4gICAgZHVyYXRpb246IFwiU0hPUlRcIiB8IFwiTUVESVVNXCIgfCBcIkxPTkdcIlxuICApOiBEZWZhdWx0UHJvcHMge1xuICAgIHN3aXRjaCAoZHVyYXRpb24pIHtcbiAgICAgIGNhc2UgXCJTSE9SVFwiOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZS5QUk9WSVNJT05FRCxcbiAgICAgICAgICByZWFkQ2FwYWNpdHk6IDEsXG4gICAgICAgICAgd3JpdGVDYXBhY2l0eTogMSxcbiAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgIH07XG4gICAgICBjYXNlIFwiTUVESVVNXCI6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYmlsbGluZ01vZGU6IEJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgICAgICBtYXhSZWFkUmVxdWVzdFVuaXRzOiAxMDAsXG4gICAgICAgICAgbWF4V3JpdGVSZXF1ZXN0VW5pdHM6IDEwMCxcbiAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dENvbmZpZ3VyZWQoKSB7XG4gICAgY29uc3QgeyBiaWxsaW5nTW9kZSwgcmVhZENhcGFjaXR5LCB3cml0ZUNhcGFjaXR5IH0gPSB0aGlzLmRlZmF1bHRQcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICBiaWxsaW5nTW9kZSA9PT0gQmlsbGluZ01vZGUuUFJPVklTSU9ORUQgJiZcbiAgICAgIHJlYWRDYXBhY2l0eSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB3cml0ZUNhcGFjaXR5ICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09uRGVtYW5kVGhyb3VnaHB1dENvbmZpZ3VyZWQoKSB7XG4gICAgY29uc3QgeyBiaWxsaW5nTW9kZSwgbWF4UmVhZFJlcXVlc3RVbml0cywgbWF4V3JpdGVSZXF1ZXN0VW5pdHMgfSA9XG4gICAgICB0aGlzLmRlZmF1bHRQcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICBiaWxsaW5nTW9kZSA9PT0gQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNUICYmXG4gICAgICBtYXhSZWFkUmVxdWVzdFVuaXRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG1heFdyaXRlUmVxdWVzdFVuaXRzICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFZpc2l0cyBhIGNvbnN0cnVjdCBhbmQgYXBwbGllcyBjb25maWd1cmF0aW9uLWFwcHJvcHJpYXRlIGRlZmF1bHRzXG4gICAqXG4gICAqIEFwcGxpZXMgY29uZmlndXJhdGlvbi1zcGVjaWZpYyBiaWxsaW5nIG1vZGUsIHRocm91Z2hwdXQsIHBvaW50LWluLXRpbWUgcmVjb3ZlcnksXG4gICAqIGFuZCByZW1vdmFsIHBvbGljaWVzIHRvIHRhYmxlcyB0aGF0IGRvbid0IGFscmVhZHkgaGF2ZSB0aGVzZSBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgc2V0LlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZSAtIFRoZSBjb25zdHJ1Y3QgdG8gcG90ZW50aWFsbHkgbW9kaWZ5XG4gICAqL1xuICB2aXNpdChub2RlOiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBiaWxsaW5nTW9kZSxcbiAgICAgICAgcmVhZENhcGFjaXR5LFxuICAgICAgICB3cml0ZUNhcGFjaXR5LFxuICAgICAgICBtYXhSZWFkUmVxdWVzdFVuaXRzLFxuICAgICAgICBtYXhXcml0ZVJlcXVlc3RVbml0cyxcbiAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIH0gPSB0aGlzLmRlZmF1bHRQcm9wcztcblxuICAgICAgaWYgKHJlbW92YWxQb2xpY3kpIHtcbiAgICAgICAgbm9kZS5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNmblRhYmxlID0gbm9kZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5UYWJsZTtcbiAgICAgIGlmICghY2ZuVGFibGUpIHJldHVybjtcblxuICAgICAgY2ZuVGFibGUuYmlsbGluZ01vZGUgPSBjZm5UYWJsZS5iaWxsaW5nTW9kZSA/PyBiaWxsaW5nTW9kZTtcblxuICAgICAgLy8gQ2xlYXIgY29uZmxpY3RpbmcgdGhyb3VnaHB1dCBjb25maWcgdG8gcHJldmVudCBDbG91ZEZvcm1hdGlvbiBlcnJvcnNcbiAgICAgIGlmIChjZm5UYWJsZS5iaWxsaW5nTW9kZSA9PT0gQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNUKSB7XG4gICAgICAgIGNmblRhYmxlLnByb3Zpc2lvbmVkVGhyb3VnaHB1dCA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoY2ZuVGFibGUuYmlsbGluZ01vZGUgPT09IEJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEKSB7XG4gICAgICAgIGNmblRhYmxlLm9uRGVtYW5kVGhyb3VnaHB1dCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBjZm5UYWJsZS5iaWxsaW5nTW9kZSA9PT0gQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNUICYmXG4gICAgICAgIHRoaXMuaXNPbkRlbWFuZFRocm91Z2hwdXRDb25maWd1cmVkKClcbiAgICAgICkge1xuICAgICAgICBjZm5UYWJsZS5vbkRlbWFuZFRocm91Z2hwdXQgPSB7XG4gICAgICAgICAgbWF4UmVhZFJlcXVlc3RVbml0cyxcbiAgICAgICAgICBtYXhXcml0ZVJlcXVlc3RVbml0cyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBjZm5UYWJsZS5iaWxsaW5nTW9kZSA9PT0gQmlsbGluZ01vZGUuUFJPVklTSU9ORUQgJiZcbiAgICAgICAgdGhpcy5pc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dENvbmZpZ3VyZWQoKVxuICAgICAgKSB7XG4gICAgICAgIGNmblRhYmxlLnByb3Zpc2lvbmVkVGhyb3VnaHB1dCA9IHtcbiAgICAgICAgICByZWFkQ2FwYWNpdHlVbml0czogcmVhZENhcGFjaXR5ISxcbiAgICAgICAgICB3cml0ZUNhcGFjaXR5VW5pdHM6IHdyaXRlQ2FwYWNpdHkhLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligent/cdk-aspects",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
4
4
  "description": "Collection of CDK Asppects",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/jest": "^29.5.10",
23
- "@types/node": "^24.12.4",
23
+ "@types/node": "^24.13.2",
24
24
  "aws-cdk": "^2.1124.1",
25
25
  "jest": "^29.7.0",
26
26
  "ts-jest": "^29.4.9",