@aws-cdk/toolkit-lib 0.2.0 → 0.3.1
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/bootstrap/index.js +69 -5
- package/lib/actions/diff/index.d.ts +8 -0
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +16 -0
- package/lib/actions/diff/private/helpers.js +31 -6
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/actions/refactor/index.d.ts +15 -0
- package/lib/actions/refactor/index.js +3 -0
- package/lib/api/cloud-assembly/cached-source.d.ts +37 -0
- package/lib/api/cloud-assembly/cached-source.js +53 -0
- package/lib/api/cloud-assembly/index.d.ts +1 -0
- package/lib/api/cloud-assembly/index.js +2 -1
- package/lib/api/cloud-assembly/private/borrowed-assembly.d.ts +15 -0
- package/lib/api/cloud-assembly/private/borrowed-assembly.js +23 -0
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +18 -5
- package/lib/api/cloud-assembly/private/context-aware-source.js +25 -8
- package/lib/api/cloud-assembly/private/index.d.ts +0 -2
- package/lib/api/cloud-assembly/private/index.js +1 -3
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +38 -8
- package/lib/api/cloud-assembly/private/prepare-source.js +77 -17
- package/lib/api/cloud-assembly/private/readable-assembly.d.ts +26 -0
- package/lib/api/cloud-assembly/private/readable-assembly.js +34 -0
- package/lib/api/cloud-assembly/private/source-builder.d.ts +27 -0
- package/lib/api/cloud-assembly/private/source-builder.js +139 -30
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +10 -4
- package/lib/api/cloud-assembly/private/stack-assembly.js +18 -3
- package/lib/api/cloud-assembly/source-builder.d.ts +6 -0
- package/lib/api/cloud-assembly/source-builder.js +1 -1
- package/lib/api/cloud-assembly/types.d.ts +32 -1
- package/lib/api/cloud-assembly/types.js +1 -1
- package/lib/api/shared-private.js +373 -20
- package/lib/api/shared-private.js.map +4 -4
- package/lib/api/shared-public.d.ts +82 -61
- package/lib/index_bg.wasm +0 -0
- package/lib/toolkit/private/index.d.ts +4 -0
- package/lib/toolkit/private/index.js +7 -2
- package/lib/toolkit/toolkit.d.ts +16 -2
- package/lib/toolkit/toolkit.js +327 -162
- package/package.json +11 -11
- package/lib/api/cloud-assembly/private/cached-source.d.ts +0 -15
- package/lib/api/cloud-assembly/private/cached-source.js +0 -25
- package/lib/api/cloud-assembly/private/identity-source.d.ts +0 -10
- package/lib/api/cloud-assembly/private/identity-source.js +0 -17
package/build-info.json
CHANGED
|
@@ -1,4 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
3
|
+
if (value !== null && value !== void 0) {
|
|
4
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
5
|
+
var dispose, inner;
|
|
6
|
+
if (async) {
|
|
7
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
8
|
+
dispose = value[Symbol.asyncDispose];
|
|
9
|
+
}
|
|
10
|
+
if (dispose === void 0) {
|
|
11
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
12
|
+
dispose = value[Symbol.dispose];
|
|
13
|
+
if (async) inner = dispose;
|
|
14
|
+
}
|
|
15
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
16
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
17
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
18
|
+
}
|
|
19
|
+
else if (async) {
|
|
20
|
+
env.stack.push({ async: true });
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
25
|
+
return function (env) {
|
|
26
|
+
function fail(e) {
|
|
27
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
28
|
+
env.hasError = true;
|
|
29
|
+
}
|
|
30
|
+
var r, s = 0;
|
|
31
|
+
function next() {
|
|
32
|
+
while (r = env.stack.pop()) {
|
|
33
|
+
try {
|
|
34
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
35
|
+
if (r.dispose) {
|
|
36
|
+
var result = r.dispose.call(r.value);
|
|
37
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
38
|
+
}
|
|
39
|
+
else s |= 1;
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
fail(e);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
46
|
+
if (env.hasError) throw env.error;
|
|
47
|
+
}
|
|
48
|
+
return next();
|
|
49
|
+
};
|
|
50
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
51
|
+
var e = new Error(message);
|
|
52
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
53
|
+
});
|
|
2
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
55
|
exports.BootstrapSource = exports.BootstrapStackParameters = exports.BootstrapEnvironments = void 0;
|
|
4
56
|
const private_1 = require("./private");
|
|
@@ -22,10 +74,22 @@ class BootstrapEnvironments {
|
|
|
22
74
|
*/
|
|
23
75
|
static fromCloudAssemblySource(cx) {
|
|
24
76
|
return new BootstrapEnvironments(async (ioHost) => {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
77
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
78
|
+
try {
|
|
79
|
+
const ioHelper = (0, shared_private_1.asIoHelper)(ioHost, 'bootstrap');
|
|
80
|
+
const assembly = __addDisposableResource(env_1, await (0, private_3.assemblyFromSource)(ioHelper, cx), true);
|
|
81
|
+
const stackCollection = await assembly.selectStacksV2(private_2.ALL_STACKS);
|
|
82
|
+
return stackCollection.stackArtifacts.map(stack => stack.environment);
|
|
83
|
+
}
|
|
84
|
+
catch (e_1) {
|
|
85
|
+
env_1.error = e_1;
|
|
86
|
+
env_1.hasError = true;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
const result_1 = __disposeResources(env_1);
|
|
90
|
+
if (result_1)
|
|
91
|
+
await result_1;
|
|
92
|
+
}
|
|
29
93
|
});
|
|
30
94
|
}
|
|
31
95
|
constructor(envProvider) {
|
|
@@ -98,4 +162,4 @@ class BootstrapSource {
|
|
|
98
162
|
}
|
|
99
163
|
}
|
|
100
164
|
exports.BootstrapSource = BootstrapSource;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBd0Q7QUFFeEQsOERBQThEO0FBRzlELDZEQUFzRDtBQUN0RCxtREFBMkQ7QUFFM0Q7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQXFCSztJQXBCckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFzQjtRQUNwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUF3QjtRQUNyRCxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFO1lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsMkJBQVUsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDakQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDRCQUFrQixFQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxNQUFNLGVBQWUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQVUsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBcUMsV0FBc0Y7UUFBdEYsZ0JBQVcsR0FBWCxXQUFXLENBQTJFO0lBRTNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFlO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFwQ0Qsc0RBb0NDO0FBK0lEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksd0JBQXdCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkI7UUFDL0MsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQTJCO1FBQ3BELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ2EsVUFBVSxDQUF1QjtJQUNqQyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE0QixFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDNUUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWhDRCw0REFnQ0M7QUFFRDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQW9CO1FBQ3hDLE9BQU87WUFDTCxNQUFNLEVBQUUsUUFBUTtZQUNoQixZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudHNGcm9tRGVzY3JpcHRvcnMgfSBmcm9tICcuL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBBTExfU1RBQ0tTIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJSW9Ib3N0IH0gZnJvbSAnLi4vLi4vYXBpL2lvJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IGFzSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlciB2YWx1ZXMgZm9yIHRoZSBib290c3RyYXBwaW5nIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0byBiZSBnaXZlbiB0byB0aGUgQ0RLIEJvb3RzdHJhcCBidWNrZXRcbiAgICogQnkgZGVmYXVsdCwgYSBuYW1lIGlzIGdlbmVyYXRlZCBieSBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIEtNUyBrZXkgdG8gYmUgdXNlZCBmb3IgZW5jcnlwdGluZyBpdGVtcyBpbiB0aGUgYnVja2V0XG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBkZWZhdWx0IEtNUyBrZXkgaXMgdXNlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSBhIG5ldyBjdXN0b21lciBtYXN0ZXIga2V5IChDTUspXG4gICAqXG4gICAqIE9ubHkgYXBwbGllcyB0byBtb2Rlcm4gYm9vdHN0cmFwcGluZ1xuICAgKiBMZWdhY3kgYm9vdHN0cmFwcGluZyB3aWxsIG5ldmVyIGNyZWF0ZSBhIENNSywgb25seSB1c2UgdGhlIGRlZmF1bHQgUzMga2V5XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDdXN0b21lck1hc3RlcktleT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGRlcGxveSBpbnRvIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBhcmUgdHJ1c3RlZCB0byBsb29rIHVwIHZhbHVlcyBpbiB0aGUgZW52aXJvbm1lbnQgYmVpbmcgYm9vdHN0cmFwcGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0cnVzdGVkQWNjb3VudHNGb3JMb29rdXA/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgc2hvdWxkIG5vdCBiZSB0cnVzdGVkIGJ5IHRoZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRcbiAgICogSWYgdGhlc2UgYWNjb3VudHMgYXJlIGFscmVhZHkgdHJ1c3RlZCwgdGhleSB3aWxsIGJlIHJlbW92ZWQgb24gYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdW50cnVzdGVkQWNjb3VudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIEFSTnMgb2YgdGhlIElBTSBtYW5hZ2VkIHBvbGljaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSByb2xlIHBlcmZvcm1pbmcgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICogSW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIGJlIHRoZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljeVxuICAgKiBBdCBsZWFzdCBvbmUgcG9saWN5IGlzIHJlcXVpcmVkIGlmIGB0cnVzdGVkQWNjb3VudHNgIHdlcmUgcGFzc2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgdG8gZGlzdGluZ3Vpc2ggbXVsdGlwbGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50c1xuICAgKiBUaGUgZGVmYXVsdCBxdWFsaWZpZXIgaXMgYW4gYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gJ2huYjY1OWZkcydcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ25vLW9wJztcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0W107XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZSB3aXRoIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiBCb290c3RyYXBQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBhcyBhIE1hcCBmb3IgZWFzeSBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBQYXJhbWV0ZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtcz86IEJvb3RzdHJhcFBhcmFtZXRlcnMsIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1zO1xuICB9XG59XG5cbi8qKlxuICogU291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGJvb3RzdHJhcCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTb3VyY2Uge1xuICAvKipcbiAgICogVXNlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGRlZmF1bHQoKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7IHNvdXJjZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlRmlsZTogc3RyaW5nKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdjdXN0b20nLFxuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsdUNBQXdEO0FBRXhELDhEQUE4RDtBQUc5RCw2REFBc0Q7QUFDdEQsbURBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxxQkFBcUI7SUFxQks7SUFwQnJDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBc0I7UUFDcEMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUEscUNBQTJCLEVBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsdUJBQXVCLENBQUMsRUFBd0I7UUFDckQsT0FBTyxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxNQUFlLEVBQUUsRUFBRTs7O2dCQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJCQUFVLEVBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNqRCxNQUFZLFFBQVEsa0NBQUcsTUFBTSxJQUFBLDRCQUFrQixFQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBQSxDQUFDO2dCQUM5RCxNQUFNLGVBQWUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQVUsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzs7Ozs7Ozs7OztTQUN2RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBcUMsV0FBc0Y7UUFBdEYsZ0JBQVcsR0FBWCxXQUFXLENBQTJFO0lBRTNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFlO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFwQ0Qsc0RBb0NDO0FBK0lEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksd0JBQXdCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkI7UUFDL0MsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQTJCO1FBQ3BELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ2EsVUFBVSxDQUF1QjtJQUNqQyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE0QixFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDNUUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWhDRCw0REFnQ0M7QUFFRDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQW9CO1FBQ3hDLE9BQU87WUFDTCxNQUFNLEVBQUUsUUFBUTtZQUNoQixZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudHNGcm9tRGVzY3JpcHRvcnMgfSBmcm9tICcuL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBBTExfU1RBQ0tTIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJSW9Ib3N0IH0gZnJvbSAnLi4vLi4vYXBpL2lvJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IGFzSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlciB2YWx1ZXMgZm9yIHRoZSBib290c3RyYXBwaW5nIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0byBiZSBnaXZlbiB0byB0aGUgQ0RLIEJvb3RzdHJhcCBidWNrZXRcbiAgICogQnkgZGVmYXVsdCwgYSBuYW1lIGlzIGdlbmVyYXRlZCBieSBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIEtNUyBrZXkgdG8gYmUgdXNlZCBmb3IgZW5jcnlwdGluZyBpdGVtcyBpbiB0aGUgYnVja2V0XG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBkZWZhdWx0IEtNUyBrZXkgaXMgdXNlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSBhIG5ldyBjdXN0b21lciBtYXN0ZXIga2V5IChDTUspXG4gICAqXG4gICAqIE9ubHkgYXBwbGllcyB0byBtb2Rlcm4gYm9vdHN0cmFwcGluZ1xuICAgKiBMZWdhY3kgYm9vdHN0cmFwcGluZyB3aWxsIG5ldmVyIGNyZWF0ZSBhIENNSywgb25seSB1c2UgdGhlIGRlZmF1bHQgUzMga2V5XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDdXN0b21lck1hc3RlcktleT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGRlcGxveSBpbnRvIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBhcmUgdHJ1c3RlZCB0byBsb29rIHVwIHZhbHVlcyBpbiB0aGUgZW52aXJvbm1lbnQgYmVpbmcgYm9vdHN0cmFwcGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0cnVzdGVkQWNjb3VudHNGb3JMb29rdXA/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgc2hvdWxkIG5vdCBiZSB0cnVzdGVkIGJ5IHRoZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRcbiAgICogSWYgdGhlc2UgYWNjb3VudHMgYXJlIGFscmVhZHkgdHJ1c3RlZCwgdGhleSB3aWxsIGJlIHJlbW92ZWQgb24gYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdW50cnVzdGVkQWNjb3VudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIEFSTnMgb2YgdGhlIElBTSBtYW5hZ2VkIHBvbGljaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSByb2xlIHBlcmZvcm1pbmcgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICogSW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIGJlIHRoZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljeVxuICAgKiBBdCBsZWFzdCBvbmUgcG9saWN5IGlzIHJlcXVpcmVkIGlmIGB0cnVzdGVkQWNjb3VudHNgIHdlcmUgcGFzc2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgdG8gZGlzdGluZ3Vpc2ggbXVsdGlwbGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50c1xuICAgKiBUaGUgZGVmYXVsdCBxdWFsaWZpZXIgaXMgYW4gYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gJ2huYjY1OWZkcydcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ25vLW9wJztcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0W107XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZSB3aXRoIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiBCb290c3RyYXBQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBhcyBhIE1hcCBmb3IgZWFzeSBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBQYXJhbWV0ZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtcz86IEJvb3RzdHJhcFBhcmFtZXRlcnMsIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1zO1xuICB9XG59XG5cbi8qKlxuICogU291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGJvb3RzdHJhcCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTb3VyY2Uge1xuICAvKipcbiAgICogVXNlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGRlZmF1bHQoKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7IHNvdXJjZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlRmlsZTogc3RyaW5nKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdjdXN0b20nLFxuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -9,6 +9,14 @@ export interface CloudFormationDiffOptions {
|
|
|
9
9
|
readonly compareAgainstProcessedTemplate?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export interface ChangeSetDiffOptions extends CloudFormationDiffOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Enable falling back to template-based diff in case creating the changeset is not possible or results in an error.
|
|
14
|
+
*
|
|
15
|
+
* Should be used for stacks containing nested stacks or when change set permissions aren't available.
|
|
16
|
+
*
|
|
17
|
+
* @default true
|
|
18
|
+
*/
|
|
19
|
+
readonly fallbackToTemplate?: boolean;
|
|
12
20
|
/**
|
|
13
21
|
* Additional parameters for CloudFormation when creating a diff change set
|
|
14
22
|
*
|
|
@@ -45,4 +45,4 @@ class DiffMethod {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
exports.DiffMethod = DiffMethod;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQ0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vbGliL2FwaS9zaGFyZWQtcHVibGljJztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbEZpbGVEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBsb2NhbCBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGlmZk1ldGhvZCB7XG4gIC8qKlxuICAgKiBVc2UgYSBjaGFuZ2VzZXQgdG8gY29tcHV0ZSB0aGUgZGlmZi5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNyZWF0ZSwgYW5hbHl6ZSwgYW5kIHN1YnNlcXVlbnRseSBkZWxldGUgYSBjaGFuZ2VzZXQgYWdhaW5zdCB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIENoYW5nZVNldChvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zO1xuICAgICAgcHVibGljIGNvbnN0cnVjdG9yKG9wdHM6IENoYW5nZVNldERpZmZPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKCdjaGFuZ2Utc2V0Jywgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gICAgICB9XG4gICAgfShvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgVGVtcGxhdGVPbmx5KG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgPSB7fSk6IERpZmZNZXRob2Qge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBEaWZmTWV0aG9kIHtcbiAgICAgIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBvcHRpb25zOiBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zO1xuICAgICAgcHVibGljIGNvbnN0cnVjdG9yKG9wdHM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ3RlbXBsYXRlLW9ubHknLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBhIGxvY2FsIHRlbXBsYXRlIGZpbGUgdG8gY29tcHV0ZSB0aGUgZGlmZi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTG9jYWxGaWxlKHBhdGg6IHN0cmluZyk6IERpZmZNZXRob2Qge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBEaWZmTWV0aG9kIHtcbiAgICAgIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBvcHRpb25zOiB7IHBhdGg6IHN0cmluZyB9O1xuICAgICAgcHVibGljIGNvbnN0cnVjdG9yKG9wdHM6IExvY2FsRmlsZURpZmZPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKCdsb2NhbC1maWxlJywgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gICAgICB9XG4gICAgfSh7IHBhdGggfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6ICdjaGFuZ2Utc2V0JyB8ICd0ZW1wbGF0ZS1vbmx5JyB8ICdsb2NhbC1maWxlJyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnMgfCBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHwgTG9jYWxGaWxlRGlmZk9wdGlvbnMsXG4gICkge1xuICB9XG59XG5cbi8qKlxuICogT3B0aW5zIGZvciB0aGUgZGlmZiBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzOiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0aG9kIHRvIGNyZWF0ZSBhIHN0YWNrIGRpZmYuXG4gICAqXG4gICAqIFVzZSBjaGFuZ2VzZXQgZGlmZiBmb3IgdGhlIGhpZ2hlc3QgZmlkZWxpdHksIGluY2x1ZGluZyBhbmFseXplIHJlc291cmNlIHJlcGxhY2VtZW50cy5cbiAgICogSW4gdGhpcyBtZXRob2QsIGRpZmYgd2lsbCB1c2UgdGhlIGRlcGxveSByb2xlIGluc3RlYWQgb2YgdGhlIGxvb2t1cCByb2xlLlxuICAgKlxuICAgKiBVc2UgdGVtcGxhdGUtb25seSBkaWZmIGZvciBhIGZhc3RlciwgbGVzcyBhY2N1cmF0ZSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBhIGNoYW5nZS1zZXQuXG4gICAqXG4gICAqIFVzZSBsb2NhbC10ZW1wbGF0ZSBkaWZmIGZvciBhIGZhc3QsIGxvY2FsLW9ubHkgZGlmZiB0aGF0IGRvZXNuJ3QgcmVxdWlyZVxuICAgKiBhbnkgcGVybWlzc2lvbnMgb3IgaW50ZXJuZXQgYWNjZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEaWZmTWV0aG9kLkNoYW5nZVNldFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kPzogRGlmZk1ldGhvZDtcblxuICAvKipcbiAgICogU3RyaWN0IGRpZmYgbW9kZVxuICAgKiBXaGVuIGVuYWJsZWQsIHRoaXMgd2lsbCBub3QgZmlsdGVyIG91dCBBV1M6OkNESzo6TWV0YWRhdGEgcmVzb3VyY2VzLCBtYW5nbGVkIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBvciB0aGUgQ2hlY2tCb290c3RyYXBWZXJzaW9uUnVsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0cmljdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGxpbmVzIG9mIGNvbnRleHQgdG8gc2hvdyBpbiB0aGUgZGlmZlxuICAgKlxuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0TGluZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9ubHkgaW5jbHVkZSBicm9hZGVuZWQgc2VjdXJpdHkgY2hhbmdlcyBpbiB0aGUgZGlmZlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBpbXBsZW1lbnQgaW4gSW9Ib3N0XG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eU9ubHk/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -8,3 +8,19 @@ export declare function makeTemplateInfos(ioHelper: IoHelper, stacks: StackColle
|
|
|
8
8
|
* Return whether the diff has security-impacting changes that need confirmation.
|
|
9
9
|
*/
|
|
10
10
|
export declare function determinePermissionType(oldTemplate: any, newTemplate: cxapi.CloudFormationStackArtifact, changeSet?: DescribeChangeSetOutput): PermissionChangeType;
|
|
11
|
+
/**
|
|
12
|
+
* Appends all properties from obj2 to obj1.
|
|
13
|
+
* obj2 values take priority in the case of collisions.
|
|
14
|
+
*
|
|
15
|
+
* @param obj1 The object to modify
|
|
16
|
+
* @param obj2 The object to consume
|
|
17
|
+
*
|
|
18
|
+
* @returns obj1 with all properties from obj2
|
|
19
|
+
*/
|
|
20
|
+
export declare function appendObject<T>(obj1: {
|
|
21
|
+
[name: string]: T;
|
|
22
|
+
}, obj2: {
|
|
23
|
+
[name: string]: T;
|
|
24
|
+
}): {
|
|
25
|
+
[name: string]: T;
|
|
26
|
+
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeTemplateInfos = makeTemplateInfos;
|
|
4
4
|
exports.determinePermissionType = determinePermissionType;
|
|
5
|
+
exports.appendObject = appendObject;
|
|
5
6
|
const cloudformation_diff_1 = require("@aws-cdk/cloudformation-diff");
|
|
6
7
|
const fs = require("fs-extra");
|
|
7
8
|
const uuid = require("uuid");
|
|
@@ -37,7 +38,7 @@ async function localFileDiff(stacks, options) {
|
|
|
37
38
|
newTemplate: stacks.firstStack,
|
|
38
39
|
}];
|
|
39
40
|
}
|
|
40
|
-
async function cfnDiff(ioHelper, stacks, deployments, options, sdkProvider,
|
|
41
|
+
async function cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, includeChangeSet) {
|
|
41
42
|
const templateInfos = [];
|
|
42
43
|
const methodOptions = (options.method?.options ?? {});
|
|
43
44
|
// Compare N stacks against deployed templates
|
|
@@ -50,18 +51,18 @@ async function cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, chan
|
|
|
50
51
|
if (resourcesToImport) {
|
|
51
52
|
(0, shared_private_1.removeNonImportResources)(stack);
|
|
52
53
|
}
|
|
54
|
+
const changeSet = includeChangeSet ? await changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, methodOptions.parameters, methodOptions.fallbackToTemplate) : undefined;
|
|
53
55
|
templateInfos.push({
|
|
54
56
|
oldTemplate: currentTemplate,
|
|
55
57
|
newTemplate: stack,
|
|
56
|
-
stackName: stack.stackName,
|
|
57
58
|
isImport: !!resourcesToImport,
|
|
58
59
|
nestedStacks,
|
|
59
|
-
changeSet
|
|
60
|
+
changeSet,
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
return templateInfos;
|
|
63
64
|
}
|
|
64
|
-
async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, parameters = {}) {
|
|
65
|
+
async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, parameters = {}, fallBackToTemplate = true) {
|
|
65
66
|
let stackExists = false;
|
|
66
67
|
try {
|
|
67
68
|
stackExists = await deployments.stackExists({
|
|
@@ -71,6 +72,9 @@ async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resource
|
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
catch (e) {
|
|
75
|
+
if (!fallBackToTemplate) {
|
|
76
|
+
throw new shared_public_1.ToolkitError(`describeStacks call failed with ${e} for ${stack.stackName}, set fallBackToTemplate to true or use DiffMethod.templateOnly to base the diff on template differences.`);
|
|
77
|
+
}
|
|
74
78
|
await ioHelper.notify(shared_private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`Checking if the stack ${stack.stackName} exists before creating the changeset has failed, will base the diff on template differences.\n`));
|
|
75
79
|
await ioHelper.notify(shared_private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg((0, util_1.formatErrorMessage)(e)));
|
|
76
80
|
stackExists = false;
|
|
@@ -84,10 +88,14 @@ async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resource
|
|
|
84
88
|
sdkProvider,
|
|
85
89
|
parameters: parameters,
|
|
86
90
|
resourcesToImport,
|
|
91
|
+
failOnError: !fallBackToTemplate,
|
|
87
92
|
});
|
|
88
93
|
}
|
|
89
94
|
else {
|
|
90
|
-
|
|
95
|
+
if (!fallBackToTemplate) {
|
|
96
|
+
throw new shared_public_1.ToolkitError(`the stack '${stack.stackName}' has not been deployed to CloudFormation, set fallBackToTemplate to true or use DiffMethod.templateOnly to base the diff on template differences.`);
|
|
97
|
+
}
|
|
98
|
+
await ioHelper.notify(shared_private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`the stack '${stack.stackName}' has not been deployed to CloudFormation, skipping changeset creation.`));
|
|
91
99
|
return;
|
|
92
100
|
}
|
|
93
101
|
}
|
|
@@ -107,4 +115,21 @@ function determinePermissionType(oldTemplate, newTemplate, changeSet) {
|
|
|
107
115
|
return shared_public_1.PermissionChangeType.NONE;
|
|
108
116
|
}
|
|
109
117
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSw4Q0FpQkM7QUF3R0QsMERBZUM7QUFuSkQsc0VBQXdEO0FBRXhELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBRWhDLGdFQUFxRztBQUNyRyw4REFBZ0Y7QUFDaEYsZ0RBQWlGO0FBRWpGLFNBQWdCLGlCQUFpQixDQUMvQixRQUFrQixFQUNsQixNQUF1QixFQUN2QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixPQUFvQjtJQUVwQixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxLQUFLLFlBQVk7WUFDZixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RTtZQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLElBQUEseUJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsT0FBb0I7SUFDeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQXlCLENBQUM7SUFFOUUsOENBQThDO0lBQzlDLElBQUksTUFBTSxDQUFDLFVB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QUM7SUFDN0MsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLG9DQUFvQixDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB7IGZ1bGxEaWZmIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHR5cGUgeyBDaGFuZ2VTZXREaWZmT3B0aW9ucywgRGlmZk9wdGlvbnMsIExvY2FsRmlsZURpZmZPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgRGlmZk1ldGhvZCB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMsIFJlc291cmNlc1RvSW1wb3J0LCBJb0hlbHBlciwgU2RrUHJvdmlkZXIsIFN0YWNrQ29sbGVjdGlvbiwgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFJlc291cmNlTWlncmF0b3IsIElPLCByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMsIGNmbkFwaSB9IGZyb20gJy4uLy4uLy4uL2FwaS9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uQ2hhbmdlVHlwZSwgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHsgZGVzZXJpYWxpemVTdHJ1Y3R1cmUsIGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3ByaXZhdGUvdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlVGVtcGxhdGVJbmZvcyhcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja3M6IFN0YWNrQ29sbGVjdGlvbixcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBzd2l0Y2ggKG9wdGlvbnMubWV0aG9kPy5tZXRob2QgPz8gRGlmZk1ldGhvZC5DaGFuZ2VTZXQoKS5tZXRob2QpIHtcbiAgICBjYXNlICdsb2NhbC1maWxlJzpcbiAgICAgIHJldHVybiBsb2NhbEZpbGVEaWZmKHN0YWNrcywgb3B0aW9ucyk7XG4gICAgY2FzZSAndGVtcGxhdGUtb25seSc6XG4gICAgICByZXR1cm4gY2ZuRGlmZihpb0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgb3B0aW9ucywgc2RrUHJvdmlkZXIsIGZhbHNlKTtcbiAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgdHJ1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKGBVbmtub3duIGRpZmYgbWV0aG9kICR7b3B0aW9ucy5tZXRob2R9YCkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvY2FsRmlsZURpZmYoc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sIG9wdGlvbnM6IERpZmZPcHRpb25zKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBMb2NhbEZpbGVEaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIHNpbmdsZSBzdGFjayBhZ2FpbnN0IGZpeGVkIHRlbXBsYXRlXG4gIGlmIChzdGFja3Muc3RhY2tDb3VudCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQ2FuIG9ubHkgc2VsZWN0IG9uZSBzdGFjayB3aGVuIGNvbXBhcmluZyB0byBmaXhlZCB0ZW1wbGF0ZS4gVXNlIC0tZXhjbHVzaXZlbHkgdG8gYXZvaWQgc2VsZWN0aW5nIG11bHRpcGxlIHN0YWNrcy4nLFxuICAgICk7XG4gIH1cblxuICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKG1ldGhvZE9wdGlvbnMucGF0aCkpKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgVGhlcmUgaXMgbm8gZmlsZSBhdCAke21ldGhvZE9wdGlvbnMucGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMobWV0aG9kT3B0aW9ucy5wYXRoKS50b1N0cmluZygpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKGZpbGUpO1xuXG4gIHJldHVybiBbe1xuICAgIG9sZFRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICBuZXdUZW1wbGF0ZTogc3RhY2tzLmZpcnN0U3RhY2ssXG4gIH1dO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjZm5EaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIE4gc3RhY2tzIGFnYWluc3QgZGVwbG95ZWQgdGVtcGxhdGVzXG4gIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgY29uc3QgdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzID0gYXdhaXQgZGVwbG95bWVudHMucmVhZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gICAgICBzdGFjayxcbiAgICAgIG1ldGhvZE9wdGlvbnMuY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZSxcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZSA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5kZXBsb3llZFJvb3RUZW1wbGF0ZTtcbiAgICBjb25zdCBuZXN0ZWRTdGFja3MgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MubmVzdGVkU3RhY2tzO1xuXG4gICAgY29uc3QgbWlncmF0b3IgPSBuZXcgUmVzb3VyY2VNaWdyYXRvcih7IGRlcGxveW1lbnRzLCBpb0hlbHBlciB9KTtcbiAgICBjb25zdCByZXNvdXJjZXNUb0ltcG9ydCA9IGF3YWl0IG1pZ3JhdG9yLnRyeUdldFJlc291cmNlcyhhd2FpdCBkZXBsb3ltZW50cy5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2spKTtcbiAgICBpZiAocmVzb3VyY2VzVG9JbXBvcnQpIHtcbiAgICAgIHJlbW92ZU5vbkltcG9ydFJlc291cmNlcyhzdGFjayk7XG4gICAgfVxuXG4gICAgdGVtcGxhdGVJbmZvcy5wdXNoKHtcbiAgICAgIG9sZFRlbXBsYXRlOiBjdXJyZW50VGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogc3RhY2ssXG4gICAgICBzdGFja05hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0OiBjaGFuZ2VTZXQgPyBhd2FpdCBjaGFuZ2VTZXREaWZmKGlvSGVscGVyLCBkZXBsb3ltZW50cywgc3RhY2ssIHNka1Byb3ZpZGVyLCByZXNvdXJjZXNUb0ltcG9ydCwgbWV0aG9kT3B0aW9ucy5wYXJhbWV0ZXJzKSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZUluZm9zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGFuZ2VTZXREaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0LFxuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHt9LFxuKTogUHJvbWlzZTxhbnkgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IHN0YWNrRXhpc3RzID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgc3RhY2tFeGlzdHMgPSBhd2FpdCBkZXBsb3ltZW50cy5zdGFja0V4aXN0cyh7XG4gICAgICBzdGFjayxcbiAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIHRyeUxvb2t1cFJvbGU6IHRydWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGBDaGVja2luZyBpZiB0aGUgc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGV4aXN0cyBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCBoYXMgZmFpbGVkLCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuXFxuYCkpO1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGZvcm1hdEVycm9yTWVzc2FnZShlKSkpO1xuICAgIHN0YWNrRXhpc3RzID0gZmFsc2U7XG4gIH1cblxuICBpZiAoc3RhY2tFeGlzdHMpIHtcbiAgICByZXR1cm4gY2ZuQXBpLmNyZWF0ZURpZmZDaGFuZ2VTZXQoaW9IZWxwZXIsIHtcbiAgICAgIHN0YWNrLFxuICAgICAgdXVpZDogdXVpZC52NCgpLFxuICAgICAgZGVwbG95bWVudHMsXG4gICAgICB3aWxsRXhlY3V0ZTogZmFsc2UsXG4gICAgICBzZGtQcm92aWRlcixcbiAgICAgIHBhcmFtZXRlcnM6IHBhcmFtZXRlcnMsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZyhgdGhlIHN0YWNrICcke3N0YWNrLnN0YWNrTmFtZX0nIGhhcyBub3QgYmVlbiBkZXBsb3llZCB0byBDbG91ZEZvcm1hdGlvbiBvciBkZXNjcmliZVN0YWNrcyBjYWxsIGZhaWxlZCwgc2tpcHBpbmcgY2hhbmdlc2V0IGNyZWF0aW9uLmApKTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZGlmZiBoYXMgc2VjdXJpdHktaW1wYWN0aW5nIGNoYW5nZXMgdGhhdCBuZWVkIGNvbmZpcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVybWluZVBlcm1pc3Npb25UeXBlKFxuICBvbGRUZW1wbGF0ZTogYW55LFxuICBuZXdUZW1wbGF0ZTogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBjaGFuZ2VTZXQ/OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dCxcbik6IFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgLy8gQHRvZG8gcmV0dXJuIGEgcHJpbnRhYmxlIHZlcnNpb24gb2YgdGhlIGZ1bGwgZGlmZi5cbiAgY29uc3QgZGlmZiA9IGZ1bGxEaWZmKG9sZFRlbXBsYXRlLCBuZXdUZW1wbGF0ZS50ZW1wbGF0ZSwgY2hhbmdlU2V0KTtcblxuICBpZiAoZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZCkge1xuICAgIHJldHVybiBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5CUk9BREVOSU5HO1xuICB9IGVsc2UgaWYgKGRpZmYucGVybWlzc2lvbnNBbnlDaGFuZ2VzKSB7XG4gICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTl9CUk9BREVOSU5HO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5OT05FO1xuICB9XG59XG4iXX0=
|
|
118
|
+
/**
|
|
119
|
+
* Appends all properties from obj2 to obj1.
|
|
120
|
+
* obj2 values take priority in the case of collisions.
|
|
121
|
+
*
|
|
122
|
+
* @param obj1 The object to modify
|
|
123
|
+
* @param obj2 The object to consume
|
|
124
|
+
*
|
|
125
|
+
* @returns obj1 with all properties from obj2
|
|
126
|
+
*/
|
|
127
|
+
function appendObject(obj1, obj2) {
|
|
128
|
+
// Directly modify obj1 by adding all properties from obj2
|
|
129
|
+
for (const key in obj2) {
|
|
130
|
+
obj1[key] = obj2[key];
|
|
131
|
+
}
|
|
132
|
+
// Return the modified obj1
|
|
133
|
+
return obj1;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSw4Q0FpQkM7QUEySEQsMERBZUM7QUFXRCxvQ0FXQztBQTVMRCxzRUFBd0Q7QUFFeEQsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QiwwQkFBZ0M7QUFFaEMsZ0VBQXFHO0FBQ3JHLDhEQUFnRjtBQUNoRixnREFBaUY7QUFFakYsU0FBZ0IsaUJBQWlCLENBQy9CLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLE9BQW9CO0lBRXBCLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksY0FBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hFLEtBQUssWUFBWTtZQUNmLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QyxLQUFLLGVBQWU7WUFDbEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFO1lBQ0UsTUFBTSxJQUFJLDRCQUFZLENBQUMsSUFBQSx5QkFBa0IsRUFBQyx1QkFBdUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBdUIsRUFBRSxPQUFvQjtJQUN4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBeUIsQ0FBQztJQUU5RSw4Q0FBOEM7SUFDOUMsSUFBSSxN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RztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxXQUFnQixFQUNoQixXQUE4QyxFQUM5QyxTQUFtQztJQUVuQyxxREFBcUQ7SUFDckQsTUFBTSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXBFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsT0FBTyxvQ0FBb0IsQ0FBQyxVQUFVLENBQUM7SUFDekMsQ0FBQztTQUFNLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDdEMsT0FBTyxvQ0FBb0IsQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLG9DQUFvQixDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixJQUEyQixFQUMzQixJQUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldE91dHB1dCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHsgZnVsbERpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgdHlwZSB7IENoYW5nZVNldERpZmZPcHRpb25zLCBEaWZmT3B0aW9ucywgTG9jYWxGaWxlRGlmZk9wdGlvbnMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBEaWZmTWV0aG9kIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cywgUmVzb3VyY2VzVG9JbXBvcnQsIElvSGVscGVyLCBTZGtQcm92aWRlciwgU3RhY2tDb2xsZWN0aW9uLCBUZW1wbGF0ZUluZm8gfSBmcm9tICcuLi8uLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgUmVzb3VyY2VNaWdyYXRvciwgSU8sIHJlbW92ZU5vbkltcG9ydFJlc291cmNlcywgY2ZuQXBpIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlLCBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vcHJpdmF0ZS91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VUZW1wbGF0ZUluZm9zKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIE4gc3RhY2tzIGFnYWluc3QgZGVwbG95ZWQgdGVtcGxhdGVzXG4gIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgY29uc3QgdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzID0gYXdhaXQgZGVwbG95bWVudHMucmVhZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gICAgICBzdGFjayxcbiAgICAgIG1ldGhvZE9wdGlvbnMuY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZSxcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZSA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5kZXBsb3llZFJvb3RUZW1wbGF0ZTtcbiAgICBjb25zdCBuZXN0ZWRTdGFja3MgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MubmVzdGVkU3RhY2tzO1xuXG4gICAgY29uc3QgbWlncmF0b3IgPSBuZXcgUmVzb3VyY2VNaWdyYXRvcih7IGRlcGxveW1lbnRzLCBpb0hlbHBlciB9KTtcbiAgICBjb25zdCByZXNvdXJjZXNUb0ltcG9ydCA9IGF3YWl0IG1pZ3JhdG9yLnRyeUdldFJlc291cmNlcyhhd2FpdCBkZXBsb3ltZW50cy5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2spKTtcbiAgICBpZiAocmVzb3VyY2VzVG9JbXBvcnQpIHtcbiAgICAgIHJlbW92ZU5vbkltcG9ydFJlc291cmNlcyhzdGFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlU2V0ID0gaW5jbHVkZUNoYW5nZVNldCA/IGF3YWl0IGNoYW5nZVNldERpZmYoXG4gICAgICBpb0hlbHBlcixcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgc3RhY2ssXG4gICAgICBzZGtQcm92aWRlcixcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbWV0aG9kT3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgbWV0aG9kT3B0aW9ucy5mYWxsYmFja1RvVGVtcGxhdGUsXG4gICAgKSA6IHVuZGVmaW5lZDtcblxuICAgIHRlbXBsYXRlSW5mb3MucHVzaCh7XG4gICAgICBvbGRUZW1wbGF0ZTogY3VycmVudFRlbXBsYXRlLFxuICAgICAgbmV3VGVtcGxhdGU6IHN0YWNrLFxuICAgICAgaXNJbXBvcnQ6ICEhcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBuZXN0ZWRTdGFja3MsXG4gICAgICBjaGFuZ2VTZXQsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVtcGxhdGVJbmZvcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hhbmdlU2V0RGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgcmVzb3VyY2VzVG9JbXBvcnQ/OiBSZXNvdXJjZXNUb0ltcG9ydCxcbiAgcGFyYW1ldGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gPSB7fSxcbiAgZmFsbEJhY2tUb1RlbXBsYXRlOiBib29sZWFuID0gdHJ1ZSxcbik6IFByb21pc2U8YW55IHwgdW5kZWZpbmVkPiB7XG4gIGxldCBzdGFja0V4aXN0cyA9IGZhbHNlO1xuICB0cnkge1xuICAgIHN0YWNrRXhpc3RzID0gYXdhaXQgZGVwbG95bWVudHMuc3RhY2tFeGlzdHMoe1xuICAgICAgc3RhY2ssXG4gICAgICBkZXBsb3lOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICB0cnlMb29rdXBSb2xlOiB0cnVlLFxuICAgIH0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoIWZhbGxCYWNrVG9UZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgZGVzY3JpYmVTdGFja3MgY2FsbCBmYWlsZWQgd2l0aCAke2V9IGZvciAke3N0YWNrLnN0YWNrTmFtZX0sIHNldCBmYWxsQmFja1RvVGVtcGxhdGUgdG8gdHJ1ZSBvciB1c2UgRGlmZk1ldGhvZC50ZW1wbGF0ZU9ubHkgdG8gYmFzZSB0aGUgZGlmZiBvbiB0ZW1wbGF0ZSBkaWZmZXJlbmNlcy5gKTtcbiAgICB9XG5cbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZyhgQ2hlY2tpbmcgaWYgdGhlIHN0YWNrICR7c3RhY2suc3RhY2tOYW1lfSBleGlzdHMgYmVmb3JlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaGFzIGZhaWxlZCwgd2lsbCBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLlxcbmApKTtcbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZyhmb3JtYXRFcnJvck1lc3NhZ2UoZSkpKTtcbiAgICBzdGFja0V4aXN0cyA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHN0YWNrRXhpc3RzKSB7XG4gICAgcmV0dXJuIGNmbkFwaS5jcmVhdGVEaWZmQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgICBzdGFjayxcbiAgICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgd2lsbEV4ZWN1dGU6IGZhbHNlLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIWZhbGxCYWNrVG9UZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgdGhlIHN0YWNrICcke3N0YWNrLnN0YWNrTmFtZX0nIGhhcyBub3QgYmVlbiBkZXBsb3llZCB0byBDbG91ZEZvcm1hdGlvbiwgc2V0IGZhbGxCYWNrVG9UZW1wbGF0ZSB0byB0cnVlIG9yIHVzZSBEaWZmTWV0aG9kLnRlbXBsYXRlT25seSB0byBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGB0aGUgc3RhY2sgJyR7c3RhY2suc3RhY2tOYW1lfScgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHRvIENsb3VkRm9ybWF0aW9uLCBza2lwcGluZyBjaGFuZ2VzZXQgY3JlYXRpb24uYCkpO1xuICAgIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBkaWZmIGhhcyBzZWN1cml0eS1pbXBhY3RpbmcgY2hhbmdlcyB0aGF0IG5lZWQgY29uZmlybWF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZXJtaW5lUGVybWlzc2lvblR5cGUoXG4gIG9sZFRlbXBsYXRlOiBhbnksXG4gIG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGNoYW5nZVNldD86IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0LFxuKTogUGVybWlzc2lvbkNoYW5nZVR5cGUge1xuICAvLyBAdG9kbyByZXR1cm4gYSBwcmludGFibGUgdmVyc2lvbiBvZiB0aGUgZnVsbCBkaWZmLlxuICBjb25zdCBkaWZmID0gZnVsbERpZmYob2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLnRlbXBsYXRlLCBjaGFuZ2VTZXQpO1xuXG4gIGlmIChkaWZmLnBlcm1pc3Npb25zQnJvYWRlbmVkKSB7XG4gICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLkJST0FERU5JTkc7XG4gIH0gZWxzZSBpZiAoZGlmZi5wZXJtaXNzaW9uc0FueUNoYW5nZXMpIHtcbiAgICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9OX0JST0FERU5JTkc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkU7XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIFRoZSBvYmplY3QgdG8gbW9kaWZ5XG4gKiBAcGFyYW0gb2JqMiBUaGUgb2JqZWN0IHRvIGNvbnN1bWVcbiAqXG4gKiBAcmV0dXJucyBvYmoxIHdpdGggYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRPYmplY3Q8VD4oXG4gIG9iajE6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbiAgb2JqMjogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgLy8gRGlyZWN0bHkgbW9kaWZ5IG9iajEgYnkgYWRkaW5nIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XG4gICAgb2JqMVtrZXldID0gb2JqMltrZXldO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmoxXG4gIHJldHVybiBvYmoxO1xufVxuIl19
|
package/lib/actions/index.d.ts
CHANGED
package/lib/actions/index.js
CHANGED
|
@@ -19,7 +19,8 @@ __exportStar(require("./deploy"), exports);
|
|
|
19
19
|
__exportStar(require("./destroy"), exports);
|
|
20
20
|
__exportStar(require("./diff"), exports);
|
|
21
21
|
__exportStar(require("./list"), exports);
|
|
22
|
+
__exportStar(require("./refactor"), exports);
|
|
22
23
|
__exportStar(require("./rollback"), exports);
|
|
23
24
|
__exportStar(require("./synth"), exports);
|
|
24
25
|
__exportStar(require("./watch"), exports);
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIseUNBQXVCO0FBQ3ZCLHlDQUF1QjtBQUN2Qiw2Q0FBMkI7QUFDM0IsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4QiwwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcCc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuZXhwb3J0ICogZnJvbSAnLi9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zeW50aCc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGNoJztcbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StackSelector } from '../../api/cloud-assembly';
|
|
2
|
+
export interface RefactorOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Whether to only show the proposed refactor, without applying it
|
|
5
|
+
*
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
readonly dryRun?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Criteria for selecting stacks to deploy
|
|
11
|
+
*
|
|
12
|
+
* @default - all stacks
|
|
13
|
+
*/
|
|
14
|
+
stacks?: StackSelector;
|
|
15
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3Rvck9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBvbmx5IHNob3cgdGhlIHByb3Bvc2VkIHJlZmFjdG9yLCB3aXRob3V0IGFwcGx5aW5nIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import '../../private/dispose-polyfill';
|
|
2
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
3
|
+
import type { ICloudAssemblySource, IReadableCloudAssembly } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* A CloudAssemblySource that is caching its result once produced.
|
|
6
|
+
*
|
|
7
|
+
* Most Toolkit interactions should use a cached source. Not caching is
|
|
8
|
+
* relevant when the source changes frequently and it is to expensive to predict
|
|
9
|
+
* if the source has changed.
|
|
10
|
+
*
|
|
11
|
+
* The `CachedCloudAssembly` is both itself a readable CloudAssembly, as well as
|
|
12
|
+
* a Cloud Assembly Source. The lifetimes of cloud assemblies produced by this
|
|
13
|
+
* source are coupled to the lifetime of the `CachedCloudAssembly`. In other
|
|
14
|
+
* words: the `dispose()` functions of those cloud assemblies don't do anything;
|
|
15
|
+
* only the `dispose()` function of the `CachedCloudAssembly` will be used.
|
|
16
|
+
*
|
|
17
|
+
* NOTE: if we are concerned about borrowed assemblies outliving the parent
|
|
18
|
+
* (i.e. the parent getting disposed while someone is still working with the
|
|
19
|
+
* borrowed copies), we could consider referencing counting here. That seems
|
|
20
|
+
* unnecessarily complicated for now, we will just assume that everyone is
|
|
21
|
+
* being a good citizen an borrowed copies are only used by the toolkit and
|
|
22
|
+
* immediately disposed of.
|
|
23
|
+
*
|
|
24
|
+
* Because `dispose()` is a no-op on the borrowed assembly, you can omit it
|
|
25
|
+
* without changing behavior, but that would turn into a leak if we ever introduced
|
|
26
|
+
* reference counting. Failing to dispose the result if a `produce()` call of a
|
|
27
|
+
* `CachedCloudAssembly` is considered a bug.
|
|
28
|
+
*/
|
|
29
|
+
export declare class CachedCloudAssembly implements ICloudAssemblySource, IReadableCloudAssembly {
|
|
30
|
+
private asm;
|
|
31
|
+
constructor(asm: IReadableCloudAssembly);
|
|
32
|
+
get cloudAssembly(): cxapi.CloudAssembly;
|
|
33
|
+
produce(): Promise<IReadableCloudAssembly>;
|
|
34
|
+
_unlock(): Promise<void>;
|
|
35
|
+
dispose(): Promise<void>;
|
|
36
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachedCloudAssembly = void 0;
|
|
4
|
+
require("../../private/dispose-polyfill");
|
|
5
|
+
const borrowed_assembly_1 = require("./private/borrowed-assembly");
|
|
6
|
+
/**
|
|
7
|
+
* A CloudAssemblySource that is caching its result once produced.
|
|
8
|
+
*
|
|
9
|
+
* Most Toolkit interactions should use a cached source. Not caching is
|
|
10
|
+
* relevant when the source changes frequently and it is to expensive to predict
|
|
11
|
+
* if the source has changed.
|
|
12
|
+
*
|
|
13
|
+
* The `CachedCloudAssembly` is both itself a readable CloudAssembly, as well as
|
|
14
|
+
* a Cloud Assembly Source. The lifetimes of cloud assemblies produced by this
|
|
15
|
+
* source are coupled to the lifetime of the `CachedCloudAssembly`. In other
|
|
16
|
+
* words: the `dispose()` functions of those cloud assemblies don't do anything;
|
|
17
|
+
* only the `dispose()` function of the `CachedCloudAssembly` will be used.
|
|
18
|
+
*
|
|
19
|
+
* NOTE: if we are concerned about borrowed assemblies outliving the parent
|
|
20
|
+
* (i.e. the parent getting disposed while someone is still working with the
|
|
21
|
+
* borrowed copies), we could consider referencing counting here. That seems
|
|
22
|
+
* unnecessarily complicated for now, we will just assume that everyone is
|
|
23
|
+
* being a good citizen an borrowed copies are only used by the toolkit and
|
|
24
|
+
* immediately disposed of.
|
|
25
|
+
*
|
|
26
|
+
* Because `dispose()` is a no-op on the borrowed assembly, you can omit it
|
|
27
|
+
* without changing behavior, but that would turn into a leak if we ever introduced
|
|
28
|
+
* reference counting. Failing to dispose the result if a `produce()` call of a
|
|
29
|
+
* `CachedCloudAssembly` is considered a bug.
|
|
30
|
+
*/
|
|
31
|
+
class CachedCloudAssembly {
|
|
32
|
+
asm;
|
|
33
|
+
constructor(asm) {
|
|
34
|
+
this.asm = asm;
|
|
35
|
+
}
|
|
36
|
+
get cloudAssembly() {
|
|
37
|
+
return this.asm.cloudAssembly;
|
|
38
|
+
}
|
|
39
|
+
async produce() {
|
|
40
|
+
return new borrowed_assembly_1.BorrowedAssembly(this.asm.cloudAssembly);
|
|
41
|
+
}
|
|
42
|
+
_unlock() {
|
|
43
|
+
return this.asm._unlock();
|
|
44
|
+
}
|
|
45
|
+
dispose() {
|
|
46
|
+
return this.asm.dispose();
|
|
47
|
+
}
|
|
48
|
+
[Symbol.asyncDispose]() {
|
|
49
|
+
return this.dispose();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.CachedCloudAssembly = CachedCloudAssembly;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhY2hlZC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXdDO0FBRXhDLG1FQUErRDtBQUcvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDdEIsR0FBRyxDQUF5QjtJQUVwQyxZQUFtQixHQUEyQjtRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBMUJELGtEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IEJvcnJvd2VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvYm9ycm93ZWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IGlzIGNhY2hpbmcgaXRzIHJlc3VsdCBvbmNlIHByb2R1Y2VkLlxuICpcbiAqIE1vc3QgVG9vbGtpdCBpbnRlcmFjdGlvbnMgc2hvdWxkIHVzZSBhIGNhY2hlZCBzb3VyY2UuIE5vdCBjYWNoaW5nIGlzXG4gKiByZWxldmFudCB3aGVuIHRoZSBzb3VyY2UgY2hhbmdlcyBmcmVxdWVudGx5IGFuZCBpdCBpcyB0byBleHBlbnNpdmUgdG8gcHJlZGljdFxuICogaWYgdGhlIHNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBUaGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGlzIGJvdGggaXRzZWxmIGEgcmVhZGFibGUgQ2xvdWRBc3NlbWJseSwgYXMgd2VsbCBhc1xuICogYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UuIFRoZSBsaWZldGltZXMgb2YgY2xvdWQgYXNzZW1ibGllcyBwcm9kdWNlZCBieSB0aGlzXG4gKiBzb3VyY2UgYXJlIGNvdXBsZWQgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAuIEluIG90aGVyXG4gKiB3b3JkczogdGhlIGBkaXNwb3NlKClgIGZ1bmN0aW9ucyBvZiB0aG9zZSBjbG91ZCBhc3NlbWJsaWVzIGRvbid0IGRvIGFueXRoaW5nO1xuICogb25seSB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb24gb2YgdGhlIGBDYWNoZWRDbG91ZEFzc2VtYmx5YCB3aWxsIGJlIHVzZWQuXG4gKlxuICogTk9URTogaWYgd2UgYXJlIGNvbmNlcm5lZCBhYm91dCBib3Jyb3dlZCBhc3NlbWJsaWVzIG91dGxpdmluZyB0aGUgcGFyZW50XG4gKiAoaS5lLiB0aGUgcGFyZW50IGdldHRpbmcgZGlzcG9zZWQgd2hpbGUgc29tZW9uZSBpcyBzdGlsbCB3b3JraW5nIHdpdGggdGhlXG4gKiBib3Jyb3dlZCBjb3BpZXMpLCB3ZSBjb3VsZCBjb25zaWRlciByZWZlcmVuY2luZyBjb3VudGluZyBoZXJlLiBUaGF0IHNlZW1zXG4gKiB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIGZvciBub3csIHdlIHdpbGwganVzdCBhc3N1bWUgdGhhdCBldmVyeW9uZSBpc1xuICogYmVpbmcgYSBnb29kIGNpdGl6ZW4gYW4gYm9ycm93ZWQgY29waWVzIGFyZSBvbmx5IHVzZWQgYnkgdGhlIHRvb2xraXQgYW5kXG4gKiBpbW1lZGlhdGVseSBkaXNwb3NlZCBvZi5cbiAqXG4gKiBCZWNhdXNlIGBkaXNwb3NlKClgIGlzIGEgbm8tb3Agb24gdGhlIGJvcnJvd2VkIGFzc2VtYmx5LCB5b3UgY2FuIG9taXQgaXRcbiAqIHdpdGhvdXQgY2hhbmdpbmcgYmVoYXZpb3IsIGJ1dCB0aGF0IHdvdWxkIHR1cm4gaW50byBhIGxlYWsgaWYgd2UgZXZlciBpbnRyb2R1Y2VkXG4gKiByZWZlcmVuY2UgY291bnRpbmcuIEZhaWxpbmcgdG8gZGlzcG9zZSB0aGUgcmVzdWx0IGlmIGEgYHByb2R1Y2UoKWAgY2FsbCBvZiBhXG4gKiBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAgaXMgY29uc2lkZXJlZCBhIGJ1Zy5cbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlZENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIHByaXZhdGUgYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihhc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkpIHtcbiAgICB0aGlzLmFzbSA9IGFzbTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpOiBjeGFwaS5DbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5hc20uY2xvdWRBc3NlbWJseTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT4ge1xuICAgIHJldHVybiBuZXcgQm9ycm93ZWRBc3NlbWJseSh0aGlzLmFzbS5jbG91ZEFzc2VtYmx5KTtcbiAgfVxuXG4gIHB1YmxpYyBfdW5sb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmFzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.StackSelectionStrategy = void 0;
|
|
18
18
|
var shared_public_1 = require("../../api/shared-public");
|
|
19
19
|
Object.defineProperty(exports, "StackSelectionStrategy", { enumerable: true, get: function () { return shared_public_1.StackSelectionStrategy; } });
|
|
20
|
+
__exportStar(require("./cached-source"), exports);
|
|
20
21
|
__exportStar(require("./source-builder"), exports);
|
|
21
22
|
__exportStar(require("./types"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUFnRjtBQUF2RSx1SEFBQSxzQkFBc0IsT0FBQTtBQUMvQixrREFBZ0M7QUFDaEMsbURBQWlDO0FBQ2pDLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksIFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9hcGkvc2hhcmVkLXB1YmxpYyc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlZC1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3VyY2UtYnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcblxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import '../../../private/dispose-polyfill';
|
|
2
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
3
|
+
import type { IReadableCloudAssembly } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* An implementation of `IReadableCloudAssembly` that does nothing except hold on to the CloudAssembly object
|
|
6
|
+
*
|
|
7
|
+
* It does not own a lock, and it does not clean the underlying directory.
|
|
8
|
+
*/
|
|
9
|
+
export declare class BorrowedAssembly implements IReadableCloudAssembly {
|
|
10
|
+
readonly cloudAssembly: cxapi.CloudAssembly;
|
|
11
|
+
constructor(cloudAssembly: cxapi.CloudAssembly);
|
|
12
|
+
_unlock(): Promise<void>;
|
|
13
|
+
dispose(): Promise<void>;
|
|
14
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BorrowedAssembly = void 0;
|
|
4
|
+
require("../../../private/dispose-polyfill");
|
|
5
|
+
/**
|
|
6
|
+
* An implementation of `IReadableCloudAssembly` that does nothing except hold on to the CloudAssembly object
|
|
7
|
+
*
|
|
8
|
+
* It does not own a lock, and it does not clean the underlying directory.
|
|
9
|
+
*/
|
|
10
|
+
class BorrowedAssembly {
|
|
11
|
+
cloudAssembly;
|
|
12
|
+
constructor(cloudAssembly) {
|
|
13
|
+
this.cloudAssembly = cloudAssembly;
|
|
14
|
+
}
|
|
15
|
+
async _unlock() {
|
|
16
|
+
}
|
|
17
|
+
async dispose() {
|
|
18
|
+
}
|
|
19
|
+
async [Symbol.asyncDispose]() {
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.BorrowedAssembly = BorrowedAssembly;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93ZWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib3Jyb3dlZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFJM0M7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNUIsWUFBNEIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztJQUNwQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBWkQsNENBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uLy4uLy4uL3ByaXZhdGUvZGlzcG9zZS1wb2x5ZmlsbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgIHRoYXQgZG9lcyBub3RoaW5nIGV4Y2VwdCBob2xkIG9uIHRvIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICpcbiAqIEl0IGRvZXMgbm90IG93biBhIGxvY2ssIGFuZCBpdCBkb2VzIG5vdCBjbGVhbiB0aGUgdW5kZXJseWluZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dlZEFzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5KSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
1
|
import type { ToolkitServices } from '../../../toolkit/private';
|
|
3
2
|
import { type Context } from '../../shared-private';
|
|
4
|
-
import type { ICloudAssemblySource } from '../types';
|
|
3
|
+
import type { ICloudAssemblySource, IReadableCloudAssembly } from '../types';
|
|
5
4
|
export interface ContextAwareCloudAssemblyProps {
|
|
6
5
|
/**
|
|
7
6
|
* AWS object (used by contextprovider)
|
|
@@ -28,9 +27,23 @@ export interface ContextAwareCloudAssemblyProps {
|
|
|
28
27
|
readonly lookups?: boolean;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
|
-
*
|
|
30
|
+
* A CloudAssemblySource that wraps another CloudAssemblySource and runs a lookup loop on it
|
|
31
|
+
*
|
|
32
|
+
* This means that if the underlying CloudAssemblySource produces a manifest
|
|
33
|
+
* with provider queries in it, the `ContextAwareCloudAssemblySource` will
|
|
34
|
+
* perform the necessary context lookups and invoke the underlying
|
|
35
|
+
* `CloudAssemblySource` again with thew missing context information.
|
|
36
|
+
*
|
|
37
|
+
* This is only useful if the underlying `CloudAssemblySource` can respond to
|
|
38
|
+
* this new context information (it must be a CDK app source); if it is just a
|
|
39
|
+
* static directory, then the contents of the assembly won't change in response
|
|
40
|
+
* to context.
|
|
41
|
+
*
|
|
42
|
+
* The context is passed between `ContextAwareCloudAssemblySource` and the wrapped
|
|
43
|
+
* cloud assembly source via a contex file on disk, so the wrapped assembly source
|
|
44
|
+
* should re-read the context file on every invocation.
|
|
32
45
|
*/
|
|
33
|
-
export declare class
|
|
46
|
+
export declare class ContextAwareCloudAssemblySource implements ICloudAssemblySource {
|
|
34
47
|
private readonly source;
|
|
35
48
|
private readonly props;
|
|
36
49
|
private canLookup;
|
|
@@ -41,5 +54,5 @@ export declare class ContextAwareCloudAssembly implements ICloudAssemblySource {
|
|
|
41
54
|
/**
|
|
42
55
|
* Produce a Cloud Assembly, i.e. a set of stacks
|
|
43
56
|
*/
|
|
44
|
-
produce(): Promise<
|
|
57
|
+
produce(): Promise<IReadableCloudAssembly>;
|
|
45
58
|
}
|