aws-cdk 2.1005.0 → 2.1007.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_LICENSES +86 -86
  3. package/build-info.json +2 -2
  4. package/db.json.gz +0 -0
  5. package/lib/api/aws-auth/awscli-compatible.js +9 -10
  6. package/lib/api/aws-auth/credential-plugins.js +6 -7
  7. package/lib/api/aws-auth/sdk-logger.js +3 -4
  8. package/lib/api/aws-auth/sdk-provider.js +11 -13
  9. package/lib/api/aws-auth/sdk.js +8 -9
  10. package/lib/api/aws-auth/tracing.js +3 -4
  11. package/lib/api/aws-auth/user-agent.js +4 -5
  12. package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
  13. package/lib/api/bootstrap/bootstrap-environment.js +42 -46
  14. package/lib/api/bootstrap/bootstrap-props.d.ts +1 -1
  15. package/lib/api/bootstrap/bootstrap-props.js +1 -1
  16. package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
  17. package/lib/api/bootstrap/deploy-bootstrap.js +11 -14
  18. package/lib/api/{evaluate-cloudformation-template.d.ts → cloudformation/evaluate-cloudformation-template.d.ts} +4 -8
  19. package/lib/api/{evaluate-cloudformation-template.js → cloudformation/evaluate-cloudformation-template.js} +16 -25
  20. package/lib/api/cloudformation/index.d.ts +4 -0
  21. package/lib/api/cloudformation/index.js +21 -0
  22. package/lib/api/{deployments → cloudformation}/nested-stack-helpers.d.ts +3 -9
  23. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  24. package/lib/api/cloudformation/stack-helpers.d.ts +88 -0
  25. package/lib/api/cloudformation/stack-helpers.js +158 -0
  26. package/lib/api/{util → cloudformation}/template-body-parameter.d.ts +3 -2
  27. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  28. package/lib/api/context.js +3 -3
  29. package/lib/api/cxapp/cloud-assembly.d.ts +6 -4
  30. package/lib/api/cxapp/cloud-assembly.js +25 -26
  31. package/lib/api/cxapp/cloud-executable.d.ts +5 -0
  32. package/lib/api/cxapp/cloud-executable.js +9 -10
  33. package/lib/api/cxapp/environments.js +4 -4
  34. package/lib/api/cxapp/exec.d.ts +5 -4
  35. package/lib/api/cxapp/exec.js +76 -72
  36. package/lib/api/deployments/asset-publishing.d.ts +0 -2
  37. package/lib/api/deployments/asset-publishing.js +24 -31
  38. package/lib/api/deployments/assets.d.ts +1 -1
  39. package/lib/api/deployments/assets.js +12 -13
  40. package/lib/api/deployments/{cloudformation.d.ts → cfn-api.d.ts} +5 -102
  41. package/lib/api/deployments/cfn-api.js +438 -0
  42. package/lib/api/deployments/checks.d.ts +1 -1
  43. package/lib/api/deployments/checks.js +12 -13
  44. package/lib/api/deployments/deploy-stack.d.ts +2 -3
  45. package/lib/api/deployments/deploy-stack.js +34 -45
  46. package/lib/api/deployments/deployment-result.js +3 -3
  47. package/lib/api/deployments/deployments.d.ts +3 -3
  48. package/lib/api/deployments/deployments.js +35 -42
  49. package/lib/api/deployments/hotswap-deployments.d.ts +2 -2
  50. package/lib/api/deployments/hotswap-deployments.js +122 -69
  51. package/lib/api/deployments/index.d.ts +1 -2
  52. package/lib/api/deployments/index.js +2 -3
  53. package/lib/api/environment/environment-access.d.ts +2 -2
  54. package/lib/api/environment/environment-access.js +18 -20
  55. package/lib/api/environment/environment-resources.d.ts +1 -1
  56. package/lib/api/environment/environment-resources.js +17 -19
  57. package/lib/api/environment/index.d.ts +1 -0
  58. package/lib/api/environment/index.js +2 -1
  59. package/lib/api/environment/placeholders.js +23 -0
  60. package/lib/api/garbage-collection/garbage-collector.d.ts +1 -1
  61. package/lib/api/garbage-collection/garbage-collector.js +56 -66
  62. package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
  63. package/lib/api/garbage-collection/progress-printer.js +7 -7
  64. package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
  65. package/lib/api/garbage-collection/stack-refresh.js +12 -15
  66. package/lib/api/hotswap/appsync-mapping-templates.d.ts +3 -3
  67. package/lib/api/hotswap/appsync-mapping-templates.js +25 -22
  68. package/lib/api/hotswap/code-build-projects.d.ts +3 -3
  69. package/lib/api/hotswap/code-build-projects.js +12 -7
  70. package/lib/api/hotswap/common.d.ts +13 -61
  71. package/lib/api/hotswap/common.js +40 -70
  72. package/lib/api/hotswap/ecs-services.d.ts +4 -4
  73. package/lib/api/hotswap/ecs-services.js +38 -21
  74. package/lib/api/hotswap/lambda-functions.d.ts +3 -3
  75. package/lib/api/hotswap/lambda-functions.js +23 -19
  76. package/lib/api/hotswap/s3-bucket-deployments.d.ts +3 -3
  77. package/lib/api/hotswap/s3-bucket-deployments.js +11 -7
  78. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +3 -3
  79. package/lib/api/hotswap/stepfunctions-state-machines.js +8 -4
  80. package/lib/api/logs/find-cloudwatch-logs.js +6 -7
  81. package/lib/api/logs/logs-monitor.js +5 -8
  82. package/lib/api/plugin/plugin.js +6 -10
  83. package/lib/api/resource-import/importer.d.ts +8 -8
  84. package/lib/api/resource-import/importer.js +27 -42
  85. package/lib/api/resource-import/migrator.d.ts +3 -3
  86. package/lib/api/resource-import/migrator.js +6 -6
  87. package/lib/api/settings.d.ts +0 -3
  88. package/lib/api/settings.js +4 -40
  89. package/lib/api/stack-events/stack-activity-monitor.d.ts +1 -1
  90. package/lib/api/stack-events/stack-activity-monitor.js +12 -15
  91. package/lib/api/stack-events/stack-event-poller.js +9 -10
  92. package/lib/api/toolkit-info.d.ts +2 -2
  93. package/lib/api/toolkit-info.js +20 -24
  94. package/lib/{tree.d.ts → api/tree.d.ts} +2 -2
  95. package/lib/api/tree.js +37 -0
  96. package/lib/api/util/rwlock.js +4 -4
  97. package/lib/api/work-graph/work-graph-builder.js +4 -4
  98. package/lib/api/work-graph/work-graph.d.ts +1 -1
  99. package/lib/api/work-graph/work-graph.js +13 -15
  100. package/lib/cli/activity-printer/base.d.ts +2 -2
  101. package/lib/cli/activity-printer/base.js +6 -8
  102. package/lib/cli/activity-printer/current.js +7 -11
  103. package/lib/cli/activity-printer/history.js +2 -3
  104. package/lib/cli/cdk-toolkit.d.ts +16 -19
  105. package/lib/cli/cdk-toolkit.js +118 -74
  106. package/lib/cli/ci-systems.js +2 -3
  107. package/lib/cli/cli-config.js +4 -4
  108. package/lib/cli/cli.js +49 -50
  109. package/lib/cli/convert-to-user-input.js +110 -111
  110. package/lib/{toolkit → cli/io-host}/cli-io-host.d.ts +6 -2
  111. package/lib/cli/io-host/cli-io-host.js +356 -0
  112. package/lib/cli/io-host/index.d.ts +1 -0
  113. package/lib/{toolkit/error.js → cli/io-host/index.js} +2 -2
  114. package/lib/cli/messages.d.ts +1 -1
  115. package/lib/cli/messages.js +2 -3
  116. package/lib/cli/pretty-print-error.d.ts +1 -0
  117. package/lib/cli/pretty-print-error.js +35 -0
  118. package/lib/cli/root-dir.js +4 -4
  119. package/lib/cli/user-configuration.js +57 -14
  120. package/lib/cli/util/npm.js +3 -3
  121. package/lib/cli/util/yargs-helpers.d.ts +1 -1
  122. package/lib/cli/util/yargs-helpers.js +3 -3
  123. package/lib/cli/version.js +4 -4
  124. package/lib/commands/context.js +7 -8
  125. package/lib/commands/diff.d.ts +1 -0
  126. package/lib/commands/diff.js +7 -0
  127. package/lib/commands/init/index.d.ts +1 -0
  128. package/lib/commands/init/index.js +18 -0
  129. package/lib/commands/init/init-hooks.js +63 -0
  130. package/lib/commands/init/init.js +435 -0
  131. package/lib/{os.js → commands/init/os.js} +4 -4
  132. package/lib/{list-stacks.d.ts → commands/list-stacks.d.ts} +1 -1
  133. package/lib/{list-stacks.js → commands/list-stacks.js} +2 -2
  134. package/lib/commands/migrate.js +29 -32
  135. package/lib/context-providers/ami.d.ts +3 -1
  136. package/lib/context-providers/ami.js +8 -8
  137. package/lib/context-providers/availability-zones.d.ts +3 -1
  138. package/lib/context-providers/availability-zones.js +4 -4
  139. package/lib/context-providers/cc-api-provider.d.ts +8 -12
  140. package/lib/context-providers/cc-api-provider.js +94 -66
  141. package/lib/context-providers/endpoint-service-availability-zones.d.ts +3 -1
  142. package/lib/context-providers/endpoint-service-availability-zones.js +6 -6
  143. package/lib/context-providers/hosted-zones.d.ts +3 -1
  144. package/lib/context-providers/hosted-zones.js +11 -11
  145. package/lib/context-providers/index.d.ts +19 -5
  146. package/lib/context-providers/index.js +35 -17
  147. package/lib/context-providers/keys.d.ts +3 -1
  148. package/lib/context-providers/keys.js +8 -8
  149. package/lib/context-providers/load-balancers.js +15 -18
  150. package/lib/context-providers/security-groups.js +10 -12
  151. package/lib/context-providers/ssm-parameters.d.ts +3 -1
  152. package/lib/context-providers/ssm-parameters.js +7 -7
  153. package/lib/context-providers/vpcs.d.ts +3 -1
  154. package/lib/context-providers/vpcs.js +14 -15
  155. package/lib/index.js +124098 -123198
  156. package/lib/init-templates/.init-version.json +1 -1
  157. package/lib/init-templates/.recommended-feature-flags.json +3 -1
  158. package/lib/legacy-exports-source.d.ts +4 -5
  159. package/lib/legacy-exports-source.js +6 -7
  160. package/lib/logging.js +2 -2
  161. package/lib/notices.d.ts +1 -1
  162. package/lib/notices.js +26 -32
  163. package/package.json +29 -29
  164. package/lib/api/deployments/cloudformation.js +0 -597
  165. package/lib/api/deployments/nested-stack-helpers.js +0 -88
  166. package/lib/api/util/placeholders.js +0 -24
  167. package/lib/api/util/template-body-parameter.js +0 -103
  168. package/lib/diff.d.ts +0 -28
  169. package/lib/diff.js +0 -165
  170. package/lib/init-hooks.js +0 -63
  171. package/lib/init.js +0 -437
  172. package/lib/toolkit/cli-io-host.js +0 -353
  173. package/lib/toolkit/error.d.ts +0 -1
  174. package/lib/tree.js +0 -40
  175. /package/lib/api/{util → environment}/placeholders.d.ts +0 -0
  176. /package/lib/{init-hooks.d.ts → commands/init/init-hooks.d.ts} +0 -0
  177. /package/lib/{init.d.ts → commands/init/init.d.ts} +0 -0
  178. /package/lib/{os.d.ts → commands/init/os.d.ts} +0 -0
