@dbx-tools/cli 0.9.153 → 0.9.157

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 (123) hide show
  1. package/bin/dbx-genie.ts +3 -2
  2. package/index.appkit.ts +9 -0
  3. package/index.auth.ts +9 -0
  4. package/index.brand.ts +18 -0
  5. package/index.genie-code.ts +18 -0
  6. package/index.graphiti.ts +7 -0
  7. package/index.lakebase-proxy.ts +18 -0
  8. package/index.model-gateway.ts +9 -0
  9. package/index.ts +5 -61
  10. package/index.tunnel.ts +14 -0
  11. package/lib/bin/dbx-genie.js +4 -3
  12. package/lib/index.appkit.d.ts +5 -0
  13. package/lib/index.appkit.js +8 -0
  14. package/lib/index.auth.d.ts +5 -0
  15. package/lib/index.auth.js +8 -0
  16. package/lib/index.brand.d.ts +14 -0
  17. package/lib/index.brand.js +14 -0
  18. package/lib/index.d.ts +5 -61
  19. package/lib/index.genie-code.d.ts +14 -0
  20. package/lib/index.genie-code.js +14 -0
  21. package/lib/index.graphiti.d.ts +3 -0
  22. package/lib/index.graphiti.js +6 -0
  23. package/lib/index.js +6 -43
  24. package/lib/index.lakebase-proxy.d.ts +14 -0
  25. package/lib/index.lakebase-proxy.js +14 -0
  26. package/lib/index.model-gateway.d.ts +5 -0
  27. package/lib/index.model-gateway.js +8 -0
  28. package/lib/index.tunnel.d.ts +10 -0
  29. package/lib/index.tunnel.js +12 -0
  30. package/lib/src/appkit/cli.d.ts +1 -2
  31. package/lib/src/appkit/cli.js +4 -5
  32. package/lib/src/auth/cli.d.ts +2 -2
  33. package/lib/src/auth/cli.js +2 -3
  34. package/lib/src/auth/options.d.ts +2 -2
  35. package/lib/src/auth/options.js +4 -6
  36. package/lib/src/bootstrap.js +10 -14
  37. package/lib/src/brand/options.js +2 -2
  38. package/lib/src/brand/run.js +6 -8
  39. package/lib/src/brand/showcase.js +5 -5
  40. package/lib/src/bun.js +6 -6
  41. package/lib/src/genie-code/cli.d.ts +2 -2
  42. package/lib/src/genie-code/cli.js +4 -4
  43. package/lib/src/genie-code/config.d.ts +1 -1
  44. package/lib/src/genie-code/config.js +7 -7
  45. package/lib/src/genie-code/install.d.ts +2 -2
  46. package/lib/src/genie-code/install.js +4 -4
  47. package/lib/src/genie-code/runner.d.ts +2 -3
  48. package/lib/src/genie-code/runner.js +13 -11
  49. package/lib/src/genie-code/runtime.d.ts +3 -3
  50. package/lib/src/genie-code/runtime.js +10 -9
  51. package/lib/src/graphiti/cli.d.ts +2 -3
  52. package/lib/src/graphiti/cli.js +7 -8
  53. package/lib/src/lakebase-proxy/cli.d.ts +1 -2
  54. package/lib/src/lakebase-proxy/cli.js +3 -4
  55. package/lib/src/lakebase-proxy/options.js +7 -9
  56. package/lib/src/lakebase-proxy/proxy.js +8 -8
  57. package/lib/src/model-gateway/cli.d.ts +2 -3
  58. package/lib/src/model-gateway/cli.js +3 -4
  59. package/lib/src/model-gateway/server.d.ts +1 -1
  60. package/lib/src/model-gateway/server.js +5 -6
  61. package/lib/src/root.js +3 -3
  62. package/lib/src/tunnel/app.js +7 -9
  63. package/lib/src/tunnel/cli.d.ts +1 -2
  64. package/lib/src/tunnel/cli.js +13 -14
  65. package/lib/src/tunnel/options.d.ts +5 -5
  66. package/lib/src/tunnel/options.js +11 -11
  67. package/lib/src/tunnel/proxy.js +18 -17
  68. package/lib/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +58 -177
  70. package/src/appkit/cli.ts +2 -4
  71. package/src/auth/cli.ts +2 -4
  72. package/src/auth/options.ts +3 -5
  73. package/src/bootstrap.ts +9 -13
  74. package/src/brand/options.ts +1 -1
  75. package/src/brand/run.ts +7 -7
  76. package/src/brand/showcase.ts +4 -4
  77. package/src/bun.ts +6 -6
  78. package/src/genie-code/cli.ts +4 -4
  79. package/src/genie-code/config.ts +6 -6
  80. package/src/genie-code/install.ts +5 -7
  81. package/src/genie-code/runner.ts +12 -11
  82. package/src/genie-code/runtime.ts +10 -10
  83. package/src/graphiti/cli.ts +13 -9
  84. package/src/lakebase-proxy/cli.ts +7 -3
  85. package/src/lakebase-proxy/options.ts +13 -8
  86. package/src/lakebase-proxy/proxy.ts +7 -7
  87. package/src/model-gateway/cli.ts +7 -3
  88. package/src/model-gateway/server.ts +9 -5
  89. package/src/root.ts +2 -2
  90. package/src/tunnel/app.ts +6 -8
  91. package/src/tunnel/cli.ts +21 -15
  92. package/src/tunnel/options.ts +23 -15
  93. package/src/tunnel/proxy.ts +29 -20
  94. package/lib/src/appkit/index.d.ts +0 -5
  95. package/lib/src/appkit/index.js +0 -8
  96. package/lib/src/auth/index.d.ts +0 -5
  97. package/lib/src/auth/index.js +0 -8
  98. package/lib/src/brand/index.d.ts +0 -10
  99. package/lib/src/brand/index.js +0 -10
  100. package/lib/src/genie-code/index.d.ts +0 -12
  101. package/lib/src/genie-code/index.js +0 -12
  102. package/lib/src/genie-code/options.d.ts +0 -7
  103. package/lib/src/genie-code/options.js +0 -7
  104. package/lib/src/graphiti/index.d.ts +0 -5
  105. package/lib/src/graphiti/index.js +0 -7
  106. package/lib/src/graphiti/options.d.ts +0 -117
  107. package/lib/src/graphiti/options.js +0 -26
  108. package/lib/src/lakebase-proxy/index.d.ts +0 -13
  109. package/lib/src/lakebase-proxy/index.js +0 -13
  110. package/lib/src/model-gateway/index.d.ts +0 -3
  111. package/lib/src/model-gateway/index.js +0 -6
  112. package/lib/src/tunnel/index.d.ts +0 -8
  113. package/lib/src/tunnel/index.js +0 -10
  114. package/src/appkit/index.ts +0 -9
  115. package/src/auth/index.ts +0 -9
  116. package/src/brand/index.ts +0 -14
  117. package/src/genie-code/index.ts +0 -16
  118. package/src/genie-code/options.ts +0 -14
  119. package/src/graphiti/index.ts +0 -9
  120. package/src/graphiti/options.ts +0 -40
  121. package/src/lakebase-proxy/index.ts +0 -17
  122. package/src/model-gateway/index.ts +0 -7
  123. package/src/tunnel/index.ts +0 -12
@@ -0,0 +1,12 @@
1
+ // GENERATED by projen watch - DO NOT EDIT.
2
+ // Regenerated from the exporting modules in ./src.
3
+ // Hand edits are overwritten on the next watch; this file is read-only.
4
+ export * as app from "./src/tunnel/app.js";
5
+ export * as cli from "./src/tunnel/cli.js";
6
+ export * as options from "./src/tunnel/options.js";
7
+ export * as proxy from "./src/tunnel/proxy.js";
8
+ export { startGateApp } from "./src/tunnel/app.js";
9
+ export { buildProgram } from "./src/tunnel/cli.js";
10
+ export { TunnelOptionsSchema, resolveTunnelOptions } from "./src/tunnel/options.js";
11
+ export { startProxy } from "./src/tunnel/proxy.js";
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vaW5kZXgudHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQsd0VBQXdFO0FBRXhFLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxLQUFLLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgKiBhcyBhcHAgZnJvbSBcIi4vc3JjL3R1bm5lbC9hcHAudHNcIjtcbmV4cG9ydCAqIGFzIGNsaSBmcm9tIFwiLi9zcmMvdHVubmVsL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgb3B0aW9ucyBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHByb3h5IGZyb20gXCIuL3NyYy90dW5uZWwvcHJveHkudHNcIjtcbmV4cG9ydCB7IHN0YXJ0R2F0ZUFwcCB9IGZyb20gXCIuL3NyYy90dW5uZWwvYXBwLnRzXCI7XG5leHBvcnQgeyBidWlsZFByb2dyYW0gfSBmcm9tIFwiLi9zcmMvdHVubmVsL2NsaS50c1wiO1xuZXhwb3J0IHsgVHVubmVsT3B0aW9uc1NjaGVtYSwgcmVzb2x2ZVR1bm5lbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgVHVubmVsT3B0aW9ucywgUmVzb2x2ZWRUdW5uZWxPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3R1bm5lbC9vcHRpb25zLnRzXCI7XG5leHBvcnQgeyBzdGFydFByb3h5IH0gZnJvbSBcIi4vc3JjL3R1bm5lbC9wcm94eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBQcm94eU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdHVubmVsL3Byb3h5LnRzXCI7XG4iXX0=
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * @module
13
13
  */
14
- import { Command, CommanderError } from "commander";
14
+ import { Command } from "commander";
15
15
  /**
16
16
  * Build the `env` command on its own, so a host CLI can mount it under a
17
17
  * different parent than {@link buildProgram}'s.
@@ -21,4 +21,3 @@ export declare function buildEnvCommand(name?: string): Command;
21
21
  export declare function buildProgram(name?: string): Command;
22
22
  /** Parse `argv` and run the matching command. Throws {@link CommanderError} on flag errors. */
23
23
  export declare function runCli(argv: string[]): Promise<void>;
24
- export { CommanderError };
@@ -11,10 +11,10 @@
11
11
  *
12
12
  * @module
13
13
  */
14
- import { appkit } from "@dbx-tools/appkit";
14
+ import { autoConfigure } from "@dbx-tools/appkit";
15
15
  import { addArgs, parseArgs } from "@dbx-tools/cli-args";
16
16
  import { log } from "@dbx-tools/shared-core";
17
- import { Command, CommanderError } from "commander";
17
+ import { Command } from "commander";
18
18
  import { diffEnv, EnvCommandOptionsSchema, formatEnvExport, snapshotEnv, } from "./env-export.js";
19
19
  const logger = log.logger("appkit-env");
20
20
  /** Run auto-config and write the resulting env delta to stdout. */
@@ -24,7 +24,7 @@ async function writeEnvExport(opts) {
24
24
  }
25
25
  logger.debug("Snapshotting env vars");
26
26
  const before = snapshotEnv();
27
- await appkit.autoConfigure({ autoConfigure: "env" });
27
+ await autoConfigure({ autoConfigure: "env" });
28
28
  const changes = diffEnv(before, snapshotEnv());
29
29
  process.stdout.write(formatEnvExport(changes, opts.format));
30
30
  }
