@aws-cdk/toolkit-lib 1.19.1 → 1.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/bootstrap/private/helpers.js +2 -2
- package/lib/actions/diff/private/helpers.js +6 -6
- package/lib/actions/refactor/private/mapping-helpers.js +3 -3
- package/lib/api/aws-auth/awscli-compatible.js +2 -2
- package/lib/api/aws-auth/base-credentials.js +2 -2
- package/lib/api/aws-auth/credential-plugins.js +3 -3
- package/lib/api/aws-auth/sdk-provider.js +6 -6
- package/lib/api/aws-auth/sdk.js +3 -3
- package/lib/api/bootstrap/bootstrap-environment.js +12 -12
- package/lib/api/cloud-assembly/context-store.js +2 -2
- package/lib/api/cloud-assembly/private/context-aware-source.js +2 -2
- package/lib/api/cloud-assembly/private/exec.d.ts +3 -0
- package/lib/api/cloud-assembly/private/exec.js +38 -5
- package/lib/api/cloud-assembly/private/helpers.js +2 -2
- package/lib/api/cloud-assembly/private/prepare-source.js +2 -2
- package/lib/api/cloud-assembly/private/stack-assembly.js +6 -6
- package/lib/api/cloud-assembly/source-builder.js +2 -2
- package/lib/api/cloud-assembly/stack-collection.js +8 -4
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +2 -2
- package/lib/api/cloudformation/stack-helpers.js +2 -2
- package/lib/api/cloudformation/template-body-parameter.js +3 -3
- package/lib/api/context.js +2 -2
- package/lib/api/deployments/asset-publishing.js +3 -3
- package/lib/api/deployments/assets.js +5 -5
- package/lib/api/deployments/cfn-api.js +9 -9
- package/lib/api/deployments/checks.js +5 -5
- package/lib/api/deployments/deploy-stack.js +7 -7
- package/lib/api/deployments/deployment-result.js +2 -2
- package/lib/api/deployments/deployments.js +12 -12
- package/lib/api/drift/drift.js +3 -3
- package/lib/api/environment/environment-access.js +5 -5
- package/lib/api/environment/environment-resources.js +8 -8
- package/lib/api/garbage-collection/garbage-collector.js +7 -7
- package/lib/api/garbage-collection/progress-printer.js +2 -2
- package/lib/api/garbage-collection/stack-refresh.js +3 -3
- package/lib/api/hotswap/appsync-mapping-templates.js +2 -2
- package/lib/api/hotswap/bedrock-agentcore-runtimes.js +6 -6
- package/lib/api/hotswap/common.js +4 -4
- package/lib/api/hotswap/hotswap-deployments.js +2 -2
- package/lib/api/hotswap/lambda-functions.js +2 -2
- package/lib/api/notices/cached-data-source.js +2 -2
- package/lib/api/notices/web-data-source.js +9 -9
- package/lib/api/plugin/plugin.js +5 -5
- package/lib/api/refactoring/context.js +4 -4
- package/lib/api/refactoring/graph.js +3 -3
- package/lib/api/refactoring/index.js +5 -5
- package/lib/api/refactoring/stack-definitions.js +2 -2
- package/lib/api/resource-import/importer.js +2 -2
- package/lib/api/rwlock.js +3 -3
- package/lib/api/settings.js +3 -3
- package/lib/api/stack-events/stack-activity-monitor.d.ts +41 -4
- package/lib/api/stack-events/stack-activity-monitor.js +99 -9
- package/lib/api/stack-events/stack-event-poller.d.ts +5 -2
- package/lib/api/stack-events/stack-event-poller.js +7 -5
- package/lib/api/toolkit-info.js +9 -9
- package/lib/api/work-graph/work-graph-builder.js +3 -3
- package/lib/api/work-graph/work-graph.js +4 -4
- package/lib/context-providers/ami.js +2 -2
- package/lib/context-providers/cc-api-provider.js +9 -9
- package/lib/context-providers/hosted-zones.js +4 -4
- package/lib/context-providers/index.js +3 -3
- package/lib/context-providers/keys.js +3 -3
- package/lib/context-providers/load-balancers.js +10 -10
- package/lib/context-providers/security-groups.js +5 -5
- package/lib/context-providers/ssm-parameters.js +3 -3
- package/lib/context-providers/vpcs.js +7 -7
- package/lib/private/activity-printer/base.js +5 -5
- package/lib/private/activity-printer/current.js +2 -2
- package/lib/toolkit/toolkit-error.d.ts +31 -5
- package/lib/toolkit/toolkit-error.js +54 -14
- package/lib/toolkit/toolkit.js +21 -16
- package/lib/util/cloudformation.d.ts +18 -1
- package/lib/util/cloudformation.js +29 -3
- package/lib/util/directories.js +2 -2
- package/lib/util/objects.js +3 -3
- package/lib/util/version-range.js +5 -5
- package/package.json +3 -3
|
@@ -82,7 +82,7 @@ class CurrentActivityPrinter extends base_1.ActivityPrinterBase {
|
|
|
82
82
|
return '[' + color(fullChars + partialChar) + filler + `] (${this.stackProgress.completed}/${this.stackProgress.total})`;
|
|
83
83
|
}
|
|
84
84
|
failureReasonOnNextLine(activity) {
|
|
85
|
-
return (0, util_1.
|
|
85
|
+
return (0, util_1.isErrorEvent)(activity.event)
|
|
86
86
|
? `\n${' '.repeat(CurrentActivityPrinter.TIMESTAMP_WIDTH + CurrentActivityPrinter.STATUS_WIDTH + 6)}${chalk.red(this.failureReason(activity) ?? '')}`
|
|
87
87
|
: '';
|
|
88
88
|
}
|
|
@@ -119,4 +119,4 @@ function shorten(maxWidth, p) {
|
|
|
119
119
|
const half = Math.floor((maxWidth - 3) / 2);
|
|
120
120
|
return p.slice(0, half) + '...' + p.slice(-half);
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBRTVDLHFDQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQUM3RDs7T0FFRztJQUNLLEtBQUssQ0FBa0I7SUFFL0IsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLEtBQUs7UUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsZ0NBQWdDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsR0FBRyxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFDdkYscUJBQXFCLENBQ3RCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSw4RUFBOEU7UUFDOUUsd0VBQXdFO1FBQ3hFLE1BQU0sT0FBTyxHQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFP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QUMsQ0FBQztJQUM1QyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgUmV3cml0YWJsZUJsb2NrIH0gZnJvbSAnLi9kaXNwbGF5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IHBhZExlZnQsIHBhZFJpZ2h0LCBzdGFja0V2ZW50SGFzRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogQWN0aXZpdHkgUHJpbnRlciB3aGljaCBzaG93cyB0aGUgcmVzb3VyY2VzIGN1cnJlbnRseSBiZWluZyB1cGRhdGVkXG4gKlxuICogSXQgd2lsbCBjb250aW51b3VzbHkgcmUtdXBkYXRlIHRoZSB0ZXJtaW5hbCBhbmQgc2hvdyBvbmx5IHRoZSByZXNvdXJjZXNcbiAqIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyB1cGRhdGVkLCBpbiBhZGRpdGlvbiB0byBhIHByb2dyZXNzIGJhciB3aGljaFxuICogc2hvd3MgaG93IGZhciBhbG9uZyB0aGUgZGVwbG95bWVudCBpcy5cbiAqXG4gKiBSZXNvdXJjZXMgdGhhdCBoYXZlIGZhaWxlZCB3aWxsIGFsd2F5cyBiZSBzaG93biwgYW5kIHdpbGwgYmUgcmVjYXBpdHVsYXRlZFxuICogYWxvbmcgd2l0aCB0aGVpciBzdGFjayB0cmFjZSB3aGVuIHRoZSBtb25pdG9yaW5nIGVuZHMuXG4gKlxuICogUmVzb3VyY2VzIHRoYXQgZmFpbGVkIGRlcGxveW1lbnQgYmVjYXVzZSB0aGV5IGhhdmUgYmVlbiBjYW5jZWxsZWQgYXJlXG4gKiBub3QgaW5jbHVkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXJyZW50QWN0aXZpdHlQcmludGVyIGV4dGVuZHMgQWN0aXZpdHlQcmludGVyQmFzZSB7XG4gIC8qKlxuICAgKiBDb250aW51b3VzbHkgd3JpdGUgdG8gdGhlIHNhbWUgb3V0cHV0IGJsb2NrLlxuICAgKi9cbiAgcHJpdmF0ZSBibG9jazogUmV3cml0YWJsZUJsb2NrO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBBY3Rpdml0eVByaW50ZXJQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmJsb2NrID0gbmV3IFJld3JpdGFibGVCbG9jayh0aGlzLnN0cmVhbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJpbnQoKTogdm9pZCB7XG4gICAgY29uc3QgbGluZXMgPSBbXTtcblxuICAgIC8vIEFkZCBhIHByb2dyZXNzIGJhciBhdCB0aGUgdG9wXG4gICAgY29uc3QgcHJvZ3Jlc3NXaWR0aCA9IE1hdGgubWF4KFxuICAgICAgTWF0aC5taW4oKHRoaXMuYmxvY2sud2lkdGggPz8gODApIC0gUFJPR1JFU1NCQVJfRVhUUkFfU1BBQ0UgLSAxLCBNQVhfUFJPR1JFU1NCQVJfV0lEVEgpLFxuICAgICAgTUlOX1BST0dSRVNTQkFSX1dJRFRILFxuICAgICk7XG4gICAgY29uc3QgcHJvZyA9IHRoaXMucHJvZ3Jlc3NCYXIocHJvZ3Jlc3NXaWR0aCk7XG4gICAgaWYgKHByb2cpIHtcbiAgICAgIGxpbmVzLnB1c2goJyAgJyArIHByb2csICcnKTtcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxseSB3ZSdkIG9ubHkgcHJpbnQgXCJyZXNvdXJjZXMgaW4gcHJvZ3Jlc3NcIiwgYnV0IGl0J3MgYWxzbyB1c2VmdWxcbiAgICAvLyB0byBrZWVwIGFuIGV5ZSBvbiB0aGUgZmFpbHVyZXMgYW5kIGtub3cgYWJvdXQgdGhlIHNwZWNpZmljIGVycm9ycyBhc3F1aWNrbHlcbiAgICAvLyBhcyBwb3NzaWJsZSAod2hpbGUgdGhlIHN0YWNrIGlzIHN0aWxsIHJvbGxpbmcgYmFjayksIHNvIGFkZCB0aG9zZSBpbi5cbiAgICBjb25zdCB0b1ByaW50OiBTdGFja0FjdGl2aXR5W10gPSBbLi4udGhpcy5mYWlsdXJlcywgLi4uT2JqZWN0LnZhbHVlcyh0aGlzLnJlc291cmNlc0luUHJvZ3Jlc3MpXTtcbiAgICB0b1ByaW50LnNvcnQoKGEsIGIpID0+IGEuZXZlbnQuVGltZXN0YW1wIS5nZXRUaW1lKCkgLSBiLmV2ZW50LlRpbWVzdGFtcCEuZ2V0VGltZSgpKTtcblxuICAgIGxpbmVzLnB1c2goXG4gICAgICAuLi50b1ByaW50Lm1hcCgocmVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JGcm9tU3RhdHVzQWN0aXZpdHkocmVzLmV2ZW50LlJlc291cmNlU3RhdHVzKTtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gcmVzLm1ldGFkYXRhPy5jb25zdHJ1Y3RQYXRoID8/IHJlcy5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/PyAnJztcblxuICAgICAgICByZXR1cm4gdXRpbC5mb3JtYXQoXG4gICAgICAgICAgJyVzIHwgJXMgfCAlcyB8ICVzJXMnLFxuICAgICAgICAgIHBhZExlZnQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEgsIG5ldyBEYXRlKHJlcy5ldmVudC5UaW1lc3RhbXAhKS50b0xvY2FsZVRpbWVTdHJpbmcoKSksXG4gICAgICAgICAgY29sb3IocGFkUmlnaHQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgsIChyZXMuZXZlbnQuUmVzb3VyY2VTdGF0dXMgfHwgJycpLnNsaWNlKDAsIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRIKSkpLFxuICAgICAgICAgIHBhZFJpZ2h0KHRoaXMucmVzb3VyY2VUeXBlQ29sdW1uV2lkdGgsIHJlcy5ldmVudC5SZXNvdXJjZVR5cGUgfHwgJycpLFxuICAgICAgICAgIGNvbG9yKGNoYWxrLmJvbGQoc2hvcnRlbig0MCwgcmVzb3VyY2VOYW1lKSkpLFxuICAgICAgICAgIHRoaXMuZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUocmVzKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmJsb2NrLmRpc3BsYXlMaW5lcyhsaW5lcyk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICBzdXBlci5zdG9wKCk7XG5cbiAgICAvLyBQcmludCBmYWlsdXJlcyBhdCB0aGUgZW5kXG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgZmFpbHVyZSBvZiB0aGlzLmZhaWx1cmVzKSB7XG4gICAgICAvLyBSb290IHN0YWNrIGZhaWx1cmVzIGFyZSBub3QgaW50ZXJlc3RpbmdcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZpdHlGb3JUaGVTdGFjayhmYWlsdXJlKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGluZXMucHVzaChcbiAgICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgICAgY2hhbGsucmVkKCclcyB8ICVzIHwgJXMgfCAlcyVzJykgKyAnXFxuJyxcbiAgICAgICAgICBwYWRMZWZ0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRILCBuZXcgRGF0ZShmYWlsdXJlLmV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgICBwYWRSaWdodChDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKGZhaWx1cmUuZXZlbnQuUmVzb3VyY2VTdGF0dXMgfHwgJycpLnNsaWNlKDAsIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRIKSksXG4gICAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgZmFpbHVyZS5ldmVudC5SZXNvdXJjZVR5cGUgfHwgJycpLFxuICAgICAgICAgIHNob3J0ZW4oNDAsIGZhaWx1cmUuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJycpLFxuICAgICAgICAgIHRoaXMuZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUoZmFpbHVyZSksXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0cmFjZSA9IGZhaWx1cmUubWV0YWRhdGE/LmVudHJ5Py50cmFjZTtcbiAgICAgIGlmICh0cmFjZSkge1xuICAgICAgICBsaW5lcy5wdXNoKGNoYWxrLnJlZChgXFx0JHt0cmFjZS5qb2luKCdcXG5cXHRcXFxcXyAnKX1cXG5gKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzcGxheSBpbiB0aGUgc2FtZSBibG9jayBzcGFjZSwgb3RoZXJ3aXNlIHdlJ3JlIGdvaW5nIHRvIGhhdmUgc2lsbHkgZW1wdHkgbGluZXMuXG4gICAgdGhpcy5ibG9jay5kaXNwbGF5TGluZXMobGluZXMpO1xuICAgIHRoaXMuYmxvY2sucmVtb3ZlRW1wdHlMaW5lcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9ncmVzc0Jhcih3aWR0aDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLnN0YWNrUHJvZ3Jlc3MgfHwgIXRoaXMuc3RhY2tQcm9ncmVzcy50b3RhbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBmcmFjdGlvbiA9IE1hdGgubWluKHRoaXMuc3RhY2tQcm9ncmVzcy5jb21wbGV0ZWQgLyB0aGlzLnN0YWNrUHJvZ3Jlc3MudG90YWwsIDEpO1xuICAgIGNvbnN0IGlubmVyV2lkdGggPSBNYXRoLm1heCgxLCB3aWR0aCAtIDIpO1xuICAgIGNvbnN0IGNoYXJzID0gaW5uZXJXaWR0aCAqIGZyYWN0aW9uO1xuICAgIGNvbnN0IHJlbWFpbmRlciA9IGNoYXJzIC0gTWF0aC5mbG9vcihjaGFycyk7XG5cbiAgICBjb25zdCBmdWxsQ2hhcnMgPSBGVUxMX0JMT0NLLnJlcGVhdChNYXRoLmZsb29yKGNoYXJzKSk7XG4gICAgY29uc3QgcGFydGlhbENoYXIgPSBQQVJUSUFMX0JMT0NLW01hdGguZmxvb3IocmVtYWluZGVyICogUEFSVElBTF9CTE9DSy5sZW5ndGgpXTtcbiAgICBjb25zdCBmaWxsZXIgPSAnwrcnLnJlcGVhdChpbm5lcldpZHRoIC0gTWF0aC5mbG9vcihjaGFycykgLSAocGFydGlhbENoYXIgPyAxIDogMCkpO1xuXG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJvbGxpbmdCYWNrID8gY2hhbGsueWVsbG93IDogY2hhbGsuZ3JlZW47XG5cbiAgICByZXR1cm4gJ1snICsgY29sb3IoZnVsbENoYXJzICsgcGFydGlhbENoYXIpICsgZmlsbGVyICsgYF0gKCR7dGhpcy5zdGFja1Byb2dyZXNzLmNvbXBsZXRlZH0vJHt0aGlzLnN0YWNrUHJvZ3Jlc3MudG90YWx9KWA7XG4gIH1cblxuICBwcml2YXRlIGZhaWx1cmVSZWFzb25Pbk5leHRMaW5lKGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5KSB7XG4gICAgcmV0dXJuIHN0YWNrRXZlbnRIYXNFcnJvck1lc3NhZ2UoYWN0aXZpdHkuZXZlbnQuUmVzb3VyY2VTdGF0dXMgPz8gJycpXG4gICAgICA/IGBcXG4keycgJy5yZXBlYXQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEggKyBDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCArIDYpfSR7Y2hhbGsucmVkKHRoaXMuZmFpbHVyZVJlYXNvbihhY3Rpdml0eSkgPz8gJycpfWBcbiAgICAgIDogJyc7XG4gIH1cbn1cblxuY29uc3QgRlVMTF9CTE9DSyA9ICfilognO1xuY29uc3QgUEFSVElBTF9CTE9DSyA9IFsnJywgJ+KWjycsICfilo4nLCAn4paNJywgJ+KWjCcsICfilosnLCAn4paKJywgJ+KWiSddO1xuY29uc3QgTUFYX1BST0dSRVNTQkFSX1dJRFRIID0gNjA7XG5jb25zdCBNSU5fUFJPR1JFU1NCQVJfV0lEVEggPSAxMDtcbmNvbnN0IFBST0dSRVNTQkFSX0VYVFJBX1NQQUNFID1cbiAgICAyIC8qIGxlYWRpbmcgc3BhY2VzICovICsgMiAvKiBicmFja2V0cyAqLyArIDQgLyogcHJvZ3Jlc3MgbnVtYmVyIGRlY29yYXRpb24gKi8gKyA2OyAvKiAyIHByb2dyZXNzIG51bWJlcnMgdXAgdG8gOTk5ICovXG5cbmZ1bmN0aW9uIGNvbG9yRnJvbVN0YXR1c0FjdGl2aXR5KHN0YXR1cz86IHN0cmluZykge1xuICBpZiAoIXN0YXR1cykge1xuICAgIHJldHVybiBjaGFsay5yZXNldDtcbiAgfVxuXG4gIGlmIChzdGF0dXMuZW5kc1dpdGgoJ19GQUlMRUQnKSkge1xuICAgIHJldHVybiBjaGFsay5yZWQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLnN0YXJ0c1dpdGgoJ0NSRUFURV8nKSB8fCBzdGF0dXMuc3RhcnRzV2l0aCgnVVBEQVRFXycpIHx8IHN0YXR1cy5zdGFydHNXaXRoKCdJTVBPUlRfJykpIHtcbiAgICByZXR1cm4gY2hhbGsuZ3JlZW47XG4gIH1cbiAgLy8gRm9yIHN0YWNrcywgaXQgbWF5IGFsc28gYmUgJ1VQRERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnXG4gIGlmIChzdGF0dXMuaW5kZXhPZignUk9MTEJBQ0tfJykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGNoYWxrLnllbGxvdztcbiAgfVxuICBpZiAoc3RhdHVzLnN0YXJ0c1dpdGgoJ0RFTEVURV8nKSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cblxuICByZXR1cm4gY2hhbGsucmVzZXQ7XG59XG5cbmZ1bmN0aW9uIHNob3J0ZW4obWF4V2lkdGg6IG51bWJlciwgcDogc3RyaW5nKSB7XG4gIGlmIChwLmxlbmd0aCA8PSBtYXhXaWR0aCkge1xuICAgIHJldHVybiBwO1xuICB9XG4gIGNvbnN0IGhhbGYgPSBNYXRoLmZsb29yKChtYXhXaWR0aCAtIDMpIC8gMik7XG4gIHJldHVybiBwLnNsaWNlKDAsIGhhbGYpICsgJy4uLicgKyBwLnNsaWNlKC1oYWxmKTtcbn1cblxuIl19
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBRTVDLHFDQUE2RDtBQUU3RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQUM3RDs7T0FFRztJQUNLLEtBQUssQ0FBa0I7SUFFL0IsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLEtBQUs7UUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsZ0NBQWdDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsR0FBRyxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFDdkYscUJBQXFCLENBQ3RCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSw4RUFBOEU7UUFDOUUsd0VBQXdFO1FBQ3hFLE1BQU0sT0FBTyxHQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFP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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgUmV3cml0YWJsZUJsb2NrIH0gZnJvbSAnLi9kaXNwbGF5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGlzRXJyb3JFdmVudCwgcGFkTGVmdCwgcGFkUmlnaHQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIHRoZSByZXNvdXJjZXMgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWRcbiAqXG4gKiBJdCB3aWxsIGNvbnRpbnVvdXNseSByZS11cGRhdGUgdGhlIHRlcm1pbmFsIGFuZCBzaG93IG9ubHkgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWQsIGluIGFkZGl0aW9uIHRvIGEgcHJvZ3Jlc3MgYmFyIHdoaWNoXG4gKiBzaG93cyBob3cgZmFyIGFsb25nIHRoZSBkZXBsb3ltZW50IGlzLlxuICpcbiAqIFJlc291cmNlcyB0aGF0IGhhdmUgZmFpbGVkIHdpbGwgYWx3YXlzIGJlIHNob3duLCBhbmQgd2lsbCBiZSByZWNhcGl0dWxhdGVkXG4gKiBhbG9uZyB3aXRoIHRoZWlyIHN0YWNrIHRyYWNlIHdoZW4gdGhlIG1vbml0b3JpbmcgZW5kcy5cbiAqXG4gKiBSZXNvdXJjZXMgdGhhdCBmYWlsZWQgZGVwbG95bWVudCBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuIGNhbmNlbGxlZCBhcmVcbiAqIG5vdCBpbmNsdWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIgZXh0ZW5kcyBBY3Rpdml0eVByaW50ZXJCYXNlIHtcbiAgLyoqXG4gICAqIENvbnRpbnVvdXNseSB3cml0ZSB0byB0aGUgc2FtZSBvdXRwdXQgYmxvY2suXG4gICAqL1xuICBwcml2YXRlIGJsb2NrOiBSZXdyaXRhYmxlQmxvY2s7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuYmxvY2sgPSBuZXcgUmV3cml0YWJsZUJsb2NrKHRoaXMuc3RyZWFtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmludCgpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuXG4gICAgLy8gQWRkIGEgcHJvZ3Jlc3MgYmFyIGF0IHRoZSB0b3BcbiAgICBjb25zdCBwcm9ncmVzc1dpZHRoID0gTWF0aC5tYXgoXG4gICAgICBNYXRoLm1pbigodGhpcy5ibG9jay53aWR0aCA/PyA4MCkgLSBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSAtIDEsIE1BWF9QUk9HUkVTU0JBUl9XSURUSCksXG4gICAgICBNSU5fUFJPR1JFU1NCQVJfV0lEVEgsXG4gICAgKTtcbiAgICBjb25zdCBwcm9nID0gdGhpcy5wcm9ncmVzc0Jhcihwcm9ncmVzc1dpZHRoKTtcbiAgICBpZiAocHJvZykge1xuICAgICAgbGluZXMucHVzaCgnICAnICsgcHJvZywgJycpO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbGx5IHdlJ2Qgb25seSBwcmludCBcInJlc291cmNlcyBpbiBwcm9ncmVzc1wiLCBidXQgaXQncyBhbHNvIHVzZWZ1bFxuICAgIC8vIHRvIGtlZXAgYW4gZXllIG9uIHRoZSBmYWlsdXJlcyBhbmQga25vdyBhYm91dCB0aGUgc3BlY2lmaWMgZXJyb3JzIGFzcXVpY2tseVxuICAgIC8vIGFzIHBvc3NpYmxlICh3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgcm9sbGluZyBiYWNrKSwgc28gYWRkIHRob3NlIGluLlxuICAgIGNvbnN0IHRvUHJpbnQ6IFN0YWNrQWN0aXZpdHlbXSA9IFsuLi50aGlzLmZhaWx1cmVzLCAuLi5PYmplY3QudmFsdWVzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcyldO1xuICAgIHRvUHJpbnQuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLmdldFRpbWUoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS5nZXRUaW1lKCkpO1xuXG4gICAgbGluZXMucHVzaChcbiAgICAgIC4uLnRvUHJpbnQubWFwKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShyZXMuZXZlbnQuUmVzb3VyY2VTdGF0dXMpO1xuICAgICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSByZXMubWV0YWRhdGE/LmNvbnN0cnVjdFBhdGggPz8gcmVzLmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnO1xuXG4gICAgICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgfCAlcyB8ICVzIHwgJXMlcycsXG4gICAgICAgICAgcGFkTGVmdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCwgbmV3IERhdGUocmVzLmV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgICBjb2xvcihwYWRSaWdodChDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKHJlcy5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSksXG4gICAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgcmVzLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgY29sb3IoY2hhbGsuYm9sZChzaG9ydGVuKDQwLCByZXNvdXJjZU5hbWUpKSksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShyZXMpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIHN1cGVyLnN0b3AoKTtcblxuICAgIC8vIFByaW50IGZhaWx1cmVzIGF0IHRoZSBlbmRcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHRoaXMuZmFpbHVyZXMpIHtcbiAgICAgIC8vIFJvb3Qgc3RhY2sgZmFpbHVyZXMgYXJlIG5vdCBpbnRlcmVzdGluZ1xuICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICBjaGFsay5yZWQoJyVzIHwgJXMgfCAlcyB8ICVzJXMnKSArICdcXG4nLFxuICAgICAgICAgIHBhZExlZnQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEgsIG5ldyBEYXRlKGZhaWx1cmUuZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICAgIHBhZFJpZ2h0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZmFpbHVyZS5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSxcbiAgICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBmYWlsdXJlLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgc2hvcnRlbig0MCwgZmFpbHVyZS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/PyAnJyksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShmYWlsdXJlKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHRyYWNlID0gZmFpbHVyZS5tZXRhZGF0YT8uZW50cnk/LnRyYWNlO1xuICAgICAgaWYgKHRyYWNlKSB7XG4gICAgICAgIGxpbmVzLnB1c2goY2hhbGsucmVkKGBcXHQke3RyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfVxcbmApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGluIHRoZSBzYW1lIGJsb2NrIHNwYWNlLCBvdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gaGF2ZSBzaWxseSBlbXB0eSBsaW5lcy5cbiAgICB0aGlzLmJsb2NrLmRpc3BsYXlMaW5lcyhsaW5lcyk7XG4gICAgdGhpcy5ibG9jay5yZW1vdmVFbXB0eUxpbmVzKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2dyZXNzQmFyKHdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuc3RhY2tQcm9ncmVzcyB8fCAhdGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4odGhpcy5zdGFja1Byb2dyZXNzLmNvbXBsZXRlZCAvIHRoaXMuc3RhY2tQcm9ncmVzcy50b3RhbCwgMSk7XG4gICAgY29uc3QgaW5uZXJXaWR0aCA9IE1hdGgubWF4KDEsIHdpZHRoIC0gMik7XG4gICAgY29uc3QgY2hhcnMgPSBpbm5lcldpZHRoICogZnJhY3Rpb247XG4gICAgY29uc3QgcmVtYWluZGVyID0gY2hhcnMgLSBNYXRoLmZsb29yKGNoYXJzKTtcblxuICAgIGNvbnN0IGZ1bGxDaGFycyA9IEZVTExfQkxPQ0sucmVwZWF0KE1hdGguZmxvb3IoY2hhcnMpKTtcbiAgICBjb25zdCBwYXJ0aWFsQ2hhciA9IFBBUlRJQUxfQkxPQ0tbTWF0aC5mbG9vcihyZW1haW5kZXIgKiBQQVJUSUFMX0JMT0NLLmxlbmd0aCldO1xuICAgIGNvbnN0IGZpbGxlciA9ICfCtycucmVwZWF0KGlubmVyV2lkdGggLSBNYXRoLmZsb29yKGNoYXJzKSAtIChwYXJ0aWFsQ2hhciA/IDEgOiAwKSk7XG5cbiAgICBjb25zdCBjb2xvciA9IHRoaXMucm9sbGluZ0JhY2sgPyBjaGFsay55ZWxsb3cgOiBjaGFsay5ncmVlbjtcblxuICAgIHJldHVybiAnWycgKyBjb2xvcihmdWxsQ2hhcnMgKyBwYXJ0aWFsQ2hhcikgKyBmaWxsZXIgKyBgXSAoJHt0aGlzLnN0YWNrUHJvZ3Jlc3MuY29tcGxldGVkfS8ke3RoaXMuc3RhY2tQcm9ncmVzcy50b3RhbH0pYDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gaXNFcnJvckV2ZW50KGFjdGl2aXR5LmV2ZW50KVxuICAgICAgPyBgXFxuJHsnICcucmVwZWF0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRIICsgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEggKyA2KX0ke2NoYWxrLnJlZCh0aGlzLmZhaWx1cmVSZWFzb24oYWN0aXZpdHkpID8/ICcnKX1gXG4gICAgICA6ICcnO1xuICB9XG59XG5cbmNvbnN0IEZVTExfQkxPQ0sgPSAn4paIJztcbmNvbnN0IFBBUlRJQUxfQkxPQ0sgPSBbJycsICfilo8nLCAn4paOJywgJ+KWjScsICfilownLCAn4paLJywgJ+KWiicsICfiloknXTtcbmNvbnN0IE1BWF9QUk9HUkVTU0JBUl9XSURUSCA9IDYwO1xuY29uc3QgTUlOX1BST0dSRVNTQkFSX1dJRFRIID0gMTA7XG5jb25zdCBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSA9XG4gICAgMiAvKiBsZWFkaW5nIHNwYWNlcyAqLyArIDIgLyogYnJhY2tldHMgKi8gKyA0IC8qIHByb2dyZXNzIG51bWJlciBkZWNvcmF0aW9uICovICsgNjsgLyogMiBwcm9ncmVzcyBudW1iZXJzIHVwIHRvIDk5OSAqL1xuXG5mdW5jdGlvbiBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICByZXR1cm4gY2hhbGsucmVkO1xuICB9XG5cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdDUkVBVEVfJykgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoJ1VQREFURV8nKSB8fCBzdGF0dXMuc3RhcnRzV2l0aCgnSU1QT1JUXycpKSB7XG4gICAgcmV0dXJuIGNoYWxrLmdyZWVuO1xuICB9XG4gIC8vIEZvciBzdGFja3MsIGl0IG1heSBhbHNvIGJlICdVUEREQVRFX1JPTExCQUNLX0lOX1BST0dSRVNTJ1xuICBpZiAoc3RhdHVzLmluZGV4T2YoJ1JPTExCQUNLXycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdERUxFVEVfJykpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG5cbiAgcmV0dXJuIGNoYWxrLnJlc2V0O1xufVxuXG5mdW5jdGlvbiBzaG9ydGVuKG1heFdpZHRoOiBudW1iZXIsIHA6IHN0cmluZykge1xuICBpZiAocC5sZW5ndGggPD0gbWF4V2lkdGgpIHtcbiAgICByZXR1cm4gcDtcbiAgfVxuICBjb25zdCBoYWxmID0gTWF0aC5mbG9vcigobWF4V2lkdGggLSAzKSAvIDIpO1xuICByZXR1cm4gcC5zbGljZSgwLCBoYWxmKSArICcuLi4nICsgcC5zbGljZSgtaGFsZik7XG59XG5cbiJdfQ==
|
|
@@ -11,6 +11,10 @@ export declare class ToolkitError extends Error {
|
|
|
11
11
|
* Determines if a given error is an instance of AuthenticationError.
|
|
12
12
|
*/
|
|
13
13
|
static isAuthenticationError(x: any): x is AuthenticationError;
|
|
14
|
+
/**
|
|
15
|
+
* Determines if a given error is an instance of DeploymentError.
|
|
16
|
+
*/
|
|
17
|
+
static isDeploymentError(x: any): x is DeploymentError;
|
|
14
18
|
/**
|
|
15
19
|
* Determines if a given error is an instance of AssemblyError.
|
|
16
20
|
*/
|
|
@@ -22,7 +26,7 @@ export declare class ToolkitError extends Error {
|
|
|
22
26
|
/**
|
|
23
27
|
* A ToolkitError with an original error as cause
|
|
24
28
|
*/
|
|
25
|
-
static withCause(message: string, error: unknown): ToolkitError;
|
|
29
|
+
static withCause(errorCode: string, message: string, error: unknown): ToolkitError;
|
|
26
30
|
/**
|
|
27
31
|
* The type of the error, defaults to "toolkit".
|
|
28
32
|
*/
|
|
@@ -35,7 +39,7 @@ export declare class ToolkitError extends Error {
|
|
|
35
39
|
* The specific original cause of the error, if available
|
|
36
40
|
*/
|
|
37
41
|
readonly cause?: unknown;
|
|
38
|
-
constructor(message: string, type?: string, cause?: unknown);
|
|
42
|
+
constructor(errorCode: string, message: string, type?: string, cause?: unknown);
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
41
45
|
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
@@ -45,7 +49,7 @@ export declare class AuthenticationError extends ToolkitError {
|
|
|
45
49
|
* Denotes the source of the error as user.
|
|
46
50
|
*/
|
|
47
51
|
readonly source = "user";
|
|
48
|
-
constructor(message: string);
|
|
52
|
+
constructor(errorCode: string, message: string);
|
|
49
53
|
}
|
|
50
54
|
/**
|
|
51
55
|
* Represents an error causes by cloud assembly synthesis
|
|
@@ -72,7 +76,24 @@ export declare class AssemblyError extends ToolkitError {
|
|
|
72
76
|
* Absence indicates synthesis didn't fully complete.
|
|
73
77
|
*/
|
|
74
78
|
readonly stacks?: cxapi.CloudFormationStackArtifact[];
|
|
79
|
+
private _synthErrorCode;
|
|
75
80
|
private constructor();
|
|
81
|
+
/**
|
|
82
|
+
* The synthesis error code
|
|
83
|
+
*/
|
|
84
|
+
get synthErrorCode(): string | undefined;
|
|
85
|
+
attachSynthesisErrorCode(synthesisErrorCode: string): void;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Represents a deployment-related error in the AWS CDK Toolkit.
|
|
89
|
+
*/
|
|
90
|
+
export declare class DeploymentError extends ToolkitError {
|
|
91
|
+
/**
|
|
92
|
+
* Denotes the source of the error as user.
|
|
93
|
+
*/
|
|
94
|
+
readonly source = "user";
|
|
95
|
+
readonly deploymentErrorCode: string;
|
|
96
|
+
constructor(message: string, deploymentErrorCode: string);
|
|
76
97
|
}
|
|
77
98
|
/**
|
|
78
99
|
* Represents an error originating from a Context Provider
|
|
@@ -85,12 +106,12 @@ export declare class ContextProviderError extends ToolkitError {
|
|
|
85
106
|
/**
|
|
86
107
|
* A ContextProviderError with an original error as cause
|
|
87
108
|
*/
|
|
88
|
-
static withCause(message: string, error: unknown): ContextProviderError;
|
|
109
|
+
static withCause(errorCode: string, message: string, error: unknown): ContextProviderError;
|
|
89
110
|
/**
|
|
90
111
|
* Denotes the source of the error as user.
|
|
91
112
|
*/
|
|
92
113
|
readonly source = "user";
|
|
93
|
-
constructor(message: string, cause?: unknown);
|
|
114
|
+
constructor(errorCode: string, message: string, cause?: unknown);
|
|
94
115
|
}
|
|
95
116
|
/**
|
|
96
117
|
* A specific context provider lookup failure indicating no results where found for a context query
|
|
@@ -98,4 +119,9 @@ export declare class ContextProviderError extends ToolkitError {
|
|
|
98
119
|
export declare class NoResultsFoundError extends ContextProviderError {
|
|
99
120
|
constructor(message: string);
|
|
100
121
|
}
|
|
122
|
+
export declare abstract class DeploymentErrorCodes {
|
|
123
|
+
static readonly STACK_DISAPPEARED_ERROR_CODE = "StackDisappeared";
|
|
124
|
+
static readonly UNKNOWN_ERROR = "UnknownError";
|
|
125
|
+
static readonly PRIVATE_RESOURCE_ERROR = "PrivateResourceError";
|
|
126
|
+
}
|
|
101
127
|
//# sourceMappingURL=toolkit-error.d.ts.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NoResultsFoundError = exports.ContextProviderError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;
|
|
3
|
+
exports.DeploymentErrorCodes = exports.NoResultsFoundError = exports.ContextProviderError = exports.DeploymentError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;
|
|
4
4
|
const TOOLKIT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ToolkitError');
|
|
5
5
|
const AUTHENTICATION_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AuthenticationError');
|
|
6
|
+
const DEPLOYMENT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.DeploymentError');
|
|
6
7
|
const ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AssemblyError');
|
|
7
8
|
const CONTEXT_PROVIDER_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ContextProviderError');
|
|
8
9
|
const NO_RESULTS_FOUND_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.NoResultsFoundError');
|
|
@@ -22,6 +23,12 @@ class ToolkitError extends Error {
|
|
|
22
23
|
static isAuthenticationError(x) {
|
|
23
24
|
return ToolkitError.isToolkitError(x) && AUTHENTICATION_ERROR_SYMBOL in x;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Determines if a given error is an instance of DeploymentError.
|
|
28
|
+
*/
|
|
29
|
+
static isDeploymentError(x) {
|
|
30
|
+
return ToolkitError.isToolkitError(x) && DEPLOYMENT_ERROR_SYMBOL in x;
|
|
31
|
+
}
|
|
25
32
|
/**
|
|
26
33
|
* Determines if a given error is an instance of AssemblyError.
|
|
27
34
|
*/
|
|
@@ -37,8 +44,8 @@ class ToolkitError extends Error {
|
|
|
37
44
|
/**
|
|
38
45
|
* A ToolkitError with an original error as cause
|
|
39
46
|
*/
|
|
40
|
-
static withCause(message, error) {
|
|
41
|
-
return new ToolkitError(message, 'toolkit', error);
|
|
47
|
+
static withCause(errorCode, message, error) {
|
|
48
|
+
return new ToolkitError(errorCode, message, 'toolkit', error);
|
|
42
49
|
}
|
|
43
50
|
/**
|
|
44
51
|
* The type of the error, defaults to "toolkit".
|
|
@@ -52,11 +59,11 @@ class ToolkitError extends Error {
|
|
|
52
59
|
* The specific original cause of the error, if available
|
|
53
60
|
*/
|
|
54
61
|
cause;
|
|
55
|
-
constructor(message, type = 'toolkit', cause) {
|
|
62
|
+
constructor(errorCode, message, type = 'toolkit', cause) {
|
|
56
63
|
super(message);
|
|
64
|
+
this.name = errorCode;
|
|
57
65
|
Object.setPrototypeOf(this, ToolkitError.prototype);
|
|
58
66
|
Object.defineProperty(this, TOOLKIT_ERROR_SYMBOL, { value: true });
|
|
59
|
-
this.name = new.target.name;
|
|
60
67
|
this.type = type;
|
|
61
68
|
this.source = 'toolkit';
|
|
62
69
|
this.cause = cause;
|
|
@@ -71,8 +78,8 @@ class AuthenticationError extends ToolkitError {
|
|
|
71
78
|
* Denotes the source of the error as user.
|
|
72
79
|
*/
|
|
73
80
|
source = 'user';
|
|
74
|
-
constructor(message) {
|
|
75
|
-
super(message, 'authentication');
|
|
81
|
+
constructor(errorCode, message) {
|
|
82
|
+
super(errorCode, message, 'authentication');
|
|
76
83
|
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
77
84
|
Object.defineProperty(this, AUTHENTICATION_ERROR_SYMBOL, { value: true });
|
|
78
85
|
}
|
|
@@ -107,14 +114,41 @@ class AssemblyError extends ToolkitError {
|
|
|
107
114
|
* Absence indicates synthesis didn't fully complete.
|
|
108
115
|
*/
|
|
109
116
|
stacks;
|
|
117
|
+
_synthErrorCode;
|
|
110
118
|
constructor(message, stacks, cause) {
|
|
111
|
-
super(message, 'assembly', cause);
|
|
119
|
+
super('AssemblyError', message, 'assembly', cause);
|
|
112
120
|
Object.setPrototypeOf(this, AssemblyError.prototype);
|
|
113
121
|
Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });
|
|
114
122
|
this.stacks = stacks;
|
|
115
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* The synthesis error code
|
|
126
|
+
*/
|
|
127
|
+
get synthErrorCode() {
|
|
128
|
+
return this._synthErrorCode;
|
|
129
|
+
}
|
|
130
|
+
attachSynthesisErrorCode(synthesisErrorCode) {
|
|
131
|
+
this._synthErrorCode = synthesisErrorCode;
|
|
132
|
+
}
|
|
116
133
|
}
|
|
117
134
|
exports.AssemblyError = AssemblyError;
|
|
135
|
+
/**
|
|
136
|
+
* Represents a deployment-related error in the AWS CDK Toolkit.
|
|
137
|
+
*/
|
|
138
|
+
class DeploymentError extends ToolkitError {
|
|
139
|
+
/**
|
|
140
|
+
* Denotes the source of the error as user.
|
|
141
|
+
*/
|
|
142
|
+
source = 'user';
|
|
143
|
+
deploymentErrorCode;
|
|
144
|
+
constructor(message, deploymentErrorCode) {
|
|
145
|
+
super('DeploymentError', message, 'deployment');
|
|
146
|
+
Object.setPrototypeOf(this, DeploymentError.prototype);
|
|
147
|
+
Object.defineProperty(this, DEPLOYMENT_ERROR_SYMBOL, { value: true });
|
|
148
|
+
this.deploymentErrorCode = deploymentErrorCode;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.DeploymentError = DeploymentError;
|
|
118
152
|
/**
|
|
119
153
|
* Represents an error originating from a Context Provider
|
|
120
154
|
*/
|
|
@@ -128,15 +162,15 @@ class ContextProviderError extends ToolkitError {
|
|
|
128
162
|
/**
|
|
129
163
|
* A ContextProviderError with an original error as cause
|
|
130
164
|
*/
|
|
131
|
-
static withCause(message, error) {
|
|
132
|
-
return new ContextProviderError(message, error);
|
|
165
|
+
static withCause(errorCode, message, error) {
|
|
166
|
+
return new ContextProviderError(errorCode, message, error);
|
|
133
167
|
}
|
|
134
168
|
/**
|
|
135
169
|
* Denotes the source of the error as user.
|
|
136
170
|
*/
|
|
137
171
|
source = 'user';
|
|
138
|
-
constructor(message, cause) {
|
|
139
|
-
super(message, 'context-provider', cause);
|
|
172
|
+
constructor(errorCode, message, cause) {
|
|
173
|
+
super(errorCode, message, 'context-provider', cause);
|
|
140
174
|
Object.setPrototypeOf(this, ContextProviderError.prototype);
|
|
141
175
|
Object.defineProperty(this, CONTEXT_PROVIDER_ERROR_SYMBOL, { value: true });
|
|
142
176
|
}
|
|
@@ -147,10 +181,16 @@ exports.ContextProviderError = ContextProviderError;
|
|
|
147
181
|
*/
|
|
148
182
|
class NoResultsFoundError extends ContextProviderError {
|
|
149
183
|
constructor(message) {
|
|
150
|
-
super(message);
|
|
184
|
+
super('NoResultsFound', message);
|
|
151
185
|
Object.setPrototypeOf(this, NoResultsFoundError.prototype);
|
|
152
186
|
Object.defineProperty(this, NO_RESULTS_FOUND_ERROR_SYMBOL, { value: true });
|
|
153
187
|
}
|
|
154
188
|
}
|
|
155
189
|
exports.NoResultsFoundError = NoResultsFoundError;
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDN0UsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDM0YsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDOUYsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFFN0Y7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBTTtRQUN4QyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFNO1FBQ3pDLE9BQU8sWUFBWSxDQUFDLGNBQWMs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QyxTQUFTLENBQUMsT0FBZSxFQUFFLEtBQWM7UUFDckQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRWhDLFlBQVksT0FBZSxFQUFFLEtBQWU7UUFDMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQXpCRCxvREF5QkM7QUFFRDs7R0FFRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsb0JBQW9CO0lBQzNELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQU5ELGtEQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5jb25zdCBUT09MS0lUX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLlRvb2xraXRFcnJvcicpO1xuY29uc3QgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQXV0aGVudGljYXRpb25FcnJvcicpO1xuY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQXNzZW1ibHlFcnJvcicpO1xuY29uc3QgQ09OVEVYVF9QUk9WSURFUl9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5Db250ZXh0UHJvdmlkZXJFcnJvcicpO1xuY29uc3QgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5Ob1Jlc3VsdHNGb3VuZEVycm9yJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyYWwgdG9vbGtpdCBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgVG9vbGtpdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIFRvb2xraXRFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNUb29sa2l0RXJyb3IoeDogYW55KTogeCBpcyBUb29sa2l0RXJyb3Ige1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZih4KSA9PT0gJ29iamVjdCcgJiYgVE9PTEtJVF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXV0aGVudGljYXRpb25FcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBdXRoZW50aWNhdGlvbkVycm9yKHg6IGFueSk6IHggaXMgQXV0aGVudGljYXRpb25FcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXNzZW1ibHlFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBc3NlbWJseUVycm9yKHg6IGFueSk6IHggaXMgQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQ29udGV4dFByb3ZpZGVyRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeDogYW55KTogeCBpcyBDb250ZXh0UHJvdmlkZXJFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgVG9vbGtpdEVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24pOiBUb29sa2l0RXJyb3Ige1xuICAgIHJldHVybiBuZXcgVG9vbGtpdEVycm9yKG1lc3NhZ2UsICd0b29sa2l0JywgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBlcnJvciwgZGVmYXVsdHMgdG8gXCJ0b29sa2l0XCIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHRoZSB0b29sa2l0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogJ3Rvb2xraXQnIHwgJ3VzZXInO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgb3JpZ2luYWwgY2F1c2Ugb2YgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXVzZT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcgPSAndG9vbGtpdCcsIGNhdXNlPzogdW5rbm93bikge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUb29sa2l0RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgVE9PTEtJVF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5uYW1lID0gbmV3LnRhcmdldC5uYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5zb3VyY2UgPSAndG9vbGtpdCc7XG4gICAgdGhpcy5jYXVzZSA9IGNhdXNlO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdXRoZW50aWNhdGlvbi1zcGVjaWZpYyBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25FcnJvciBleHRlbmRzIFRvb2xraXRFcnJvciB7XG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlID0gJ3VzZXInO1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UsICdhdXRoZW50aWNhdGlvbicpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBdXRoZW50aWNhdGlvbkVycm9yLnByb3RvdHlwZSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEFVVEhFTlRJQ0FUSU9OX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3IgY2F1c2VzIGJ5IGNsb3VkIGFzc2VtYmx5IHN5bnRoZXNpc1xuICpcbiAqIFRoaXMgaW5jbHVkZXMgZXJyb3JzIHRocm93biBkdXJpbmcgYXBwIGV4ZWN1dGlvbiwgYXMgd2VsbCBhcyBmYWlsaW5nIGFubm90YXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZW1ibHlFcnJvciBleHRlbmRzIFRvb2xraXRFcnJvciB7XG4gIC8qKlxuICAgKiBBbiBBc3NlbWJseUVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24pOiBBc3NlbWJseUVycm9yIHtcbiAgICByZXR1cm4gbmV3IEFzc2VtYmx5RXJyb3IobWVzc2FnZSwgdW5kZWZpbmVkLCBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGEgbGlzdCBvZiBzdGFja3MgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aFN0YWNrcyhtZXNzYWdlOiBzdHJpbmcsIHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdKTogQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBc3NlbWJseUVycm9yKG1lc3NhZ2UsIHN0YWNrcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICAvKipcbiAgICogVGhlIHN0YWNrcyB0aGF0IGNhdXNlZCB0aGUgZXJyb3IsIGlmIGF2YWlsYWJsZVxuICAgKlxuICAgKiBUaGUgYG1lc3NhZ2VzYCBwcm9wZXJ0eSBvZiBlYWNoIGBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIHdpbGwgY29udGFpbiB0aGUgcmVzcGVjdGl2ZSBlcnJvcnMuXG4gICAqIEFic2VuY2UgaW5kaWNhdGVzIHN5bnRoZXNpcyBkaWRuJ3QgZnVsbHkgY29tcGxldGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tzPzogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihtZXNzYWdlLCAnYXNzZW1ibHknLCBjYXVzZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFzc2VtYmx5RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVNTRU1CTFlfRVJST1JfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMuc3RhY2tzID0gc3RhY2tzO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlcnJvciBvcmlnaW5hdGluZyBmcm9tIGEgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgQ29udGV4dFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIE5vUmVzdWx0c0ZvdW5kRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTm9SZXN1bHRzRm91bmRFcnJvcih4OiBhbnkpOiB4IGlzIE5vUmVzdWx0c0ZvdW5kRXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNDb250ZXh0UHJvdmlkZXJFcnJvcih4KSAmJiBOT19SRVNVTFRTX0ZPVU5EX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ29udGV4dFByb3ZpZGVyRXJyb3Igd2l0aCBhbiBvcmlnaW5hbCBlcnJvciBhcyBjYXVzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoQ2F1c2UobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93bik6IENvbnRleHRQcm92aWRlckVycm9yIHtcbiAgICByZXR1cm4gbmV3IENvbnRleHRQcm92aWRlckVycm9yKG1lc3NhZ2UsIGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlID0gJ3VzZXInO1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgY2F1c2U/OiB1bmtub3duKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgJ2NvbnRleHQtcHJvdmlkZXInLCBjYXVzZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENvbnRleHRQcm92aWRlckVycm9yLnByb3RvdHlwZSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogQSBzcGVjaWZpYyBjb250ZXh0IHByb3ZpZGVyIGxvb2t1cCBmYWlsdXJlIGluZGljYXRpbmcgbm8gcmVzdWx0cyB3aGVyZSBmb3VuZCBmb3IgYSBjb250ZXh0IHF1ZXJ5XG4gKi9cbmV4cG9ydCBjbGFzcyBOb1Jlc3VsdHNGb3VuZEVycm9yIGV4dGVuZHMgQ29udGV4dFByb3ZpZGVyRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9SZXN1bHRzRm91bmRFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBOT19SRVNVTFRTX0ZPVU5EX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
|
|
190
|
+
class DeploymentErrorCodes {
|
|
191
|
+
static STACK_DISAPPEARED_ERROR_CODE = 'StackDisappeared';
|
|
192
|
+
static UNKNOWN_ERROR = 'UnknownError';
|
|
193
|
+
static PRIVATE_RESOURCE_ERROR = 'PrivateResourceError';
|
|
194
|
+
}
|
|
195
|
+
exports.DeploymentErrorCodes = DeploymentErrorCodes;
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDN0UsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDM0YsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFDbkYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDOUYsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFFN0Y7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBTTtRQUN4QyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFNO1FBQ3BDLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztP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R0FBRyxNQUFNLENBQUM7SUFFaEMsWUFBWSxTQUFpQixFQUFFLE9BQWUsRUFBRSxLQUFlO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBekJELG9EQXlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxvQkFBb0I7SUFDM0QsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQU5ELGtEQU1DO0FBRUQsTUFBc0Isb0JBQW9CO0lBQ2pDLE1BQU0sQ0FBVSw0QkFBNEIsR0FBRyxrQkFBa0IsQ0FBQztJQUNsRSxNQUFNLENBQVUsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUMvQyxNQUFNLENBQVUsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7O0FBSHpFLG9EQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5jb25zdCBUT09MS0lUX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLlRvb2xraXRFcnJvcicpO1xuY29uc3QgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQXV0aGVudGljYXRpb25FcnJvcicpO1xuY29uc3QgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5EZXBsb3ltZW50RXJyb3InKTtcbmNvbnN0IEFTU0VNQkxZX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLkFzc2VtYmx5RXJyb3InKTtcbmNvbnN0IENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQ29udGV4dFByb3ZpZGVyRXJyb3InKTtcbmNvbnN0IE5PX1JFU1VMVFNfRk9VTkRfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuTm9SZXN1bHRzRm91bmRFcnJvcicpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmFsIHRvb2xraXQgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBUb29sa2l0RXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVG9vbGtpdEVycm9yKHg6IGFueSk6IHggaXMgVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIFRPT0xLSVRfRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEF1dGhlbnRpY2F0aW9uRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXV0aGVudGljYXRpb25FcnJvcih4OiBhbnkpOiB4IGlzIEF1dGhlbnRpY2F0aW9uRXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIERlcGxveW1lbnRFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNEZXBsb3ltZW50RXJyb3IoeDogYW55KTogeCBpcyBEZXBsb3ltZW50RXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXNzZW1ibHlFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBc3NlbWJseUVycm9yKHg6IGFueSk6IHggaXMgQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQ29udGV4dFByb3ZpZGVyRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeDogYW55KTogeCBpcyBDb250ZXh0UHJvdmlkZXJFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgVG9vbGtpdEVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4gbmV3IFRvb2xraXRFcnJvcihlcnJvckNvZGUsIG1lc3NhZ2UsICd0b29sa2l0JywgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBlcnJvciwgZGVmYXVsdHMgdG8gXCJ0b29sa2l0XCIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHRoZSB0b29sa2l0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogJ3Rvb2xraXQnIHwgJ3VzZXInO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgb3JpZ2luYWwgY2F1c2Ugb2YgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXVzZT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoZXJyb3JDb2RlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ3Rvb2xraXQnLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSBlcnJvckNvZGU7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb2xraXRFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBUT09MS0lUX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc291cmNlID0gJ3Rvb2xraXQnO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXV0aGVudGljYXRpb24tc3BlY2lmaWMgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoZXJyb3JDb2RlLCBtZXNzYWdlLCAnYXV0aGVudGljYXRpb24nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aGVudGljYXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVycm9yIGNhdXNlcyBieSBjbG91ZCBhc3NlbWJseSBzeW50aGVzaXNcbiAqXG4gKiBUaGlzIGluY2x1ZGVzIGVycm9ycyB0aHJvd24gZHVyaW5nIGFwcCBleGVjdXRpb24sIGFzIHdlbGwgYXMgZmFpbGluZyBhbm5vdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2VtYmx5RXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGFuIG9yaWdpbmFsIGVycm9yIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhDYXVzZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBc3NlbWJseUVycm9yKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIEFzc2VtYmx5RXJyb3Igd2l0aCBhIGxpc3Qgb2Ygc3RhY2tzIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdGFja3MobWVzc2FnZTogc3RyaW5nLCBzdGFja3M/OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSk6IEFzc2VtYmx5RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXNzZW1ibHlFcnJvcihtZXNzYWdlLCBzdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFja3MgdGhhdCBjYXVzZWQgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICpcbiAgICogVGhlIGBtZXNzYWdlc2AgcHJvcGVydHkgb2YgZWFjaCBgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YCB3aWxsIGNvbnRhaW4gdGhlIHJlc3BlY3RpdmUgZXJyb3JzLlxuICAgKiBBYnNlbmNlIGluZGljYXRlcyBzeW50aGVzaXMgZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xuXG4gIHByaXZhdGUgX3N5bnRoRXJyb3JDb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcignQXNzZW1ibHlFcnJvcicsIG1lc3NhZ2UsICdhc3NlbWJseScsIGNhdXNlKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5zdGFja3MgPSBzdGFja3M7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN5bnRoZXNpcyBlcnJvciBjb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN5bnRoRXJyb3JDb2RlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N5bnRoRXJyb3JDb2RlO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaFN5bnRoZXNpc0Vycm9yQ29kZShzeW50aGVzaXNFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHRoaXMuX3N5bnRoRXJyb3JDb2RlID0gc3ludGhlc2lzRXJyb3JDb2RlO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveW1lbnQtcmVsYXRlZCBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudEVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKCdEZXBsb3ltZW50RXJyb3InLCBtZXNzYWdlLCAnZGVwbG95bWVudCcpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEZXBsb3ltZW50RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5kZXBsb3ltZW50RXJyb3JDb2RlID0gZGVwbG95bWVudEVycm9yQ29kZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3Igb3JpZ2luYXRpbmcgZnJvbSBhIENvbnRleHQgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRQcm92aWRlckVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBOb1Jlc3VsdHNGb3VuZEVycm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05vUmVzdWx0c0ZvdW5kRXJyb3IoeDogYW55KTogeCBpcyBOb1Jlc3VsdHNGb3VuZEVycm9yIHtcbiAgICByZXR1cm4gVG9vbGtpdEVycm9yLmlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeCkgJiYgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENvbnRleHRQcm92aWRlckVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQ29udGV4dFByb3ZpZGVyRXJyb3Ige1xuICAgIHJldHVybiBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoZXJyb3JDb2RlLCBtZXNzYWdlLCBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihlcnJvckNvZGUsIG1lc3NhZ2UsICdjb250ZXh0LXByb3ZpZGVyJywgY2F1c2UpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250ZXh0UHJvdmlkZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc3BlY2lmaWMgY29udGV4dCBwcm92aWRlciBsb29rdXAgZmFpbHVyZSBpbmRpY2F0aW5nIG5vIHJlc3VsdHMgd2hlcmUgZm91bmQgZm9yIGEgY29udGV4dCBxdWVyeVxuICovXG5leHBvcnQgY2xhc3MgTm9SZXN1bHRzRm91bmRFcnJvciBleHRlbmRzIENvbnRleHRQcm92aWRlckVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ05vUmVzdWx0c0ZvdW5kJywgbWVzc2FnZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vUmVzdWx0c0ZvdW5kRXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlcGxveW1lbnRFcnJvckNvZGVzIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVEFDS19ESVNBUFBFQVJFRF9FUlJPUl9DT0RFID0gJ1N0YWNrRGlzYXBwZWFyZWQnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOS05PV05fRVJST1IgPSAnVW5rbm93bkVycm9yJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUklWQVRFX1JFU09VUkNFX0VSUk9SID0gJ1ByaXZhdGVSZXNvdXJjZUVycm9yJztcbn1cblxuIl19
|