aws-cdk 2.1004.0 → 2.1006.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 (207) hide show
  1. package/THIRD_PARTY_LICENSES +31 -31
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/api/aws-auth/account-cache.d.ts +1 -1
  5. package/lib/api/aws-auth/account-cache.js +1 -1
  6. package/lib/api/aws-auth/awscli-compatible.d.ts +1 -1
  7. package/lib/api/aws-auth/awscli-compatible.js +9 -10
  8. package/lib/api/aws-auth/credential-plugins.d.ts +1 -1
  9. package/lib/api/aws-auth/credential-plugins.js +6 -7
  10. package/lib/api/aws-auth/provider-caching.d.ts +1 -1
  11. package/lib/api/aws-auth/provider-caching.js +1 -1
  12. package/lib/api/aws-auth/sdk-logger.d.ts +2 -2
  13. package/lib/api/aws-auth/sdk-logger.js +3 -4
  14. package/lib/api/aws-auth/sdk-provider.d.ts +4 -4
  15. package/lib/api/aws-auth/sdk-provider.js +11 -13
  16. package/lib/api/aws-auth/sdk.d.ts +12 -12
  17. package/lib/api/aws-auth/sdk.js +8 -9
  18. package/lib/api/aws-auth/tracing.js +3 -4
  19. package/lib/api/aws-auth/user-agent.js +4 -5
  20. package/lib/api/bootstrap/bootstrap-environment.d.ts +2 -2
  21. package/lib/api/bootstrap/bootstrap-environment.js +42 -46
  22. package/lib/api/bootstrap/bootstrap-props.d.ts +3 -3
  23. package/lib/api/bootstrap/bootstrap-props.js +1 -1
  24. package/lib/api/bootstrap/deploy-bootstrap.d.ts +4 -4
  25. package/lib/api/bootstrap/deploy-bootstrap.js +11 -14
  26. package/lib/api/bootstrap/legacy-template.d.ts +1 -1
  27. package/lib/api/bootstrap/legacy-template.js +1 -1
  28. package/lib/api/{evaluate-cloudformation-template.d.ts → cloudformation/evaluate-cloudformation-template.d.ts} +10 -9
  29. package/lib/api/cloudformation/evaluate-cloudformation-template.js +440 -0
  30. package/lib/api/cloudformation/index.d.ts +4 -0
  31. package/lib/api/cloudformation/index.js +21 -0
  32. package/lib/api/{deployments → cloudformation}/nested-stack-helpers.d.ts +1 -1
  33. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  34. package/lib/api/cloudformation/stack-helpers.d.ts +96 -0
  35. package/lib/api/cloudformation/stack-helpers.js +158 -0
  36. package/lib/api/{util → cloudformation}/template-body-parameter.d.ts +4 -3
  37. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  38. package/lib/api/context.js +3 -3
  39. package/lib/api/cxapp/cloud-assembly.js +13 -15
  40. package/lib/api/cxapp/cloud-executable.d.ts +3 -3
  41. package/lib/api/cxapp/cloud-executable.js +4 -5
  42. package/lib/api/cxapp/environments.d.ts +3 -3
  43. package/lib/api/cxapp/environments.js +4 -4
  44. package/lib/api/cxapp/exec.d.ts +4 -4
  45. package/lib/api/cxapp/exec.js +20 -23
  46. package/lib/api/deployments/asset-publishing.d.ts +2 -4
  47. package/lib/api/deployments/asset-publishing.js +24 -31
  48. package/lib/api/deployments/assets.d.ts +3 -3
  49. package/lib/api/deployments/assets.js +12 -13
  50. package/lib/api/deployments/{cloudformation.d.ts → cfn-api.d.ts} +5 -102
  51. package/lib/api/deployments/cfn-api.js +438 -0
  52. package/lib/api/deployments/checks.d.ts +2 -2
  53. package/lib/api/deployments/checks.js +12 -13
  54. package/lib/api/deployments/deploy-stack.d.ts +6 -7
  55. package/lib/api/deployments/deploy-stack.js +69 -80
  56. package/lib/api/deployments/deployment-result.js +3 -3
  57. package/lib/api/deployments/deployments.d.ts +7 -7
  58. package/lib/api/deployments/deployments.js +35 -42
  59. package/lib/api/deployments/hotswap-deployments.d.ts +7 -5
  60. package/lib/api/deployments/hotswap-deployments.js +160 -82
  61. package/lib/api/deployments/index.d.ts +0 -2
  62. package/lib/api/deployments/index.js +1 -3
  63. package/lib/api/environment/environment-access.d.ts +6 -6
  64. package/lib/api/environment/environment-access.js +18 -20
  65. package/lib/api/environment/environment-resources.d.ts +1 -1
  66. package/lib/api/environment/environment-resources.js +17 -19
  67. package/lib/api/environment/index.d.ts +1 -0
  68. package/lib/api/environment/index.js +2 -1
  69. package/lib/api/environment/placeholders.js +23 -0
  70. package/lib/api/garbage-collection/garbage-collector.d.ts +4 -4
  71. package/lib/api/garbage-collection/garbage-collector.js +57 -67
  72. package/lib/api/garbage-collection/progress-printer.d.ts +2 -2
  73. package/lib/api/garbage-collection/progress-printer.js +7 -7
  74. package/lib/api/garbage-collection/stack-refresh.d.ts +2 -2
  75. package/lib/api/garbage-collection/stack-refresh.js +12 -15
  76. package/lib/api/hotswap/appsync-mapping-templates.d.ts +4 -3
  77. package/lib/api/hotswap/appsync-mapping-templates.js +32 -27
  78. package/lib/api/hotswap/code-build-projects.d.ts +4 -3
  79. package/lib/api/hotswap/code-build-projects.js +19 -12
  80. package/lib/api/hotswap/common.d.ts +27 -64
  81. package/lib/api/hotswap/common.js +40 -82
  82. package/lib/api/hotswap/ecs-services.d.ts +4 -3
  83. package/lib/api/hotswap/ecs-services.js +44 -25
  84. package/lib/api/hotswap/lambda-functions.d.ts +4 -3
  85. package/lib/api/hotswap/lambda-functions.js +61 -75
  86. package/lib/api/hotswap/s3-bucket-deployments.d.ts +5 -9
  87. package/lib/api/hotswap/s3-bucket-deployments.js +26 -21
  88. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +4 -3
  89. package/lib/api/hotswap/stepfunctions-state-machines.js +15 -9
  90. package/lib/api/logs/find-cloudwatch-logs.d.ts +1 -1
  91. package/lib/api/logs/find-cloudwatch-logs.js +7 -9
  92. package/lib/api/logs/logs-monitor.d.ts +2 -2
  93. package/lib/api/logs/logs-monitor.js +5 -8
  94. package/lib/api/plugin/plugin.js +6 -10
  95. package/lib/api/resource-import/importer.d.ts +10 -5
  96. package/lib/api/resource-import/importer.js +23 -29
  97. package/lib/api/resource-import/migrator.d.ts +4 -4
  98. package/lib/api/resource-import/migrator.js +6 -6
  99. package/lib/api/settings.d.ts +0 -3
  100. package/lib/api/settings.js +4 -40
  101. package/lib/api/stack-events/stack-activity-monitor.d.ts +1 -2
  102. package/lib/api/stack-events/stack-activity-monitor.js +14 -37
  103. package/lib/api/stack-events/stack-event-poller.js +9 -10
  104. package/lib/api/stack-events/stack-progress-monitor.d.ts +1 -1
  105. package/lib/api/stack-events/stack-progress-monitor.js +1 -1
  106. package/lib/api/toolkit-info.d.ts +3 -3
  107. package/lib/api/toolkit-info.js +20 -24
  108. package/lib/{tree.d.ts → api/tree.d.ts} +3 -3
  109. package/lib/api/tree.js +37 -0
  110. package/lib/api/util/rwlock.js +4 -4
  111. package/lib/api/work-graph/work-graph-builder.d.ts +2 -2
  112. package/lib/api/work-graph/work-graph-builder.js +4 -4
  113. package/lib/api/work-graph/work-graph-types.d.ts +2 -2
  114. package/lib/api/work-graph/work-graph-types.js +1 -1
  115. package/lib/api/work-graph/work-graph.d.ts +2 -2
  116. package/lib/api/work-graph/work-graph.js +13 -15
  117. package/lib/cli/activity-printer/base.d.ts +3 -3
  118. package/lib/cli/activity-printer/base.js +6 -8
  119. package/lib/cli/activity-printer/current.d.ts +2 -1
  120. package/lib/cli/activity-printer/current.js +7 -11
  121. package/lib/cli/activity-printer/history.d.ts +2 -1
  122. package/lib/cli/activity-printer/history.js +2 -3
  123. package/lib/cli/cdk-toolkit.d.ts +9 -15
  124. package/lib/cli/cdk-toolkit.js +90 -73
  125. package/lib/cli/ci-systems.d.ts +29 -0
  126. package/lib/cli/ci-systems.js +61 -0
  127. package/lib/cli/cli-config.js +3 -3
  128. package/lib/cli/cli.d.ts +1 -1
  129. package/lib/cli/cli.js +69 -52
  130. package/lib/cli/convert-to-user-input.js +110 -111
  131. package/lib/{toolkit → cli/io-host}/cli-io-host.d.ts +22 -3
  132. package/lib/cli/io-host/cli-io-host.js +356 -0
  133. package/lib/cli/io-host/index.d.ts +1 -0
  134. package/lib/{toolkit/error.js → cli/io-host/index.js} +2 -2
  135. package/lib/cli/messages.d.ts +2 -2
  136. package/lib/cli/messages.js +2 -3
  137. package/lib/cli/parse-command-line-arguments.js +1 -1
  138. package/lib/cli/pretty-print-error.d.ts +1 -0
  139. package/lib/cli/pretty-print-error.js +35 -0
  140. package/lib/cli/root-dir.js +4 -4
  141. package/lib/cli/user-configuration.js +57 -14
  142. package/lib/cli/user-input.js +1 -1
  143. package/lib/cli/util/npm.js +3 -3
  144. package/lib/cli/util/yargs-helpers.d.ts +1 -1
  145. package/lib/cli/util/yargs-helpers.js +3 -3
  146. package/lib/cli/version.js +4 -4
  147. package/lib/commands/context.d.ts +1 -1
  148. package/lib/commands/context.js +7 -8
  149. package/lib/commands/diff.d.ts +50 -0
  150. package/lib/commands/diff.js +215 -0
  151. package/lib/commands/init/index.d.ts +1 -0
  152. package/lib/commands/init/index.js +18 -0
  153. package/lib/commands/init/init-hooks.js +63 -0
  154. package/lib/commands/init/init.js +435 -0
  155. package/lib/{os.js → commands/init/os.js} +4 -4
  156. package/lib/{list-stacks.d.ts → commands/list-stacks.d.ts} +1 -1
  157. package/lib/{list-stacks.js → commands/list-stacks.js} +2 -2
  158. package/lib/commands/migrate.d.ts +1 -1
  159. package/lib/commands/migrate.js +29 -32
  160. package/lib/context-providers/ami.d.ts +4 -2
  161. package/lib/context-providers/ami.js +8 -8
  162. package/lib/context-providers/availability-zones.d.ts +4 -2
  163. package/lib/context-providers/availability-zones.js +4 -4
  164. package/lib/context-providers/cc-api-provider.d.ts +9 -13
  165. package/lib/context-providers/cc-api-provider.js +88 -66
  166. package/lib/context-providers/endpoint-service-availability-zones.d.ts +4 -2
  167. package/lib/context-providers/endpoint-service-availability-zones.js +6 -6
  168. package/lib/context-providers/hosted-zones.d.ts +5 -3
  169. package/lib/context-providers/hosted-zones.js +11 -11
  170. package/lib/context-providers/index.d.ts +22 -8
  171. package/lib/context-providers/index.js +35 -17
  172. package/lib/context-providers/keys.d.ts +4 -2
  173. package/lib/context-providers/keys.js +8 -8
  174. package/lib/context-providers/load-balancers.d.ts +3 -3
  175. package/lib/context-providers/load-balancers.js +15 -18
  176. package/lib/context-providers/security-groups.js +10 -12
  177. package/lib/context-providers/ssm-parameters.d.ts +4 -2
  178. package/lib/context-providers/ssm-parameters.js +7 -7
  179. package/lib/context-providers/vpcs.d.ts +4 -2
  180. package/lib/context-providers/vpcs.js +14 -15
  181. package/lib/index.js +115212 -114237
  182. package/lib/init-templates/.init-version.json +1 -1
  183. package/lib/init-templates/.recommended-feature-flags.json +2 -1
  184. package/lib/legacy-exports-source.d.ts +4 -5
  185. package/lib/legacy-exports-source.js +6 -7
  186. package/lib/legacy-logging-source.js +1 -1
  187. package/lib/logging.d.ts +3 -3
  188. package/lib/logging.js +38 -36
  189. package/lib/notices.d.ts +22 -18
  190. package/lib/notices.js +67 -73
  191. package/package.json +18 -20
  192. package/lib/api/deployments/cloudformation.js +0 -597
  193. package/lib/api/deployments/nested-stack-helpers.js +0 -88
  194. package/lib/api/evaluate-cloudformation-template.js +0 -443
  195. package/lib/api/util/placeholders.js +0 -24
  196. package/lib/api/util/template-body-parameter.js +0 -103
  197. package/lib/diff.d.ts +0 -28
  198. package/lib/diff.js +0 -165
  199. package/lib/init-hooks.js +0 -63
  200. package/lib/init.js +0 -437
  201. package/lib/toolkit/cli-io-host.js +0 -324
  202. package/lib/toolkit/error.d.ts +0 -1
  203. package/lib/tree.js +0 -40
  204. /package/lib/api/{util → environment}/placeholders.d.ts +0 -0
  205. /package/lib/{init-hooks.d.ts → commands/init/init-hooks.d.ts} +0 -0
  206. /package/lib/{init.d.ts → commands/init/init.d.ts} +0 -0
  207. /package/lib/{os.d.ts → commands/init/os.d.ts} +0 -0