@@ -50,5 +50,4 @@ export function buildProgram(name = "dbx appkit") {
50
50
  export async function runCli(argv) {
51
51
  await buildProgram().parseAsync(argv);
52
52
  }
53
- export { CommanderError };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGtpdC9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBELE9BQU8sRUFDTCxPQUFPLEVBQ1AsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixXQUFXLEdBRVosTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXhDLG1FQUFtRTtBQUNuRSxLQUFLLFVBQVUsY0FBYyxDQUFDLElBQXVCO0lBQ25ELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDN0IsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBSSxHQUFHLEtBQUs7SUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUNyQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsd0RBQXdELENBQUMsRUFDdkYsdUJBQXVCLENBQ3hCLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDL0IsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVk7SUFDOUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtTQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsV0FBVyxDQUFDLHlFQUF5RSxDQUFDO1NBQ3RGLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUM3QixrQkFBa0IsRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsSUFBYztJQUN6QyxNQUFNLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgZGJ4IGFwcGtpdGAgY29tbWFuZGVyIHByb2dyYW0uXG4gKlxuICogYGVudmAgcnVucyBBcHBLaXQgYXV0by1jb25maWcgYW5kIHByaW50cyB0aGUgZW52IHZhcnMgaXQgYWRkZWQgb3IgY2hhbmdlZCBhc1xuICogZXZhbC1hYmxlIGBleHBvcnRgIC8gYHNldGAgbGluZXMgKG9yIEpTT04pIC0gZS5nLiBgZXZhbCBcIiQoZGJ4IGFwcGtpdCBlbnYpXCJgXG4gKiB0byBsb2FkIGEgcmVzb2x2ZWQgTGFrZWJhc2UgY29ubmVjdGlvbiBpbnRvIHlvdXIgc2hlbGwuXG4gKlxuICogVGhpcyBwYWNrYWdlIHNoaXBzIG5vIGJpbiBvZiBpdHMgb3duOiB7QGxpbmsgYnVpbGRQcm9ncmFtfSBpcyBtb3VudGVkIGFzIHRoZVxuICogYGFwcGtpdGAgc3ViY29tbWFuZCBvZiB0aGUgc2luZ2xlIGBkYnhgIENMSSAoYEBkYngtdG9vbHMvY2xpYCksIHdoaWNoIGltcG9ydHNcbiAqIHRoaXMgbW9kdWxlIGxhemlseSBzbyBgZGJ4IGRldmAgbmV2ZXIgcGF5cyBmb3IgdGhlIEFwcEtpdCBsb2FkLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBhcHBraXQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZGVyRXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIGRpZmZFbnYsXG4gIEVudkNvbW1hbmRPcHRpb25zU2NoZW1hLFxuICBmb3JtYXRFbnZFeHBvcnQsXG4gIHNuYXBzaG90RW52LFxuICB0eXBlIEVudkNvbW1hbmRPcHRpb25zLFxufSBmcm9tIFwiLi9lbnYtZXhwb3J0LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJhcHBraXQtZW52XCIpO1xuXG4vKiogUnVuIGF1dG8tY29uZmlnIGFuZCB3cml0ZSB0aGUgcmVzdWx0aW5nIGVudiBkZWx0YSB0byBzdGRvdXQuICovXG5hc3luYyBmdW5jdGlvbiB3cml0ZUVudkV4cG9ydChvcHRzOiBFbnZDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAob3B0cy5xdWlldCkge1xuICAgIHByb2Nlc3MuZW52LkxPR19MRVZFTCA9IFwiZXJyb3JcIjtcbiAgfVxuXG4gIGxvZ2dlci5kZWJ1ZyhcIlNuYXBzaG90dGluZyBlbnYgdmFyc1wiKTtcbiAgY29uc3QgYmVmb3JlID0gc25hcHNob3RFbnYoKTtcbiAgYXdhaXQgYXBwa2l0LmF1dG9Db25maWd1cmUoeyBhdXRvQ29uZmlndXJlOiBcImVudlwiIH0pO1xuICBjb25zdCBjaGFuZ2VzID0gZGlmZkVudihiZWZvcmUsIHNuYXBzaG90RW52KCkpO1xuXG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGZvcm1hdEVudkV4cG9ydChjaGFuZ2VzLCBvcHRzLmZvcm1hdCkpO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBgZW52YCBjb21tYW5kIG9uIGl0cyBvd24sIHNvIGEgaG9zdCBDTEkgY2FuIG1vdW50IGl0IHVuZGVyIGFcbiAqIGRpZmZlcmVudCBwYXJlbnQgdGhhbiB7QGxpbmsgYnVpbGRQcm9ncmFtfSdzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFbnZDb21tYW5kKG5hbWUgPSBcImVudlwiKTogQ29tbWFuZCB7XG4gIGNvbnN0IGNvbW1hbmQgPSBhZGRBcmdzKFxuICAgIG5ldyBDb21tYW5kKG5hbWUpLmRlc2NyaXB0aW9uKFwiUnVuIEFwcEtpdCBhdXRvLWNvbmZpZyBhbmQgcHJpbnQgbmV3L2NoYW5nZWQgZW52IHZhcnMuXCIpLFxuICAgIEVudkNvbW1hbmRPcHRpb25zU2NoZW1hLFxuICApO1xuICByZXR1cm4gY29tbWFuZC5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHdyaXRlRW52RXhwb3J0KHBhcnNlQXJncyhjb21tYW5kLCBFbnZDb21tYW5kT3B0aW9uc1NjaGVtYSkpO1xuICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4IGFwcGtpdGAgY29tbWFuZGVyIHByb2dyYW0gKG5vIHNpZGUgZWZmZWN0cyB1bnRpbCBwYXJzZWQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvZ3JhbShuYW1lID0gXCJkYnggYXBwa2l0XCIpOiBDb21tYW5kIHtcbiAgcmV0dXJuIG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcIkFwcEtpdCBoZWxwZXJzOiByZXNvbHZlIHRoZSBlbnZpcm9ubWVudCBhbiBBcHBLaXQgYXBwIHdvdWxkIHN0YXJ0IHdpdGguXCIpXG4gICAgLmFkZENvbW1hbmQoYnVpbGRFbnZDb21tYW5kKCkpXG4gICAgLnNob3dIZWxwQWZ0ZXJFcnJvcigpO1xufVxuXG4vKiogUGFyc2UgYGFyZ3ZgIGFuZCBydW4gdGhlIG1hdGNoaW5nIGNvbW1hbmQuIFRocm93cyB7QGxpbmsgQ29tbWFuZGVyRXJyb3J9IG9uIGZsYWcgZXJyb3JzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNsaShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBidWlsZFByb2dyYW0oKS5wYXJzZUFzeW5jKGFyZ3YpO1xufVxuXG5leHBvcnQgeyBDb21tYW5kZXJFcnJvciB9O1xuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGtpdC9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0sV0FBVyxDQUFDO0FBRXBELE9BQU8sRUFDTCxPQUFPLEVBQ1AsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixXQUFXLEdBRVosTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXhDLG1FQUFtRTtBQUNuRSxLQUFLLFVBQVUsY0FBYyxDQUFDLElBQXVCO0lBQ25ELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDN0IsTUFBTSxhQUFhLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFL0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFJLEdBQUcsS0FBSztJQUMxQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyx3REFBd0QsQ0FBQyxFQUN2Rix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUMvQixNQUFNLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFJLEdBQUcsWUFBWTtJQUM5QyxPQUFPLElBQUksT0FBTyxFQUFFO1NBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixXQUFXLENBQUMseUVBQXlFLENBQUM7U0FDdEYsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzdCLGtCQUFrQixFQUFFLENBQUM7QUFDMUIsQ0FBQztBQUVELCtGQUErRjtBQUMvRixNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ3pDLE1BQU0sWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBkYnggYXBwa2l0YCBjb21tYW5kZXIgcHJvZ3JhbS5cbiAqXG4gKiBgZW52YCBydW5zIEFwcEtpdCBhdXRvLWNvbmZpZyBhbmQgcHJpbnRzIHRoZSBlbnYgdmFycyBpdCBhZGRlZCBvciBjaGFuZ2VkIGFzXG4gKiBldmFsLWFibGUgYGV4cG9ydGAgLyBgc2V0YCBsaW5lcyAob3IgSlNPTikgLSBlLmcuIGBldmFsIFwiJChkYnggYXBwa2l0IGVudilcImBcbiAqIHRvIGxvYWQgYSByZXNvbHZlZCBMYWtlYmFzZSBjb25uZWN0aW9uIGludG8geW91ciBzaGVsbC5cbiAqXG4gKiBUaGlzIHBhY2thZ2Ugc2hpcHMgbm8gYmluIG9mIGl0cyBvd246IHtAbGluayBidWlsZFByb2dyYW19IGlzIG1vdW50ZWQgYXMgdGhlXG4gKiBgYXBwa2l0YCBzdWJjb21tYW5kIG9mIHRoZSBzaW5nbGUgYGRieGAgQ0xJIChgQGRieC10b29scy9jbGlgKSwgd2hpY2ggaW1wb3J0c1xuICogdGhpcyBtb2R1bGUgbGF6aWx5IHNvIGBkYnggZGV2YCBuZXZlciBwYXlzIGZvciB0aGUgQXBwS2l0IGxvYWQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGF1dG9Db25maWd1cmUgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZGVyRXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIGRpZmZFbnYsXG4gIEVudkNvbW1hbmRPcHRpb25zU2NoZW1hLFxuICBmb3JtYXRFbnZFeHBvcnQsXG4gIHNuYXBzaG90RW52LFxuICB0eXBlIEVudkNvbW1hbmRPcHRpb25zLFxufSBmcm9tIFwiLi9lbnYtZXhwb3J0LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJhcHBraXQtZW52XCIpO1xuXG4vKiogUnVuIGF1dG8tY29uZmlnIGFuZCB3cml0ZSB0aGUgcmVzdWx0aW5nIGVudiBkZWx0YSB0byBzdGRvdXQuICovXG5hc3luYyBmdW5jdGlvbiB3cml0ZUVudkV4cG9ydChvcHRzOiBFbnZDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAob3B0cy5xdWlldCkge1xuICAgIHByb2Nlc3MuZW52LkxPR19MRVZFTCA9IFwiZXJyb3JcIjtcbiAgfVxuXG4gIGxvZ2dlci5kZWJ1ZyhcIlNuYXBzaG90dGluZyBlbnYgdmFyc1wiKTtcbiAgY29uc3QgYmVmb3JlID0gc25hcHNob3RFbnYoKTtcbiAgYXdhaXQgYXV0b0NvbmZpZ3VyZSh7IGF1dG9Db25maWd1cmU6IFwiZW52XCIgfSk7XG4gIGNvbnN0IGNoYW5nZXMgPSBkaWZmRW52KGJlZm9yZSwgc25hcHNob3RFbnYoKSk7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZm9ybWF0RW52RXhwb3J0KGNoYW5nZXMsIG9wdHMuZm9ybWF0KSk7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIGBlbnZgIGNvbW1hbmQgb24gaXRzIG93biwgc28gYSBob3N0IENMSSBjYW4gbW91bnQgaXQgdW5kZXIgYVxuICogZGlmZmVyZW50IHBhcmVudCB0aGFuIHtAbGluayBidWlsZFByb2dyYW19J3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVudkNvbW1hbmQobmFtZSA9IFwiZW52XCIpOiBDb21tYW5kIHtcbiAgY29uc3QgY29tbWFuZCA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQobmFtZSkuZGVzY3JpcHRpb24oXCJSdW4gQXBwS2l0IGF1dG8tY29uZmlnIGFuZCBwcmludCBuZXcvY2hhbmdlZCBlbnYgdmFycy5cIiksXG4gICAgRW52Q29tbWFuZE9wdGlvbnNTY2hlbWEsXG4gICk7XG4gIHJldHVybiBjb21tYW5kLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgd3JpdGVFbnZFeHBvcnQocGFyc2VBcmdzKGNvbW1hbmQsIEVudkNvbW1hbmRPcHRpb25zU2NoZW1hKSk7XG4gIH0pO1xufVxuXG4vKiogQnVpbGQgdGhlIGBkYnggYXBwa2l0YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWUgPSBcImRieCBhcHBraXRcIik6IENvbW1hbmQge1xuICByZXR1cm4gbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKG5hbWUpXG4gICAgLmRlc2NyaXB0aW9uKFwiQXBwS2l0IGhlbHBlcnM6IHJlc29sdmUgdGhlIGVudmlyb25tZW50IGFuIEFwcEtpdCBhcHAgd291bGQgc3RhcnQgd2l0aC5cIilcbiAgICAuYWRkQ29tbWFuZChidWlsZEVudkNvbW1hbmQoKSlcbiAgICAuc2hvd0hlbHBBZnRlckVycm9yKCk7XG59XG5cbi8qKiBQYXJzZSBgYXJndmAgYW5kIHJ1biB0aGUgbWF0Y2hpbmcgY29tbWFuZC4gVGhyb3dzIHtAbGluayBDb21tYW5kZXJFcnJvcn0gb24gZmxhZyBlcnJvcnMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ2xpKGFyZ3Y6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGJ1aWxkUHJvZ3JhbSgpLnBhcnNlQXN5bmMoYXJndik7XG59XG4iXX0=
@@ -7,7 +7,7 @@
7
7
  * @module
8
8
  */
9
9
  import * as databricks from "@dbx-tools/auth";
10
- import { Command, CommanderError } from "commander";
10
+ import { Command } from "commander";
11
11
  interface AuthCliDependencies {
12
12
  createAuthClient: typeof databricks.client.createAuthClient;
13
13
  writeJson(value: unknown): void;
@@ -17,4 +17,4 @@ interface AuthCliDependencies {
17
17
  export declare function buildProgram(name?: string, overrides?: Partial<AuthCliDependencies>): Command;
18
18
  /** Parse `argv` and run the selected auth operation. */
19
19
  export declare function runCli(argv: string[]): Promise<void>;
20
- export { CommanderError };
20
+ export {};
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import * as databricks from "@dbx-tools/auth";
10
10
  import { addArgs, parseArgs } from "@dbx-tools/cli-args";
11
- import { Command, CommanderError } from "commander";
11
+ import { Command } from "commander";
12
12
  import { AuthCliOptionsSchema, databricksAuthOptions, TokenCommandOptionsSchema, } from "./options.js";
13
13
  const DEFAULT_DEPENDENCIES = {
14
14
  createAuthClient: databricks.client.createAuthClient,
@@ -125,5 +125,4 @@ export function buildProgram(name = "dbx auth", overrides = {}) {
125
125
  export async function runCli(argv) {
126
126
  await buildProgram().parseAsync(argv);
127
127
  }
128
- export { CommanderError };
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEtBQUssVUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIseUJBQXlCLEdBRTFCLE1BQU0sY0FBYyxDQUFDO0FBYXRCLE1BQU0sb0JBQW9CLEdBQXdCO0lBQ2hELGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO0lBQ3BELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRixDQUFDO0FBRUYsK0NBQStDO0FBQy9DLEtBQUssVUFBVSxRQUFRLENBQ3JCLE9BQXVCLEVBQ3ZCLFlBQWlDO0lBRWpDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekUsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELHVFQUF1RTtBQUN2RSxLQUFLLFVBQVUs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QixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLElBQWM7SUFDekMsTUFBTSxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYGRieCBhdXRoYCBDb21tYW5kZXIgcHJvZ3JhbSBmb3IgRGF0YWJyaWNrcyBPQXV0aC5cbiAqXG4gKiBUaGUgY29tbWFuZCBkZWxlZ2F0ZXMgcHJvZmlsZSByZXNvbHV0aW9uIGFuZCB0b2tlbiBsaWZlY3ljbGUgdG9cbiAqIGBAZGJ4LXRvb2xzL2F1dGhgLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgKiBhcyBkYXRhYnJpY2tzIGZyb20gXCJAZGJ4LXRvb2xzL2F1dGhcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFicmlja3NBdXRoQ2xpZW50SW5mbyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1hdXRoL2NsaWVudFwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZGVyRXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIEF1dGhDbGlPcHRpb25zU2NoZW1hLFxuICBkYXRhYnJpY2tzQXV0aE9wdGlvbnMsXG4gIFRva2VuQ29tbWFuZE9wdGlvbnNTY2hlbWEsXG4gIHR5cGUgQXV0aENsaU9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnMudHNcIjtcblxuaW50ZXJmYWNlIEF1dGhDb250ZXh0IHtcbiAgYXV0aDogZGF0YWJyaWNrcy5BdXRoQ2xpZW50O1xuICBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5pbnRlcmZhY2UgQXV0aENsaURlcGVuZGVuY2llcyB7XG4gIGNyZWF0ZUF1dGhDbGllbnQ6IHR5cGVvZiBkYXRhYnJpY2tzLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50O1xuICB3cml0ZUpzb24odmFsdWU6IHVua25vd24pOiB2b2lkO1xuICB3cml0ZVRleHQodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBBdXRoQ2xpRGVwZW5kZW5jaWVzID0ge1xuICBjcmVhdGVBdXRoQ2xpZW50OiBkYXRhYnJpY2tzLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50LFxuICB3cml0ZUpzb246ICh2YWx1ZSkgPT4ge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke0pTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKX1cXG5gKTtcbiAgfSxcbiAgd3JpdGVUZXh0OiAodmFsdWUpID0+IHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHt2YWx1ZX1cXG5gKTtcbiAgfSxcbn07XG5cbi8qKiBPcGVuIHRoZSBzZWxlY3RlZCBhdXRoZW50aWNhdGlvbiBjbGllbnQuICovXG5hc3luYyBmdW5jdGlvbiBvcGVuQXV0aChcbiAgb3B0aW9uczogQXV0aENsaU9wdGlvbnMsXG4gIGRlcGVuZGVuY2llczogQXV0aENsaURlcGVuZGVuY2llcyxcbik6IFByb21pc2U8QXV0aENvbnRleHQ+IHtcbiAgcmV0dXJuIHtcbiAgICBhdXRoOiBhd2FpdCBkZXBlbmRlbmNpZXMuY3JlYXRlQXV0aENsaWVudChkYXRhYnJpY2tzQXV0aE9wdGlvbnMob3B0aW9ucykpLFxuICAgIGNsb3NlOiBhc3luYyAoKSA9PiB7fSxcbiAgfTtcbn1cblxuLyoqIEV4ZWN1dGUgYW4gYXV0aCBhY3Rpb24gYW5kIGNsb3NlIHJlc291cmNlcyBvd25lZCBieSB0aGUgY29tbWFuZC4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdpdGhBdXRoKFxuICBvcHRpb25zOiBBdXRoQ2xpT3B0aW9ucyxcbiAgZGVwZW5kZW5jaWVzOiBBdXRoQ2xpRGVwZW5kZW5jaWVzLFxuICBhY3Rpb246IChjb250ZXh0OiBBdXRoQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb250ZXh0ID0gYXdhaXQgb3BlbkF1dGgob3B0aW9ucywgZGVwZW5kZW5jaWVzKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhY3Rpb24oY29udGV4dCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgY29udGV4dC5jbG9zZSgpO1xuICB9XG59XG5cbi8qKiBTaGFwZSBhIGdlbmVyYXRlZCB0b2tlbiByZWNvcmQgZm9yIHN0YWJsZSBDTEkgSlNPTiBvdXRwdXQuICovXG5mdW5jdGlvbiB0b2tlbkpzb24odG9rZW46IGRhdGFicmlja3MuQWNjZXNzVG9rZW4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiB7XG4gICAgYWNjZXNzX3Rva2VuOiB0b2tlbi5hY2Nlc3NUb2tlbixcbiAgICB0b2tlbl90eXBlOiB0b2tlbi50b2tlblR5cGUsXG4gICAgLi4uKHRva2VuLmV4cGlyeSA/IHsgZXhwaXJ5OiB0b2tlbi5leHBpcnkgfSA6IHt9KSxcbiAgICAuLi4odG9rZW4uc2NvcGVzLmxlbmd0aCA/IHsgc2NvcGVzOiB0b2tlbi5zY29wZXMgfSA6IHt9KSxcbiAgfTtcbn1cblxuLyoqIFNlbGVjdCB0aGUgc2VyaWFsaXphYmxlIGlkZW50aXR5IGZpZWxkcyBmcm9tIGFuIGF1dGhlbnRpY2F0aW9uIGNsaWVudC4gKi9cbmZ1bmN0aW9uIGNsaWVudEluZm8oYXV0aDogZGF0YWJyaWNrcy5BdXRoQ2xpZW50KTogRGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICAuLi4oYXV0aC5wcm9maWxlID8geyBwcm9maWxlOiBhdXRoLnByb2ZpbGUgfSA6IHt9KSxcbiAgICBob3N0OiBhdXRoLmhvc3QsXG4gICAgLi4uKGF1dGguYWNjb3VudElkID8geyBhY2NvdW50SWQ6IGF1dGguYWNjb3VudElkIH0gOiB7fSksXG4gICAgLi4uKGF1dGgud29ya3NwYWNlSWQgPyB7IHdvcmtzcGFjZUlkOiBhdXRoLndvcmtzcGFjZUlkIH0gOiB7fSksXG4gICAgdGFyZ2V0OiBhdXRoLnRhcmdldCxcbiAgICBhdXRoVHlwZTogYXV0aC5hdXRoVHlwZSxcbiAgICBwcmluY2lwYWw6IGF1dGgucHJpbmNpcGFsLFxuICB9O1xufVxuXG4vKiogQnVpbGQgdGhlIGBkYnggYXV0aGAgQ29tbWFuZGVyIHByb2dyYW0gd2l0aG91dCBwYXJzaW5nIGFyZ3VtZW50cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBhdXRoXCIsXG4gIG92ZXJyaWRlczogUGFydGlhbDxBdXRoQ2xpRGVwZW5kZW5jaWVzPiA9IHt9LFxuKTogQ29tbWFuZCB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLm92ZXJyaWRlcyB9O1xuICBjb25zdCBwcm9ncmFtID0gYWRkQXJncyhcbiAgICBuZXcgQ29tbWFuZCgpXG4gICAgICAubmFtZShuYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKFwiQXV0aGVudGljYXRlIHRvIERhdGFicmlja3Mgd2l0aCB1c2VyIG9yIG1hY2hpbmUgT0F1dGhcIilcbiAgICAgIC5zaG93SGVscEFmdGVyRXJyb3IoKSxcbiAgICBBdXRoQ2xpT3B0aW9uc1NjaGVtYSxcbiAgKTtcbiAgY29uc3Qgb3B0aW9ucyA9ICgpOiBBdXRoQ2xpT3B0aW9ucyA9PiBwYXJzZUFyZ3MocHJvZ3JhbSwgQXV0aENsaU9wdGlvbnNTY2hlbWEpO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImxvZ2luXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiRm9yY2UgYnJvd3NlciBsb2dpbiBhbmQgcmV0dXJuIGFuIGFjY2VzcyB0b2tlblwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgICBkZXBlbmRlbmNpZXMud3JpdGVKc29uKHRva2VuSnNvbihhd2FpdCBhdXRoLnRva2VuKHsgbG9naW46IHRydWUgfSkpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIGNvbnN0IHRva2VuQ29tbWFuZCA9IGFkZEFyZ3MoXG4gICAgcHJvZ3JhbS5jb21tYW5kKFwidG9rZW5cIikuZGVzY3JpcHRpb24oXCJSZXR1cm4gYSB2YWxpZCBhY2Nlc3MgdG9rZW4sIGxvZ2dpbmcgaW4gd2hlbiBuZWVkZWRcIiksXG4gICAgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSxcbiAgKTtcbiAgdG9rZW5Db21tYW5kLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdG9rZW5PcHRpb25zID0gcGFyc2VBcmdzKHRva2VuQ29tbWFuZCwgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSk7XG4gICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBhdXRoLnRva2VuKHtcbiAgICAgICAgLi4uKHRva2VuT3B0aW9ucy5sb2dpbiA/IHt9IDogeyBsb2dpbjogZmFsc2UgfSksXG4gICAgICAgIC4uLih0b2tlbk9wdGlvbnMuZm9yY2VSZWZyZXNoID8geyByZWZyZXNoOiB0cnVlIH0gOiB7fSksXG4gICAgICB9KTtcbiAgICAgIGlmICh0b2tlbk9wdGlvbnMuZm9ybWF0ID09PSBcInRleHRcIikgZGVwZW5kZW5jaWVzLndyaXRlVGV4dCh0b2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICBlbHNlIGRlcGVuZGVuY2llcy53cml0ZUpzb24odG9rZW5Kc29uKHRva2VuKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImhlYWRlcnNcIilcbiAgICAuZGVzY3JpcHRpb24oXCJSZXR1cm4gY3VycmVudCBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIGhlYWRlcnNcIilcbiAgICAuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHdpdGhBdXRoKG9wdGlvbnMoKSwgZGVwZW5kZW5jaWVzLCBhc3luYyAoeyBhdXRoIH0pID0+IHtcbiAgICAgICAgZGVwZW5kZW5jaWVzLndyaXRlSnNvbihhd2FpdCBhdXRoLmhlYWRlcnMoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJwcm9maWxlXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiUHJpbnQgdGhlIGNvbmZpZ3VyZWQgb3IgYXV0b21hdGljYWxseSBkZXRlY3RlZCBwcm9maWxlXCIpXG4gICAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB3aXRoQXV0aChvcHRpb25zKCksIGRlcGVuZGVuY2llcywgYXN5bmMgKHsgYXV0aCB9KSA9PiB7XG4gICAgICAgIGRlcGVuZGVuY2llcy53cml0ZVRleHQoYXV0aC5wcm9maWxlID8/IFwiYW1iaWVudFwiKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImxvZ291dFwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkRlbGV0ZSB0aGUgc3RvcmVkIGNyZWRlbnRpYWwgZm9yIHRoZSBzZWxlY3RlZCBwcm9maWxlXCIpXG4gICAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB3aXRoQXV0aChvcHRpb25zKCksIGRlcGVuZGVuY2llcywgYXN5bmMgKHsgYXV0aCB9KSA9PiB7XG4gICAgICAgIGF3YWl0IGF1dGgubG9nb3V0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJzdGF0dXNcIilcbiAgICAuZGVzY3JpcHRpb24oXCJTaG93IHRoZSByZXNvbHZlZCBhdXRoZW50aWNhdGlvbiBjbGllbnQgY29uZmlndXJhdGlvblwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgICBkZXBlbmRlbmNpZXMud3JpdGVKc29uKGNsaWVudEluZm8oYXV0aCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbi8qKiBQYXJzZSBgYXJndmAgYW5kIHJ1biB0aGUgc2VsZWN0ZWQgYXV0aCBvcGVyYXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ2xpKGFyZ3Y6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGJ1aWxkUHJvZ3JhbSgpLnBhcnNlQXN5bmMoYXJndik7XG59XG5cbmV4cG9ydCB7IENvbW1hbmRlckVycm9yIH07XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEtBQUssVUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQix5QkFBeUIsR0FFMUIsTUFBTSxjQUFjLENBQUM7QUFhdEIsTUFBTSxvQkFBb0IsR0FBd0I7SUFDaEQsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7SUFDcEQsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGLENBQUM7QUFFRiwrQ0FBK0M7QUFDL0MsS0FBSyxVQUFVLFFBQVEsQ0FDckIsT0FBdUIsRUFDdkIsWUFBaUM7SUFFakMsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRSxDQUFDO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsdUVBQXVFO0FBQ3ZFLEtBQUssVUFBVSxRQUFRLENBQ3JC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RCx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsSUFBYztJQUN6QyxNQUFNLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgZGJ4IGF1dGhgIENvbW1hbmRlciBwcm9ncmFtIGZvciBEYXRhYnJpY2tzIE9BdXRoLlxuICpcbiAqIFRoZSBjb21tYW5kIGRlbGVnYXRlcyBwcm9maWxlIHJlc29sdXRpb24gYW5kIHRva2VuIGxpZmVjeWNsZSB0b1xuICogYEBkYngtdG9vbHMvYXV0aGAuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCAqIGFzIGRhdGFicmlja3MgZnJvbSBcIkBkYngtdG9vbHMvYXV0aFwiO1xuaW1wb3J0IHsgYWRkQXJncywgcGFyc2VBcmdzIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLWFyZ3NcIjtcbmltcG9ydCB0eXBlIHsgRGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWF1dGhcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIEF1dGhDbGlPcHRpb25zU2NoZW1hLFxuICBkYXRhYnJpY2tzQXV0aE9wdGlvbnMsXG4gIFRva2VuQ29tbWFuZE9wdGlvbnNTY2hlbWEsXG4gIHR5cGUgQXV0aENsaU9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnMudHNcIjtcblxuaW50ZXJmYWNlIEF1dGhDb250ZXh0IHtcbiAgYXV0aDogZGF0YWJyaWNrcy5BdXRoQ2xpZW50O1xuICBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5pbnRlcmZhY2UgQXV0aENsaURlcGVuZGVuY2llcyB7XG4gIGNyZWF0ZUF1dGhDbGllbnQ6IHR5cGVvZiBkYXRhYnJpY2tzLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50O1xuICB3cml0ZUpzb24odmFsdWU6IHVua25vd24pOiB2b2lkO1xuICB3cml0ZVRleHQodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBBdXRoQ2xpRGVwZW5kZW5jaWVzID0ge1xuICBjcmVhdGVBdXRoQ2xpZW50OiBkYXRhYnJpY2tzLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50LFxuICB3cml0ZUpzb246ICh2YWx1ZSkgPT4ge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke0pTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKX1cXG5gKTtcbiAgfSxcbiAgd3JpdGVUZXh0OiAodmFsdWUpID0+IHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHt2YWx1ZX1cXG5gKTtcbiAgfSxcbn07XG5cbi8qKiBPcGVuIHRoZSBzZWxlY3RlZCBhdXRoZW50aWNhdGlvbiBjbGllbnQuICovXG5hc3luYyBmdW5jdGlvbiBvcGVuQXV0aChcbiAgb3B0aW9uczogQXV0aENsaU9wdGlvbnMsXG4gIGRlcGVuZGVuY2llczogQXV0aENsaURlcGVuZGVuY2llcyxcbik6IFByb21pc2U8QXV0aENvbnRleHQ+IHtcbiAgcmV0dXJuIHtcbiAgICBhdXRoOiBhd2FpdCBkZXBlbmRlbmNpZXMuY3JlYXRlQXV0aENsaWVudChkYXRhYnJpY2tzQXV0aE9wdGlvbnMob3B0aW9ucykpLFxuICAgIGNsb3NlOiBhc3luYyAoKSA9PiB7fSxcbiAgfTtcbn1cblxuLyoqIEV4ZWN1dGUgYW4gYXV0aCBhY3Rpb24gYW5kIGNsb3NlIHJlc291cmNlcyBvd25lZCBieSB0aGUgY29tbWFuZC4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdpdGhBdXRoKFxuICBvcHRpb25zOiBBdXRoQ2xpT3B0aW9ucyxcbiAgZGVwZW5kZW5jaWVzOiBBdXRoQ2xpRGVwZW5kZW5jaWVzLFxuICBhY3Rpb246IChjb250ZXh0OiBBdXRoQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb250ZXh0ID0gYXdhaXQgb3BlbkF1dGgob3B0aW9ucywgZGVwZW5kZW5jaWVzKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhY3Rpb24oY29udGV4dCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgY29udGV4dC5jbG9zZSgpO1xuICB9XG59XG5cbi8qKiBTaGFwZSBhIGdlbmVyYXRlZCB0b2tlbiByZWNvcmQgZm9yIHN0YWJsZSBDTEkgSlNPTiBvdXRwdXQuICovXG5mdW5jdGlvbiB0b2tlbkpzb24odG9rZW46IGRhdGFicmlja3MuQWNjZXNzVG9rZW4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiB7XG4gICAgYWNjZXNzX3Rva2VuOiB0b2tlbi5hY2Nlc3NUb2tlbixcbiAgICB0b2tlbl90eXBlOiB0b2tlbi50b2tlblR5cGUsXG4gICAgLi4uKHRva2VuLmV4cGlyeSA/IHsgZXhwaXJ5OiB0b2tlbi5leHBpcnkgfSA6IHt9KSxcbiAgICAuLi4odG9rZW4uc2NvcGVzLmxlbmd0aCA/IHsgc2NvcGVzOiB0b2tlbi5zY29wZXMgfSA6IHt9KSxcbiAgfTtcbn1cblxuLyoqIFNlbGVjdCB0aGUgc2VyaWFsaXphYmxlIGlkZW50aXR5IGZpZWxkcyBmcm9tIGFuIGF1dGhlbnRpY2F0aW9uIGNsaWVudC4gKi9cbmZ1bmN0aW9uIGNsaWVudEluZm8oYXV0aDogZGF0YWJyaWNrcy5BdXRoQ2xpZW50KTogRGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICAuLi4oYXV0aC5wcm9maWxlID8geyBwcm9maWxlOiBhdXRoLnByb2ZpbGUgfSA6IHt9KSxcbiAgICBob3N0OiBhdXRoLmhvc3QsXG4gICAgLi4uKGF1dGguYWNjb3VudElkID8geyBhY2NvdW50SWQ6IGF1dGguYWNjb3VudElkIH0gOiB7fSksXG4gICAgLi4uKGF1dGgud29ya3NwYWNlSWQgPyB7IHdvcmtzcGFjZUlkOiBhdXRoLndvcmtzcGFjZUlkIH0gOiB7fSksXG4gICAgdGFyZ2V0OiBhdXRoLnRhcmdldCxcbiAgICBhdXRoVHlwZTogYXV0aC5hdXRoVHlwZSxcbiAgICBwcmluY2lwYWw6IGF1dGgucHJpbmNpcGFsLFxuICB9O1xufVxuXG4vKiogQnVpbGQgdGhlIGBkYnggYXV0aGAgQ29tbWFuZGVyIHByb2dyYW0gd2l0aG91dCBwYXJzaW5nIGFyZ3VtZW50cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBhdXRoXCIsXG4gIG92ZXJyaWRlczogUGFydGlhbDxBdXRoQ2xpRGVwZW5kZW5jaWVzPiA9IHt9LFxuKTogQ29tbWFuZCB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLm92ZXJyaWRlcyB9O1xuICBjb25zdCBwcm9ncmFtID0gYWRkQXJncyhcbiAgICBuZXcgQ29tbWFuZCgpXG4gICAgICAubmFtZShuYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKFwiQXV0aGVudGljYXRlIHRvIERhdGFicmlja3Mgd2l0aCB1c2VyIG9yIG1hY2hpbmUgT0F1dGhcIilcbiAgICAgIC5zaG93SGVscEFmdGVyRXJyb3IoKSxcbiAgICBBdXRoQ2xpT3B0aW9uc1NjaGVtYSxcbiAgKTtcbiAgY29uc3Qgb3B0aW9ucyA9ICgpOiBBdXRoQ2xpT3B0aW9ucyA9PiBwYXJzZUFyZ3MocHJvZ3JhbSwgQXV0aENsaU9wdGlvbnNTY2hlbWEpO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImxvZ2luXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiRm9yY2UgYnJvd3NlciBsb2dpbiBhbmQgcmV0dXJuIGFuIGFjY2VzcyB0b2tlblwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgICBkZXBlbmRlbmNpZXMud3JpdGVKc29uKHRva2VuSnNvbihhd2FpdCBhdXRoLnRva2VuKHsgbG9naW46IHRydWUgfSkpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIGNvbnN0IHRva2VuQ29tbWFuZCA9IGFkZEFyZ3MoXG4gICAgcHJvZ3JhbS5jb21tYW5kKFwidG9rZW5cIikuZGVzY3JpcHRpb24oXCJSZXR1cm4gYSB2YWxpZCBhY2Nlc3MgdG9rZW4sIGxvZ2dpbmcgaW4gd2hlbiBuZWVkZWRcIiksXG4gICAgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSxcbiAgKTtcbiAgdG9rZW5Db21tYW5kLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdG9rZW5PcHRpb25zID0gcGFyc2VBcmdzKHRva2VuQ29tbWFuZCwgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSk7XG4gICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBhdXRoLnRva2VuKHtcbiAgICAgICAgLi4uKHRva2VuT3B0aW9ucy5sb2dpbiA/IHt9IDogeyBsb2dpbjogZmFsc2UgfSksXG4gICAgICAgIC4uLih0b2tlbk9wdGlvbnMuZm9yY2VSZWZyZXNoID8geyByZWZyZXNoOiB0cnVlIH0gOiB7fSksXG4gICAgICB9KTtcbiAgICAgIGlmICh0b2tlbk9wdGlvbnMuZm9ybWF0ID09PSBcInRleHRcIikgZGVwZW5kZW5jaWVzLndyaXRlVGV4dCh0b2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICBlbHNlIGRlcGVuZGVuY2llcy53cml0ZUpzb24odG9rZW5Kc29uKHRva2VuKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImhlYWRlcnNcIilcbiAgICAuZGVzY3JpcHRpb24oXCJSZXR1cm4gY3VycmVudCBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIGhlYWRlcnNcIilcbiAgICAuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHdpdGhBdXRoKG9wdGlvbnMoKSwgZGVwZW5kZW5jaWVzLCBhc3luYyAoeyBhdXRoIH0pID0+IHtcbiAgICAgICAgZGVwZW5kZW5jaWVzLndyaXRlSnNvbihhd2FpdCBhdXRoLmhlYWRlcnMoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJwcm9maWxlXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiUHJpbnQgdGhlIGNvbmZpZ3VyZWQgb3IgYXV0b21hdGljYWxseSBkZXRlY3RlZCBwcm9maWxlXCIpXG4gICAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB3aXRoQXV0aChvcHRpb25zKCksIGRlcGVuZGVuY2llcywgYXN5bmMgKHsgYXV0aCB9KSA9PiB7XG4gICAgICAgIGRlcGVuZGVuY2llcy53cml0ZVRleHQoYXV0aC5wcm9maWxlID8/IFwiYW1iaWVudFwiKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImxvZ291dFwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkRlbGV0ZSB0aGUgc3RvcmVkIGNyZWRlbnRpYWwgZm9yIHRoZSBzZWxlY3RlZCBwcm9maWxlXCIpXG4gICAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB3aXRoQXV0aChvcHRpb25zKCksIGRlcGVuZGVuY2llcywgYXN5bmMgKHsgYXV0aCB9KSA9PiB7XG4gICAgICAgIGF3YWl0IGF1dGgubG9nb3V0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJzdGF0dXNcIilcbiAgICAuZGVzY3JpcHRpb24oXCJTaG93IHRoZSByZXNvbHZlZCBhdXRoZW50aWNhdGlvbiBjbGllbnQgY29uZmlndXJhdGlvblwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2l0aEF1dGgob3B0aW9ucygpLCBkZXBlbmRlbmNpZXMsIGFzeW5jICh7IGF1dGggfSkgPT4ge1xuICAgICAgICBkZXBlbmRlbmNpZXMud3JpdGVKc29uKGNsaWVudEluZm8oYXV0aCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbi8qKiBQYXJzZSBgYXJndmAgYW5kIHJ1biB0aGUgc2VsZWN0ZWQgYXV0aCBvcGVyYXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ2xpKGFyZ3Y6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGJ1aWxkUHJvZ3JhbSgpLnBhcnNlQXN5bmMoYXJndik7XG59XG4iXX0=
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { type DatabricksAuthOptions } from "@dbx-tools/auth/config";
6
+ import { type DatabricksAuthOptions } from "@dbx-tools/auth";
7
7
  import { z } from "zod";
8
8
  export declare const AuthCliOptionsSchema: z.ZodObject<{
9
9
  profile: z.ZodOptional<z.ZodString>;
@@ -22,8 +22,8 @@ export declare const AuthCliOptionsSchema: z.ZodObject<{
22
22
  }>>;
23
23
  scopes: z.ZodDefault<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodArray<z.ZodString>>>;
24
24
  target: z.ZodOptional<z.ZodEnum<{
25
- workspace: "workspace";
26
25
  account: "account";
26
+ workspace: "workspace";
27
27
  unified: "unified";
28
28
  }>>;
29
29
  lockTimeoutMs: z.ZodDefault<z.ZodCoercedNumber<number>>;
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { AuthOptionsSchema, DatabricksAuthOptionsSchema, } from "@dbx-tools/auth/config";
7
- import { stringUtils } from "@dbx-tools/shared-core";
6
+ import { AuthOptionsSchema, DatabricksAuthOptionsSchema, } from "@dbx-tools/auth";
7
+ import { parseList } from "@dbx-tools/shared-core";
8
8
  import { z } from "zod";
9
9
  export const AuthCliOptionsSchema = z
10
10
  .object({
@@ -17,9 +17,7 @@ export const AuthCliOptionsSchema = z
17
17
  groupId: DatabricksAuthOptionsSchema.shape.groupId,
18
18
  authType: DatabricksAuthOptionsSchema.shape.authType,
19
19
  scopes: z
20
- .preprocess((value) => Array.isArray(value)
21
- ? value.flatMap((entry) => stringUtils.parseList(String(entry)))
22
- : value, z.array(z.string().trim().min(1)))
20
+ .preprocess((value) => Array.isArray(value) ? value.flatMap((entry) => parseList(String(entry))) : value, z.array(z.string().trim().min(1)))
23
21
  .default([])
24
22
  .describe("OAuth scopes."),
25
23
  target: DatabricksAuthOptionsSchema.shape.target,
@@ -65,4 +63,4 @@ export function databricksAuthOptions(options) {
65
63
  preferUserToMachine: options.preferUserToMachine,
66
64
  };
67
65
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsMkJBQTJCLEdBRTVCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQztLQUNsQyxNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE9BQU87SUFDbEQsSUFBSSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJO0lBQzVDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsU0FBUztJQUN0RCxXQUFXLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLFdBQVc7SUFDMUQsVUFBVSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxVQUFVO0lBQ3hELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsUUFBUTtJQUNwRCxPQUFPLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE9BQU87SUFDbEQsUUFBUSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxRQUFRO0lBQ3BELE1BQU0sRUFBRSxDQUFDO1NBQ04sVUFBVSxDQUNULENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsS0FBSyxFQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNsQztTQUNBLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDWCxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQzVCLE1BQU0sRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsTUFBTTtJQUNoRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGFBQWE7SUFDcEQsY0FBYyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxjQUFjO0lBQ3RELGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsZUFBZTtJQUN4RCxtQkFBbUIsRUFBRSxDQUFDO1NBQ25CLE9BQU8sRUFBRTtTQUNULE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDYixRQUFRLENBQUMsbUVBQW1FLENBQUM7Q0FDakYsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUM7S0FDdkMsTUFBTSxDQUFDO0lBQ04sWUFBWSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLHdDQUF3QyxDQUFDO0lBQzNGLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpREFBaUQsQ0FBQztJQUM1RixNQUFNLEVBQUUsQ0FBQztTQUNOLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2YsUUFBUSxDQUFDLDREQUE0RCxDQUFDO0NBQzFFLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQU1oRSwyRUFBMkU7QUFDM0UsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQXVCO0lBQzNELE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7UUFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDeEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDOUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLElBQUksRUFBRTtZQUNKLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUNwQyxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1NBQ3pDO1FBQ0QsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjtLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGF0YWJyaWNrcyBhdXRoIGNvbW1hbmQtbGluZSBvcHRpb24gc2NoZW1hcyBhbmQgcnVudGltZSBwcm9qZWN0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQge1xuICBBdXRoT3B0aW9uc1NjaGVtYSxcbiAgRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLFxuICB0eXBlIERhdGFicmlja3NBdXRoT3B0aW9ucyxcbn0gZnJvbSBcIkBkYngtdG9vbHMvYXV0aC9jb25maWdcIjtcbmltcG9ydCB7IHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBBdXRoQ2xpT3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgcHJvZmlsZTogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLnByb2ZpbGUsXG4gICAgaG9zdDogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmhvc3QsXG4gICAgYWNjb3VudElkOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUuYWNjb3VudElkLFxuICAgIHdvcmtzcGFjZUlkOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUud29ya3NwYWNlSWQsXG4gICAgY29uZmlnRmlsZTogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmNvbmZpZ0ZpbGUsXG4gICAgY2xpZW50SWQ6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5jbGllbnRJZCxcbiAgICBncm91cElkOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUuZ3JvdXBJZCxcbiAgICBhdXRoVHlwZTogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmF1dGhUeXBlLFxuICAgIHNjb3BlczogelxuICAgICAgLnByZXByb2Nlc3MoXG4gICAgICAgICh2YWx1ZSkgPT5cbiAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gc3RyaW5nVXRpbHMucGFyc2VMaXN0KFN0cmluZyhlbnRyeSkpKVxuICAgICAgICAgICAgOiB2YWx1ZSxcbiAgICAgICAgei5hcnJheSh6LnN0cmluZygpLnRyaW0oKS5taW4oMSkpLFxuICAgICAgKVxuICAgICAgLmRlZmF1bHQoW10pXG4gICAgICAuZGVzY3JpYmUoXCJPQXV0aCBzY29wZXMuXCIpLFxuICAgIHRhcmdldDogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLnRhcmdldCxcbiAgICBsb2NrVGltZW91dE1zOiBBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5sb2NrVGltZW91dE1zLFxuICAgIGxvZ2luVGltZW91dE1zOiBBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5sb2dpblRpbWVvdXRNcyxcbiAgICByZWZyZXNoQnVmZmVyTXM6IEF1dGhPcHRpb25zU2NoZW1hLnNoYXBlLnJlZnJlc2hCdWZmZXJNcyxcbiAgICBwcmVmZXJVc2VyVG9NYWNoaW5lOiB6XG4gICAgICAuYm9vbGVhbigpXG4gICAgICAuZGVmYXVsdCh0cnVlKVxuICAgICAgLmRlc2NyaWJlKFwiUHJlZmVyIGEgbWF0Y2hpbmcgdXNlciBwcm9maWxlIG92ZXIgc2VsZWN0ZWQgbWFjaGluZSBjcmVkZW50aWFscy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPcHRpb25zIHNoYXJlZCBieSBldmVyeSBEYXRhYnJpY2tzIGF1dGggY29tbWFuZC5cIik7XG5cbmV4cG9ydCBjb25zdCBUb2tlbkNvbW1hbmRPcHRpb25zU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBmb3JjZVJlZnJlc2g6IHouYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLmRlc2NyaWJlKFwiUmVmcmVzaCB0aGUgdG9rZW4gYmVmb3JlIHJldHVybmluZyBpdC5cIiksXG4gICAgbG9naW46IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSkuZGVzY3JpYmUoXCJMb2cgaW4gd2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciBpbnZhbGlkLlwiKSxcbiAgICBmb3JtYXQ6IHpcbiAgICAgIC5lbnVtKFtcImpzb25cIiwgXCJ0ZXh0XCJdKVxuICAgICAgLmRlZmF1bHQoXCJqc29uXCIpXG4gICAgICAuZGVzY3JpYmUoXCJPdXRwdXQgc3RydWN0dXJlZCB0b2tlbiBtZXRhZGF0YSBvciBvbmx5IHRoZSBhY2Nlc3MgdG9rZW4uXCIpLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiT3B0aW9ucyBmb3IgcmV0dXJuaW5nIGEgRGF0YWJyaWNrcyBhY2Nlc3MgdG9rZW4uXCIpO1xuXG5leHBvcnQgdHlwZSBBdXRoQ2xpT3B0aW9ucyA9IHoub3V0cHV0PHR5cGVvZiBBdXRoQ2xpT3B0aW9uc1NjaGVtYT47XG5cbmV4cG9ydCB0eXBlIFRva2VuQ29tbWFuZE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYT47XG5cbi8qKiBDb252ZXJ0IGZsYXQgQ0xJIGZpZWxkcyBpbnRvIHRoZSBOb2RlIGF1dGggcGFja2FnZSdzIG5lc3RlZCBvcHRpb25zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFicmlja3NBdXRoT3B0aW9ucyhvcHRpb25zOiBBdXRoQ2xpT3B0aW9ucyk6IERhdGFicmlja3NBdXRoT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgIGhvc3Q6IG9wdGlvbnMuaG9zdCxcbiAgICBhY2NvdW50SWQ6IG9wdGlvbnMuYWNjb3VudElkLFxuICAgIHdvcmtzcGFjZUlkOiBvcHRpb25zLndvcmtzcGFjZUlkLFxuICAgIGNvbmZpZ0ZpbGU6IG9wdGlvbnMuY29uZmlnRmlsZSxcbiAgICBjbGllbnRJZDogb3B0aW9ucy5jbGllbnRJZCxcbiAgICBncm91cElkOiBvcHRpb25zLmdyb3VwSWQsXG4gICAgYXV0aFR5cGU6IG9wdGlvbnMuYXV0aFR5cGUsXG4gICAgc2NvcGVzOiBvcHRpb25zLnNjb3Blcy5sZW5ndGggPiAwID8gb3B0aW9ucy5zY29wZXMgOiB1bmRlZmluZWQsXG4gICAgdGFyZ2V0OiBvcHRpb25zLnRhcmdldCxcbiAgICBhdXRoOiB7XG4gICAgICBsb2NrVGltZW91dE1zOiBvcHRpb25zLmxvY2tUaW1lb3V0TXMsXG4gICAgICBsb2dpblRpbWVvdXRNczogb3B0aW9ucy5sb2dpblRpbWVvdXRNcyxcbiAgICAgIHJlZnJlc2hCdWZmZXJNczogb3B0aW9ucy5yZWZyZXNoQnVmZmVyTXMsXG4gICAgfSxcbiAgICBwcmVmZXJVc2VyVG9NYWNoaW5lOiBvcHRpb25zLnByZWZlclVzZXJUb01hY2hpbmUsXG4gIH07XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsMkJBQTJCLEdBRTVCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQztLQUNsQyxNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE9BQU87SUFDbEQsSUFBSSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJO0lBQzVDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsU0FBUztJQUN0RCxXQUFXLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLFdBQVc7SUFDMUQsVUFBVSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxVQUFVO0lBQ3hELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsUUFBUTtJQUNwRCxPQUFPLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE9BQU87SUFDbEQsUUFBUSxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxRQUFRO0lBQ3BELE1BQU0sRUFBRSxDQUFDO1NBQ04sVUFBVSxDQUNULENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUNuRixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEM7U0FDQSxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ1gsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUM1QixNQUFNLEVBQUUsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE1BQU07SUFDaEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxhQUFhO0lBQ3BELGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsY0FBYztJQUN0RCxlQUFlLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGVBQWU7SUFDeEQsbUJBQW1CLEVBQUUsQ0FBQztTQUNuQixPQUFPLEVBQUU7U0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsUUFBUSxDQUFDLG1FQUFtRSxDQUFDO0NBQ2pGLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0tBQ3ZDLE1BQU0sQ0FBQztJQUNOLFlBQVksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQztJQUMzRixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsaURBQWlELENBQUM7SUFDNUYsTUFBTSxFQUFFLENBQUM7U0FDTixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFFBQVEsQ0FBQyw0REFBNEQsQ0FBQztDQUMxRSxDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFNaEUsMkVBQTJFO0FBQzNFLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUF1QjtJQUMzRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlELE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixJQUFJLEVBQUU7WUFDSixhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1lBQ3RDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtTQUN6QztRQUNELG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUI7S0FDakQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGFicmlja3MgYXV0aCBjb21tYW5kLWxpbmUgb3B0aW9uIHNjaGVtYXMgYW5kIHJ1bnRpbWUgcHJvamVjdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHtcbiAgQXV0aE9wdGlvbnNTY2hlbWEsXG4gIERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYSxcbiAgdHlwZSBEYXRhYnJpY2tzQXV0aE9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2F1dGhcIjtcbmltcG9ydCB7IHBhcnNlTGlzdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgY29uc3QgQXV0aENsaU9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHByb2ZpbGU6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5wcm9maWxlLFxuICAgIGhvc3Q6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5ob3N0LFxuICAgIGFjY291bnRJZDogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmFjY291bnRJZCxcbiAgICB3b3Jrc3BhY2VJZDogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLndvcmtzcGFjZUlkLFxuICAgIGNvbmZpZ0ZpbGU6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5jb25maWdGaWxlLFxuICAgIGNsaWVudElkOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUuY2xpZW50SWQsXG4gICAgZ3JvdXBJZDogRGF0YWJyaWNrc0F1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmdyb3VwSWQsXG4gICAgYXV0aFR5cGU6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5hdXRoVHlwZSxcbiAgICBzY29wZXM6IHpcbiAgICAgIC5wcmVwcm9jZXNzKFxuICAgICAgICAodmFsdWUpID0+XG4gICAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gcGFyc2VMaXN0KFN0cmluZyhlbnRyeSkpKSA6IHZhbHVlLFxuICAgICAgICB6LmFycmF5KHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSksXG4gICAgICApXG4gICAgICAuZGVmYXVsdChbXSlcbiAgICAgIC5kZXNjcmliZShcIk9BdXRoIHNjb3Blcy5cIiksXG4gICAgdGFyZ2V0OiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUudGFyZ2V0LFxuICAgIGxvY2tUaW1lb3V0TXM6IEF1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmxvY2tUaW1lb3V0TXMsXG4gICAgbG9naW5UaW1lb3V0TXM6IEF1dGhPcHRpb25zU2NoZW1hLnNoYXBlLmxvZ2luVGltZW91dE1zLFxuICAgIHJlZnJlc2hCdWZmZXJNczogQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUucmVmcmVzaEJ1ZmZlck1zLFxuICAgIHByZWZlclVzZXJUb01hY2hpbmU6IHpcbiAgICAgIC5ib29sZWFuKClcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXCJQcmVmZXIgYSBtYXRjaGluZyB1c2VyIHByb2ZpbGUgb3ZlciBzZWxlY3RlZCBtYWNoaW5lIGNyZWRlbnRpYWxzLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIk9wdGlvbnMgc2hhcmVkIGJ5IGV2ZXJ5IERhdGFicmlja3MgYXV0aCBjb21tYW5kLlwiKTtcblxuZXhwb3J0IGNvbnN0IFRva2VuQ29tbWFuZE9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGZvcmNlUmVmcmVzaDogei5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSkuZGVzY3JpYmUoXCJSZWZyZXNoIHRoZSB0b2tlbiBiZWZvcmUgcmV0dXJuaW5nIGl0LlwiKSxcbiAgICBsb2dpbjogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKS5kZXNjcmliZShcIkxvZyBpbiB3aGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nIG9yIGludmFsaWQuXCIpLFxuICAgIGZvcm1hdDogelxuICAgICAgLmVudW0oW1wianNvblwiLCBcInRleHRcIl0pXG4gICAgICAuZGVmYXVsdChcImpzb25cIilcbiAgICAgIC5kZXNjcmliZShcIk91dHB1dCBzdHJ1Y3R1cmVkIHRva2VuIG1ldGFkYXRhIG9yIG9ubHkgdGhlIGFjY2VzcyB0b2tlbi5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPcHRpb25zIGZvciByZXR1cm5pbmcgYSBEYXRhYnJpY2tzIGFjY2VzcyB0b2tlbi5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhDbGlPcHRpb25zID0gei5vdXRwdXQ8dHlwZW9mIEF1dGhDbGlPcHRpb25zU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgVG9rZW5Db21tYW5kT3B0aW9ucyA9IHoub3V0cHV0PHR5cGVvZiBUb2tlbkNvbW1hbmRPcHRpb25zU2NoZW1hPjtcblxuLyoqIENvbnZlcnQgZmxhdCBDTEkgZmllbGRzIGludG8gdGhlIE5vZGUgYXV0aCBwYWNrYWdlJ3MgbmVzdGVkIG9wdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YWJyaWNrc0F1dGhPcHRpb25zKG9wdGlvbnM6IEF1dGhDbGlPcHRpb25zKTogRGF0YWJyaWNrc0F1dGhPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgaG9zdDogb3B0aW9ucy5ob3N0LFxuICAgIGFjY291bnRJZDogb3B0aW9ucy5hY2NvdW50SWQsXG4gICAgd29ya3NwYWNlSWQ6IG9wdGlvbnMud29ya3NwYWNlSWQsXG4gICAgY29uZmlnRmlsZTogb3B0aW9ucy5jb25maWdGaWxlLFxuICAgIGNsaWVudElkOiBvcHRpb25zLmNsaWVudElkLFxuICAgIGdyb3VwSWQ6IG9wdGlvbnMuZ3JvdXBJZCxcbiAgICBhdXRoVHlwZTogb3B0aW9ucy5hdXRoVHlwZSxcbiAgICBzY29wZXM6IG9wdGlvbnMuc2NvcGVzLmxlbmd0aCA+IDAgPyBvcHRpb25zLnNjb3BlcyA6IHVuZGVmaW5lZCxcbiAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0LFxuICAgIGF1dGg6IHtcbiAgICAgIGxvY2tUaW1lb3V0TXM6IG9wdGlvbnMubG9ja1RpbWVvdXRNcyxcbiAgICAgIGxvZ2luVGltZW91dE1zOiBvcHRpb25zLmxvZ2luVGltZW91dE1zLFxuICAgICAgcmVmcmVzaEJ1ZmZlck1zOiBvcHRpb25zLnJlZnJlc2hCdWZmZXJNcyxcbiAgICB9LFxuICAgIHByZWZlclVzZXJUb01hY2hpbmU6IG9wdGlvbnMucHJlZmVyVXNlclRvTWFjaGluZSxcbiAgfTtcbn1cbiJdfQ==
@@ -7,8 +7,8 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
7
7
  import { createRequire } from "node:module";
8
8
  import { join } from "node:path";
9
9
  import { intro, outro } from "@clack/prompts";
10
- import { exec } from "@dbx-tools/core";
11
- import { json, log } from "@dbx-tools/shared-core";
10
+ import { spawnSync } from "@dbx-tools/core";
11
+ import { log, parseRecord } from "@dbx-tools/shared-core";
12
12
  import { childEnv, resolveBunArgv, runBun } from "./bun.js";
13
13
  import { rootLabel } from "./root.js";
14
14
  const logger = log.logger("dbx-tools:bootstrap");
@@ -39,7 +39,7 @@ function ownVersion() {
39
39
  // in source but two levels away after compilation and silently fell back to
40
40
  // `@latest` in every installed CLI.
41
41
  const manifestPath = createRequire(import.meta.url).resolve(`${CLI_PACKAGE}/package.json`);
42
- const version = json.parseRecord(readFileSync(manifestPath, "utf8"))?.version;
42
+ const version = parseRecord(readFileSync(manifestPath, "utf8"))?.version;
43
43
  return typeof version === "string" && version !== "0.0.0" ? version : undefined;
44
44
  }
45
45
  catch {
@@ -56,7 +56,7 @@ function compareVersions(a, b) {
56
56
  function installedEngineVersion(root) {
57
57
  try {
58
58
  const manifest = join(root, "node_modules", "@dbx-tools", "projen", "package.json");
59
- const version = json.parseRecord(readFileSync(manifest, "utf8"))?.version;
59
+ const version = parseRecord(readFileSync(manifest, "utf8"))?.version;
60
60
  return typeof version === "string" ? version : undefined;
61
61
  }
62
62
  catch {
@@ -84,13 +84,9 @@ export function ensureEngineCurrent(root) {
84
84
  return;
85
85
  runBun(["add", "-D", defaultProjenSpecifier()], root);
86
86
  }
87
- // Reach the class through its module NAMESPACE. Current engines also hoist it
88
- // flat, but every engine ever published exports the namespace, and this template
89
- // is resolved against `@latest` - a flat import dies on an older one with
90
- // "does not provide an export named 'DBXToolsNodeProject'".
91
- const PROJENRC_TEMPLATE = `import { project } from "@dbx-tools/projen";
87
+ const PROJENRC_TEMPLATE = `import { projectJs } from "@dbx-tools/projen";
92
88
 
93
- const rootProject = new project.DBXToolsNodeProject();
89
+ const rootProject = new projectJs.DBXToolsNodeProject();
94
90
  rootProject.synth();
95
91
  `;
96
92
  /**
@@ -135,7 +131,7 @@ export function seedToolchain(root, projenSpecifier = defaultProjenSpecifier())
135
131
  runBun(["init", "-y"], root);
136
132
  normalizeSeedManifest(manifestPath);
137
133
  }
138
- const kernelArch = exec.spawnSync("uname", ["-m"], {
134
+ const kernelArch = spawnSync("uname", ["-m"], {
139
135
  stdin: "ignore",
140
136
  stdout: "capture",
141
137
  stderr: "ignore",
@@ -159,7 +155,7 @@ export function seedToolchain(root, projenSpecifier = defaultProjenSpecifier())
159
155
  */
160
156
  function normalizeSeedManifest(manifestPath) {
161
157
  try {
162
- const manifest = json.parseRecord(readFileSync(manifestPath, "utf8"));
158
+ const manifest = parseRecord(readFileSync(manifestPath, "utf8"));
163
159
  if (!manifest)
164
160
  return;
165
161
  delete manifest.devEngines;
@@ -181,10 +177,10 @@ export function runInitialSynth(root) {
181
177
  const [command, ...prefix] = resolveBunArgv();
182
178
  // bun runs the `.ts` directly. Registry environment aliases reach nested
183
179
  // commands through `childEnv` without writing project-level npm configuration.
184
- exec.spawnSync(command, [...prefix, ".projenrc.ts"], {
180
+ spawnSync(command, [...prefix, ".projenrc.ts"], {
185
181
  cwd: root,
186
182
  env: childEnv({ PROJEN_DISABLE_POST: "true" }),
187
183
  check: true,
188
184
  });
189
185
  }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVqRCxpRkFBaUY7QUFDakYsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFFckMsc0ZBQXNGO0FBQ3RGLE1BQU0seUJBQXlCLEdBQUcsMEJBQTBCLENBQUM7QUFFN0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxzQkFBc0I7SUFDN0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUM7QUFDL0UsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixTQUFTLFVBQVU7SUFDakIsSUFBSSxDQUFDO1FBQ0gsNEVBQTRFO1FBQzVFLHdEQUF3RDtRQUN4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QUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDOUMsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCb290c3RyYXAgYSBicmFuZC1uZXcgZm9sZGVyIGludG8gYSB3b3JraW5nIGRieC10b29scyB3b3Jrc3BhY2UgYmVmb3JlIHByb2plbiBydW5zLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBpbnRybywgb3V0cm8gfSBmcm9tIFwiQGNsYWNrL3Byb21wdHNcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBqc29uLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgY2hpbGRFbnYsIHJlc29sdmVCdW5Bcmd2LCBydW5CdW4gfSBmcm9tIFwiLi9idW4udHNcIjtcbmltcG9ydCB7IHJvb3RMYWJlbCB9IGZyb20gXCIuL3Jvb3QudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImRieC10b29sczpib290c3RyYXBcIik7XG5cbi8qKiBQdWJsaXNoZWQgcGFja2FnZSBuYW1lIHVzZWQgZm9yIE5vZGUncyBzZWxmLXJlZmVyZW5jZSBtYW5pZmVzdCByZXNvbHV0aW9uLiAqL1xuY29uc3QgQ0xJX1BBQ0tBR0UgPSBcIkBkYngtdG9vbHMvY2xpXCI7XG5cbi8qKiBGYWxsYmFjayB3aGVuIHRoaXMgQ0xJJ3Mgb3duIHZlcnNpb24gaXNuJ3QgYSByZWFsIHJlbGVhc2UgKGFuIGluLXJlcG8gYDAuMC4wYCkuICovXG5jb25zdCBGQUxMQkFDS19QUk9KRU5fU1BFQ0lGSUVSID0gXCJAZGJ4LXRvb2xzL3Byb2plbkBsYXRlc3RcIjtcblxuLyoqXG4gKiBJbnN0YWxsIHRoZSBlbmdpbmUgYXQgVEhJUyBDTEkncyBvd24gdmVyc2lvbi4gVGhlIHR3byBhcmUgcmVsZWFzZWQgdG9nZXRoZXIgYnlcbiAqIHRoZSByb290IGBidW1wYCwgc28gdGhlIG1hdGNoaW5nIGVuZ2luZSBhbHdheXMgZXhpc3RzIG9uIHRoZSByZWdpc3RyeS5cbiAqXG4gKiBOb3QgYEBsYXRlc3RgLCBhbmQgbm90IGEgYmFyZSBgQGRieC10b29scy9wcm9qZW5gLiBBIGJhcmUgc3BlY2lmaWVyIGNhbiBsYW5kIG9uXG4gKiBhIHN0cmF5IGAwLjAuMGAsIHdob3NlIGBeMC4wLjBgIGNhcmV0IHRoZW4gcmVhY2hlcyBubyByZWFsIHJlbGVhc2UuIEFuIGV4cGxpY2l0XG4gKiByYW5nZSBwaW5uZWQgdG8gdGhpcyBDTEkncyBvd24gdmVyc2lvbiBhZG1pdHMgb25seSB0aGUgbWF0Y2hpbmcgZW5naW5lLCBzbyB0aGVcbiAqIENMSSBhbmQgdGhlIGVuZ2luZSBpdCBkcml2ZXMgbmV2ZXIgZHJpZnQgYWNyb3NzIGEgcmVsZWFzZSAodGhleSBhcmUgY3V0XG4gKiB0b2dldGhlciBieSB0aGUgcm9vdCBgYnVtcGApLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCk6IHN0cmluZyB7XG4gIGNvbnN0IHZlcnNpb24gPSBvd25WZXJzaW9uKCk7XG4gIHJldHVybiB2ZXJzaW9uID8gYEBkYngtdG9vbHMvcHJvamVuQF4ke3ZlcnNpb259YCA6IEZBTExCQUNLX1BST0pFTl9TUEVDSUZJRVI7XG59XG5cbi8qKiBUaGlzIENMSSdzIG93biByZWxlYXNlZCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCBmb3IgYW4gaW4tcmVwbyBgMC4wLjBgIGJ1aWxkLiAqL1xuZnVuY3Rpb24gb3duVmVyc2lvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIC8vIFJlc29sdmUgdGhyb3VnaCB0aGUgcGFja2FnZSdzIGV4cG9ydGVkIGAuL3BhY2thZ2UuanNvbmAsIHdoaWNoIHdvcmtzIGZyb21cbiAgICAvLyBib3RoIHNvdXJjZSAoYHNyYy9ib290c3RyYXAudHNgKSBhbmQgcHVibGlzaGVkIG91dHB1dFxuICAgIC8vIChgbGliL3NyYy9ib290c3RyYXAuanNgKS4gQSByZWxhdGl2ZSBVUkwgaXMgb25lIGxldmVsIGZyb20gdGhlIG1hbmlmZXN0XG4gICAgLy8gaW4gc291cmNlIGJ1dCB0d28gbGV2ZWxzIGF3YXkgYWZ0ZXIgY29tcGlsYXRpb24gYW5kIHNpbGVudGx5IGZlbGwgYmFjayB0b1xuICAgIC8vIGBAbGF0ZXN0YCBpbiBldmVyeSBpbnN0YWxsZWQgQ0xJLlxuICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKS5yZXNvbHZlKGAke0NMSV9QQUNLQUdFfS9wYWNrYWdlLmpzb25gKTtcbiAgICBjb25zdCB2ZXJzaW9uID0ganNvbi5wYXJzZVJlY29yZChyZWFkRmlsZVN5bmMobWFuaWZlc3RQYXRoLCBcInV0ZjhcIikpPy52ZXJzaW9uO1xuICAgIHJldHVybiB0eXBlb2YgdmVyc2lvbiA9PT0gXCJzdHJpbmdcIiAmJiB2ZXJzaW9uICE9PSBcIjAuMC4wXCIgPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKiBDb21wYXJlIGB4LnkuemAgdHJpcGxlczsgcmV0dXJucyA8MCwgMCwgb3IgPjAuIE1pc3NpbmcgcGFydHMgY291bnQgYXMgMC4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVWZXJzaW9ucyhhOiBzdHJpbmcsIGI6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHBhcnRzID0gKHY6IHN0cmluZykgPT4gdi5zcGxpdChcIi5cIikubWFwKChwKSA9PiBOdW1iZXIucGFyc2VJbnQocCwgMTApIHx8IDApO1xuICBjb25zdCBbeCwgeV0gPSBbcGFydHMoYSksIHBhcnRzKGIpXTtcbiAgcmV0dXJuIHhbMF0gLSB5WzBdIHx8IHhbMV0gLSB5WzFdIHx8IHhbMl0gLSB5WzJdO1xufVxuXG4vKiogVmVyc2lvbiBvZiB0aGUgZW5naW5lIGN1cnJlbnRseSBpbnN0YWxsZWQgYXQgYHJvb3RgLCBpZiBhbnkuICovXG5mdW5jdGlvbiBpbnN0YWxsZWRFbmdpbmVWZXJzaW9uKHJvb3Q6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBqb2luKHJvb3QsIFwibm9kZV9tb2R1bGVzXCIsIFwiQGRieC10b29sc1wiLCBcInByb2plblwiLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICBjb25zdCB2ZXJzaW9uID0ganNvbi5wYXJzZVJlY29yZChyZWFkRmlsZVN5bmMobWFuaWZlc3QsIFwidXRmOFwiKSk/LnZlcnNpb247XG4gICAgcmV0dXJuIHR5cGVvZiB2ZXJzaW9uID09PSBcInN0cmluZ1wiID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFVwZ3JhZGUgYW4gZXN0YWJsaXNoZWQgd29ya3NwYWNlIHdob3NlIGluc3RhbGxlZCBlbmdpbmUgcHJlZGF0ZXMgdGhpcyBDTEkuXG4gKlxuICogQm9vdHN0cmFwcGluZyBwaW5zIHRoZSBlbmdpbmUgb25jZSwgc28gd2l0aG91dCB0aGlzIGEgd29ya3NwYWNlIGNyZWF0ZWQgbW9udGhzIGFnb1xuICogd291bGQga2VlcCByZXNvbHZpbmcgaXRzIG9yaWdpbmFsIGVuZ2luZSBubyBtYXR0ZXIgaG93IGN1cnJlbnQgdGhlIENMSSBpbnZva2luZyBpdFxuICogaXMsIGFuZCB3b3VsZCBmYWlsIGluc2lkZSBUSEFUIGVuZ2luZSdzIGNvZGUgKGBzeW5jIC0td2F0Y2hgIGR5aW5nIG9uIGFcbiAqIGBjb25jdXJyZW50bHlgIGl0IG5ldmVyIGRlY2xhcmVkKS4gVGhlIHR3byBhcmUgcmVsZWFzZWQgaW4gbG9ja3N0ZXAsIHNvIHRoaXMgQ0xJJ3NcbiAqIHZlcnNpb24gaXMgZXhhY3RseSB0aGUgZW5naW5lIGl0IGV4cGVjdHMuXG4gKlxuICogT25seSBldmVyIG1vdmVzIEZPUldBUkQ6IGFuIGVuZ2luZSBhdCBvciBhaGVhZCBvZiB0aGlzIENMSSBpcyBsZWZ0IGFsb25lLCBzb1xuICogYW4gb2xkZXIgQ0xJIGNhbm5vdCBkb3duZ3JhZGUgYSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFbmdpbmVDdXJyZW50KHJvb3Q6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBleHBlY3RlZCA9IG93blZlcnNpb24oKTtcbiAgaWYgKCFleHBlY3RlZCkgcmV0dXJuO1xuICBjb25zdCBpbnN0YWxsZWQgPSBpbnN0YWxsZWRFbmdpbmVWZXJzaW9uKHJvb3QpO1xuICBpZiAoaW5zdGFsbGVkICYmIGNvbXBhcmVWZXJzaW9ucyhpbnN0YWxsZWQsIGV4cGVjdGVkKSA+PSAwKSByZXR1cm47XG4gIHJ1bkJ1bihbXCJhZGRcIiwgXCItRFwiLCBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCldLCByb290KTtcbn1cblxuLy8gUmVhY2ggdGhlIGNsYXNzIHRocm91Z2ggaXRzIG1vZHVsZSBOQU1FU1BBQ0UuIEN1cnJlbnQgZW5naW5lcyBhbHNvIGhvaXN0IGl0XG4vLyBmbGF0LCBidXQgZXZlcnkgZW5naW5lIGV2ZXIgcHVibGlzaGVkIGV4cG9ydHMgdGhlIG5hbWVzcGFjZSwgYW5kIHRoaXMgdGVtcGxhdGVcbi8vIGlzIHJlc29sdmVkIGFnYWluc3QgYEBsYXRlc3RgIC0gYSBmbGF0IGltcG9ydCBkaWVzIG9uIGFuIG9sZGVyIG9uZSB3aXRoXG4vLyBcImRvZXMgbm90IHByb3ZpZGUgYW4gZXhwb3J0IG5hbWVkICdEQlhUb29sc05vZGVQcm9qZWN0J1wiLlxuY29uc3QgUFJPSkVOUkNfVEVNUExBVEUgPSBgaW1wb3J0IHsgcHJvamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3Byb2plblwiO1xuXG5jb25zdCByb290UHJvamVjdCA9IG5ldyBwcm9qZWN0LkRCWFRvb2xzTm9kZVByb2plY3QoKTtcbnJvb3RQcm9qZWN0LnN5bnRoKCk7XG5gO1xuXG4vKipcbiAqIFR1cm4gYSBmb2xkZXIgaW50byBhIGZ1bmN0aW9uaW5nIGRieC10b29scyB3b3Jrc3BhY2U6IGBidW4gaW5pdGAsIHNlZWQgdGhlXG4gKiBgcGFja2FnZS5qc29uYCB3b3Jrc3BhY2UgZmllbGRzIChidW4gcmVhZHMgYHdvcmtzcGFjZXNgL2B0cnVzdGVkRGVwZW5kZW5jaWVzYFxuICogZnJvbSB0aGUgbWFuaWZlc3QpLCBhZGQgYHByb2plbmAvYHR5cGVzY3JpcHRgICsgdGhlIGVuZ2luZSBwYWNrYWdlLCB3cml0ZSBhXG4gKiBtaW5pbWFsIGAucHJvamVucmMudHNgLCBzeW50aCBvbmNlICh3aXRoIGBQUk9KRU5fRElTQUJMRV9QT1NUYCksIHRoZW4gaW5zdGFsbC5cbiAqIERvZXMgbm90IHJ1biBiYXJyZWxzIC0gcnVuIGBidW4gcnVuIGJhcnJlbHNgIG9yIGEgZnVsbCBwcm9qZW4gc3ludGggcG9zdC1pbnN0YWxsXG4gKiB0byBnZW5lcmF0ZSBwYWNrYWdlIGJhcnJlbHMuXG4gKlxuICogRXZlcnkgc3RlcCBpcyBpZGVtcG90ZW50IGFuZCBzZWxmLWd1YXJkZWQsIHNvIHRoaXMgaXMgc2FmZSB0byBydW4gYWdhaW5zdCBhXG4gKiBmb2xkZXIgdGhhdCBBTFJFQURZIGhhcyBhIGhhbmQtYXV0aG9yZWQgYC5wcm9qZW5yYy50c2AgKGFuZCBldmVuIGEgY29tbWl0dGVkXG4gKiBgcGFja2FnZS5qc29uYCkgYnV0IGlzIG1pc3NpbmcgdGhlIGluc3RhbGxlZCB0b29sY2hhaW4gLSBlLmcuIGEgZnJlc2hseSBjb3BpZWRcbiAqIHByb2plY3Qgd2hvc2UgZ2VuZXJhdGVkIGZpbGVzIChpbmNsdWRpbmcgbWFuaWZlc3RzKSBhcmUgZ2l0aWdub3JlZC4gSW4gdGhhdFxuICogY2FzZSBgYnVuIGluaXRgIGFuZCB0aGUgYC5wcm9qZW5yYy50c2Agc2NhZmZvbGQgYXJlIHNraXBwZWQsIGJ1dCB0aGUgZW5naW5lICtcbiAqIHByb2plbiBhcmUgKHJlKWluc3RhbGxlZCBzbyB0aGUgc3Vic2VxdWVudCBzeW50aCBjYW4gcmVnZW5lcmF0ZSBldmVyeXRoaW5nLlxuICogU2VlIHtAbGluayBzZWVkVG9vbGNoYWlufS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFdvcmtzcGFjZShcbiAgcm9vdDogc3RyaW5nLFxuICBwcm9qZW5TcGVjaWZpZXI6IHN0cmluZyA9IGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKSxcbik6IHZvaWQge1xuICBpbnRybyhgQm9vdHN0cmFwcGluZyBkYngtdG9vbHMgd29ya3NwYWNlIGluICR7cm9vdExhYmVsKHJvb3QpfWApO1xuXG4gIHNlZWRUb29sY2hhaW4ocm9vdCwgcHJvamVuU3BlY2lmaWVyKTtcblxuICBjb25zdCBwcm9qZW5yYyA9IGpvaW4ocm9vdCwgXCIucHJvamVucmMudHNcIik7XG4gIGlmICghZXhpc3RzU3luYyhwcm9qZW5yYykpIHtcbiAgICB3cml0ZUZpbGVTeW5jKHByb2plbnJjLCBQUk9KRU5SQ19URU1QTEFURSk7XG4gIH1cblxuICBydW5Jbml0aWFsU3ludGgocm9vdCk7XG5cbiAgcnVuQnVuKFtcImluc3RhbGxcIl0sIHJvb3QpO1xuICBvdXRybyhcIldvcmtzcGFjZSByZWFkeSAtIHJlLXJ1biBkYngtdG9vbHMgb3IgYWRkIHBhY2thZ2VzIHVuZGVyIHBhY2thZ2VzL1wiKTtcbn1cblxuLyoqXG4gKiBJbnN0YWxsIHRoZSB0b29sY2hhaW4gYSBzeW50aCBuZWVkcyAoYHByb2plbmAsIGB0eXBlc2NyaXB0YCwgYW5kIHRoZSBkYngtdG9vbHNcbiAqIGVuZ2luZSksIHNlZWRpbmcgYSBgcGFja2FnZS5qc29uYCBmaXJzdCB3aGVuIGFic2VudC4gYnVuIHJlYWRzIGl0cyB3b3Jrc3BhY2VcbiAqIGNvbmZpZyAoYHdvcmtzcGFjZXNgL2B0cnVzdGVkRGVwZW5kZW5jaWVzYCkgZnJvbSB0aGUgbWFuaWZlc3QsIHNvIHRoZXJlIGlzIG5vXG4gKiBzZXBhcmF0ZSB3b3Jrc3BhY2UgZmlsZSB0byBzZWVkIC0gdGhlIGVuZ2luZSB3cml0ZXMgYHBucG0td29ya3NwYWNlLnlhbWxgIGF0XG4gKiBzeW50aCBmb3IgdGhlIERhdGFicmlja3MgQXBwcyBwbGF0Zm9ybS4gSWRlbXBvdGVudDogcnVuIGl0IHdoZW5ldmVyIHRoZSBlbmdpbmVcbiAqIGlzIG1pc3NpbmcsIHNvIGEgY29waWVkIHByb2plY3Qgd2l0aCBhIGAucHJvamVucmMudHNgIGJ1dCBub1xuICogYG5vZGVfbW9kdWxlc2AvbWFuaWZlc3QgY2FuIGJlIGJyb3VnaHQgdXAgdG8gYSBzeW50aC1yZWFkeSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlZWRUb29sY2hhaW4oXG4gIHJvb3Q6IHN0cmluZyxcbiAgcHJvamVuU3BlY2lmaWVyOiBzdHJpbmcgPSBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCksXG4pOiB2b2lkIHtcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihyb290LCBcInBhY2thZ2UuanNvblwiKTtcbiAgaWYgKCFleGlzdHNTeW5jKG1hbmlmZXN0UGF0aCkpIHtcbiAgICBydW5CdW4oW1wiaW5pdFwiLCBcIi15XCJdLCByb290KTtcbiAgICBub3JtYWxpemVTZWVkTWFuaWZlc3QobWFuaWZlc3RQYXRoKTtcbiAgfVxuXG4gIGNvbnN0IGtlcm5lbEFyY2ggPSBleGVjLnNwYXduU3luYyhcInVuYW1lXCIsIFtcIi1tXCJdLCB7XG4gICAgc3RkaW46IFwiaWdub3JlXCIsXG4gICAgc3Rkb3V0OiBcImNhcHR1cmVcIixcbiAgICBzdGRlcnI6IFwiaWdub3JlXCIsXG4gIH0pLnN0ZG91dDtcbiAgbG9nZ2VyLmluZm8oXCJzZWVkaW5nIHRvb2xjaGFpblwiLCB7XG4gICAgbm9kZTogcHJvY2Vzcy52ZXJzaW9uLFxuICAgIGJ1bjogcHJvY2Vzcy52ZXJzaW9ucy5idW4sXG4gICAgcGxhdGZvcm06IHByb2Nlc3MucGxhdGZvcm0sXG4gICAgYXJjaDogcHJvY2Vzcy5hcmNoLFxuICAgIGtlcm5lbEFyY2g6IGtlcm5lbEFyY2ggfHwgXCJ1bmtub3duXCIsXG4gICAgZW5naW5lOiBwcm9qZW5TcGVjaWZpZXIsXG4gIH0pO1xuICBydW5CdW4oW1wiYWRkXCIsIFwiLURcIiwgXCJwcm9qZW5cIiwgXCJ0eXBlc2NyaXB0QF41LjkuM1wiLCBcIkB0eXBlcy9idW5cIiwgcHJvamVuU3BlY2lmaWVyXSwgcm9vdCk7XG59XG5cbi8qKlxuICogTWFrZSB3aGF0IGBidW4gaW5pdGAgcHJvZHVjZWQgc2FmZSB0byBzeW50aCBhZ2FpbnN0OiBmb3JjZSBgdHlwZTogXCJtb2R1bGVcImBcbiAqIChidW4gcnVucyBgLnByb2plbnJjLnRzYCBmaW5lIGVpdGhlciB3YXksIGJ1dCBwcm9qZW4ncyBFU00gc291cmNlcyBhbmQgdGhlXG4gKiBlbWl0dGVkIGNvbmZpZyBhc3N1bWUgbW9kdWxlIHR5cGUpIGFuZCBkcm9wIGFueSBgcGFja2FnZU1hbmFnZXJgL2BkZXZFbmdpbmVzYFxuICogZmllbGQgdGhhdCB3b3VsZCBwaW4gYSBkaWZmZXJlbnQgbWFuYWdlci4gcHJvamVuIHJlZ2VuZXJhdGVzIHRoZSB3aG9sZSBtYW5pZmVzdFxuICogYXQgc3ludGgsIHNvIHRoaXMgb25seSBoYXMgdG8gaG9sZCB0aGUgc2VlZCB0b2dldGhlciBsb25nIGVub3VnaCB0byBnZXQgdGhlcmUuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlZWRNYW5pZmVzdChtYW5pZmVzdFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0ganNvbi5wYXJzZVJlY29yZChyZWFkRmlsZVN5bmMobWFuaWZlc3RQYXRoLCBcInV0ZjhcIikpO1xuICAgIGlmICghbWFuaWZlc3QpIHJldHVybjtcbiAgICBkZWxldGUgbWFuaWZlc3QuZGV2RW5naW5lcztcbiAgICBkZWxldGUgbWFuaWZlc3QucGFja2FnZU1hbmFnZXI7XG4gICAgbWFuaWZlc3QudHlwZSA9IFwibW9kdWxlXCI7XG4gICAgd3JpdGVGaWxlU3luYyhtYW5pZmVzdFBhdGgsIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gQSBtYWxmb3JtZWQvYWJzZW50IG1hbmlmZXN0IGhlcmUganVzdCBtZWFucyB0aGUgbGF0ZXIgYGJ1biBhZGRgIHJlY3JlYXRlcyBpdC5cbiAgfVxufVxuXG4vKipcbiAqIFJ1biB0aGUgaW5pdGlhbCBzeW50aCBieSBleGVjdXRpbmcgYC5wcm9qZW5yYy50c2AgZGlyZWN0bHkgd2l0aCBidW4gKHdpdGhcbiAqIGBQUk9KRU5fRElTQUJMRV9QT1NUYCBzZXQpLCBOT1QgYHByb2plbiA8dGFzaz5gLiBVc2UgcmlnaHQgYWZ0ZXIgc2VlZGluZyBhXG4gKiBmcmVzaCB3b3Jrc3BhY2U6IHRoZSBwcm9qZW4gVEFTS1MgKGBzeW5jYCwgYGJhcnJlbHNgLCAuLi4pIG9ubHkgZXhpc3Qgb25jZVxuICogYC5wcm9qZW5yYy50c2AgaGFzIHJ1biBvbmNlLCBzbyBgcHJvamVuIHN5bmNgIGNhbid0IGJlIHRoZSBib290c3RyYXBwaW5nIHN0ZXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5Jbml0aWFsU3ludGgocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IFtjb21tYW5kLCAuLi5wcmVmaXhdID0gcmVzb2x2ZUJ1bkFyZ3YoKTtcbiAgLy8gYnVuIHJ1bnMgdGhlIGAudHNgIGRpcmVjdGx5LiBSZWdpc3RyeSBlbnZpcm9ubWVudCBhbGlhc2VzIHJlYWNoIG5lc3RlZFxuICAvLyBjb21tYW5kcyB0aHJvdWdoIGBjaGlsZEVudmAgd2l0aG91dCB3cml0aW5nIHByb2plY3QtbGV2ZWwgbnBtIGNvbmZpZ3VyYXRpb24uXG4gIGV4ZWMuc3Bhd25TeW5jKGNvbW1hbmQsIFsuLi5wcmVmaXgsIFwiLnByb2plbnJjLnRzXCJdLCB7XG4gICAgY3dkOiByb290LFxuICAgIGVudjogY2hpbGRFbnYoeyBQUk9KRU5fRElTQUJMRV9QT1NUOiBcInRydWVcIiB9KSxcbiAgICBjaGVjazogdHJ1ZSxcbiAgfSk7XG59XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVqRCxpRkFBaUY7QUFDakYsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFFckMsc0ZBQXNGO0FBQ3RGLE1BQU0seUJBQXlCLEdBQUcsMEJBQTBCLENBQUM7QUFFN0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxzQkFBc0I7SUFDN0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUM7QUFDL0UsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixTQUFTLFVBQVU7SUFDakIsSUFBSSxDQUFDO1FBQ0gsNEVBQTRFO1FBQzVFLHdEQUF3RDtRQUN4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KiBCb290c3RyYXAgYSBicmFuZC1uZXcgZm9sZGVyIGludG8gYSB3b3JraW5nIGRieC10b29scyB3b3Jrc3BhY2UgYmVmb3JlIHByb2plbiBydW5zLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBpbnRybywgb3V0cm8gfSBmcm9tIFwiQGNsYWNrL3Byb21wdHNcIjtcbmltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IGxvZywgcGFyc2VSZWNvcmQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgY2hpbGRFbnYsIHJlc29sdmVCdW5Bcmd2LCBydW5CdW4gfSBmcm9tIFwiLi9idW4udHNcIjtcbmltcG9ydCB7IHJvb3RMYWJlbCB9IGZyb20gXCIuL3Jvb3QudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImRieC10b29sczpib290c3RyYXBcIik7XG5cbi8qKiBQdWJsaXNoZWQgcGFja2FnZSBuYW1lIHVzZWQgZm9yIE5vZGUncyBzZWxmLXJlZmVyZW5jZSBtYW5pZmVzdCByZXNvbHV0aW9uLiAqL1xuY29uc3QgQ0xJX1BBQ0tBR0UgPSBcIkBkYngtdG9vbHMvY2xpXCI7XG5cbi8qKiBGYWxsYmFjayB3aGVuIHRoaXMgQ0xJJ3Mgb3duIHZlcnNpb24gaXNuJ3QgYSByZWFsIHJlbGVhc2UgKGFuIGluLXJlcG8gYDAuMC4wYCkuICovXG5jb25zdCBGQUxMQkFDS19QUk9KRU5fU1BFQ0lGSUVSID0gXCJAZGJ4LXRvb2xzL3Byb2plbkBsYXRlc3RcIjtcblxuLyoqXG4gKiBJbnN0YWxsIHRoZSBlbmdpbmUgYXQgVEhJUyBDTEkncyBvd24gdmVyc2lvbi4gVGhlIHR3byBhcmUgcmVsZWFzZWQgdG9nZXRoZXIgYnlcbiAqIHRoZSByb290IGBidW1wYCwgc28gdGhlIG1hdGNoaW5nIGVuZ2luZSBhbHdheXMgZXhpc3RzIG9uIHRoZSByZWdpc3RyeS5cbiAqXG4gKiBOb3QgYEBsYXRlc3RgLCBhbmQgbm90IGEgYmFyZSBgQGRieC10b29scy9wcm9qZW5gLiBBIGJhcmUgc3BlY2lmaWVyIGNhbiBsYW5kIG9uXG4gKiBhIHN0cmF5IGAwLjAuMGAsIHdob3NlIGBeMC4wLjBgIGNhcmV0IHRoZW4gcmVhY2hlcyBubyByZWFsIHJlbGVhc2UuIEFuIGV4cGxpY2l0XG4gKiByYW5nZSBwaW5uZWQgdG8gdGhpcyBDTEkncyBvd24gdmVyc2lvbiBhZG1pdHMgb25seSB0aGUgbWF0Y2hpbmcgZW5naW5lLCBzbyB0aGVcbiAqIENMSSBhbmQgdGhlIGVuZ2luZSBpdCBkcml2ZXMgbmV2ZXIgZHJpZnQgYWNyb3NzIGEgcmVsZWFzZSAodGhleSBhcmUgY3V0XG4gKiB0b2dldGhlciBieSB0aGUgcm9vdCBgYnVtcGApLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCk6IHN0cmluZyB7XG4gIGNvbnN0IHZlcnNpb24gPSBvd25WZXJzaW9uKCk7XG4gIHJldHVybiB2ZXJzaW9uID8gYEBkYngtdG9vbHMvcHJvamVuQF4ke3ZlcnNpb259YCA6IEZBTExCQUNLX1BST0pFTl9TUEVDSUZJRVI7XG59XG5cbi8qKiBUaGlzIENMSSdzIG93biByZWxlYXNlZCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCBmb3IgYW4gaW4tcmVwbyBgMC4wLjBgIGJ1aWxkLiAqL1xuZnVuY3Rpb24gb3duVmVyc2lvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIC8vIFJlc29sdmUgdGhyb3VnaCB0aGUgcGFja2FnZSdzIGV4cG9ydGVkIGAuL3BhY2thZ2UuanNvbmAsIHdoaWNoIHdvcmtzIGZyb21cbiAgICAvLyBib3RoIHNvdXJjZSAoYHNyYy9ib290c3RyYXAudHNgKSBhbmQgcHVibGlzaGVkIG91dHB1dFxuICAgIC8vIChgbGliL3NyYy9ib290c3RyYXAuanNgKS4gQSByZWxhdGl2ZSBVUkwgaXMgb25lIGxldmVsIGZyb20gdGhlIG1hbmlmZXN0XG4gICAgLy8gaW4gc291cmNlIGJ1dCB0d28gbGV2ZWxzIGF3YXkgYWZ0ZXIgY29tcGlsYXRpb24gYW5kIHNpbGVudGx5IGZlbGwgYmFjayB0b1xuICAgIC8vIGBAbGF0ZXN0YCBpbiBldmVyeSBpbnN0YWxsZWQgQ0xJLlxuICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKS5yZXNvbHZlKGAke0NMSV9QQUNLQUdFfS9wYWNrYWdlLmpzb25gKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gcGFyc2VSZWNvcmQocmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgXCJ1dGY4XCIpKT8udmVyc2lvbjtcbiAgICByZXR1cm4gdHlwZW9mIHZlcnNpb24gPT09IFwic3RyaW5nXCIgJiYgdmVyc2lvbiAhPT0gXCIwLjAuMFwiID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogQ29tcGFyZSBgeC55LnpgIHRyaXBsZXM7IHJldHVybnMgPDAsIDAsIG9yID4wLiBNaXNzaW5nIHBhcnRzIGNvdW50IGFzIDAuICovXG5mdW5jdGlvbiBjb21wYXJlVmVyc2lvbnMoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBwYXJ0cyA9ICh2OiBzdHJpbmcpID0+IHYuc3BsaXQoXCIuXCIpLm1hcCgocCkgPT4gTnVtYmVyLnBhcnNlSW50KHAsIDEwKSB8fCAwKTtcbiAgY29uc3QgW3gsIHldID0gW3BhcnRzKGEpLCBwYXJ0cyhiKV07XG4gIHJldHVybiB4WzBdIC0geVswXSB8fCB4WzFdIC0geVsxXSB8fCB4WzJdIC0geVsyXTtcbn1cblxuLyoqIFZlcnNpb24gb2YgdGhlIGVuZ2luZSBjdXJyZW50bHkgaW5zdGFsbGVkIGF0IGByb290YCwgaWYgYW55LiAqL1xuZnVuY3Rpb24gaW5zdGFsbGVkRW5naW5lVmVyc2lvbihyb290OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gam9pbihyb290LCBcIm5vZGVfbW9kdWxlc1wiLCBcIkBkYngtdG9vbHNcIiwgXCJwcm9qZW5cIiwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgY29uc3QgdmVyc2lvbiA9IHBhcnNlUmVjb3JkKHJlYWRGaWxlU3luYyhtYW5pZmVzdCwgXCJ1dGY4XCIpKT8udmVyc2lvbjtcbiAgICByZXR1cm4gdHlwZW9mIHZlcnNpb24gPT09IFwic3RyaW5nXCIgPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogVXBncmFkZSBhbiBlc3RhYmxpc2hlZCB3b3Jrc3BhY2Ugd2hvc2UgaW5zdGFsbGVkIGVuZ2luZSBwcmVkYXRlcyB0aGlzIENMSS5cbiAqXG4gKiBCb290c3RyYXBwaW5nIHBpbnMgdGhlIGVuZ2luZSBvbmNlLCBzbyB3aXRob3V0IHRoaXMgYSB3b3Jrc3BhY2UgY3JlYXRlZCBtb250aHMgYWdvXG4gKiB3b3VsZCBrZWVwIHJlc29sdmluZyBpdHMgb3JpZ2luYWwgZW5naW5lIG5vIG1hdHRlciBob3cgY3VycmVudCB0aGUgQ0xJIGludm9raW5nIGl0XG4gKiBpcywgYW5kIHdvdWxkIGZhaWwgaW5zaWRlIFRIQVQgZW5naW5lJ3MgY29kZSAoYHN5bmMgLS13YXRjaGAgZHlpbmcgb24gYVxuICogYGNvbmN1cnJlbnRseWAgaXQgbmV2ZXIgZGVjbGFyZWQpLiBUaGUgdHdvIGFyZSByZWxlYXNlZCBpbiBsb2Nrc3RlcCwgc28gdGhpcyBDTEknc1xuICogdmVyc2lvbiBpcyBleGFjdGx5IHRoZSBlbmdpbmUgaXQgZXhwZWN0cy5cbiAqXG4gKiBPbmx5IGV2ZXIgbW92ZXMgRk9SV0FSRDogYW4gZW5naW5lIGF0IG9yIGFoZWFkIG9mIHRoaXMgQ0xJIGlzIGxlZnQgYWxvbmUsIHNvXG4gKiBhbiBvbGRlciBDTEkgY2Fubm90IGRvd25ncmFkZSBhIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUVuZ2luZUN1cnJlbnQocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGV4cGVjdGVkID0gb3duVmVyc2lvbigpO1xuICBpZiAoIWV4cGVjdGVkKSByZXR1cm47XG4gIGNvbnN0IGluc3RhbGxlZCA9IGluc3RhbGxlZEVuZ2luZVZlcnNpb24ocm9vdCk7XG4gIGlmIChpbnN0YWxsZWQgJiYgY29tcGFyZVZlcnNpb25zKGluc3RhbGxlZCwgZXhwZWN0ZWQpID49IDApIHJldHVybjtcbiAgcnVuQnVuKFtcImFkZFwiLCBcIi1EXCIsIGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKV0sIHJvb3QpO1xufVxuXG5jb25zdCBQUk9KRU5SQ19URU1QTEFURSA9IGBpbXBvcnQgeyBwcm9qZWN0SnMgfSBmcm9tIFwiQGRieC10b29scy9wcm9qZW5cIjtcblxuY29uc3Qgcm9vdFByb2plY3QgPSBuZXcgcHJvamVjdEpzLkRCWFRvb2xzTm9kZVByb2plY3QoKTtcbnJvb3RQcm9qZWN0LnN5bnRoKCk7XG5gO1xuXG4vKipcbiAqIFR1cm4gYSBmb2xkZXIgaW50byBhIGZ1bmN0aW9uaW5nIGRieC10b29scyB3b3Jrc3BhY2U6IGBidW4gaW5pdGAsIHNlZWQgdGhlXG4gKiBgcGFja2FnZS5qc29uYCB3b3Jrc3BhY2UgZmllbGRzIChidW4gcmVhZHMgYHdvcmtzcGFjZXNgL2B0cnVzdGVkRGVwZW5kZW5jaWVzYFxuICogZnJvbSB0aGUgbWFuaWZlc3QpLCBhZGQgYHByb2plbmAvYHR5cGVzY3JpcHRgICsgdGhlIGVuZ2luZSBwYWNrYWdlLCB3cml0ZSBhXG4gKiBtaW5pbWFsIGAucHJvamVucmMudHNgLCBzeW50aCBvbmNlICh3aXRoIGBQUk9KRU5fRElTQUJMRV9QT1NUYCksIHRoZW4gaW5zdGFsbC5cbiAqIERvZXMgbm90IHJ1biBiYXJyZWxzIC0gcnVuIGBidW4gcnVuIGJhcnJlbHNgIG9yIGEgZnVsbCBwcm9qZW4gc3ludGggcG9zdC1pbnN0YWxsXG4gKiB0byBnZW5lcmF0ZSBwYWNrYWdlIGJhcnJlbHMuXG4gKlxuICogRXZlcnkgc3RlcCBpcyBpZGVtcG90ZW50IGFuZCBzZWxmLWd1YXJkZWQsIHNvIHRoaXMgaXMgc2FmZSB0byBydW4gYWdhaW5zdCBhXG4gKiBmb2xkZXIgdGhhdCBBTFJFQURZIGhhcyBhIGhhbmQtYXV0aG9yZWQgYC5wcm9qZW5yYy50c2AgKGFuZCBldmVuIGEgY29tbWl0dGVkXG4gKiBgcGFja2FnZS5qc29uYCkgYnV0IGlzIG1pc3NpbmcgdGhlIGluc3RhbGxlZCB0b29sY2hhaW4gLSBlLmcuIGEgZnJlc2hseSBjb3BpZWRcbiAqIHByb2plY3Qgd2hvc2UgZ2VuZXJhdGVkIGZpbGVzIChpbmNsdWRpbmcgbWFuaWZlc3RzKSBhcmUgZ2l0aWdub3JlZC4gSW4gdGhhdFxuICogY2FzZSBgYnVuIGluaXRgIGFuZCB0aGUgYC5wcm9qZW5yYy50c2Agc2NhZmZvbGQgYXJlIHNraXBwZWQsIGJ1dCB0aGUgZW5naW5lICtcbiAqIHByb2plbiBhcmUgKHJlKWluc3RhbGxlZCBzbyB0aGUgc3Vic2VxdWVudCBzeW50aCBjYW4gcmVnZW5lcmF0ZSBldmVyeXRoaW5nLlxuICogU2VlIHtAbGluayBzZWVkVG9vbGNoYWlufS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFdvcmtzcGFjZShcbiAgcm9vdDogc3RyaW5nLFxuICBwcm9qZW5TcGVjaWZpZXI6IHN0cmluZyA9IGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKSxcbik6IHZvaWQge1xuICBpbnRybyhgQm9vdHN0cmFwcGluZyBkYngtdG9vbHMgd29ya3NwYWNlIGluICR7cm9vdExhYmVsKHJvb3QpfWApO1xuXG4gIHNlZWRUb29sY2hhaW4ocm9vdCwgcHJvamVuU3BlY2lmaWVyKTtcblxuICBjb25zdCBwcm9qZW5yYyA9IGpvaW4ocm9vdCwgXCIucHJvamVucmMudHNcIik7XG4gIGlmICghZXhpc3RzU3luYyhwcm9qZW5yYykpIHtcbiAgICB3cml0ZUZpbGVTeW5jKHByb2plbnJjLCBQUk9KRU5SQ19URU1QTEFURSk7XG4gIH1cblxuICBydW5Jbml0aWFsU3ludGgocm9vdCk7XG5cbiAgcnVuQnVuKFtcImluc3RhbGxcIl0sIHJvb3QpO1xuICBvdXRybyhcIldvcmtzcGFjZSByZWFkeSAtIHJlLXJ1biBkYngtdG9vbHMgb3IgYWRkIHBhY2thZ2VzIHVuZGVyIHBhY2thZ2VzL1wiKTtcbn1cblxuLyoqXG4gKiBJbnN0YWxsIHRoZSB0b29sY2hhaW4gYSBzeW50aCBuZWVkcyAoYHByb2plbmAsIGB0eXBlc2NyaXB0YCwgYW5kIHRoZSBkYngtdG9vbHNcbiAqIGVuZ2luZSksIHNlZWRpbmcgYSBgcGFja2FnZS5qc29uYCBmaXJzdCB3aGVuIGFic2VudC4gYnVuIHJlYWRzIGl0cyB3b3Jrc3BhY2VcbiAqIGNvbmZpZyAoYHdvcmtzcGFjZXNgL2B0cnVzdGVkRGVwZW5kZW5jaWVzYCkgZnJvbSB0aGUgbWFuaWZlc3QsIHNvIHRoZXJlIGlzIG5vXG4gKiBzZXBhcmF0ZSB3b3Jrc3BhY2UgZmlsZSB0byBzZWVkIC0gdGhlIGVuZ2luZSB3cml0ZXMgYHBucG0td29ya3NwYWNlLnlhbWxgIGF0XG4gKiBzeW50aCBmb3IgdGhlIERhdGFicmlja3MgQXBwcyBwbGF0Zm9ybS4gSWRlbXBvdGVudDogcnVuIGl0IHdoZW5ldmVyIHRoZSBlbmdpbmVcbiAqIGlzIG1pc3NpbmcsIHNvIGEgY29waWVkIHByb2plY3Qgd2l0aCBhIGAucHJvamVucmMudHNgIGJ1dCBub1xuICogYG5vZGVfbW9kdWxlc2AvbWFuaWZlc3QgY2FuIGJlIGJyb3VnaHQgdXAgdG8gYSBzeW50aC1yZWFkeSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlZWRUb29sY2hhaW4oXG4gIHJvb3Q6IHN0cmluZyxcbiAgcHJvamVuU3BlY2lmaWVyOiBzdHJpbmcgPSBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCksXG4pOiB2b2lkIHtcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihyb290LCBcInBhY2thZ2UuanNvblwiKTtcbiAgaWYgKCFleGlzdHNTeW5jKG1hbmlmZXN0UGF0aCkpIHtcbiAgICBydW5CdW4oW1wiaW5pdFwiLCBcIi15XCJdLCByb290KTtcbiAgICBub3JtYWxpemVTZWVkTWFuaWZlc3QobWFuaWZlc3RQYXRoKTtcbiAgfVxuXG4gIGNvbnN0IGtlcm5lbEFyY2ggPSBzcGF3blN5bmMoXCJ1bmFtZVwiLCBbXCItbVwiXSwge1xuICAgIHN0ZGluOiBcImlnbm9yZVwiLFxuICAgIHN0ZG91dDogXCJjYXB0dXJlXCIsXG4gICAgc3RkZXJyOiBcImlnbm9yZVwiLFxuICB9KS5zdGRvdXQ7XG4gIGxvZ2dlci5pbmZvKFwic2VlZGluZyB0b29sY2hhaW5cIiwge1xuICAgIG5vZGU6IHByb2Nlc3MudmVyc2lvbixcbiAgICBidW46IHByb2Nlc3MudmVyc2lvbnMuYnVuLFxuICAgIHBsYXRmb3JtOiBwcm9jZXNzLnBsYXRmb3JtLFxuICAgIGFyY2g6IHByb2Nlc3MuYXJjaCxcbiAgICBrZXJuZWxBcmNoOiBrZXJuZWxBcmNoIHx8IFwidW5rbm93blwiLFxuICAgIGVuZ2luZTogcHJvamVuU3BlY2lmaWVyLFxuICB9KTtcbiAgcnVuQnVuKFtcImFkZFwiLCBcIi1EXCIsIFwicHJvamVuXCIsIFwidHlwZXNjcmlwdEBeNS45LjNcIiwgXCJAdHlwZXMvYnVuXCIsIHByb2plblNwZWNpZmllcl0sIHJvb3QpO1xufVxuXG4vKipcbiAqIE1ha2Ugd2hhdCBgYnVuIGluaXRgIHByb2R1Y2VkIHNhZmUgdG8gc3ludGggYWdhaW5zdDogZm9yY2UgYHR5cGU6IFwibW9kdWxlXCJgXG4gKiAoYnVuIHJ1bnMgYC5wcm9qZW5yYy50c2AgZmluZSBlaXRoZXIgd2F5LCBidXQgcHJvamVuJ3MgRVNNIHNvdXJjZXMgYW5kIHRoZVxuICogZW1pdHRlZCBjb25maWcgYXNzdW1lIG1vZHVsZSB0eXBlKSBhbmQgZHJvcCBhbnkgYHBhY2thZ2VNYW5hZ2VyYC9gZGV2RW5naW5lc2BcbiAqIGZpZWxkIHRoYXQgd291bGQgcGluIGEgZGlmZmVyZW50IG1hbmFnZXIuIHByb2plbiByZWdlbmVyYXRlcyB0aGUgd2hvbGUgbWFuaWZlc3RcbiAqIGF0IHN5bnRoLCBzbyB0aGlzIG9ubHkgaGFzIHRvIGhvbGQgdGhlIHNlZWQgdG9nZXRoZXIgbG9uZyBlbm91Z2ggdG8gZ2V0IHRoZXJlLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTZWVkTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IHBhcnNlUmVjb3JkKHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsIFwidXRmOFwiKSk7XG4gICAgaWYgKCFtYW5pZmVzdCkgcmV0dXJuO1xuICAgIGRlbGV0ZSBtYW5pZmVzdC5kZXZFbmdpbmVzO1xuICAgIGRlbGV0ZSBtYW5pZmVzdC5wYWNrYWdlTWFuYWdlcjtcbiAgICBtYW5pZmVzdC50eXBlID0gXCJtb2R1bGVcIjtcbiAgICB3cml0ZUZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgYCR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIG51bGwsIDIpfVxcbmApO1xuICB9IGNhdGNoIHtcbiAgICAvLyBBIG1hbGZvcm1lZC9hYnNlbnQgbWFuaWZlc3QgaGVyZSBqdXN0IG1lYW5zIHRoZSBsYXRlciBgYnVuIGFkZGAgcmVjcmVhdGVzIGl0LlxuICB9XG59XG5cbi8qKlxuICogUnVuIHRoZSBpbml0aWFsIHN5bnRoIGJ5IGV4ZWN1dGluZyBgLnByb2plbnJjLnRzYCBkaXJlY3RseSB3aXRoIGJ1biAod2l0aFxuICogYFBST0pFTl9ESVNBQkxFX1BPU1RgIHNldCksIE5PVCBgcHJvamVuIDx0YXNrPmAuIFVzZSByaWdodCBhZnRlciBzZWVkaW5nIGFcbiAqIGZyZXNoIHdvcmtzcGFjZTogdGhlIHByb2plbiBUQVNLUyAoYHN5bmNgLCBgYmFycmVsc2AsIC4uLikgb25seSBleGlzdCBvbmNlXG4gKiBgLnByb2plbnJjLnRzYCBoYXMgcnVuIG9uY2UsIHNvIGBwcm9qZW4gc3luY2AgY2FuJ3QgYmUgdGhlIGJvb3RzdHJhcHBpbmcgc3RlcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkluaXRpYWxTeW50aChyb290OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLnByZWZpeF0gPSByZXNvbHZlQnVuQXJndigpO1xuICAvLyBidW4gcnVucyB0aGUgYC50c2AgZGlyZWN0bHkuIFJlZ2lzdHJ5IGVudmlyb25tZW50IGFsaWFzZXMgcmVhY2ggbmVzdGVkXG4gIC8vIGNvbW1hbmRzIHRocm91Z2ggYGNoaWxkRW52YCB3aXRob3V0IHdyaXRpbmcgcHJvamVjdC1sZXZlbCBucG0gY29uZmlndXJhdGlvbi5cbiAgc3Bhd25TeW5jKGNvbW1hbmQsIFsuLi5wcmVmaXgsIFwiLnByb2plbnJjLnRzXCJdLCB7XG4gICAgY3dkOiByb290LFxuICAgIGVudjogY2hpbGRFbnYoeyBQUk9KRU5fRElTQUJMRV9QT1NUOiBcInRydWVcIiB9KSxcbiAgICBjaGVjazogdHJ1ZSxcbiAgfSk7XG59XG4iXX0=
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { DatabricksAuthOptionsSchema } from "@dbx-tools/auth/config";
6
+ import { DatabricksAuthOptionsSchema } from "@dbx-tools/auth";
7
7
  import { z } from "zod";
8
8
  /** Options for exporting one researched brand package. */
9
9
  export const BrandExportOptionsSchema = z
@@ -45,4 +45,4 @@ export const BrandExportOptionsSchema = z
45
45
  })
46
46
  .strict()
47
47
  .describe("Options for exporting a researched brand package.");
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmFuZC9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDO0tBQ3RDLE1BQU0sQ0FBQztJQUNOLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTztJQUNsRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUM7SUFDakYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUM7SUFDOUUsTUFBTSxFQUFFLENBQUM7U0FDTixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUU7U0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ04sUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUNQLDBIQUEwSCxDQUMzSDtJQUNILEtBQUssRUFBRSxDQUFDO1NBQ0wsTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQywyREFBMkQsQ0FBQztJQUN4RSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDakIsTUFBTSxFQUFFO1NBQ1IsR0FBRyxFQUFFO1NBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDTixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1YsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ25ELGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtTQUN0QixNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQztTQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDZCxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakUsUUFBUSxFQUFFLENBQUM7U0FDUixPQUFPLEVBQUU7U0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsUUFBUSxDQUFDLHlEQUF5RCxDQUFDO0lBQ3RFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztDQUM3RixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLG1EQUFtRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBkYnggYnJhbmRgIG9wdGlvbiBjb250cmFjdHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL2F1dGgvY29uZmlnXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vKiogT3B0aW9ucyBmb3IgZXhwb3J0aW5nIG9uZSByZXNlYXJjaGVkIGJyYW5kIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgQnJhbmRFeHBvcnRPcHRpb25zU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBwcm9maWxlOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUucHJvZmlsZSxcbiAgICBuYW1lOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkub3B0aW9uYWwoKS5kZXNjcmliZShcIktub3duIGNhbm9uaWNhbCBicmFuZCBuYW1lLlwiKSxcbiAgICB3ZWJzaXRlOiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJLbm93biBvZmZpY2lhbCBIVFRQUyB3ZWJzaXRlLlwiKSxcbiAgICBvdXRwdXQ6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJQZXJzaXN0ZW50IG91dHB1dCBkaXJlY3RvcnkgZm9yIGJyYW5kLnlhbWwsIHNob3djYXNlLCBwcm92ZW5hbmNlLCBhbmQgdmlzdWFsIHJlZmVyZW5jZXMuIE9taXQgZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS5cIixcbiAgICAgICksXG4gICAgbW9kZWw6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIk9wdGlvbmFsIERhdGFicmlja3MgbW9kZWwgcHJlZmVyZW5jZSBmb3IgYnJhbmQgc3ludGhlc2lzLlwiKSxcbiAgICBtYXhTb3VyY2VzOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcigpXG4gICAgICAuaW50KClcbiAgICAgIC5taW4oMSlcbiAgICAgIC5tYXgoOClcbiAgICAgIC5kZWZhdWx0KDQpXG4gICAgICAuZGVzY3JpYmUoXCJNYXhpbXVtIGdlbmVyYWwgd2ViIHNvdXJjZXMgdG8gcmVhZC5cIiksXG4gICAgc291cmNlTWF4TGVuZ3RoOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcigpXG4gICAgICAuaW50KClcbiAgICAgIC5taW4oMV8wMDApXG4gICAgICAubWF4KDIwXzAwMClcbiAgICAgIC5kZWZhdWx0KDhfMDAwKVxuICAgICAgLmRlc2NyaWJlKFwiTWF4aW11bSBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gZWFjaCBzb3VyY2UgcGFnZS5cIiksXG4gICAgc2hvd2Nhc2U6IHpcbiAgICAgIC5ib29sZWFuKClcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXCJSZXNwb25zaXZlIEhUTUwgYnJhbmQgcHJlc2VudGF0aW9uIGFuZCB3ZWJzaXRlIG1vY2t1cHMuXCIpLFxuICAgIGZvcmNlOiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKS5kZXNjcmliZShcIlJlcGxhY2UgZmlsZXMgaW4gYW4gZXhpc3Rpbmcgb3V0cHV0IGRpcmVjdG9yeS5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPcHRpb25zIGZvciBleHBvcnRpbmcgYSByZXNlYXJjaGVkIGJyYW5kIHBhY2thZ2UuXCIpO1xuXG4vKiogUmVzb2x2ZWQgYnJhbmQgZXhwb3J0IG9wdGlvbnMuICovXG5leHBvcnQgdHlwZSBCcmFuZEV4cG9ydE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgQnJhbmRFeHBvcnRPcHRpb25zU2NoZW1hPjtcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmFuZC9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDO0tBQ3RDLE1BQU0sQ0FBQztJQUNOLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTztJQUNsRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUM7SUFDakYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUM7SUFDOUUsTUFBTSxFQUFFLENBQUM7U0FDTixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUU7U0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ04sUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUNQLDBIQUEwSCxDQUMzSDtJQUNILEtBQUssRUFBRSxDQUFDO1NBQ0wsTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQywyREFBMkQsQ0FBQztJQUN4RSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDakIsTUFBTSxFQUFFO1NBQ1IsR0FBRyxFQUFFO1NBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDTixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1YsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ25ELGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtTQUN0QixNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQztTQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDZCxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakUsUUFBUSxFQUFFLENBQUM7U0FDUixPQUFPLEVBQUU7U0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsUUFBUSxDQUFDLHlEQUF5RCxDQUFDO0lBQ3RFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztDQUM3RixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLG1EQUFtRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBkYnggYnJhbmRgIG9wdGlvbiBjb250cmFjdHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL2F1dGhcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8qKiBPcHRpb25zIGZvciBleHBvcnRpbmcgb25lIHJlc2VhcmNoZWQgYnJhbmQgcGFja2FnZS4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZEV4cG9ydE9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHByb2ZpbGU6IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYS5zaGFwZS5wcm9maWxlLFxuICAgIG5hbWU6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiS25vd24gY2Fub25pY2FsIGJyYW5kIG5hbWUuXCIpLFxuICAgIHdlYnNpdGU6IHouc3RyaW5nKCkudXJsKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIktub3duIG9mZmljaWFsIEhUVFBTIHdlYnNpdGUuXCIpLFxuICAgIG91dHB1dDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgICAubWluKDEpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIlBlcnNpc3RlbnQgb3V0cHV0IGRpcmVjdG9yeSBmb3IgYnJhbmQueWFtbCwgc2hvd2Nhc2UsIHByb3ZlbmFuY2UsIGFuZCB2aXN1YWwgcmVmZXJlbmNlcy4gT21pdCBmb3IgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LlwiLFxuICAgICAgKSxcbiAgICBtb2RlbDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgICAubWluKDEpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiT3B0aW9uYWwgRGF0YWJyaWNrcyBtb2RlbCBwcmVmZXJlbmNlIGZvciBicmFuZCBzeW50aGVzaXMuXCIpLFxuICAgIG1heFNvdXJjZXM6IHouY29lcmNlXG4gICAgICAubnVtYmVyKClcbiAgICAgIC5pbnQoKVxuICAgICAgLm1pbigxKVxuICAgICAgLm1heCg4KVxuICAgICAgLmRlZmF1bHQoNClcbiAgICAgIC5kZXNjcmliZShcIk1heGltdW0gZ2VuZXJhbCB3ZWIgc291cmNlcyB0byByZWFkLlwiKSxcbiAgICBzb3VyY2VNYXhMZW5ndGg6IHouY29lcmNlXG4gICAgICAubnVtYmVyKClcbiAgICAgIC5pbnQoKVxuICAgICAgLm1pbigxXzAwMClcbiAgICAgIC5tYXgoMjBfMDAwKVxuICAgICAgLmRlZmF1bHQoOF8wMDApXG4gICAgICAuZGVzY3JpYmUoXCJNYXhpbXVtIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBlYWNoIHNvdXJjZSBwYWdlLlwiKSxcbiAgICBzaG93Y2FzZTogelxuICAgICAgLmJvb2xlYW4oKVxuICAgICAgLmRlZmF1bHQodHJ1ZSlcbiAgICAgIC5kZXNjcmliZShcIlJlc3BvbnNpdmUgSFRNTCBicmFuZCBwcmVzZW50YXRpb24gYW5kIHdlYnNpdGUgbW9ja3Vwcy5cIiksXG4gICAgZm9yY2U6IHouYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLmRlc2NyaWJlKFwiUmVwbGFjZSBmaWxlcyBpbiBhbiBleGlzdGluZyBvdXRwdXQgZGlyZWN0b3J5LlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIk9wdGlvbnMgZm9yIGV4cG9ydGluZyBhIHJlc2VhcmNoZWQgYnJhbmQgcGFja2FnZS5cIik7XG5cbi8qKiBSZXNvbHZlZCBicmFuZCBleHBvcnQgb3B0aW9ucy4gKi9cbmV4cG9ydCB0eXBlIEJyYW5kRXhwb3J0T3B0aW9ucyA9IHoub3V0cHV0PHR5cGVvZiBCcmFuZEV4cG9ydE9wdGlvbnNTY2hlbWE+O1xuIl19
@@ -6,12 +6,10 @@
6
6
  import { mkdtemp } from "node:fs/promises";
7
7
  import { tmpdir } from "node:os";
8
8
  import path from "node:path";
9
- import { generateBrandPackage } from "@dbx-tools/appkit-generator/generate";
10
- import { runWebAssetPageFetch, runWebFetch, runWebImageFetch, } from "@dbx-tools/appkit-web-search/fetch";
11
- import { createWebSearchRuntime } from "@dbx-tools/appkit-web-search/runtime";
12
- import { runWebSearch } from "@dbx-tools/appkit-web-search/search";
13
- import { createWorkspaceClient } from "@dbx-tools/databricks/workspace-client";
14
- import { object } from "@dbx-tools/shared-core";
9
+ import { generateBrandPackage } from "@dbx-tools/appkit-generator";
10
+ import { runWebAssetPageFetch, runWebFetch, runWebImageFetch, createWebSearchRuntime, runWebSearch, } from "@dbx-tools/appkit-web-search";
11
+ import { createWorkspaceClient } from "@dbx-tools/databricks";
12
+ import { isRecord } from "@dbx-tools/shared-core";
15
13
  import { writeBrandPackage } from "./export.js";
16
14
  /**
17
15
  * Research a freeform brand brief, synthesize a portable context, and export
@@ -37,7 +35,7 @@ export async function exportBrandFromPrompt(prompt, options, callbacks = {}) {
37
35
  host,
38
36
  ...(options.profile ? { cacheIdentity: `profile:${options.profile}` } : {}),
39
37
  }, signal, async (event) => {
40
- if (!object.isRecord(event))
38
+ if (!isRecord(event))
41
39
  return;
42
40
  const status = typeof event.status === "string" ? event.status : undefined;
43
41
  const eventMessage = typeof event.message === "string" ? event.message.trim() : undefined;
@@ -75,4 +73,4 @@ export async function exportBrandFromPrompt(prompt, options, callbacks = {}) {
75
73
  force: options.force,
76
74
  });
77
75
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGlCQUFpQixFQUE0QixNQUFNLGFBQWEsQ0FBQztBQVExRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxNQUFjLEVBQ2QsT0FBMkIsRUFDM0IsWUFBa0MsRUFBRTtJQUVwQyxNQUFNLGVBQWUsR0FBRyxNQUFNLHFCQUFxQixDQUFDO1FBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUN6RCxDQUFDLENBQUM7SUFDSCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lB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QyxFQUFFLENBQUM7UUFDbEQsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtRQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsVUFBVSxDQUFDLEtBQUs7WUFDZCxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUNGLENBQUM7SUFDRixJQUFJLENBQUMsUUFBUTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUN6RixNQUFNLGVBQWUsR0FDbkIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxpQkFBaUIsQ0FBQztRQUN2QixlQUFlO1FBQ2YsTUFBTTtRQUNOLFlBQVk7UUFDWixRQUFRO1FBQ1IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFsb25lIHJlc2VhcmNoZWQgYnJhbmQgZ2VuZXJhdGlvbiBmb3IgdGhlIGNvbnNvbGlkYXRlZCBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG1rZHRlbXAgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGdlbmVyYXRlQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvci9nZW5lcmF0ZVwiO1xuaW1wb3J0IHtcbiAgcnVuV2ViQXNzZXRQYWdlRmV0Y2gsXG4gIHJ1bldlYkZldGNoLFxuICBydW5XZWJJbWFnZUZldGNoLFxufSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtd2ViLXNlYXJjaC9mZXRjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV2ViU2VhcmNoUnVudGltZSB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3J1bnRpbWVcIjtcbmltcG9ydCB7IHJ1bldlYlNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3NlYXJjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrcy93b3Jrc3BhY2UtY2xpZW50XCI7XG5pbXBvcnQgeyBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuXG5pbXBvcnQgeyB3cml0ZUJyYW5kUGFja2FnZSwgdHlwZSBXcml0dGVuQnJhbmRQYWNrYWdlIH0gZnJvbSBcIi4vZXhwb3J0LnRzXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kRXhwb3J0T3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnMudHNcIjtcblxuLyoqIE9wdGlvbmFsIG9ic2VydmVycyBmb3Igb25lIENMSSBicmFuZCBnZW5lcmF0aW9uIHJ1bi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRFeHBvcnRDYWxsYmFja3Mge1xuICByZWFkb25seSBvblByb2dyZXNzPzogKGV2ZW50OiBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSZXNlYXJjaCBhIGZyZWVmb3JtIGJyYW5kIGJyaWVmLCBzeW50aGVzaXplIGEgcG9ydGFibGUgY29udGV4dCwgYW5kIGV4cG9ydFxuICogdGhlIHBhY2thZ2UgdG8gZGlzay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cG9ydEJyYW5kRnJvbVByb21wdChcbiAgcHJvbXB0OiBzdHJpbmcsXG4gIG9wdGlvbnM6IEJyYW5kRXhwb3J0T3B0aW9ucyxcbiAgY2FsbGJhY2tzOiBCcmFuZEV4cG9ydENhbGxiYWNrcyA9IHt9LFxuKTogUHJvbWlzZTxXcml0dGVuQnJhbmRQYWNrYWdlPiB7XG4gIGNvbnN0IHdvcmtzcGFjZUNsaWVudCA9IGF3YWl0IGNyZWF0ZVdvcmtzcGFjZUNsaWVudCh7XG4gICAgLi4uKG9wdGlvbnMucHJvZmlsZSA/IHsgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlIH0gOiB7fSksXG4gIH0pO1xuICBjb25zdCBob3N0ID0gKGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jb25maWcuZ2V0SG9zdCgpKS50b1N0cmluZygpO1xuICBjb25zdCBydW50aW1lID0gY3JlYXRlV2ViU2VhcmNoUnVudGltZSh7XG4gICAgLi4uKG9wdGlvbnMubW9kZWwgPyB7IG1vZGVsOiBvcHRpb25zLm1vZGVsIH0gOiB7fSksXG4gIH0pO1xuICBsZXQgcmVzZWFyY2g6IEJyYW5kUmVzZWFyY2ggfCB1bmRlZmluZWQ7XG4gIGNvbnN0IGJyYW5kUGFja2FnZSA9IGF3YWl0IGdlbmVyYXRlQnJhbmRQYWNrYWdlKFxuICAgIHtcbiAgICAgIHByb21wdCxcbiAgICAgIC4uLihvcHRpb25zLm5hbWUgPyB7IG5hbWU6IG9wdGlvbnMubmFtZSB9IDoge30pLFxuICAgICAgLi4uKG9wdGlvbnMud2Vic2l0ZSA/IHsgd2Vic2l0ZTogb3B0aW9ucy53ZWJzaXRlIH0gOiB7fSksXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGllbnQ6IHtcbiAgICAgICAgc2VhcmNoOiAocmVxdWVzdCwgc2lnbmFsKSA9PlxuICAgICAgICAgIHJ1bldlYlNlYXJjaChcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICBydW50aW1lLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGllbnQ6IHdvcmtzcGFjZUNsaWVudCxcbiAgICAgICAgICAgICAgaG9zdCxcbiAgICAgICAgICAgICAgLi4uKG9wdGlvbnMucHJvZmlsZSA/IHsgY2FjaGVJZGVudGl0eTogYHByb2ZpbGU6JHtvcHRpb25zLnByb2ZpbGV9YCB9IDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgICAgIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIW9iamVjdC5pc1JlY29yZChldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gdHlwZW9mIGV2ZW50LnN0YXR1cyA9PT0gXCJzdHJpbmdcIiA/IGV2ZW50LnN0YXR1cyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgY29uc3QgZXZlbnRNZXNzYWdlID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgZXZlbnQubWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IGV2ZW50Lm1lc3NhZ2UudHJpbSgpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBjb25zdCBkZXRhaWwgPSB0eXBlb2YgZXZlbnQuZGV0YWlsID09PSBcInN0cmluZ1wiID8gZXZlbnQuZGV0YWlsLnRyaW0oKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgYXdhaXQgY2FsbGJhY2tzLm9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICAgICAgICAgIHN0YWdlOiBcInNlYXJjaFwiLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgICBzdGF0dXMgPT09IFwic2VhcmNoXCIgJiYgZXZlbnRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgID8gYFdlYiBzZWFyY2g6ICR7ZXZlbnRNZXNzYWdlfWBcbiAgICAgICAgICAgICAgICAgICAgOiBgV2ViIHNlYXJjaCBjb21wbGV0ZSR7ZGV0YWlsID8gYDogJHtkZXRhaWx9YCA6IFwiXCJ9YCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIGZldGNoOiAocmVxdWVzdCwgc2lnbmFsKSA9PiBydW5XZWJGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgICBmZXRjaEFzc2V0UGFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViQXNzZXRQYWdlRmV0Y2gocmVxdWVzdCwgcnVudGltZSwgc2lnbmFsKSxcbiAgICAgICAgZmV0Y2hJbWFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViSW1hZ2VGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgfSxcbiAgICAgIHdvcmtzcGFjZUNsaWVudCxcbiAgICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgICAgbWF4U291cmNlczogb3B0aW9ucy5tYXhTb3VyY2VzLFxuICAgICAgc291cmNlTWF4TGVuZ3RoOiBvcHRpb25zLnNvdXJjZU1heExlbmd0aCxcbiAgICAgIC4uLihjYWxsYmFja3Mub25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzczogY2FsbGJhY2tzLm9uUHJvZ3Jlc3MgfSA6IHt9KSxcbiAgICAgIG9uUmVzZWFyY2godmFsdWUpIHtcbiAgICAgICAgcmVzZWFyY2ggPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbiAgaWYgKCFyZXNlYXJjaCkgdGhyb3cgbmV3IEVycm9yKFwiQnJhbmQgZ2VuZXJhdGlvbiBjb21wbGV0ZWQgd2l0aG91dCByZXNlYXJjaCBwcm92ZW5hbmNlXCIpO1xuICBjb25zdCBvdXRwdXREaXJlY3RvcnkgPVxuICAgIG9wdGlvbnMub3V0cHV0ID8/IChhd2FpdCBta2R0ZW1wKHBhdGguam9pbih0bXBkaXIoKSwgXCJkYngtdG9vbHMtYnJhbmQtXCIpKSk7XG4gIHJldHVybiB3cml0ZUJyYW5kUGFja2FnZSh7XG4gICAgb3V0cHV0RGlyZWN0b3J5LFxuICAgIHByb21wdCxcbiAgICBicmFuZFBhY2thZ2UsXG4gICAgcmVzZWFyY2gsXG4gICAgc2hvd2Nhc2U6IG9wdGlvbnMuc2hvd2Nhc2UsXG4gICAgZm9yY2U6IG9wdGlvbnMuZm9yY2UsXG4gIH0pO1xufVxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxhQUFhLENBQUM7QUFRMUU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsTUFBYyxFQUNkLE9BQTJCLEVBQzNCLFlBQWtDLEVBQUU7SUFFcEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztRQUNsRCxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDekQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQztRQUNyQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FB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QUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsVUFBVSxDQUFDLEtBQUs7WUFDZCxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUNGLENBQUM7SUFDRixJQUFJLENBQUMsUUFBUTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUN6RixNQUFNLGVBQWUsR0FDbkIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxpQkFBaUIsQ0FBQztRQUN2QixlQUFlO1FBQ2YsTUFBTTtRQUNOLFlBQVk7UUFDWixRQUFRO1FBQ1IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFsb25lIHJlc2VhcmNoZWQgYnJhbmQgZ2VuZXJhdGlvbiBmb3IgdGhlIGNvbnNvbGlkYXRlZCBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG1rZHRlbXAgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGdlbmVyYXRlQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvclwiO1xuaW1wb3J0IHtcbiAgcnVuV2ViQXNzZXRQYWdlRmV0Y2gsXG4gIHJ1bldlYkZldGNoLFxuICBydW5XZWJJbWFnZUZldGNoLFxuICBjcmVhdGVXZWJTZWFyY2hSdW50aW1lLFxuICBydW5XZWJTZWFyY2gsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoXCI7XG5pbXBvcnQgeyBjcmVhdGVXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRieC10b29scy9kYXRhYnJpY2tzXCI7XG5pbXBvcnQgeyBpc1JlY29yZCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yXCI7XG5cbmltcG9ydCB7IHdyaXRlQnJhbmRQYWNrYWdlLCB0eXBlIFdyaXR0ZW5CcmFuZFBhY2thZ2UgfSBmcm9tIFwiLi9leHBvcnQudHNcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRFeHBvcnRPcHRpb25zIH0gZnJvbSBcIi4vb3B0aW9ucy50c1wiO1xuXG4vKiogT3B0aW9uYWwgb2JzZXJ2ZXJzIGZvciBvbmUgQ0xJIGJyYW5kIGdlbmVyYXRpb24gcnVuLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZEV4cG9ydENhbGxiYWNrcyB7XG4gIHJlYWRvbmx5IG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlc2VhcmNoIGEgZnJlZWZvcm0gYnJhbmQgYnJpZWYsIHN5bnRoZXNpemUgYSBwb3J0YWJsZSBjb250ZXh0LCBhbmQgZXhwb3J0XG4gKiB0aGUgcGFja2FnZSB0byBkaXNrLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhwb3J0QnJhbmRGcm9tUHJvbXB0KFxuICBwcm9tcHQ6IHN0cmluZyxcbiAgb3B0aW9uczogQnJhbmRFeHBvcnRPcHRpb25zLFxuICBjYWxsYmFja3M6IEJyYW5kRXhwb3J0Q2FsbGJhY2tzID0ge30sXG4pOiBQcm9taXNlPFdyaXR0ZW5CcmFuZFBhY2thZ2U+IHtcbiAgY29uc3Qgd29ya3NwYWNlQ2xpZW50ID0gYXdhaXQgY3JlYXRlV29ya3NwYWNlQ2xpZW50KHtcbiAgICAuLi4ob3B0aW9ucy5wcm9maWxlID8geyBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgfSA6IHt9KSxcbiAgfSk7XG4gIGNvbnN0IGhvc3QgPSAoYXdhaXQgd29ya3NwYWNlQ2xpZW50LmNvbmZpZy5nZXRIb3N0KCkpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHJ1bnRpbWUgPSBjcmVhdGVXZWJTZWFyY2hSdW50aW1lKHtcbiAgICAuLi4ob3B0aW9ucy5tb2RlbCA/IHsgbW9kZWw6IG9wdGlvbnMubW9kZWwgfSA6IHt9KSxcbiAgfSk7XG4gIGxldCByZXNlYXJjaDogQnJhbmRSZXNlYXJjaCB8IHVuZGVmaW5lZDtcbiAgY29uc3QgYnJhbmRQYWNrYWdlID0gYXdhaXQgZ2VuZXJhdGVCcmFuZFBhY2thZ2UoXG4gICAge1xuICAgICAgcHJvbXB0LFxuICAgICAgLi4uKG9wdGlvbnMubmFtZSA/IHsgbmFtZTogb3B0aW9ucy5uYW1lIH0gOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy53ZWJzaXRlID8geyB3ZWJzaXRlOiBvcHRpb25zLndlYnNpdGUgfSA6IHt9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBzZWFyY2g6IChyZXF1ZXN0LCBzaWduYWwpID0+XG4gICAgICAgICAgcnVuV2ViU2VhcmNoKFxuICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgIHJ1bnRpbWUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsaWVudDogd29ya3NwYWNlQ2xpZW50LFxuICAgICAgICAgICAgICBob3N0LFxuICAgICAgICAgICAgICAuLi4ob3B0aW9ucy5wcm9maWxlID8geyBjYWNoZUlkZW50aXR5OiBgcHJvZmlsZToke29wdGlvbnMucHJvZmlsZX1gIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaXNSZWNvcmQoZXZlbnQpKSByZXR1cm47XG4gICAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHR5cGVvZiBldmVudC5zdGF0dXMgPT09IFwic3RyaW5nXCIgPyBldmVudC5zdGF0dXMgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGNvbnN0IGV2ZW50TWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50Lm1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyBldmVudC5tZXNzYWdlLnRyaW0oKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgY29uc3QgZGV0YWlsID0gdHlwZW9mIGV2ZW50LmRldGFpbCA9PT0gXCJzdHJpbmdcIiA/IGV2ZW50LmRldGFpbC50cmltKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGF3YWl0IGNhbGxiYWNrcy5vblByb2dyZXNzPy4oe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgICAgICAgICBzdGFnZTogXCJzZWFyY2hcIixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgc3RhdHVzID09PSBcInNlYXJjaFwiICYmIGV2ZW50TWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICA/IGBXZWIgc2VhcmNoOiAke2V2ZW50TWVzc2FnZX1gXG4gICAgICAgICAgICAgICAgICAgIDogYFdlYiBzZWFyY2ggY29tcGxldGUke2RldGFpbCA/IGA6ICR7ZGV0YWlsfWAgOiBcIlwifWAsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLFxuICAgICAgICBmZXRjaDogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViRmV0Y2gocmVxdWVzdCwgcnVudGltZSwgc2lnbmFsKSxcbiAgICAgICAgZmV0Y2hBc3NldFBhZ2U6IChyZXF1ZXN0LCBzaWduYWwpID0+IHJ1bldlYkFzc2V0UGFnZUZldGNoKHJlcXVlc3QsIHJ1bnRpbWUsIHNpZ25hbCksXG4gICAgICAgIGZldGNoSW1hZ2U6IChyZXF1ZXN0LCBzaWduYWwpID0+IHJ1bldlYkltYWdlRmV0Y2gocmVxdWVzdCwgcnVudGltZSwgc2lnbmFsKSxcbiAgICAgIH0sXG4gICAgICB3b3Jrc3BhY2VDbGllbnQsXG4gICAgICAuLi4ob3B0aW9ucy5tb2RlbCA/IHsgbW9kZWw6IG9wdGlvbnMubW9kZWwgfSA6IHt9KSxcbiAgICAgIG1heFNvdXJjZXM6IG9wdGlvbnMubWF4U291cmNlcyxcbiAgICAgIHNvdXJjZU1heExlbmd0aDogb3B0aW9ucy5zb3VyY2VNYXhMZW5ndGgsXG4gICAgICAuLi4oY2FsbGJhY2tzLm9uUHJvZ3Jlc3MgPyB7IG9uUHJvZ3Jlc3M6IGNhbGxiYWNrcy5vblByb2dyZXNzIH0gOiB7fSksXG4gICAgICBvblJlc2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIHJlc2VhcmNoID0gdmFsdWU7XG4gICAgICB9LFxuICAgIH0sXG4gICk7XG4gIGlmICghcmVzZWFyY2gpIHRocm93IG5ldyBFcnJvcihcIkJyYW5kIGdlbmVyYXRpb24gY29tcGxldGVkIHdpdGhvdXQgcmVzZWFyY2ggcHJvdmVuYW5jZVwiKTtcbiAgY29uc3Qgb3V0cHV0RGlyZWN0b3J5ID1cbiAgICBvcHRpb25zLm91dHB1dCA/PyAoYXdhaXQgbWtkdGVtcChwYXRoLmpvaW4odG1wZGlyKCksIFwiZGJ4LXRvb2xzLWJyYW5kLVwiKSkpO1xuICByZXR1cm4gd3JpdGVCcmFuZFBhY2thZ2Uoe1xuICAgIG91dHB1dERpcmVjdG9yeSxcbiAgICBwcm9tcHQsXG4gICAgYnJhbmRQYWNrYWdlLFxuICAgIHJlc2VhcmNoLFxuICAgIHNob3djYXNlOiBvcHRpb25zLnNob3djYXNlLFxuICAgIGZvcmNlOiBvcHRpb25zLmZvcmNlLFxuICB9KTtcbn1cbiJdfQ==