aws-cdk 2.177.0 → 2.178.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/THIRD_PARTY_LICENSES +5518 -181
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/api/aws-auth/sdk-logger.d.ts +4 -0
  5. package/lib/api/aws-auth/sdk-logger.js +18 -7
  6. package/lib/api/aws-auth/sdk-provider.js +4 -3
  7. package/lib/api/aws-auth/sdk.d.ts +1 -0
  8. package/lib/api/aws-auth/sdk.js +4 -3
  9. package/lib/api/aws-auth/tracing.d.ts +11 -0
  10. package/lib/api/aws-auth/tracing.js +60 -0
  11. package/lib/api/deployments/asset-publishing.js +7 -1
  12. package/lib/cli/cdk-toolkit.d.ts +6 -0
  13. package/lib/cli/cdk-toolkit.js +11 -10
  14. package/lib/cli/cli.js +10 -5
  15. package/lib/cli/parse-command-line-arguments.js +11 -15
  16. package/lib/cli/user-input.d.ts +4 -4
  17. package/lib/cli/user-input.js +1 -1
  18. package/lib/commands/context.js +2 -2
  19. package/lib/index.js +204 -158
  20. package/lib/index_bg.wasm +0 -0
  21. package/lib/init-templates/.init-version.json +1 -1
  22. package/lib/init-templates/.recommended-feature-flags.json +2 -1
  23. package/lib/legacy-exports-source.d.ts +1 -1
  24. package/lib/legacy-exports-source.js +3 -3
  25. package/lib/logging.d.ts +6 -13
  26. package/lib/logging.js +25 -70
  27. package/lib/toolkit/cli-io-host.d.ts +16 -12
  28. package/lib/toolkit/cli-io-host.js +127 -30
  29. package/package.json +10 -10
  30. package/test/_helpers/prompts.d.ts +11 -0
  31. package/test/_helpers/prompts.js +22 -0
  32. package/test/api/aws-auth/sdk-logger.test.js +16 -11
  33. package/test/api/logs/logging.test.js +4 -54
  34. package/test/cli/cdk-toolkit.test.js +7 -7
  35. package/test/cli/cli-arguments.test.js +4 -4
  36. package/test/cli/cli.test.js +2 -2
  37. package/test/cli/user-config.test.js +28 -1
  38. package/test/toolkit/cli-io-host-corked.test.d.ts +1 -0
  39. package/test/toolkit/cli-io-host-corked.test.js +73 -0
  40. package/test/toolkit/cli-io-host.test.js +164 -60
  41. package/lib/util/tracing.d.ts +0 -9
  42. package/lib/util/tracing.js +0 -58
package/lib/index_bg.wasm CHANGED
Binary file
@@ -1 +1 @@
1
- {"aws-cdk-lib": "2.177.0", "constructs": "^10.0.0"}
1
+ {"aws-cdk-lib": "2.178.1", "constructs": "^10.0.0"}
@@ -63,5 +63,6 @@
63
63
  "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true,
64
64
  "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": true,
65
65
  "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true,
66
- "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true
66
+ "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true,
67
+ "@aws-cdk/core:enableAdditionalMetadataCollection": true
67
68
  }
@@ -13,7 +13,7 @@ export { execProgram } from './api/cxapp/exec';
13
13
  export { RequireApproval } from './diff';
14
14
  export { leftPad } from './api/util/string-manipulation';
15
15
  export { formatAsBanner } from './cli/util/console-formatters';
16
- export { enableTracing } from './util/tracing';
16
+ export { setSdkTracing as enableTracing } from './api/aws-auth/tracing';
17
17
  export { aliases, command, describe } from './commands/docs';
18
18
  export { lowerCaseFirstCharacter } from './api/hotswap/common';
19
19
  export { deepMerge } from './util/objects';
@@ -58,8 +58,8 @@ var string_manipulation_1 = require("./api/util/string-manipulation");
58
58
  Object.defineProperty(exports, "leftPad", { enumerable: true, get: function () { return string_manipulation_1.leftPad; } });
59
59
  var console_formatters_1 = require("./cli/util/console-formatters");
60
60
  Object.defineProperty(exports, "formatAsBanner", { enumerable: true, get: function () { return console_formatters_1.formatAsBanner; } });
61
- var tracing_1 = require("./util/tracing");
62
- Object.defineProperty(exports, "enableTracing", { enumerable: true, get: function () { return tracing_1.enableTracing; } });
61
+ var tracing_1 = require("./api/aws-auth/tracing");
62
+ Object.defineProperty(exports, "enableTracing", { enumerable: true, get: function () { return tracing_1.setSdkTracing; } });
63
63
  var docs_1 = require("./commands/docs");
64
64
  Object.defineProperty(exports, "aliases", { enumerable: true, get: function () { return docs_1.aliases; } });
65
65
  Object.defineProperty(exports, "command", { enumerable: true, get: function () { return docs_1.command; } });
@@ -85,4 +85,4 @@ var credential_plugins_1 = require("./api/aws-auth/credential-plugins");
85
85
  Object.defineProperty(exports, "CredentialPlugins", { enumerable: true, get: function () { return credential_plugins_1.CredentialPlugins; } });
86
86
  var awscli_compatible_1 = require("./api/aws-auth/awscli-compatible");