@@ -25,10 +25,9 @@ class CurrentActivityPrinter extends base_1.ActivityPrinterBase {
25
25
  this.block = new display_1.RewritableBlock(this.stream);
26
26
  }
27
27
  print() {
28
- var _a;
29
28
  const lines = [];
30
29
  // Add a progress bar at the top
31
- const progressWidth = Math.max(Math.min(((_a = this.block.width) !== null && _a !== void 0 ? _a : 80) - PROGRESSBAR_EXTRA_SPACE - 1, MAX_PROGRESSBAR_WIDTH), MIN_PROGRESSBAR_WIDTH);
30
+ const progressWidth = Math.max(Math.min((this.block.width ?? 80) - PROGRESSBAR_EXTRA_SPACE - 1, MAX_PROGRESSBAR_WIDTH), MIN_PROGRESSBAR_WIDTH);
32
31
  const prog = this.progressBar(progressWidth);
33
32
  if (prog) {
34
33
  lines.push(' ' + prog, '');
@@ -39,15 +38,13 @@ class CurrentActivityPrinter extends base_1.ActivityPrinterBase {
39
38
  const toPrint = [...this.failures, ...Object.values(this.resourcesInProgress)];
40
39
  toPrint.sort((a, b) => a.event.Timestamp.getTime() - b.event.Timestamp.getTime());
41
40
  lines.push(...toPrint.map((res) => {
42
- var _a, _b, _c;
43
41
  const color = colorFromStatusActivity(res.event.ResourceStatus);
44
- const resourceName = (_c = (_b = (_a = res.metadata) === null || _a === void 0 ? void 0 : _a.constructPath) !== null && _b !== void 0 ? _b : res.event.LogicalResourceId) !== null && _c !== void 0 ? _c : '';
42
+ const resourceName = res.metadata?.constructPath ?? res.event.LogicalResourceId ?? '';
45
43
  return util.format('%s | %s | %s | %s%s', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(res.event.Timestamp).toLocaleTimeString()), color((0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (res.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH))), (0, util_1.padRight)(this.resourceTypeColumnWidth, res.event.ResourceType || ''), color(chalk.bold(shorten(40, resourceName))), this.failureReasonOnNextLine(res));
46
44
  }));
47
45
  this.block.displayLines(lines);
48
46
  }
49
47
  stop() {
50
- var _a, _b, _c;
51
48
  super.stop();
52
49
  // Print failures at the end
53
50
  const lines = new Array();
@@ -56,8 +53,8 @@ class CurrentActivityPrinter extends base_1.ActivityPrinterBase {
56
53
  if (this.isActivityForTheStack(failure)) {
57
54
  continue;
58
55
  }
59
- lines.push(util.format(chalk.red('%s | %s | %s | %s%s') + '\n', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(failure.event.Timestamp).toLocaleTimeString()), (0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (failure.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH)), (0, util_1.padRight)(this.resourceTypeColumnWidth, failure.event.ResourceType || ''), shorten(40, (_a = failure.event.LogicalResourceId) !== null && _a !== void 0 ? _a : ''), this.failureReasonOnNextLine(failure)));
60
- const trace = (_c = (_b = failure.metadata) === null || _b === void 0 ? void 0 : _b.entry) === null || _c === void 0 ? void 0 : _c.trace;
56
+ lines.push(util.format(chalk.red('%s | %s | %s | %s%s') + '\n', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(failure.event.Timestamp).toLocaleTimeString()), (0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (failure.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH)), (0, util_1.padRight)(this.resourceTypeColumnWidth, failure.event.ResourceType || ''), shorten(40, failure.event.LogicalResourceId ?? ''), this.failureReasonOnNextLine(failure)));
57
+ const trace = failure.metadata?.entry?.trace;
61
58
  if (trace) {
62
59
  lines.push(chalk.red(`\t${trace.join('\n\t\\_ ')}\n`));
63
60
  }
@@ -81,9 +78,8 @@ class CurrentActivityPrinter extends base_1.ActivityPrinterBase {
81
78
  return '[' + color(fullChars + partialChar) + filler + `] (${this.stackProgress.completed}/${this.stackProgress.total})`;
82
79
  }
83
80
  failureReasonOnNextLine(activity) {
84
- var _a, _b;
85
- return (0, util_1.stackEventHasErrorMessage)((_a = activity.event.ResourceStatus) !== null && _a !== void 0 ? _a : '')
86
- ? `\n${' '.repeat(CurrentActivityPrinter.TIMESTAMP_WIDTH + CurrentActivityPrinter.STATUS_WIDTH + 6)}${chalk.red((_b = this.failureReason(activity)) !== null && _b !== void 0 ? _b : '')}`
81
+ return (0, util_1.stackEventHasErrorMessage)(activity.event.ResourceStatus ?? '')
82
+ ? `\n${' '.repeat(CurrentActivityPrinter.TIMESTAMP_WIDTH + CurrentActivityPrinter.STATUS_WIDTH + 6)}${chalk.red(this.failureReason(activity) ?? '')}`
87
83
  : '';
88
84
  }
89
85
  }
