@aws-cdk/toolkit-lib 1.25.0 → 1.25.2
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/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/diff/private/helpers.js +3 -3
- package/lib/api/aws-auth/sdk.d.ts +16 -0
- package/lib/api/aws-auth/sdk.js +22 -3
- package/lib/api/deployments/cfn-api.d.ts +10 -10
- package/lib/api/deployments/cfn-api.js +51 -43
- package/lib/api/deployments/deploy-stack.js +51 -48
- package/lib/api/deployments/deployments.d.ts +9 -1
- package/lib/api/deployments/deployments.js +20 -12
- package/lib/api/diagnosing/{early-validation.d.ts → changeset-error-fetcher.d.ts} +10 -8
- package/lib/api/diagnosing/changeset-error-fetcher.js +83 -0
- package/lib/api/diagnosing/diagnosis-formatting.js +7 -6
- package/lib/api/diagnosing/stack-diagnoser.d.ts +7 -0
- package/lib/api/diagnosing/stack-diagnoser.js +64 -48
- package/lib/api/diagnosing/tree-builder.d.ts +2 -1
- package/lib/api/diagnosing/tree-builder.js +5 -5
- package/lib/api/diagnosing/tree.d.ts +10 -4
- package/lib/api/diagnosing/tree.js +23 -12
- package/lib/api/io/private/span.d.ts +1 -1
- package/lib/api/io/private/span.js +3 -3
- package/lib/api/logs-monitor/logs-monitor.js +4 -4
- package/lib/api/stack-events/stack-activity-monitor.d.ts +4 -4
- package/lib/api/stack-events/stack-activity-monitor.js +14 -13
- package/lib/api/stack-events/stack-event-poller.d.ts +1 -1
- package/lib/api/stack-events/stack-event-poller.js +5 -4
- package/lib/api/stack-events/stack-progress-monitor.d.ts +2 -2
- package/lib/api/stack-events/stack-progress-monitor.js +8 -2
- package/lib/index_bg.wasm +0 -0
- package/lib/toolkit/toolkit.js +2 -2
- package/lib/util/cloudformation.d.ts +14 -0
- package/lib/util/cloudformation.js +27 -1
- package/package.json +11 -12
- package/lib/api/diagnosing/early-validation.js +0 -81
|
@@ -31,4 +31,18 @@ export declare function isRootStackEvent(event: StackEvent): boolean;
|
|
|
31
31
|
* @returns the determined width
|
|
32
32
|
*/
|
|
33
33
|
export declare function maxResourceTypeLength(template: any, startWidth?: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Extract the stack name from a CloudFormation stack ARN.
|
|
36
|
+
* If the input is already a stack name (not an ARN), returns it as-is.
|
|
37
|
+
*
|
|
38
|
+
* ARN format: arn:<partition>:cloudformation:<region>:<account>:stack/<stack-name>/<unique-id>
|
|
39
|
+
*/
|
|
40
|
+
export declare function stackNameFromArn(stackNameOrArn: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Extract the change set name from a CloudFormation change set ARN.
|
|
43
|
+
* If the input is already a change set name (not an ARN), returns it as-is.
|
|
44
|
+
*
|
|
45
|
+
* ARN format: arn:<partition>:cloudformation:<region>:<account>:changeSet/<changeset-name>/<unique-id>
|
|
46
|
+
*/
|
|
47
|
+
export declare function changeSetNameFromArn(changeSetNameOrArn: string): string;
|
|
34
48
|
//# sourceMappingURL=cloudformation.d.ts.map
|
|
@@ -6,6 +6,8 @@ exports.isCancellationEvent = isCancellationEvent;
|
|
|
6
6
|
exports.isRegularResourceEvent = isRegularResourceEvent;
|
|
7
7
|
exports.isRootStackEvent = isRootStackEvent;
|
|
8
8
|
exports.maxResourceTypeLength = maxResourceTypeLength;
|
|
9
|
+
exports.stackNameFromArn = stackNameFromArn;
|
|
10
|
+
exports.changeSetNameFromArn = changeSetNameFromArn;
|
|
9
11
|
/**
|
|
10
12
|
* Validate SNS topic arn
|
|
11
13
|
*/
|
|
@@ -59,4 +61,28 @@ function maxResourceTypeLength(template, startWidth = 'AWS::CloudFormation::Stac
|
|
|
59
61
|
}
|
|
60
62
|
return maxWidth;
|
|
61
63
|
}
|
|
62
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Extract the stack name from a CloudFormation stack ARN.
|
|
66
|
+
* If the input is already a stack name (not an ARN), returns it as-is.
|
|
67
|
+
*
|
|
68
|
+
* ARN format: arn:<partition>:cloudformation:<region>:<account>:stack/<stack-name>/<unique-id>
|
|
69
|
+
*/
|
|
70
|
+
function stackNameFromArn(stackNameOrArn) {
|
|
71
|
+
if (!stackNameOrArn.startsWith('arn:')) {
|
|
72
|
+
return stackNameOrArn;
|
|
73
|
+
}
|
|
74
|
+
return stackNameOrArn.slice(stackNameOrArn.indexOf('/') + 1, stackNameOrArn.lastIndexOf('/'));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Extract the change set name from a CloudFormation change set ARN.
|
|
78
|
+
* If the input is already a change set name (not an ARN), returns it as-is.
|
|
79
|
+
*
|
|
80
|
+
* ARN format: arn:<partition>:cloudformation:<region>:<account>:changeSet/<changeset-name>/<unique-id>
|
|
81
|
+
*/
|
|
82
|
+
function changeSetNameFromArn(changeSetNameOrArn) {
|
|
83
|
+
if (!changeSetNameOrArn.startsWith('arn:')) {
|
|
84
|
+
return changeSetNameOrArn;
|
|
85
|
+
}
|
|
86
|
+
return changeSetNameOrArn.slice(changeSetNameOrArn.indexOf('/') + 1, changeSetNameOrArn.lastIndexOf('/'));
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGtEQUVDO0FBS0Qsb0NBR0M7QUFTRCxrREFFQztBQUtELHdEQUVDO0FBS0QsNENBRUM7QUFTRCxzREFVQztBQVFELDRDQUtDO0FBUUQsb0RBS0M7QUFuRkQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFXO0lBQzdDLE9BQU8saURBQWlELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxLQUFpQjtJQUM1QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxLQUFLLHNCQUFzQixJQUFJLE1BQU0sS0FBSyw2QkFBNkIsQ0FBQztBQUNySCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsS0FBaUI7SUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsS0FBaUI7SUFDdEQsT0FBTyxLQUFLLENBQUMsWUFBWSxLQUFLLDRCQUE0QixDQUFDO0FBQzdELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWlCO0lBQ2hELE9BQU8sS0FBSyxDQUFDLFlBQVksS0FBSyw0QkFBNEIsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMzRyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsUUFBYSxFQUFFLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNO0lBQ25HLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzFCLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUMzQixRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQXNCO0lBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsa0JBQTBCO0lBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YWNrRXZlbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuXG4vKipcbiAqIFZhbGlkYXRlIFNOUyB0b3BpYyBhcm5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU25zVG9waWNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eYXJuOmF3czpzbnM6W2EtejAtOVxcLV0rOlswLTldKzpbYS16MC05XFwtXFxfXSskL2kudGVzdChhcm4pO1xufVxuXG4vKipcbiAqIERvZXMgYSBTdGFjayBFdmVudCBoYXZlIGFuIGVycm9yIG1lc3NhZ2UgYmFzZWQgb24gdGhlIHN0YXR1cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXJyb3JFdmVudChldmVudDogU3RhY2tFdmVudCk6IGJvb2xlYW4ge1xuICBjb25zdCBzdGF0dXMgPSBldmVudC5SZXNvdXJjZVN0YXR1cyA/PyAnJztcbiAgcmV0dXJuIHN0YXR1cy5lbmRzV2l0aCgnX0ZBSUxFRCcpIHx8IHN0YXR1cyA9PT0gJ1JPTExCQUNLX0lOX1BST0dSRVNTJyB8fCBzdGF0dXMgPT09ICdVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnO1xufVxuXG4vKipcbiAqIElzIHRoaXMgYSBmYWlsdXJlIGNhdXNlZCBieSBDbG91ZEZvcm1hdGlvbiBjYW5jZWxsaW5nIHRoZSBkZXBsb3ltZW50P1xuICpcbiAqIFRoaXMgaGFwcGVucyBiZWNhdXNlIHNvbWUgb3RoZXIgcmVzb3VyY2UgZmFpbGVkIGFuZCBDbG91ZEZvcm1hdGlvbiBkZWNpZGVkIHRvIHN0b3Agd2FpdGluZyBmb3IgdGhpcyBvbmUuXG4gKlxuICogTmV2ZXIgcmV0dXJucyB0cnVlIGZvciB0aGUgc3RhY2sgZXZlbnQgaXRzZWxmLCBvbmx5IGZvciByZXNvdXJjZSBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbmNlbGxhdGlvbkV2ZW50KGV2ZW50OiBTdGFja0V2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiAoZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPz8gJycpLmluZGV4T2YoJ2NhbmNlbGxlZCcpID4gLTE7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZXZlbnQgaXMgYWJvdXQgYSByZWd1bGFyIHJlc291cmNlIChub3QgdGhlIHJvb3Qgc3RhY2sgYW5kIG5vdCBhIG5lc3RlZCBzdGFjayByZXNvdXJjZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVndWxhclJlc291cmNlRXZlbnQoZXZlbnQ6IFN0YWNrRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LlJlc291cmNlVHlwZSAhPT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBldmVudCBpcyBhYm91dCB0aGUgcm9vdCBzdGFjayBpdHNlbGYuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Jvb3RTdGFja0V2ZW50KGV2ZW50OiBTdGFja0V2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBldmVudC5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiYgZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkID09PSBldmVudC5TdGFja0lkO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgbWF4aW1hbCBsZW5ndGggb2YgYWxsIHJlc291cmNlIHR5cGVzIGZvciBhIGdpdmVuIHRlbXBsYXRlLlxuICpcbiAqIEBwYXJhbSB0ZW1wbGF0ZSAtIHRoZSBzdGFjayB0ZW1wbGF0ZSB0byBhbmFseXplXG4gKiBAcGFyYW0gc3RhcnRXaWR0aCAtIHRoZSBpbml0aWFsIHdpZHRoIHRvIHN0YXJ0IHdpdGguIERlZmF1bHRzIHRvIHRoZSBsZW5ndGggb2YgJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJy5cbiAqIEByZXR1cm5zIHRoZSBkZXRlcm1pbmVkIHdpZHRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXhSZXNvdXJjZVR5cGVMZW5ndGgodGVtcGxhdGU6IGFueSwgc3RhcnRXaWR0aCA9ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycubGVuZ3RoKTogbnVtYmVyIHtcbiAgY29uc3QgcmVzb3VyY2VzID0gKHRlbXBsYXRlICYmIHRlbXBsYXRlLlJlc291cmNlcykgfHwge307XG4gIGxldCBtYXhXaWR0aCA9IHN0YXJ0V2lkdGg7XG4gIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMocmVzb3VyY2VzKSkge1xuICAgIGNvbnN0IHR5cGUgPSByZXNvdXJjZXNbaWRdLlR5cGUgfHwgJyc7XG4gICAgaWYgKHR5cGUubGVuZ3RoID4gbWF4V2lkdGgpIHtcbiAgICAgIG1heFdpZHRoID0gdHlwZS5sZW5ndGg7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXhXaWR0aDtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IHRoZSBzdGFjayBuYW1lIGZyb20gYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBBUk4uXG4gKiBJZiB0aGUgaW5wdXQgaXMgYWxyZWFkeSBhIHN0YWNrIG5hbWUgKG5vdCBhbiBBUk4pLCByZXR1cm5zIGl0IGFzLWlzLlxuICpcbiAqIEFSTiBmb3JtYXQ6IGFybjo8cGFydGl0aW9uPjpjbG91ZGZvcm1hdGlvbjo8cmVnaW9uPjo8YWNjb3VudD46c3RhY2svPHN0YWNrLW5hbWU+Lzx1bmlxdWUtaWQ+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFja05hbWVGcm9tQXJuKHN0YWNrTmFtZU9yQXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0YWNrTmFtZU9yQXJuLnN0YXJ0c1dpdGgoJ2FybjonKSkge1xuICAgIHJldHVybiBzdGFja05hbWVPckFybjtcbiAgfVxuICByZXR1cm4gc3RhY2tOYW1lT3JBcm4uc2xpY2Uoc3RhY2tOYW1lT3JBcm4uaW5kZXhPZignLycpICsgMSwgc3RhY2tOYW1lT3JBcm4ubGFzdEluZGV4T2YoJy8nKSk7XG59XG5cbi8qKlxuICogRXh0cmFjdCB0aGUgY2hhbmdlIHNldCBuYW1lIGZyb20gYSBDbG91ZEZvcm1hdGlvbiBjaGFuZ2Ugc2V0IEFSTi5cbiAqIElmIHRoZSBpbnB1dCBpcyBhbHJlYWR5IGEgY2hhbmdlIHNldCBuYW1lIChub3QgYW4gQVJOKSwgcmV0dXJucyBpdCBhcy1pcy5cbiAqXG4gKiBBUk4gZm9ybWF0OiBhcm46PHBhcnRpdGlvbj46Y2xvdWRmb3JtYXRpb246PHJlZ2lvbj46PGFjY291bnQ+OmNoYW5nZVNldC88Y2hhbmdlc2V0LW5hbWU+Lzx1bmlxdWUtaWQ+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VTZXROYW1lRnJvbUFybihjaGFuZ2VTZXROYW1lT3JBcm46IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghY2hhbmdlU2V0TmFtZU9yQXJuLnN0YXJ0c1dpdGgoJ2FybjonKSkge1xuICAgIHJldHVybiBjaGFuZ2VTZXROYW1lT3JBcm47XG4gIH1cbiAgcmV0dXJuIGNoYW5nZVNldE5hbWVPckFybi5zbGljZShjaGFuZ2VTZXROYW1lT3JBcm4uaW5kZXhPZignLycpICsgMSwgY2hhbmdlU2V0TmFtZU9yQXJuLmxhc3RJbmRleE9mKCcvJykpO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"organization": true
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@aws-cdk/aws-service-spec": "^0.1.
|
|
38
|
+
"@aws-cdk/aws-service-spec": "^0.1.180",
|
|
39
39
|
"@aws-cdk/cli-plugin-contract": "2.182.2",
|
|
40
|
-
"@cdklabs/eslint-plugin": "^2.0.
|
|
40
|
+
"@cdklabs/eslint-plugin": "^2.0.4",
|
|
41
41
|
"@jest/environment": "^29.7.0",
|
|
42
42
|
"@jest/globals": "^29.7.0",
|
|
43
43
|
"@jest/types": "^29.6.3",
|
|
44
44
|
"@microsoft/api-extractor": "^7.58.7",
|
|
45
|
-
"@smithy/util-stream": "^4.
|
|
45
|
+
"@smithy/util-stream": "^4.6.0",
|
|
46
46
|
"@stylistic/eslint-plugin": "^3",
|
|
47
47
|
"@types/fs-extra": "^11",
|
|
48
48
|
"@types/jest": "^29.5.14",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/split2": "^4.2.3",
|
|
53
53
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
54
54
|
"@typescript-eslint/parser": "^8",
|
|
55
|
-
"aws-cdk-lib": "2.
|
|
55
|
+
"aws-cdk-lib": "2.253.1",
|
|
56
56
|
"aws-sdk-client-mock": "^4.1.0",
|
|
57
57
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
58
58
|
"commit-and-tag-version": "^12",
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
"jest-when": "^3.7.0",
|
|
72
72
|
"license-checker": "^25.0.1",
|
|
73
73
|
"nock": "13",
|
|
74
|
-
"nx": "^22.
|
|
74
|
+
"nx": "^22.7.1",
|
|
75
75
|
"prettier": "^2.8",
|
|
76
|
-
"projen": "^0.99.
|
|
76
|
+
"projen": "^0.99.61",
|
|
77
77
|
"ts-jest": "^29.4.9",
|
|
78
78
|
"tsx": "^4.21.0",
|
|
79
79
|
"typescript": "5.9"
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
85
|
"@aws-cdk/cdk-assets-lib": "^1",
|
|
86
|
-
"@aws-cdk/cloud-assembly-api": "2.2.
|
|
87
|
-
"@aws-cdk/cloud-assembly-schema": ">=53.
|
|
86
|
+
"@aws-cdk/cloud-assembly-api": "2.2.3",
|
|
87
|
+
"@aws-cdk/cloud-assembly-schema": ">=53.24.0",
|
|
88
88
|
"@aws-cdk/cloudformation-diff": "^2",
|
|
89
89
|
"@aws-cdk/cx-api": "^2",
|
|
90
90
|
"@aws-sdk/client-appsync": "^3",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"@smithy/util-retry": "^4",
|
|
116
116
|
"@smithy/util-waiter": "^4",
|
|
117
117
|
"archiver": "^7.0.1",
|
|
118
|
-
"cdk-from-cfn": "^0.
|
|
118
|
+
"cdk-from-cfn": "^0.299.0",
|
|
119
119
|
"chalk": "^4",
|
|
120
120
|
"chokidar": "^4",
|
|
121
121
|
"fast-deep-equal": "^3.1.3",
|
|
@@ -123,9 +123,8 @@
|
|
|
123
123
|
"fs-extra": "^11",
|
|
124
124
|
"p-limit": "^3",
|
|
125
125
|
"picomatch": "^4",
|
|
126
|
-
"semver": "^7.
|
|
126
|
+
"semver": "^7.8.0",
|
|
127
127
|
"split2": "^4.2.0",
|
|
128
|
-
"uuid": "^11.1.0",
|
|
129
128
|
"wrap-ansi": "^7",
|
|
130
129
|
"yaml": "^1"
|
|
131
130
|
},
|
|
@@ -149,7 +148,7 @@
|
|
|
149
148
|
"publishConfig": {
|
|
150
149
|
"access": "public"
|
|
151
150
|
},
|
|
152
|
-
"version": "1.25.
|
|
151
|
+
"version": "1.25.2",
|
|
153
152
|
"packageManager": "yarn@4.13.0",
|
|
154
153
|
"types": "lib/index.d.ts",
|
|
155
154
|
"exports": {
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EarlyValidationReporter = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* A ValidationReporter that checks for early validation errors right after
|
|
6
|
-
* creating the change set.
|
|
7
|
-
*/
|
|
8
|
-
class EarlyValidationReporter {
|
|
9
|
-
sdk;
|
|
10
|
-
envResources;
|
|
11
|
-
constructor(sdk, envResources) {
|
|
12
|
-
this.sdk = sdk;
|
|
13
|
-
this.envResources = envResources;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Fetch the details and return them as a string.
|
|
17
|
-
*
|
|
18
|
-
* If the details could not be fetched, log that as a warning using the IoHelper.
|
|
19
|
-
*/
|
|
20
|
-
async fetchDetailsString(changeSetName, stackName, ioHelper) {
|
|
21
|
-
const summary = `Early validation failed for stack '${stackName}' (ChangeSet '${changeSetName}')`;
|
|
22
|
-
const result = await this.fetchDetailsStructured(changeSetName, stackName);
|
|
23
|
-
switch (result.type) {
|
|
24
|
-
case 'could-not-check':
|
|
25
|
-
await ioHelper.defaults.warn(result.message);
|
|
26
|
-
return summary;
|
|
27
|
-
case 'resource-errors':
|
|
28
|
-
if (result.errors.length === 0) {
|
|
29
|
-
return summary;
|
|
30
|
-
}
|
|
31
|
-
return [
|
|
32
|
-
`${summary}:`,
|
|
33
|
-
...result.errors.map(e => ` - ${e.message} (at ${e.documentPath})`),
|
|
34
|
-
].join('\n');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Fetch the details and return them in structured form.
|
|
39
|
-
*/
|
|
40
|
-
async fetchDetailsStructured(changeSetName, stackName) {
|
|
41
|
-
let operationEvents = [];
|
|
42
|
-
try {
|
|
43
|
-
operationEvents = await this.getFailedEvents(stackName, changeSetName);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
let currentVersion = undefined;
|
|
47
|
-
try {
|
|
48
|
-
currentVersion = (await this.envResources?.lookupToolkit())?.version;
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
type: 'could-not-check',
|
|
54
|
-
message: `Could not retrieve additional details about early validation errors (${error}). Make sure you have permissions to call the DescribeEvents API, or re-bootstrap your environment by running 'cdk bootstrap' to update the Bootstrap CDK Toolkit stack. Bootstrap toolkit stack version 30 or later is needed; current version: ${currentVersion ?? 'unknown'}.`,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
type: 'resource-errors',
|
|
59
|
-
errors: operationEvents.map((ev) => ({
|
|
60
|
-
eventType: ev.EventType ?? '',
|
|
61
|
-
logicalId: ev.LogicalResourceId ?? '',
|
|
62
|
-
message: ev.ValidationStatusReason ?? '',
|
|
63
|
-
physicalId: ev.PhysicalResourceId ? ev.PhysicalResourceId : undefined,
|
|
64
|
-
validationName: ev.ValidationName ?? '',
|
|
65
|
-
documentPath: ev.ValidationPath ?? '',
|
|
66
|
-
resourceType: ev.ResourceType,
|
|
67
|
-
})),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
async getFailedEvents(stackName, changeSetName) {
|
|
71
|
-
return this.sdk.cloudFormation().paginatedDescribeEvents({
|
|
72
|
-
StackName: stackName,
|
|
73
|
-
ChangeSetName: changeSetName,
|
|
74
|
-
Filters: {
|
|
75
|
-
FailedEvents: true,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.EarlyValidationReporter = EarlyValidationReporter;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFybHktdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVhcmx5LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0E7OztHQUdHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDTDtJQUEyQjtJQUF4RCxZQUE2QixHQUFRLEVBQW1CLFlBQW1DO1FBQTlELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFBbUIsaUJBQVksR0FBWixZQUFZLENBQXVCO0lBQzNGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLGFBQXFCLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtRQUMxRixNQUFNLE9BQU8sR0FBRyxzQ0FBc0MsU0FBUyxpQkFBaUIsYUFBYSxJQUFJLENBQUM7UUFDbEcsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssaUJBQWlCO2dCQUNwQixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0MsT0FBTyxPQUFPLENBQUM7WUFFakIsS0FBSyxpQkFBaUI7Z0JBQ3BCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQy9CLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELE9BQU87b0JBQ0wsR0FBRyxPQUFPLEdBQUc7b0JBQ2IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUM7aUJBQ3JFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsYUFBcUIsRUFBRSxTQUFpQjtRQUMxRSxJQUFJLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxjQUFjLEdBQXVCLFNBQVMsQ0FBQztZQUNuRCxJQUFJLENBQUM7Z0JBQ0gsY0FBYyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDO1lBQ3ZFLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2IsQ0FBQztZQUVELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsT0FBTyxFQUFFLHdFQUF3RSxLQUFLLG9QQUFvUCxjQUFjLElBQUksU0FBUyxHQUFHO2FBQ3pXLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUU7Z0JBQzdCLFNBQVMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLElBQUksRUFBRTtnQkFDckMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsSUFBSSxFQUFFO2dCQUN4QyxVQUFVLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3JFLGNBQWMsRUFBRSxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUU7Z0JBQ3ZDLFlBQVksRUFBRSxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUU7Z0JBQ3JDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWTthQUNFLENBQUEsQ0FBQztTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBaUIsRUFBRSxhQUFxQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDdkQsU0FBUyxFQUFFLFNBQVM7WUFDcEIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsT0FBTyxFQUFFO2dCQUNQLFlBQVksRUFBRSxJQUFJO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEVELDBEQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3BlcmF0aW9uRXZlbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9zZGsnO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlL2lvLWhlbHBlcic7XG5cbi8qKlxuICogQSBWYWxpZGF0aW9uUmVwb3J0ZXIgdGhhdCBjaGVja3MgZm9yIGVhcmx5IHZhbGlkYXRpb24gZXJyb3JzIHJpZ2h0IGFmdGVyXG4gKiBjcmVhdGluZyB0aGUgY2hhbmdlIHNldC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVhcmx5VmFsaWRhdGlvblJlcG9ydGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZGs6IFNESywgcHJpdmF0ZSByZWFkb25seSBlbnZSZXNvdXJjZXM/OiBFbnZpcm9ubWVudFJlc291cmNlcykge1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHRoZSBkZXRhaWxzIGFuZCByZXR1cm4gdGhlbSBhcyBhIHN0cmluZy5cbiAgICpcbiAgICogSWYgdGhlIGRldGFpbHMgY291bGQgbm90IGJlIGZldGNoZWQsIGxvZyB0aGF0IGFzIGEgd2FybmluZyB1c2luZyB0aGUgSW9IZWxwZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZmV0Y2hEZXRhaWxzU3RyaW5nKGNoYW5nZVNldE5hbWU6IHN0cmluZywgc3RhY2tOYW1lOiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IGBFYXJseSB2YWxpZGF0aW9uIGZhaWxlZCBmb3Igc3RhY2sgJyR7c3RhY2tOYW1lfScgKENoYW5nZVNldCAnJHtjaGFuZ2VTZXROYW1lfScpYDtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmZldGNoRGV0YWlsc1N0cnVjdHVyZWQoY2hhbmdlU2V0TmFtZSwgc3RhY2tOYW1lKTtcblxuICAgIHN3aXRjaCAocmVzdWx0LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NvdWxkLW5vdC1jaGVjayc6XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLndhcm4ocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICByZXR1cm4gc3VtbWFyeTtcblxuICAgICAgY2FzZSAncmVzb3VyY2UtZXJyb3JzJzpcbiAgICAgICAgaWYgKHJlc3VsdC5lcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHN1bW1hcnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBgJHtzdW1tYXJ5fTpgLFxuICAgICAgICAgIC4uLnJlc3VsdC5lcnJvcnMubWFwKGUgPT4gYCAgLSAke2UubWVzc2FnZX0gKGF0ICR7ZS5kb2N1bWVudFBhdGh9KWApLFxuICAgICAgICBdLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgZGV0YWlscyBhbmQgcmV0dXJuIHRoZW0gaW4gc3RydWN0dXJlZCBmb3JtLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZldGNoRGV0YWlsc1N0cnVjdHVyZWQoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8RWFybHlWYWxpZGF0aW9uQ2hlY2tSZXN1bHQ+IHtcbiAgICBsZXQgb3BlcmF0aW9uRXZlbnRzOiBPcGVyYXRpb25FdmVudFtdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIG9wZXJhdGlvbkV2ZW50cyA9IGF3YWl0IHRoaXMuZ2V0RmFpbGVkRXZlbnRzKHN0YWNrTmFtZSwgY2hhbmdlU2V0TmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxldCBjdXJyZW50VmVyc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY3VycmVudFZlcnNpb24gPSAoYXdhaXQgdGhpcy5lbnZSZXNvdXJjZXM/Lmxvb2t1cFRvb2xraXQoKSk/LnZlcnNpb247XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdjb3VsZC1ub3QtY2hlY2snLFxuICAgICAgICBtZXNzYWdlOiBgQ291bGQgbm90IHJldHJpZXZlIGFkZGl0aW9uYWwgZGV0YWlscyBhYm91dCBlYXJseSB2YWxpZGF0aW9uIGVycm9ycyAoJHtlcnJvcn0pLiBNYWtlIHN1cmUgeW91IGhhdmUgcGVybWlzc2lvbnMgdG8gY2FsbCB0aGUgRGVzY3JpYmVFdmVudHMgQVBJLCBvciByZS1ib290c3RyYXAgeW91ciBlbnZpcm9ubWVudCBieSBydW5uaW5nICdjZGsgYm9vdHN0cmFwJyB0byB1cGRhdGUgdGhlIEJvb3RzdHJhcCBDREsgVG9vbGtpdCBzdGFjay4gQm9vdHN0cmFwIHRvb2xraXQgc3RhY2sgdmVyc2lvbiAzMCBvciBsYXRlciBpcyBuZWVkZWQ7IGN1cnJlbnQgdmVyc2lvbjogJHtjdXJyZW50VmVyc2lvbiA/PyAndW5rbm93bid9LmAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAncmVzb3VyY2UtZXJyb3JzJyxcbiAgICAgIGVycm9yczogb3BlcmF0aW9uRXZlbnRzLm1hcCgoZXYpID0+ICh7XG4gICAgICAgIGV2ZW50VHlwZTogZXYuRXZlbnRUeXBlID8/ICcnLFxuICAgICAgICBsb2dpY2FsSWQ6IGV2LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnLFxuICAgICAgICBtZXNzYWdlOiBldi5WYWxpZGF0aW9uU3RhdHVzUmVhc29uID8/ICcnLFxuICAgICAgICBwaHlzaWNhbElkOiBldi5QaHlzaWNhbFJlc291cmNlSWQgPyBldi5QaHlzaWNhbFJlc291cmNlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbGlkYXRpb25OYW1lOiBldi5WYWxpZGF0aW9uTmFtZSA/PyAnJyxcbiAgICAgICAgZG9jdW1lbnRQYXRoOiBldi5WYWxpZGF0aW9uUGF0aCA/PyAnJyxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBldi5SZXNvdXJjZVR5cGUsXG4gICAgICB9IHNhdGlzZmllcyBFYXJseVZhbGlkYXRpb25FcnJvcikpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEZhaWxlZEV2ZW50cyhzdGFja05hbWU6IHN0cmluZywgY2hhbmdlU2V0TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2RrLmNsb3VkRm9ybWF0aW9uKCkucGFnaW5hdGVkRGVzY3JpYmVFdmVudHMoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lLFxuICAgICAgRmlsdGVyczoge1xuICAgICAgICBGYWlsZWRFdmVudHM6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEVhcmx5VmFsaWRhdGlvbkNoZWNrUmVzdWx0ID1cbiAgfCB7IHR5cGU6ICdjb3VsZC1ub3QtY2hlY2snOyBtZXNzYWdlOiBzdHJpbmcgfVxuICB8IHsgdHlwZTogJ3Jlc291cmNlLWVycm9ycyc7IGVycm9yczogRWFybHlWYWxpZGF0aW9uRXJyb3JbXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVhcmx5VmFsaWRhdGlvbkVycm9yIHtcbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBoeXNpY2FsSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICByZWFkb25seSByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4YW1wbGU6IGBWQUxJREFUSU9OX0VSUk9SYFxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4YW1wbGU6IGBOQU1FX0NPTkZMSUNUX1ZBTElEQVRJT05gXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeGFtcGxlOiBgL1Jlc291cmNlcy9Tb21lQnVja2V0RDVCNzA3MDRgXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudFBhdGg6IHN0cmluZztcbn1cbiJdfQ==
|