87
87
  Object.defineProperty(exports, "AwsCliCompatible", { enumerable: true, get: function () { return awscli_compatible_1.AwsCliCompatible; } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWV4cG9ydHMtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWV4cG9ydHMtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0R0FBNEc7QUFDNUcsMkVBQTJFO0FBQzNFLDBIQUEwSDtBQUMxSCxzRUFBc0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRFLG9EQUFvRDtBQUNwRCwwREFBd0M7QUFDeEMsK0JBQW9HO0FBQTNGLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLHNHQUFBLGNBQWMsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUNuRiwrREFBNkQ7QUFBcEQsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLGlDQUFzQztBQUE3QiwwRkFBQSxHQUFHLE9BQUE7QUFBRSwyRkFBQSxJQUFJLE9BQUE7QUFDbEIsMkNBQTZDO0FBQXBDLHVHQUFBLFdBQVcsT0FBQTtBQUNwQix1Q0FBMEM7QUFBakMsb0dBQUEsVUFBVSxPQUFBO0FBQ25CLG9EQUFrRDtBQUF6QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsK0RBQW1GO0FBQTFFLDZHQUFBLE9BQU8sT0FBQTtBQUFFLG1IQUFBLGFBQWEsT0FBQTtBQUFFLHFIQUFBLGVBQWUsT0FBQTtBQUNoRCwyQ0FBMEM7QUFBakMsb0dBQUEsUUFBUSxPQUFBO0FBQ2pCLDZDQUErQztBQUF0Qyx5R0FBQSxZQUFZLE9BQUE7QUFDckIsaUVBQStEO0FBQXRELG1IQUFBLGVBQWUsT0FBQTtBQUN4Qix5Q0FBK0M7QUFBdEMsbUdBQUEsV0FBVyxPQUFBO0FBQ3BCLCtCQUF5QztBQUFoQyx1R0FBQSxlQUFlLE9BQUE7QUFDeEIsc0VBQXlEO0FBQWhELDhHQUFBLE9BQU8sT0FBQTtBQUNoQixvRUFBK0Q7QUFBdEQsb0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLDBDQUErQztBQUF0Qyx3R0FBQSxhQUFhLE9BQUE7QUFDdEIsd0NBQTZEO0FBQXBELCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGdHQUFBLFFBQVEsT0FBQTtBQUNuQywrQ0FBK0Q7QUFBdEQsaUhBQUEsdUJBQXVCLE9BQUE7QUFDaEMsMENBQTJDO0FBQWxDLG9HQUFBLFNBQVMsT0FBQTtBQUNsQixpREFBZ0Q7QUFBdkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLGtEQUE2QztBQUFwQyxzR0FBQSxPQUFPLE9BQUE7QUFDaEIseUNBQXFFO0FBQTVELGdIQUFBLHFCQUFxQixPQUFBO0FBQUUsd0dBQUEsYUFBYSxPQUFBO0FBQzdDLCtCQUFnRDtBQUF2Qyw4R0FBQSxzQkFBc0IsT0FBQTtBQUMvQixnREFBK0M7QUFBdEMsZ0dBQUEsTUFBTSxPQUFBO0FBQ2YsMkZBQWdGO0FBQXZFLDBJQUFBLHNCQUFzQixPQUFBO0FBQy9CLHdFQUFzRTtBQUE3RCx1SEFBQSxpQkFBaUIsT0FBQTtBQUMxQixzRUFBb0U7QUFBM0QscUhBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGlzIGEgYmFycmVsIGV4cG9ydCBmaWxlLCBvZiBhbGwga25vd24gc3ltYm9scyB0aGF0IGFyZSBpbXBvcnRlZCBieSB1c2VycyBmcm9tIHRoZSBgYXdzLWNka2AgcGFja2FnZS5cbi8vIEltcG9ydGluZyB0aGVzZSBzeW1ib2xzIHdhcyBuZXZlciBvZmZpY2lhbGx5IHN1cHBvcnRlZCwgYnV0IGhlcmUgd2UgYXJlLlxuLy8gSW4gb3JkZXIgdG8gcHJlc2VydmVyIGJhY2t3YXJkcy1jb21wYXRpYmx5IGZvciB0aGVzZSB1c2Vycywgd2UgcmUtZXhwb3J0IGFuZCBwcmVzZXJ2ZSB0aGVtIGFzIGV4cGxpY2l0IHN1YnBhdGggZXhwb3J0cy5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzAyMSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuLy8gTm90ZTogQWxsIHR5cGUgZXhwb3J0cyBhcmUgaW4gYGxlZ2FjeS1leHBvcnRzLnRzYFxuZXhwb3J0ICogZnJvbSAnLi9sZWdhY3ktbG9nZ2luZy1zb3VyY2UnO1xuZXhwb3J0IHsgZGVlcENsb25lLCBmbGF0dGVuLCBpZkRlZmluZWQsIGlzQXJyYXksIGlzRW1wdHksIG51bWJlckZyb21Cb29sLCBwYXJ0aXRpb24gfSBmcm9tICcuL3V0aWwnO1xuZXhwb3J0IHsgZGVwbG95U3RhY2sgfSBmcm9tICcuL2FwaS9kZXBsb3ltZW50cy9kZXBsb3ktc3RhY2snO1xuZXhwb3J0IHsgY2xpLCBleGVjIH0gZnJvbSAnLi9jbGkvY2xpJztcbmV4cG9ydCB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi9hcGkvYXdzLWF1dGgnO1xuZXhwb3J0IHsgUGx1Z2luSG9zdCB9IGZyb20gJy4vYXBpL3BsdWdpbic7XG5leHBvcnQgeyBjb250ZW50SGFzaCB9IGZyb20gJy4vdXRpbC9jb250ZW50LWhhc2gnO1xuZXhwb3J0IHsgQ29tbWFuZCwgQ29uZmlndXJhdGlvbiwgUFJPSkVDVF9DT05URVhUIH0gZnJvbSAnLi9jbGkvdXNlci1jb25maWd1cmF0aW9uJztcbmV4cG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi9hcGkvc2V0dGluZ3MnO1xuZXhwb3J0IHsgQm9vdHN0cmFwcGVyIH0gZnJvbSAnLi9hcGkvYm9vdHN0cmFwJztcbmV4cG9ydCB7IENsb3VkRXhlY3V0YWJsZSB9IGZyb20gJy4vYXBpL2N4YXBwL2Nsb3VkLWV4ZWN1dGFibGUnO1xuZXhwb3J0IHsgZXhlY1Byb2dyYW0gfSBmcm9tICcuL2FwaS9jeGFwcC9leGVjJztcbmV4cG9ydCB7IFJlcXVpcmVBcHByb3ZhbCB9IGZyb20gJy4vZGlmZic7XG5leHBvcnQgeyBsZWZ0UGFkIH0gZnJvbSAnLi9hcGkvdXRpbC9zdHJpbmctbWFuaXB1bGF0aW9uJztcbmV4cG9ydCB7IGZvcm1hdEFzQmFubmVyIH0gZnJvbSAnLi9jbGkvdXRpbC9jb25zb2xlLWZvcm1hdHRlcnMnO1xuZXhwb3J0IHsgZW5hYmxlVHJhY2luZyB9IGZyb20gJy4vdXRpbC90cmFjaW5nJztcbmV4cG9ydCB7IGFsaWFzZXMsIGNvbW1hbmQsIGRlc2NyaWJlIH0gZnJvbSAnLi9jb21tYW5kcy9kb2NzJztcbmV4cG9ydCB7IGxvd2VyQ2FzZUZpcnN0Q2hhcmFjdGVyIH0gZnJvbSAnLi9hcGkvaG90c3dhcC9jb21tb24nO1xuZXhwb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAnLi91dGlsL29iamVjdHMnO1xuZXhwb3J0IHsgRGVwbG95bWVudHMgfSBmcm9tICcuL2FwaS9kZXBsb3ltZW50cyc7XG5leHBvcnQgeyByb290RGlyIH0gZnJvbSAnLi91dGlsL2RpcmVjdG9yaWVzJztcbmV4cG9ydCB7IGxhdGVzdFZlcnNpb25JZkhpZ2hlciwgdmVyc2lvbk51bWJlciB9IGZyb20gJy4vY2xpL3ZlcnNpb24nO1xuZXhwb3J0IHsgYXZhaWxhYmxlSW5pdFRlbXBsYXRlcyB9IGZyb20gJy4vaW5pdCc7XG5leHBvcnQgeyBjYWNoZWQgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC9jYWNoZWQnO1xuZXhwb3J0IHsgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbiB9IGZyb20gJy4vYXBpL2V2YWx1YXRlLWNsb3VkZm9ybWF0aW9uLXRlbXBsYXRlJztcbmV4cG9ydCB7IENyZWRlbnRpYWxQbHVnaW5zIH0gZnJvbSAnLi9hcGkvYXdzLWF1dGgvY3JlZGVudGlhbC1wbHVnaW5zJztcbmV4cG9ydCB7IEF3c0NsaUNvbXBhdGlibGUgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC9hd3NjbGktY29tcGF0aWJsZSc7XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LWV4cG9ydHMtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LWV4cG9ydHMtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0R0FBNEc7QUFDNUcsMkVBQTJFO0FBQzNFLDBIQUEwSDtBQUMxSCxzRUFBc0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRFLG9EQUFvRDtBQUNwRCwwREFBd0M7QUFDeEMsK0JBQW9HO0FBQTNGLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLCtGQUFBLE9BQU8sT0FBQTtBQUFFLHNHQUFBLGNBQWMsT0FBQTtBQUFFLGlHQUFBLFNBQVMsT0FBQTtBQUNuRiwrREFBNkQ7QUFBcEQsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLGlDQUFzQztBQUE3QiwwRkFBQSxHQUFHLE9BQUE7QUFBRSwyRkFBQSxJQUFJLE9BQUE7QUFDbEIsMkNBQTZDO0FBQXBDLHVHQUFBLFdBQVcsT0FBQTtBQUNwQix1Q0FBMEM7QUFBakMsb0dBQUEsVUFBVSxPQUFBO0FBQ25CLG9EQUFrRDtBQUF6QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsK0RBQW1GO0FBQTFFLDZHQUFBLE9BQU8sT0FBQTtBQUFFLG1IQUFBLGFBQWEsT0FBQTtBQUFFLHFIQUFBLGVBQWUsT0FBQTtBQUNoRCwyQ0FBMEM7QUFBakMsb0dBQUEsUUFBUSxPQUFBO0FBQ2pCLDZDQUErQztBQUF0Qyx5R0FBQSxZQUFZLE9BQUE7QUFDckIsaUVBQStEO0FBQXRELG1IQUFBLGVBQWUsT0FBQTtBQUN4Qix5Q0FBK0M7QUFBdEMsbUdBQUEsV0FBVyxPQUFBO0FBQ3BCLCtCQUF5QztBQUFoQyx1R0FBQSxlQUFlLE9BQUE7QUFDeEIsc0VBQXlEO0FBQWhELDhHQUFBLE9BQU8sT0FBQTtBQUNoQixvRUFBK0Q7QUFBdEQsb0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLGtEQUF3RTtBQUEvRCx3R0FBQSxhQUFhLE9BQWlCO0FBQ3ZDLHdDQUE2RDtBQUFwRCwrRkFBQSxPQUFPLE9BQUE7QUFBRSwrRkFBQSxPQUFPLE9BQUE7QUFBRSxnR0FBQSxRQUFRLE9BQUE7QUFDbkMsK0NBQStEO0FBQXRELGlIQUFBLHVCQUF1QixPQUFBO0FBQ2hDLDBDQUEyQztBQUFsQyxvR0FBQSxTQUFTLE9BQUE7QUFDbEIsaURBQWdEO0FBQXZDLDBHQUFBLFdBQVcsT0FBQTtBQUNwQixrREFBNkM7QUFBcEMsc0dBQUEsT0FBTyxPQUFBO0FBQ2hCLHlDQUFxRTtBQUE1RCxnSEFBQSxxQkFBcUIsT0FBQTtBQUFFLHdHQUFBLGFBQWEsT0FBQTtBQUM3QywrQkFBZ0Q7QUFBdkMsOEdBQUEsc0JBQXNCLE9BQUE7QUFDL0IsZ0RBQStDO0FBQXRDLGdHQUFBLE1BQU0sT0FBQTtBQUNmLDJGQUFnRjtBQUF2RSwwSUFBQSxzQkFBc0IsT0FBQTtBQUMvQix3RUFBc0U7QUFBN0QsdUhBQUEsaUJBQWlCLE9BQUE7QUFDMUIsc0VBQW9FO0FBQTNELHFIQUFBLGdCQUFnQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBpcyBhIGJhcnJlbCBleHBvcnQgZmlsZSwgb2YgYWxsIGtub3duIHN5bWJvbHMgdGhhdCBhcmUgaW1wb3J0ZWQgYnkgdXNlcnMgZnJvbSB0aGUgYGF3cy1jZGtgIHBhY2thZ2UuXG4vLyBJbXBvcnRpbmcgdGhlc2Ugc3ltYm9scyB3YXMgbmV2ZXIgb2ZmaWNpYWxseSBzdXBwb3J0ZWQsIGJ1dCBoZXJlIHdlIGFyZS5cbi8vIEluIG9yZGVyIHRvIHByZXNlcnZlciBiYWNrd2FyZHMtY29tcGF0aWJseSBmb3IgdGhlc2UgdXNlcnMsIHdlIHJlLWV4cG9ydCBhbmQgcHJlc2VydmUgdGhlbSBhcyBleHBsaWNpdCBzdWJwYXRoIGV4cG9ydHMuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMwMjEgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5cbi8vIE5vdGU6IEFsbCB0eXBlIGV4cG9ydHMgYXJlIGluIGBsZWdhY3ktZXhwb3J0cy50c2BcbmV4cG9ydCAqIGZyb20gJy4vbGVnYWN5LWxvZ2dpbmctc291cmNlJztcbmV4cG9ydCB7IGRlZXBDbG9uZSwgZmxhdHRlbiwgaWZEZWZpbmVkLCBpc0FycmF5LCBpc0VtcHR5LCBudW1iZXJGcm9tQm9vbCwgcGFydGl0aW9uIH0gZnJvbSAnLi91dGlsJztcbmV4cG9ydCB7IGRlcGxveVN0YWNrIH0gZnJvbSAnLi9hcGkvZGVwbG95bWVudHMvZGVwbG95LXN0YWNrJztcbmV4cG9ydCB7IGNsaSwgZXhlYyB9IGZyb20gJy4vY2xpL2NsaSc7XG5leHBvcnQgeyBTZGtQcm92aWRlciB9IGZyb20gJy4vYXBpL2F3cy1hdXRoJztcbmV4cG9ydCB7IFBsdWdpbkhvc3QgfSBmcm9tICcuL2FwaS9wbHVnaW4nO1xuZXhwb3J0IHsgY29udGVudEhhc2ggfSBmcm9tICcuL3V0aWwvY29udGVudC1oYXNoJztcbmV4cG9ydCB7IENvbW1hbmQsIENvbmZpZ3VyYXRpb24sIFBST0pFQ1RfQ09OVEVYVCB9IGZyb20gJy4vY2xpL3VzZXItY29uZmlndXJhdGlvbic7XG5leHBvcnQgeyBTZXR0aW5ncyB9IGZyb20gJy4vYXBpL3NldHRpbmdzJztcbmV4cG9ydCB7IEJvb3RzdHJhcHBlciB9IGZyb20gJy4vYXBpL2Jvb3RzdHJhcCc7XG5leHBvcnQgeyBDbG91ZEV4ZWN1dGFibGUgfSBmcm9tICcuL2FwaS9jeGFwcC9jbG91ZC1leGVjdXRhYmxlJztcbmV4cG9ydCB7IGV4ZWNQcm9ncmFtIH0gZnJvbSAnLi9hcGkvY3hhcHAvZXhlYyc7XG5leHBvcnQgeyBSZXF1aXJlQXBwcm92YWwgfSBmcm9tICcuL2RpZmYnO1xuZXhwb3J0IHsgbGVmdFBhZCB9IGZyb20gJy4vYXBpL3V0aWwvc3RyaW5nLW1hbmlwdWxhdGlvbic7XG5leHBvcnQgeyBmb3JtYXRBc0Jhbm5lciB9IGZyb20gJy4vY2xpL3V0aWwvY29uc29sZS1mb3JtYXR0ZXJzJztcbmV4cG9ydCB7IHNldFNka1RyYWNpbmcgYXMgZW5hYmxlVHJhY2luZyB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL3RyYWNpbmcnO1xuZXhwb3J0IHsgYWxpYXNlcywgY29tbWFuZCwgZGVzY3JpYmUgfSBmcm9tICcuL2NvbW1hbmRzL2RvY3MnO1xuZXhwb3J0IHsgbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIgfSBmcm9tICcuL2FwaS9ob3Rzd2FwL2NvbW1vbic7XG5leHBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuL3V0aWwvb2JqZWN0cyc7XG5leHBvcnQgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4vYXBpL2RlcGxveW1lbnRzJztcbmV4cG9ydCB7IHJvb3REaXIgfSBmcm9tICcuL3V0aWwvZGlyZWN0b3JpZXMnO1xuZXhwb3J0IHsgbGF0ZXN0VmVyc2lvbklmSGlnaGVyLCB2ZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9jbGkvdmVyc2lvbic7XG5leHBvcnQgeyBhdmFpbGFibGVJbml0VGVtcGxhdGVzIH0gZnJvbSAnLi9pbml0JztcbmV4cG9ydCB7IGNhY2hlZCB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2NhY2hlZCc7XG5leHBvcnQgeyBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uIH0gZnJvbSAnLi9hcGkvZXZhbHVhdGUtY2xvdWRmb3JtYXRpb24tdGVtcGxhdGUnO1xuZXhwb3J0IHsgQ3JlZGVudGlhbFBsdWdpbnMgfSBmcm9tICcuL2FwaS9hd3MtYXV0aC9jcmVkZW50aWFsLXBsdWdpbnMnO1xuZXhwb3J0IHsgQXdzQ2xpQ29tcGF0aWJsZSB9IGZyb20gJy4vYXBpL2F3cy1hdXRoL2F3c2NsaS1jb21wYXRpYmxlJztcbiJdfQ==
package/lib/logging.d.ts CHANGED
@@ -1,11 +1,4 @@
1
1
  import { IoMessageSpecificCode, IoCodeLevel } from './toolkit/cli-io-host';
2
- /**
3
- * Executes a block of code with corked logging. All log messages during execution
4
- * are buffered and only written when all nested cork blocks complete (when CORK_COUNTER reaches 0).
5
- * @param block - Async function to execute with corked logging
6
- * @returns Promise that resolves with the block's return value
7
- */
8
- export declare function withCorkedLogging<T>(block: () => Promise<T>): Promise<T>;
9
2
  interface LogParams<L extends IoCodeLevel> {
10
3
  /**
11
4
  * @see {@link IoMessage.code}
@@ -54,17 +47,17 @@ export declare const warning: (input: LogInput<"W">, ...args: unknown[]) => void
54
47
  */
55
48
  export declare const info: (input: LogInput<"I">, ...args: unknown[]) => void;
56
49
  /**
57
- * Logs an info level message to stdout.
50
+ * Logs an result. In the CLI, this always goes to stdout.
58
51
  *
59
52
  * Can be used in multiple ways:
60
53
  * ```ts
61
- * data(`${JSON.stringify(stats)}`) // infers default info code `CDK_TOOLKIT_I000`
62
- * data('{"count": %d}', count) // infers default info code `CDK_TOOLKIT_I000`
63
- * data({ message: 'stats: %j', code: 'CDK_DATA_I001' }) // specifies info code `CDK_DATA_I001`
64
- * data({ message: 'stats: %j', code: 'CDK_DATA_I001' }, stats) // specifies info code `CDK_DATA_I001`
54
+ * result(`${JSON.stringify(stats)}`) // infers default info code `CDK_TOOLKIT_I000`
55
+ * result('{"count": %d}', count) // infers default info code `CDK_TOOLKIT_I000`
56
+ * result({ message: 'stats: %j', code: 'CDK_DATA_I001' }) // specifies info code `CDK_DATA_I001`
57
+ * result({ message: 'stats: %j', code: 'CDK_DATA_I001' }, stats) // specifies info code `CDK_DATA_I001`
65
58
  * ```
66
59
  */
67
- export declare const data: (input: LogInput<"I">, ...args: unknown[]) => void;
60
+ export declare const result: (input: LogInput<"I">, ...args: unknown[]) => void;
68
61
  /**
69
62
  * Logs a debug level message.
70
63
  *
package/lib/logging.js CHANGED
@@ -1,63 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.highlight = exports.success = exports.trace = exports.debug = exports.data = exports.info = exports.warning = exports.error = void 0;
4
- exports.withCorkedLogging = withCorkedLogging;
3
+ exports.highlight = exports.success = exports.trace = exports.debug = exports.result = exports.info = exports.warning = exports.error = void 0;
5
4
  const util = require("util");
6
5
  const chalk = require("chalk");
7
6
  const cli_io_host_1 = require("./toolkit/cli-io-host");
8
- // Corking mechanism
9
- let CORK_COUNTER = 0;
10
- const logBuffer = [];
11
- /**
12
- * Executes a block of code with corked logging. All log messages during execution
13
- * are buffered and only written when all nested cork blocks complete (when CORK_COUNTER reaches 0).
14
- * @param block - Async function to execute with corked logging
15
- * @returns Promise that resolves with the block's return value
16
- */
17
- async function withCorkedLogging(block) {
18
- CORK_COUNTER++;
19
- try {
20
- return await block();
21
- }
22
- finally {
23
- CORK_COUNTER--;
24
- if (CORK_COUNTER === 0) {
25
- // Process each buffered message through notify
26
- for (const ioMessage of logBuffer) {
27
- void cli_io_host_1.CliIoHost.instance().notify(ioMessage);
28
- }
29
- logBuffer.splice(0);
30
- }
31
- }
32
- }
33
- /**
34
- * Internal core logging function that writes messages through the CLI IO host.
35
- * @param msg Configuration options for the log message. See {@link LogMessage}
36
- */
37
- function log(msg) {
38
- const ioMessage = {
39
- level: msg.level,
40
- message: msg.message,
41
- forceStdout: msg.forceStdout,
42
- time: new Date(),
43
- action: cli_io_host_1.CliIoHost.instance().currentAction,
44
- code: msg.code,
45
- };
46
- if (CORK_COUNTER > 0) {
47
- if (cli_io_host_1.levelPriority[msg.level] > cli_io_host_1.levelPriority[cli_io_host_1.CliIoHost.instance().logLevel]) {
48
- return;
49
- }
50
- logBuffer.push(ioMessage);
51
- return;
52
- }
53
- void cli_io_host_1.CliIoHost.instance().notify(ioMessage);
54
- }
55
7
  /**
56
8
  * Internal helper that processes log inputs into a consistent format.
57
9
  * Handles string interpolation, format strings, and object parameter styles.
58
- * Applies optional styling and prepares the final message for logging.
10
+ * Applies optional styling and sends the message to the IoHost.
59
11
  */
60
- function formatMessageAndLog(level, forceStdout, input, style, ...args) {
12
+ function formatMessageAndLog(level, input, style, ...args) {
61
13
  // Extract message and code from input, using new default code format
62
14
  const { message, code = getDefaultCode(level) } = typeof input === 'object' ? input : { message: input };
63
15
  // Format message if args are provided
@@ -66,12 +18,15 @@ function formatMessageAndLog(level, forceStdout, input, style, ...args) {
66
18
  : message;
67
19
  // Apply style if provided
68
20
  const finalMessage = style ? style(formattedMessage) : formattedMessage;
69
- log({
21
+ const ioHost = cli_io_host_1.CliIoHost.instance();
22
+ const ioMessage = {
23
+ time: new Date(),
24
+ action: ioHost.currentAction,
70
25
  level,
71
26
  message: finalMessage,
72
27
  code,
73
- forceStdout,
74
- });
28
+ };
29
+ void ioHost.notify(ioMessage);
75
30
  }
76
31
  function getDefaultCode(level, category = 'TOOLKIT') {
77
32
  const levelIndicator = level === 'error' ? 'E' :
@@ -93,7 +48,7 @@ function getDefaultCode(level, category = 'TOOLKIT') {
93
48
  * ```
94
49
  */
95
50
  const error = (input, ...args) => {
96
- return formatMessageAndLog('error', false, input, undefined, ...args);
51
+ return formatMessageAndLog('error', input, undefined, ...args);
97
52
  };
98
53
  exports.error = error;
99
54
  /**
@@ -108,7 +63,7 @@ exports.error = error;
108
63
  * ```
109
64
  */
110
65
  const warning = (input, ...args) => {
111
- return formatMessageAndLog('warn', false, input, undefined, ...args);
66
+ return formatMessageAndLog('warn', input, undefined, ...args);
112
67
  };
113
68
  exports.warning = warning;
114
69
  /**
@@ -123,24 +78,24 @@ exports.warning = warning;
123
78
  * ```
124
79
  */
125
80
  const info = (input, ...args) => {
126
- return formatMessageAndLog('info', false, input, undefined, ...args);
81
+ return formatMessageAndLog('info', input, undefined, ...args);
127
82
  };
128
83
  exports.info = info;
129
84
  /**
130
- * Logs an info level message to stdout.
85
+ * Logs an result. In the CLI, this always goes to stdout.
131
86
  *
132
87
  * Can be used in multiple ways:
133
88
  * ```ts
134
- * data(`${JSON.stringify(stats)}`) // infers default info code `CDK_TOOLKIT_I000`
135
- * data('{"count": %d}', count) // infers default info code `CDK_TOOLKIT_I000`
136
- * data({ message: 'stats: %j', code: 'CDK_DATA_I001' }) // specifies info code `CDK_DATA_I001`
137
- * data({ message: 'stats: %j', code: 'CDK_DATA_I001' }, stats) // specifies info code `CDK_DATA_I001`
89
+ * result(`${JSON.stringify(stats)}`) // infers default info code `CDK_TOOLKIT_I000`
90
+ * result('{"count": %d}', count) // infers default info code `CDK_TOOLKIT_I000`
91
+ * result({ message: 'stats: %j', code: 'CDK_DATA_I001' }) // specifies info code `CDK_DATA_I001`
92
+ * result({ message: 'stats: %j', code: 'CDK_DATA_I001' }, stats) // specifies info code `CDK_DATA_I001`
138
93
  * ```
139
94
  */
140
- const data = (input, ...args) => {
141
- return formatMessageAndLog('info', true, input, undefined, ...args);
95
+ const result = (input, ...args) => {
96
+ return formatMessageAndLog('result', input, undefined, ...args);
142
97
  };
143
- exports.data = data;
98
+ exports.result = result;
144
99
  /**
145
100
  * Logs a debug level message.
146
101
  *
@@ -153,7 +108,7 @@ exports.data = data;
153
108
  * ```
154
109
  */
155
110
  const debug = (input, ...args) => {
156
- return formatMessageAndLog('debug', false, input, undefined, ...args);
111
+ return formatMessageAndLog('debug', input, undefined, ...args);
157
112
  };
158
113
  exports.debug = debug;
159
114
  /**
@@ -168,7 +123,7 @@ exports.debug = debug;
168
123
  * ```
169
124
  */
170
125
  const trace = (input, ...args) => {
171
- return formatMessageAndLog('trace', false, input, undefined, ...args);
126
+ return formatMessageAndLog('trace', input, undefined, ...args);
172
127
  };
173
128
  exports.trace = trace;
174
129
  /**
@@ -183,7 +138,7 @@ exports.trace = trace;
183
138
  * ```
184
139
  */
185
140
  const success = (input, ...args) => {
186
- return formatMessageAndLog('info', false, input, chalk.green, ...args);
141
+ return formatMessageAndLog('info', input, chalk.green, ...args);
187
142
  };
188
143
  exports.success = success;
189
144
  /**
@@ -198,7 +153,7 @@ exports.success = success;
198
153
  * ```
199
154
  */
200
155
  const highlight = (input, ...args) => {
201
- return formatMessageAndLog('info', false, input, chalk.bold, ...args);
156
+ return formatMessageAndLog('info', input, chalk.bold, ...args);
202
157
  };
203
158
  exports.highlight = highlight;
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBY0EsOENBY0M7QUE1QkQsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQix1REFBc0s7QUFFdEssb0JBQW9CO0FBQ3BCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUNyQixNQUFNLFNBQVMsR0FBcUIsRUFBRSxDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUFJLEtBQXVCO0lBQ2hFLFlBQVksRUFBRSxDQUFDO0lBQ2YsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7WUFBUyxDQUFDO1FBQ1QsWUFBWSxFQUFFLENBQUM7UUFDZixJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QiwrQ0FBK0M7WUFDL0MsS0FBSyxNQUFNLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDbEMsS0FBSyx1QkFBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUF3QkQ7OztHQUdHO0FBQ0gsU0FBUyxHQUFHLENBQUMsR0FBZTtJQUMxQixNQUFNLFNBQVMsR0FBeUI7UUFDdEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztRQUNwQixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDNUIsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSx1QkFBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWE7UUFDMUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ2YsQ0FBQztJQUVGLElBQUksWUFB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U0FBUyxhQUVwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBJb01lc3NhZ2VMZXZlbCwgSW9NZXNzYWdlLCBDbGlJb0hvc3QsIElvTWVzc2FnZVNwZWNpZmljQ29kZSwgSW9NZXNzYWdlQ29kZSwgSW9NZXNzYWdlQ29kZUNhdGVnb3J5LCBJb0NvZGVMZXZlbCwgbGV2ZWxQcmlvcml0eSB9IGZyb20gJy4vdG9vbGtpdC9jbGktaW8taG9zdCc7XG5cbi8vIENvcmtpbmcgbWVjaGFuaXNtXG5sZXQgQ09SS19DT1VOVEVSID0gMDtcbmNvbnN0IGxvZ0J1ZmZlcjogSW9NZXNzYWdlPGFueT5bXSA9IFtdO1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgYmxvY2sgb2YgY29kZSB3aXRoIGNvcmtlZCBsb2dnaW5nLiBBbGwgbG9nIG1lc3NhZ2VzIGR1cmluZyBleGVjdXRpb25cbiAqIGFyZSBidWZmZXJlZCBhbmQgb25seSB3cml0dGVuIHdoZW4gYWxsIG5lc3RlZCBjb3JrIGJsb2NrcyBjb21wbGV0ZSAod2hlbiBDT1JLX0NPVU5URVIgcmVhY2hlcyAwKS5cbiAqIEBwYXJhbSBibG9jayAtIEFzeW5jIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgd2l0aCBjb3JrZWQgbG9nZ2luZ1xuICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJsb2NrJ3MgcmV0dXJuIHZhbHVlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3aXRoQ29ya2VkTG9nZ2luZzxUPihibG9jazogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICBDT1JLX0NPVU5URVIrKztcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBDT1JLX0NPVU5URVItLTtcbiAgICBpZiAoQ09SS19DT1VOVEVSID09PSAwKSB7XG4gICAgICAvLyBQcm9jZXNzIGVhY2ggYnVmZmVyZWQgbWVzc2FnZSB0aHJvdWdoIG5vdGlmeVxuICAgICAgZm9yIChjb25zdCBpb01lc3NhZ2Ugb2YgbG9nQnVmZmVyKSB7XG4gICAgICAgIHZvaWQgQ2xpSW9Ib3N0Lmluc3RhbmNlKCkubm90aWZ5KGlvTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBsb2dCdWZmZXIuc3BsaWNlKDApO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgTG9nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGxldmVsIHRvIHVzZVxuICAgKi9cbiAgcmVhZG9ubHkgbGV2ZWw6IElvTWVzc2FnZUxldmVsO1xuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdG8gbG9nXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIHN0ZG91dFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VTdGRvdXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogTWVzc2FnZSBjb2RlIG9mIHRoZSBmb3JtYXQgW0NBVEVHT1JZXV9bTlVNQkVSX0NPREVdXG4gICAqIEBwYXR0ZXJuIFtBLVpdK19bMC0yXVswLTldezN9XG4gICAqIEBkZWZhdWx0IFRPT0xLSVRfWzAvMS8yXTAwMFxuICAgKi9cbiAgcmVhZG9ubHkgY29kZTogSW9NZXNzYWdlQ29kZTtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBjb3JlIGxvZ2dpbmcgZnVuY3Rpb24gdGhhdCB3cml0ZXMgbWVzc2FnZXMgdGhyb3VnaCB0aGUgQ0xJIElPIGhvc3QuXG4gKiBAcGFyYW0gbXNnIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGxvZyBtZXNzYWdlLiBTZWUgIHtAbGluayBMb2dNZXNzYWdlfVxuICovXG5mdW5jdGlvbiBsb2cobXNnOiBMb2dNZXNzYWdlKSB7XG4gIGNvbnN0IGlvTWVzc2FnZTogSW9NZXNzYWdlPHVuZGVmaW5lZD4gPSB7XG4gICAgbGV2ZWw6IG1zZy5sZXZlbCxcbiAgICBtZXNzYWdlOiBtc2cubWVzc2FnZSxcbiAgICBmb3JjZVN0ZG91dDogbXNnLmZvcmNlU3Rkb3V0LFxuICAgIHRpbWU6IG5ldyBEYXRlKCksXG4gICAgYWN0aW9uOiBDbGlJb0hvc3QuaW5zdGFuY2UoKS5jdXJyZW50QWN0aW9uLFxuICAgIGNvZGU6IG1zZy5jb2RlLFxuICB9O1xuXG4gIGlmIChDT1JLX0NPVU5URVIgPiAwKSB7XG4gICAgaWYgKGxldmVsUHJpb3JpdHlbbXNnLmxldmVsXSA+IGxldmVsUHJpb3JpdHlbQ2xpSW9Ib3N0Lmluc3RhbmNlKCkubG9nTGV2ZWxdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxvZ0J1ZmZlci5wdXNoKGlvTWVzc2FnZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdm9pZCBDbGlJb0hvc3QuaW5zdGFuY2UoKS5ub3RpZnkoaW9NZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBoZWxwZXIgdGhhdCBwcm9jZXNzZXMgbG9nIGlucHV0cyBpbnRvIGEgY29uc2lzdGVudCBmb3JtYXQuXG4gKiBIYW5kbGVzIHN0cmluZyBpbnRlcnBvbGF0aW9uLCBmb3JtYXQgc3RyaW5ncywgYW5kIG9iamVjdCBwYXJhbWV0ZXIgc3R5bGVzLlxuICogQXBwbGllcyBvcHRpb25hbCBzdHlsaW5nIGFuZCBwcmVwYXJlcyB0aGUgZmluYWwgbWVzc2FnZSBmb3IgbG9nZ2luZy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZUFuZExvZyhcbiAgbGV2ZWw6IElvTWVzc2FnZUxldmVsLFxuICBmb3JjZVN0ZG91dDogYm9vbGVhbixcbiAgaW5wdXQ6IExvZ0lucHV0PElvQ29kZUxldmVsPixcbiAgc3R5bGU/OiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgLi4uYXJnczogdW5rbm93bltdXG4pOiB2b2lkIHtcbiAgLy8gRXh0cmFjdCBtZXNzYWdlIGFuZCBjb2RlIGZyb20gaW5wdXQsIHVzaW5nIG5ldyBkZWZhdWx0IGNvZGUgZm9ybWF0XG4gIGNvbnN0IHsgbWVzc2FnZSwgY29kZSA9IGdldERlZmF1bHRDb2RlKGxldmVsKSB9ID0gdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyA/IGlucHV0IDogeyBtZXNzYWdlOiBpbnB1dCB9O1xuXG4gIC8vIEZvcm1hdCBtZXNzYWdlIGlmIGFyZ3MgYXJlIHByb3ZpZGVkXG4gIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDBcbiAgICA/IHV0aWwuZm9ybWF0KG1lc3NhZ2UsIC4uLmFyZ3MpXG4gICAgOiBtZXNzYWdlO1xuXG4gIC8vIEFwcGx5IHN0eWxlIGlmIHByb3ZpZGVkXG4gIGNvbnN0IGZpbmFsTWVzc2FnZSA9IHN0eWxlID8gc3R5bGUoZm9ybWF0dGVkTWVzc2FnZSkgOiBmb3JtYXR0ZWRNZXNzYWdlO1xuXG4gIGxvZyh7XG4gICAgbGV2ZWwsXG4gICAgbWVzc2FnZTogZmluYWxNZXNzYWdlLFxuICAgIGNvZGUsXG4gICAgZm9yY2VTdGRvdXQsXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q29kZShsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGNhdGVnb3J5OiBJb01lc3NhZ2VDb2RlQ2F0ZWdvcnkgPSAnVE9PTEtJVCcpOiBJb01lc3NhZ2VDb2RlIHtcbiAgY29uc3QgbGV2ZWxJbmRpY2F0b3IgPSBsZXZlbCA9PT0gJ2Vycm9yJyA/ICdFJyA6XG4gICAgbGV2ZWwgPT09ICd3YXJuJyA/ICdXJyA6XG4gICAgICAnSSc7XG4gIHJldHVybiBgQ0RLXyR7Y2F0ZWdvcnl9XyR7bGV2ZWxJbmRpY2F0b3J9MDAwMGA7XG59XG5cbi8vIFR5cGUgZm9yIHRoZSBvYmplY3QgcGFyYW1ldGVyIHN0eWxlXG5pbnRlcmZhY2UgTG9nUGFyYW1zPEwgZXh0ZW5kcyBJb0NvZGVMZXZlbD4ge1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW9NZXNzYWdlLmNvZGV9XG4gICAqL1xuICByZWFkb25seSBjb2RlPzogSW9NZXNzYWdlU3BlY2lmaWNDb2RlPEw+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW9NZXNzYWdlLm1lc3NhZ2V9XG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8vIFR5cGUgZm9yIHRoZSBleHBvcnRlZCBsb2cgZnVuY3Rpb24gYXJndW1lbnRzXG50eXBlIExvZ0lucHV0PEwgZXh0ZW5kcyBJb0NvZGVMZXZlbD4gPSBzdHJpbmcgfCBMb2dQYXJhbXM8TD47XG5cbi8vIEV4cG9ydGVkIGxvZ2dpbmcgZnVuY3Rpb25zLiBJZiBhbnkgYWRkaXRpb25hbCBsb2dnaW5nIGZ1bmN0aW9uYWxpdHkgaXMgcmVxdWlyZWQsIGl0IHNob3VsZCBiZSBhZGRlZCBhc1xuLy8gYSBuZXcgbG9nZ2luZyBmdW5jdGlvbiBoZXJlLlxuXG4vKipcbiAqIExvZ3MgYW4gZXJyb3IgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIGVycm9yKGBvcGVyYXRpb24gZmFpbGVkOiAke2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgZXJyb3IgY29kZSBgQ0RLX1RPT0xLSVRfRTAwMGBcbiAqIGVycm9yKCdvcGVyYXRpb24gZmFpbGVkOiAlcycsIGUpIC8vIGluZmVycyBkZWZhdWx0IGVycm9yIGNvZGUgYENES19UT09MS0lUX0UwMDBgXG4gKiBlcnJvcih7IG1lc3NhZ2U6ICdvcGVyYXRpb24gZmFpbGVkJywgY29kZTogJ0NES19TREtfRTAwMScgfSkgLy8gc3BlY2lmaWVzIGVycm9yIGNvZGUgYENES19TREtfRTAwMWBcbiAqIGVycm9yKHsgbWVzc2FnZTogJ29wZXJhdGlvbiBmYWlsZWQ6ICVzJywgY29kZTogJ0NES19TREtfRTAwMScgfSwgZSkgLy8gc3BlY2lmaWVzIGVycm9yIGNvZGUgYENES19TREtfRTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZXJyb3IgPSAoaW5wdXQ6IExvZ0lucHV0PCdFJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnZXJyb3InLCBmYWxzZSwgaW5wdXQsIHVuZGVmaW5lZCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gd2FybmluZyBsZXZlbCBtZXNzYWdlLlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogd2FybmluZyhgZGVwcmVjdGVkIGZlYXR1cmU6ICR7bWVzc2FnZX1gKSAvLyBpbmZlcnMgZGVmYXVsdCB3YXJuaW5nIGNvZGUgYENES19UT09MS0lUX1cwMDBgXG4gKiB3YXJuaW5nKCdkZXByZWN0ZWQgZmVhdHVyZTogJXMnLCBtZXNzYWdlKSAvLyBpbmZlcnMgZGVmYXVsdCB3YXJuaW5nIGNvZGUgYENES19UT09MS0lUX1cwMDBgXG4gKiB3YXJuaW5nKHsgbWVzc2FnZTogJ2RlcHJlY3RlZCBmZWF0dXJlJywgY29kZTogJ0NES19TREtfVzAwMScgfSkgLy8gc3BlY2lmaWVzIHdhcm5pbmcgY29kZSBgQ0RLX1NES19XMDAxYFxuICogd2FybmluZyh7IG1lc3NhZ2U6ICdkZXByZWN0ZWQgZmVhdHVyZTogJXMnLCBjb2RlOiAnQ0RLX1NES19XMDAxJyB9LCBtZXNzYWdlKSAvLyBzcGVjaWZpZXMgd2FybmluZyBjb2RlIGBDREtfU0RLX1cwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHdhcm5pbmcgPSAoaW5wdXQ6IExvZ0lucHV0PCdXJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnd2FybicsIGZhbHNlLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiBpbmZvIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBpbmZvKGBwcm9jZXNzaW5nOiAke21lc3NhZ2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaW5mbygncHJvY2Vzc2luZzogJXMnLCBtZXNzYWdlKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBpbmZvKHsgbWVzc2FnZTogJ3Byb2Nlc3NpbmcnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGluZm8oeyBtZXNzYWdlOiAncHJvY2Vzc2luZzogJXMnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgbWVzc2FnZSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaW5mbyA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdpbmZvJywgZmFsc2UsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIGluZm8gbGV2ZWwgbWVzc2FnZSB0byBzdGRvdXQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBkYXRhKGAke0pTT04uc3RyaW5naWZ5KHN0YXRzKX1gKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBkYXRhKCd7XCJjb3VudFwiOiAlZH0nLCBjb3VudCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogZGF0YSh7IG1lc3NhZ2U6ICdzdGF0czogJWonLCBjb2RlOiAnQ0RLX0RBVEFfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX0RBVEFfSTAwMWBcbiAqIGRhdGEoeyBtZXNzYWdlOiAnc3RhdHM6ICVqJywgY29kZTogJ0NES19EQVRBX0kwMDEnIH0sIHN0YXRzKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfREFUQV9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRhID0gKGlucHV0OiBMb2dJbnB1dDwnSSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ2luZm8nLCB0cnVlLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhIGRlYnVnIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBkZWJ1Zyhgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUpfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGRlYnVnKCdjYWNoZSBoaXQgcmF0aW86ICVkJSUnLCByYXRpbykgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogZGVidWcoeyBtZXNzYWdlOiAnc3RhdGUgdXBkYXRlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBkZWJ1Zyh7IG1lc3NhZ2U6ICdyYXRpbzogJWQlJScsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCByYXRpbykgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZGVidWcgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnZGVidWcnLCBmYWxzZSwgaW5wdXQsIHVuZGVmaW5lZCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYSB0cmFjZSBsZXZlbCBtZXNzYWdlLlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogdHJhY2UoYGVudGVyZWQgJHtuYW1lfSB3aXRoICR7YXJnc31gKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiB0cmFjZSgnbWV0aG9kOiAlcywgYXJnczogJWonLCBuYW1lLCBhcmdzKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiB0cmFjZSh7IG1lc3NhZ2U6ICdlbnRlcmVkJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiB0cmFjZSh7IG1lc3NhZ2U6ICdtZXRob2Q6ICVzJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIG5hbWUpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYWNlID0gKGlucHV0OiBMb2dJbnB1dDwnSSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ3RyYWNlJywgZmFsc2UsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIGluZm8gbGV2ZWwgc3VjY2VzcyBtZXNzYWdlIGluIGdyZWVuIHRleHQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBzdWNjZXNzKGBkZXBsb3ltZW50IGNvbXBsZXRlZDogJHtuYW1lfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHN1Y2Nlc3MoJ3Byb2Nlc3NlZCAlZCBpdGVtcycsIGNvdW50KSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBzdWNjZXNzKHsgbWVzc2FnZTogJ2NvbXBsZXRlZCcsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogc3VjY2Vzcyh7IG1lc3NhZ2U6ICdpdGVtczogJWQnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgY291bnQpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1Y2Nlc3MgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnaW5mbycsIGZhbHNlLCBpbnB1dCwgY2hhbGsuZ3JlZW4sIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIGluZm8gbGV2ZWwgbWVzc2FnZSBpbiBib2xkIHRleHQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBoaWdobGlnaHQoYGltcG9ydGFudDogJHttc2d9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaGlnaGxpZ2h0KCdhdHRlbnRpb24gcmVxdWlyZWQ6ICVzJywgcmVhc29uKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBoaWdobGlnaHQoeyBtZXNzYWdlOiAnbm90aWNlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0pIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBoaWdobGlnaHQoeyBtZXNzYWdlOiAnbm90aWNlOiAlcycsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCBtc2cpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGhpZ2hsaWdodCA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdpbmZvJywgZmFsc2UsIGlucHV0LCBjaGFsay5ib2xkLCAuLi5hcmdzKTtcbn07XG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQix1REFBdUo7QUFFdko7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLEtBQXFCLEVBQ3JCLEtBQTRCLEVBQzVCLEtBQStCLEVBQy9CLEdBQUcsSUFBZTtJQUVsQixxRUFBcUU7SUFDckUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXpHLHNDQUFzQztJQUN0QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVaLDBCQUEwQjtJQUMxQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUV4RSxNQUFNLE1BQU0sR0FBRyx1QkFBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sU0FBUyxHQUF5QjtRQUN0QyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQzVCLEtBQUs7UUFDTCxPQUFPLEVBQUUsWUFBWTtRQUNyQixJQUFJO0tBQ0wsQ0FBQztJQUVGLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBcUIsRUFBRSxXQUFrQyxTQUFTO0lBQ3hGLE1BQU0sY0FBYyxHQUFHLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLEdBQUcsQ0FBQztJQUNSLE9BQU8sT0FBTyxRQUFRLElBQUksY0FBYyxNQUFNLENBQUM7QUFDakQsQ0FBQztBQWlCRCx5R0FBeUc7QUFDekcsK0JBQStCO0FBRS9COzs7Ozs7Ozs7O0dBVUc7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQW9CLEVBQUUsR0FBRyxJQUFlLEVBQUUsRUFBRTtJQUNoRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxLQUFLLFNBRWhCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ2xFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUM7QUFGVyxRQUFBLE9BQU8sV0FFbEI7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7SUFDL0QsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUZXLFFBQUEsSUFBSSxRQUVmO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFGVyxRQUFBLE1BQU0sVUFFakI7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7SUFDaEUsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUZXLFFBQUEsS0FBSyxTQUVoQjtBQUVGOzs7Ozs7Ozs7O0dBVUc7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQW9CLEVBQUUsR0FBRyxJQUFlLEVBQUUsRUFBRTtJQUNoRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxLQUFLLFNBRWhCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ2xFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxPQUFPLFdBRWxCO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxTQUFTLGFBRXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IElvTWVzc2FnZUxldmVsLCBJb01lc3NhZ2UsIENsaUlvSG9zdCwgSW9NZXNzYWdlU3BlY2lmaWNDb2RlLCBJb01lc3NhZ2VDb2RlLCBJb01lc3NhZ2VDb2RlQ2F0ZWdvcnksIElvQ29kZUxldmVsIH0gZnJvbSAnLi90b29sa2l0L2NsaS1pby1ob3N0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBoZWxwZXIgdGhhdCBwcm9jZXNzZXMgbG9nIGlucHV0cyBpbnRvIGEgY29uc2lzdGVudCBmb3JtYXQuXG4gKiBIYW5kbGVzIHN0cmluZyBpbnRlcnBvbGF0aW9uLCBmb3JtYXQgc3RyaW5ncywgYW5kIG9iamVjdCBwYXJhbWV0ZXIgc3R5bGVzLlxuICogQXBwbGllcyBvcHRpb25hbCBzdHlsaW5nIGFuZCBzZW5kcyB0aGUgbWVzc2FnZSB0byB0aGUgSW9Ib3N0LlxuICovXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlQW5kTG9nKFxuICBsZXZlbDogSW9NZXNzYWdlTGV2ZWwsXG4gIGlucHV0OiBMb2dJbnB1dDxJb0NvZGVMZXZlbD4sXG4gIHN0eWxlPzogKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIC4uLmFyZ3M6IHVua25vd25bXVxuKTogdm9pZCB7XG4gIC8vIEV4dHJhY3QgbWVzc2FnZSBhbmQgY29kZSBmcm9tIGlucHV0LCB1c2luZyBuZXcgZGVmYXVsdCBjb2RlIGZvcm1hdFxuICBjb25zdCB7IG1lc3NhZ2UsIGNvZGUgPSBnZXREZWZhdWx0Q29kZShsZXZlbCkgfSA9IHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgPyBpbnB1dCA6IHsgbWVzc2FnZTogaW5wdXQgfTtcblxuICAvLyBGb3JtYXQgbWVzc2FnZSBpZiBhcmdzIGFyZSBwcm92aWRlZFxuICBjb25zdCBmb3JtYXR0ZWRNZXNzYWdlID0gYXJncy5sZW5ndGggPiAwXG4gICAgPyB1dGlsLmZvcm1hdChtZXNzYWdlLCAuLi5hcmdzKVxuICAgIDogbWVzc2FnZTtcblxuICAvLyBBcHBseSBzdHlsZSBpZiBwcm92aWRlZFxuICBjb25zdCBmaW5hbE1lc3NhZ2UgPSBzdHlsZSA/IHN0eWxlKGZvcm1hdHRlZE1lc3NhZ2UpIDogZm9ybWF0dGVkTWVzc2FnZTtcblxuICBjb25zdCBpb0hvc3QgPSBDbGlJb0hvc3QuaW5zdGFuY2UoKTtcbiAgY29uc3QgaW9NZXNzYWdlOiBJb01lc3NhZ2U8dW5kZWZpbmVkPiA9IHtcbiAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgIGFjdGlvbjogaW9Ib3N0LmN1cnJlbnRBY3Rpb24sXG4gICAgbGV2ZWwsXG4gICAgbWVzc2FnZTogZmluYWxNZXNzYWdlLFxuICAgIGNvZGUsXG4gIH07XG5cbiAgdm9pZCBpb0hvc3Qubm90aWZ5KGlvTWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRDb2RlKGxldmVsOiBJb01lc3NhZ2VMZXZlbCwgY2F0ZWdvcnk6IElvTWVzc2FnZUNvZGVDYXRlZ29yeSA9ICdUT09MS0lUJyk6IElvTWVzc2FnZUNvZGUge1xuICBjb25zdCBsZXZlbEluZGljYXRvciA9IGxldmVsID09PSAnZXJyb3InID8gJ0UnIDpcbiAgICBsZXZlbCA9PT0gJ3dhcm4nID8gJ1cnIDpcbiAgICAgICdJJztcbiAgcmV0dXJuIGBDREtfJHtjYXRlZ29yeX1fJHtsZXZlbEluZGljYXRvcn0wMDAwYDtcbn1cblxuLy8gVHlwZSBmb3IgdGhlIG9iamVjdCBwYXJhbWV0ZXIgc3R5bGVcbmludGVyZmFjZSBMb2dQYXJhbXM8TCBleHRlbmRzIElvQ29kZUxldmVsPiB7XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJb01lc3NhZ2UuY29kZX1cbiAgICovXG4gIHJlYWRvbmx5IGNvZGU/OiBJb01lc3NhZ2VTcGVjaWZpY0NvZGU8TD47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJb01lc3NhZ2UubWVzc2FnZX1cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLy8gVHlwZSBmb3IgdGhlIGV4cG9ydGVkIGxvZyBmdW5jdGlvbiBhcmd1bWVudHNcbnR5cGUgTG9nSW5wdXQ8TCBleHRlbmRzIElvQ29kZUxldmVsPiA9IHN0cmluZyB8IExvZ1BhcmFtczxMPjtcblxuLy8gRXhwb3J0ZWQgbG9nZ2luZyBmdW5jdGlvbnMuIElmIGFueSBhZGRpdGlvbmFsIGxvZ2dpbmcgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZCwgaXQgc2hvdWxkIGJlIGFkZGVkIGFzXG4vLyBhIG5ldyBsb2dnaW5nIGZ1bmN0aW9uIGhlcmUuXG5cbi8qKlxuICogTG9ncyBhbiBlcnJvciBsZXZlbCBtZXNzYWdlLlxuICpcbiAqIENhbiBiZSB1c2VkIGluIG11bHRpcGxlIHdheXM6XG4gKiBgYGB0c1xuICogZXJyb3IoYG9wZXJhdGlvbiBmYWlsZWQ6ICR7ZX1gKSAvLyBpbmZlcnMgZGVmYXVsdCBlcnJvciBjb2RlIGBDREtfVE9PTEtJVF9FMDAwYFxuICogZXJyb3IoJ29wZXJhdGlvbiBmYWlsZWQ6ICVzJywgZSkgLy8gaW5mZXJzIGRlZmF1bHQgZXJyb3IgY29kZSBgQ0RLX1RPT0xLSVRfRTAwMGBcbiAqIGVycm9yKHsgbWVzc2FnZTogJ29wZXJhdGlvbiBmYWlsZWQnLCBjb2RlOiAnQ0RLX1NES19FMDAxJyB9KSAvLyBzcGVjaWZpZXMgZXJyb3IgY29kZSBgQ0RLX1NES19FMDAxYFxuICogZXJyb3IoeyBtZXNzYWdlOiAnb3BlcmF0aW9uIGZhaWxlZDogJXMnLCBjb2RlOiAnQ0RLX1NES19FMDAxJyB9LCBlKSAvLyBzcGVjaWZpZXMgZXJyb3IgY29kZSBgQ0RLX1NES19FMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBlcnJvciA9IChpbnB1dDogTG9nSW5wdXQ8J0UnPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdlcnJvcicsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIHdhcm5pbmcgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIHdhcm5pbmcoYGRlcHJlY3RlZCBmZWF0dXJlOiAke21lc3NhZ2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgd2FybmluZyBjb2RlIGBDREtfVE9PTEtJVF9XMDAwYFxuICogd2FybmluZygnZGVwcmVjdGVkIGZlYXR1cmU6ICVzJywgbWVzc2FnZSkgLy8gaW5mZXJzIGRlZmF1bHQgd2FybmluZyBjb2RlIGBDREtfVE9PTEtJVF9XMDAwYFxuICogd2FybmluZyh7IG1lc3NhZ2U6ICdkZXByZWN0ZWQgZmVhdHVyZScsIGNvZGU6ICdDREtfU0RLX1cwMDEnIH0pIC8vIHNwZWNpZmllcyB3YXJuaW5nIGNvZGUgYENES19TREtfVzAwMWBcbiAqIHdhcm5pbmcoeyBtZXNzYWdlOiAnZGVwcmVjdGVkIGZlYXR1cmU6ICVzJywgY29kZTogJ0NES19TREtfVzAwMScgfSwgbWVzc2FnZSkgLy8gc3BlY2lmaWVzIHdhcm5pbmcgY29kZSBgQ0RLX1NES19XMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB3YXJuaW5nID0gKGlucHV0OiBMb2dJbnB1dDwnVyc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ3dhcm4nLCBpbnB1dCwgdW5kZWZpbmVkLCAuLi5hcmdzKTtcbn07XG5cbi8qKlxuICogTG9ncyBhbiBpbmZvIGxldmVsIG1lc3NhZ2UuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBpbmZvKGBwcm9jZXNzaW5nOiAke21lc3NhZ2V9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogaW5mbygncHJvY2Vzc2luZzogJXMnLCBtZXNzYWdlKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBpbmZvKHsgbWVzc2FnZTogJ3Byb2Nlc3NpbmcnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGluZm8oeyBtZXNzYWdlOiAncHJvY2Vzc2luZzogJXMnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgbWVzc2FnZSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaW5mbyA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdpbmZvJywgaW5wdXQsIHVuZGVmaW5lZCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gcmVzdWx0LiBJbiB0aGUgQ0xJLCB0aGlzIGFsd2F5cyBnb2VzIHRvIHN0ZG91dC5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIHJlc3VsdChgJHtKU09OLnN0cmluZ2lmeShzdGF0cyl9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogcmVzdWx0KCd7XCJjb3VudFwiOiAlZH0nLCBjb3VudCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogcmVzdWx0KHsgbWVzc2FnZTogJ3N0YXRzOiAlaicsIGNvZGU6ICdDREtfREFUQV9JMDAxJyB9KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfREFUQV9JMDAxYFxuICogcmVzdWx0KHsgbWVzc2FnZTogJ3N0YXRzOiAlaicsIGNvZGU6ICdDREtfREFUQV9JMDAxJyB9LCBzdGF0cykgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX0RBVEFfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgcmVzdWx0ID0gKGlucHV0OiBMb2dJbnB1dDwnSSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ3Jlc3VsdCcsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGEgZGVidWcgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIGRlYnVnKGBzdGF0ZTogJHtKU09OLnN0cmluZ2lmeShzdGF0ZSl9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogZGVidWcoJ2NhY2hlIGhpdCByYXRpbzogJWQlJScsIHJhdGlvKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBkZWJ1Zyh7IG1lc3NhZ2U6ICdzdGF0ZSB1cGRhdGUnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGRlYnVnKHsgbWVzc2FnZTogJ3JhdGlvOiAlZCUlJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIHJhdGlvKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBkZWJ1ZyA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCdkZWJ1ZycsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGEgdHJhY2UgbGV2ZWwgbWVzc2FnZS5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIHRyYWNlKGBlbnRlcmVkICR7bmFtZX0gd2l0aCAke2FyZ3N9YCkgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogdHJhY2UoJ21ldGhvZDogJXMsIGFyZ3M6ICVqJywgbmFtZSwgYXJncykgLy8gaW5mZXJzIGRlZmF1bHQgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAwYFxuICogdHJhY2UoeyBtZXNzYWdlOiAnZW50ZXJlZCcsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogdHJhY2UoeyBtZXNzYWdlOiAnbWV0aG9kOiAlcycsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9LCBuYW1lKSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFjZSA9IChpbnB1dDogTG9nSW5wdXQ8J0knPiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gIHJldHVybiBmb3JtYXRNZXNzYWdlQW5kTG9nKCd0cmFjZScsIGlucHV0LCB1bmRlZmluZWQsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBMb2dzIGFuIGluZm8gbGV2ZWwgc3VjY2VzcyBtZXNzYWdlIGluIGdyZWVuIHRleHQuXG4gKlxuICogQ2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgd2F5czpcbiAqIGBgYHRzXG4gKiBzdWNjZXNzKGBkZXBsb3ltZW50IGNvbXBsZXRlZDogJHtuYW1lfWApIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIHN1Y2Nlc3MoJ3Byb2Nlc3NlZCAlZCBpdGVtcycsIGNvdW50KSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBzdWNjZXNzKHsgbWVzc2FnZTogJ2NvbXBsZXRlZCcsIGNvZGU6ICdDREtfVE9PTEtJVF9JMDAxJyB9KSAvLyBzcGVjaWZpZXMgaW5mbyBjb2RlIGBDREtfVE9PTEtJVF9JMDAxYFxuICogc3VjY2Vzcyh7IG1lc3NhZ2U6ICdpdGVtczogJWQnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSwgY291bnQpIC8vIHNwZWNpZmllcyBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDFgXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1Y2Nlc3MgPSAoaW5wdXQ6IExvZ0lucHV0PCdJJz4sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICByZXR1cm4gZm9ybWF0TWVzc2FnZUFuZExvZygnaW5mbycsIGlucHV0LCBjaGFsay5ncmVlbiwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIExvZ3MgYW4gaW5mbyBsZXZlbCBtZXNzYWdlIGluIGJvbGQgdGV4dC5cbiAqXG4gKiBDYW4gYmUgdXNlZCBpbiBtdWx0aXBsZSB3YXlzOlxuICogYGBgdHNcbiAqIGhpZ2hsaWdodChgaW1wb3J0YW50OiAke21zZ31gKSAvLyBpbmZlcnMgZGVmYXVsdCBpbmZvIGNvZGUgYENES19UT09MS0lUX0kwMDBgXG4gKiBoaWdobGlnaHQoJ2F0dGVudGlvbiByZXF1aXJlZDogJXMnLCByZWFzb24pIC8vIGluZmVycyBkZWZhdWx0IGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMGBcbiAqIGhpZ2hsaWdodCh7IG1lc3NhZ2U6ICdub3RpY2UnLCBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMScgfSkgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGhpZ2hsaWdodCh7IG1lc3NhZ2U6ICdub3RpY2U6ICVzJywgY29kZTogJ0NES19UT09MS0lUX0kwMDEnIH0sIG1zZykgLy8gc3BlY2lmaWVzIGluZm8gY29kZSBgQ0RLX1RPT0xLSVRfSTAwMWBcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0ID0gKGlucHV0OiBMb2dJbnB1dDwnSSc+LCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgcmV0dXJuIGZvcm1hdE1lc3NhZ2VBbmRMb2coJ2luZm8nLCBpbnB1dCwgY2hhbGsuYm9sZCwgLi4uYXJncyk7XG59O1xuIl19
@@ -40,13 +40,6 @@ export interface IoMessage<T> {
40
40
  * The message text.
41
41
  */
42
42
  readonly message: string;
43
- /**
44
- * If true, the message will be written to stdout
45
- * regardless of any other parameters.
46
- *
47
- * @default false
48
- */
49
- readonly forceStdout?: boolean;
50
43
  /**
51
44
  * The data attached to the message.
52
45
  */
@@ -58,12 +51,12 @@ export interface IoRequest<T, U> extends IoMessage<T> {
58
51
  */
59
52
  readonly defaultResponse: U;
60
53
  }
61
- export type IoMessageLevel = 'error' | 'warn' | 'info' | 'debug' | 'trace';
54
+ export type IoMessageLevel = 'error' | 'result' | 'warn' | 'info' | 'debug' | 'trace';
62
55
  export declare const levelPriority: Record<IoMessageLevel, number>;
63
56
  /**
64
57
  * The current action being performed by the CLI. 'none' represents the absence of an action.
65
58
  */
66
- export type ToolkitAction = 'bootstrap' | 'synth' | 'list' | 'diff' | 'deploy' | 'rollback' | 'watch' | 'destroy' | 'context' | 'docs' | 'doctor' | 'gc' | 'import' | 'metadata' | 'notices' | 'init' | 'migrate' | 'version';
59
+ export type ToolkitAction = 'assembly' | 'bootstrap' | 'synth' | 'list' | 'diff' | 'deploy' | 'rollback' | 'watch' | 'destroy' | 'context' | 'docs' | 'doctor' | 'gc' | 'import' | 'metadata' | 'notices' | 'init' | 'migrate' | 'version';
67
60
  export interface IIoHost {
68
61
  /**
69
62
  * Notifies the host of a message.
@@ -129,6 +122,8 @@ export declare class CliIoHost implements IIoHost {
129
122
  private _isTTY;
130
123
  private _logLevel;
131
124
  private _internalIoHost?;
125
+ private corkedCounter;
126
+ private readonly corkedLoggingBuffer;
132
127
  private constructor();
133
128
  /**
134
129
  * Returns the singleton instance
@@ -172,22 +167,31 @@ export declare class CliIoHost implements IIoHost {
172
167
  * @param level The new log level threshold
173
168
  */
174
169
  set logLevel(level: IoMessageLevel);
170
+ /**
171
+ * Executes a block of code with corked logging. All log messages during execution
172
+ * are buffered and only written when all nested cork blocks complete (when CORK_COUNTER reaches 0).
173
+ * The corking is bound to the specific instance of the CliIoHost.
174
+ *
175
+ * @param block - Async function to execute with corked logging
176
+ * @returns Promise that resolves with the block's return value
177
+ */
178
+ withCorkedLogging<T>(block: () => Promise<T>): Promise<T>;
175
179
  /**
176
180
  * Notifies the host of a message.
177
181
  * The caller waits until the notification completes.
178
182
  */
179
183
  notify<T>(msg: IoMessage<T>): Promise<void>;
180
184
  /**
181
- * Determines which output stream to use based on log level and configuration.
185
+ * Determines the output stream, based on message level and configuration.
182
186
  */
183
- private stream;
187
+ private selectStream;
184
188
  /**
185
189
  * Notifies the host of a message that requires a response.
186
190
  *
187
191
  * If the host does not return a response the suggested
188
192
  * default response from the input message will be used.
189
193
  */
190
- requestResponse<T, U>(msg: IoRequest<T, U>): Promise<U>;
194
+ requestResponse<DataType, ResponseType>(msg: IoRequest<DataType, ResponseType>): Promise<ResponseType>;
191
195
  /**
192
196
  * Formats a message for console output with optional color support
193
197
  */