@@ -119,4 +115,4 @@ function shorten(maxWidth, p) {
119
115
  const half = Math.floor((maxWidth - 3) / 2);
120
116
  return p.slice(0, half) + '...' + p.slice(-half);
121
117
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBQzVDLHFDQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQU03RCxZQUFZLEtBQTJCO1FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRVMsS0FBSzs7UUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsZ0NBQWdDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxtQ0FBSSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsR0FBRyxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFDdkYscUJBQXFCLENBQ3RCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSw4RUFBOEU7UUFDOUUsd0VBQXdFO1FBQ3hFLE1BQU0sT0FBTyxHQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMs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QVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHkgfSBmcm9tICdAYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgQWN0aXZpdHlQcmludGVyUHJvcHMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQWN0aXZpdHlQcmludGVyQmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBSZXdyaXRhYmxlQmxvY2sgfSBmcm9tICcuL2Rpc3BsYXknO1xuaW1wb3J0IHsgcGFkTGVmdCwgcGFkUmlnaHQsIHN0YWNrRXZlbnRIYXNFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIHRoZSByZXNvdXJjZXMgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWRcbiAqXG4gKiBJdCB3aWxsIGNvbnRpbnVvdXNseSByZS11cGRhdGUgdGhlIHRlcm1pbmFsIGFuZCBzaG93IG9ubHkgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWQsIGluIGFkZGl0aW9uIHRvIGEgcHJvZ3Jlc3MgYmFyIHdoaWNoXG4gKiBzaG93cyBob3cgZmFyIGFsb25nIHRoZSBkZXBsb3ltZW50IGlzLlxuICpcbiAqIFJlc291cmNlcyB0aGF0IGhhdmUgZmFpbGVkIHdpbGwgYWx3YXlzIGJlIHNob3duLCBhbmQgd2lsbCBiZSByZWNhcGl0dWxhdGVkXG4gKiBhbG9uZyB3aXRoIHRoZWlyIHN0YWNrIHRyYWNlIHdoZW4gdGhlIG1vbml0b3JpbmcgZW5kcy5cbiAqXG4gKiBSZXNvdXJjZXMgdGhhdCBmYWlsZWQgZGVwbG95bWVudCBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuIGNhbmNlbGxlZCBhcmVcbiAqIG5vdCBpbmNsdWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIgZXh0ZW5kcyBBY3Rpdml0eVByaW50ZXJCYXNlIHtcbiAgLyoqXG4gICAqIENvbnRpbnVvdXNseSB3cml0ZSB0byB0aGUgc2FtZSBvdXRwdXQgYmxvY2suXG4gICAqL1xuICBwcml2YXRlIGJsb2NrOiBSZXdyaXRhYmxlQmxvY2s7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuYmxvY2sgPSBuZXcgUmV3cml0YWJsZUJsb2NrKHRoaXMuc3RyZWFtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmludCgpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuXG4gICAgLy8gQWRkIGEgcHJvZ3Jlc3MgYmFyIGF0IHRoZSB0b3BcbiAgICBjb25zdCBwcm9ncmVzc1dpZHRoID0gTWF0aC5tYXgoXG4gICAgICBNYXRoLm1pbigodGhpcy5ibG9jay53aWR0aCA/PyA4MCkgLSBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSAtIDEsIE1BWF9QUk9HUkVTU0JBUl9XSURUSCksXG4gICAgICBNSU5fUFJPR1JFU1NCQVJfV0lEVEgsXG4gICAgKTtcbiAgICBjb25zdCBwcm9nID0gdGhpcy5wcm9ncmVzc0Jhcihwcm9ncmVzc1dpZHRoKTtcbiAgICBpZiAocHJvZykge1xuICAgICAgbGluZXMucHVzaCgnICAnICsgcHJvZywgJycpO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbGx5IHdlJ2Qgb25seSBwcmludCBcInJlc291cmNlcyBpbiBwcm9ncmVzc1wiLCBidXQgaXQncyBhbHNvIHVzZWZ1bFxuICAgIC8vIHRvIGtlZXAgYW4gZXllIG9uIHRoZSBmYWlsdXJlcyBhbmQga25vdyBhYm91dCB0aGUgc3BlY2lmaWMgZXJyb3JzIGFzcXVpY2tseVxuICAgIC8vIGFzIHBvc3NpYmxlICh3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgcm9sbGluZyBiYWNrKSwgc28gYWRkIHRob3NlIGluLlxuICAgIGNvbnN0IHRvUHJpbnQ6IFN0YWNrQWN0aXZpdHlbXSA9IFsuLi50aGlzLmZhaWx1cmVzLCAuLi5PYmplY3QudmFsdWVzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcyldO1xuICAgIHRvUHJpbnQuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLmdldFRpbWUoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS5nZXRUaW1lKCkpO1xuXG4gICAgbGluZXMucHVzaChcbiAgICAgIC4uLnRvUHJpbnQubWFwKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShyZXMuZXZlbnQuUmVzb3VyY2VTdGF0dXMpO1xuICAgICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSByZXMubWV0YWRhdGE/LmNvbnN0cnVjdFBhdGggPz8gcmVzLmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnO1xuXG4gICAgICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgfCAlcyB8ICVzIHwgJXMlcycsXG4gICAgICAgICAgcGFkTGVmdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCwgbmV3IERhdGUocmVzLmV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgICBjb2xvcihwYWRSaWdodChDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKHJlcy5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSksXG4gICAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgcmVzLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgY29sb3IoY2hhbGsuYm9sZChzaG9ydGVuKDQwLCByZXNvdXJjZU5hbWUpKSksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShyZXMpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIHN1cGVyLnN0b3AoKTtcblxuICAgIC8vIFByaW50IGZhaWx1cmVzIGF0IHRoZSBlbmRcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHRoaXMuZmFpbHVyZXMpIHtcbiAgICAgIC8vIFJvb3Qgc3RhY2sgZmFpbHVyZXMgYXJlIG5vdCBpbnRlcmVzdGluZ1xuICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICBjaGFsay5yZWQoJyVzIHwgJXMgfCAlcyB8ICVzJXMnKSArICdcXG4nLFxuICAgICAgICAgIHBhZExlZnQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEgsIG5ldyBEYXRlKGZhaWx1cmUuZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICAgIHBhZFJpZ2h0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZmFpbHVyZS5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSxcbiAgICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBmYWlsdXJlLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgc2hvcnRlbig0MCwgZmFpbHVyZS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/PyAnJyksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShmYWlsdXJlKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHRyYWNlID0gZmFpbHVyZS5tZXRhZGF0YT8uZW50cnk/LnRyYWNlO1xuICAgICAgaWYgKHRyYWNlKSB7XG4gICAgICAgIGxpbmVzLnB1c2goY2hhbGsucmVkKGBcXHQke3RyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfVxcbmApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGluIHRoZSBzYW1lIGJsb2NrIHNwYWNlLCBvdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gaGF2ZSBzaWxseSBlbXB0eSBsaW5lcy5cbiAgICB0aGlzLmJsb2NrLmRpc3BsYXlMaW5lcyhsaW5lcyk7XG4gICAgdGhpcy5ibG9jay5yZW1vdmVFbXB0eUxpbmVzKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2dyZXNzQmFyKHdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuc3RhY2tQcm9ncmVzcyB8fCAhdGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4odGhpcy5zdGFja1Byb2dyZXNzLmNvbXBsZXRlZCAvIHRoaXMuc3RhY2tQcm9ncmVzcy50b3RhbCwgMSk7XG4gICAgY29uc3QgaW5uZXJXaWR0aCA9IE1hdGgubWF4KDEsIHdpZHRoIC0gMik7XG4gICAgY29uc3QgY2hhcnMgPSBpbm5lcldpZHRoICogZnJhY3Rpb247XG4gICAgY29uc3QgcmVtYWluZGVyID0gY2hhcnMgLSBNYXRoLmZsb29yKGNoYXJzKTtcblxuICAgIGNvbnN0IGZ1bGxDaGFycyA9IEZVTExfQkxPQ0sucmVwZWF0KE1hdGguZmxvb3IoY2hhcnMpKTtcbiAgICBjb25zdCBwYXJ0aWFsQ2hhciA9IFBBUlRJQUxfQkxPQ0tbTWF0aC5mbG9vcihyZW1haW5kZXIgKiBQQVJUSUFMX0JMT0NLLmxlbmd0aCldO1xuICAgIGNvbnN0IGZpbGxlciA9ICfCtycucmVwZWF0KGlubmVyV2lkdGggLSBNYXRoLmZsb29yKGNoYXJzKSAtIChwYXJ0aWFsQ2hhciA/IDEgOiAwKSk7XG5cbiAgICBjb25zdCBjb2xvciA9IHRoaXMucm9sbGluZ0JhY2sgPyBjaGFsay55ZWxsb3cgOiBjaGFsay5ncmVlbjtcblxuICAgIHJldHVybiAnWycgKyBjb2xvcihmdWxsQ2hhcnMgKyBwYXJ0aWFsQ2hhcikgKyBmaWxsZXIgKyBgXSAoJHt0aGlzLnN0YWNrUHJvZ3Jlc3MuY29tcGxldGVkfS8ke3RoaXMuc3RhY2tQcm9ncmVzcy50b3RhbH0pYDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gc3RhY2tFdmVudEhhc0Vycm9yTWVzc2FnZShhY3Rpdml0eS5ldmVudC5SZXNvdXJjZVN0YXR1cyA/PyAnJylcbiAgICAgID8gYFxcbiR7JyAnLnJlcGVhdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCArIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRIICsgNil9JHtjaGFsay5yZWQodGhpcy5mYWlsdXJlUmVhc29uKGFjdGl2aXR5KSA/PyAnJyl9YFxuICAgICAgOiAnJztcbiAgfVxufVxuXG5jb25zdCBGVUxMX0JMT0NLID0gJ+KWiCc7XG5jb25zdCBQQVJUSUFMX0JMT0NLID0gWycnLCAn4paPJywgJ+KWjicsICfilo0nLCAn4paMJywgJ+KWiycsICfiloonLCAn4paJJ107XG5jb25zdCBNQVhfUFJPR1JFU1NCQVJfV0lEVEggPSA2MDtcbmNvbnN0IE1JTl9QUk9HUkVTU0JBUl9XSURUSCA9IDEwO1xuY29uc3QgUFJPR1JFU1NCQVJfRVhUUkFfU1BBQ0UgPVxuICAgIDIgLyogbGVhZGluZyBzcGFjZXMgKi8gKyAyIC8qIGJyYWNrZXRzICovICsgNCAvKiBwcm9ncmVzcyBudW1iZXIgZGVjb3JhdGlvbiAqLyArIDY7IC8qIDIgcHJvZ3Jlc3MgbnVtYmVycyB1cCB0byA5OTkgKi9cblxuZnVuY3Rpb24gY29sb3JGcm9tU3RhdHVzQWN0aXZpdHkoc3RhdHVzPzogc3RyaW5nKSB7XG4gIGlmICghc3RhdHVzKSB7XG4gICAgcmV0dXJuIGNoYWxrLnJlc2V0O1xuICB9XG5cbiAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0ZBSUxFRCcpKSB7XG4gICAgcmV0dXJuIGNoYWxrLnJlZDtcbiAgfVxuXG4gIGlmIChzdGF0dXMuc3RhcnRzV2l0aCgnQ1JFQVRFXycpIHx8IHN0YXR1cy5zdGFydHNXaXRoKCdVUERBVEVfJykgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoJ0lNUE9SVF8nKSkge1xuICAgIHJldHVybiBjaGFsay5ncmVlbjtcbiAgfVxuICAvLyBGb3Igc3RhY2tzLCBpdCBtYXkgYWxzbyBiZSAnVVBEREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUydcbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdST0xMQkFDS18nKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG4gIGlmIChzdGF0dXMuc3RhcnRzV2l0aCgnREVMRVRFXycpKSB7XG4gICAgcmV0dXJuIGNoYWxrLnllbGxvdztcbiAgfVxuXG4gIHJldHVybiBjaGFsay5yZXNldDtcbn1cblxuZnVuY3Rpb24gc2hvcnRlbihtYXhXaWR0aDogbnVtYmVyLCBwOiBzdHJpbmcpIHtcbiAgaWYgKHAubGVuZ3RoIDw9IG1heFdpZHRoKSB7XG4gICAgcmV0dXJuIHA7XG4gIH1cbiAgY29uc3QgaGFsZiA9IE1hdGguZmxvb3IoKG1heFdpZHRoIC0gMykgLyAyKTtcbiAgcmV0dXJuIHAuc2xpY2UoMCwgaGFsZikgKyAnLi4uJyArIHAuc2xpY2UoLWhhbGYpO1xufVxuXG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBQzVDLHFDQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQU03RCxZQUFZLEtBQTJCO1FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRVMsS0FBSztRQUNiLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVqQixnQ0FBZ0M7UUFDaEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixHQUFHLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxFQUN2RixxQkFBcUIsQ0FDdEIsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLDhFQUE4RTtRQUM5RSx3RUFBd0U7UUFDeEUsTUFBTSxPQUFPLEdBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVB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LEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJ0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpdml0eVByaW50ZXJQcm9wcyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBY3Rpdml0eVByaW50ZXJCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IFJld3JpdGFibGVCbG9jayB9IGZyb20gJy4vZGlzcGxheSc7XG5pbXBvcnQgeyBwYWRMZWZ0LCBwYWRSaWdodCwgc3RhY2tFdmVudEhhc0Vycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG4vKipcbiAqIEFjdGl2aXR5IFByaW50ZXIgd2hpY2ggc2hvd3MgdGhlIHJlc291cmNlcyBjdXJyZW50bHkgYmVpbmcgdXBkYXRlZFxuICpcbiAqIEl0IHdpbGwgY29udGludW91c2x5IHJlLXVwZGF0ZSB0aGUgdGVybWluYWwgYW5kIHNob3cgb25seSB0aGUgcmVzb3VyY2VzXG4gKiB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgdXBkYXRlZCwgaW4gYWRkaXRpb24gdG8gYSBwcm9ncmVzcyBiYXIgd2hpY2hcbiAqIHNob3dzIGhvdyBmYXIgYWxvbmcgdGhlIGRlcGxveW1lbnQgaXMuXG4gKlxuICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBmYWlsZWQgd2lsbCBhbHdheXMgYmUgc2hvd24sIGFuZCB3aWxsIGJlIHJlY2FwaXR1bGF0ZWRcbiAqIGFsb25nIHdpdGggdGhlaXIgc3RhY2sgdHJhY2Ugd2hlbiB0aGUgbW9uaXRvcmluZyBlbmRzLlxuICpcbiAqIFJlc291cmNlcyB0aGF0IGZhaWxlZCBkZXBsb3ltZW50IGJlY2F1c2UgdGhleSBoYXZlIGJlZW4gY2FuY2VsbGVkIGFyZVxuICogbm90IGluY2x1ZGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ3VycmVudEFjdGl2aXR5UHJpbnRlciBleHRlbmRzIEFjdGl2aXR5UHJpbnRlckJhc2Uge1xuICAvKipcbiAgICogQ29udGludW91c2x5IHdyaXRlIHRvIHRoZSBzYW1lIG91dHB1dCBibG9jay5cbiAgICovXG4gIHByaXZhdGUgYmxvY2s6IFJld3JpdGFibGVCbG9jaztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQWN0aXZpdHlQcmludGVyUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5ibG9jayA9IG5ldyBSZXdyaXRhYmxlQmxvY2sodGhpcy5zdHJlYW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByaW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmVzID0gW107XG5cbiAgICAvLyBBZGQgYSBwcm9ncmVzcyBiYXIgYXQgdGhlIHRvcFxuICAgIGNvbnN0IHByb2dyZXNzV2lkdGggPSBNYXRoLm1heChcbiAgICAgIE1hdGgubWluKCh0aGlzLmJsb2NrLndpZHRoID8/IDgwKSAtIFBST0dSRVNTQkFSX0VYVFJBX1NQQUNFIC0gMSwgTUFYX1BST0dSRVNTQkFSX1dJRFRIKSxcbiAgICAgIE1JTl9QUk9HUkVTU0JBUl9XSURUSCxcbiAgICApO1xuICAgIGNvbnN0IHByb2cgPSB0aGlzLnByb2dyZXNzQmFyKHByb2dyZXNzV2lkdGgpO1xuICAgIGlmIChwcm9nKSB7XG4gICAgICBsaW5lcy5wdXNoKCcgICcgKyBwcm9nLCAnJyk7XG4gICAgfVxuXG4gICAgLy8gTm9ybWFsbHkgd2UnZCBvbmx5IHByaW50IFwicmVzb3VyY2VzIGluIHByb2dyZXNzXCIsIGJ1dCBpdCdzIGFsc28gdXNlZnVsXG4gICAgLy8gdG8ga2VlcCBhbiBleWUgb24gdGhlIGZhaWx1cmVzIGFuZCBrbm93IGFib3V0IHRoZSBzcGVjaWZpYyBlcnJvcnMgYXNxdWlja2x5XG4gICAgLy8gYXMgcG9zc2libGUgKHdoaWxlIHRoZSBzdGFjayBpcyBzdGlsbCByb2xsaW5nIGJhY2spLCBzbyBhZGQgdGhvc2UgaW4uXG4gICAgY29uc3QgdG9QcmludDogU3RhY2tBY3Rpdml0eVtdID0gWy4uLnRoaXMuZmFpbHVyZXMsIC4uLk9iamVjdC52YWx1ZXModGhpcy5yZXNvdXJjZXNJblByb2dyZXNzKV07XG4gICAgdG9QcmludC5zb3J0KChhLCBiKSA9PiBhLmV2ZW50LlRpbWVzdGFtcCEuZ2V0VGltZSgpIC0gYi5ldmVudC5UaW1lc3RhbXAhLmdldFRpbWUoKSk7XG5cbiAgICBsaW5lcy5wdXNoKFxuICAgICAgLi4udG9QcmludC5tYXAoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCBjb2xvciA9IGNvbG9yRnJvbVN0YXR1c0FjdGl2aXR5KHJlcy5ldmVudC5SZXNvdXJjZVN0YXR1cyk7XG4gICAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHJlcy5tZXRhZGF0YT8uY29uc3RydWN0UGF0aCA/PyByZXMuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJyc7XG5cbiAgICAgICAgcmV0dXJuIHV0aWwuZm9ybWF0KFxuICAgICAgICAgICclcyB8ICVzIHwgJXMgfCAlcyVzJyxcbiAgICAgICAgICBwYWRMZWZ0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRILCBuZXcgRGF0ZShyZXMuZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICAgIGNvbG9yKHBhZFJpZ2h0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAocmVzLmV2ZW50LlJlc291cmNlU3RhdHVzIHx8ICcnKS5zbGljZSgwLCBDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCkpKSxcbiAgICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCByZXMuZXZlbnQuUmVzb3VyY2VUeXBlIHx8ICcnKSxcbiAgICAgICAgICBjb2xvcihjaGFsay5ib2xkKHNob3J0ZW4oNDAsIHJlc291cmNlTmFtZSkpKSxcbiAgICAgICAgICB0aGlzLmZhaWx1cmVSZWFzb25Pbk5leHRMaW5lKHJlcyksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5ibG9jay5kaXNwbGF5TGluZXMobGluZXMpO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgc3VwZXIuc3RvcCgpO1xuXG4gICAgLy8gUHJpbnQgZmFpbHVyZXMgYXQgdGhlIGVuZFxuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IGZhaWx1cmUgb2YgdGhpcy5mYWlsdXJlcykge1xuICAgICAgLy8gUm9vdCBzdGFjayBmYWlsdXJlcyBhcmUgbm90IGludGVyZXN0aW5nXG4gICAgICBpZiAodGhpcy5pc0FjdGl2aXR5Rm9yVGhlU3RhY2soZmFpbHVyZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxpbmVzLnB1c2goXG4gICAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAgIGNoYWxrLnJlZCgnJXMgfCAlcyB8ICVzIHwgJXMlcycpICsgJ1xcbicsXG4gICAgICAgICAgcGFkTGVmdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCwgbmV3IERhdGUoZmFpbHVyZS5ldmVudC5UaW1lc3RhbXAhKS50b0xvY2FsZVRpbWVTdHJpbmcoKSksXG4gICAgICAgICAgcGFkUmlnaHQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgsIChmYWlsdXJlLmV2ZW50LlJlc291cmNlU3RhdHVzIHx8ICcnKS5zbGljZSgwLCBDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCkpLFxuICAgICAgICAgIHBhZFJpZ2h0KHRoaXMucmVzb3VyY2VUeXBlQ29sdW1uV2lkdGgsIGZhaWx1cmUuZXZlbnQuUmVzb3VyY2VUeXBlIHx8ICcnKSxcbiAgICAgICAgICBzaG9ydGVuKDQwLCBmYWlsdXJlLmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnKSxcbiAgICAgICAgICB0aGlzLmZhaWx1cmVSZWFzb25Pbk5leHRMaW5lKGZhaWx1cmUpLFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdHJhY2UgPSBmYWlsdXJlLm1ldGFkYXRhPy5lbnRyeT8udHJhY2U7XG4gICAgICBpZiAodHJhY2UpIHtcbiAgICAgICAgbGluZXMucHVzaChjaGFsay5yZWQoYFxcdCR7dHJhY2Uuam9pbignXFxuXFx0XFxcXF8gJyl9XFxuYCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc3BsYXkgaW4gdGhlIHNhbWUgYmxvY2sgc3BhY2UsIG90aGVyd2lzZSB3ZSdyZSBnb2luZyB0byBoYXZlIHNpbGx5IGVtcHR5IGxpbmVzLlxuICAgIHRoaXMuYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgICB0aGlzLmJsb2NrLnJlbW92ZUVtcHR5TGluZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvZ3Jlc3NCYXIod2lkdGg6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5zdGFja1Byb2dyZXNzIHx8ICF0aGlzLnN0YWNrUHJvZ3Jlc3MudG90YWwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgZnJhY3Rpb24gPSBNYXRoLm1pbih0aGlzLnN0YWNrUHJvZ3Jlc3MuY29tcGxldGVkIC8gdGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsLCAxKTtcbiAgICBjb25zdCBpbm5lcldpZHRoID0gTWF0aC5tYXgoMSwgd2lkdGggLSAyKTtcbiAgICBjb25zdCBjaGFycyA9IGlubmVyV2lkdGggKiBmcmFjdGlvbjtcbiAgICBjb25zdCByZW1haW5kZXIgPSBjaGFycyAtIE1hdGguZmxvb3IoY2hhcnMpO1xuXG4gICAgY29uc3QgZnVsbENoYXJzID0gRlVMTF9CTE9DSy5yZXBlYXQoTWF0aC5mbG9vcihjaGFycykpO1xuICAgIGNvbnN0IHBhcnRpYWxDaGFyID0gUEFSVElBTF9CTE9DS1tNYXRoLmZsb29yKHJlbWFpbmRlciAqIFBBUlRJQUxfQkxPQ0subGVuZ3RoKV07XG4gICAgY29uc3QgZmlsbGVyID0gJ8K3Jy5yZXBlYXQoaW5uZXJXaWR0aCAtIE1hdGguZmxvb3IoY2hhcnMpIC0gKHBhcnRpYWxDaGFyID8gMSA6IDApKTtcblxuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5yb2xsaW5nQmFjayA/IGNoYWxrLnllbGxvdyA6IGNoYWxrLmdyZWVuO1xuXG4gICAgcmV0dXJuICdbJyArIGNvbG9yKGZ1bGxDaGFycyArIHBhcnRpYWxDaGFyKSArIGZpbGxlciArIGBdICgke3RoaXMuc3RhY2tQcm9ncmVzcy5jb21wbGV0ZWR9LyR7dGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsfSlgO1xuICB9XG5cbiAgcHJpdmF0ZSBmYWlsdXJlUmVhc29uT25OZXh0TGluZShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIHJldHVybiBzdGFja0V2ZW50SGFzRXJyb3JNZXNzYWdlKGFjdGl2aXR5LmV2ZW50LlJlc291cmNlU3RhdHVzID8/ICcnKVxuICAgICAgPyBgXFxuJHsnICcucmVwZWF0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRIICsgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEggKyA2KX0ke2NoYWxrLnJlZCh0aGlzLmZhaWx1cmVSZWFzb24oYWN0aXZpdHkpID8/ICcnKX1gXG4gICAgICA6ICcnO1xuICB9XG59XG5cbmNvbnN0IEZVTExfQkxPQ0sgPSAn4paIJztcbmNvbnN0IFBBUlRJQUxfQkxPQ0sgPSBbJycsICfilo8nLCAn4paOJywgJ+KWjScsICfilownLCAn4paLJywgJ+KWiicsICfiloknXTtcbmNvbnN0IE1BWF9QUk9HUkVTU0JBUl9XSURUSCA9IDYwO1xuY29uc3QgTUlOX1BST0dSRVNTQkFSX1dJRFRIID0gMTA7XG5jb25zdCBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSA9XG4gICAgMiAvKiBsZWFkaW5nIHNwYWNlcyAqLyArIDIgLyogYnJhY2tldHMgKi8gKyA0IC8qIHByb2dyZXNzIG51bWJlciBkZWNvcmF0aW9uICovICsgNjsgLyogMiBwcm9ncmVzcyBudW1iZXJzIHVwIHRvIDk5OSAqL1xuXG5mdW5jdGlvbiBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICByZXR1cm4gY2hhbGsucmVkO1xuICB9XG5cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdDUkVBVEVfJykgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoJ1VQREFURV8nKSB8fCBzdGF0dXMuc3RhcnRzV2l0aCgnSU1QT1JUXycpKSB7XG4gICAgcmV0dXJuIGNoYWxrLmdyZWVuO1xuICB9XG4gIC8vIEZvciBzdGFja3MsIGl0IG1heSBhbHNvIGJlICdVUEREQVRFX1JPTExCQUNLX0lOX1BST0dSRVNTJ1xuICBpZiAoc3RhdHVzLmluZGV4T2YoJ1JPTExCQUNLXycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdERUxFVEVfJykpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG5cbiAgcmV0dXJuIGNoYWxrLnJlc2V0O1xufVxuXG5mdW5jdGlvbiBzaG9ydGVuKG1heFdpZHRoOiBudW1iZXIsIHA6IHN0cmluZykge1xuICBpZiAocC5sZW5ndGggPD0gbWF4V2lkdGgpIHtcbiAgICByZXR1cm4gcDtcbiAgfVxuICBjb25zdCBoYWxmID0gTWF0aC5mbG9vcigobWF4V2lkdGggLSAzKSAvIDIpO1xuICByZXR1cm4gcC5zbGljZSgwLCBoYWxmKSArICcuLi4nICsgcC5zbGljZSgtaGFsZik7XG59XG5cbiJdfQ==
@@ -45,13 +45,12 @@ class HistoryActivityPrinter extends base_1.ActivityPrinterBase {
45
45
  }
46
46
  }
