@aligent/cdk-aspects 0.5.3 → 0.5.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 +16 -0
- package/lib/defaults/step-functions.js +25 -5
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @aligent/cdk-aspects
|
|
2
2
|
|
|
3
|
+
## 0.5.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#1639](https://github.com/aligent/cdk-constructs/pull/1639) [`060f291`](https://github.com/aligent/cdk-constructs/commit/060f29103f3fd2146bd2d88de54d0e2009f55910) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in the testing-tools group across 1 directory
|
|
8
|
+
|
|
9
|
+
- [#1642](https://github.com/aligent/cdk-constructs/pull/1642) [`d760efe`](https://github.com/aligent/cdk-constructs/commit/d760efe3baec8e33df1b49415de815e2bfd128e5) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump the aws group across 1 directory with 11 updates
|
|
10
|
+
|
|
11
|
+
- [#1658](https://github.com/aligent/cdk-constructs/pull/1658) [`9da935e`](https://github.com/aligent/cdk-constructs/commit/9da935eaf79dd4fa6a07fc1d183fbe04c5c74501) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates
|
|
12
|
+
|
|
13
|
+
## 0.5.4
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#1660](https://github.com/aligent/cdk-constructs/pull/1660) [`d2fb7aa`](https://github.com/aligent/cdk-constructs/commit/d2fb7aa1c03fcf4257d8f5883bf5765510885486) Thanks [@toddhainsworth](https://github.com/toddhainsworth)! - Fixed `StepFunctionsDefaultsAspect` missing IAM grants for CloudWatch Logs delivery. The aspect was setting `loggingConfiguration` directly on the L1 `CfnStateMachine`, bypassing CDK's IAM grant mechanism. The state machine role now receives the required `logs:*` permissions, preventing the `"IAM Role is not authorized to access the Log Destination"` CloudFormation error on deployment.
|
|
18
|
+
|
|
3
19
|
## 0.5.3
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StepFunctionsDefaultsAspect = void 0;
|
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
4
5
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
5
6
|
const aws_stepfunctions_1 = require("aws-cdk-lib/aws-stepfunctions");
|
|
6
7
|
/**
|
|
@@ -48,27 +49,46 @@ class StepFunctionsDefaultsAspect {
|
|
|
48
49
|
// For EXPRESS state machines, configure logging if not already set
|
|
49
50
|
if (cfnStateMachine.stateMachineType === aws_stepfunctions_1.StateMachineType.EXPRESS &&
|
|
50
51
|
cfnStateMachine.loggingConfiguration === undefined) {
|
|
51
|
-
// Create a log group for the state machine
|
|
52
52
|
const logGroup = new aws_logs_1.LogGroup(node, "LogGroup", {
|
|
53
53
|
logGroupName: `/aws/vendedlogs/states/${node.node.id}`,
|
|
54
54
|
});
|
|
55
|
-
// Get the underlying CFN log group to access its ARN
|
|
56
|
-
const cfnLogGroup = logGroup.node.defaultChild;
|
|
57
55
|
cfnStateMachine.loggingConfiguration = {
|
|
58
56
|
destinations: [
|
|
59
57
|
{
|
|
60
58
|
cloudWatchLogsLogGroup: {
|
|
61
|
-
logGroupArn:
|
|
59
|
+
logGroupArn: logGroup.logGroupArn,
|
|
62
60
|
},
|
|
63
61
|
},
|
|
64
62
|
],
|
|
65
63
|
level: aws_stepfunctions_1.LogLevel.ALL,
|
|
66
64
|
includeExecutionData: true,
|
|
67
65
|
};
|
|
66
|
+
// Grant the state machine role the permissions required to deliver logs.
|
|
67
|
+
// Mirrors what CDK's StateMachine.buildLoggingConfiguration() does internally.
|
|
68
|
+
//
|
|
69
|
+
// resources: ["*"] is intentional — all eight actions are vended-log-delivery
|
|
70
|
+
// control-plane APIs that operate at the account level and do not support
|
|
71
|
+
// resource-level scoping against a specific log group ARN.
|
|
72
|
+
// See: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html
|
|
73
|
+
// https://docs.aws.amazon.com/step-functions/latest/dg/cw-logs.html
|
|
74
|
+
node.addToRolePolicy(new aws_iam_1.PolicyStatement({
|
|
75
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
76
|
+
actions: [
|
|
77
|
+
"logs:CreateLogDelivery",
|
|
78
|
+
"logs:GetLogDelivery",
|
|
79
|
+
"logs:UpdateLogDelivery",
|
|
80
|
+
"logs:DeleteLogDelivery",
|
|
81
|
+
"logs:ListLogDeliveries",
|
|
82
|
+
"logs:PutResourcePolicy",
|
|
83
|
+
"logs:DescribeResourcePolicies",
|
|
84
|
+
"logs:DescribeLogGroups",
|
|
85
|
+
],
|
|
86
|
+
resources: ["*"],
|
|
87
|
+
}));
|
|
68
88
|
}
|
|
69
89
|
}
|
|
70
90
|
}
|
|
71
91
|
}
|
|
72
92
|
}
|
|
73
93
|
exports.StepFunctionsDefaultsAspect = StepFunctionsDefaultsAspect;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGVwLWZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBOEQ7QUFDOUQsbURBQWdEO0FBQ2hELHFFQUt1QztBQUd2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBYSwyQkFBMkI7SUFDdEM7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsSUFBZ0I7UUFDcEIsSUFBSSxJQUFJLFlBQVksZ0NBQVksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBK0IsQ0FBQztZQUVsRSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixtQ0FBbUM7Z0JBQ25DLElBQUksZUFBZSxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2RCxlQUFlLENBQUMsb0JBQW9CLEdBQUc7d0JBQ3JDLE9BQU8sRUFBRSxJQUFJO3FCQUNkLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxtRUFBbUU7Z0JBQ25FLElBQ0UsZUFBZSxDQUFDLGdCQUFnQixLQUFLLG9DQUFnQixDQUFDLE9BQU87b0JBQzdELGVBQWUsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLEVBQ2xELENBQUM7b0JBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7d0JBQzlDLFlBQVksRUFBRSwwQkFBMEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7cUJBQ3ZELENBQUMsQ0FBQztvQkFFSCxlQUFlLENBQUMsb0JBQW9CLEdBQUc7d0JBQ3JDLFlBQVksRUFBRTs0QkFDWjtnQ0FDRSxzQkFBc0IsRUFBRTtvQ0FDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO2lDQUNsQzs2QkFDRjt5QkFDRjt3QkFDRCxLQUFLLEVBQUUsNEJBQVEsQ0FBQyxHQUFHO3dCQUNuQixvQkFBb0IsRUFBRSxJQUFJO3FCQUMzQixDQUFDO29CQUVGLHlFQUF5RTtvQkFDekUsK0VBQStFO29CQUMvRSxFQUFFO29CQUNGLDhFQUE4RTtvQkFDOUUsMEVBQTBFO29CQUMxRSwyREFBMkQ7b0JBQzNELHlHQUF5RztvQkFDekcseUVBQXlFO29CQUN6RSxJQUFJLENBQUMsZUFBZSxDQUNsQixJQUFJLHlCQUFlLENBQUM7d0JBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7d0JBQ3BCLE9BQU8sRUFBRTs0QkFDUCx3QkFBd0I7NEJBQ3hCLHFCQUFxQjs0QkFDckIsd0JBQXdCOzRCQUN4Qix3QkFBd0I7NEJBQ3hCLHdCQUF3Qjs0QkFDeEIsd0JBQXdCOzRCQUN4QiwrQkFBK0I7NEJBQy9CLHdCQUF3Qjt5QkFDekI7d0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO3FCQUNqQixDQUFDLENBQ0gsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2RUQsa0VBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJQXNwZWN0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBMb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtcbiAgQ2ZuU3RhdGVNYWNoaW5lLFxuICBMb2dMZXZlbCxcbiAgU3RhdGVNYWNoaW5lLFxuICBTdGF0ZU1hY2hpbmVUeXBlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIEFzcGVjdCB0aGF0IGF1dG9tYXRpY2FsbHkgYXBwbGllcyB0cmFjaW5nIGFuZCBsb2dnaW5nIHNldHRpbmdzIHRvIFN0ZXAgRnVuY3Rpb25zXG4gKlxuICogVmlzaXRzIGFsbCBjb25zdHJ1Y3RzIGluIHRoZSBzY29wZSBhbmQgYXV0b21hdGljYWxseSBhcHBsaWVzIFgtUmF5IHRyYWNpbmcgdG8gYWxsXG4gKiBzdGF0ZSBtYWNoaW5lcy4gRm9yIEVYUFJFU1Mgc3RhdGUgbWFjaGluZXMsIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBsb2cgZ3JvdXBzIGFuZFxuICogY29uZmlndXJlcyBjb21wcmVoZW5zaXZlIGxvZ2dpbmcgZm9yIGVuaGFuY2VkIG9ic2VydmFiaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEFwcGx5IGNvbmZpZ3VyYXRpb24tc3BlY2lmaWMgZGVmYXVsdHMgdG8gYWxsIFN0ZXAgRnVuY3Rpb25zXG4gKiBBc3BlY3RzLm9mKGFwcCkuYWRkKG5ldyBTdGVwRnVuY3Rpb25EZWZhdWx0c0FzcGVjdCgpKTtcbiAqXG4gKiAvLyBTdGVwIEZ1bmN0aW9ucyBhdXRvbWF0aWNhbGx5IGluaGVyaXQgZGVmYXVsdHNcbiAqIG5ldyBTdGF0ZU1hY2hpbmUoc3RhY2ssICdNeVdvcmtmbG93Jywge1xuICogICBzdGF0ZU1hY2hpbmVUeXBlOiBTdGF0ZU1hY2hpbmVUeXBlLkVYUFJFU1MsXG4gKiAgIGRlZmluaXRpb25Cb2R5OiBEZWZpbml0aW9uQm9keS5mcm9tRmlsZSgnd29ya2Zsb3cuYXNsLnlhbWwnKSxcbiAqICAgLy8gdHJhY2luZyBlbmFibGVkIGFuZCBsb2dnaW5nIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBmb3IgRVhQUkVTU1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuYXdzX3N0ZXBmdW5jdGlvbnMuU3RhdGVNYWNoaW5lLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIFN0ZXBGdW5jdGlvbnNEZWZhdWx0c0FzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICAvKipcbiAgICogVmlzaXRzIGEgY29uc3RydWN0IGFuZCBhcHBsaWVzIHRyYWNpbmcgYW5kIGxvZ2dpbmcgc2V0dGluZ3MgaWYgaXQncyBhIFN0YXRlTWFjaGluZVxuICAgKlxuICAgKiBFbmFibGVzIFgtUmF5IHRyYWNpbmcgZm9yIGFsbCBzdGF0ZSBtYWNoaW5lcy4gRm9yIEVYUFJFU1Mgc3RhdGUgbWFjaGluZXMgdGhhdCBkb24ndFxuICAgKiBhbHJlYWR5IGhhdmUgbG9nZ2luZyBjb25maWd1cmVkLCBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgbG9nIGdyb3VwcyBhbmQgY29uZmlndXJlc1xuICAgKiBjb21wcmVoZW5zaXZlIGxvZ2dpbmcgd2l0aCBmdWxsIGV4ZWN1dGlvbiBkYXRhIGNhcHR1cmUuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlIC0gVGhlIGNvbnN0cnVjdCB0byBwb3RlbnRpYWxseSBtb2RpZnlcbiAgICovXG4gIHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFN0YXRlTWFjaGluZSkge1xuICAgICAgY29uc3QgY2ZuU3RhdGVNYWNoaW5lID0gbm9kZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5TdGF0ZU1hY2hpbmU7XG5cbiAgICAgIGlmIChjZm5TdGF0ZU1hY2hpbmUpIHtcbiAgICAgICAgLy8gQXBwbHkgdHJhY2luZyBpZiBub3QgYWxyZWFkeSBzZXRcbiAgICAgICAgaWYgKGNmblN0YXRlTWFjaGluZS50cmFjaW5nQ29uZmlndXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2ZuU3RhdGVNYWNoaW5lLnRyYWNpbmdDb25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yIEVYUFJFU1Mgc3RhdGUgbWFjaGluZXMsIGNvbmZpZ3VyZSBsb2dnaW5nIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2ZuU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZVR5cGUgPT09IFN0YXRlTWFjaGluZVR5cGUuRVhQUkVTUyAmJlxuICAgICAgICAgIGNmblN0YXRlTWFjaGluZS5sb2dnaW5nQ29uZmlndXJhdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKG5vZGUsIFwiTG9nR3JvdXBcIiwge1xuICAgICAgICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy92ZW5kZWRsb2dzL3N0YXRlcy8ke25vZGUubm9kZS5pZH1gLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY2ZuU3RhdGVNYWNoaW5lLmxvZ2dpbmdDb25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgZGVzdGluYXRpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbG91ZFdhdGNoTG9nc0xvZ0dyb3VwOiB7XG4gICAgICAgICAgICAgICAgICBsb2dHcm91cEFybjogbG9nR3JvdXAubG9nR3JvdXBBcm4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsZXZlbDogTG9nTGV2ZWwuQUxMLFxuICAgICAgICAgICAgaW5jbHVkZUV4ZWN1dGlvbkRhdGE6IHRydWUsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIEdyYW50IHRoZSBzdGF0ZSBtYWNoaW5lIHJvbGUgdGhlIHBlcm1pc3Npb25zIHJlcXVpcmVkIHRvIGRlbGl2ZXIgbG9ncy5cbiAgICAgICAgICAvLyBNaXJyb3JzIHdoYXQgQ0RLJ3MgU3RhdGVNYWNoaW5lLmJ1aWxkTG9nZ2luZ0NvbmZpZ3VyYXRpb24oKSBkb2VzIGludGVybmFsbHkuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyByZXNvdXJjZXM6IFtcIipcIl0gaXMgaW50ZW50aW9uYWwg4oCUIGFsbCBlaWdodCBhY3Rpb25zIGFyZSB2ZW5kZWQtbG9nLWRlbGl2ZXJ5XG4gICAgICAgICAgLy8gY29udHJvbC1wbGFuZSBBUElzIHRoYXQgb3BlcmF0ZSBhdCB0aGUgYWNjb3VudCBsZXZlbCBhbmQgZG8gbm90IHN1cHBvcnRcbiAgICAgICAgICAvLyByZXNvdXJjZS1sZXZlbCBzY29waW5nIGFnYWluc3QgYSBzcGVjaWZpYyBsb2cgZ3JvdXAgQVJOLlxuICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9uY2xvdWR3YXRjaGxvZ3MuaHRtbFxuICAgICAgICAgIC8vICAgICAgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jdy1sb2dzLmh0bWxcbiAgICAgICAgICBub2RlLmFkZFRvUm9sZVBvbGljeShcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIFwibG9nczpDcmVhdGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpHZXRMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpVcGRhdGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpEZWxldGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpMaXN0TG9nRGVsaXZlcmllc1wiLFxuICAgICAgICAgICAgICAgIFwibG9nczpQdXRSZXNvdXJjZVBvbGljeVwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpEZXNjcmliZVJlc291cmNlUG9saWNpZXNcIixcbiAgICAgICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIixcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aligent/cdk-aspects",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Collection of CDK Asppects",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/jest": "^29.5.10",
|
|
23
23
|
"@types/node": "^20.19.39",
|
|
24
|
-
"aws-cdk": "^2.
|
|
24
|
+
"aws-cdk": "^2.1119.0",
|
|
25
25
|
"jest": "^29.7.0",
|
|
26
|
-
"ts-jest": "^29.
|
|
26
|
+
"ts-jest": "^29.4.9",
|
|
27
27
|
"ts-node": "^10.9.1",
|
|
28
28
|
"typescript": "^5.3.2"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"aws-cdk-lib": "^2.
|
|
31
|
+
"aws-cdk-lib": "^2.251.0",
|
|
32
32
|
"constructs": "^10.5.0",
|
|
33
33
|
"esbuild": "^0.28.0",
|
|
34
34
|
"source-map-support": "^0.5.21"
|