@@ -1 +1 @@
1
- {"aws-cdk-lib": "2.181.1", "constructs": "^10.0.0"}
1
+ {"aws-cdk-lib": "2.185.0", "constructs": "^10.0.0"}
@@ -65,5 +65,6 @@
65
65
  "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true,
66
66
  "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true,
67
67
  "@aws-cdk/core:enableAdditionalMetadataCollection": true,
68
- "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": true
68
+ "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": true,
69
+ "@aws-cdk/aws-s3:setUniqueReplicationRoleName": true
69
70
  }
@@ -1,5 +1,5 @@
1
1
  export * from './legacy-logging-source';
2
- export { deepClone, flatten, ifDefined, isArray, isEmpty, numberFromBool, partition, padLeft as leftPad, contentHash, deepMerge } from './util';
2
+ export { deepClone, flatten, ifDefined, isArray, isEmpty, numberFromBool, partition, padLeft as leftPad, contentHash, deepMerge, lowerCaseFirstCharacter } from './util';
3
3
  export { deployStack } from './api/deployments/deploy-stack';
4
4
  export { cli, exec } from './cli/cli';
5
5
  export { SdkProvider } from './api/aws-auth';
@@ -9,16 +9,15 @@ export { Settings } from './api/settings';
9
9
  export { Bootstrapper } from './api/bootstrap';
10
10
  export { CloudExecutable } from './api/cxapp/cloud-executable';
11
11
  export { execProgram } from './api/cxapp/exec';
12
- export { RequireApproval } from './diff';
12
+ export { RequireApproval } from './commands/diff';
13
13
  export { formatAsBanner } from './cli/util/console-formatters';
14
14
  export { setSdkTracing as enableTracing } from './api/aws-auth/tracing';
15
15
  export { aliases, command, describe } from './commands/docs';
16
- export { lowerCaseFirstCharacter } from './api/hotswap/common';
17
16
  export { Deployments } from './api/deployments';
18
17
  export { cliRootDir as rootDir } from './cli/root-dir';
19
18
  export { latestVersionIfHigher, versionNumber } from './cli/version';
20
- export { availableInitTemplates } from './init';
19
+ export { availableInitTemplates } from './commands/init';
21
20
  export { cached } from './api/aws-auth/cached';
22
- export { CfnEvaluationException } from './api/evaluate-cloudformation-template';
21
+ export { CfnEvaluationException } from './api/cloudformation/evaluate-cloudformation-template';
23
22
  export { CredentialPlugins } from './api/aws-auth/credential-plugins';
24
23
  export { AwsCliCompatible } from './api/aws-auth/awscli-compatible';
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.AwsCliCompatible = exports.CredentialPlugins = exports.CfnEvaluationException = exports.cached = exports.availableInitTemplates = exports.versionNumber = exports.latestVersionIfHigher = exports.rootDir = exports.Deployments = exports.lowerCaseFirstCharacter = exports.describe = exports.command = exports.aliases = exports.enableTracing = exports.formatAsBanner = exports.RequireApproval = exports.execProgram = exports.CloudExecutable = exports.Bootstrapper = exports.Settings = exports.PROJECT_CONTEXT = exports.Configuration = exports.Command = exports.PluginHost = exports.SdkProvider = exports.exec = exports.cli = exports.deployStack = exports.deepMerge = exports.contentHash = exports.leftPad = exports.partition = exports.numberFromBool = exports.isEmpty = exports.isArray = exports.ifDefined = exports.flatten = exports.deepClone = void 0;
21
+ exports.AwsCliCompatible = exports.CredentialPlugins = exports.CfnEvaluationException = exports.cached = exports.availableInitTemplates = exports.versionNumber = exports.latestVersionIfHigher = exports.rootDir = exports.Deployments = exports.describe = exports.command = exports.aliases = exports.enableTracing = exports.formatAsBanner = exports.RequireApproval = exports.execProgram = exports.CloudExecutable = exports.Bootstrapper = exports.Settings = exports.PROJECT_CONTEXT = exports.Configuration = exports.Command = exports.PluginHost = exports.SdkProvider = exports.exec = exports.cli = exports.deployStack = exports.lowerCaseFirstCharacter = exports.deepMerge = exports.contentHash = exports.leftPad = exports.partition = exports.numberFromBool = exports.isEmpty = exports.isArray = exports.ifDefined = exports.flatten = exports.deepClone = void 0;
22
22
  // Note: All type exports are in `legacy-exports.ts`
23
23
  __exportStar(require("./legacy-logging-source"), exports);
24
24
  var util_1 = require("./util");
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "partition", { enumerable: true, get: function ()
32
32
  Object.defineProperty(exports, "leftPad", { enumerable: true, get: function () { return util_1.padLeft; } });
33
33
  Object.defineProperty(exports, "contentHash", { enumerable: true, get: function () { return util_1.contentHash; } });
34
34
  Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return util_1.deepMerge; } });
35
+ Object.defineProperty(exports, "lowerCaseFirstCharacter", { enumerable: true, get: function () { return util_1.lowerCaseFirstCharacter; } });
35
36
  var deploy_stack_1 = require("./api/deployments/deploy-stack");
36
37
  Object.defineProperty(exports, "deployStack", { enumerable: true, get: function () { return deploy_stack_1.deployStack; } });
37
38
  var cli_1 = require("./cli/cli");
@@ -53,7 +54,7 @@ var cloud_executable_1 = require("./api/cxapp/cloud-executable");
53
54
  Object.defineProperty(exports, "CloudExecutable", { enumerable: true, get: function () { return cloud_executable_1.CloudExecutable; } });
54
55
  var exec_1 = require("./api/cxapp/exec");
55
56
  Object.defineProperty(exports, "execProgram", { enumerable: true, get: function () { return exec_1.execProgram; } });
56
- var diff_1 = require("./diff");
57
+ var diff_1 = require("./commands/diff");
57
58
  Object.defineProperty(exports, "RequireApproval", { enumerable: true, get: function () { return diff_1.RequireApproval; } });
58
59
  var console_formatters_1 = require("./cli/util/console-formatters");
59
60
  Object.defineProperty(exports, "formatAsBanner", { enumerable: true, get: function () { return console_formatters_1.formatAsBanner; } });
@@ -63,8 +64,6 @@ var docs_1 = require("./commands/docs");
63
64
  Object.defineProperty(exports, "aliases", { enumerable: true, get: function () { return docs_1.aliases; } });
64
65
  Object.defineProperty(exports, "command", { enumerable: true, get: function () { return docs_1.command; } });
65
66
  Object.defineProperty(exports, "describe", { enumerable: true, get: function () { return docs_1.describe; } });
66
- var common_1 = require("./api/hotswap/common");
67
- Object.defineProperty(exports, "lowerCaseFirstCharacter", { enumerable: true, get: function () { return common_1.lowerCaseFirstCharacter; } });
68
67
  var deployments_1 = require("./api/deployments");
69
68
  Object.defineProperty(exports, "Deployments", { enumerable: true, get: function () { return deployments_1.Deployments; } });
70
69
  var root_dir_1 = require("./cli/root-dir");
