aws-cdk 2.19.0 → 2.21.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/README.md +59 -11
- package/THIRD_PARTY_LICENSES +8 -28
- package/build-info.json +2 -2
- package/does-not-exist.json +1 -1
- package/lib/api/aws-auth/account-cache.d.ts +1 -1
- package/lib/api/aws-auth/account-cache.js +2 -2
- package/lib/api/bootstrap/bootstrap-template.yaml +3 -1
- package/lib/api/cloudformation-deployments.d.ts +12 -1
- package/lib/api/cloudformation-deployments.js +31 -8
- package/lib/api/deploy-stack.d.ts +24 -0
- package/lib/api/deploy-stack.js +46 -8
- package/lib/api/evaluate-cloudformation-template.js +3 -2
- package/lib/api/hotswap/common.js +2 -2
- package/lib/api/util/cloudformation/stack-activity-monitor.d.ts +5 -0
- package/lib/api/util/cloudformation/stack-activity-monitor.js +24 -7
- package/lib/api/util/cloudformation/stack-status.js +2 -2
- package/lib/api/util/cloudformation.d.ts +3 -0
- package/lib/api/util/cloudformation.js +1 -1
- package/lib/api/util/display.d.ts +3 -0
- package/lib/api/util/display.js +23 -15
- package/lib/cdk-toolkit.d.ts +44 -21
- package/lib/cdk-toolkit.js +68 -1
- package/lib/cli.js +47 -5
- package/lib/commands/doctor.js +2 -2
- package/lib/import.d.ts +151 -0
- package/lib/import.js +245 -0
- package/lib/index.js +10499 -6069
- package/lib/init-templates/v1/app/csharp/README.md +1 -1
- package/lib/init-templates/v1/app/fsharp/README.md +1 -1
- package/lib/init-templates/v1/app/go/README.md +1 -1
- package/lib/init-templates/v1/app/java/README.md +1 -1
- package/lib/init-templates/v1/app/javascript/README.md +1 -1
- package/lib/init-templates/v1/app/python/README.template.md +1 -1
- package/lib/init-templates/v1/app/typescript/README.md +1 -1
- package/lib/init-templates/v2/app/csharp/README.md +1 -1
- package/lib/init-templates/v2/app/fsharp/README.md +1 -1
- package/lib/init-templates/v2/app/go/README.md +1 -1
- package/lib/init-templates/v2/app/java/README.md +1 -1
- package/lib/init-templates/v2/app/javascript/README.md +1 -1
- package/lib/init-templates/v2/app/python/README.template.md +1 -1
- package/lib/init-templates/v2/app/typescript/README.md +1 -1
- package/lib/notices.d.ts +1 -0
- package/lib/notices.js +43 -21
- package/lib/settings.js +3 -2
- package/lib/util/asset-publishing.d.ts +7 -1
- package/lib/util/asset-publishing.js +13 -6
- package/lib/version.js +2 -2
- package/package.json +12 -12
- package/test/api/hotswap/state-machine-hotswap-deployments.test.js +75 -1
- package/test/api/util/display.test.d.ts +1 -0
- package/test/api/util/display.test.js +54 -0
- package/test/bockfs.js +2 -2
- package/test/cdk-toolkit.test.js +4 -2
- package/test/import.test.d.ts +1 -0
- package/test/import.test.js +189 -0
- package/test/integ/cli/app/app.js +25 -0
- package/test/integ/cli/app/docker/Dockerfile +1 -1
- package/test/integ/cli/app/docker/Dockerfile.Custom +1 -1
- package/test/integ/cli/cli.integtest.js +33 -1
- package/test/integ/cli-regression-patches/v1.64.0/cdk-helpers.js +1 -1
- package/test/integ/cli-regression-patches/v1.64.1/cdk-helpers.js +1 -1
- package/test/integ/cli-regression-patches/v1.67.0/cdk-helpers.js +1 -1
- package/test/integ/helpers/cdk.js +4 -5
- package/test/integ/helpers/test-helpers.js +1 -3
- package/test/notices.test.js +35 -21
- package/test/settings.test.js +10 -1
- package/test/util/mock-sdk.d.ts +2 -0
- package/test/util/mock-sdk.js +8 -2
|
@@ -8,16 +8,19 @@ const logging_1 = require("../logging");
|
|
|
8
8
|
/**
|
|
9
9
|
* Use cdk-assets to publish all assets in the given manifest.
|
|
10
10
|
*/
|
|
11
|
-
async function publishAssets(manifest, sdk, targetEnv) {
|
|
11
|
+
async function publishAssets(manifest, sdk, targetEnv, options = {}) {
|
|
12
|
+
var _a;
|
|
12
13
|
// This shouldn't really happen (it's a programming error), but we don't have
|
|
13
14
|
// the types here to guide us. Do an runtime validation to be super super sure.
|
|
14
|
-
if (targetEnv.account === undefined ||
|
|
15
|
-
|
|
15
|
+
if (targetEnv.account === undefined ||
|
|
16
|
+
targetEnv.account === cxapi.UNKNOWN_ACCOUNT ||
|
|
17
|
+
targetEnv.region === undefined ||
|
|
18
|
+
targetEnv.account === cxapi.UNKNOWN_REGION) {
|
|
16
19
|
throw new Error(`Asset publishing requires resolved account and region, got ${JSON.stringify(targetEnv)}`);
|
|
17
20
|
}
|
|
18
21
|
const publisher = new cdk_assets.AssetPublishing(manifest, {
|
|
19
22
|
aws: new PublishingAws(sdk, targetEnv),
|
|
20
|
-
progressListener: new PublishingProgressListener(),
|
|
23
|
+
progressListener: new PublishingProgressListener((_a = options.quiet) !== null && _a !== void 0 ? _a : false),
|
|
21
24
|
throwOnError: false,
|
|
22
25
|
publishInParallel: true,
|
|
23
26
|
});
|
|
@@ -105,8 +108,12 @@ const EVENT_TO_LOGGER = {
|
|
|
105
108
|
upload: logging_1.debug,
|
|
106
109
|
};
|
|
107
110
|
class PublishingProgressListener {
|
|
111
|
+
constructor(quiet) {
|
|
112
|
+
this.quiet = quiet;
|
|
113
|
+
}
|
|
108
114
|
onPublishEvent(type, event) {
|
|
109
|
-
|
|
115
|
+
const handler = this.quiet && type !== 'fail' ? logging_1.debug : EVENT_TO_LOGGER[type];
|
|
116
|
+
handler(`[${event.percentComplete}%] ${type}: ${event.message}`);
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LXB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBRXpDLHlDQUF5QztBQUN6Qyw2REFBbUQ7QUFHbkQsd0NBQWlEO0FBRWpEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxRQUFrQyxFQUFFLEdBQWdCLEVBQUUsU0FBNEI7SUFDcEgsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLGVBQWU7V0FDN0UsU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsY0FBYyxFQUFFO1FBQ2pGLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzVHO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUN6RCxHQUFHLEVBQUUsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLDBCQUEwQixFQUFFO1FBQ2xELFlBQVksRUFBRSxLQUFLO1FBQ25CLGlCQUFpQixFQUFFLElBQUk7S0FDeEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztLQUM3RztBQUNILENBQUM7QUFsQkQsc0NBa0JDO0FBRUQsTUFBTSxhQUFhO0lBR2pCO0lBQ0U7O09BRUc7SUFDYyxHQUFnQjtJQUVqQzs7T0FFRztJQUNjLFNBQTRC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SztJQUNYLEtBQUssRUFBRSxlQUFLO0lBQ1osS0FBSyxFQUFFLGVBQUs7SUFDWixPQUFPLEVBQUUsZUFBSztJQUNkLE1BQU0sRUFBRSxlQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sMEJBQTBCO0lBQ3ZCLGNBQWMsQ0FBQyxJQUEwQixFQUFFLEtBQWtDO1FBQ2xGLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxlQUFlLE1BQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgKiBhcyBjZGtfYXNzZXRzIGZyb20gJ2Nkay1hc3NldHMnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBJU0RLIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkayc7XG5pbXBvcnQgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgZGVidWcsIGVycm9yLCBwcmludCB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuXG4vKipcbiAqIFVzZSBjZGstYXNzZXRzIHRvIHB1Ymxpc2ggYWxsIGFzc2V0cyBpbiB0aGUgZ2l2ZW4gbWFuaWZlc3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoQXNzZXRzKG1hbmlmZXN0OiBjZGtfYXNzZXRzLkFzc2V0TWFuaWZlc3QsIHNkazogU2RrUHJvdmlkZXIsIHRhcmdldEVudjogY3hhcGkuRW52aXJvbm1lbnQpIHtcbiAgLy8gVGhpcyBzaG91bGRuJ3QgcmVhbGx5IGhhcHBlbiAoaXQncyBhIHByb2dyYW1taW5nIGVycm9yKSwgYnV0IHdlIGRvbid0IGhhdmVcbiAgLy8gdGhlIHR5cGVzIGhlcmUgdG8gZ3VpZGUgdXMuIERvIGFuIHJ1bnRpbWUgdmFsaWRhdGlvbiB0byBiZSBzdXBlciBzdXBlciBzdXJlLlxuICBpZiAodGFyZ2V0RW52LmFjY291bnQgPT09IHVuZGVmaW5lZCB8fCB0YXJnZXRFbnYuYWNjb3VudCA9PT0gY3hhcGkuVU5LTk9XTl9BQ0NPVU5UXG4gICAgfHwgdGFyZ2V0RW52LnJlZ2lvbiA9PT0gdW5kZWZpbmVkIHx8IHRhcmdldEVudi5hY2NvdW50ID09PSBjeGFwaS5VTktOT1dOX1JFR0lPTikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgcHVibGlzaGluZyByZXF1aXJlcyByZXNvbHZlZCBhY2NvdW50IGFuZCByZWdpb24sIGdvdCAke0pTT04uc3RyaW5naWZ5KHRhcmdldEVudil9YCk7XG4gIH1cblxuICBjb25zdCBwdWJsaXNoZXIgPSBuZXcgY2RrX2Fzc2V0cy5Bc3NldFB1Ymxpc2hpbmcobWFuaWZlc3QsIHtcbiAgICBhd3M6IG5ldyBQdWJsaXNoaW5nQXdzKHNkaywgdGFyZ2V0RW52KSxcbiAgICBwcm9ncmVzc0xpc3RlbmVyOiBuZXcgUHVibGlzaGluZ1Byb2dyZXNzTGlzdGVuZXIoKSxcbiAgICB0aHJvd09uRXJyb3I6IGZhbHNlLFxuICAgIHB1Ymxpc2hJblBhcmFsbGVsOiB0cnVlLFxuICB9KTtcbiAgYXdhaXQgcHVibGlzaGVyLnB1Ymxpc2goKTtcbiAgaWYgKHB1Ymxpc2hlci5oYXNGYWlsdXJlcykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHB1Ymxpc2ggb25lIG9yIG1vcmUgYXNzZXRzLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2VzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICB9XG59XG5cbmNsYXNzIFB1Ymxpc2hpbmdBd3MgaW1wbGVtZW50cyBjZGtfYXNzZXRzLklBd3Mge1xuICBwcml2YXRlIHNka0NhY2hlOiBNYXA8U3RyaW5nLCBJU0RLPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBTREsgdG8gd29yayB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLFxuXG4gICAgLyoqXG4gICAgICogRW52aXJvbm1lbnQgd2hlcmUgdGhlIHN0YWNrIHdlJ3JlIGRlcGxveWluZyBpcyBnb2luZ1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0RW52OiBjeGFwaS5FbnZpcm9ubWVudCkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmF3cy5iYXNlQ3JlZGVudGlhbHNQYXJ0aXRpb24odGhpcy50YXJnZXRFbnYsIE1vZGUuRm9yV3JpdGluZykpID8/ICdhd3MnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRhcmdldEVudi5yZWdpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPGNka19hc3NldHMuQWNjb3VudD4ge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCB0aGlzLmF3cy5kZWZhdWx0QWNjb3VudCgpO1xuICAgIHJldHVybiBhY2NvdW50ID8/IHtcbiAgICAgIGFjY291bnRJZDogJzx1bmtub3duIGFjY291bnQ+JyxcbiAgICAgIHBhcnRpdGlvbjogJ2F3cycsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb3ZlclRhcmdldEFjY291bnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxjZGtfYXNzZXRzLkFjY291bnQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5jdXJyZW50QWNjb3VudCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHMzQ2xpZW50KG9wdGlvbnM6IGNka19hc3NldHMuQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8QVdTLlMzPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuczMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlY3JDbGllbnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxBV1MuRUNSPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuZWNyKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VjcmV0c01hbmFnZXJDbGllbnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxBV1MuU2VjcmV0c01hbmFnZXI+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5zZWNyZXRzTWFuYWdlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBTREsgYXBwcm9wcmlhdGUgZm9yIHRoZSBnaXZlbiBjbGllbnQgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZGsob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU0RLPiB7XG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgLi4udGhpcy50YXJnZXRFbnYsXG4gICAgICByZWdpb246IG9wdGlvbnMucmVnaW9uID8/IHRoaXMudGFyZ2V0RW52LnJlZ2lvbiwgLy8gRGVmYXVsdDogc2FtZSByZWdpb24gYXMgdGhlIHN0YWNrXG4gICAgfTtcblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZW52LCAvLyByZWdpb24sIG5hbWUsIGFjY291bnRcbiAgICAgIGFzc3VtZVJ1bGVBcm46IG9wdGlvbnMuYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWF5YmVTZGsgPSB0aGlzLnNka0NhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1heWJlU2RrKSB7XG4gICAgICByZXR1cm4gbWF5YmVTZGs7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrID0gKGF3YWl0IHRoaXMuYXdzLmZvckVudmlyb25tZW50KGVudiwgTW9kZS5Gb3JXcml0aW5nLCB7XG4gICAgICBhc3N1bWVSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICBhc3N1bWVSb2xlRXh0ZXJuYWxJZDogb3B0aW9ucy5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICB9KSkuc2RrO1xuICAgIHRoaXMuc2RrQ2FjaGUuc2V0KGNhY2hlS2V5LCBzZGspO1xuXG4gICAgcmV0dXJuIHNkaztcbiAgfVxufVxuXG5jb25zdCBFVkVOVF9UT19MT0dHRVI6IFJlY29yZDxjZGtfYXNzZXRzLkV2ZW50VHlwZSwgKHg6IHN0cmluZykgPT4gdm9pZD4gPSB7XG4gIGJ1aWxkOiBkZWJ1ZyxcbiAgY2FjaGVkOiBkZWJ1ZyxcbiAgY2hlY2s6IGRlYnVnLFxuICBkZWJ1ZyxcbiAgZmFpbDogZXJyb3IsXG4gIGZvdW5kOiBkZWJ1ZyxcbiAgc3RhcnQ6IHByaW50LFxuICBzdWNjZXNzOiBwcmludCxcbiAgdXBsb2FkOiBkZWJ1Zyxcbn07XG5cbmNsYXNzIFB1Ymxpc2hpbmdQcm9ncmVzc0xpc3RlbmVyIGltcGxlbWVudHMgY2RrX2Fzc2V0cy5JUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBwdWJsaWMgb25QdWJsaXNoRXZlbnQodHlwZTogY2RrX2Fzc2V0cy5FdmVudFR5cGUsIGV2ZW50OiBjZGtfYXNzZXRzLklQdWJsaXNoUHJvZ3Jlc3MpOiB2b2lkIHtcbiAgICBFVkVOVF9UT19MT0dHRVJbdHlwZV0oYFske2V2ZW50LnBlcmNlbnRDb21wbGV0ZX0lXSAke3R5cGV9OiAke2V2ZW50Lm1lc3NhZ2V9YCk7XG4gIH1cbn1cbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LXB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBRXpDLHlDQUF5QztBQUN6Qyw2REFBbUQ7QUFHbkQsd0NBQWlEO0FBU2pEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBa0MsRUFDbEMsR0FBZ0IsRUFDaEIsU0FBNEIsRUFDNUIsVUFBZ0MsRUFBRTs7SUFFbEMsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSxJQUNFLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztRQUMvQixTQUFTLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxlQUFlO1FBQzNDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUztRQUM5QixTQUFTLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxjQUFjLEVBQzFDO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsSUFBSSxDQUFDLFNBQVMsQ0FBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDN0c7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFO1FBQ3pELEdBQUcsRUFBRSxJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDO1FBQ3RDLGdCQUFnQixFQUFFLElBQUksMEJBQTBCLE9BQUMsT0FBTyxDQUFDLEtBQUssbUNBQUksS0FBSyxDQUFDO1FBQ3hFLFlBQVksRUFBRSxLQUFLO1FBQ25CLGlCQUFpQixFQUFFLElBQUk7S0FDeEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztLQUM3RztBQUNILENBQUM7QUEzQkQsc0NBMkJDO0FBRUQsTUFBTSxhQUFhO0lBR2pCO0lBQ0U7O09BRUc7SUFDYyxHQUFnQjtJQUVqQzs7T0FFRztJQUNjLFNBQTRCO1FBTDVCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFLaEIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFYdkMsYUFBUSxHQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBWWhELENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCOztRQUM1QixhQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsa0JBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxtQ0FBSSxLQUFLLENBQUM7SUFDN0YsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQjtRQUNqQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsT0FBTyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSTtZQUNoQixTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLHFCQUFxQixDQUFDLE9BQWlDO1FBQ2xFLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFpQztRQUNyRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBaUM7UUFDdEQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsT0FBaUM7UUFDakUsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBaUM7O1FBQ2pELE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxJQUFJLENBQUMsU0FBUztZQUNqQixNQUFNLFFBQUUsT0FBTyxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQ2hELENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlCLEdBQUc7WUFDSCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUNuRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxrQkFBSSxDQUFDLFVBQVUsRUFBRTtZQUMvRCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUNuRCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFakMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFFRCxNQUFNLGVBQWUsR0FBc0Q7SUFDekUsS0FBSyxFQUFFLGVBQUs7SUFDWixNQUFNLEVBQUUsZUFBSztJQUNiLEtBQUssRUFBRSxlQUFLO0lBQ1osS0FBSyxFQUFMLGVBQUs7SUFDTCxJQUFJLEVBQUUsZUFBSztJQUNYLEtBQUssRUFBRSxlQUFLO0lBQ1osS0FBSyxFQUFFLGVBQUs7SUFDWixPQUFPLEVBQUUsZUFBSztJQUNkLE1BQU0sRUFBRSxlQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sMEJBQTBCO0lBQzlCLFlBQTZCLEtBQWM7UUFBZCxVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQzNDLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBMEIsRUFBRSxLQUFrQztRQUNsRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlFLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxlQUFlLE1BQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgKiBhcyBjZGtfYXNzZXRzIGZyb20gJ2Nkay1hc3NldHMnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBJU0RLIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3Nkayc7XG5pbXBvcnQgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgZGVidWcsIGVycm9yLCBwcmludCB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hBc3NldHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFByaW50IHByb2dyZXNzIGF0ICdkZWJ1ZycgbGV2ZWxcbiAgICovXG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2UgY2RrLWFzc2V0cyB0byBwdWJsaXNoIGFsbCBhc3NldHMgaW4gdGhlIGdpdmVuIG1hbmlmZXN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaEFzc2V0cyhcbiAgbWFuaWZlc3Q6IGNka19hc3NldHMuQXNzZXRNYW5pZmVzdCxcbiAgc2RrOiBTZGtQcm92aWRlcixcbiAgdGFyZ2V0RW52OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgb3B0aW9uczogUHVibGlzaEFzc2V0c09wdGlvbnMgPSB7fSxcbikge1xuICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgaGFwcGVuIChpdCdzIGEgcHJvZ3JhbW1pbmcgZXJyb3IpLCBidXQgd2UgZG9uJ3QgaGF2ZVxuICAvLyB0aGUgdHlwZXMgaGVyZSB0byBndWlkZSB1cy4gRG8gYW4gcnVudGltZSB2YWxpZGF0aW9uIHRvIGJlIHN1cGVyIHN1cGVyIHN1cmUuXG4gIGlmIChcbiAgICB0YXJnZXRFbnYuYWNjb3VudCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdGFyZ2V0RW52LmFjY291bnQgPT09IGN4YXBpLlVOS05PV05fQUNDT1VOVCB8fFxuICAgIHRhcmdldEVudi5yZWdpb24gPT09IHVuZGVmaW5lZCB8fFxuICAgIHRhcmdldEVudi5hY2NvdW50ID09PSBjeGFwaS5VTktOT1dOX1JFR0lPTlxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IHB1Ymxpc2hpbmcgcmVxdWlyZXMgcmVzb2x2ZWQgYWNjb3VudCBhbmQgcmVnaW9uLCBnb3QgJHtKU09OLnN0cmluZ2lmeSggdGFyZ2V0RW52KX1gKTtcbiAgfVxuXG4gIGNvbnN0IHB1Ymxpc2hlciA9IG5ldyBjZGtfYXNzZXRzLkFzc2V0UHVibGlzaGluZyhtYW5pZmVzdCwge1xuICAgIGF3czogbmV3IFB1Ymxpc2hpbmdBd3Moc2RrLCB0YXJnZXRFbnYpLFxuICAgIHByb2dyZXNzTGlzdGVuZXI6IG5ldyBQdWJsaXNoaW5nUHJvZ3Jlc3NMaXN0ZW5lcihvcHRpb25zLnF1aWV0ID8/IGZhbHNlKSxcbiAgICB0aHJvd09uRXJyb3I6IGZhbHNlLFxuICAgIHB1Ymxpc2hJblBhcmFsbGVsOiB0cnVlLFxuICB9KTtcbiAgYXdhaXQgcHVibGlzaGVyLnB1Ymxpc2goKTtcbiAgaWYgKHB1Ymxpc2hlci5oYXNGYWlsdXJlcykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHB1Ymxpc2ggb25lIG9yIG1vcmUgYXNzZXRzLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2VzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICB9XG59XG5cbmNsYXNzIFB1Ymxpc2hpbmdBd3MgaW1wbGVtZW50cyBjZGtfYXNzZXRzLklBd3Mge1xuICBwcml2YXRlIHNka0NhY2hlOiBNYXA8U3RyaW5nLCBJU0RLPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBTREsgdG8gd29yayB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLFxuXG4gICAgLyoqXG4gICAgICogRW52aXJvbm1lbnQgd2hlcmUgdGhlIHN0YWNrIHdlJ3JlIGRlcGxveWluZyBpcyBnb2luZ1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0RW52OiBjeGFwaS5FbnZpcm9ubWVudCkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmF3cy5iYXNlQ3JlZGVudGlhbHNQYXJ0aXRpb24odGhpcy50YXJnZXRFbnYsIE1vZGUuRm9yV3JpdGluZykpID8/ICdhd3MnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRhcmdldEVudi5yZWdpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPGNka19hc3NldHMuQWNjb3VudD4ge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCB0aGlzLmF3cy5kZWZhdWx0QWNjb3VudCgpO1xuICAgIHJldHVybiBhY2NvdW50ID8/IHtcbiAgICAgIGFjY291bnRJZDogJzx1bmtub3duIGFjY291bnQ+JyxcbiAgICAgIHBhcnRpdGlvbjogJ2F3cycsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb3ZlclRhcmdldEFjY291bnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxjZGtfYXNzZXRzLkFjY291bnQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5jdXJyZW50QWNjb3VudCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHMzQ2xpZW50KG9wdGlvbnM6IGNka19hc3NldHMuQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8QVdTLlMzPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuczMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlY3JDbGllbnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxBV1MuRUNSPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuZWNyKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VjcmV0c01hbmFnZXJDbGllbnQob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxBV1MuU2VjcmV0c01hbmFnZXI+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5zZWNyZXRzTWFuYWdlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBTREsgYXBwcm9wcmlhdGUgZm9yIHRoZSBnaXZlbiBjbGllbnQgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZGsob3B0aW9uczogY2RrX2Fzc2V0cy5DbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU0RLPiB7XG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgLi4udGhpcy50YXJnZXRFbnYsXG4gICAgICByZWdpb246IG9wdGlvbnMucmVnaW9uID8/IHRoaXMudGFyZ2V0RW52LnJlZ2lvbiwgLy8gRGVmYXVsdDogc2FtZSByZWdpb24gYXMgdGhlIHN0YWNrXG4gICAgfTtcblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZW52LCAvLyByZWdpb24sIG5hbWUsIGFjY291bnRcbiAgICAgIGFzc3VtZVJ1bGVBcm46IG9wdGlvbnMuYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWF5YmVTZGsgPSB0aGlzLnNka0NhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1heWJlU2RrKSB7XG4gICAgICByZXR1cm4gbWF5YmVTZGs7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrID0gKGF3YWl0IHRoaXMuYXdzLmZvckVudmlyb25tZW50KGVudiwgTW9kZS5Gb3JXcml0aW5nLCB7XG4gICAgICBhc3N1bWVSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICBhc3N1bWVSb2xlRXh0ZXJuYWxJZDogb3B0aW9ucy5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICB9KSkuc2RrO1xuICAgIHRoaXMuc2RrQ2FjaGUuc2V0KGNhY2hlS2V5LCBzZGspO1xuXG4gICAgcmV0dXJuIHNkaztcbiAgfVxufVxuXG5jb25zdCBFVkVOVF9UT19MT0dHRVI6IFJlY29yZDxjZGtfYXNzZXRzLkV2ZW50VHlwZSwgKHg6IHN0cmluZykgPT4gdm9pZD4gPSB7XG4gIGJ1aWxkOiBkZWJ1ZyxcbiAgY2FjaGVkOiBkZWJ1ZyxcbiAgY2hlY2s6IGRlYnVnLFxuICBkZWJ1ZyxcbiAgZmFpbDogZXJyb3IsXG4gIGZvdW5kOiBkZWJ1ZyxcbiAgc3RhcnQ6IHByaW50LFxuICBzdWNjZXNzOiBwcmludCxcbiAgdXBsb2FkOiBkZWJ1Zyxcbn07XG5cbmNsYXNzIFB1Ymxpc2hpbmdQcm9ncmVzc0xpc3RlbmVyIGltcGxlbWVudHMgY2RrX2Fzc2V0cy5JUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHF1aWV0OiBib29sZWFuKSB7XG4gIH1cblxuICBwdWJsaWMgb25QdWJsaXNoRXZlbnQodHlwZTogY2RrX2Fzc2V0cy5FdmVudFR5cGUsIGV2ZW50OiBjZGtfYXNzZXRzLklQdWJsaXNoUHJvZ3Jlc3MpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5xdWlldCAmJiB0eXBlICE9PSAnZmFpbCcgPyBkZWJ1ZyA6IEVWRU5UX1RPX0xPR0dFUlt0eXBlXTtcbiAgICBoYW5kbGVyKGBbJHtldmVudC5wZXJjZW50Q29tcGxldGV9JV0gJHt0eXBlfTogJHtldmVudC5tZXNzYWdlfWApO1xuICB9XG59XG4iXX0=
|
package/lib/version.js
CHANGED
|
@@ -30,7 +30,7 @@ class VersionCheckTTL {
|
|
|
30
30
|
fs.mkdirsSync(path.dirname(this.file));
|
|
31
31
|
fs.accessSync(path.dirname(this.file), fs.constants.W_OK);
|
|
32
32
|
}
|
|
33
|
-
catch
|
|
33
|
+
catch {
|
|
34
34
|
throw new Error(`Directory (${path.dirname(this.file)}) is not writable.`);
|
|
35
35
|
}
|
|
36
36
|
this.ttlSecs = ttlSecs || ONE_DAY_IN_SECONDS;
|
|
@@ -111,4 +111,4 @@ async function displayVersionMessage(currentVersion = versionNumber(), versionCh
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
exports.displayVersionMessage = displayVersionMessage;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLDRDQUE4QztBQUM5Qyx1RUFBZ0U7QUFDaEUsb0RBQTBEO0FBQzFELG9DQUFxRDtBQUVyRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUU1QyxNQUFNLDJCQUEyQixHQUEyQjtJQUMxRCxDQUFDLEVBQUUsNERBQTREO0NBQ2hFLENBQUM7QUFFVyxRQUFBLGVBQWUsR0FBRyxHQUFHLGFBQWEsRUFBRSxXQUFXLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFFeEUsU0FBZ0IsYUFBYTtJQUMzQixpRUFBaUU7SUFDakUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBTyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBSEQsc0NBR0M7QUFFRCxTQUFTLE1BQU07SUFDYixpRUFBaUU7SUFDakUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBTyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBYSxlQUFlO0lBVzFCLFlBQVksSUFBYSxFQUFFLE9BQWdCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELElBQUk7WUFDRixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLFVBQVUsQ0FB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O0FBQ2hDLENBQUM7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQUMsY0FBYyxHQUFHLGFBQWEsRUFBRSxFQUFFLGlCQUFtQztJQUMvRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRTtRQUNsRSxPQUFPO0tBQ1I7SUFFRCxJQUFJO1FBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLGFBQWpCLGlCQUFpQixjQUFqQixpQkFBaUIsR0FBSSxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDN0csSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxTQUFTLEdBQUcsbUNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNsRixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQztLQUNGO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixlQUFLLENBQUMsaUNBQWlDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0FBQ0gsQ0FBQztBQWRELHNEQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgZGVidWcsIHByaW50IH0gZnJvbSAnLi4vbGliL2xvZ2dpbmcnO1xuaW1wb3J0IHsgZm9ybWF0QXNCYW5uZXIgfSBmcm9tICcuLi9saWIvdXRpbC9jb25zb2xlLWZvcm1hdHRlcnMnO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIsIHJvb3REaXIgfSBmcm9tICcuL3V0aWwvZGlyZWN0b3JpZXMnO1xuaW1wb3J0IHsgZ2V0TGF0ZXN0VmVyc2lvbkZyb21OcG0gfSBmcm9tICcuL3V0aWwvbnBtJztcblxuY29uc3QgT05FX0RBWV9JTl9TRUNPTkRTID0gMSAqIDI0ICogNjAgKiA2MDtcblxuY29uc3QgVVBHUkFERV9ET0NVTUVOVEFUSU9OX0xJTktTOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAxOiAnaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9taWdyYXRpbmctdjIuaHRtbCcsXG59O1xuXG5leHBvcnQgY29uc3QgRElTUExBWV9WRVJTSU9OID0gYCR7dmVyc2lvbk51bWJlcigpfSAoYnVpbGQgJHtjb21taXQoKX0pYDtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb25OdW1iZXIoKTogc3RyaW5nIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgcmV0dXJuIHJlcXVpcmUocGF0aC5qb2luKHJvb3REaXIoKSwgJ3BhY2thZ2UuanNvbicpKS52ZXJzaW9uLnJlcGxhY2UoL1xcK1swLTlhLWZdKyQvLCAnJyk7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdCgpOiBzdHJpbmcge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICByZXR1cm4gcmVxdWlyZShwYXRoLmpvaW4ocm9vdERpcigpLCAnYnVpbGQtaW5mby5qc29uJykpLmNvbW1pdDtcbn1cblxuZXhwb3J0IGNsYXNzIFZlcnNpb25DaGVja1RUTCB7XG4gIHB1YmxpYyBzdGF0aWMgdGltZXN0YW1wRmlsZVBhdGgoKTogc3RyaW5nIHtcbiAgICAvLyBVc2luZyB0aGUgc2FtZSBwYXRoIGZyb20gYWNjb3VudC1jYWNoZS50c1xuICAgIHJldHVybiBwYXRoLmpvaW4oY2RrQ2FjaGVEaXIoKSwgJ3JlcG8tdmVyc2lvbi10dGwnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xuXG4gIC8vIEZpbGUgbW9kaWZ5IHRpbWVzIGFyZSBhY2N1cmF0ZSBvbmx5IHRvIHRoZSBzZWNvbmRcbiAgcHJpdmF0ZSByZWFkb25seSB0dGxTZWNzOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZmlsZT86IHN0cmluZywgdHRsU2Vjcz86IG51bWJlcikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGUgfHwgVmVyc2lvbkNoZWNrVFRMLnRpbWVzdGFtcEZpbGVQYXRoKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZzLm1rZGlyc1N5bmMocGF0aC5kaXJuYW1lKHRoaXMuZmlsZSkpO1xuICAgICAgZnMuYWNjZXNzU3luYyhwYXRoLmRpcm5hbWUodGhpcy5maWxlKSwgZnMuY29uc3RhbnRzLldfT0spO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXJlY3RvcnkgKCR7cGF0aC5kaXJuYW1lKHRoaXMuZmlsZSl9KSBpcyBub3Qgd3JpdGFibGUuYCk7XG4gICAgfVxuICAgIHRoaXMudHRsU2VjcyA9IHR0bFNlY3MgfHwgT05FX0RBWV9JTl9TRUNPTkRTO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhc0V4cGlyZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxhc3RDaGVja1RpbWUgPSAoYXdhaXQgZnMuc3RhdCh0aGlzLmZpbGUpKS5tdGltZU1zO1xuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgaWYgKCh0b2RheSAtIGxhc3RDaGVja1RpbWUpIC8gMTAwMCA+IHRoaXMudHRsU2VjcykgeyAvLyBjb252ZXJ0IG1zIHRvIHNlY1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZShsYXRlc3RWZXJzaW9uPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFsYXRlc3RWZXJzaW9uKSB7XG4gICAgICBsYXRlc3RWZXJzaW9uID0gJyc7XG4gICAgfVxuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmZpbGUsIGxhdGVzdFZlcnNpb24pO1xuICB9XG59XG5cbi8vIEV4cG9ydCBmb3IgdW5pdCB0ZXN0aW5nIG9ubHkuXG4vLyBEb24ndCB1c2UgZGlyZWN0bHksIHVzZSBkaXNwbGF5VmVyc2lvbk1lc3NhZ2UoKSBpbnN0ZWFkLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxhdGVzdFZlcnNpb25JZkhpZ2hlcihjdXJyZW50VmVyc2lvbjogc3RyaW5nLCBjYWNoZUZpbGU6IFZlcnNpb25DaGVja1RUTCk6IFByb21pc2U8c3RyaW5nfG51bGw+IHtcbiAgaWYgKCEoYXdhaXQgY2FjaGVGaWxlLmhhc0V4cGlyZWQoKSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGxhdGVzdFZlcnNpb24gPSBhd2FpdCBnZXRMYXRlc3RWZXJzaW9uRnJvbU5wbSgpO1xuICBjb25zdCBpc05ld2VyID0gc2VtdmVyLmd0KGxhdGVzdFZlcnNpb24sIGN1cnJlbnRWZXJzaW9uKTtcbiAgYXdhaXQgY2FjaGVGaWxlLnVwZGF0ZShsYXRlc3RWZXJzaW9uKTtcblxuICBpZiAoaXNOZXdlcikge1xuICAgIHJldHVybiBsYXRlc3RWZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1ham9yVmVyc2lvblVwZ3JhZGVNZXNzYWdlKGN1cnJlbnRWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgY29uc3QgY3VycmVudE1ham9yVmVyc2lvbiA9IHNlbXZlci5tYWpvcihjdXJyZW50VmVyc2lvbik7XG4gIGlmIChVUEdSQURFX0RPQ1VNRU5UQVRJT05fTElOS1NbY3VycmVudE1ham9yVmVyc2lvbl0pIHtcbiAgICByZXR1cm4gYEluZm9ybWF0aW9uIGFib3V0IHVwZ3JhZGluZyBmcm9tIHZlcnNpb24gJHtjdXJyZW50TWFqb3JWZXJzaW9ufS54IHRvIHZlcnNpb24gJHtjdXJyZW50TWFqb3JWZXJzaW9uICsgMX0ueCBpcyBhdmFpbGFibGUgaGVyZTogJHtVUEdSQURFX0RPQ1VNRU5UQVRJT05fTElOS1NbY3VycmVudE1ham9yVmVyc2lvbl19YDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRWZXJzaW9uTWVzc2FnZShjdXJyZW50VmVyc2lvbjogc3RyaW5nLCBsYXRlclZlcnNpb246IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFtcbiAgICBgTmV3ZXIgdmVyc2lvbiBvZiBDREsgaXMgYXZhaWxhYmxlIFske2NoYWxrLmdyZWVuKGxhdGVyVmVyc2lvbiBhcyBzdHJpbmcpfV1gLFxuICAgIGdldE1ham9yVmVyc2lvblVwZ3JhZGVNZXNzYWdlKGN1cnJlbnRWZXJzaW9uKSxcbiAgICAnVXBncmFkZSByZWNvbW1lbmRlZCAobnBtIGluc3RhbGwgLWcgYXdzLWNkayknLFxuICBdLmZpbHRlcihCb29sZWFuKSBhcyBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BsYXlWZXJzaW9uTWVzc2FnZShjdXJyZW50VmVyc2lvbiA9IHZlcnNpb25OdW1iZXIoKSwgdmVyc2lvbkNoZWNrQ2FjaGU/OiBWZXJzaW9uQ2hlY2tUVEwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSB8fCBwcm9jZXNzLmVudi5DREtfRElTQUJMRV9WRVJTSU9OX0NIRUNLKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBsYXRlclZlcnNpb24gPSBhd2FpdCBsYXRlc3RWZXJzaW9uSWZIaWdoZXIoY3VycmVudFZlcnNpb24sIHZlcnNpb25DaGVja0NhY2hlID8/IG5ldyBWZXJzaW9uQ2hlY2tUVEwoKSk7XG4gICAgaWYgKGxhdGVyVmVyc2lvbikge1xuICAgICAgY29uc3QgYmFubmVyTXNnID0gZm9ybWF0QXNCYW5uZXIoZ2V0VmVyc2lvbk1lc3NhZ2UoY3VycmVudFZlcnNpb24sIGxhdGVyVmVyc2lvbikpO1xuICAgICAgYmFubmVyTXNnLmZvckVhY2goKGUpID0+IHByaW50KGUpKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGRlYnVnKGBDb3VsZCBub3QgcnVuIHZlcnNpb24gY2hlY2sgLSAke2Vyci5tZXNzYWdlfWApO1xuICB9XG59XG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLDRDQUE4QztBQUM5Qyx1RUFBZ0U7QUFDaEUsb0RBQTBEO0FBQzFELG9DQUFxRDtBQUVyRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUU1QyxNQUFNLDJCQUEyQixHQUEyQjtJQUMxRCxDQUFDLEVBQUUsNERBQTREO0NBQ2hFLENBQUM7QUFFVyxRQUFBLGVBQWUsR0FBRyxHQUFHLGFBQWEsRUFBRSxXQUFXLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFFeEUsU0FBZ0IsYUFBYTtJQUMzQixpRUFBaUU7SUFDakUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBTyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBSEQsc0NBR0M7QUFFRCxTQUFTLE1BQU07SUFDYixpRUFBaUU7SUFDakUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBTyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBYSxlQUFlO0lBVzFCLFlBQVksSUFBYSxFQUFFLE9BQWdCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELElBQUk7WUFDRixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLFVBQVUsQ0FB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O0FBQ2hDLENBQUM7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQUMsY0FBYyxHQUFHLGFBQWEsRUFBRSxFQUFFLGlCQUFtQztJQUMvRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRTtRQUNsRSxPQUFPO0tBQ1I7SUFFRCxJQUFJO1FBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLGFBQWpCLGlCQUFpQixjQUFqQixpQkFBaUIsR0FBSSxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDN0csSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxTQUFTLEdBQUcsbUNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNsRixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQztLQUNGO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixlQUFLLENBQUMsaUNBQWlDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0FBQ0gsQ0FBQztBQWRELHNEQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgZGVidWcsIHByaW50IH0gZnJvbSAnLi4vbGliL2xvZ2dpbmcnO1xuaW1wb3J0IHsgZm9ybWF0QXNCYW5uZXIgfSBmcm9tICcuLi9saWIvdXRpbC9jb25zb2xlLWZvcm1hdHRlcnMnO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIsIHJvb3REaXIgfSBmcm9tICcuL3V0aWwvZGlyZWN0b3JpZXMnO1xuaW1wb3J0IHsgZ2V0TGF0ZXN0VmVyc2lvbkZyb21OcG0gfSBmcm9tICcuL3V0aWwvbnBtJztcblxuY29uc3QgT05FX0RBWV9JTl9TRUNPTkRTID0gMSAqIDI0ICogNjAgKiA2MDtcblxuY29uc3QgVVBHUkFERV9ET0NVTUVOVEFUSU9OX0xJTktTOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAxOiAnaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9taWdyYXRpbmctdjIuaHRtbCcsXG59O1xuXG5leHBvcnQgY29uc3QgRElTUExBWV9WRVJTSU9OID0gYCR7dmVyc2lvbk51bWJlcigpfSAoYnVpbGQgJHtjb21taXQoKX0pYDtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb25OdW1iZXIoKTogc3RyaW5nIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgcmV0dXJuIHJlcXVpcmUocGF0aC5qb2luKHJvb3REaXIoKSwgJ3BhY2thZ2UuanNvbicpKS52ZXJzaW9uLnJlcGxhY2UoL1xcK1swLTlhLWZdKyQvLCAnJyk7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdCgpOiBzdHJpbmcge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICByZXR1cm4gcmVxdWlyZShwYXRoLmpvaW4ocm9vdERpcigpLCAnYnVpbGQtaW5mby5qc29uJykpLmNvbW1pdDtcbn1cblxuZXhwb3J0IGNsYXNzIFZlcnNpb25DaGVja1RUTCB7XG4gIHB1YmxpYyBzdGF0aWMgdGltZXN0YW1wRmlsZVBhdGgoKTogc3RyaW5nIHtcbiAgICAvLyBVc2luZyB0aGUgc2FtZSBwYXRoIGZyb20gYWNjb3VudC1jYWNoZS50c1xuICAgIHJldHVybiBwYXRoLmpvaW4oY2RrQ2FjaGVEaXIoKSwgJ3JlcG8tdmVyc2lvbi10dGwnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xuXG4gIC8vIEZpbGUgbW9kaWZ5IHRpbWVzIGFyZSBhY2N1cmF0ZSBvbmx5IHRvIHRoZSBzZWNvbmRcbiAgcHJpdmF0ZSByZWFkb25seSB0dGxTZWNzOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZmlsZT86IHN0cmluZywgdHRsU2Vjcz86IG51bWJlcikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGUgfHwgVmVyc2lvbkNoZWNrVFRMLnRpbWVzdGFtcEZpbGVQYXRoKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZzLm1rZGlyc1N5bmMocGF0aC5kaXJuYW1lKHRoaXMuZmlsZSkpO1xuICAgICAgZnMuYWNjZXNzU3luYyhwYXRoLmRpcm5hbWUodGhpcy5maWxlKSwgZnMuY29uc3RhbnRzLldfT0spO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXJlY3RvcnkgKCR7cGF0aC5kaXJuYW1lKHRoaXMuZmlsZSl9KSBpcyBub3Qgd3JpdGFibGUuYCk7XG4gICAgfVxuICAgIHRoaXMudHRsU2VjcyA9IHR0bFNlY3MgfHwgT05FX0RBWV9JTl9TRUNPTkRTO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhc0V4cGlyZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxhc3RDaGVja1RpbWUgPSAoYXdhaXQgZnMuc3RhdCh0aGlzLmZpbGUpKS5tdGltZU1zO1xuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgaWYgKCh0b2RheSAtIGxhc3RDaGVja1RpbWUpIC8gMTAwMCA+IHRoaXMudHRsU2VjcykgeyAvLyBjb252ZXJ0IG1zIHRvIHNlY1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZShsYXRlc3RWZXJzaW9uPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFsYXRlc3RWZXJzaW9uKSB7XG4gICAgICBsYXRlc3RWZXJzaW9uID0gJyc7XG4gICAgfVxuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmZpbGUsIGxhdGVzdFZlcnNpb24pO1xuICB9XG59XG5cbi8vIEV4cG9ydCBmb3IgdW5pdCB0ZXN0aW5nIG9ubHkuXG4vLyBEb24ndCB1c2UgZGlyZWN0bHksIHVzZSBkaXNwbGF5VmVyc2lvbk1lc3NhZ2UoKSBpbnN0ZWFkLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxhdGVzdFZlcnNpb25JZkhpZ2hlcihjdXJyZW50VmVyc2lvbjogc3RyaW5nLCBjYWNoZUZpbGU6IFZlcnNpb25DaGVja1RUTCk6IFByb21pc2U8c3RyaW5nfG51bGw+IHtcbiAgaWYgKCEoYXdhaXQgY2FjaGVGaWxlLmhhc0V4cGlyZWQoKSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGxhdGVzdFZlcnNpb24gPSBhd2FpdCBnZXRMYXRlc3RWZXJzaW9uRnJvbU5wbSgpO1xuICBjb25zdCBpc05ld2VyID0gc2VtdmVyLmd0KGxhdGVzdFZlcnNpb24sIGN1cnJlbnRWZXJzaW9uKTtcbiAgYXdhaXQgY2FjaGVGaWxlLnVwZGF0ZShsYXRlc3RWZXJzaW9uKTtcblxuICBpZiAoaXNOZXdlcikge1xuICAgIHJldHVybiBsYXRlc3RWZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1ham9yVmVyc2lvblVwZ3JhZGVNZXNzYWdlKGN1cnJlbnRWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgY29uc3QgY3VycmVudE1ham9yVmVyc2lvbiA9IHNlbXZlci5tYWpvcihjdXJyZW50VmVyc2lvbik7XG4gIGlmIChVUEdSQURFX0RPQ1VNRU5UQVRJT05fTElOS1NbY3VycmVudE1ham9yVmVyc2lvbl0pIHtcbiAgICByZXR1cm4gYEluZm9ybWF0aW9uIGFib3V0IHVwZ3JhZGluZyBmcm9tIHZlcnNpb24gJHtjdXJyZW50TWFqb3JWZXJzaW9ufS54IHRvIHZlcnNpb24gJHtjdXJyZW50TWFqb3JWZXJzaW9uICsgMX0ueCBpcyBhdmFpbGFibGUgaGVyZTogJHtVUEdSQURFX0RPQ1VNRU5UQVRJT05fTElOS1NbY3VycmVudE1ham9yVmVyc2lvbl19YDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRWZXJzaW9uTWVzc2FnZShjdXJyZW50VmVyc2lvbjogc3RyaW5nLCBsYXRlclZlcnNpb246IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFtcbiAgICBgTmV3ZXIgdmVyc2lvbiBvZiBDREsgaXMgYXZhaWxhYmxlIFske2NoYWxrLmdyZWVuKGxhdGVyVmVyc2lvbiBhcyBzdHJpbmcpfV1gLFxuICAgIGdldE1ham9yVmVyc2lvblVwZ3JhZGVNZXNzYWdlKGN1cnJlbnRWZXJzaW9uKSxcbiAgICAnVXBncmFkZSByZWNvbW1lbmRlZCAobnBtIGluc3RhbGwgLWcgYXdzLWNkayknLFxuICBdLmZpbHRlcihCb29sZWFuKSBhcyBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BsYXlWZXJzaW9uTWVzc2FnZShjdXJyZW50VmVyc2lvbiA9IHZlcnNpb25OdW1iZXIoKSwgdmVyc2lvbkNoZWNrQ2FjaGU/OiBWZXJzaW9uQ2hlY2tUVEwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSB8fCBwcm9jZXNzLmVudi5DREtfRElTQUJMRV9WRVJTSU9OX0NIRUNLKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBsYXRlclZlcnNpb24gPSBhd2FpdCBsYXRlc3RWZXJzaW9uSWZIaWdoZXIoY3VycmVudFZlcnNpb24sIHZlcnNpb25DaGVja0NhY2hlID8/IG5ldyBWZXJzaW9uQ2hlY2tUVEwoKSk7XG4gICAgaWYgKGxhdGVyVmVyc2lvbikge1xuICAgICAgY29uc3QgYmFubmVyTXNnID0gZm9ybWF0QXNCYW5uZXIoZ2V0VmVyc2lvbk1lc3NhZ2UoY3VycmVudFZlcnNpb24sIGxhdGVyVmVyc2lvbikpO1xuICAgICAgYmFubmVyTXNnLmZvckVhY2goKGUpID0+IHByaW50KGUpKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGRlYnVnKGBDb3VsZCBub3QgcnVuIHZlcnNpb24gY2hlY2sgLSAke2Vyci5tZXNzYWdlfWApO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aws-cdk",
|
|
3
3
|
"description": "CDK Toolkit, the command line tool for CDK apps",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.21.1",
|
|
5
5
|
"bin": {
|
|
6
6
|
"cdk": "bin/cdk"
|
|
7
7
|
},
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"BSD-2-Clause",
|
|
45
45
|
"0BSD"
|
|
46
46
|
],
|
|
47
|
-
"dontAttribute": "^@aws-cdk/|^cdk-assets$",
|
|
47
|
+
"dontAttribute": "^@aws-cdk/|^cdk-assets$|^cdk-cli-wrapper$",
|
|
48
48
|
"test": "bin/cdk --version",
|
|
49
49
|
"entryPoints": [
|
|
50
50
|
"lib/index.js"
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"license": "Apache-2.0",
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@aws-cdk/core": "2.
|
|
61
|
+
"@aws-cdk/core": "2.21.1",
|
|
62
62
|
"@octokit/rest": "^18.12.0",
|
|
63
63
|
"@types/archiver": "^5.3.1",
|
|
64
64
|
"@types/fs-extra": "^8.1.2",
|
|
@@ -75,28 +75,28 @@
|
|
|
75
75
|
"@types/wrap-ansi": "^3.0.0",
|
|
76
76
|
"@types/yargs": "^15.0.14",
|
|
77
77
|
"aws-sdk-mock": "5.6.0",
|
|
78
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
78
|
+
"@aws-cdk/cdk-build-tools": "2.21.1",
|
|
79
79
|
"jest": "^27.5.1",
|
|
80
80
|
"madge": "^5.0.1",
|
|
81
81
|
"constructs": "^10.0.0",
|
|
82
82
|
"make-runnable": "^1.3.10",
|
|
83
83
|
"mockery": "^2.1.0",
|
|
84
84
|
"nock": "^13.2.4",
|
|
85
|
-
"@aws-cdk/pkglint": "2.
|
|
85
|
+
"@aws-cdk/pkglint": "2.21.1",
|
|
86
86
|
"sinon": "^9.2.4",
|
|
87
87
|
"ts-jest": "^27.1.4",
|
|
88
88
|
"ts-mock-imports": "^1.3.8",
|
|
89
89
|
"xml-js": "^1.6.11",
|
|
90
90
|
"axios": "^0.26.1",
|
|
91
|
-
"@aws-cdk/cloud-assembly-schema": "2.
|
|
92
|
-
"@aws-cdk/cloudformation-diff": "2.
|
|
93
|
-
"@aws-cdk/cx-api": "2.
|
|
94
|
-
"@aws-cdk/region-info": "2.
|
|
95
|
-
"@jsii/check-node": "1.
|
|
91
|
+
"@aws-cdk/cloud-assembly-schema": "2.21.1",
|
|
92
|
+
"@aws-cdk/cloudformation-diff": "2.21.1",
|
|
93
|
+
"@aws-cdk/cx-api": "2.21.1",
|
|
94
|
+
"@aws-cdk/region-info": "2.21.1",
|
|
95
|
+
"@jsii/check-node": "1.56.0",
|
|
96
96
|
"archiver": "^5.3.0",
|
|
97
97
|
"aws-sdk": "^2.1093.0",
|
|
98
98
|
"camelcase": "^6.3.0",
|
|
99
|
-
"cdk-assets": "2.
|
|
99
|
+
"cdk-assets": "2.21.1",
|
|
100
100
|
"chokidar": "^3.5.3",
|
|
101
101
|
"chalk": "^4",
|
|
102
102
|
"decamelize": "^5.0.1",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"minimatch": ">=3.1",
|
|
107
107
|
"promptly": "^3.2.0",
|
|
108
108
|
"proxy-agent": "^5.0.0",
|
|
109
|
-
"semver": "^7.3.
|
|
109
|
+
"semver": "^7.3.6",
|
|
110
110
|
"source-map-support": "^0.5.21",
|
|
111
111
|
"strip-ansi": "^6.0.1",
|
|
112
112
|
"table": "^6.8.0",
|
|
@@ -514,4 +514,78 @@ test('knows how to handle attributes of the AWS::Events::EventBus resource', asy
|
|
|
514
514
|
}),
|
|
515
515
|
});
|
|
516
516
|
});
|
|
517
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS1ob3Rzd2FwLWRlcGxveW1lbnRzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS1tYWNoaW5lLWhvdHN3YXAtZGVwbG95bWVudHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUE4QztBQUU5QyxJQUFJLDJCQUFrSSxDQUFDO0FBQ3ZJLElBQUksc0JBQW9ELENBQUM7QUFFekQsVUFBVSxDQUFDLEdBQUcsRUFBRTtJQUNkLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25ELDJCQUEyQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4QyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ2hGLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2pGLFFBQVE7SUFDUixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxrQ0FBa0M7aUJBQ3pDO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU5RixPQUFPO0lBQ1AsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0hBQXdILEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEksUUFBUTtJQUNSLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztRQUMvQixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLGtDQUFrQztnQkFDeEMsVUFB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LEVBQUUsa0NBQWtDO29CQUN4QyxVQUFVLEVBQUU7d0JBQ1YsZ0JBQWdCLEVBQUU7NEJBQ2hCLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQ0FDZixtQkFBbUI7b0NBQ25CLEVBQUUsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFO29DQUNyQyxxQkFBcUI7b0NBQ3JCLEVBQUUsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29DQUN0QyxvQkFBb0I7b0NBQ3BCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtvQ0FDbkIsSUFBSTtpQ0FDTCxDQUFDO3lCQUNIO3dCQUNELGdCQUFnQixFQUFFLFlBQVk7cUJBQy9CO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLE1BQU0sR0FBRyxNQUFNLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbkYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RCxlQUFlLEVBQUUsMERBQTBEO1FBQzNFLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3pCLFlBQVksRUFBRSx5REFBeUQ7WUFDdkUsYUFBYSxFQUFFLGNBQWM7WUFDN0IsWUFBWSxFQUFFLGNBQWM7U0FDN0IsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RlcEZ1bmN0aW9ucyB9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0ICogYXMgc2V0dXAgZnJvbSAnLi9ob3Rzd2FwLXRlc3Qtc2V0dXAnO1xuXG5sZXQgbW9ja1VwZGF0ZU1hY2hpbmVEZWZpbml0aW9uOiAocGFyYW1zOiBTdGVwRnVuY3Rpb25zLlR5cGVzLlVwZGF0ZVN0YXRlTWFjaGluZUlucHV0KSA9PiBTdGVwRnVuY3Rpb25zLlR5cGVzLlVwZGF0ZVN0YXRlTWFjaGluZU91dHB1dDtcbmxldCBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyOiBzZXR1cC5Ib3Rzd2FwTW9ja1Nka1Byb3ZpZGVyO1xuXG5iZWZvcmVFYWNoKCgpID0+IHtcbiAgaG90c3dhcE1vY2tTZGtQcm92aWRlciA9IHNldHVwLnNldHVwSG90c3dhcFRlc3RzKCk7XG4gIG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbiA9IGplc3QuZm4oKTtcbiAgaG90c3dhcE1vY2tTZGtQcm92aWRlci5zZXRVcGRhdGVTdGF0ZU1hY2hpbmVNb2NrKG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbik7XG59KTtcblxudGVzdCgncmV0dXJucyB1bmRlZmluZWQgd2hlbiBhIG5ldyBTdGF0ZU1hY2hpbmUgaXMgYWRkZWQgdG8gdGhlIFN0YWNrJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkudG9CZVVuZGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ2NhbGxzIHRoZSB1cGRhdGVTdGF0ZU1hY2hpbmUoKSBBUEkgd2hlbiBpdCByZWNlaXZlcyBvbmx5IGEgZGVmaW5pdGlvblN0cmluZyBjaGFuZ2Ugd2l0aG91dCBGbjo6Sm9pbiBpbiBhIHN0YXRlIG1hY2hpbmUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6ICd7IFByb3A6IFwib2xkLXZhbHVlXCIgfScsXG4gICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBQcm9wOiBcIm5ldy12YWx1ZVwiIH0nLFxuICAgICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3QgZGVwbG95U3RhY2tSZXN1bHQgPSBhd2FpdCBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGRlcGxveVN0YWNrUmVzdWx0KS5ub3QudG9CZVVuZGVmaW5lZCgpO1xuICBleHBlY3QobW9ja1VwZGF0ZU1hY2hpbmVEZWZpbml0aW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgZGVmaW5pdGlvbjogJ3sgUHJvcDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICBzdGF0ZU1hY2hpbmVBcm46ICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbGxzIHRoZSB1cGRhdGVTdGF0ZU1hY2hpbmUoKSBBUEkgd2hlbiBpdCByZWNlaXZlcyBvbmx5IGEgZGVmaW5pdGlvblN0cmluZyBjaGFuZ2Ugd2l0aCBGbjo6Sm9pbiBpbiBhIHN0YXRlIG1hY2hpbmUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgJ1xcbicsXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAneycsXG4gICAgICAgICAgICAgICAgJyAgXCJTdGFydEF0XCIgOiBcIlN1Y2Nlc3NTdGF0ZVwiJyxcbiAgICAgICAgICAgICAgICAnICBcIlN0YXRlc1wiIDogeycsXG4gICAgICAgICAgICAgICAgJyAgICBcIlN1Y2Nlc3NTdGF0ZVwiOiB7JyxcbiAgICAgICAgICAgICAgICAnICAgICAgXCJUeXBlXCI6IFwiUGFzc1wiJyxcbiAgICAgICAgICAgICAgICAnICAgICAgXCJSZXN1bHRcIjogXCJTdWNjZXNzXCInLFxuICAgICAgICAgICAgICAgICcgICAgICBcIkVuZFwiOiB0cnVlJyxcbiAgICAgICAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICAgICAgICcgIH0nLFxuICAgICAgICAgICAgICAgICd9JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICd7JyxcbiAgICAgICAgICAgICAgICAgICcgIFwiU3RhcnRBdFwiOiBcIlN1Y2Nlc3NTdGF0ZVwiLCcsXG4gICAgICAgICAgICAgICAgICAnICBcIlN0YXRlc1wiOiB7JyxcbiAgICAgICAgICAgICAgICAgICcgICAgXCJTdWNjZXNzU3RhdGVcIjogeycsXG4gICAgICAgICAgICAgICAgICAnICAgICAgXCJUeXBlXCI6IFwiU3VjY2VlZFwiJyxcbiAgICAgICAgICAgICAgICAgICcgICAgfScsXG4gICAgICAgICAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAgICAgICAgICd9JyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIGRlZmluaXRpb246IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIFN0YXJ0QXQ6ICdTdWNjZXNzU3RhdGUnLFxuICAgICAgU3RhdGVzOiB7XG4gICAgICAgIFN1Y2Nlc3NTdGF0ZToge1xuICAgICAgICAgIFR5cGU6ICdTdWNjZWVkJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSwgbnVsbCwgMiksXG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYWxscyB0aGUgdXBkYXRlU3RhdGVNYWNoaW5lKCkgQVBJIHdoZW4gaXQgcmVjZWl2ZXMgYSBjaGFuZ2UgdG8gdGhlIGRlZmluaXRpb25TdHJpbmcgaW4gYSBzdGF0ZSBtYWNoaW5lIHRoYXQgaGFzIG5vIG5hbWUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6ICd7IFwiUHJvcFwiIDogXCJvbGQtdmFsdWVcIiB9JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBSZXNvdXJjZXM6IHtcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3sgXCJQcm9wXCIgOiBcIm5ldy12YWx1ZVwiIH0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ01hY2hpbmUnLCAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnKSk7XG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIGRlZmluaXRpb246ICd7IFwiUHJvcFwiIDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICBzdGF0ZU1hY2hpbmVBcm46ICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2RvZXMgbm90IGNhbGwgdGhlIHVwZGF0ZVN0YXRlTWFjaGluZSgpIEFQSSB3aGVuIGl0IHJlY2VpdmVzIGEgY2hhbmdlIHRvIGEgcHJvcGVydHkgdGhhdCBpcyBub3QgdGhlIGRlZmluaXRpb25TdHJpbmcgaW4gYSBzdGF0ZSBtYWNoaW5lJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBcIlByb3BcIiA6IFwib2xkLXZhbHVlXCIgfScsXG4gICAgICAgICAgTG9nZ2luZ0NvbmZpZ3VyYXRpb246IHsgLy8gbm9uLWRlZmluaXRpb25TdHJpbmcgcHJvcGVydHlcbiAgICAgICAgICAgIEluY2x1ZGVFeGVjdXRpb25EYXRhOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6ICd7IFwiUHJvcFwiIDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICAgICAgICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIEluY2x1ZGVFeGVjdXRpb25EYXRhOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBjb25zdCBkZXBsb3lTdGFja1Jlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbn0pO1xuXG50ZXN0KCdkb2VzIG5vdCBjYWxsIHRoZSB1cGRhdGVTdGF0ZU1hY2hpbmUoKSBBUEkgd2hlbiBhIHJlc291cmNlIGhhcyBhIERlZmluaXRpb25TdHJpbmcgcHJvcGVydHkgYnV0IGlzIG5vdCBhbiBBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZSBpcyBjaGFuZ2VkJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6Ok5vdFN0ZXBGdW5jdGlvbnM6Ok5vdFN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBQcm9wOiBcIm9sZC12YWx1ZVwiIH0nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6Tm90U3RlcEZ1bmN0aW9uczo6Tm90U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBQcm9wOiBcIm5ldy12YWx1ZVwiIH0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3QgZGVwbG95U3RhY2tSZXN1bHQgPSBhd2FpdCBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGRlcGxveVN0YWNrUmVzdWx0KS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG59KTtcblxudGVzdCgnY2FuIGNvcnJlY3RseSBob3Rzd2FwIG9sZCBzdHlsZSBzeW50aCBjaGFuZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczogeyBBc3NldFBhcmFtMTogeyBUeXBlOiAnU3RyaW5nJyB9IH0sXG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7IFJlZjogJ0Fzc2V0UGFyYW0xJyB9LFxuICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdtYWNoaW5lLW5hbWUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFBhcmFtZXRlcnM6IHsgQXNzZXRQYXJhbTI6IHsgVHlwZTogU3RyaW5nIH0gfSxcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7IFJlZjogJ0Fzc2V0UGFyYW0yJyB9LFxuICAgICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ21hY2hpbmUtbmFtZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBzZXR1cC5wdXNoU3RhY2tSZXNvdXJjZVN1bW1hcmllcyhzZXR1cC5zdGFja1N1bW1hcnlPZignTWFjaGluZScsICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScpKTtcbiAgY29uc3QgZGVwbG95U3RhY2tSZXN1bHQgPSBhd2FpdCBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QsIHsgQXNzZXRQYXJhbTI6ICdhc3NldC1wYXJhbS0yJyB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIGRlZmluaXRpb246ICdhc3NldC1wYXJhbS0yJyxcbiAgICBzdGF0ZU1hY2hpbmVBcm46ICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bWFjaGluZS1uYW1lJyxcbiAgfSk7XG59KTtcblxudGVzdCgnY2FsbHMgdGhlIHVwZGF0ZVN0YXRlTWFjaGluZSgpIEFQSSB3aGVuIGl0IHJlY2VpdmVzIGEgY2hhbmdlIHRvIHRoZSBkZWZpbml0aW9uU3RyaW5nIHRoYXQgdXNlcyBBdHRyaWJ1dGVzIGluIGEgc3RhdGUgbWFjaGluZScsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFJlc291cmNlczoge1xuICAgICAgRnVuYzoge1xuICAgICAgICBUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyxcbiAgICAgIH0sXG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ3snLFxuICAgICAgICAgICAgICAgICcgIFwiU3RhcnRBdFwiIDogXCJTdWNjZXNzU3RhdGVcIicsXG4gICAgICAgICAgICAgICAgJyAgXCJTdGF0ZXNcIiA6IHsnLFxuICAgICAgICAgICAgICAgICcgICAgXCJTdWNjZXNzU3RhdGVcIjogeycsXG4gICAgICAgICAgICAgICAgJyAgICAgIFwiVHlwZVwiOiBcIlN1Y2NlZWRcIicsXG4gICAgICAgICAgICAgICAgJyAgICB9JyxcbiAgICAgICAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAgICAgICAnfScsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBGdW5jOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsXG4gICAgICAgIH0sXG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICdcIlJlc291cmNlXCI6ICcsXG4gICAgICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydGdW5jJywgJ0FybiddIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBzZXR1cC5wdXNoU3RhY2tSZXNvdXJjZVN1bW1hcmllcyhcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignTWFjaGluZScsICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScpLFxuICAgIHNldHVwLnN0YWNrU3VtbWFyeU9mKCdGdW5jJywgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsICdteS1mdW5jJyksXG4gICk7XG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIGRlZmluaXRpb246ICdcIlJlc291cmNlXCI6IGFybjphd3M6bGFtYmRhOmhlcmU6MTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOm15LWZ1bmMnLFxuICAgIHN0YXRlTWFjaGluZUFybjogJ2Fybjphd3M6c3RhdGVzOmhlcmU6MTIzNDU2Nzg5MDEyOnN0YXRlTWFjaGluZTpteS1tYWNoaW5lJyxcbiAgfSk7XG59KTtcblxudGVzdChcIndpbGwgbm90IHBlcmZvcm0gYSBob3Rzd2FwIGRlcGxveW1lbnQgaWYgaXQgY2Fubm90IGZpbmQgYSBSZWYgdGFyZ2V0IChvdXRzaWRlIHRoZSBzdGF0ZSBtYWNoaW5lJ3MgbmFtZSlcIiwgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgUGFyYW0xOiB7IFR5cGU6ICdTdHJpbmcnIH0sXG4gICAgfSxcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAneyBQcm9wOiBcIm9sZC12YWx1ZVwiIH0sICcsXG4gICAgICAgICAgICAgICAgJ3sgXCJQYXJhbVwiIDogJyxcbiAgICAgICAgICAgICAgICB7ICdGbjo6U3ViJzogJyR7UGFyYW0xfScgfSxcbiAgICAgICAgICAgICAgICAnIH0nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ01hY2hpbmUnLCAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCAnbXktbWFjaGluZScpKTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgICAgUGFyYW0xOiB7IFR5cGU6ICdTdHJpbmcnIH0sXG4gICAgICB9LFxuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICd7IFByb3A6IFwibmV3LXZhbHVlXCIgfSwgJyxcbiAgICAgICAgICAgICAgICAgICd7IFwiUGFyYW1cIiA6ICcsXG4gICAgICAgICAgICAgICAgICB7ICdGbjo6U3ViJzogJyR7UGFyYW0xfScgfSxcbiAgICAgICAgICAgICAgICAgICcgfScsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBhd2FpdCBleHBlY3QoKCkgPT5cbiAgICBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QpLFxuICApLnJlamVjdHMudG9UaHJvdygvUGFyYW1ldGVyIG9yIHJlc291cmNlICdQYXJhbTEnIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgZXZhbHVhdGlvbi8pO1xufSk7XG5cbnRlc3QoXCJ3aWxsIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50IGlmIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gaGFuZGxlIGEgc3BlY2lmaWMgYXR0cmlidXRlIChvdXRzaWRlIHRoZSBzdGF0ZSBtYWNoaW5lcydzIG5hbWUpXCIsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFJlc291cmNlczoge1xuICAgICAgQnVja2V0OiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnLFxuICAgICAgfSxcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAneyBQcm9wOiBcIm9sZC12YWx1ZVwiIH0sICcsXG4gICAgICAgICAgICAgICAgJ3sgXCJTM0J1Y2tldFwiIDogJyxcbiAgICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydCdWNrZXQnLCAnVW5rbm93bkF0dHJpYnV0ZSddIH0sXG4gICAgICAgICAgICAgICAgJyB9JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBzZXR1cC5wdXNoU3RhY2tSZXNvdXJjZVN1bW1hcmllcyhcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignTWFjaGluZScsICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScpLFxuICAgIHNldHVwLnN0YWNrU3VtbWFyeU9mKCdCdWNrZXQnLCAnQVdTOjpTMzo6QnVja2V0JywgJ215LWJ1Y2tldCcpLFxuICApO1xuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIEJ1Y2tldDoge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnLFxuICAgICAgICB9LFxuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAneyBQcm9wOiBcIm5ldy12YWx1ZVwiIH0sICcsXG4gICAgICAgICAgICAgICAgICAneyBcIlMzQnVja2V0XCIgOiAnLFxuICAgICAgICAgICAgICAgICAgeyAnRm46OkdldEF0dCc6IFsnQnVja2V0JywgJ1Vua25vd25BdHRyaWJ1dGUnXSB9LFxuICAgICAgICAgICAgICAgICAgJyB9JyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGF3YWl0IGV4cGVjdCgoKSA9PlxuICAgIGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCksXG4gICkucmVqZWN0cy50b1Rocm93KFwiV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgJ1Vua25vd25BdHRyaWJ1dGUnIGF0dHJpYnV0ZSBvZiB0aGUgJ0FXUzo6UzM6OkJ1Y2tldCcgcmVzb3VyY2UuIFRoaXMgaXMgYSBDREsgbGltaXRhdGlvbi4gUGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzL25ldy9jaG9vc2VcIik7XG59KTtcblxudGVzdCgna25vd3MgaG93IHRvIGhhbmRsZSBhdHRyaWJ1dGVzIG9mIHRoZSBBV1M6OkV2ZW50czo6RXZlbnRCdXMgcmVzb3VyY2UnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIEV2ZW50QnVzOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OkV2ZW50czo6RXZlbnRCdXMnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgTmFtZTogJ215LWV2ZW50LWJ1cycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzoge1xuICAgICAgICAgICAgJ0ZuOjpKb2luJzogWycnLCBbXG4gICAgICAgICAgICAgICd7XCJFdmVudEJ1czFBcm5cIjpcIicsXG4gICAgICAgICAgICAgIHsgJ0ZuOjpHZXRBdHQnOiBbJ0V2ZW50QnVzJywgJ0FybiddIH0sXG4gICAgICAgICAgICAgICdcIixcIkV2ZW50QnVzMU5hbWVcIjpcIicsXG4gICAgICAgICAgICAgIHsgJ0ZuOjpHZXRBdHQnOiBbJ0V2ZW50QnVzJywgJ05hbWUnXSB9LFxuICAgICAgICAgICAgICAnXCIsXCJFdmVudEJ1czFSZWZcIjpcIicsXG4gICAgICAgICAgICAgIHsgUmVmOiAnRXZlbnRCdXMnIH0sXG4gICAgICAgICAgICAgICdcIn0nLFxuICAgICAgICAgICAgXV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBzZXR1cC5wdXNoU3RhY2tSZXNvdXJjZVN1bW1hcmllcyhcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignRXZlbnRCdXMnLCAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJywgJ215LWV2ZW50LWJ1cycpLFxuICApO1xuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIEV2ZW50QnVzOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgTmFtZTogJ215LWV2ZW50LWJ1cycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzoge1xuICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbJycsIFtcbiAgICAgICAgICAgICAgICAne1wiRXZlbnRCdXMyQXJuXCI6XCInLFxuICAgICAgICAgICAgICAgIHsgJ0ZuOjpHZXRBdHQnOiBbJ0V2ZW50QnVzJywgJ0FybiddIH0sXG4gICAgICAgICAgICAgICAgJ1wiLFwiRXZlbnRCdXMyTmFtZVwiOlwiJyxcbiAgICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydFdmVudEJ1cycsICdOYW1lJ10gfSxcbiAgICAgICAgICAgICAgICAnXCIsXCJFdmVudEJ1czJSZWZcIjpcIicsXG4gICAgICAgICAgICAgICAgeyBSZWY6ICdFdmVudEJ1cycgfSxcbiAgICAgICAgICAgICAgICAnXCJ9JyxcbiAgICAgICAgICAgICAgXV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICBleHBlY3QocmVzdWx0KS5ub3QudG9CZVVuZGVmaW5lZCgpO1xuICBleHBlY3QobW9ja1VwZGF0ZU1hY2hpbmVEZWZpbml0aW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnLFxuICAgIGRlZmluaXRpb246IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEV2ZW50QnVzMkFybjogJ2Fybjphd3M6ZXZlbnRzOmhlcmU6MTIzNDU2Nzg5MDEyOmV2ZW50LWJ1cy9teS1ldmVudC1idXMnLFxuICAgICAgRXZlbnRCdXMyTmFtZTogJ215LWV2ZW50LWJ1cycsXG4gICAgICBFdmVudEJ1czJSZWY6ICdteS1ldmVudC1idXMnLFxuICAgIH0pLFxuICB9KTtcbn0pO1xuIl19
|
|
517
|
+
test('knows how to handle attributes of the AWS::DynamoDB::Table resource', async () => {
|
|
518
|
+
// GIVEN
|
|
519
|
+
setup.setCurrentCfnStackTemplate({
|
|
520
|
+
Resources: {
|
|
521
|
+
Table: {
|
|
522
|
+
Type: 'AWS::DynamoDB::Table',
|
|
523
|
+
Properties: {
|
|
524
|
+
KeySchema: [{
|
|
525
|
+
AttributeName: 'name',
|
|
526
|
+
KeyType: 'HASH',
|
|
527
|
+
}],
|
|
528
|
+
AttributeDefinitions: [{
|
|
529
|
+
AttributeName: 'name',
|
|
530
|
+
AttributeType: 'S',
|
|
531
|
+
}],
|
|
532
|
+
BillingMode: 'PAY_PER_REQUEST',
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
Machine: {
|
|
536
|
+
Type: 'AWS::StepFunctions::StateMachine',
|
|
537
|
+
Properties: {
|
|
538
|
+
DefinitionString: '{}',
|
|
539
|
+
StateMachineName: 'my-machine',
|
|
540
|
+
},
|
|
541
|
+
},
|
|
542
|
+
},
|
|
543
|
+
});
|
|
544
|
+
setup.pushStackResourceSummaries(setup.stackSummaryOf('Table', 'AWS::DynamoDB::Table', 'my-dynamodb-table'));
|
|
545
|
+
const cdkStackArtifact = setup.cdkStackArtifactOf({
|
|
546
|
+
template: {
|
|
547
|
+
Resources: {
|
|
548
|
+
Table: {
|
|
549
|
+
Type: 'AWS::DynamoDB::Table',
|
|
550
|
+
Properties: {
|
|
551
|
+
KeySchema: [{
|
|
552
|
+
AttributeName: 'name',
|
|
553
|
+
KeyType: 'HASH',
|
|
554
|
+
}],
|
|
555
|
+
AttributeDefinitions: [{
|
|
556
|
+
AttributeName: 'name',
|
|
557
|
+
AttributeType: 'S',
|
|
558
|
+
}],
|
|
559
|
+
BillingMode: 'PAY_PER_REQUEST',
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
Machine: {
|
|
563
|
+
Type: 'AWS::StepFunctions::StateMachine',
|
|
564
|
+
Properties: {
|
|
565
|
+
DefinitionString: {
|
|
566
|
+
'Fn::Join': ['', [
|
|
567
|
+
'{"TableName":"',
|
|
568
|
+
{ Ref: 'Table' },
|
|
569
|
+
'","TableArn":"',
|
|
570
|
+
{ 'Fn::GetAtt': ['Table', 'Arn'] },
|
|
571
|
+
'"}',
|
|
572
|
+
]],
|
|
573
|
+
},
|
|
574
|
+
StateMachineName: 'my-machine',
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
},
|
|
578
|
+
},
|
|
579
|
+
});
|
|
580
|
+
// THEN
|
|
581
|
+
const result = await hotswapMockSdkProvider.tryHotswapDeployment(cdkStackArtifact);
|
|
582
|
+
expect(result).not.toBeUndefined();
|
|
583
|
+
expect(mockUpdateMachineDefinition).toHaveBeenCalledWith({
|
|
584
|
+
stateMachineArn: 'arn:aws:states:here:123456789012:stateMachine:my-machine',
|
|
585
|
+
definition: JSON.stringify({
|
|
586
|
+
TableName: 'my-dynamodb-table',
|
|
587
|
+
TableArn: 'arn:aws:dynamodb:here:123456789012:table/my-dynamodb-table',
|
|
588
|
+
}),
|
|
589
|
+
});
|
|
590
|
+
});
|
|
591
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS1ob3Rzd2FwLWRlcGxveW1lbnRzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS1tYWNoaW5lLWhvdHN3YXAtZGVwbG95bWVudHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUE4QztBQUU5QyxJQUFJLDJCQUFrSSxDQUFDO0FBQ3ZJLElBQUksc0JBQW9ELENBQUM7QUFFekQsVUFBVSxDQUFDLEdBQUcsRUFBRTtJQUNkLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25ELDJCQUEyQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4QyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ2hGLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2pGLFFBQVE7SUFDUixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxrQ0FBa0M7aUJBQ3pDO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU5RixPQUFPO0lBQ1AsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0hBQXdILEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEksUUFBUTtJQUNSLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztRQUMvQixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLGtDQUFrQztnQkFDeEMsVUFB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O29DQUNsQyxJQUFJO2lDQUNMLENBQUM7eUJBQ0g7d0JBQ0QsZ0JBQWdCLEVBQUUsWUFBWTtxQkFDL0I7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELGVBQWUsRUFBRSwwREFBMEQ7UUFDM0UsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDekIsU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixRQUFRLEVBQUUsNERBQTREO1NBQ3ZFLENBQUM7S0FDSCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0ZXBGdW5jdGlvbnMgfSBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCAqIGFzIHNldHVwIGZyb20gJy4vaG90c3dhcC10ZXN0LXNldHVwJztcblxubGV0IG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbjogKHBhcmFtczogU3RlcEZ1bmN0aW9ucy5UeXBlcy5VcGRhdGVTdGF0ZU1hY2hpbmVJbnB1dCkgPT4gU3RlcEZ1bmN0aW9ucy5UeXBlcy5VcGRhdGVTdGF0ZU1hY2hpbmVPdXRwdXQ7XG5sZXQgaG90c3dhcE1vY2tTZGtQcm92aWRlcjogc2V0dXAuSG90c3dhcE1vY2tTZGtQcm92aWRlcjtcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIgPSBzZXR1cC5zZXR1cEhvdHN3YXBUZXN0cygpO1xuICBtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24gPSBqZXN0LmZuKCk7XG4gIGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIuc2V0VXBkYXRlU3RhdGVNYWNoaW5lTW9jayhtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pO1xufSk7XG5cbnRlc3QoJ3JldHVybnMgdW5kZWZpbmVkIHdoZW4gYSBuZXcgU3RhdGVNYWNoaW5lIGlzIGFkZGVkIHRvIHRoZSBTdGFjaycsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBjb25zdCBkZXBsb3lTdGFja1Jlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLnRvQmVVbmRlZmluZWQoKTtcbn0pO1xuXG50ZXN0KCdjYWxscyB0aGUgdXBkYXRlU3RhdGVNYWNoaW5lKCkgQVBJIHdoZW4gaXQgcmVjZWl2ZXMgb25seSBhIGRlZmluaXRpb25TdHJpbmcgY2hhbmdlIHdpdGhvdXQgRm46OkpvaW4gaW4gYSBzdGF0ZSBtYWNoaW5lJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBQcm9wOiBcIm9sZC12YWx1ZVwiIH0nLFxuICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBSZXNvdXJjZXM6IHtcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3sgUHJvcDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIGRlZmluaXRpb246ICd7IFByb3A6IFwibmV3LXZhbHVlXCIgfScsXG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYWxscyB0aGUgdXBkYXRlU3RhdGVNYWNoaW5lKCkgQVBJIHdoZW4gaXQgcmVjZWl2ZXMgb25seSBhIGRlZmluaXRpb25TdHJpbmcgY2hhbmdlIHdpdGggRm46OkpvaW4gaW4gYSBzdGF0ZSBtYWNoaW5lJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ3snLFxuICAgICAgICAgICAgICAgICcgIFwiU3RhcnRBdFwiIDogXCJTdWNjZXNzU3RhdGVcIicsXG4gICAgICAgICAgICAgICAgJyAgXCJTdGF0ZXNcIiA6IHsnLFxuICAgICAgICAgICAgICAgICcgICAgXCJTdWNjZXNzU3RhdGVcIjogeycsXG4gICAgICAgICAgICAgICAgJyAgICAgIFwiVHlwZVwiOiBcIlBhc3NcIicsXG4gICAgICAgICAgICAgICAgJyAgICAgIFwiUmVzdWx0XCI6IFwiU3VjY2Vzc1wiJyxcbiAgICAgICAgICAgICAgICAnICAgICAgXCJFbmRcIjogdHJ1ZScsXG4gICAgICAgICAgICAgICAgJyAgICB9JyxcbiAgICAgICAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAgICAgICAnfScsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgICAnXFxuJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAneycsXG4gICAgICAgICAgICAgICAgICAnICBcIlN0YXJ0QXRcIjogXCJTdWNjZXNzU3RhdGVcIiwnLFxuICAgICAgICAgICAgICAgICAgJyAgXCJTdGF0ZXNcIjogeycsXG4gICAgICAgICAgICAgICAgICAnICAgIFwiU3VjY2Vzc1N0YXRlXCI6IHsnLFxuICAgICAgICAgICAgICAgICAgJyAgICAgIFwiVHlwZVwiOiBcIlN1Y2NlZWRcIicsXG4gICAgICAgICAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICAgICAgICAgJyAgfScsXG4gICAgICAgICAgICAgICAgICAnfScsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBjb25zdCBkZXBsb3lTdGFja1Jlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBkZWZpbml0aW9uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBTdGFydEF0OiAnU3VjY2Vzc1N0YXRlJyxcbiAgICAgIFN0YXRlczoge1xuICAgICAgICBTdWNjZXNzU3RhdGU6IHtcbiAgICAgICAgICBUeXBlOiAnU3VjY2VlZCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sIG51bGwsIDIpLFxuICAgIHN0YXRlTWFjaGluZUFybjogJ2Fybjphd3M6c3RhdGVzOmhlcmU6MTIzNDU2Nzg5MDEyOnN0YXRlTWFjaGluZTpteS1tYWNoaW5lJyxcbiAgfSk7XG59KTtcblxudGVzdCgnY2FsbHMgdGhlIHVwZGF0ZVN0YXRlTWFjaGluZSgpIEFQSSB3aGVuIGl0IHJlY2VpdmVzIGEgY2hhbmdlIHRvIHRoZSBkZWZpbml0aW9uU3RyaW5nIGluIGEgc3RhdGUgbWFjaGluZSB0aGF0IGhhcyBubyBuYW1lJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBcIlByb3BcIiA6IFwib2xkLXZhbHVlXCIgfScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBjZGtTdGFja0FydGlmYWN0ID0gc2V0dXAuY2RrU3RhY2tBcnRpZmFjdE9mKHtcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6ICd7IFwiUHJvcFwiIDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBXSEVOXG4gIHNldHVwLnB1c2hTdGFja1Jlc291cmNlU3VtbWFyaWVzKHNldHVwLnN0YWNrU3VtbWFyeU9mKCdNYWNoaW5lJywgJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJywgJ2Fybjphd3M6c3RhdGVzOmhlcmU6MTIzNDU2Nzg5MDEyOnN0YXRlTWFjaGluZTpteS1tYWNoaW5lJykpO1xuICBjb25zdCBkZXBsb3lTdGFja1Jlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBkZWZpbml0aW9uOiAneyBcIlByb3BcIiA6IFwibmV3LXZhbHVlXCIgfScsXG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdkb2VzIG5vdCBjYWxsIHRoZSB1cGRhdGVTdGF0ZU1hY2hpbmUoKSBBUEkgd2hlbiBpdCByZWNlaXZlcyBhIGNoYW5nZSB0byBhIHByb3BlcnR5IHRoYXQgaXMgbm90IHRoZSBkZWZpbml0aW9uU3RyaW5nIGluIGEgc3RhdGUgbWFjaGluZScsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFJlc291cmNlczoge1xuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3sgXCJQcm9wXCIgOiBcIm9sZC12YWx1ZVwiIH0nLFxuICAgICAgICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7IC8vIG5vbi1kZWZpbml0aW9uU3RyaW5nIHByb3BlcnR5XG4gICAgICAgICAgICBJbmNsdWRlRXhlY3V0aW9uRGF0YTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiAneyBcIlByb3BcIiA6IFwibmV3LXZhbHVlXCIgfScsXG4gICAgICAgICAgICBMb2dnaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBJbmNsdWRlRXhlY3V0aW9uRGF0YTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3QgZGVwbG95U3RhY2tSZXN1bHQgPSBhd2FpdCBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGRlcGxveVN0YWNrUmVzdWx0KS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG59KTtcblxudGVzdCgnZG9lcyBub3QgY2FsbCB0aGUgdXBkYXRlU3RhdGVNYWNoaW5lKCkgQVBJIHdoZW4gYSByZXNvdXJjZSBoYXMgYSBEZWZpbml0aW9uU3RyaW5nIHByb3BlcnR5IGJ1dCBpcyBub3QgYW4gQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUgaXMgY2hhbmdlZCcsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFJlc291cmNlczoge1xuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpOb3RTdGVwRnVuY3Rpb25zOjpOb3RTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3sgUHJvcDogXCJvbGQtdmFsdWVcIiB9JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBSZXNvdXJjZXM6IHtcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6Ok5vdFN0ZXBGdW5jdGlvbnM6Ok5vdFN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3sgUHJvcDogXCJuZXctdmFsdWVcIiB9JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChkZXBsb3lTdGFja1Jlc3VsdCkudG9CZVVuZGVmaW5lZCgpO1xuICBleHBlY3QobW9ja1VwZGF0ZU1hY2hpbmVEZWZpbml0aW9uKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xufSk7XG5cbnRlc3QoJ2NhbiBjb3JyZWN0bHkgaG90c3dhcCBvbGQgc3R5bGUgc3ludGggY2hhbmdlcycsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFBhcmFtZXRlcnM6IHsgQXNzZXRQYXJhbTE6IHsgVHlwZTogJ1N0cmluZycgfSB9LFxuICAgIFJlc291cmNlczoge1xuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogeyBSZWY6ICdBc3NldFBhcmFtMScgfSxcbiAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbWFjaGluZS1uYW1lJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBQYXJhbWV0ZXJzOiB7IEFzc2V0UGFyYW0yOiB7IFR5cGU6IFN0cmluZyB9IH0sXG4gICAgICBSZXNvdXJjZXM6IHtcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogeyBSZWY6ICdBc3NldFBhcmFtMicgfSxcbiAgICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdtYWNoaW5lLW5hbWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ01hY2hpbmUnLCAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnKSk7XG4gIGNvbnN0IGRlcGxveVN0YWNrUmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0LCB7IEFzc2V0UGFyYW0yOiAnYXNzZXQtcGFyYW0tMicgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBkZWZpbml0aW9uOiAnYXNzZXQtcGFyYW0tMicsXG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm1hY2hpbmUtbmFtZScsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbGxzIHRoZSB1cGRhdGVTdGF0ZU1hY2hpbmUoKSBBUEkgd2hlbiBpdCByZWNlaXZlcyBhIGNoYW5nZSB0byB0aGUgZGVmaW5pdGlvblN0cmluZyB0aGF0IHVzZXMgQXR0cmlidXRlcyBpbiBhIHN0YXRlIG1hY2hpbmUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIEZ1bmM6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsXG4gICAgICB9LFxuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzoge1xuICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAnXFxuJyxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICd7JyxcbiAgICAgICAgICAgICAgICAnICBcIlN0YXJ0QXRcIiA6IFwiU3VjY2Vzc1N0YXRlXCInLFxuICAgICAgICAgICAgICAgICcgIFwiU3RhdGVzXCIgOiB7JyxcbiAgICAgICAgICAgICAgICAnICAgIFwiU3VjY2Vzc1N0YXRlXCI6IHsnLFxuICAgICAgICAgICAgICAgICcgICAgICBcIlR5cGVcIjogXCJTdWNjZWVkXCInLFxuICAgICAgICAgICAgICAgICcgICAgfScsXG4gICAgICAgICAgICAgICAgJyAgfScsXG4gICAgICAgICAgICAgICAgJ30nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBSZXNvdXJjZXM6IHtcbiAgICAgICAgRnVuYzoge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAnXCJSZXNvdXJjZVwiOiAnLFxuICAgICAgICAgICAgICAgICAgeyAnRm46OkdldEF0dCc6IFsnRnVuYycsICdBcm4nXSB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoXG4gICAgc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ01hY2hpbmUnLCAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnKSxcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignRnVuYycsICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCAnbXktZnVuYycpLFxuICApO1xuICBjb25zdCBkZXBsb3lTdGFja1Jlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoZGVwbG95U3RhY2tSZXN1bHQpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChtb2NrVXBkYXRlTWFjaGluZURlZmluaXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBkZWZpbml0aW9uOiAnXCJSZXNvdXJjZVwiOiBhcm46YXdzOmxhbWJkYTpoZXJlOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpteS1mdW5jJyxcbiAgICBzdGF0ZU1hY2hpbmVBcm46ICdhcm46YXdzOnN0YXRlczpoZXJlOjEyMzQ1Njc4OTAxMjpzdGF0ZU1hY2hpbmU6bXktbWFjaGluZScsXG4gIH0pO1xufSk7XG5cbnRlc3QoXCJ3aWxsIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50IGlmIGl0IGNhbm5vdCBmaW5kIGEgUmVmIHRhcmdldCAob3V0c2lkZSB0aGUgc3RhdGUgbWFjaGluZSdzIG5hbWUpXCIsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgIFBhcmFtMTogeyBUeXBlOiAnU3RyaW5nJyB9LFxuICAgIH0sXG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ3sgUHJvcDogXCJvbGQtdmFsdWVcIiB9LCAnLFxuICAgICAgICAgICAgICAgICd7IFwiUGFyYW1cIiA6ICcsXG4gICAgICAgICAgICAgICAgeyAnRm46OlN1Yic6ICcke1BhcmFtMX0nIH0sXG4gICAgICAgICAgICAgICAgJyB9JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIHNldHVwLnB1c2hTdGFja1Jlc291cmNlU3VtbWFyaWVzKHNldHVwLnN0YWNrU3VtbWFyeU9mKCdNYWNoaW5lJywgJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJywgJ215LW1hY2hpbmUnKSk7XG4gIGNvbnN0IGNka1N0YWNrQXJ0aWZhY3QgPSBzZXR1cC5jZGtTdGFja0FydGlmYWN0T2Yoe1xuICAgIHRlbXBsYXRlOiB7XG4gICAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFBhcmFtMTogeyBUeXBlOiAnU3RyaW5nJyB9LFxuICAgICAgfSxcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBNYWNoaW5lOiB7XG4gICAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAneyBQcm9wOiBcIm5ldy12YWx1ZVwiIH0sICcsXG4gICAgICAgICAgICAgICAgICAneyBcIlBhcmFtXCIgOiAnLFxuICAgICAgICAgICAgICAgICAgeyAnRm46OlN1Yic6ICcke1BhcmFtMX0nIH0sXG4gICAgICAgICAgICAgICAgICAnIH0nLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgYXdhaXQgZXhwZWN0KCgpID0+XG4gICAgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KSxcbiAgKS5yZWplY3RzLnRvVGhyb3coL1BhcmFtZXRlciBvciByZXNvdXJjZSAnUGFyYW0xJyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb24vKTtcbn0pO1xuXG50ZXN0KFwid2lsbCBub3QgcGVyZm9ybSBhIGhvdHN3YXAgZGVwbG95bWVudCBpZiBpdCBkb2Vzbid0IGtub3cgaG93IHRvIGhhbmRsZSBhIHNwZWNpZmljIGF0dHJpYnV0ZSAob3V0c2lkZSB0aGUgc3RhdGUgbWFjaGluZXMncyBuYW1lKVwiLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIHNldHVwLnNldEN1cnJlbnRDZm5TdGFja1RlbXBsYXRlKHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIEJ1Y2tldDoge1xuICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyxcbiAgICAgIH0sXG4gICAgICBNYWNoaW5lOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ3sgUHJvcDogXCJvbGQtdmFsdWVcIiB9LCAnLFxuICAgICAgICAgICAgICAgICd7IFwiUzNCdWNrZXRcIiA6ICcsXG4gICAgICAgICAgICAgICAgeyAnRm46OkdldEF0dCc6IFsnQnVja2V0JywgJ1Vua25vd25BdHRyaWJ1dGUnXSB9LFxuICAgICAgICAgICAgICAgICcgfScsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoXG4gICAgc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ01hY2hpbmUnLCAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnKSxcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignQnVja2V0JywgJ0FXUzo6UzM6OkJ1Y2tldCcsICdteS1idWNrZXQnKSxcbiAgKTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBCdWNrZXQ6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyxcbiAgICAgICAgfSxcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzoge1xuICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgJ3sgUHJvcDogXCJuZXctdmFsdWVcIiB9LCAnLFxuICAgICAgICAgICAgICAgICAgJ3sgXCJTM0J1Y2tldFwiIDogJyxcbiAgICAgICAgICAgICAgICAgIHsgJ0ZuOjpHZXRBdHQnOiBbJ0J1Y2tldCcsICdVbmtub3duQXR0cmlidXRlJ10gfSxcbiAgICAgICAgICAgICAgICAgICcgfScsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBhd2FpdCBleHBlY3QoKCkgPT5cbiAgICBob3Rzd2FwTW9ja1Nka1Byb3ZpZGVyLnRyeUhvdHN3YXBEZXBsb3ltZW50KGNka1N0YWNrQXJ0aWZhY3QpLFxuICApLnJlamVjdHMudG9UaHJvdyhcIldlIGRvbid0IHN1cHBvcnQgdGhlICdVbmtub3duQXR0cmlidXRlJyBhdHRyaWJ1dGUgb2YgdGhlICdBV1M6OlMzOjpCdWNrZXQnIHJlc291cmNlLiBUaGlzIGlzIGEgQ0RLIGxpbWl0YXRpb24uIFBsZWFzZSByZXBvcnQgaXQgYXQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy9uZXcvY2hvb3NlXCIpO1xufSk7XG5cbnRlc3QoJ2tub3dzIGhvdyB0byBoYW5kbGUgYXR0cmlidXRlcyBvZiB0aGUgQVdTOjpFdmVudHM6OkV2ZW50QnVzIHJlc291cmNlJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBzZXR1cC5zZXRDdXJyZW50Q2ZuU3RhY2tUZW1wbGF0ZSh7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBFdmVudEJ1czoge1xuICAgICAgICBUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIE5hbWU6ICdteS1ldmVudC1idXMnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFsnJywgW1xuICAgICAgICAgICAgICAne1wiRXZlbnRCdXMxQXJuXCI6XCInLFxuICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydFdmVudEJ1cycsICdBcm4nXSB9LFxuICAgICAgICAgICAgICAnXCIsXCJFdmVudEJ1czFOYW1lXCI6XCInLFxuICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydFdmVudEJ1cycsICdOYW1lJ10gfSxcbiAgICAgICAgICAgICAgJ1wiLFwiRXZlbnRCdXMxUmVmXCI6XCInLFxuICAgICAgICAgICAgICB7IFJlZjogJ0V2ZW50QnVzJyB9LFxuICAgICAgICAgICAgICAnXCJ9JyxcbiAgICAgICAgICAgIF1dLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgc2V0dXAucHVzaFN0YWNrUmVzb3VyY2VTdW1tYXJpZXMoXG4gICAgc2V0dXAuc3RhY2tTdW1tYXJ5T2YoJ0V2ZW50QnVzJywgJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycsICdteS1ldmVudC1idXMnKSxcbiAgKTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBFdmVudEJ1czoge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OkV2ZW50czo6RXZlbnRCdXMnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIE5hbWU6ICdteS1ldmVudC1idXMnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIE1hY2hpbmU6IHtcbiAgICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogWycnLCBbXG4gICAgICAgICAgICAgICAgJ3tcIkV2ZW50QnVzMkFyblwiOlwiJyxcbiAgICAgICAgICAgICAgICB7ICdGbjo6R2V0QXR0JzogWydFdmVudEJ1cycsICdBcm4nXSB9LFxuICAgICAgICAgICAgICAgICdcIixcIkV2ZW50QnVzMk5hbWVcIjpcIicsXG4gICAgICAgICAgICAgICAgeyAnRm46OkdldEF0dCc6IFsnRXZlbnRCdXMnLCAnTmFtZSddIH0sXG4gICAgICAgICAgICAgICAgJ1wiLFwiRXZlbnRCdXMyUmVmXCI6XCInLFxuICAgICAgICAgICAgICAgIHsgUmVmOiAnRXZlbnRCdXMnIH0sXG4gICAgICAgICAgICAgICAgJ1wifScsXG4gICAgICAgICAgICAgIF1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFN0YXRlTWFjaGluZU5hbWU6ICdteS1tYWNoaW5lJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhvdHN3YXBNb2NrU2RrUHJvdmlkZXIudHJ5SG90c3dhcERlcGxveW1lbnQoY2RrU3RhY2tBcnRpZmFjdCk7XG5cbiAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KG1vY2tVcGRhdGVNYWNoaW5lRGVmaW5pdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgIHN0YXRlTWFjaGluZUFybjogJ2Fybjphd3M6c3RhdGVzOmhlcmU6MTIzNDU2Nzg5MDEyOnN0YXRlTWFjaGluZTpteS1tYWNoaW5lJyxcbiAgICBkZWZpbml0aW9uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBFdmVudEJ1czJBcm46ICdhcm46YXdzOmV2ZW50czpoZXJlOjEyMzQ1Njc4OTAxMjpldmVudC1idXMvbXktZXZlbnQtYnVzJyxcbiAgICAgIEV2ZW50QnVzMk5hbWU6ICdteS1ldmVudC1idXMnLFxuICAgICAgRXZlbnRCdXMyUmVmOiAnbXktZXZlbnQtYnVzJyxcbiAgICB9KSxcbiAgfSk7XG59KTtcblxudGVzdCgna25vd3MgaG93IHRvIGhhbmRsZSBhdHRyaWJ1dGVzIG9mIHRoZSBBV1M6OkR5bmFtb0RCOjpUYWJsZSByZXNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgc2V0dXAuc2V0Q3VycmVudENmblN0YWNrVGVtcGxhdGUoe1xuICAgIFJlc291cmNlczoge1xuICAgICAgVGFibGU6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6RHluYW1vREI6OlRhYmxlJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEtleVNjaGVtYTogW3tcbiAgICAgICAgICAgIEF0dHJpYnV0ZU5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIEtleVR5cGU6ICdIQVNIJyxcbiAgICAgICAgICB9XSxcbiAgICAgICAgICBBdHRyaWJ1dGVEZWZpbml0aW9uczogW3tcbiAgICAgICAgICAgIEF0dHJpYnV0ZU5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIEF0dHJpYnV0ZVR5cGU6ICdTJyxcbiAgICAgICAgICB9XSxcbiAgICAgICAgICBCaWxsaW5nTW9kZTogJ1BBWV9QRVJfUkVRVUVTVCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgTWFjaGluZToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRGVmaW5pdGlvblN0cmluZzogJ3t9JyxcbiAgICAgICAgICBTdGF0ZU1hY2hpbmVOYW1lOiAnbXktbWFjaGluZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBzZXR1cC5wdXNoU3RhY2tSZXNvdXJjZVN1bW1hcmllcyhcbiAgICBzZXR1cC5zdGFja1N1bW1hcnlPZignVGFibGUnLCAnQVdTOjpEeW5hbW9EQjo6VGFibGUnLCAnbXktZHluYW1vZGItdGFibGUnKSxcbiAgKTtcbiAgY29uc3QgY2RrU3RhY2tBcnRpZmFjdCA9IHNldHVwLmNka1N0YWNrQXJ0aWZhY3RPZih7XG4gICAgdGVtcGxhdGU6IHtcbiAgICAgIFJlc291cmNlczoge1xuICAgICAgICBUYWJsZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OkR5bmFtb0RCOjpUYWJsZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgS2V5U2NoZW1hOiBbe1xuICAgICAgICAgICAgICBBdHRyaWJ1dGVOYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgIEtleVR5cGU6ICdIQVNIJyxcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgQXR0cmlidXRlRGVmaW5pdGlvbnM6IFt7XG4gICAgICAgICAgICAgIEF0dHJpYnV0ZU5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgICAgQXR0cmlidXRlVHlwZTogJ1MnLFxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICBCaWxsaW5nTW9kZTogJ1BBWV9QRVJfUkVRVUVTVCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgTWFjaGluZToge1xuICAgICAgICAgIFR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsXG4gICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgRGVmaW5pdGlvblN0cmluZzoge1xuICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbJycsIFtcbiAgICAgICAgICAgICAgICAne1wiVGFibGVOYW1lXCI6XCInLFxuICAgICAgICAgICAgICAgIHsgUmVmOiAnVGFibGUnIH0sXG4gICAgICAgICAgICAgICAgJ1wiLFwiVGFibGVBcm5cIjpcIicsXG4gICAgICAgICAgICAgICAgeyAnRm46OkdldEF0dCc6IFsnVGFibGUnLCAnQXJuJ10gfSxcbiAgICAgICAgICAgICAgICAnXCJ9JyxcbiAgICAgICAgICAgICAgXV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgU3RhdGVNYWNoaW5lTmFtZTogJ215LW1hY2hpbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaG90c3dhcE1vY2tTZGtQcm92aWRlci50cnlIb3Rzd2FwRGVwbG95bWVudChjZGtTdGFja0FydGlmYWN0KTtcblxuICBleHBlY3QocmVzdWx0KS5ub3QudG9CZVVuZGVmaW5lZCgpO1xuICBleHBlY3QobW9ja1VwZGF0ZU1hY2hpbmVEZWZpbml0aW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgc3RhdGVNYWNoaW5lQXJuOiAnYXJuOmF3czpzdGF0ZXM6aGVyZToxMjM0NTY3ODkwMTI6c3RhdGVNYWNoaW5lOm15LW1hY2hpbmUnLFxuICAgIGRlZmluaXRpb246IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIFRhYmxlTmFtZTogJ215LWR5bmFtb2RiLXRhYmxlJyxcbiAgICAgIFRhYmxlQXJuOiAnYXJuOmF3czpkeW5hbW9kYjpoZXJlOjEyMzQ1Njc4OTAxMjp0YWJsZS9teS1keW5hbW9kYi10YWJsZScsXG4gICAgfSksXG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const display_1 = require("../../../lib/api/util/display");
|
|
4
|
+
const console_listener_1 = require("../console-listener");
|
|
5
|
+
describe('Rewritable Block Tests', () => {
|
|
6
|
+
let block;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
block = new display_1.RewritableBlock(process.stderr);
|
|
9
|
+
process.stderr.rows = 80;
|
|
10
|
+
});
|
|
11
|
+
test('displayLines writes maximum lines based on rows if there are more lines than rows', () => {
|
|
12
|
+
const lines = Array.from(Array(100).keys()).map(line => line.toString());
|
|
13
|
+
const output = console_listener_1.stderr.inspectSync(() => {
|
|
14
|
+
block.displayLines(lines);
|
|
15
|
+
});
|
|
16
|
+
expect(output.length).toEqual(block.height);
|
|
17
|
+
});
|
|
18
|
+
test('displayLines writes maximum lines based on lines length if there are less lines than rows', () => {
|
|
19
|
+
const lines = Array.from(Array(45).keys()).map(line => line.toString());
|
|
20
|
+
const output = console_listener_1.stderr.inspectSync(() => {
|
|
21
|
+
block.displayLines(lines);
|
|
22
|
+
});
|
|
23
|
+
expect(output.length).toEqual(46);
|
|
24
|
+
});
|
|
25
|
+
test('displayLines writes maximum lines based on lines length if rows is undefined', () => {
|
|
26
|
+
const lines = Array.from(Array(5).keys()).map(line => line.toString());
|
|
27
|
+
process.stderr.rows = undefined;
|
|
28
|
+
const output = console_listener_1.stderr.inspectSync(() => {
|
|
29
|
+
block.displayLines(lines);
|
|
30
|
+
});
|
|
31
|
+
expect(output.length).toEqual(6);
|
|
32
|
+
});
|
|
33
|
+
test('display accounts for newlines in output', () => {
|
|
34
|
+
const output = console_listener_1.stderr.inspectSync(() => {
|
|
35
|
+
block.displayLines(['before\nafter']);
|
|
36
|
+
});
|
|
37
|
+
expect(output.length).toEqual(3); // cursorup + 2 lines
|
|
38
|
+
});
|
|
39
|
+
test('removeEmptyLines only removes trailing lines', () => {
|
|
40
|
+
console_listener_1.stderr.inspectSync(() => {
|
|
41
|
+
block.displayLines(Array.from(Array(5).keys()).map(x => `${x}`));
|
|
42
|
+
});
|
|
43
|
+
console_listener_1.stderr.inspectSync(() => {
|
|
44
|
+
// Leaves 3 empty lines
|
|
45
|
+
block.displayLines(Array.from(Array(2).keys()).map(x => `${x}`));
|
|
46
|
+
});
|
|
47
|
+
const output = console_listener_1.stderr.inspectSync(() => {
|
|
48
|
+
block.removeEmptyLines();
|
|
49
|
+
});
|
|
50
|
+
const expectedEmptyLines = 3;
|
|
51
|
+
expect(JSON.stringify(output)).toEqual(JSON.stringify([`\u001b[${expectedEmptyLines}A`]));
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlzcGxheS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkRBQWdFO0FBQ2hFLDBEQUE2QztBQUc3QyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLElBQUksS0FBc0IsQ0FBQztJQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLG1GQUFtRixFQUFFLEdBQUcsRUFBRTtRQUM3RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLHlCQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLDJGQUEyRixFQUFFLEdBQUcsRUFBRTtRQUNyRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLHlCQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsOEVBQThFLEVBQUUsR0FBRyxFQUFFO1FBQ3hGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLHlCQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sTUFBTSxHQUFHLHlCQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtRQUN4RCx5QkFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBQ0gseUJBQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3RCLHVCQUF1QjtZQUN2QixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyx5QkFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXdyaXRhYmxlQmxvY2sgfSBmcm9tICcuLi8uLi8uLi9saWIvYXBpL3V0aWwvZGlzcGxheSc7XG5pbXBvcnQgeyBzdGRlcnIgfSBmcm9tICcuLi9jb25zb2xlLWxpc3RlbmVyJztcblxuXG5kZXNjcmliZSgnUmV3cml0YWJsZSBCbG9jayBUZXN0cycsICgpID0+IHtcbiAgbGV0IGJsb2NrOiBSZXdyaXRhYmxlQmxvY2s7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGJsb2NrID0gbmV3IFJld3JpdGFibGVCbG9jayhwcm9jZXNzLnN0ZGVycik7XG4gICAgcHJvY2Vzcy5zdGRlcnIucm93cyA9IDgwO1xuICB9KTtcblxuICB0ZXN0KCdkaXNwbGF5TGluZXMgd3JpdGVzIG1heGltdW0gbGluZXMgYmFzZWQgb24gcm93cyBpZiB0aGVyZSBhcmUgbW9yZSBsaW5lcyB0aGFuIHJvd3MnLCAoKSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBBcnJheS5mcm9tKEFycmF5KDEwMCkua2V5cygpKS5tYXAobGluZSA9PiBsaW5lLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IG91dHB1dCA9IHN0ZGVyci5pbnNwZWN0U3luYygoKSA9PiB7XG4gICAgICBibG9jay5kaXNwbGF5TGluZXMobGluZXMpO1xuICAgIH0pO1xuXG4gICAgZXhwZWN0KG91dHB1dC5sZW5ndGgpLnRvRXF1YWwoYmxvY2suaGVpZ2h0ISk7XG4gIH0pO1xuXG4gIHRlc3QoJ2Rpc3BsYXlMaW5lcyB3cml0ZXMgbWF4aW11bSBsaW5lcyBiYXNlZCBvbiBsaW5lcyBsZW5ndGggaWYgdGhlcmUgYXJlIGxlc3MgbGluZXMgdGhhbiByb3dzJywgKCkgPT4ge1xuICAgIGNvbnN0IGxpbmVzID0gQXJyYXkuZnJvbShBcnJheSg0NSkua2V5cygpKS5tYXAobGluZSA9PiBsaW5lLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IG91dHB1dCA9IHN0ZGVyci5pbnNwZWN0U3luYygoKSA9PiB7XG4gICAgICBibG9jay5kaXNwbGF5TGluZXMobGluZXMpO1xuICAgIH0pO1xuXG4gICAgZXhwZWN0KG91dHB1dC5sZW5ndGgpLnRvRXF1YWwoNDYpO1xuICB9KTtcblxuICB0ZXN0KCdkaXNwbGF5TGluZXMgd3JpdGVzIG1heGltdW0gbGluZXMgYmFzZWQgb24gbGluZXMgbGVuZ3RoIGlmIHJvd3MgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGxpbmVzID0gQXJyYXkuZnJvbShBcnJheSg1KS5rZXlzKCkpLm1hcChsaW5lID0+IGxpbmUudG9TdHJpbmcoKSk7XG4gICAgcHJvY2Vzcy5zdGRlcnIucm93cyA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvdXRwdXQgPSBzdGRlcnIuaW5zcGVjdFN5bmMoKCkgPT4ge1xuICAgICAgYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgICB9KTtcblxuICAgIGV4cGVjdChvdXRwdXQubGVuZ3RoKS50b0VxdWFsKDYpO1xuICB9KTtcblxuICB0ZXN0KCdkaXNwbGF5IGFjY291bnRzIGZvciBuZXdsaW5lcyBpbiBvdXRwdXQnLCAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gc3RkZXJyLmluc3BlY3RTeW5jKCgpID0+IHtcbiAgICAgIGJsb2NrLmRpc3BsYXlMaW5lcyhbJ2JlZm9yZVxcbmFmdGVyJ10pO1xuICAgIH0pO1xuICAgIGV4cGVjdChvdXRwdXQubGVuZ3RoKS50b0VxdWFsKDMpOyAvLyBjdXJzb3J1cCArIDIgbGluZXNcbiAgfSk7XG5cbiAgdGVzdCgncmVtb3ZlRW1wdHlMaW5lcyBvbmx5IHJlbW92ZXMgdHJhaWxpbmcgbGluZXMnLCAoKSA9PiB7XG4gICAgc3RkZXJyLmluc3BlY3RTeW5jKCgpID0+IHtcbiAgICAgIGJsb2NrLmRpc3BsYXlMaW5lcyhBcnJheS5mcm9tKEFycmF5KDUpLmtleXMoKSkubWFwKHggPT4gYCR7eH1gKSk7XG4gICAgfSk7XG4gICAgc3RkZXJyLmluc3BlY3RTeW5jKCgpID0+IHtcbiAgICAgIC8vIExlYXZlcyAzIGVtcHR5IGxpbmVzXG4gICAgICBibG9jay5kaXNwbGF5TGluZXMoQXJyYXkuZnJvbShBcnJheSgyKS5rZXlzKCkpLm1hcCh4ID0+IGAke3h9YCkpO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gc3RkZXJyLmluc3BlY3RTeW5jKCgpID0+IHtcbiAgICAgIGJsb2NrLnJlbW92ZUVtcHR5TGluZXMoKTtcbiAgICB9KTtcbiAgICBjb25zdCBleHBlY3RlZEVtcHR5TGluZXMgPSAzO1xuICAgIGV4cGVjdChKU09OLnN0cmluZ2lmeShvdXRwdXQpKS50b0VxdWFsKEpTT04uc3RyaW5naWZ5KFtgXFx1MDAxYlske2V4cGVjdGVkRW1wdHlMaW5lc31BYF0pKTtcbiAgfSk7XG59KTsiXX0=
|
package/test/bockfs.js
CHANGED
|
@@ -35,7 +35,7 @@ function bockfs(files) {
|
|
|
35
35
|
*/
|
|
36
36
|
function path(fakePath) {
|
|
37
37
|
if (fakePath.startsWith('/')) {
|
|
38
|
-
fakePath = fakePath.
|
|
38
|
+
fakePath = fakePath.slice(1);
|
|
39
39
|
} // Force path to be non-absolute
|
|
40
40
|
return path_.join(bockFsRoot, fakePath);
|
|
41
41
|
}
|
|
@@ -65,4 +65,4 @@ function bockfs(files) {
|
|
|
65
65
|
bockfs.restore = restore;
|
|
66
66
|
})(bockfs || (bockfs = {}));
|
|
67
67
|
module.exports = bockfs;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ja2ZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9ja2ZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtREFBbUQ7QUFDbkQsRUFBRTtBQUNGLDBEQUEwRDtBQUMxRCw0RkFBNEY7QUFDNUYsNEZBQTRGO0FBQzVGLEVBQUU7QUFDRix3RUFBd0U7QUFDeEUsRUFBRTtBQUNGLHlGQUF5RjtBQUN6Riw0QkFBNEI7QUFDNUIseUJBQXlCO0FBQ3pCLDhCQUE4QjtBQUM5QiwrQkFBK0I7QUFFL0IsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLElBQUksTUFBMEIsQ0FBQztBQUUvQixTQUFTLE1BQU0sQ0FBQyxLQUE2QjtJQUMzQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ2xDO0FBQ0gsQ0FBQztBQUVELFdBQVUsTUFBTTtJQUNkOztPQUVHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLFlBQW9CLEVBQUUsUUFBZ0I7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFKZSxZQUFLLFFBSXBCLENBQUE7SUFFRDs7T0FFRztJQUNILFNBQWdCLElBQUksQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFBRSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUFFLENBQUMsZ0NBQWdDO1FBQ2hHLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUhlLFdBQUksT0FHbkIsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRmUsdUJBQWdCLG1CQUUvQixDQUFBO0lBRUQsU0FBZ0IsVUFBVSxDQUFDLEdBQUcsU0FBbUI7UUFDL0MsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7WUFDaEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBSmUsaUJBQVUsYUFJekIsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsT0FBTztRQUNyQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkI7UUFDRCxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFMZSxjQUFPLFVBS3RCLENBQUE7QUFDSCxDQUFDLEVBeENTLE1BQU0sS0FBTixNQUFNLFFBd0NmO0FBRUQsaUJBQVMsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQSBub3Qtc28tZmFrZSBmaWxlc3lzdGVtIG1vY2sgc2ltaWxhciB0byBtb2NrLWZzXG4vL1xuLy8gbW9jay1mcyBpcyBzdXBlciBjb252ZW5pZW50IGJ1dCB3ZSBjYW4ndCBhbHdheXMgdXNlIGl0OlxuLy8gLSBXaGVuIHlvdSB1c2UgY29uc29sZS5sb2coKSBqZXN0IHdhbnRzIHRvIGxvYWQgdGhpbmdzIGZyb20gdGhlIGZpbGVzeXN0ZW0gKHdoaWNoIGZhaWxzKS5cbi8vIC0gV2hlbiB5b3UgbWFrZSBBV1MgY2FsbHMgdGhlIFNESyB3YW50cyB0byBsb2FkIHRoaW5ncyBmcm9tIHRoZSBmaWxlc3lzdGVtICh3aGljaCBmYWlscykuXG4vL1xuLy8gVGhlcmVmb3JlLCBzb21ldGhpbmcgc2ltaWxhciB3aGljaCB1c2VzIHRlbXBkaXJzIG9uIHlvdXIgYWN0dWFsIGRpc2suXG4vL1xuLy8gVGhlIGJpZyBkb3duc2lkZSBjb21wYXJlZCB0byBtb2NrZnMgaXMgdGhhdCB5b3UgbmVlZCB0byB1c2UgYm9ja2ZzLnBhdGgoKSB0byB0cmFuc2xhdGVcbi8vIGZha2UgcGF0aHMgdG8gcmVhbCBwYXRocy5cbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGhfIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5jb25zdCBib2NrRnNSb290ID0gZnMubWtkdGVtcFN5bmMocGF0aF8uam9pbihvcy50bXBkaXIoKSwgJ2JvY2tmcycpKTtcbmxldCBvbGRDd2Q6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gYm9ja2ZzKGZpbGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIG9sZEN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gIGZvciAoY29uc3QgW2ZpbGVOYW1lLCBjb250ZW50c10gb2YgT2JqZWN0LmVudHJpZXMoZmlsZXMpKSB7XG4gICAgYm9ja2ZzLndyaXRlKGZpbGVOYW1lLCBjb250ZW50cyk7XG4gIH1cbn1cblxubmFtZXNwYWNlIGJvY2tmcyB7XG4gIC8qKlxuICAgKiBXcml0ZSBjb250ZW50cyB0byBhIGZha2UgZmlsZVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlKGZha2VGaWxlbmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoKGZha2VGaWxlbmFtZSk7XG4gICAgZnMubWtkaXJTeW5jKHBhdGhfLmRpcm5hbWUoZnVsbFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGZ1bGxQYXRoLCBjb250ZW50cywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIGEgZmFrZSBwYXRoIGludG8gYSByZWFsIHBhdGhcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBwYXRoKGZha2VQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAoZmFrZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7IGZha2VQYXRoID0gZmFrZVBhdGguc2xpY2UoMSk7IH0gLy8gRm9yY2UgcGF0aCB0byBiZSBub24tYWJzb2x1dGVcbiAgICByZXR1cm4gcGF0aF8uam9pbihib2NrRnNSb290LCBmYWtlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRvIGEgZmFrZSBkaXJlY3RvcnlcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiB3b3JraW5nRGlyZWN0b3J5KGZha2VQYXRoOiBzdHJpbmcpIHtcbiAgICBwcm9jZXNzLmNoZGlyKHBhdGgoZmFrZVBhdGgpKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBleGVjdXRhYmxlKC4uLmZha2VQYXRoczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IGZha2VwYXRoIG9mIGZha2VQYXRocykge1xuICAgICAgZnMuY2htb2RTeW5jKHBhdGgoZmFrZXBhdGgpLCAnNzU1Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgZmlsZXMgYW5kIHJlc3RvcmUgd29ya2luZyBkaXJlY3RvcnlcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiByZXN0b3JlKCkge1xuICAgIGlmIChvbGRDd2QpIHtcbiAgICAgIHByb2Nlc3MuY2hkaXIob2xkQ3dkKTtcbiAgICB9XG4gICAgZnMucmVtb3ZlU3luYyhib2NrRnNSb290KTtcbiAgfVxufVxuXG5leHBvcnQgPSBib2NrZnM7Il19
|