@aws-cdk/toolkit-lib 1.29.0 → 1.30.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/build-info.json +2 -2
- package/lib/actions/diagnose/index.d.ts +28 -0
- package/lib/actions/diagnose/index.js +1 -1
- package/lib/actions/validate/index.d.ts +2 -0
- package/lib/actions/validate/index.js +1 -1
- package/lib/api/aws-auth/sdk.d.ts +5 -1
- package/lib/api/aws-auth/sdk.js +5 -1
- package/lib/api/cloud-assembly/environment.js +4 -1
- package/lib/api/cloud-assembly/stack-collection.d.ts +2 -0
- package/lib/api/cloud-assembly/stack-collection.js +3 -1
- package/lib/api/deployments/deploy-stack.js +4 -2
- package/lib/api/deployments/deployments.js +3 -1
- package/lib/api/diagnosing/diagnosis-formatting.js +54 -13
- package/lib/api/diagnosing/format-utils.d.ts +3 -0
- package/lib/api/diagnosing/format-utils.js +36 -0
- package/lib/api/diagnosing/resource-investigation.d.ts +41 -0
- package/lib/api/diagnosing/resource-investigation.js +302 -0
- package/lib/api/diagnosing/stack-diagnoser.d.ts +39 -3
- package/lib/api/diagnosing/stack-diagnoser.js +71 -30
- package/lib/api/hotswap/hotswap-deployments.js +3 -1
- package/lib/api/io/private/messages.js +2 -2
- package/lib/api/validate/validate-formatting.d.ts +9 -2
- package/lib/api/validate/validate-formatting.js +117 -69
- package/lib/payloads/hotswap.d.ts +8 -1
- package/lib/payloads/hotswap.js +1 -1
- package/lib/private/tools.js +26 -24
- package/lib/toolkit/private/collect-annotation-report.d.ts +12 -0
- package/lib/toolkit/private/collect-annotation-report.js +85 -0
- package/lib/toolkit/private/validation-report.d.ts +32 -0
- package/lib/toolkit/private/validation-report.js +119 -0
- package/lib/toolkit/toolkit.d.ts +4 -7
- package/lib/toolkit/toolkit.js +24 -67
- package/lib/toolkit/types.d.ts +1 -0
- package/lib/toolkit/types.js +1 -1
- package/lib/util/glob-matcher.d.ts +19 -7
- package/lib/util/glob-matcher.js +63 -14
- package/package.json +5 -5
- package/lib/api/diagnosing/tree-builder.d.ts +0 -13
- package/lib/api/diagnosing/tree-builder.js +0 -86
- package/lib/api/diagnosing/tree.d.ts +0 -19
- package/lib/api/diagnosing/tree.js +0 -72
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.obtainUnifiedValidationReport = obtainUnifiedValidationReport;
|
|
4
|
+
exports.combineConclusions = combineConclusions;
|
|
5
|
+
exports.throwIfValidationFailures = throwIfValidationFailures;
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const cloud_assembly_schema_1 = require("@aws-cdk/cloud-assembly-schema");
|
|
8
|
+
const fs = require("fs-extra");
|
|
9
|
+
const collect_annotation_report_1 = require("./collect-annotation-report");
|
|
10
|
+
const validate_formatting_1 = require("../../api/validate/validate-formatting");
|
|
11
|
+
const toolkit_error_1 = require("../toolkit-error");
|
|
12
|
+
const VALIDATION_REPORT_FILE = 'validation-report.json';
|
|
13
|
+
/**
|
|
14
|
+
* The name of the plugin that emits construct annotations into the validation report.
|
|
15
|
+
*
|
|
16
|
+
* @see https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/core/lib/private/annotation-plugin.ts
|
|
17
|
+
*/
|
|
18
|
+
const CONSTRUCT_ANNOTATIONS_PLUGINNAME = 'Construct Annotations';
|
|
19
|
+
/**
|
|
20
|
+
* Return a validation report that contains the validation report that the CDK app has written, as well as any Construct Metadata annotations in the manifest.
|
|
21
|
+
*
|
|
22
|
+
* This function takes into account the CDK app can already have written the
|
|
23
|
+
* construct annotations into the validation report, or not, depending on the
|
|
24
|
+
* setting of a deprecated feature flag. If the annotations are already in the report,
|
|
25
|
+
* they are not copied.
|
|
26
|
+
*
|
|
27
|
+
* Afterwards, the list of violations is filtered to only include those that are relevant to the stacks selected for validation.
|
|
28
|
+
*
|
|
29
|
+
* Returns whether an explicit report file was found or not.
|
|
30
|
+
*/
|
|
31
|
+
async function obtainUnifiedValidationReport(assembly, stacks) {
|
|
32
|
+
const ret = [];
|
|
33
|
+
const reportPath = path.join(assembly.directory, VALIDATION_REPORT_FILE);
|
|
34
|
+
if (await fs.pathExists(reportPath)) {
|
|
35
|
+
const selectedStackIds = new Set(stacks.hierarchicalIds);
|
|
36
|
+
const report = cloud_assembly_schema_1.Manifest.loadValidationReport(reportPath);
|
|
37
|
+
// Filter the report to only include violations for the selected stacks
|
|
38
|
+
const filteredReports = filterReportsByStacks(report.pluginReports, selectedStackIds);
|
|
39
|
+
ret.push(...filteredReports);
|
|
40
|
+
}
|
|
41
|
+
const alreadyHasAnnotations = ret.some((r) => r.pluginName === CONSTRUCT_ANNOTATIONS_PLUGINNAME);
|
|
42
|
+
if (!alreadyHasAnnotations) {
|
|
43
|
+
const annotationReport = (0, collect_annotation_report_1.collectAnnotationReport)(stacks);
|
|
44
|
+
if (annotationReport.violations.length > 0 || annotationReport.conclusion === 'failure') {
|
|
45
|
+
ret.push(annotationReport);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Remove all inconsequential reports
|
|
49
|
+
return ret;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Return a success/failure conclusion from the given report
|
|
53
|
+
*/
|
|
54
|
+
function combineConclusions(reports) {
|
|
55
|
+
const reportHasFailures = reports.some((r) => r.conclusion === 'failure');
|
|
56
|
+
return reportHasFailures ? 'failure' : 'success';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* For operations that are NOT `cdk validate`, read the validation report and produce a failure if validation failed.
|
|
60
|
+
*
|
|
61
|
+
* Validation failed if there are any plugin reports with a failure conclusion, or if there are any warnings and the assembly is in strict mode.
|
|
62
|
+
*/
|
|
63
|
+
async function throwIfValidationFailures(assembly, stacks, failAt, ioHelper) {
|
|
64
|
+
const pluginReports = await obtainUnifiedValidationReport(assembly, stacks);
|
|
65
|
+
if (pluginReports.length === 0) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const conclusion = combineConclusions(pluginReports);
|
|
69
|
+
const result = { conclusion, pluginReports };
|
|
70
|
+
await ioHelper.notify((0, validate_formatting_1.hostMessageFromValidation)(process.cwd(), result));
|
|
71
|
+
switch (failAt) {
|
|
72
|
+
case 'error':
|
|
73
|
+
if (conclusion === 'failure') {
|
|
74
|
+
const error = toolkit_error_1.AssemblyError.withStacks('Synthesis finished with errors', stacks.stackArtifacts);
|
|
75
|
+
error.attachSynthesisErrorCode('AnnotationErrors');
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
case 'warn':
|
|
80
|
+
// if we're failing at 'warn', then both warnings and errors cause failure, so the initial conclusion is correct
|
|
81
|
+
if (conclusion === 'failure' || hasWarnings(pluginReports)) {
|
|
82
|
+
const error = toolkit_error_1.AssemblyError.withStacks('Synthesis finished with warnings (--strict mode)', stacks.stackArtifacts);
|
|
83
|
+
error.attachSynthesisErrorCode('StrictAnnotationWarnings');
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
break;
|
|
87
|
+
case 'none':
|
|
88
|
+
// if we're not failing at all, then the conclusion is always success
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function hasWarnings(reports) {
|
|
93
|
+
return reports.some((r) => r.violations.some((v) => v.severity === 'warning'));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Remove violations that aren't in onde of the given stacks
|
|
97
|
+
*/
|
|
98
|
+
function filterReportsByStacks(reports, selectedStackIds) {
|
|
99
|
+
return reports.map((report) => {
|
|
100
|
+
const filteredViolations = report.violations.filter((violation) => {
|
|
101
|
+
if (violation.violatingConstructs.length === 0)
|
|
102
|
+
return true;
|
|
103
|
+
return violation.violatingConstructs.some((c) => selectedStackIds.has(c.constructPath?.split('/')[0] ?? ''));
|
|
104
|
+
}).map((violation) => {
|
|
105
|
+
if (violation.violatingConstructs.length === 0)
|
|
106
|
+
return violation;
|
|
107
|
+
return {
|
|
108
|
+
...violation,
|
|
109
|
+
violatingConstructs: violation.violatingConstructs.filter((c) => selectedStackIds.has(c.constructPath?.split('/')[0] ?? '')),
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
...report,
|
|
114
|
+
violations: filteredViolations,
|
|
115
|
+
conclusion: filteredViolations.length > 0 ? report.conclusion : 'success',
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ2YWxpZGF0aW9uLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxzRUF1QkM7QUFLRCxnREFHQztBQU9ELDhEQW9DQztBQS9HRCw2QkFBNkI7QUFFN0IsMEVBQTBEO0FBQzFELCtCQUErQjtBQUMvQiwyRUFBc0U7QUFJdEUsZ0ZBQW1GO0FBQ25GLG9EQUFpRDtBQUdqRCxNQUFNLHNCQUFzQixHQUFHLHdCQUF3QixDQUFDO0FBRXhEOzs7O0dBSUc7QUFDSCxNQUFNLGdDQUFnQyxHQUFHLHVCQUF1QixDQUFDO0FBTWpFOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLDZCQUE2QixDQUFDLFFBQXNCLEVBQUUsTUFBdUI7SUFDakcsTUFBTSxHQUFHLEdBQXVCLEVBQUUsQ0FBQztJQUVuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN6RSxJQUFJLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLGdDQUFRLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekQsdUVBQXVFO1FBQ3ZFLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxnQ0FB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LFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoRSxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM1RCxPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM5QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzNELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNuQixJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUNqRSxPQUFPO2dCQUNMLEdBQUcsU0FBUztnQkFDWixtQkFBbUIsRUFBRSxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDOUQsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUMzRDthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxVQUFVLEVBQUUsa0JBQWtCO1lBQzlCLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxTQUFtQjtTQUNyRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luUmVwb3J0SnNvbiwgUG9saWN5VmFsaWRhdGlvblJlcG9ydENvbmNsdXNpb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgTWFuaWZlc3QgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgY29sbGVjdEFubm90YXRpb25SZXBvcnQgfSBmcm9tICcuL2NvbGxlY3QtYW5ub3RhdGlvbi1yZXBvcnQnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0ZVJlc3VsdCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvdmFsaWRhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpL2lvL3ByaXZhdGUvaW8taGVscGVyJztcbmltcG9ydCB7IGhvc3RNZXNzYWdlRnJvbVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9hcGkvdmFsaWRhdGUvdmFsaWRhdGUtZm9ybWF0dGluZyc7XG5pbXBvcnQgeyBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IE1pbmltdW1TZXZlcml0eSB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgVkFMSURBVElPTl9SRVBPUlRfRklMRSA9ICd2YWxpZGF0aW9uLXJlcG9ydC5qc29uJztcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luIHRoYXQgZW1pdHMgY29uc3RydWN0IGFubm90YXRpb25zIGludG8gdGhlIHZhbGlkYXRpb24gcmVwb3J0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvbWFpbi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL2Fubm90YXRpb24tcGx1Z2luLnRzXG4gKi9cbmNvbnN0IENPTlNUUlVDVF9BTk5PVEFUSU9OU19QTFVHSU5OQU1FID0gJ0NvbnN0cnVjdCBBbm5vdGF0aW9ucyc7XG5cbmludGVyZmFjZSBBc3NlbWJseUxpa2Uge1xuICByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSB2YWxpZGF0aW9uIHJlcG9ydCB0aGF0IGNvbnRhaW5zIHRoZSB2YWxpZGF0aW9uIHJlcG9ydCB0aGF0IHRoZSBDREsgYXBwIGhhcyB3cml0dGVuLCBhcyB3ZWxsIGFzIGFueSBDb25zdHJ1Y3QgTWV0YWRhdGEgYW5ub3RhdGlvbnMgaW4gdGhlIG1hbmlmZXN0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgaW50byBhY2NvdW50IHRoZSBDREsgYXBwIGNhbiBhbHJlYWR5IGhhdmUgd3JpdHRlbiB0aGVcbiAqIGNvbnN0cnVjdCBhbm5vdGF0aW9ucyBpbnRvIHRoZSB2YWxpZGF0aW9uIHJlcG9ydCwgb3Igbm90LCBkZXBlbmRpbmcgb24gdGhlXG4gKiBzZXR0aW5nIG9mIGEgZGVwcmVjYXRlZCBmZWF0dXJlIGZsYWcuIElmIHRoZSBhbm5vdGF0aW9ucyBhcmUgYWxyZWFkeSBpbiB0aGUgcmVwb3J0LFxuICogdGhleSBhcmUgbm90IGNvcGllZC5cbiAqXG4gKiBBZnRlcndhcmRzLCB0aGUgbGlzdCBvZiB2aW9sYXRpb25zIGlzIGZpbHRlcmVkIHRvIG9ubHkgaW5jbHVkZSB0aG9zZSB0aGF0IGFyZSByZWxldmFudCB0byB0aGUgc3RhY2tzIHNlbGVjdGVkIGZvciB2YWxpZGF0aW9uLlxuICpcbiAqIFJldHVybnMgd2hldGhlciBhbiBleHBsaWNpdCByZXBvcnQgZmlsZSB3YXMgZm91bmQgb3Igbm90LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb2J0YWluVW5pZmllZFZhbGlkYXRpb25SZXBvcnQoYXNzZW1ibHk6IEFzc2VtYmx5TGlrZSwgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24pOiBQcm9taXNlPFBsdWdpblJlcG9ydEpzb25bXT4ge1xuICBjb25zdCByZXQ6IFBsdWdpblJlcG9ydEpzb25bXSA9IFtdO1xuXG4gIGNvbnN0IHJlcG9ydFBhdGggPSBwYXRoLmpvaW4oYXNzZW1ibHkuZGlyZWN0b3J5LCBWQUxJREFUSU9OX1JFUE9SVF9GSUxFKTtcbiAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMocmVwb3J0UGF0aCkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFN0YWNrSWRzID0gbmV3IFNldChzdGFja3MuaGllcmFyY2hpY2FsSWRzKTtcbiAgICBjb25zdCByZXBvcnQgPSBNYW5pZmVzdC5sb2FkVmFsaWRhdGlvblJlcG9ydChyZXBvcnRQYXRoKTtcblxuICAgIC8vIEZpbHRlciB0aGUgcmVwb3J0IHRvIG9ubHkgaW5jbHVkZSB2aW9sYXRpb25zIGZvciB0aGUgc2VsZWN0ZWQgc3RhY2tzXG4gICAgY29uc3QgZmlsdGVyZWRSZXBvcnRzID0gZmlsdGVyUmVwb3J0c0J5U3RhY2tzKHJlcG9ydC5wbHVnaW5SZXBvcnRzLCBzZWxlY3RlZFN0YWNrSWRzKTtcbiAgICByZXQucHVzaCguLi5maWx0ZXJlZFJlcG9ydHMpO1xuICB9XG5cbiAgY29uc3QgYWxyZWFkeUhhc0Fubm90YXRpb25zID0gcmV0LnNvbWUoKHIpID0+IHIucGx1Z2luTmFtZSA9PT0gQ09OU1RSVUNUX0FOTk9UQVRJT05TX1BMVUdJTk5BTUUpO1xuICBpZiAoIWFscmVhZHlIYXNBbm5vdGF0aW9ucykge1xuICAgIGNvbnN0IGFubm90YXRpb25SZXBvcnQgPSBjb2xsZWN0QW5ub3RhdGlvblJlcG9ydChzdGFja3MpO1xuICAgIGlmIChhbm5vdGF0aW9uUmVwb3J0LnZpb2xhdGlvbnMubGVuZ3RoID4gMCB8fCBhbm5vdGF0aW9uUmVwb3J0LmNvbmNsdXNpb24gPT09ICdmYWlsdXJlJykge1xuICAgICAgcmV0LnB1c2goYW5ub3RhdGlvblJlcG9ydCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGFsbCBpbmNvbnNlcXVlbnRpYWwgcmVwb3J0c1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiBhIHN1Y2Nlc3MvZmFpbHVyZSBjb25jbHVzaW9uIGZyb20gdGhlIGdpdmVuIHJlcG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUNvbmNsdXNpb25zKHJlcG9ydHM6IFBsdWdpblJlcG9ydEpzb25bXSk6IFBvbGljeVZhbGlkYXRpb25SZXBvcnRDb25jbHVzaW9uIHtcbiAgY29uc3QgcmVwb3J0SGFzRmFpbHVyZXMgPSByZXBvcnRzLnNvbWUoKHIpID0+IHIuY29uY2x1c2lvbiA9PT0gJ2ZhaWx1cmUnKTtcbiAgcmV0dXJuIHJlcG9ydEhhc0ZhaWx1cmVzID8gJ2ZhaWx1cmUnIDogJ3N1Y2Nlc3MnO1xufVxuXG4vKipcbiAqIEZvciBvcGVyYXRpb25zIHRoYXQgYXJlIE5PVCBgY2RrIHZhbGlkYXRlYCwgcmVhZCB0aGUgdmFsaWRhdGlvbiByZXBvcnQgYW5kIHByb2R1Y2UgYSBmYWlsdXJlIGlmIHZhbGlkYXRpb24gZmFpbGVkLlxuICpcbiAqIFZhbGlkYXRpb24gZmFpbGVkIGlmIHRoZXJlIGFyZSBhbnkgcGx1Z2luIHJlcG9ydHMgd2l0aCBhIGZhaWx1cmUgY29uY2x1c2lvbiwgb3IgaWYgdGhlcmUgYXJlIGFueSB3YXJuaW5ncyBhbmQgdGhlIGFzc2VtYmx5IGlzIGluIHN0cmljdCBtb2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGhyb3dJZlZhbGlkYXRpb25GYWlsdXJlcyhcbiAgYXNzZW1ibHk6IEFzc2VtYmx5TGlrZSxcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGZhaWxBdDogTWluaW11bVNldmVyaXR5LFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2luUmVwb3J0cyA9IGF3YWl0IG9idGFpblVuaWZpZWRWYWxpZGF0aW9uUmVwb3J0KGFzc2VtYmx5LCBzdGFja3MpO1xuICBpZiAocGx1Z2luUmVwb3J0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjb25jbHVzaW9uID0gY29tYmluZUNvbmNsdXNpb25zKHBsdWdpblJlcG9ydHMpO1xuICBjb25zdCByZXN1bHQ6IFZhbGlkYXRlUmVzdWx0ID0geyBjb25jbHVzaW9uLCBwbHVnaW5SZXBvcnRzIH07XG4gIGF3YWl0IGlvSGVscGVyLm5vdGlmeShob3N0TWVzc2FnZUZyb21WYWxpZGF0aW9uKHByb2Nlc3MuY3dkKCksIHJlc3VsdCkpO1xuXG4gIHN3aXRjaCAoZmFpbEF0KSB7XG4gICAgY2FzZSAnZXJyb3InOlxuICAgICAgaWYgKGNvbmNsdXNpb24gPT09ICdmYWlsdXJlJykge1xuICAgICAgICBjb25zdCBlcnJvciA9IEFzc2VtYmx5RXJyb3Iud2l0aFN0YWNrcygnU3ludGhlc2lzIGZpbmlzaGVkIHdpdGggZXJyb3JzJywgc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKTtcbiAgICAgICAgZXJyb3IuYXR0YWNoU3ludGhlc2lzRXJyb3JDb2RlKCdBbm5vdGF0aW9uRXJyb3JzJyk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnd2Fybic6XG4gICAgICAvLyBpZiB3ZSdyZSBmYWlsaW5nIGF0ICd3YXJuJywgdGhlbiBib3RoIHdhcm5pbmdzIGFuZCBlcnJvcnMgY2F1c2UgZmFpbHVyZSwgc28gdGhlIGluaXRpYWwgY29uY2x1c2lvbiBpcyBjb3JyZWN0XG4gICAgICBpZiAoY29uY2x1c2lvbiA9PT0gJ2ZhaWx1cmUnIHx8IGhhc1dhcm5pbmdzKHBsdWdpblJlcG9ydHMpKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gQXNzZW1ibHlFcnJvci53aXRoU3RhY2tzKCdTeW50aGVzaXMgZmluaXNoZWQgd2l0aCB3YXJuaW5ncyAoLS1zdHJpY3QgbW9kZSknLCBzdGFja3Muc3RhY2tBcnRpZmFjdHMpO1xuICAgICAgICBlcnJvci5hdHRhY2hTeW50aGVzaXNFcnJvckNvZGUoJ1N0cmljdEFubm90YXRpb25XYXJuaW5ncycpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm9uZSc6XG4gICAgICAvLyBpZiB3ZSdyZSBub3QgZmFpbGluZyBhdCBhbGwsIHRoZW4gdGhlIGNvbmNsdXNpb24gaXMgYWx3YXlzIHN1Y2Nlc3NcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc1dhcm5pbmdzKHJlcG9ydHM6IFBsdWdpblJlcG9ydEpzb25bXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gcmVwb3J0cy5zb21lKChyKSA9PiByLnZpb2xhdGlvbnMuc29tZSgodikgPT4gdi5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnKSk7XG59XG5cbi8qKlxuICogUmVtb3ZlIHZpb2xhdGlvbnMgdGhhdCBhcmVuJ3QgaW4gb25kZSBvZiB0aGUgZ2l2ZW4gc3RhY2tzXG4gKi9cbmZ1bmN0aW9uIGZpbHRlclJlcG9ydHNCeVN0YWNrcyhyZXBvcnRzOiBQbHVnaW5SZXBvcnRKc29uW10sIHNlbGVjdGVkU3RhY2tJZHM6IFNldDxzdHJpbmc+KTogUGx1Z2luUmVwb3J0SnNvbltdIHtcbiAgcmV0dXJuIHJlcG9ydHMubWFwKChyZXBvcnQpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFZpb2xhdGlvbnMgPSByZXBvcnQudmlvbGF0aW9ucy5maWx0ZXIoKHZpb2xhdGlvbikgPT4ge1xuICAgICAgaWYgKHZpb2xhdGlvbi52aW9sYXRpbmdDb25zdHJ1Y3RzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gdmlvbGF0aW9uLnZpb2xhdGluZ0NvbnN0cnVjdHMuc29tZSgoYykgPT5cbiAgICAgICAgc2VsZWN0ZWRTdGFja0lkcy5oYXMoYy5jb25zdHJ1Y3RQYXRoPy5zcGxpdCgnLycpWzBdID8/ICcnKSxcbiAgICAgICk7XG4gICAgfSkubWFwKCh2aW9sYXRpb24pID0+IHtcbiAgICAgIGlmICh2aW9sYXRpb24udmlvbGF0aW5nQ29uc3RydWN0cy5sZW5ndGggPT09IDApIHJldHVybiB2aW9sYXRpb247XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52aW9sYXRpb24sXG4gICAgICAgIHZpb2xhdGluZ0NvbnN0cnVjdHM6IHZpb2xhdGlvbi52aW9sYXRpbmdDb25zdHJ1Y3RzLmZpbHRlcigoYykgPT5cbiAgICAgICAgICBzZWxlY3RlZFN0YWNrSWRzLmhhcyhjLmNvbnN0cnVjdFBhdGg/LnNwbGl0KCcvJylbMF0gPz8gJycpLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXBvcnQsXG4gICAgICB2aW9sYXRpb25zOiBmaWx0ZXJlZFZpb2xhdGlvbnMsXG4gICAgICBjb25jbHVzaW9uOiBmaWx0ZXJlZFZpb2xhdGlvbnMubGVuZ3RoID4gMCA/IHJlcG9ydC5jb25jbHVzaW9uIDogKCdzdWNjZXNzJyBhcyBjb25zdCksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
|
package/lib/toolkit/toolkit.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../private/dispose-polyfill';
|
|
2
2
|
import type { TemplateDiff } from '@aws-cdk/cloudformation-diff';
|
|
3
|
-
import type { DeployResult, DestroyResult, FeatureFlag, RollbackResult } from './types';
|
|
3
|
+
import type { DeployResult, DestroyResult, FeatureFlag, MinimumSeverity, RollbackResult } from './types';
|
|
4
4
|
import type { BootstrapEnvironments, BootstrapOptions, BootstrapResult } from '../actions/bootstrap';
|
|
5
5
|
import { type DeployOptions } from '../actions/deploy';
|
|
6
6
|
import { type DestroyOptions } from '../actions/destroy';
|
|
@@ -53,11 +53,11 @@ export interface ToolkitOptions {
|
|
|
53
53
|
*/
|
|
54
54
|
readonly toolkitStackName?: string;
|
|
55
55
|
/**
|
|
56
|
-
* Fail Cloud
|
|
56
|
+
* Fail Cloud Assembly operations with an error if there are validation errors in the assembly with at least the indicated severity.
|
|
57
57
|
*
|
|
58
58
|
* @default "error"
|
|
59
59
|
*/
|
|
60
|
-
readonly assemblyFailureAt?:
|
|
60
|
+
readonly assemblyFailureAt?: MinimumSeverity;
|
|
61
61
|
/**
|
|
62
62
|
* The plugin host to use for loading and querying plugins
|
|
63
63
|
*
|
|
@@ -103,6 +103,7 @@ export declare class Toolkit extends CloudAssemblySourceBuilder {
|
|
|
103
103
|
private sdkProviderCache?;
|
|
104
104
|
private baseCredentials;
|
|
105
105
|
private readonly unstableFeatures;
|
|
106
|
+
private readonly assemblyFailureAt;
|
|
106
107
|
constructor(props?: ToolkitOptions);
|
|
107
108
|
/**
|
|
108
109
|
* Bootstrap Action
|
|
@@ -205,10 +206,6 @@ export declare class Toolkit extends CloudAssemblySourceBuilder {
|
|
|
205
206
|
* Helper to allow destroy being called as part of the deploy action.
|
|
206
207
|
*/
|
|
207
208
|
private _destroy;
|
|
208
|
-
/**
|
|
209
|
-
* Validate the stacks for errors and warnings according to the CLI's current settings
|
|
210
|
-
*/
|
|
211
|
-
private validateStacksMetadata;
|
|
212
209
|
/**
|
|
213
210
|
* Create a deployments class
|
|
214
211
|
*/
|