47
47
  print() {
48
- var _a;
49
48
  for (const activity of this.printable) {
50
49
  this.printOne(activity);
51
50
  this.lastPrinted = activity;
52
51
  }
53
52
  this.printable.splice(0, this.printable.length);
54
- this.printInProgress((_a = this.lastPrinted) === null || _a === void 0 ? void 0 : _a.progress.formatted);
53
+ this.printInProgress(this.lastPrinted?.progress.formatted);
55
54
  }
56
55
  printOne(activity, progress) {
57
56
  const event = activity.event;
@@ -106,4 +105,4 @@ function colorFromStatusResult(status) {
106
105
  }
107
106
  return chalk.reset;
108
107
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MscUNBQXNDO0FBRXRDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwwQkFBbUI7SUFpQjdELFlBQVksS0FBMkI7UUFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBakJmOzs7O1dBSUc7UUFDSyxrQkFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUluQzs7V0FFRztRQUNjLG9CQUFlLEdBQUcsS0FBTSxDQUFDO1FBRXpCLGNBQVMsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztJQUl4RCxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQXVCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLElBQUk7UUFDVCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFYiw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzNDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLOztRQUNiLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUF1QixFQUFFLFFBQWtCO1FBQzFELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFELElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFN0IsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUUsSUFBSSxRQUFRLElBQUksU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUYsQ0FBQztZQUNELElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUYsQ0FBQztZQUNELFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzFCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDdkYsTUFBTSxTQUFTLEdBQUcsWUFBWSxLQUFLLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWxHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLElBQUksQ0FBQyxNQUFNLENBQ1QsbUNBQW1DLEVBQ25DLEtBQUssQ0FBQyxTQUFTLEVBQ2YsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzdELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFVLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUMvQyxLQUFLLENBQUMsSUFBQSxlQUFRLEVBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0I7UUFDdEosSUFBQSxlQUFRLEVBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQ2hFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQy9CLFNBQVMsRUFDVCxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDckYsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUN4QixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsUUFBaUI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLElBQUksQ0FBQyxNQUFNLENBQ1QsZ0NBQWdDLEVBQ2hDLFFBQVEsRUFDUixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdELENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxnRkFBZ0Y7UUFDaEYsa0ZBQWtGO1FBQ2xGLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQWxIRCx3REFrSEM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLE1BQWU7SUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHkgfSBmcm9tICdAYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgQWN0aXZpdHlQcmludGVyUHJvcHMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQWN0aXZpdHlQcmludGVyQmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBwYWRSaWdodCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG4vKipcbiAqIEFjdGl2aXR5IFByaW50ZXIgd2hpY2ggc2hvd3MgYSBmdWxsIGxvZyBvZiBhbGwgQ2xvdWRGb3JtYXRpb24gZXZlbnRzXG4gKlxuICogV2hlbiB0aGVyZSBoYXNuJ3QgYmVlbiBhY3Rpdml0eSBmb3IgYSB3aGlsZSwgaXQgd2lsbCBwcmludCB0aGUgcmVzb3VyY2VzXG4gKiB0aGF0IGFyZSBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MsIHRvIHNob3cgd2hhdCdzIGhvbGRpbmcgdXAgdGhlIGRlcGxveW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBIaXN0b3J5QWN0aXZpdHlQcmludGVyIGV4dGVuZHMgQWN0aXZpdHlQcmludGVyQmFzZSB7XG4gIC8qKlxuICAgKiBMYXN0IHRpbWUgd2UgcHJpbnRlZCBzb21ldGhpbmcgdG8gdGhlIGNvbnNvbGUuXG4gICAqXG4gICAqIFVzZWQgdG8gbWVhc3VyZSB0aW1lb3V0IGZvciBwcm9ncmVzcyByZXBvcnRpbmcuXG4gICAqL1xuICBwcml2YXRlIGxhc3RQcmludFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gIHByaXZhdGUgbGFzdFByaW50ZWQ/OiBTdGFja0FjdGl2aXR5O1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbXMgb2YgY2hhbmdlIGFic2VuY2UgYmVmb3JlIHdlIHRlbGwgdGhlIHVzZXIgYWJvdXQgdGhlIHJlc291cmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGluUHJvZ3Jlc3NEZWxheSA9IDMwXzAwMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByaW50YWJsZSA9IG5ldyBBcnJheTxTdGFja0FjdGl2aXR5PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBBY3Rpdml0eVByaW50ZXJQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpdml0eShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIHRoaXMucHJpbnRhYmxlLnB1c2goYWN0aXZpdHkpO1xuICAgIHN1cGVyLmFjdGl2aXR5KGFjdGl2aXR5KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIHN1cGVyLnN0b3AoKTtcblxuICAgIC8vIFByaW50IGZhaWx1cmVzIGF0IHRoZSBlbmRcbiAgICBpZiAodGhpcy5mYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZSgnXFxuRmFpbGVkIHJlc291cmNlczpcXG4nKTtcbiAgICAgIGZvciAoY29uc3QgZmFpbHVyZSBvZiB0aGlzLmZhaWx1cmVzKSB7XG4gICAgICAgIC8vIFJvb3Qgc3RhY2sgZmFpbHVyZXMgYXJlIG5vdCBpbnRlcmVzdGluZ1xuICAgICAgICBpZiAodGhpcy5pc0FjdGl2aXR5Rm9yVGhlU3RhY2soZmFpbHVyZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJpbnRPbmUoZmFpbHVyZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcmludCgpIHtcbiAgICBmb3IgKGNvbnN0IGFjdGl2aXR5IG9mIHRoaXMucHJpbnRhYmxlKSB7XG4gICAgICB0aGlzLnByaW50T25lKGFjdGl2aXR5KTtcbiAgICAgIHRoaXMubGFzdFByaW50ZWQgPSBhY3Rpdml0eTtcbiAgICB9XG4gICAgdGhpcy5wcmludGFibGUuc3BsaWNlKDAsIHRoaXMucHJpbnRhYmxlLmxlbmd0aCk7XG4gICAgdGhpcy5wcmludEluUHJvZ3Jlc3ModGhpcy5sYXN0UHJpbnRlZD8ucHJvZ3Jlc3MuZm9ybWF0dGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJpbnRPbmUoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHksIHByb2dyZXNzPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGV2ZW50ID0gYWN0aXZpdHkuZXZlbnQ7XG4gICAgY29uc3QgY29sb3IgPSBjb2xvckZyb21TdGF0dXNSZXN1bHQoZXZlbnQuUmVzb3VyY2VTdGF0dXMpO1xuICAgIGxldCByZWFzb25Db2xvciA9IGNoYWxrLmN5YW47XG5cbiAgICBsZXQgc3RhY2tUcmFjZSA9ICcnO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gYWN0aXZpdHkubWV0YWRhdGE7XG5cbiAgICBpZiAoZXZlbnQuUmVzb3VyY2VTdGF0dXMgJiYgZXZlbnQuUmVzb3VyY2VTdGF0dXMuaW5kZXhPZignRkFJTEVEJykgIT09IC0xKSB7XG4gICAgICBpZiAocHJvZ3Jlc3MgPT0gdW5kZWZpbmVkIHx8IHByb2dyZXNzKSB7XG4gICAgICAgIGV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID0gZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPyB0aGlzLmZhaWx1cmVSZWFzb24oYWN0aXZpdHkpIDogJyc7XG4gICAgICB9XG4gICAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgICAgc3RhY2tUcmFjZSA9IG1ldGFkYXRhLmVudHJ5LnRyYWNlID8gYFxcblxcdCR7bWV0YWRhdGEuZW50cnkudHJhY2Uuam9pbignXFxuXFx0XFxcXF8gJyl9YCA6ICcnO1xuICAgICAgfVxuICAgICAgcmVhc29uQ29sb3IgPSBjaGFsay5yZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gbWV0YWRhdGEgPyBtZXRhZGF0YS5jb25zdHJ1Y3RQYXRoIDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQgfHwgJyc7XG4gICAgY29uc3QgbG9naWNhbElkID0gcmVzb3VyY2VOYW1lICE9PSBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/IGAoJHtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZH0pIGAgOiAnJztcblxuICAgIHRoaXMuc3RyZWFtLndyaXRlKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgICclcyB8ICVzJXMgfCAlcyB8ICVzIHwgJXMgJXMlcyVzXFxuJyxcbiAgICAgICAgZXZlbnQuU3RhY2tOYW1lLFxuICAgICAgICBwcm9ncmVzcyAhPT0gZmFsc2UgPyBgJHthY3Rpdml0eS5wcm9ncmVzcy5mb3JtYXR0ZWR9IHwgYCA6ICcnLFxuICAgICAgICBuZXcgRGF0ZShldmVudC5UaW1lc3RhbXAhKS50b0xvY2FsZVRpbWVTdHJpbmcoKSxcbiAgICAgICAgY29sb3IocGFkUmlnaHQoSGlzdG9yeUFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgsIChldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgSGlzdG9yeUFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSksIC8vIHBhZCBsZWZ0IGFuZCB0cmltXG4gICAgICAgIHBhZFJpZ2h0KHRoaXMucmVzb3VyY2VUeXBlQ29sdW1uV2lkdGgsIGV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgIGNvbG9yKGNoYWxrLmJvbGQocmVzb3VyY2VOYW1lKSksXG4gICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgcmVhc29uQ29sb3IoY2hhbGsuYm9sZChldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/IGV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uIDogJycpKSxcbiAgICAgICAgcmVhc29uQ29sb3Ioc3RhY2tUcmFjZSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLmxhc3RQcmludFRpbWUgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHNvbWUgcmVzb3VyY2VzIGFyZSB0YWtpbmcgYSB3aGlsZSB0byBjcmVhdGUsIG5vdGlmeSB0aGUgdXNlciBhYm91dCB3aGF0J3MgY3VycmVudGx5IGluIHByb2dyZXNzXG4gICAqL1xuICBwcml2YXRlIHByaW50SW5Qcm9ncmVzcyhwcm9ncmVzcz86IHN0cmluZykge1xuICAgIGlmICghcHJvZ3Jlc3MgfHwgRGF0ZS5ub3coKSA8IHRoaXMubGFzdFByaW50VGltZSArIHRoaXMuaW5Qcm9ncmVzc0RlbGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoXG4gICAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAgICclcyBDdXJyZW50bHkgaW4gcHJvZ3Jlc3M6ICVzXFxuJyxcbiAgICAgICAgICBwcm9ncmVzcyxcbiAgICAgICAgICBjaGFsay5ib2xkKE9iamVjdC5rZXlzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcykuam9pbignLCAnKSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFdlIGNoZWF0IGEgYml0IGhlcmUuIFRvIHByZXZlbnQgcHJpbnRJblByb2dyZXNzKCkgZnJvbSByZXBlYXRlZGx5IHRyaWdnZXJpbmcsXG4gICAgLy8gd2Ugc2V0IHRoZSB0aW1lc3RhbXAgaW50byB0aGUgZnV0dXJlLiBJdCB3aWxsIGJlIHJlc2V0IHdoZW5ldmVyIGEgcmVndWxhciBwcmludFxuICAgIC8vIG9jY3VycywgYWZ0ZXIgd2hpY2ggd2UgY2FuIGJlIHRyaWdnZXJlZCBhZ2Fpbi5cbiAgICB0aGlzLmxhc3RQcmludFRpbWUgPSArSW5maW5pdHk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29sb3JGcm9tU3RhdHVzUmVzdWx0KHN0YXR1cz86IHN0cmluZykge1xuICBpZiAoIXN0YXR1cykge1xuICAgIHJldHVybiBjaGFsay5yZXNldDtcbiAgfVxuXG4gIGlmIChzdGF0dXMuaW5kZXhPZignRkFJTEVEJykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGNoYWxrLnJlZDtcbiAgfVxuICBpZiAoc3RhdHVzLmluZGV4T2YoJ1JPTExCQUNLJykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGNoYWxrLnllbGxvdztcbiAgfVxuICBpZiAoc3RhdHVzLmluZGV4T2YoJ0NPTVBMRVRFJykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGNoYWxrLmdyZWVuO1xuICB9XG5cbiAgcmV0dXJuIGNoYWxrLnJlc2V0O1xufVxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MscUNBQXNDO0FBRXRDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwwQkFBbUI7SUFpQjdELFlBQVksS0FBMkI7UUFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBakJmOzs7O1dBSUc7UUFDSyxrQkFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUluQzs7V0FFRztRQUNjLG9CQUFlLEdBQUcsS0FBTSxDQUFDO1FBRXpCLGNBQVMsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztJQUl4RCxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQXVCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLElBQUk7UUFDVCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFYiw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzNDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxL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Q3BDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJ0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpdml0eVByaW50ZXJQcm9wcyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBY3Rpdml0eVByaW50ZXJCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IHBhZFJpZ2h0IH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogQWN0aXZpdHkgUHJpbnRlciB3aGljaCBzaG93cyBhIGZ1bGwgbG9nIG9mIGFsbCBDbG91ZEZvcm1hdGlvbiBldmVudHNcbiAqXG4gKiBXaGVuIHRoZXJlIGhhc24ndCBiZWVuIGFjdGl2aXR5IGZvciBhIHdoaWxlLCBpdCB3aWxsIHByaW50IHRoZSByZXNvdXJjZXNcbiAqIHRoYXQgYXJlIGN1cnJlbnRseSBpbiBwcm9ncmVzcywgdG8gc2hvdyB3aGF0J3MgaG9sZGluZyB1cCB0aGUgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEhpc3RvcnlBY3Rpdml0eVByaW50ZXIgZXh0ZW5kcyBBY3Rpdml0eVByaW50ZXJCYXNlIHtcbiAgLyoqXG4gICAqIExhc3QgdGltZSB3ZSBwcmludGVkIHNvbWV0aGluZyB0byB0aGUgY29uc29sZS5cbiAgICpcbiAgICogVXNlZCB0byBtZWFzdXJlIHRpbWVvdXQgZm9yIHByb2dyZXNzIHJlcG9ydGluZy5cbiAgICovXG4gIHByaXZhdGUgbGFzdFByaW50VGltZSA9IERhdGUubm93KCk7XG5cbiAgcHJpdmF0ZSBsYXN0UHJpbnRlZD86IFN0YWNrQWN0aXZpdHk7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtcyBvZiBjaGFuZ2UgYWJzZW5jZSBiZWZvcmUgd2UgdGVsbCB0aGUgdXNlciBhYm91dCB0aGUgcmVzb3VyY2VzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5Qcm9ncmVzc0RlbGF5ID0gMzBfMDAwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRhYmxlID0gbmV3IEFycmF5PFN0YWNrQWN0aXZpdHk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcHVibGljIGFjdGl2aXR5KGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5KSB7XG4gICAgdGhpcy5wcmludGFibGUucHVzaChhY3Rpdml0eSk7XG4gICAgc3VwZXIuYWN0aXZpdHkoYWN0aXZpdHkpO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgc3VwZXIuc3RvcCgpO1xuXG4gICAgLy8gUHJpbnQgZmFpbHVyZXMgYXQgdGhlIGVuZFxuICAgIGlmICh0aGlzLmZhaWx1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3RyZWFtLndyaXRlKCdcXG5GYWlsZWQgcmVzb3VyY2VzOlxcbicpO1xuICAgICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHRoaXMuZmFpbHVyZXMpIHtcbiAgICAgICAgLy8gUm9vdCBzdGFjayBmYWlsdXJlcyBhcmUgbm90IGludGVyZXN0aW5nXG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZpdHlGb3JUaGVTdGFjayhmYWlsdXJlKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmludE9uZShmYWlsdXJlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByaW50KCkge1xuICAgIGZvciAoY29uc3QgYWN0aXZpdHkgb2YgdGhpcy5wcmludGFibGUpIHtcbiAgICAgIHRoaXMucHJpbnRPbmUoYWN0aXZpdHkpO1xuICAgICAgdGhpcy5sYXN0UHJpbnRlZCA9IGFjdGl2aXR5O1xuICAgIH1cbiAgICB0aGlzLnByaW50YWJsZS5zcGxpY2UoMCwgdGhpcy5wcmludGFibGUubGVuZ3RoKTtcbiAgICB0aGlzLnByaW50SW5Qcm9ncmVzcyh0aGlzLmxhc3RQcmludGVkPy5wcm9ncmVzcy5mb3JtYXR0ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmludE9uZShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSwgcHJvZ3Jlc3M/OiBib29sZWFuKSB7XG4gICAgY29uc3QgZXZlbnQgPSBhY3Rpdml0eS5ldmVudDtcbiAgICBjb25zdCBjb2xvciA9IGNvbG9yRnJvbVN0YXR1c1Jlc3VsdChldmVudC5SZXNvdXJjZVN0YXR1cyk7XG4gICAgbGV0IHJlYXNvbkNvbG9yID0gY2hhbGsuY3lhbjtcblxuICAgIGxldCBzdGFja1RyYWNlID0gJyc7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBhY3Rpdml0eS5tZXRhZGF0YTtcblxuICAgIGlmIChldmVudC5SZXNvdXJjZVN0YXR1cyAmJiBldmVudC5SZXNvdXJjZVN0YXR1cy5pbmRleE9mKCdGQUlMRUQnKSAhPT0gLTEpIHtcbiAgICAgIGlmIChwcm9ncmVzcyA9PSB1bmRlZmluZWQgfHwgcHJvZ3Jlc3MpIHtcbiAgICAgICAgZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPSBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/IHRoaXMuZmFpbHVyZVJlYXNvbihhY3Rpdml0eSkgOiAnJztcbiAgICAgIH1cbiAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICBzdGFja1RyYWNlID0gbWV0YWRhdGEuZW50cnkudHJhY2UgPyBgXFxuXFx0JHttZXRhZGF0YS5lbnRyeS50cmFjZS5qb2luKCdcXG5cXHRcXFxcXyAnKX1gIDogJyc7XG4gICAgICB9XG4gICAgICByZWFzb25Db2xvciA9IGNoYWxrLnJlZDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBtZXRhZGF0YSA/IG1ldGFkYXRhLmNvbnN0cnVjdFBhdGggOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCB8fCAnJztcbiAgICBjb25zdCBsb2dpY2FsSWQgPSByZXNvdXJjZU5hbWUgIT09IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8gYCgke2V2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkfSkgYCA6ICcnO1xuXG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoXG4gICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgJyVzIHwgJXMlcyB8ICVzIHwgJXMgfCAlcyAlcyVzJXNcXG4nLFxuICAgICAgICBldmVudC5TdGFja05hbWUsXG4gICAgICAgIHByb2dyZXNzICE9PSBmYWxzZSA/IGAke2FjdGl2aXR5LnByb2dyZXNzLmZvcm1hdHRlZH0gfCBgIDogJycsXG4gICAgICAgIG5ldyBEYXRlKGV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpLFxuICAgICAgICBjb2xvcihwYWRSaWdodChIaXN0b3J5QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKGV2ZW50LlJlc291cmNlU3RhdHVzIHx8ICcnKS5zbGljZSgwLCBIaXN0b3J5QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCkpKSwgLy8gcGFkIGxlZnQgYW5kIHRyaW1cbiAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgZXZlbnQuUmVzb3VyY2VUeXBlIHx8ICcnKSxcbiAgICAgICAgY29sb3IoY2hhbGsuYm9sZChyZXNvdXJjZU5hbWUpKSxcbiAgICAgICAgbG9naWNhbElkLFxuICAgICAgICByZWFzb25Db2xvcihjaGFsay5ib2xkKGV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID8gZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gOiAnJykpLFxuICAgICAgICByZWFzb25Db2xvcihzdGFja1RyYWNlKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRoaXMubGFzdFByaW50VGltZSA9IERhdGUubm93KCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgc29tZSByZXNvdXJjZXMgYXJlIHRha2luZyBhIHdoaWxlIHRvIGNyZWF0ZSwgbm90aWZ5IHRoZSB1c2VyIGFib3V0IHdoYXQncyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3NcbiAgICovXG4gIHByaXZhdGUgcHJpbnRJblByb2dyZXNzKHByb2dyZXNzPzogc3RyaW5nKSB7XG4gICAgaWYgKCFwcm9ncmVzcyB8fCBEYXRlLm5vdygpIDwgdGhpcy5sYXN0UHJpbnRUaW1lICsgdGhpcy5pblByb2dyZXNzRGVsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5yZXNvdXJjZXNJblByb2dyZXNzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShcbiAgICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgICAgJyVzIEN1cnJlbnRseSBpbiBwcm9ncmVzczogJXNcXG4nLFxuICAgICAgICAgIHByb2dyZXNzLFxuICAgICAgICAgIGNoYWxrLmJvbGQoT2JqZWN0LmtleXModGhpcy5yZXNvdXJjZXNJblByb2dyZXNzKS5qb2luKCcsICcpKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gV2UgY2hlYXQgYSBiaXQgaGVyZS4gVG8gcHJldmVudCBwcmludEluUHJvZ3Jlc3MoKSBmcm9tIHJlcGVhdGVkbHkgdHJpZ2dlcmluZyxcbiAgICAvLyB3ZSBzZXQgdGhlIHRpbWVzdGFtcCBpbnRvIHRoZSBmdXR1cmUuIEl0IHdpbGwgYmUgcmVzZXQgd2hlbmV2ZXIgYSByZWd1bGFyIHByaW50XG4gICAgLy8gb2NjdXJzLCBhZnRlciB3aGljaCB3ZSBjYW4gYmUgdHJpZ2dlcmVkIGFnYWluLlxuICAgIHRoaXMubGFzdFByaW50VGltZSA9ICtJbmZpbml0eTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2xvckZyb21TdGF0dXNSZXN1bHQoc3RhdHVzPzogc3RyaW5nKSB7XG4gIGlmICghc3RhdHVzKSB7XG4gICAgcmV0dXJuIGNoYWxrLnJlc2V0O1xuICB9XG5cbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdGQUlMRUQnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gY2hhbGsucmVkO1xuICB9XG4gIGlmIChzdGF0dXMuaW5kZXhPZignUk9MTEJBQ0snKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG4gIGlmIChzdGF0dXMuaW5kZXhPZignQ09NUExFVEUnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gY2hhbGsuZ3JlZW47XG4gIH1cblxuICByZXR1cm4gY2hhbGsucmVzZXQ7XG59XG4iXX0=
@@ -8,9 +8,9 @@ import { HotswapMode } from '../api/hotswap/common';
8
8
  import { CloudWatchLogEventMonitor } from '../api/logs/logs-monitor';
9
9
  import { type Tag } from '../api/tags';
10
10
  import { StackActivityProgress } from '../commands/deploy';
11
+ import { RequireApproval } from '../commands/diff';
11
12
  import type { FromScan } from '../commands/migrate';
12
- import { RequireApproval } from '../diff';
13
- import { CliIoHost } from '../toolkit/cli-io-host';
13
+ import { CliIoHost } from './io-host';
14
14
  export declare function markTesting(): void;
15
15
  export interface CdkToolkitProps {
16
16
  /**
@@ -154,11 +154,14 @@ export declare class CdkToolkit {
154
154
  */
155
155
  private removePublishedAssets;
156
156
  }
157
+ /**
158
+ * Options for the diff command
159
+ */
157
160
  export interface DiffOptions {
158
161
  /**
159
162
  * Stack names to diff
160
163
  */
161
- stackNames: string[];
164
+ readonly stackNames: string[];
162
165
  /**
163
166
  * Name of the toolkit stack, if not the default name
164
167
  *
@@ -170,56 +173,50 @@ export interface DiffOptions {
170
173
  *
171
174
  * @default false
172
175
  */
173
- exclusively?: boolean;
176
+ readonly exclusively?: boolean;
174
177
  /**
175
178
  * Used a template from disk instead of from the server
176
179
  *
177
180
  * @default Use from the server
178
181
  */
179
- templatePath?: string;
182
+ readonly templatePath?: string;
180
183
  /**
181
184
  * Strict diff mode
182
185
  *
183
186
  * @default false
184
187
  */
185
- strict?: boolean;
188
+ readonly strict?: boolean;
186
189
  /**
187
190
  * How many lines of context to show in the diff
188
191
  *
189
192
  * @default 3
190
193
  */
191
- contextLines?: number;
192
- /**
193
- * Where to write the default
194
- *
195
- * @default stderr
196
- */
197
- stream?: NodeJS.WritableStream;
194
+ readonly contextLines?: number;
198
195
  /**
199
196
  * Whether to fail with exit code 1 in case of diff
200
197
  *
201
198
  * @default false
202
199
  */
203
- fail?: boolean;
200
+ readonly fail?: boolean;
204
201
  /**
205
202
  * Only run diff on broadened security changes
206
203
  *
207
204
  * @default false
208
205
  */
209
- securityOnly?: boolean;
206
+ readonly securityOnly?: boolean;
210
207
  /**
211
208
  * Whether to run the diff against the template after the CloudFormation Transforms inside it have been executed
212
209
  * (as opposed to the original template, the default, which contains the unprocessed Transforms).
213
210
  *
214
211
  * @default false
215
212
  */
216
- compareAgainstProcessedTemplate?: boolean;
217
- quiet?: boolean;
213
+ readonly compareAgainstProcessedTemplate?: boolean;
214
+ readonly quiet?: boolean;
218
215
  /**
219
216
  * Additional parameters for CloudFormation at diff time, used to create a change set
220
217
  * @default {}
221
218
  */
222
- parameters?: {
219
+ readonly parameters?: {
223
220
  [name: string]: string | undefined;
224
221
  };
225
222
  /**
@@ -227,7 +224,7 @@ export interface DiffOptions {
227
224
  *
228
225
  * @default true
229
226
  */
230
- changeSet?: boolean;
227
+ readonly changeSet?: boolean;
231
228
  }
232
229
  interface CfnDeployOptions {
233
230
  /**