@@ -72,14 +71,14 @@ Object.defineProperty(exports, "rootDir", { enumerable: true, get: function () {
72
71
  var version_1 = require("./cli/version");
73
72
  Object.defineProperty(exports, "latestVersionIfHigher", { enumerable: true, get: function () { return version_1.latestVersionIfHigher; } });
74
73
  Object.defineProperty(exports, "versionNumber", { enumerable: true, get: function () { return version_1.versionNumber; } });
75
- var init_1 = require("./init");
74
+ var init_1 = require("./commands/init");
76
75
  Object.defineProperty(exports, "availableInitTemplates", { enumerable: true, get: function () { return init_1.availableInitTemplates; } });
77
76
  var cached_1 = require("./api/aws-auth/cached");
78
77
  Object.defineProperty(exports, "cached", { enumerable: true, get: function () { return cached_1.cached; } });
79
- var evaluate_cloudformation_template_1 = require("./api/evaluate-cloudformation-template");
78
+ var evaluate_cloudformation_template_1 = require("./api/cloudformation/evaluate-cloudformation-template");
80
79
  Object.defineProperty(exports, "CfnEvaluationException", { enumerable: true, get: function () { return evaluate_cloudformation_template_1.CfnEvaluationException; } });
81
80
  var credential_plugins_1 = require("./api/aws-auth/credential-plugins");
82
81
  Object.defineProperty(exports, "CredentialPlugins", { enumerable: true, get: function () { return credential_plugins_1.CredentialPlugins; } });
83
82
  var awscli_compatible_1 = require("./api/aws-auth/awscli-compatible");
84
83
  Object.defineProperty(exports, "AwsCliCompatible", { enumerable: true, get: function () { return awscli_compatible_1.AwsCliCompatible; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWV4cG9ydHMtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWV4cG9ydHMtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0R0FBNEc7QUFDNUcsMkVBQTJFO0FBQzNFLDBIQUEwSDtBQUMxSCxzRUFBc0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRFLG9EQUFvRDtBQUNwRCwwREFBd0M7QUFDeEMsK0JBQWdKO0FBQXZJLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLHNHQUFBLGNBQWMsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBVztBQUFFLG1HQUFBLFdBQVcsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUMvSCwrREFBNkQ7QUFBcEQsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLGlDQUFzQztBQUE3QiwwRkFBQSxHQUFHLE9BQUE7QUFBRSwyRkFBQSxJQUFJLE9BQUE7QUFDbEIsMkNBQTZDO0FBQXBDLHVHQUFBLFdBQVcsT0FBQTtBQUNwQix1Q0FBMEM7QUFBakMsb0dBQUEsVUFBVSxPQUFBO0FBQ25CLCtEQUFtRjtBQUExRSw2R0FBQSxPQUFPLE9BQUE7QUFBRSxtSEFBQSxhQUFhLE9BQUE7QUFBRSxxSEFBQSxlQUFlLE9BQUE7QUFDaEQsMkNBQTBDO0FBQWpDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQiw2Q0FBK0M7QUFBdEMseUdBQUEsWUFBWSxPQUFBO0FBQ3JCLGlFQUErRDtBQUF0RCxtSEFBQSxlQUFlLE9BQUE7QUFDeEIseUNBQStDO0FBQXRDLG1HQUFBLFdBQVcsT0FBQTtBQUNwQiwrQkFBeUM7QUFBaEMsdUdBQUEsZUFBZSxPQUFBO0FBQ3hCLG9FQUErRDtBQUF0RCxvSEFBQSxjQUFjLE9BQUE7QUFDdkIsa0RBQXdFO0FBQS9ELHdHQUFBLGFBQWEsT0FBaUI7QUFDdkMsd0NBQTZEO0FBQXBELCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGdHQUFBLFFBQVEsT0FBQTtBQUNuQywrQ0FBK0Q7QUFBdEQsaUhBQUEsdUJBQXVCLE9BQUE7QUFDaEMsaURBQWdEO0FBQXZDLDBHQUFBLFdBQVcsT0FBQTtBQUNwQiwyQ0FBdUQ7QUFBOUMsbUdBQUEsVUFBVSxPQUFXO0FBQzlCLHlDQUFxRTtBQUE1RCxnSEFBQSxxQkFBcUIsT0FBQTtBQUFFLHdHQUFBLGFBQWEsT0FBQTtBQUM3QywrQkFBZ0Q7QUFBdkMsOEdBQUEsc0JBQXNCLE9BQUE7QUFDL0IsZ0RBQStDO0FBQXRDLGdHQUFBLE1BQU0sT0FBQTtBQUNmLDJGQUFnRjtBQUF2RSwwSUFBQSxzQkFBc0IsT0FBQTtBQUMvQix3RUFBc0U7QUFBN0QsdUhBQUEsaUJBQWlCLE9BQUE7QUFDMUIsc0VBQW9FO0FBQTNELHFIQUFBLGdCQUFnQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBpcyBhIGJhcnJlbCBleHBvcnQgZmlsZSwgb2YgYWxsIGtub3duIHN5bWJvbHMgdGhhdCBhcmUgaW1wb3J0ZWQgYnkgdXNlcnMgZnJvbSB0aGUgYGF3cy1jZGtgIHBhY2thZ2UuXG4vLyBJbXBvcnRpbmcgdGhlc2Ugc3ltYm9scyB3YXMgbmV2ZXIgb2ZmaWNpYWxseSBzdXBwb3J0ZWQsIGJ1dCBoZXJlIHdlIGFyZS5cbi8vIEluIG9yZGVyIHRvIHByZXNlcnZlciBiYWNrd2FyZHMtY29tcGF0aWJseSBmb3IgdGhlc2UgdXNlcnMsIHdlIHJlLWV4cG9ydCBhbmQgcHJlc2VydmUgdGhlbSBhcyBleHBsaWNpdCBzdWJwYXRoIGV4cG9ydHMuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMwMjEgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5cbi8vIE5vdGU6IEFsbCB0eXBlIGV4cG9ydHMgYXJlIGluIGBsZWdhY3ktZXhwb3J0cy50c2BcbmV4cG9ydCAqIGZyb20gJy4vbGVnYWN5LWxvZ2dpbmctc291cmNlJztcbmV4cG9ydCB7IGRlZXBDbG9uZSwgZmxhdHRlbiwgaWZEZWZpbmVkLCBpc0FycmF5LCBpc0VtcHR5LCBudW1iZXJGcm9tQm9vbCwgcGFydGl0aW9uLCBwYWRMZWZ0IGFzIGxlZnRQYWQsIGNvbnRlbnRIYXNoLCBkZWVwTWVyZ2UgfSBmcm9tICcuL3V0aWwnO1xuZXhwb3J0IHsgZGVwbG95U3RhY2sgfSBmcm9tICcuL2FwaS9kZXBsb3ltZW50cy9kZXBsb3ktc3RhY2snO1xuZXhwb3J0IHsgY2xpLCBleGVjIH0gZnJvbSAnLi9jbGkvY2xpJztcbmV4cG9ydCB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi9hcGkvYXdzLWF1dGgnO1xuZXhwb3J0IHsgUGx1Z2luSG9zdCB9IGZyb20gJy4vYXBpL3BsdWdpbic7XG5leHBvcnQgeyBDb21tYW5kLCBDb25maWd1cmF0aW9uLCBQUk9KRUNUX0NPTlRFWFQgfSBmcm9tICcuL2NsaS91c2VyLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL2FwaS9zZXR0aW5ncyc7XG5leHBvcnQgeyBCb290c3RyYXBwZXIgfSBmcm9tICcuL2FwaS9ib290c3RyYXAnO1xuZXhwb3J0IHsgQ2xvdWRFeGVjdXRhYmxlIH0gZnJvbSAnLi9hcGkvY3hhcHAvY2xvdWQtZXhlY3V0YWJsZSc7XG5leHBvcnQgeyBleGVjUHJvZ3JhbSB9IGZyb20gJy4vYXBpL2N4YXBwL2V4ZWMnO1xuZXhwb3J0IHsgUmVxdWlyZUFwcHJvdmFsIH0gZnJvbSAnLi9kaWZmJztcbmV4cG9ydCB7IGZvcm1hdEFzQmFubmVyIH0gZnJvbSAnLi9jbGkvdXRpbC9jb25zb2xlLWZvcm1hdHRlcnMnO1xuZXhwb3J0IHsgc2V0U2RrVHJhY2luZyBhcyBlbmFibGVUcmFjaW5nIH0gZnJvbSAnLi9hcGkvYXdzLWF1dGgvdHJhY2luZyc7XG5leHBvcnQgeyBhbGlhc2VzLCBjb21tYW5kLCBkZXNjcmliZSB9IGZyb20gJy4vY29tbWFuZHMvZG9jcyc7XG5leHBvcnQgeyBsb3dlckNhc2VGaXJzdENoYXJhY3RlciB9IGZyb20gJy4vYXBpL2hvdHN3YXAvY29tbW9uJztcbmV4cG9ydCB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi9hcGkvZGVwbG95bWVudHMnO1xuZXhwb3J0IHsgY2xpUm9vdERpciBhcyByb290RGlyIH0gZnJvbSAnLi9jbGkvcm9vdC1kaXInO1xuZXhwb3J0IHsgbGF0ZXN0VmVyc2lvbklmSGlnaGVyLCB2ZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9jbGkvdmVyc2lvbic7XG5leHBvcnQgeyBhdmFpbGFibGVJbml0VGVtcGxhdGVzIH0gZnJvbSAnLi9pbml0JztcbmV4cG9ydCB7IGNhY2hlZCB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2NhY2hlZCc7XG5leHBvcnQgeyBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uIH0gZnJvbSAnLi9hcGkvZXZhbHVhdGUtY2xvdWRmb3JtYXRpb24tdGVtcGxhdGUnO1xuZXhwb3J0IHsgQ3JlZGVudGlhbFBsdWdpbnMgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC9jcmVkZW50aWFsLXBsdWdpbnMnO1xuZXhwb3J0IHsgQXdzQ2xpQ29tcGF0aWJsZSB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2F3c2NsaS1jb21wYXRpYmxlJztcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWV4cG9ydHMtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWV4cG9ydHMtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0R0FBNEc7QUFDNUcsMkVBQTJFO0FBQzNFLDBIQUEwSDtBQUMxSCxzRUFBc0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRFLG9EQUFvRDtBQUNwRCwwREFBd0M7QUFDeEMsK0JBQXlLO0FBQWhLLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLHNHQUFBLGNBQWMsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBVztBQUFFLG1HQUFBLFdBQVcsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtHQUFBLHVCQUF1QixPQUFBO0FBQ3hKLCtEQUE2RDtBQUFwRCwyR0FBQSxXQUFXLE9BQUE7QUFDcEIsaUNBQXNDO0FBQTdCLDBGQUFBLEdBQUcsT0FBQTtBQUFFLDJGQUFBLElBQUksT0FBQTtBQUNsQiwyQ0FBNkM7QUFBcEMsdUdBQUEsV0FBVyxPQUFBO0FBQ3BCLHVDQUEwQztBQUFqQyxvR0FBQSxVQUFVLE9BQUE7QUFDbkIsK0RBQW1GO0FBQTFFLDZHQUFBLE9BQU8sT0FBQTtBQUFFLG1IQUFBLGFBQWEsT0FBQTtBQUFFLHFIQUFBLGVBQWUsT0FBQTtBQUNoRCwyQ0FBMEM7QUFBakMsb0dBQUEsUUFBUSxPQUFBO0FBQ2pCLDZDQUErQztBQUF0Qyx5R0FBQSxZQUFZLE9BQUE7QUFDckIsaUVBQStEO0FBQXRELG1IQUFBLGVBQWUsT0FBQTtBQUN4Qix5Q0FBK0M7QUFBdEMsbUdBQUEsV0FBVyxPQUFBO0FBQ3BCLHdDQUFrRDtBQUF6Qyx1R0FBQSxlQUFlLE9BQUE7QUFDeEIsb0VBQStEO0FBQXRELG9IQUFBLGNBQWMsT0FBQTtBQUN2QixrREFBd0U7QUFBL0Qsd0dBQUEsYUFBYSxPQUFpQjtBQUN2Qyx3Q0FBNkQ7QUFBcEQsK0ZBQUEsT0FBTyxPQUFBO0FBQUUsK0ZBQUEsT0FBTyxPQUFBO0FBQUUsZ0dBQUEsUUFBUSxPQUFBO0FBQ25DLGlEQUFnRDtBQUF2QywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkNBQXVEO0FBQTlDLG1HQUFBLFVBQVUsT0FBVztBQUM5Qix5Q0FBcUU7QUFBNUQsZ0hBQUEscUJBQXFCLE9BQUE7QUFBRSx3R0FBQSxhQUFhLE9BQUE7QUFDN0Msd0NBQXlEO0FBQWhELDhHQUFBLHNCQUFzQixPQUFBO0FBQy9CLGdEQUErQztBQUF0QyxnR0FBQSxNQUFNLE9BQUE7QUFDZiwwR0FBK0Y7QUFBdEYsMElBQUEsc0JBQXNCLE9BQUE7QUFDL0Isd0VBQXNFO0FBQTdELHVIQUFBLGlCQUFpQixPQUFBO0FBQzFCLHNFQUFvRTtBQUEzRCxxSEFBQSxnQkFBZ0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaXMgYSBiYXJyZWwgZXhwb3J0IGZpbGUsIG9mIGFsbCBrbm93biBzeW1ib2xzIHRoYXQgYXJlIGltcG9ydGVkIGJ5IHVzZXJzIGZyb20gdGhlIGBhd3MtY2RrYCBwYWNrYWdlLlxuLy8gSW1wb3J0aW5nIHRoZXNlIHN5bWJvbHMgd2FzIG5ldmVyIG9mZmljaWFsbHkgc3VwcG9ydGVkLCBidXQgaGVyZSB3ZSBhcmUuXG4vLyBJbiBvcmRlciB0byBwcmVzZXJ2ZXIgYmFja3dhcmRzLWNvbXBhdGlibHkgZm9yIHRoZXNlIHVzZXJzLCB3ZSByZS1leHBvcnQgYW5kIHByZXNlcnZlIHRoZW0gYXMgZXhwbGljaXQgc3VicGF0aCBleHBvcnRzLlxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMzMDIxIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG4vLyBOb3RlOiBBbGwgdHlwZSBleHBvcnRzIGFyZSBpbiBgbGVnYWN5LWV4cG9ydHMudHNgXG5leHBvcnQgKiBmcm9tICcuL2xlZ2FjeS1sb2dnaW5nLXNvdXJjZSc7XG5leHBvcnQgeyBkZWVwQ2xvbmUsIGZsYXR0ZW4sIGlmRGVmaW5lZCwgaXNBcnJheSwgaXNFbXB0eSwgbnVtYmVyRnJvbUJvb2wsIHBhcnRpdGlvbiwgcGFkTGVmdCBhcyBsZWZ0UGFkLCBjb250ZW50SGFzaCwgZGVlcE1lcmdlLCBsb3dlckNhc2VGaXJzdENoYXJhY3RlciB9IGZyb20gJy4vdXRpbCc7XG5leHBvcnQgeyBkZXBsb3lTdGFjayB9IGZyb20gJy4vYXBpL2RlcGxveW1lbnRzL2RlcGxveS1zdGFjayc7XG5leHBvcnQgeyBjbGksIGV4ZWMgfSBmcm9tICcuL2NsaS9jbGknO1xuZXhwb3J0IHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuL2FwaS9hd3MtYXV0aCc7XG5leHBvcnQgeyBQbHVnaW5Ib3N0IH0gZnJvbSAnLi9hcGkvcGx1Z2luJztcbmV4cG9ydCB7IENvbW1hbmQsIENvbmZpZ3VyYXRpb24sIFBST0pFQ1RfQ09OVEVYVCB9IGZyb20gJy4vY2xpL3VzZXItY29uZmlndXJhdGlvbic7XG5leHBvcnQgeyBTZXR0aW5ncyB9IGZyb20gJy4vYXBpL3NldHRpbmdzJztcbmV4cG9ydCB7IEJvb3RzdHJhcHBlciB9IGZyb20gJy4vYXBpL2Jvb3RzdHJhcCc7XG5leHBvcnQgeyBDbG91ZEV4ZWN1dGFibGUgfSBmcm9tICcuL2FwaS9jeGFwcC9jbG91ZC1leGVjdXRhYmxlJztcbmV4cG9ydCB7IGV4ZWNQcm9ncmFtIH0gZnJvbSAnLi9hcGkvY3hhcHAvZXhlYyc7XG5leHBvcnQgeyBSZXF1aXJlQXBwcm92YWwgfSBmcm9tICcuL2NvbW1hbmRzL2RpZmYnO1xuZXhwb3J0IHsgZm9ybWF0QXNCYW5uZXIgfSBmcm9tICcuL2NsaS91dGlsL2NvbnNvbGUtZm9ybWF0dGVycyc7XG5leHBvcnQgeyBzZXRTZGtUcmFjaW5nIGFzIGVuYWJsZVRyYWNpbmcgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC90cmFjaW5nJztcbmV4cG9ydCB7IGFsaWFzZXMsIGNvbW1hbmQsIGRlc2NyaWJlIH0gZnJvbSAnLi9jb21tYW5kcy9kb2NzJztcbmV4cG9ydCB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi9hcGkvZGVwbG95bWVudHMnO1xuZXhwb3J0IHsgY2xpUm9vdERpciBhcyByb290RGlyIH0gZnJvbSAnLi9jbGkvcm9vdC1kaXInO1xuZXhwb3J0IHsgbGF0ZXN0VmVyc2lvbklmSGlnaGVyLCB2ZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9jbGkvdmVyc2lvbic7XG5leHBvcnQgeyBhdmFpbGFibGVJbml0VGVtcGxhdGVzIH0gZnJvbSAnLi9jb21tYW5kcy9pbml0JztcbmV4cG9ydCB7IGNhY2hlZCB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2NhY2hlZCc7XG5leHBvcnQgeyBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uIH0gZnJvbSAnLi9hcGkvY2xvdWRmb3JtYXRpb24vZXZhbHVhdGUtY2xvdWRmb3JtYXRpb24tdGVtcGxhdGUnO1xuZXhwb3J0IHsgQ3JlZGVudGlhbFBsdWdpbnMgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC9jcmVkZW50aWFsLXBsdWdpbnMnO1xuZXhwb3J0IHsgQXdzQ2xpQ29tcGF0aWJsZSB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2F3c2NsaS1jb21wYXRpYmxlJztcbiJdfQ==
@@ -104,4 +104,4 @@ exports.data = logger(stdout);
104
104
  function prefix(prefixString, fn) {
105
105
  return (fmt, ...args) => fn(`%s ${fmt}`, prefixString, ...args);
106
106
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWxvZ2dpbmctc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWxvZ2dpbmctc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzRkFBc0Y7QUFDdEYsK0dBQStHO0FBQy9HLHNGQUFzRjtBQUN0Riw2RkFBNkY7QUFDN0YsaURBQWlEO0FBQ2pELHNFQUFzRTs7O0FBV3RFLDhDQU9DO0FBOERELGtDQUVDO0FBRUQsc0JBRUM7QUFFRCw4Q0FFQztBQXdCRCx3QkFFQztBQWpIRCw2QkFBNkI7QUFDN0IsK0JBQStCO0FBRy9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0FBSTVCLEtBQUssVUFBVSxpQkFBaUIsQ0FBSSxLQUF1QjtJQUNoRSxXQUFXLEVBQUUsQ0FBQztJQUNkLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO1lBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sU0FBUyxHQUF5QixFQUFFLENBQUM7QUFFM0MsU0FBUyxNQUFNO0lBQ2IsT0FBTyxZQUFZLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsWUFBWSxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxhQUFhO0lBQ3BCLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDZCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFD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aGUgZmlsZSBgcGFja2FnZXMvYXdzLWNkay9saWIvbG9nZ2luZy50c2AgZnJvbSAyMDI0LTExLTI5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi84MWNkZTBlMmUxZjgzZjgwMjczZDE0NzI0ZDU1MThjYzIwZGM1YTgwL3BhY2thZ2VzL2F3cy1jZGsvbGliL2xvZ2dpbmcudHNcbi8vIEFmdGVyIHRoaXMgd2Ugc3RhcnRlZCByZWZhY3RvcmluZyB0aGUgZmlsZSBhbmQgZnVuY3Rpb25hbGl0eSBjaGFuZ2VkIHNpZ25pZmljYW50bHkuXG4vLyBJbiBvcmRlciB0byBwcmVzZXJ2ZXIgYmFja3dhcmRzLWNvbXBhdGlibHkgZm9yIHVzZXJzIHdpdGggdW5zYW5jdGlvbmVkIHVzYWdlIG9mIHRoaXMgZmlsZSxcbi8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIGFyb3VuZC5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzAyMSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcblxudHlwZSBTdHlsZUZuID0gKHN0cjogc3RyaW5nKSA9PiBzdHJpbmc7XG5jb25zdCB7IHN0ZG91dCwgc3RkZXJyIH0gPSBwcm9jZXNzO1xuXG50eXBlIFdyaXRhYmxlRmFjdG9yeSA9ICgpID0+IFdyaXRhYmxlO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aENvcmtlZExvZ2dpbmc8QT4oYmxvY2s6ICgpID0+IFByb21pc2U8QT4pOiBQcm9taXNlPEE+IHtcbiAgY29ya0xvZ2dpbmcoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB1bmNvcmtMb2dnaW5nKCk7XG4gIH1cbn1cblxubGV0IENPUktfQ09VTlRFUiA9IDA7XG5jb25zdCBsb2dCdWZmZXI6IFtXcml0YWJsZSwgc3RyaW5nXVtdID0gW107XG5cbmZ1bmN0aW9uIGNvcmtlZCgpIHtcbiAgcmV0dXJuIENPUktfQ09VTlRFUiAhPT0gMDtcbn1cblxuZnVuY3Rpb24gY29ya0xvZ2dpbmcoKSB7XG4gIENPUktfQ09VTlRFUiArPSAxO1xufVxuXG5mdW5jdGlvbiB1bmNvcmtMb2dnaW5nKCkge1xuICBDT1JLX0NPVU5URVIgLT0gMTtcbiAgaWYgKCFjb3JrZWQoKSkge1xuICAgIGxvZ0J1ZmZlci5mb3JFYWNoKChbc3RyZWFtLCBzdHJdKSA9PiBzdHJlYW0ud3JpdGUoc3RyICsgJ1xcbicpKTtcbiAgICBsb2dCdWZmZXIuc3BsaWNlKDApO1xuICB9XG59XG5cbmNvbnN0IGxvZ2dlciA9IChzdHJlYW06IFdyaXRhYmxlIHwgV3JpdGFibGVGYWN0b3J5LCBzdHlsZXM/OiBTdHlsZUZuW10sIHRpbWVzdGFtcD86IGJvb2xlYW4pID0+IChmbXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIGNvbnN0IHRzID0gdGltZXN0YW1wID8gYFske2Zvcm1hdFRpbWUobmV3IERhdGUoKSl9XSBgIDogJyc7XG5cbiAgbGV0IHN0ciA9IHRzICsgdXRpbC5mb3JtYXQoZm10LCAuLi5hcmdzKTtcbiAgaWYgKHN0eWxlcyAmJiBzdHlsZXMubGVuZ3RoKSB7XG4gICAgc3RyID0gc3R5bGVzLnJlZHVjZSgoYSwgc3R5bGUpID0+IHN0eWxlKGEpLCBzdHIpO1xuICB9XG5cbiAgY29uc3QgcmVhbFN0cmVhbSA9IHR5cGVvZiBzdHJlYW0gPT09ICdmdW5jdGlvbicgPyBzdHJlYW0oKSA6IHN0cmVhbTtcblxuICAvLyBMb2dnZXIgaXMgY3VycmVudGx5IGNvcmtlZCwgc28gd2Ugc3RvcmUgdGhlIG1lc3NhZ2UgdG8gYmUgcHJpbnRlZFxuICAvLyBsYXRlciB3aGVuIHdlIGFyZSB1bmNvcmtlZC5cbiAgaWYgKGNvcmtlZCgpKSB7XG4gICAgbG9nQnVmZmVyLnB1c2goW3JlYWxTdHJlYW0sIHN0cl0pO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlYWxTdHJlYW0ud3JpdGUoc3RyICsgJ1xcbicpO1xufTtcblxuZnVuY3Rpb24gZm9ybWF0VGltZShkOiBEYXRlKSB7XG4gIHJldHVybiBgJHtscGFkKGQuZ2V0SG91cnMoKSwgMil9OiR7bHBhZChkLmdldE1pbnV0ZXMoKSwgMil9OiR7bHBhZChkLmdldFNlY29uZHMoKSwgMil9YDtcblxuICBmdW5jdGlvbiBscGFkKHg6IGFueSwgdzogbnVtYmVyKSB7XG4gICAgY29uc3QgcyA9IGAke3h9YDtcbiAgICByZXR1cm4gJzAnLnJlcGVhdChNYXRoLm1heCh3IC0gcy5sZW5ndGgsIDApKSArIHM7XG4gIH1cbn1cblxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICAvKiogTm90IHZlcmJvc2UgYXQgYWxsICovXG4gIERFRkFVTFQgPSAwLFxuICAvKiogUHJldHR5IHZlcmJvc2UgKi9cbiAgREVCVUcgPSAxLFxuICAvKiogRXh0cmVtZWx5IHZlcmJvc2UgKi9cbiAgVFJBQ0UgPSAyLFxufVxuXG5leHBvcnQgbGV0IGxvZ0xldmVsID0gTG9nTGV2ZWwuREVGQVVMVDtcbmV4cG9ydCBsZXQgQ0kgPSBmYWxzZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvZ0xldmVsKG5ld0xvZ0xldmVsOiBMb2dMZXZlbCkge1xuICBsb2dMZXZlbCA9IG5ld0xvZ0xldmVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q0kobmV3Q0k6IGJvb2xlYW4pIHtcbiAgQ0kgPSBuZXdDSTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluY3JlYXNlVmVyYm9zaXR5KCkge1xuICBsb2dMZXZlbCArPSAxO1xufVxuXG5jb25zdCBzdHJlYW0gPSAoKSA9PiBDSSA/IHN0ZG91dCA6IHN0ZGVycjtcbmNvbnN0IF9kZWJ1ZyA9IGxvZ2dlcihzdHJlYW0sIFtjaGFsay5ncmF5XSwgdHJ1ZSk7XG5cbmV4cG9ydCBjb25zdCB0cmFjZSA9IChmbXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiBsb2dMZXZlbCA+PSBMb2dMZXZlbC5UUkFDRSAmJiBfZGVidWcoZm10LCAuLi5hcmdzKTtcbmV4cG9ydCBjb25zdCBkZWJ1ZyA9IChmbXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiBsb2dMZXZlbCA+PSBMb2dMZXZlbC5ERUJVRyAmJiBfZGVidWcoZm10LCAuLi5hcmdzKTtcbmV4cG9ydCBjb25zdCBlcnJvciA9IGxvZ2dlcihzdGRlcnIsIFtjaGFsay5yZWRdKTtcbmV4cG9ydCBjb25zdCB3YXJuaW5nID0gbG9nZ2VyKHN0cmVhbSwgW2NoYWxrLnllbGxvd10pO1xuZXhwb3J0IGNvbnN0IHN1Y2Nlc3MgPSBsb2dnZXIoc3RyZWFtLCBbY2hhbGsuZ3JlZW5dKTtcbmV4cG9ydCBjb25zdCBoaWdobGlnaHQgPSBsb2dnZXIoc3RyZWFtLCBbY2hhbGsuYm9sZF0pO1xuZXhwb3J0IGNvbnN0IHByaW50ID0gbG9nZ2VyKHN0cmVhbSk7XG5leHBvcnQgY29uc3QgZGF0YSA9IGxvZ2dlcihzdGRvdXQpO1xuXG5leHBvcnQgdHlwZSBMb2dnZXJGdW5jdGlvbiA9IChmbXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkO1xuXG4vKipcbiAqIENyZWF0ZSBhIGxvZ2dlciBvdXRwdXQgdGhhdCBmZWF0dXJlcyBhIGNvbnN0YW50IHByZWZpeCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHByZWZpeFN0cmluZyB0aGUgcHJlZml4IHN0cmluZyB0byBiZSBhcHBlbmRlZCBiZWZvcmUgYW55IGxvZyBlbnRyeS5cbiAqIEBwYXJhbSBmbiAgIHRoZSBsb2dnZXIgZnVuY3Rpb24gdG8gYmUgdXNlZCAodHlwaWNhbGx5IG9uZSBvZiB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlKVxuICpcbiAqIEByZXR1cm5zIGEgbmV3IExvZ2dlckZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4KHByZWZpeFN0cmluZzogc3RyaW5nLCBmbjogTG9nZ2VyRnVuY3Rpb24pOiBMb2dnZXJGdW5jdGlvbiB7XG4gIHJldHVybiAoZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBmbihgJXMgJHtmbXR9YCwgcHJlZml4U3RyaW5nLCAuLi5hcmdzKTtcbn1cbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWxvZ2dpbmctc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWxvZ2dpbmctc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzRkFBc0Y7QUFDdEYsK0dBQStHO0FBQy9HLHNGQUFzRjtBQUN0Riw2RkFBNkY7QUFDN0YsaURBQWlEO0FBQ2pELHNFQUFzRTs7O0FBV3RFLDhDQU9DO0FBOERELGtDQUVDO0FBRUQsc0JBRUM7QUFFRCw4Q0FFQztBQXdCRCx3QkFFQztBQWpIRCw2QkFBNkI7QUFDN0IsK0JBQStCO0FBRy9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0FBSTVCLEtBQUssVUFBVSxpQkFBaUIsQ0FBSSxLQUF1QjtJQUNoRSxXQUFXLEVBQUUsQ0FBQztJQUNkLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO1lBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sU0FBUyxHQUF5QixFQUFFLENBQUM7QUFFM0MsU0FBUyxNQUFNO0lBQ2IsT0FBTyxZQUFZLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsWUFBWSxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxhQUFhO0lBQ3BCLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDZCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFD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aGUgZmlsZSBgcGFja2FnZXMvYXdzLWNkay9saWIvbG9nZ2luZy50c2AgZnJvbSAyMDI0LTExLTI5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi84MWNkZTBlMmUxZjgzZjgwMjczZDE0NzI0ZDU1MThjYzIwZGM1YTgwL3BhY2thZ2VzL2F3cy1jZGsvbGliL2xvZ2dpbmcudHNcbi8vIEFmdGVyIHRoaXMgd2Ugc3RhcnRlZCByZWZhY3RvcmluZyB0aGUgZmlsZSBhbmQgZnVuY3Rpb25hbGl0eSBjaGFuZ2VkIHNpZ25pZmljYW50bHkuXG4vLyBJbiBvcmRlciB0byBwcmVzZXJ2ZXIgYmFja3dhcmRzLWNvbXBhdGlibHkgZm9yIHVzZXJzIHdpdGggdW5zYW5jdGlvbmVkIHVzYWdlIG9mIHRoaXMgZmlsZSxcbi8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIGFyb3VuZC5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzAyMSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuaW1wb3J0IHR5cGUgeyBXcml0YWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuXG50eXBlIFN0eWxlRm4gPSAoc3RyOiBzdHJpbmcpID0+IHN0cmluZztcbmNvbnN0IHsgc3Rkb3V0LCBzdGRlcnIgfSA9IHByb2Nlc3M7XG5cbnR5cGUgV3JpdGFibGVGYWN0b3J5ID0gKCkgPT4gV3JpdGFibGU7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3aXRoQ29ya2VkTG9nZ2luZzxBPihibG9jazogKCkgPT4gUHJvbWlzZTxBPik6IFByb21pc2U8QT4ge1xuICBjb3JrTG9nZ2luZygpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICB9IGZpbmFsbHkge1xuICAgIHVuY29ya0xvZ2dpbmcoKTtcbiAgfVxufVxuXG5sZXQgQ09SS19DT1VOVEVSID0gMDtcbmNvbnN0IGxvZ0J1ZmZlcjogW1dyaXRhYmxlLCBzdHJpbmddW10gPSBbXTtcblxuZnVuY3Rpb24gY29ya2VkKCkge1xuICByZXR1cm4gQ09SS19DT1VOVEVSICE9PSAwO1xufVxuXG5mdW5jdGlvbiBjb3JrTG9nZ2luZygpIHtcbiAgQ09SS19DT1VOVEVSICs9IDE7XG59XG5cbmZ1bmN0aW9uIHVuY29ya0xvZ2dpbmcoKSB7XG4gIENPUktfQ09VTlRFUiAtPSAxO1xuICBpZiAoIWNvcmtlZCgpKSB7XG4gICAgbG9nQnVmZmVyLmZvckVhY2goKFtzdHJlYW0sIHN0cl0pID0+IHN0cmVhbS53cml0ZShzdHIgKyAnXFxuJykpO1xuICAgIGxvZ0J1ZmZlci5zcGxpY2UoMCk7XG4gIH1cbn1cblxuY29uc3QgbG9nZ2VyID0gKHN0cmVhbTogV3JpdGFibGUgfCBXcml0YWJsZUZhY3RvcnksIHN0eWxlcz86IFN0eWxlRm5bXSwgdGltZXN0YW1wPzogYm9vbGVhbikgPT4gKGZtdDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgY29uc3QgdHMgPSB0aW1lc3RhbXAgPyBgWyR7Zm9ybWF0VGltZShuZXcgRGF0ZSgpKX1dIGAgOiAnJztcblxuICBsZXQgc3RyID0gdHMgKyB1dGlsLmZvcm1hdChmbXQsIC4uLmFyZ3MpO1xuICBpZiAoc3R5bGVzICYmIHN0eWxlcy5sZW5ndGgpIHtcbiAgICBzdHIgPSBzdHlsZXMucmVkdWNlKChhLCBzdHlsZSkgPT4gc3R5bGUoYSksIHN0cik7XG4gIH1cblxuICBjb25zdCByZWFsU3RyZWFtID0gdHlwZW9mIHN0cmVhbSA9PT0gJ2Z1bmN0aW9uJyA/IHN0cmVhbSgpIDogc3RyZWFtO1xuXG4gIC8vIExvZ2dlciBpcyBjdXJyZW50bHkgY29ya2VkLCBzbyB3ZSBzdG9yZSB0aGUgbWVzc2FnZSB0byBiZSBwcmludGVkXG4gIC8vIGxhdGVyIHdoZW4gd2UgYXJlIHVuY29ya2VkLlxuICBpZiAoY29ya2VkKCkpIHtcbiAgICBsb2dCdWZmZXIucHVzaChbcmVhbFN0cmVhbSwgc3RyXSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVhbFN0cmVhbS53cml0ZShzdHIgKyAnXFxuJyk7XG59O1xuXG5mdW5jdGlvbiBmb3JtYXRUaW1lKGQ6IERhdGUpIHtcbiAgcmV0dXJuIGAke2xwYWQoZC5nZXRIb3VycygpLCAyKX06JHtscGFkKGQuZ2V0TWludXRlcygpLCAyKX06JHtscGFkKGQuZ2V0U2Vjb25kcygpLCAyKX1gO1xuXG4gIGZ1bmN0aW9uIGxwYWQoeDogYW55LCB3OiBudW1iZXIpIHtcbiAgICBjb25zdCBzID0gYCR7eH1gO1xuICAgIHJldHVybiAnMCcucmVwZWF0KE1hdGgubWF4KHcgLSBzLmxlbmd0aCwgMCkpICsgcztcbiAgfVxufVxuXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIC8qKiBOb3QgdmVyYm9zZSBhdCBhbGwgKi9cbiAgREVGQVVMVCA9IDAsXG4gIC8qKiBQcmV0dHkgdmVyYm9zZSAqL1xuICBERUJVRyA9IDEsXG4gIC8qKiBFeHRyZW1lbHkgdmVyYm9zZSAqL1xuICBUUkFDRSA9IDIsXG59XG5cbmV4cG9ydCBsZXQgbG9nTGV2ZWwgPSBMb2dMZXZlbC5ERUZBVUxUO1xuZXhwb3J0IGxldCBDSSA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9nTGV2ZWwobmV3TG9nTGV2ZWw6IExvZ0xldmVsKSB7XG4gIGxvZ0xldmVsID0gbmV3TG9nTGV2ZWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDSShuZXdDSTogYm9vbGVhbikge1xuICBDSSA9IG5ld0NJO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jcmVhc2VWZXJib3NpdHkoKSB7XG4gIGxvZ0xldmVsICs9IDE7XG59XG5cbmNvbnN0IHN0cmVhbSA9ICgpID0+IENJID8gc3Rkb3V0IDogc3RkZXJyO1xuY29uc3QgX2RlYnVnID0gbG9nZ2VyKHN0cmVhbSwgW2NoYWxrLmdyYXldLCB0cnVlKTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlID0gKGZtdDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pID0+IGxvZ0xldmVsID49IExvZ0xldmVsLlRSQUNFICYmIF9kZWJ1ZyhmbXQsIC4uLmFyZ3MpO1xuZXhwb3J0IGNvbnN0IGRlYnVnID0gKGZtdDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pID0+IGxvZ0xldmVsID49IExvZ0xldmVsLkRFQlVHICYmIF9kZWJ1ZyhmbXQsIC4uLmFyZ3MpO1xuZXhwb3J0IGNvbnN0IGVycm9yID0gbG9nZ2VyKHN0ZGVyciwgW2NoYWxrLnJlZF0pO1xuZXhwb3J0IGNvbnN0IHdhcm5pbmcgPSBsb2dnZXIoc3RyZWFtLCBbY2hhbGsueWVsbG93XSk7XG5leHBvcnQgY29uc3Qgc3VjY2VzcyA9IGxvZ2dlcihzdHJlYW0sIFtjaGFsay5ncmVlbl0pO1xuZXhwb3J0IGNvbnN0IGhpZ2hsaWdodCA9IGxvZ2dlcihzdHJlYW0sIFtjaGFsay5ib2xkXSk7XG5leHBvcnQgY29uc3QgcHJpbnQgPSBsb2dnZXIoc3RyZWFtKTtcbmV4cG9ydCBjb25zdCBkYXRhID0gbG9nZ2VyKHN0ZG91dCk7XG5cbmV4cG9ydCB0eXBlIExvZ2dlckZ1bmN0aW9uID0gKGZtdDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG5cbi8qKlxuICogQ3JlYXRlIGEgbG9nZ2VyIG91dHB1dCB0aGF0IGZlYXR1cmVzIGEgY29uc3RhbnQgcHJlZml4IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcHJlZml4U3RyaW5nIHRoZSBwcmVmaXggc3RyaW5nIHRvIGJlIGFwcGVuZGVkIGJlZm9yZSBhbnkgbG9nIGVudHJ5LlxuICogQHBhcmFtIGZuICAgdGhlIGxvZ2dlciBmdW5jdGlvbiB0byBiZSB1c2VkICh0eXBpY2FsbHkgb25lIG9mIHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUpXG4gKlxuICogQHJldHVybnMgYSBuZXcgTG9nZ2VyRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVmaXgocHJlZml4U3RyaW5nOiBzdHJpbmcsIGZuOiBMb2dnZXJGdW5jdGlvbik6IExvZ2dlckZ1bmN0aW9uIHtcbiAgcmV0dXJuIChmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IGZuKGAlcyAke2ZtdH1gLCBwcmVmaXhTdHJpbmcsIC4uLmFyZ3MpO1xufVxuIl19
package/lib/logging.d.ts CHANGED
@@ -3,11 +3,11 @@ export type IoCodeLevel = 'E' | 'W' | 'I';
3
3
  export type IoMessageSpecificCode<L extends IoCodeLevel> = `CDK_${IoMessageCodeCategory}_${L}${number}${number}${number}${number}`;
4
4
  interface LogParams<L extends IoCodeLevel> {
5
5
  /**
6
- * @see {@link IoMessage.code}
6
+ * Message code
7
7
  */
8
- readonly code?: IoMessageSpecificCode<L>;
8
+ readonly code: IoMessageSpecificCode<L>;
9
9
  /**
10
- * @see {@link IoMessage.message}
10
+ * Message
11
11
  */
12
12
  readonly message: string;
13
13
  }
package/lib/logging.js CHANGED
@@ -1,39 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.highlight = exports.success = exports.trace = exports.debug = exports.result = exports.info = exports.warning = exports.error = void 0;
4
- const util = require("util");
5
4
  const chalk = require("chalk");
6
- const cli_io_host_1 = require("./toolkit/cli-io-host");
5
+ const cli_io_host_1 = require("./cli/io-host/cli-io-host");
6
+ const private_1 = require("../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private");
7
7
  /**
8
+ * Logs messages to the global CliIoHost
9
+ *
8
10
  * Internal helper that processes log inputs into a consistent format.
9
11
  * Handles string interpolation, format strings, and object parameter styles.
10
12
  * Applies optional styling and sends the message to the IoHost.
11
13
  */
12
- function formatMessageAndLog(level, input, style, ...args) {
13
- // Extract message and code from input, using new default code format
14
- const { message, code = getDefaultCode(level) } = typeof input === 'object' ? input : { message: input };
15
- // Format message if args are provided
16
- const formattedMessage = args.length > 0
17
- ? util.format(message, ...args)
18
- : message;
19
- // Apply style if provided
20
- const finalMessage = style ? style(formattedMessage) : formattedMessage;
21
- const ioHost = cli_io_host_1.CliIoHost.instance();
22
- const ioMessage = {
23
- time: new Date(),
24
- action: ioHost.currentAction,
25
- level,
26
- message: finalMessage,
27
- code,
28
- data: undefined,
29
- };
30
- void ioHost.notify(ioMessage);
31
- }
32
- function getDefaultCode(level, category = 'TOOLKIT') {
33
- const levelIndicator = level === 'error' ? 'E' :
34
- level === 'warn' ? 'W' :
35
- 'I';
36
- return `CDK_${category}_${levelIndicator}0000`;
14
+ function formatMessageAndLog(level, input, ...args) {
15
+ const singletonHost = cli_io_host_1.CliIoHost.instance();
16
+ // ALARM: forcing a CliAction into a ToolkitAction.
17
+ const helper = (0, private_1.asIoHelper)(singletonHost, singletonHost.currentAction);
18
+ if (typeof input === 'string') {
19
+ const messages = new private_1.IoDefaultMessages(helper);
20
+ messages[level](input, ...args);
21
+ }
22
+ else {
23
+ void helper.notify({
24
+ data: undefined,
25
+ time: new Date(),
26
+ level,
27
+ ...input,
28
+ });
29
+ }
37
30
  }
38
31
  // Exported logging functions. If any additional logging functionality is required, it should be added as
39
32
  // a new logging function here.
@@ -49,7 +42,7 @@ function getDefaultCode(level, category = 'TOOLKIT') {
49
42
  * ```
50
43
  */
51
44
  const error = (input, ...args) => {
52
- return formatMessageAndLog('error', input, undefined, ...args);
45
+ return formatMessageAndLog('error', input, ...args);
53
46
  };
54
47
  exports.error = error;
55
48
  /**
@@ -64,7 +57,7 @@ exports.error = error;
64
57
  * ```
65
58
  */
66
59
  const warning = (input, ...args) => {
67
- return formatMessageAndLog('warn', input, undefined, ...args);
60
+ return formatMessageAndLog('warn', input, ...args);
68
61
  };
69
62
  exports.warning = warning;
70
63
  /**
@@ -79,7 +72,7 @@ exports.warning = warning;
79
72
  * ```
80
73
  */
81
74
  const info = (input, ...args) => {
82
- return formatMessageAndLog('info', input, undefined, ...args);
75
+ return formatMessageAndLog('info', input, ...args);
83
76
  };
84
77
  exports.info = info;
85
78
  /**
@@ -94,7 +87,7 @@ exports.info = info;
94
87
  * ```
95
88
  */
96
89
  const result = (input, ...args) => {
97
- return formatMessageAndLog('result', input, undefined, ...args);
90
+ return formatMessageAndLog('result', input, ...args);
98
91
  };
99
92
  exports.result = result;
100
93
  /**
@@ -109,7 +102,7 @@ exports.result = result;
109
102
  * ```
110
103
  */
111
104
  const debug = (input, ...args) => {
112
- return formatMessageAndLog('debug', input, undefined, ...args);
105
+ return formatMessageAndLog('debug', input, ...args);
113
106
  };
114
107
  exports.debug = debug;
115
108
  /**
@@ -124,7 +117,7 @@ exports.debug = debug;
124
117
  * ```
125
118
  */
126
119
  const trace = (input, ...args) => {
127
- return formatMessageAndLog('trace', input, undefined, ...args);
120
+ return formatMessageAndLog('trace', input, ...args);
128
121
  };
129
122
  exports.trace = trace;
130
123
  /**
@@ -139,7 +132,7 @@ exports.trace = trace;
139
132
  * ```
140
133
  */
141
134
  const success = (input, ...args) => {
142
- return formatMessageAndLog('info', input, chalk.green, ...args);
135
+ return formatMessageAndLog('info', chalkInput(input, chalk.green), ...args);
143
136
  };
144
137
  exports.success = success;
145
138
  /**
@@ -154,7 +147,16 @@ exports.success = success;
154
147
  * ```
155
148
  */
156
149
  const highlight = (input, ...args) => {
157
- return formatMessageAndLog('info', input, chalk.bold, ...args);
150
+ return formatMessageAndLog('info', chalkInput(input, chalk.bold), ...args);
158
151
  };
159
152
  exports.highlight = highlight;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQix1REFBNEY7QUFNNUY7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLEtBQXFCLEVBQ3JCLEtBQTRCLEVBQzVCLEtBQStCLEVBQy9CLEdBQUcsSUFBZTtJQUVsQixxRUFBcUU7SUFDckUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXpHLHNDQUFzQztJQUN0QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVaLDBCQUEwQjtJQUMxQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUV4RSxNQUFNLE1BQU0sR0FBRyx1QkFBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sU0FBUyxHQUF5QjtRQUN0QyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxhQUFvQjtRQUNuQyxLQUFLO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsSUFBSTtRQUNKLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRixLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVE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bXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBJb01lc3NhZ2VMZXZlbCwgSW9NZXNzYWdlLCBDbGlJb0hvc3QsIElvTWVzc2FnZUNvZGUgfSBmcm9tICcuL3Rvb2xraXQvY2xpLWlvLWhvc3QnO1xuXG5leHBvcnQgdHlwZSBJb01lc3NhZ2VDb2RlQ2F0ZWdvcnkgPSAnVE9PTEtJVCcgfCAnU0RLJyB8ICdBU1NFVFMnO1xuZXhwb3J0IHR5cGUgSW9Db2RlTGV2ZWwgPSAnRScgfCAnVycgfCAnSSc7XG5leHBvcnQgdHlwZSBJb01lc3NhZ2VTcGVjaWZpY0NvZGU8TCBleHRlbmRzIElvQ29kZUxldmVsPiA9IGBDREtfJHtJb01lc3NhZ2VDb2RlQ2F0ZWdvcnl9XyR7TH0ke251bWJlcn0ke251bWJlcn0ke251bWJlcn0ke251bWJlcn1gO1xuXG4vKipcbiAqIEludGVybmFsIGhlbHBlciB0aGF0IHByb2Nlc3NlcyBsb2cgaW5wdXRzIGludG8gYSBjb25zaXN0ZW50IGZvcm1hdC5cbiAqIEhhbmRsZXMgc3RyaW5nIGludGVycG9sYXRpb24sIGZvcm1hdCBzdHJpbmdzLCBhbmQgb2JqZWN0IHBhcmFtZXRlciBzdHlsZXMuXG4gKiBBcHBsaWVzIG9wdGlvbmFsIHN0eWxpbmcgYW5kIHNlbmRzIHRoZSBtZXNzYWdlIHRvIHRoZSBJb0hvc3QuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2VBbmRMb2coXG4gIGxldmVsOiBJb01lc3NhZ2VMZXZlbCxcbiAgaW5wdXQ6IExvZ0lucHV0PElvQ29kZUxldmVsPixcbiAgc3R5bGU/OiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgLi4uYXJnczogdW5rbm93bltdXG4pOiB2b2lkIHtcbiAgLy8gRXh0cmFjdCBtZXNzYWdlIGFuZCBjb2RlIGZyb20gaW5wdXQsIHVzaW5nIG5ldyBkZWZhdWx0IGNvZGUgZm9ybWF0XG4gIGNvbnN0IHsgbWVzc2FnZSwgY29kZSA9IGdldERlZmF1bHRDb2RlKGxldmVsKSB9ID0gdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyA/IGlucHV0IDogeyBtZXNzYWdlOiBpbnB1dCB9O1xuXG4gIC8vIEZvcm1hdCBtZXNzYWdlIGlmIGFyZ3MgYXJlIHByb3ZpZGVkXG4gIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDBcbiAgICA/IHV0aWwuZm9ybWF0KG1lc3NhZ2UsIC4uLmFyZ3MpXG4gICAgOiBtZXNzYWdlO1xuXG4gIC8vIEFwcGx5IHN0eWxlIGlmIHByb3ZpZGVkXG4gIGNvbnN0IGZpbmFsTWVzc2FnZSA9IHN0eWxlID8gc3R5bGUoZm9ybWF0dGVkTWVzc2FnZSkgOiBmb3JtYXR0ZWRNZXNzYWdlO1xuXG4gIGNvbnN0IGlvSG9zdCA9IENsaUlvSG9zdC5pbnN0YW5jZSgpO1xuICBjb25zdCBpb01lc3NhZ2U6IElvTWVzc2FnZTx1bmRlZmluZWQ+ID0ge1xuICAgIHRpbWU6IG5ldyBEYXRlKCksXG4gICAgYWN0aW9uOiBpb0hvc3QuY3VycmVudEFjdGlvbiBhcyBhbnksXG4gICAgbGV2ZWwsXG4gICAgbWVzc2FnZTogZmluYWxNZXNzYWdlLFxuICAgIGNvZGUsXG4gICAgZGF0YTogdW5kZWZpbmVkLFxuICB9O1xuXG4gIHZvaWQgaW9Ib3N0Lm5vdGlmeShpb01lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q29kZShsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGNhdGVnb3J5OiBJb01lc3NhZ2VDb2RlQ2F0ZWdvcnkgPSAnVE9PTEtJVCcpOiBJb01lc3NhZ2VDb2RlIHtcbiAgY29uc3QgbGV2ZWxJbmRpY2F0b3IgPSBsZXZlbCA9PT0gJ2Vycm9yJyA/ICdFJyA6XG4gICAgbGV2ZWwgPT09ICd3YXJuJyA/ICdXJyA6XG4gICAgICAnSSc7XG4gIHJldHVybiBgQ0RLXyR7Y2F0ZWdvcnl9XyR7bGV2ZWxJbmRpY2F0b3J9MDAwMGA7XG59XG5cbi8vIFR5cGUgZm9yIHRoZSBvYmplY3QgcGFyYW1ldGVyIHN0eWxlXG5pbnRlcmZhY2UgTG9nUGFyYW1zPEwgZXh0ZW5kcyBJb0NvZGVMZXZlbD4ge1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW9NZXNzYWdlLmNvZGV9XG4gICAqL1xuICByZWFkb25seSBjb2RlPzogSW9NZXNzYWdlU3BlY2lmaWNDb2RlPEw+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW9NZXNzYWdlLm1lc3NhZ2V9XG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8vIFR5cGUgZm9yIHRoZSBleHBvcnRlZCBsb2cgZnVuY3Rpb24gYXJndW1lbnRzXG50eXBlIExvZ0lucHV0PEwgZXh0ZW5kcyBJb0NvZGVMZXZlbD4gPSBzdHJpbmcgfCBMb2dQYXJhbXM8TD47XG5cbi8vIEV4cG9ydGVkIGxvZ2dpbmcgZnVuY3Rpb25zLiBJZiBhbnkgYWRkaXRpb25hbCBsb2dnaW5nIGZ1bmN0aW9uYWxpdHkgaXMgcmVxdWlyZWQsIGl0IHNob3VsZCBiZSBhZGRlZCBhc1xuLy8gYSBuZXcgbG9nZ2luZyBmdW5jdGlvbiBoZXJlLlxuXG4vKipcbiAqIExvZ3MgYW4gZXJyb3IgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIGVycm9yKGBvcGVyYXRpb24gZmFpbGVkOiAke2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgZXJyb3IgY29kZSBgQ0RLX1RPT0xLSVRfRTAwMGBcbiAqIGVycm9yKCdvcGVyYXRpb24gZmFpbGVkOiAlcycsIGUpIC8vIGluZmVycyBkZWZhdWx0IGVycm9yIGNvZGUgYENES19UT09MS0lUX0UwMDBgXG4gKiBlcnJvcih7IG1lc3NhZ2U6ICdvcGVyYXRpb24gZmFpbGVkJywgY29kZTogJ0NES19TREtfRTAwMScgfSkgLy8gc3BlY2lmaWVzIGVycm9yIGNvZGUgYENES19TREtfRTAwMWBcbiAqIGVycm9yKHsgbWVzc2FnZTogJ29wZXJhdGlvbiBmYWlsZWQ6ICVzJywgY29kZTogJ0NES19TREtfRTAwMScgfSwgZSkgLy8gc3BlY2lmaWVzIGVycm9yIGNvZGUgYENES19TREtfRTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZXJyb3IgPSAoaW5wdXQ6IExvZ0lucHV0PCdFJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnZXJyb3InLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiB3YXJuaW5nIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiB3YXJuaW5nKGBkZXByZWN0ZWQgZmVhdHVyZTogJHttZXNzYWdlfWApIC8vIGluZmVycyBkZWZhdWx0IHdhcm5pbmcgY29kZSBgQ0RLX1RPT0xLSVRfVzAwMGBcbiAqIHdhcm5pbmcoJ2RlcHJlY3RlZCBmZWF0dXJlOiAlcycsIG1lc3NhZ2UpIC8vIGluZmVycyBkZWZhdWx0IHdhcm5pbmcgY29kZSBgQ0RLX1RPT0xLSVRfVzAwMGBcbiAqIHdhcm5pbmcoeyBtZXNzYWdlOiAnZGVwcmVjdGVkIGZlYXR1cmUnLCBjb2RlOiAnQ0RLX1NES19XMDAxJyB9KSAvLyBzcGVjaWZpZXMgd2FybmluZyBjb2RlIGBDREtfU0RLX1cwMDFgXG4gKiB3YXJuaW5nKHsgbWVzc2FnZTogJ2RlcHJlY3RlZCBmZWF0dXJlOiAlcycsIGNvZGU6ICdDREtfU0RLX1cwMDEnIH0sIG1lc3NhZ2UpIC8vIHNwZWNpZmllcyB3YXJuaW5nIGNvZGUgYENES19TREtfVzAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3Qgd2FybmluZyA9IChpbnB1dDogTG9nSW5wdXQ8J1cnPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCd3YXJuJywgaW5wdXQsIHVuZGVmaW5lZCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gaW5mbyBsZXZlbCBtZXNzYWdlLlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogaW5mbyhgcHJvY2Vzc2luZzogJHttZXNzYWdlfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGluZm8oJ3Byb2Nlc3Npbmc6ICVzJywgbWVzc2FnZSkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaW5mbyh7IG1lc3NhZ2U6ICdwcm9jZXNzaW5nJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBpbmZvKHsgbWVzc2FnZTogJ3Byb2Nlc3Npbmc6ICVzJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIG1lc3NhZ2UpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGluZm8gPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnaW5mbycsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIHJlc3VsdC4gSW4gdGhlIENMSSwgdGhpcyBhbHdheXMgZ29lcyB0byBzdGRvdXQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiByZXN1bHQoYCR7SlNPTi5zdHJpbmdpZnkoc3RhdHMpfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHJlc3VsdCgne1wiY291bnRcIjogJWR9JywgY291bnQpIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHJlc3VsdCh7IG1lc3NhZ2U6ICdzdGF0czogJWonLCBjb2RlOiAnQ0RLX0RBVEFfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX0RBVEFfSTAwMWBcbiAqIHJlc3VsdCh7IG1lc3NhZ2U6ICdzdGF0czogJWonLCBjb2RlOiAnQ0RLX0RBVEFfSTAwMScgfSwgc3RhdHMpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19EQVRBX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc3VsdCA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdyZXN1bHQnLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhIGRlYnVnIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBkZWJ1Zyhgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUpfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGRlYnVnKCdjYWNoZSBoaXQgcmF0aW86ICVkJSUnLCByYXRpbykgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogZGVidWcoeyBtZXNzYWdlOiAnc3RhdGUgdXBkYXRlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBkZWJ1Zyh7IG1lc3NhZ2U6ICdyYXRpbzogJWQlJScsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCByYXRpbykgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZGVidWcgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnZGVidWcnLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhIHRyYWNlIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiB0cmFjZShgZW50ZXJlZCAke25hbWV9IHdpdGggJHthcmdzfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHRyYWNlKCdtZXRob2Q6ICVzLCBhcmdzOiAlaicsIG5hbWUsIGFyZ3MpIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHRyYWNlKHsgbWVzc2FnZTogJ2VudGVyZWQnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIHRyYWNlKHsgbWVzc2FnZTogJ21ldGhvZDogJXMnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgbmFtZSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdHJhY2UgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygndHJhY2UnLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiBpbmZvIGxldmVsIHN1Y2Nlc3MgbWVzc2FnZSBpbiBncmVlbiB0ZXh0LlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogc3VjY2VzcyhgZGVwbG95bWVudCBjb21wbGV0ZWQ6ICR7bmFtZX1gKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBzdWNjZXNzKCdwcm9jZXNzZWQgJWQgaXRlbXMnLCBjb3VudCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogc3VjY2Vzcyh7IG1lc3NhZ2U6ICdjb21wbGV0ZWQnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIHN1Y2Nlc3MoeyBtZXNzYWdlOiAnaXRlbXM6ICVkJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIGNvdW50KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBzdWNjZXNzID0gKGlucHV0OiBMb2dJbnB1dDwnSSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ2luZm8nLCBpbnB1dCwgY2hhbGsuZ3JlZW4sIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIGluZm8gbGV2ZWwgbWVzc2FnZSBpbiBib2xkIHRleHQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBoaWdobGlnaHQoYGltcG9ydGFudDogJHttc2d9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaGlnaGxpZ2h0KCdhdHRlbnRpb24gcmVxdWlyZWQ6ICVzJywgcmVhc29uKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBoaWdobGlnaHQoeyBtZXNzYWdlOiAnbm90aWNlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBoaWdobGlnaHQoeyBtZXNzYWdlOiAnbm90aWNlOiAlcycsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCBtc2cpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGhpZ2hsaWdodCA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdpbmZvJywgaW5wdXQsIGNoYWxrLmJvbGQsIC4uLmFyZ3MpO1xufTtcbiJdfQ==
153
+ function chalkInput(i, style) {
154
+ if (typeof i === 'string') {
155
+ return style(i);
156
+ }
157
+ return {
158
+ ...i,
159
+ message: style(i.message),
160
+ };
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBRS9CLDJEQUFzRDtBQUN0RCxtRkFBc0c7QUFNdEc7Ozs7OztHQU1HO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsS0FBcUIsRUFDckIsS0FBNEIsRUFDNUIsR0FBRyxJQUFlO0lBRWxCLE1BQU0sYUFBYSxHQUFHLHVCQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsbURBQW1EO0lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQVUsRUFBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLGFBQW9CLENBQUMsQ0FBQztJQUU3RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7U0FBTSxDQUFDO1FBQ04sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2hCLEtBQUs7WUFDTCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQztBQWlCRCx5R0FBeUc7QUFDekcsK0JBQStCO0FBRS9COzs7Ozs7Ozs7O0dBVUc7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQW9CLEVBQUUsR0FBRyxJQUFlLEVBQUUsRUFBRTtJQUNoRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFGVyxRQUFBLEtBQUssU0FFaEI7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7SUFDbEUsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxPQUFPLFdBRWxCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQy9ELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUZXLFFBQUEsSUFBSSxRQUVmO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUZXLFFBQUEsTUFBTSxVQUVqQjtBQUVGOzs7Ozs7Ozs7O0dBVUc7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQW9CLEVBQUUsR0FBRyxJQUFlLEVBQUUsRUFBRTtJQUNoRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFGVyxRQUFBLEtBQUssU0FFaEI7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7SUFDaEUsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxLQUFLLFNBRWhCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ2xFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxPQUFPLFdBRWxCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDO0FBRlcsUUFBQSxTQUFTLGFBRXBCO0FBRUYsU0FBUyxVQUFVLENBQTBCLENBQUksRUFBRSxLQUE4QjtJQUMvRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxDQUFRO1FBQ1gsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQzFCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2VMZXZlbCB9IGZyb20gJy4vY2xpL2lvLWhvc3QvY2xpLWlvLWhvc3QnO1xuaW1wb3J0IHsgQ2xpSW9Ib3N0IH0gZnJvbSAnLi9jbGkvaW8taG9zdC9jbGktaW8taG9zdCc7XG5pbXBvcnQgeyBhc0lvSGVscGVyLCBJb0RlZmF1bHRNZXNzYWdlcyB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaS9pby9wcml2YXRlJztcblxuZXhwb3J0IHR5cGUgSW9NZXNzYWdlQ29kZUNhdGVnb3J5ID0gJ1RPT0xLSVQnIHwgJ1NESycgfCAnQVNTRVRTJztcbmV4cG9ydCB0eXBlIElvQ29kZUxldmVsID0gJ0UnIHwgJ1cnIHwgJ0knO1xuZXhwb3J0IHR5cGUgSW9NZXNzYWdlU3BlY2lmaWNDb2RlPEwgZXh0ZW5kcyBJb0NvZGVMZXZlbD4gPSBgQ0RLXyR7SW9NZXNzYWdlQ29kZUNhdGVnb3J5fV8ke0x9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9YDtcblxuLyoqXG4gKiBMb2dzIG1lc3NhZ2VzIHRvIHRoZSBnbG9iYWwgQ2xpSW9Ib3N0XG4gKlxuICogSW50ZXJuYWwgaGVscGVyIHRoYXQgcHJvY2Vzc2VzIGxvZyBpbnB1dHMgaW50byBhIGNvbnNpc3RlbnQgZm9ybWF0LlxuICogSGFuZGxlcyBzdHJpbmcgaW50ZXJwb2xhdGlvbiwgZm9ybWF0IHN0cmluZ3MsIGFuZCBvYmplY3QgcGFyYW1ldGVyIHN0eWxlcy5cbiAqIEFwcGxpZXMgb3B0aW9uYWwgc3R5bGluZyBhbmQgc2VuZHMgdGhlIG1lc3NhZ2UgdG8gdGhlIElvSG9zdC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZUFuZExvZyhcbiAgbGV2ZWw6IElvTWVzc2FnZUxldmVsLFxuICBpbnB1dDogTG9nSW5wdXQ8SW9Db2RlTGV2ZWw+LFxuICAuLi5hcmdzOiB1bmtub3duW11cbik6IHZvaWQge1xuICBjb25zdCBzaW5nbGV0b25Ib3N0ID0gQ2xpSW9Ib3N0Lmluc3RhbmNlKCk7XG4gIC8vIEFMQVJNOiBmb3JjaW5nIGEgQ2xpQWN0aW9uIGludG8gYSBUb29sa2l0QWN0aW9uLlxuICBjb25zdCBoZWxwZXIgPSBhc0lvSGVscGVyKHNpbmdsZXRvbkhvc3QsIHNpbmdsZXRvbkhvc3QuY3VycmVudEFjdGlvbiBhcyBhbnkpO1xuXG4gIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBuZXcgSW9EZWZhdWx0TWVzc2FnZXMoaGVscGVyKTtcbiAgICBtZXNzYWdlc1tsZXZlbF0oaW5wdXQsIC4uLmFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZvaWQgaGVscGVyLm5vdGlmeSh7XG4gICAgICBkYXRhOiB1bmRlZmluZWQsXG4gICAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgbGV2ZWwsXG4gICAgICAuLi5pbnB1dCxcbiAgICB9KTtcbiAgfVxufVxuXG4vLyBUeXBlIGZvciB0aGUgb2JqZWN0IHBhcmFtZXRlciBzdHlsZVxuaW50ZXJmYWNlIExvZ1BhcmFtczxMIGV4dGVuZHMgSW9Db2RlTGV2ZWw+IHtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZTogSW9NZXNzYWdlU3BlY2lmaWNDb2RlPEw+O1xuICAvKipcbiAgICogTWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vLyBUeXBlIGZvciB0aGUgZXhwb3J0ZWQgbG9nIGZ1bmN0aW9uIGFyZ3VtZW50c1xudHlwZSBMb2dJbnB1dDxMIGV4dGVuZHMgSW9Db2RlTGV2ZWw+ID0gc3RyaW5nIHwgTG9nUGFyYW1zPEw+O1xuXG4vLyBFeHBvcnRlZCBsb2dnaW5nIGZ1bmN0aW9ucy4gSWYgYW55IGFkZGl0aW9uYWwgbG9nZ2luZyBmdW5jdGlvbmFsaXR5IGlzIHJlcXVpcmVkLCBpdCBzaG91bGQgYmUgYWRkZWQgYXNcbi8vIGEgbmV3IGxvZ2dpbmcgZnVuY3Rpb24gaGVyZS5cblxuLyoqXG4gKiBMb2dzIGFuIGVycm9yIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBlcnJvcihgb3BlcmF0aW9uIGZhaWxlZDogJHtlfWApIC8vIGluZmVycyBkZWZhdWx0IGVycm9yIGNvZGUgYENES19UT09MS0lUX0UwMDBgXG4gKiBlcnJvcignb3BlcmF0aW9uIGZhaWxlZDogJXMnLCBlKSAvLyBpbmZlcnMgZGVmYXVsdCBlcnJvciBjb2RlIGBDREtfVE9PTEtJVF9FMDAwYFxuICogZXJyb3IoeyBtZXNzYWdlOiAnb3BlcmF0aW9uIGZhaWxlZCcsIGNvZGU6ICdDREtfU0RLX0UwMDEnIH0pIC8vIHNwZWNpZmllcyBlcnJvciBjb2RlIGBDREtfU0RLX0UwMDFgXG4gKiBlcnJvcih7IG1lc3NhZ2U6ICdvcGVyYXRpb24gZmFpbGVkOiAlcycsIGNvZGU6ICdDREtfU0RLX0UwMDEnIH0sIGUpIC8vIHNwZWNpZmllcyBlcnJvciBjb2RlIGBDREtfU0RLX0UwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGVycm9yID0gKGlucHV0OiBMb2dJbnB1dDwnRSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ2Vycm9yJywgaW5wdXQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIHdhcm5pbmcgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIHdhcm5pbmcoYGRlcHJlY3RlZCBmZWF0dXJlOiAke21lc3NhZ2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgd2FybmluZyBjb2RlIGBDREtfVE9PTEtJVF9XMDAwYFxuICogd2FybmluZygnZGVwcmVjdGVkIGZlYXR1cmU6ICVzJywgbWVzc2FnZSkgLy8gaW5mZXJzIGRlZmF1bHQgd2FybmluZyBjb2RlIGBDREtfVE9PTEtJVF9XMDAwYFxuICogd2FybmluZyh7IG1lc3NhZ2U6ICdkZXByZWN0ZWQgZmVhdHVyZScsIGNvZGU6ICdDREtfU0RLX1cwMDEnIH0pIC8vIHNwZWNpZmllcyB3YXJuaW5nIGNvZGUgYENES19TREtfVzAwMWBcbiAqIHdhcm5pbmcoeyBtZXNzYWdlOiAnZGVwcmVjdGVkIGZlYXR1cmU6ICVzJywgY29kZTogJ0NES19TREtfVzAwMScgfSwgbWVzc2FnZSkgLy8gc3BlY2lmaWVzIHdhcm5pbmcgY29kZSBgQ0RLX1NES19XMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB3YXJuaW5nID0gKGlucHV0OiBMb2dJbnB1dDwnVyc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ3dhcm4nLCBpbnB1dCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gaW5mbyBsZXZlbCBtZXNzYWdlLlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogaW5mbyhgcHJvY2Vzc2luZzogJHttZXNzYWdlfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGluZm8oJ3Byb2Nlc3Npbmc6ICVzJywgbWVzc2FnZSkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaW5mbyh7IG1lc3NhZ2U6ICdwcm9jZXNzaW5nJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBpbmZvKHsgbWVzc2FnZTogJ3Byb2Nlc3Npbmc6ICVzJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIG1lc3NhZ2UpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGluZm8gPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnaW5mbycsIGlucHV0LCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiByZXN1bHQuIEluIHRoZSBDTEksIHRoaXMgYWx3YXlzIGdvZXMgdG8gc3Rkb3V0LlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogcmVzdWx0KGAke0pTT04uc3RyaW5naWZ5KHN0YXRzKX1gKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiByZXN1bHQoJ3tcImNvdW50XCI6ICVkfScsIGNvdW50KSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiByZXN1bHQoeyBtZXNzYWdlOiAnc3RhdHM6ICVqJywgY29kZTogJ0NES19EQVRBX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19EQVRBX0kwMDFgXG4gKiByZXN1bHQoeyBtZXNzYWdlOiAnc3RhdHM6ICVqJywgY29kZTogJ0NES19EQVRBX0kwMDEnIH0sIHN0YXRzKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfREFUQV9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCByZXN1bHQgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygncmVzdWx0JywgaW5wdXQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGEgZGVidWcgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIGRlYnVnKGBzdGF0ZTogJHtKU09OLnN0cmluZ2lmeShzdGF0ZSl9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogZGVidWcoJ2NhY2hlIGhpdCByYXRpbzogJWQlJScsIHJhdGlvKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBkZWJ1Zyh7IG1lc3NhZ2U6ICdzdGF0ZSB1cGRhdGUnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGRlYnVnKHsgbWVzc2FnZTogJ3JhdGlvOiAlZCUlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIHJhdGlvKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBkZWJ1ZyA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdkZWJ1ZycsIGlucHV0LCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhIHRyYWNlIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiB0cmFjZShgZW50ZXJlZCAke25hbWV9IHdpdGggJHthcmdzfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHRyYWNlKCdtZXRob2Q6ICVzLCBhcmdzOiAlaicsIG5hbWUsIGFyZ3MpIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHRyYWNlKHsgbWVzc2FnZTogJ2VudGVyZWQnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIHRyYWNlKHsgbWVzc2FnZTogJ21ldGhvZDogJXMnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgbmFtZSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdHJhY2UgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygndHJhY2UnLCBpbnB1dCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gaW5mbyBsZXZlbCBzdWNjZXNzIG1lc3NhZ2UgaW4gZ3JlZW4gdGV4dC5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIHN1Y2Nlc3MoYGRlcGxveW1lbnQgY29tcGxldGVkOiAke25hbWV9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogc3VjY2VzcygncHJvY2Vzc2VkICVkIGl0ZW1zJywgY291bnQpIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHN1Y2Nlc3MoeyBtZXNzYWdlOiAnY29tcGxldGVkJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBzdWNjZXNzKHsgbWVzc2FnZTogJ2l0ZW1zOiAlZCcsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCBjb3VudCkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3Qgc3VjY2VzcyA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdpbmZvJywgY2hhbGtJbnB1dChpbnB1dCwgY2hhbGsuZ3JlZW4pLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiBpbmZvIGxldmVsIG1lc3NhZ2UgaW4gYm9sZCB0ZXh0LlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogaGlnaGxpZ2h0KGBpbXBvcnRhbnQ6ICR7bXNnfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGhpZ2hsaWdodCgnYXR0ZW50aW9uIHJlcXVpcmVkOiAlcycsIHJlYXNvbikgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaGlnaGxpZ2h0KHsgbWVzc2FnZTogJ25vdGljZScsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogaGlnaGxpZ2h0KHsgbWVzc2FnZTogJ25vdGljZTogJXMnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgbXNnKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBoaWdobGlnaHQgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnaW5mbycsIGNoYWxrSW5wdXQoaW5wdXQsIGNoYWxrLmJvbGQpLCAuLi5hcmdzKTtcbn07XG5cbmZ1bmN0aW9uIGNoYWxrSW5wdXQ8QSBleHRlbmRzIExvZ0lucHV0PGFueT4+KGk6IEEsIHN0eWxlOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyk6IEEge1xuICBpZiAodHlwZW9mIGkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN0eWxlKGkpIGFzIEE7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmkgYXMgYW55LFxuICAgIG1lc3NhZ2U6IHN0eWxlKGkubWVzc2FnZSksXG4gIH07XG59XG4iXX0=
package/lib/notices.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { Environment } from '@aws-cdk/cx-api';
2
- import { SdkHttpOptions } from './api';
2
+ import type { SdkHttpOptions } from './api';
3
3
  import type { Context } from './api/context';
4
+ import type { IIoHost } from './cli/io-host';
5
+ import { IoDefaultMessages } from '../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
4
6
  export interface NoticesProps {
5
7
  /**
6
8
  * CDK context
@@ -18,16 +20,14 @@ export interface NoticesProps {
18
20
  * @default 'cdk.out'
19
21
  */
20
22
  readonly output?: string;
21
- /**
22
- * Global CLI option for whether we show notices
23
- *
24
- * @default true
25
- */
26
- readonly shouldDisplay?: boolean;
27
23
  /**
28
24
  * Options for the HTTP request
29
25
  */
30
26
  readonly httpOptions?: SdkHttpOptions;
27
+ /**
28
+ * Where messages are going to be sent
29
+ */
30
+ readonly ioHost: IIoHost;
31
31
  }
32
32
  export interface NoticesPrintOptions {
33
33
  /**
@@ -57,41 +57,43 @@ export interface NoticesFilterFilterOptions {
57
57
  readonly outDir: string;
58
58
  readonly bootstrappedEnvironments: BootstrappedEnvironment[];
59
59
  }
60
- export declare abstract class NoticesFilter {
61
- static filter(options: NoticesFilterFilterOptions): FilteredNotice[];
60
+ export declare class NoticesFilter {
61
+ private readonly ioMessages;
62
+ constructor(ioMessages: IoDefaultMessages);
63
+ filter(options: NoticesFilterFilterOptions): FilteredNotice[];
62
64
  /**
63
65
  * From a set of input options, return the notices components we are searching for
64
66
  */
65
- private static otherComponents;
67
+ private otherComponents;
66
68
  /**
67
69
  * Based on a set of component names, find all notices that match one of the given components
68
70
  */
69
- private static findForNamedComponents;
71
+ private findForNamedComponents;
70
72
  /**
71
73
  * Whether the given "affected component" name applies to the given actual component name.
72
74
  *
73
75
  * The name matches if the name is exactly the same, or the name in the notice
74
76
  * is a prefix of the node name when the query ends in '.'.
75
77
  */
76
- private static componentNameMatches;
78
+ private componentNameMatches;
77
79
  /**
78
80
  * Adds dynamic values from the given ActualComponents
79
81
  *
80
82
  * If there are multiple components with the same dynamic name, they are joined
81
83
  * by a comma.
82
84
  */
83
- private static addDynamicValues;
85
+ private addDynamicValues;
84
86
  /**
85
87
  * Treat 'framework' as an alias for either `aws-cdk-lib.` or `@aws-cdk/core.`.
86
88
  *
87
89
  * Because it's EITHER `aws-cdk-lib` or `@aws-cdk/core`, we need to add multiple
88
90
  * arrays at the top level.
89
91
  */
90
- private static resolveAliases;
92
+ private resolveAliases;
91
93
  /**
92
94
  * Load the construct tree from the given directory and return its components
93
95
  */
94
- private static constructTreeComponents;
96
+ private constructTreeComponents;
95
97
  }
96
98
  /**
97
99
  * Information about a bootstrapped environment.
@@ -115,10 +117,10 @@ export declare class Notices {
115
117
  private static _instance;
116
118
  private readonly context;
117
119
  private readonly output;
118
- private readonly shouldDisplay;
119
120
  private readonly acknowledgedIssueNumbers;
120
121
  private readonly includeAcknowlegded;
121
122
  private readonly httpOptions;
123
+ private readonly ioMessages;
122
124
  private data;
123
125
  private readonly bootstrappedEnvironments;
124
126
  private constructor();
@@ -183,15 +185,17 @@ export interface NoticeDataSource {
183
185
  fetch(): Promise<Notice[]>;
184
186
  }
185
187
  export declare class WebsiteNoticeDataSource implements NoticeDataSource {
188
+ private readonly ioMessages;
186
189
  private readonly options;
187
- constructor(options?: SdkHttpOptions);
190
+ constructor(ioMessages: IoDefaultMessages, options?: SdkHttpOptions);
188
191
  fetch(): Promise<Notice[]>;
189
192
  }
190
193
  export declare class CachedDataSource implements NoticeDataSource {
194
+ private readonly ioMessages;
191
195
  private readonly fileName;
192
196
  private readonly dataSource;
193
197
  private readonly skipCache?;
194
- constructor(fileName: string, dataSource: NoticeDataSource, skipCache?: boolean | undefined);
198
+ constructor(ioMessages: IoDefaultMessages, fileName: string, dataSource: NoticeDataSource, skipCache?: boolean | undefined);
195
199
  fetch(): Promise<Notice[]>;
196
200
  private fetchInner;
197
201
  private load;