@dbx-tools/appkit-generator 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 (49) hide show
  1. package/index.ts +16 -6
  2. package/lib/index.d.ts +16 -6
  3. package/lib/index.js +17 -7
  4. package/lib/src/assets.d.ts +1 -1
  5. package/lib/src/assets.js +4 -4
  6. package/lib/src/config.js +9 -12
  7. package/lib/src/dashboard.d.ts +2 -2
  8. package/lib/src/dashboard.js +6 -6
  9. package/lib/src/data.d.ts +1 -1
  10. package/lib/src/data.js +6 -6
  11. package/lib/src/defaults.d.ts +1 -1
  12. package/lib/src/defaults.js +1 -1
  13. package/lib/src/generate.d.ts +2 -1
  14. package/lib/src/generate.js +5 -4
  15. package/lib/src/genie.d.ts +1 -1
  16. package/lib/src/genie.js +5 -5
  17. package/lib/src/kpi.d.ts +1 -1
  18. package/lib/src/kpi.js +4 -4
  19. package/lib/src/namespace.d.ts +1 -1
  20. package/lib/src/namespace.js +12 -12
  21. package/lib/src/operations.d.ts +1 -3
  22. package/lib/src/operations.js +1 -1
  23. package/lib/src/plan.d.ts +1 -3
  24. package/lib/src/plan.js +2 -2
  25. package/lib/src/plugin.d.ts +8 -8
  26. package/lib/src/plugin.js +8 -12
  27. package/lib/src/research.d.ts +2 -3
  28. package/lib/src/research.js +8 -8
  29. package/lib/src/schema.d.ts +2 -4
  30. package/lib/src/schema.js +3 -4
  31. package/lib/src/structured.js +2 -2
  32. package/lib/src/workflow.js +3 -4
  33. package/package.json +10 -154
  34. package/src/assets.ts +4 -4
  35. package/src/config.ts +10 -21
  36. package/src/dashboard.ts +6 -6
  37. package/src/data.ts +7 -7
  38. package/src/defaults.ts +2 -1
  39. package/src/generate.ts +9 -10
  40. package/src/genie.ts +4 -4
  41. package/src/kpi.ts +3 -3
  42. package/src/namespace.ts +11 -11
  43. package/src/operations.ts +5 -3
  44. package/src/plan.ts +3 -3
  45. package/src/plugin.ts +9 -11
  46. package/src/research.ts +14 -16
  47. package/src/schema.ts +4 -29
  48. package/src/structured.ts +1 -1
  49. package/src/workflow.ts +3 -3
package/lib/src/data.js CHANGED
@@ -4,9 +4,9 @@
4
4
  * @module
5
5
  */
6
6
  import { ExecutionError } from "@databricks/appkit";
7
- import { databricks } from "@dbx-tools/appkit";
8
- import { asyncUtils } from "@dbx-tools/shared-core";
9
- import { MaterializedGeneratorDataSchema } from "@dbx-tools/shared-generator/workflow";
7
+ import { toContext } from "@dbx-tools/appkit";
8
+ import { poll } from "@dbx-tools/shared-core";
9
+ import { MaterializedGeneratorDataSchema } from "@dbx-tools/shared-generator";
10
10
  import { resolveGeneratorIdentity } from "./namespace.js";
11
11
  const TERMINAL_STATEMENT_STATES = new Set(["SUCCEEDED", "FAILED", "CANCELED", "CLOSED"]);
12
12
  /** Quote one already-validated SQL identifier. */
@@ -62,7 +62,7 @@ export function compileMetricValidationSql(table, metric) {
62
62
  }
63
63
  /** Execute one statement and wait for its terminal response. */
64
64
  export async function executeGeneratorStatement(client, warehouseId, statement, location, signal) {
65
- const context = signal ? databricks.toContext(signal) : undefined;
65
+ const context = signal ? toContext(signal) : undefined;
66
66
  let response = await client.statementExecution.executeStatement({
67
67
  warehouse_id: warehouseId,
68
68
  statement,
@@ -75,7 +75,7 @@ export async function executeGeneratorStatement(client, warehouseId, statement,
75
75
  const statementId = response.statement_id;
76
76
  if (!statementId)
77
77
  throw new ExecutionError("Statement execution returned no statement id");
78
- for await (const polled of asyncUtils.poll(({ signal: pollSignal }) => client.statementExecution.getStatement({ statement_id: statementId }, databricks.toContext(pollSignal)), {
78
+ for await (const polled of poll(({ signal: pollSignal }) => client.statementExecution.getStatement({ statement_id: statementId }, toContext(pollSignal)), {
79
79
  intervalMs: 1_000,
80
80
  timeoutMs: 180_000,
81
81
  ...(signal ? { signal } : {}),
@@ -111,4 +111,4 @@ export async function materializeGeneratorData(location, plan, warehouseId, sign
111
111
  validationStatements,
112
112
  });
113
113
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFRdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFHekYsa0RBQWtEO0FBQ2xELFNBQVMsZUFBZSxDQUFDLEtBQWE7SUFDcEMsT0FBTyxLQUFLLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDOUMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQzVDLENBQUM7QUFFRCwrREFBK0Q7QUFDL0QsU0FBUyxnQkFBZ0IsQ0FBQyxNQUF1QjtJQUMvQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLFFBQVEsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLEtBQUssSUFBSTtZQUNQLE9BQU8saURBQWlELENBQUM7UUFDM0QsS0FBSyxNQUFNO1lBQ1QsT0FBTyw4Q0FBOEMsSUFBSSxNQUFNLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNq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QUMsRUFDN0MsUUFBUSxFQUNSLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksY0FBYyxDQUFDLGtCQUFrQixNQUFNLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUM1RCxDQUFDO0lBQ0QsT0FBTywrQkFBK0IsQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ25CLG9CQUFvQjtLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXRlcm1pbmlzdGljIERhdGFicmlja3MgU1FMIGNvbXBpbGF0aW9uLCBleGVjdXRpb24sIGFuZCB2YWxpZGF0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBFeGVjdXRpb25FcnJvciwgdHlwZSBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhc3luY1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGFTY2hlbWEgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yL3dvcmtmbG93XCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdlbmVyYXRlZENvbHVtbixcbiAgR2VuZXJhdGVkTWV0cmljLFxuICBHZW5lcmF0ZWRTY2hlbWEsXG4gIEdlbmVyYXRvclBsYW4sXG4gIE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGEsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3Ivd29ya2Zsb3dcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JJZGVudGl0eSB9IGZyb20gXCIuL25hbWVzcGFjZS50c1wiO1xuXG5jb25zdCBURVJNSU5BTF9TVEFURU1FTlRfU1RBVEVTID0gbmV3IFNldChbXCJTVUNDRUVERURcIiwgXCJGQUlMRURcIiwgXCJDQU5DRUxFRFwiLCBcIkNMT1NFRFwiXSk7XG50eXBlIFN0YXRlbWVudFJlc3BvbnNlID0gQXdhaXRlZDxSZXR1cm5UeXBlPFdvcmtzcGFjZUNsaWVudFtcInN0YXRlbWVudEV4ZWN1dGlvblwiXVtcImdldFN0YXRlbWVudFwiXT4+O1xuXG4vKiogUXVvdGUgb25lIGFscmVhZHktdmFsaWRhdGVkIFNRTCBpZGVudGlmaWVyLiAqL1xuZnVuY3Rpb24gcXVvdGVJZGVudGlmaWVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYFxcYCR7dmFsdWUucmVwbGFjZUFsbChcImBcIiwgXCJgYFwiKX1cXGBgO1xufVxuXG4vKiogUXVvdGUgb25lIFNRTCBzdHJpbmcgbGl0ZXJhbC4gKi9cbmZ1bmN0aW9uIHF1b3RlTGl0ZXJhbCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAnJHt2YWx1ZS5yZXBsYWNlQWxsKFwiJ1wiLCBcIicnXCIpfSdgO1xufVxuXG4vKiogQ29tcGlsZSBvbmUgc2FmZSBjb2x1bW4gZ2VuZXJhdG9yIGludG8gYSBTUUwgZXhwcmVzc2lvbi4gKi9cbmZ1bmN0aW9uIGNvbHVtbkV4cHJlc3Npb24oY29sdW1uOiBHZW5lcmF0ZWRDb2x1bW4pOiBzdHJpbmcge1xuICBjb25zdCBzYWx0ID0gcXVvdGVMaXRlcmFsKGNvbHVtbi5uYW1lKTtcbiAgc3dpdGNoIChjb2x1bW4uZ2VuZXJhdG9yKSB7XG4gICAgY2FzZSBcImlkXCI6XG4gICAgICByZXR1cm4gYGNvbmNhdCgnSUQtJywgbHBhZChjYXN0KGlkIGFzIHN0cmluZyksIDgsICcwJykpYDtcbiAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgcmV0dXJuIGBkYXRlX3N1YihjdXJyZW50X2RhdGUoKSwgcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSksICR7Y29sdW1uLmRheXN9KSlgO1xuICAgIGNhc2UgXCJjYXRlZ29yeVwiOiB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBjb2x1bW4udmFsdWVzLm1hcChxdW90ZUxpdGVyYWwpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSBgZWxlbWVudF9hdChhcnJheSgke3ZhbHVlcy5qb2luKFwiLCBcIil9KSwgcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSksICR7dmFsdWVzLmxlbmd0aH0pICsgMSlgO1xuICAgICAgcmV0dXJuIGBjYXNlIHdoZW4gcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSksIDEwMCkgPCA1NSB0aGVuICR7dmFsdWVzWzBdfSB3aGVuIHBtb2QoeHhoYXNoNjQoaWQsICR7c2FsdH0pLCAxMDApIDwgODAgdGhlbiAke3ZhbHVlc1sxXX0gZWxzZSAke2ZhbGxiYWNrfSBlbmRgO1xuICAgIH1cbiAgICBjYXNlIFwibnVtYmVyXCI6IHtcbiAgICAgIGNvbnN0IHNwcmVhZCA9IGNvbHVtbi5tYXhpbXVtIC0gY29sdW1uLm1pbmltdW07XG4gICAgICByZXR1cm4gYHJvdW5kKCgke2NvbHVtbi5taW5pbXVtfSArIChwbW9kKHh4aGFzaDY0KGlkLCAke3NhbHR9KSwgMTAwMDAwMCkgLyA5OTk5OTkuMCkgKiAke3NwcmVhZH0pICogY2FzZSB3aGVuIHBtb2QoeHhoYXNoNjQoaWQsICR7c2FsdH0sICdhbm9tYWx5JyksIDEwMCkgPCA4IHRoZW4gMS42NSBlbHNlIDEgZW5kLCAke2NvbHVtbi5kZWNpbWFsc30pYDtcbiAgICB9XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiBgcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSksIDEwMDAwKSA8ICR7TWF0aC5yb3VuZChjb2x1bW4udHJ1ZVByb2JhYmlsaXR5ICogMTBfMDAwKX1gO1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IGV4aGF1c3RpdmU6IG5ldmVyID0gY29sdW1uO1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgZ2VuZXJhdGVkIGNvbHVtbjogJHtTdHJpbmcoZXhoYXVzdGl2ZSl9YCk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBDb21waWxlIHRoZSBnZW5lcmF0ZWQgdGFibGUgc3RhdGVtZW50IHdpdGhvdXQgYWNjZXB0aW5nIG1vZGVsLWF1dGhvcmVkIFNRTC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlR2VuZXJhdG9yVGFibGVTcWwobG9jYXRpb246IEdlbmVyYXRlZFNjaGVtYSwgcGxhbjogR2VuZXJhdG9yUGxhbik6IHN0cmluZyB7XG4gIGNvbnN0IGNvbHVtbnMgPSBwbGFuLmNvbHVtbnMubWFwKFxuICAgIChjb2x1bW4pID0+IGAke2NvbHVtbkV4cHJlc3Npb24oY29sdW1uKX0gQVMgJHtxdW90ZUlkZW50aWZpZXIoY29sdW1uLm5hbWUpfWAsXG4gICk7XG4gIHJldHVybiBbXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIFRBQkxFICR7cXVvdGVJZGVudGlmaWVyKGxvY2F0aW9uLmNhdGFsb2cpfS4ke3F1b3RlSWRlbnRpZmllcihsb2NhdGlvbi5zY2hlbWEpfS4ke3F1b3RlSWRlbnRpZmllcihwbGFuLnRhYmxlKX1gLFxuICAgIGBDT01NRU5UICR7cXVvdGVMaXRlcmFsKHBsYW4uc3RvcnkpfWAsXG4gICAgXCJBUyBTRUxFQ1RcIixcbiAgICBgICAke2NvbHVtbnMuam9pbihcIixcXG4gIFwiKX1gLFxuICAgIGBGUk9NIHJhbmdlKCR7cGxhbi5yb3dDb3VudH0pYCxcbiAgXS5qb2luKFwiXFxuXCIpO1xufVxuXG4vKiogQ29tcGlsZSBvbmUgS1BJIHZhbGlkYXRpb24gcXVlcnkgZnJvbSBpdHMgdHlwZWQgYWdncmVnYXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVNZXRyaWNWYWxpZGF0aW9uU3FsKHRhYmxlOiBzdHJpbmcsIG1ldHJpYzogR2VuZXJhdGVkTWV0cmljKTogc3RyaW5nIHtcbiAgY29uc3QgYWdncmVnYXRlID1cbiAgICBtZXRyaWMuYWdncmVnYXRpb24gPT09IFwiY291bnRcIlxuICAgICAgPyBcImNvdW50KCopXCJcbiAgICAgIDogYCR7bWV0cmljLmFnZ3JlZ2F0aW9uID09PSBcInN1bVwiID8gXCJzdW1cIiA6IFwiYXZnXCJ9KCR7cXVvdGVJZGVudGlmaWVyKG1ldHJpYy5jb2x1bW4hKX0pYDtcbiAgcmV0dXJuIGBTRUxFQ1QgJHthZ2dyZWdhdGV9IEFTICR7cXVvdGVJZGVudGlmaWVyKG1ldHJpYy5uYW1lKX0gRlJPTSAke3RhYmxlfWA7XG59XG5cbi8qKiBFeGVjdXRlIG9uZSBzdGF0ZW1lbnQgYW5kIHdhaXQgZm9yIGl0cyB0ZXJtaW5hbCByZXNwb25zZS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlR2VuZXJhdG9yU3RhdGVtZW50KFxuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudCxcbiAgd2FyZWhvdXNlSWQ6IHN0cmluZyxcbiAgc3RhdGVtZW50OiBzdHJpbmcsXG4gIGxvY2F0aW9uOiBQaWNrPEdlbmVyYXRlZFNjaGVtYSwgXCJjYXRhbG9nXCIgfCBcInNjaGVtYVwiPixcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPFN0YXRlbWVudFJlc3BvbnNlPiB7XG4gIGNvbnN0IGNvbnRleHQgPSBzaWduYWwgPyBkYXRhYnJpY2tzLnRvQ29udGV4dChzaWduYWwpIDogdW5kZWZpbmVkO1xuICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc3RhdGVtZW50RXhlY3V0aW9uLmV4ZWN1dGVTdGF0ZW1lbnQoXG4gICAge1xuICAgICAgd2FyZWhvdXNlX2lkOiB3YXJlaG91c2VJZCxcbiAgICAgIHN0YXRlbWVudCxcbiAgICAgIGNhdGFsb2c6IGxvY2F0aW9uLmNhdGFsb2csXG4gICAgICBzY2hlbWE6IGxvY2F0aW9uLnNjaGVtYSxcbiAgICAgIHdhaXRfdGltZW91dDogXCI1MHNcIixcbiAgICAgIG9uX3dhaXRfdGltZW91dDogXCJDT05USU5VRVwiLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgKTtcbiAgaWYgKCFURVJNSU5BTF9TVEFURU1FTlRfU1RBVEVTLmhhcyhyZXNwb25zZS5zdGF0dXM/LnN0YXRlID8/IFwiXCIpKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SWQgPSByZXNwb25zZS5zdGF0ZW1lbnRfaWQ7XG4gICAgaWYgKCFzdGF0ZW1lbnRJZCkgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKFwiU3RhdGVtZW50IGV4ZWN1dGlvbiByZXR1cm5lZCBubyBzdGF0ZW1lbnQgaWRcIik7XG4gICAgZm9yIGF3YWl0IChjb25zdCBwb2xsZWQgb2YgYXN5bmNVdGlscy5wb2xsPFN0YXRlbWVudFJlc3BvbnNlPihcbiAgICAgICh7IHNpZ25hbDogcG9sbFNpZ25hbCB9KSA9PlxuICAgICAgICBjbGllbnQuc3RhdGVtZW50RXhlY3V0aW9uLmdldFN0YXRlbWVudChcbiAgICAgICAgICB7IHN0YXRlbWVudF9pZDogc3RhdGVtZW50SWQgfSxcbiAgICAgICAgICBkYXRhYnJpY2tzLnRvQ29udGV4dChwb2xsU2lnbmFsKSxcbiAgICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgaW50ZXJ2YWxNczogMV8wMDAsXG4gICAgICAgIHRpbWVvdXRNczogMTgwXzAwMCxcbiAgICAgICAgLi4uKHNpZ25hbCA/IHsgc2lnbmFsIH0gOiB7fSksXG4gICAgICAgIHByZWRpY2F0ZTogKHZhbHVlKSA9PiAhVEVSTUlOQUxfU1RBVEVNRU5UX1NUQVRFUy5oYXModmFsdWUuc3RhdHVzPy5zdGF0ZSA/PyBcIlwiKSxcbiAgICAgIH0sXG4gICAgKSkge1xuICAgICAgcmVzcG9uc2UgPSBwb2xsZWQ7XG4gICAgfVxuICB9XG4gIGlmIChyZXNwb25zZS5zdGF0dXM/LnN0YXRlICE9PSBcIlNVQ0NFRURFRFwiKSB7XG4gICAgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKFxuICAgICAgcmVzcG9uc2Uuc3RhdHVzPy5lcnJvcj8ubWVzc2FnZSA/P1xuICAgICAgICBgU3RhdGVtZW50IGVuZGVkIGluICR7cmVzcG9uc2Uuc3RhdHVzPy5zdGF0ZSA/PyBcIlVOS05PV05cIn1gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG4vKiogTWF0ZXJpYWxpemUgZ2VuZXJhdGVkIGRhdGEgYXMgdGhlIE9CTyB1c2VyIGFuZCB2YWxpZGF0ZSBldmVyeSBwbGFubmVkIEtQSS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGEoXG4gIGxvY2F0aW9uOiBHZW5lcmF0ZWRTY2hlbWEsXG4gIHBsYW46IEdlbmVyYXRvclBsYW4sXG4gIHdhcmVob3VzZUlkOiBzdHJpbmcsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxNYXRlcmlhbGl6ZWRHZW5lcmF0b3JEYXRhPiB7XG4gIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5KCk7XG4gIGlmIChpZGVudGl0eS5wcmluY2lwYWwgIT09IGxvY2F0aW9uLnByaW5jaXBhbCkge1xuICAgIHRocm93IG5ldyBFeGVjdXRpb25FcnJvcihcIkdlbmVyYXRvciBzY2hlbWEgcHJpbmNpcGFsIGRvZXMgbm90IG1hdGNoIHRoZSBhY3RpdmUgT0JPIHVzZXJcIik7XG4gIH1cbiAgYXdhaXQgZXhlY3V0ZUdlbmVyYXRvclN0YXRlbWVudChcbiAgICBpZGVudGl0eS51c2VyQ2xpZW50LFxuICAgIHdhcmVob3VzZUlkLFxuICAgIGNvbXBpbGVHZW5lcmF0b3JUYWJsZVNxbChsb2NhdGlvbiwgcGxhbiksXG4gICAgbG9jYXRpb24sXG4gICAgc2lnbmFsLFxuICApO1xuICBjb25zdCBmdWxsVGFibGUgPSBgJHtsb2NhdGlvbi5jYXRhbG9nfS4ke2xvY2F0aW9uLnNjaGVtYX0uJHtwbGFuLnRhYmxlfWA7XG4gIGNvbnN0IHZhbGlkYXRpb25TdGF0ZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGZvciAoY29uc3QgbWV0cmljIG9mIHBsYW4ubWV0cmljcykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZUdlbmVyYXRvclN0YXRlbWVudChcbiAgICAgIGlkZW50aXR5LnVzZXJDbGllbnQsXG4gICAgICB3YXJlaG91c2VJZCxcbiAgICAgIGNvbXBpbGVNZXRyaWNWYWxpZGF0aW9uU3FsKGZ1bGxUYWJsZSwgbWV0cmljKSxcbiAgICAgIGxvY2F0aW9uLFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gICAgaWYgKCFyZXNwb25zZS5zdGF0ZW1lbnRfaWQpIHtcbiAgICAgIHRocm93IG5ldyBFeGVjdXRpb25FcnJvcihgVmFsaWRhdGlvbiBmb3IgJHttZXRyaWMubmFtZX0gcmV0dXJuZWQgbm8gc3RhdGVtZW50IGlkYCk7XG4gICAgfVxuICAgIHZhbGlkYXRpb25TdGF0ZW1lbnRzW21ldHJpYy5uYW1lXSA9IHJlc3BvbnNlLnN0YXRlbWVudF9pZDtcbiAgfVxuICByZXR1cm4gTWF0ZXJpYWxpemVkR2VuZXJhdG9yRGF0YVNjaGVtYS5wYXJzZSh7XG4gICAgdGFibGVzOiBbZnVsbFRhYmxlXSxcbiAgICB2YWxpZGF0aW9uU3RhdGVtZW50cyxcbiAgfSk7XG59XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFROUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFHekYsa0RBQWtEO0FBQ2xELFNBQVMsZUFBZSxDQUFDLEtBQWE7SUFDcEMsT0FBTyxLQUFLLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDOUMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQzVDLENBQUM7QUFFRCwrREFBK0Q7QUFDL0QsU0FBUyxnQkFBZ0IsQ0FBQyxNQUF1QjtJQUMvQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLFFBQVEsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLEtBQUssSUFBSTtZQUNQLE9BQU8saURBQWlELENBQUM7UUFDM0QsS0FBSyxNQUFNO1lBQ1QsT0FBTyw4Q0FBOEMsSUFBSSxNQUFNLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNqRixLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLE1BQU0sTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDO1lBQzlHLE9BQU8sK0JBQStCLElBQUkscUJBQXFCLE1BQU0sQ0FBQyxDQUFDLENBQUMsMkJBQTJCLElBQUkscUJBQXFCLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLE1BQU0sQ0FBQztRQUMvSixDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQy9DLE9BQU8sVUFBVSxNQUFNLENBQUMsT0FBTyx5QkFBeUIsSUFBSSw2QkFBNkIsTUFBTSxtQ0FBbUMsSUFBSSxnREFBZ0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDO1FBQzNNLENBQUM7UUFDRCxLQUFLLFNBQVM7WUFDWixPQUFPLHFCQUFxQixJQUFJLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDL0YsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE1BQU0sVUFBVSxHQUFVLE1BQU0sQ0FBQztZQUNqQyxNQUFNLElBQUksU0FBUyxDQUFDLGlDQUFpQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsd0JBQXdCLENBQUMsUUFBeUIsRUFBRSxJQUFtQjtJQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM3RSxDQUFDO0lBQ0YsT0FBTztRQUNMLDJCQUEyQixlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNqSSxXQUFXLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckMsV0FBVztRQUNYLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM1QixjQUFjLElBQUksQ0FBQyxRQUFRLEdBQUc7S0FDL0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxLQUFhLEVBQUUsTUFBdUI7SUFDL0UsTUFBTSxTQUFTLEdBQ2IsTUFBTSxDQUFDLFdBQVcsS0FBSyxPQUFPO1FBQzVCLENBQUMsQ0FBQyxVQUFVO1FBQ1osQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTyxDQUFDLEdBQUcsQ0FBQztJQUM1RixPQUFPLFVBQVUsU0FBUyxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUM7QUFDaEYsQ0FBQztBQUVELGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxNQUF1QixFQUN2QixXQUFtQixFQUNuQixTQUFpQixFQUNqQixRQUFxRCxFQUNyRCxNQUFvQjtJQUVwQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZELElBQUksUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUM3RDtRQUNFLFlBQVksRUFBRSxXQUFXO1FBQ3pCLFNBQVM7UUFDVCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87UUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1FBQ3ZCLFlBQVksRUFBRSxLQUFLO1FBQ25CLGVBQWUsRUFBRSxVQUFVO0tBQzVCLEVBQ0QsT0FBTyxDQUNSLENBQUM7SUFDRixJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUMzRixJQUFJLEtBQUssRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQzdCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUN6QixNQUFNLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUNwQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsRUFDN0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUN0QixFQUNIO1lBQ0UsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLE9BQU87WUFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ2hGLENBQ0YsRUFBRSxDQUFDO1lBQ0YsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTztZQUM3QixzQkFBc0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLENBQzlELENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELGlGQUFpRjtBQUNqRixNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxRQUF5QixFQUN6QixJQUFtQixFQUNuQixXQUFtQixFQUNuQixNQUFvQjtJQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLHdCQUF3QixFQUFFLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksY0FBYyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELE1BQU0seUJBQXlCLENBQzdCLFFBQVEsQ0FBQyxVQUFVLEVBQ25CLFdBQVcsRUFDWCx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQ3hDLFFBQVEsRUFDUixNQUFNLENBQ1AsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6RSxNQUFNLG9CQUFvQixHQUEyQixFQUFFLENBQUM7SUFDeEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSx5QkFBeUIsQ0FDOUMsUUFBUSxDQUFDLFVBQVUsRUFDbkIsV0FBVyxFQUNYLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFDN0MsUUFBUSxFQUNSLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksY0FBYyxDQUFDLGtCQUFrQixNQUFNLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUM1RCxDQUFDO0lBQ0QsT0FBTywrQkFBK0IsQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ25CLG9CQUFvQjtLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXRlcm1pbmlzdGljIERhdGFicmlja3MgU1FMIGNvbXBpbGF0aW9uLCBleGVjdXRpb24sIGFuZCB2YWxpZGF0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBFeGVjdXRpb25FcnJvciwgdHlwZSBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyB0b0NvbnRleHQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IHBvbGwgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgTWF0ZXJpYWxpemVkR2VuZXJhdG9yRGF0YVNjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB0eXBlIHtcbiAgR2VuZXJhdGVkQ29sdW1uLFxuICBHZW5lcmF0ZWRNZXRyaWMsXG4gIEdlbmVyYXRlZFNjaGVtYSxcbiAgR2VuZXJhdG9yUGxhbixcbiAgTWF0ZXJpYWxpemVkR2VuZXJhdG9yRGF0YSxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5IH0gZnJvbSBcIi4vbmFtZXNwYWNlLnRzXCI7XG5cbmNvbnN0IFRFUk1JTkFMX1NUQVRFTUVOVF9TVEFURVMgPSBuZXcgU2V0KFtcIlNVQ0NFRURFRFwiLCBcIkZBSUxFRFwiLCBcIkNBTkNFTEVEXCIsIFwiQ0xPU0VEXCJdKTtcbnR5cGUgU3RhdGVtZW50UmVzcG9uc2UgPSBBd2FpdGVkPFJldHVyblR5cGU8V29ya3NwYWNlQ2xpZW50W1wic3RhdGVtZW50RXhlY3V0aW9uXCJdW1wiZ2V0U3RhdGVtZW50XCJdPj47XG5cbi8qKiBRdW90ZSBvbmUgYWxyZWFkeS12YWxpZGF0ZWQgU1FMIGlkZW50aWZpZXIuICovXG5mdW5jdGlvbiBxdW90ZUlkZW50aWZpZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgXFxgJHt2YWx1ZS5yZXBsYWNlQWxsKFwiYFwiLCBcImBgXCIpfVxcYGA7XG59XG5cbi8qKiBRdW90ZSBvbmUgU1FMIHN0cmluZyBsaXRlcmFsLiAqL1xuZnVuY3Rpb24gcXVvdGVMaXRlcmFsKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCcke3ZhbHVlLnJlcGxhY2VBbGwoXCInXCIsIFwiJydcIil9J2A7XG59XG5cbi8qKiBDb21waWxlIG9uZSBzYWZlIGNvbHVtbiBnZW5lcmF0b3IgaW50byBhIFNRTCBleHByZXNzaW9uLiAqL1xuZnVuY3Rpb24gY29sdW1uRXhwcmVzc2lvbihjb2x1bW46IEdlbmVyYXRlZENvbHVtbik6IHN0cmluZyB7XG4gIGNvbnN0IHNhbHQgPSBxdW90ZUxpdGVyYWwoY29sdW1uLm5hbWUpO1xuICBzd2l0Y2ggKGNvbHVtbi5nZW5lcmF0b3IpIHtcbiAgICBjYXNlIFwiaWRcIjpcbiAgICAgIHJldHVybiBgY29uY2F0KCdJRC0nLCBscGFkKGNhc3QoaWQgYXMgc3RyaW5nKSwgOCwgJzAnKSlgO1xuICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICByZXR1cm4gYGRhdGVfc3ViKGN1cnJlbnRfZGF0ZSgpLCBwbW9kKHh4aGFzaDY0KGlkLCAke3NhbHR9KSwgJHtjb2x1bW4uZGF5c30pKWA7XG4gICAgY2FzZSBcImNhdGVnb3J5XCI6IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGNvbHVtbi52YWx1ZXMubWFwKHF1b3RlTGl0ZXJhbCk7XG4gICAgICBjb25zdCBmYWxsYmFjayA9IGBlbGVtZW50X2F0KGFycmF5KCR7dmFsdWVzLmpvaW4oXCIsIFwiKX0pLCBwbW9kKHh4aGFzaDY0KGlkLCAke3NhbHR9KSwgJHt2YWx1ZXMubGVuZ3RofSkgKyAxKWA7XG4gICAgICByZXR1cm4gYGNhc2Ugd2hlbiBwbW9kKHh4aGFzaDY0KGlkLCAke3NhbHR9KSwgMTAwKSA8IDU1IHRoZW4gJHt2YWx1ZXNbMF19IHdoZW4gcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSksIDEwMCkgPCA4MCB0aGVuICR7dmFsdWVzWzFdfSBlbHNlICR7ZmFsbGJhY2t9IGVuZGA7XG4gICAgfVxuICAgIGNhc2UgXCJudW1iZXJcIjoge1xuICAgICAgY29uc3Qgc3ByZWFkID0gY29sdW1uLm1heGltdW0gLSBjb2x1bW4ubWluaW11bTtcbiAgICAgIHJldHVybiBgcm91bmQoKCR7Y29sdW1uLm1pbmltdW19ICsgKHBtb2QoeHhoYXNoNjQoaWQsICR7c2FsdH0pLCAxMDAwMDAwKSAvIDk5OTk5OS4wKSAqICR7c3ByZWFkfSkgKiBjYXNlIHdoZW4gcG1vZCh4eGhhc2g2NChpZCwgJHtzYWx0fSwgJ2Fub21hbHknKSwgMTAwKSA8IDggdGhlbiAxLjY1IGVsc2UgMSBlbmQsICR7Y29sdW1uLmRlY2ltYWxzfSlgO1xuICAgIH1cbiAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgcmV0dXJuIGBwbW9kKHh4aGFzaDY0KGlkLCAke3NhbHR9KSwgMTAwMDApIDwgJHtNYXRoLnJvdW5kKGNvbHVtbi50cnVlUHJvYmFiaWxpdHkgKiAxMF8wMDApfWA7XG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgZXhoYXVzdGl2ZTogbmV2ZXIgPSBjb2x1bW47XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmF0ZWQgY29sdW1uOiAke1N0cmluZyhleGhhdXN0aXZlKX1gKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIENvbXBpbGUgdGhlIGdlbmVyYXRlZCB0YWJsZSBzdGF0ZW1lbnQgd2l0aG91dCBhY2NlcHRpbmcgbW9kZWwtYXV0aG9yZWQgU1FMLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVHZW5lcmF0b3JUYWJsZVNxbChsb2NhdGlvbjogR2VuZXJhdGVkU2NoZW1hLCBwbGFuOiBHZW5lcmF0b3JQbGFuKTogc3RyaW5nIHtcbiAgY29uc3QgY29sdW1ucyA9IHBsYW4uY29sdW1ucy5tYXAoXG4gICAgKGNvbHVtbikgPT4gYCR7Y29sdW1uRXhwcmVzc2lvbihjb2x1bW4pfSBBUyAke3F1b3RlSWRlbnRpZmllcihjb2x1bW4ubmFtZSl9YCxcbiAgKTtcbiAgcmV0dXJuIFtcbiAgICBgQ1JFQVRFIE9SIFJFUExBQ0UgVEFCTEUgJHtxdW90ZUlkZW50aWZpZXIobG9jYXRpb24uY2F0YWxvZyl9LiR7cXVvdGVJZGVudGlmaWVyKGxvY2F0aW9uLnNjaGVtYSl9LiR7cXVvdGVJZGVudGlmaWVyKHBsYW4udGFibGUpfWAsXG4gICAgYENPTU1FTlQgJHtxdW90ZUxpdGVyYWwocGxhbi5zdG9yeSl9YCxcbiAgICBcIkFTIFNFTEVDVFwiLFxuICAgIGAgICR7Y29sdW1ucy5qb2luKFwiLFxcbiAgXCIpfWAsXG4gICAgYEZST00gcmFuZ2UoJHtwbGFuLnJvd0NvdW50fSlgLFxuICBdLmpvaW4oXCJcXG5cIik7XG59XG5cbi8qKiBDb21waWxlIG9uZSBLUEkgdmFsaWRhdGlvbiBxdWVyeSBmcm9tIGl0cyB0eXBlZCBhZ2dyZWdhdGUuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZU1ldHJpY1ZhbGlkYXRpb25TcWwodGFibGU6IHN0cmluZywgbWV0cmljOiBHZW5lcmF0ZWRNZXRyaWMpOiBzdHJpbmcge1xuICBjb25zdCBhZ2dyZWdhdGUgPVxuICAgIG1ldHJpYy5hZ2dyZWdhdGlvbiA9PT0gXCJjb3VudFwiXG4gICAgICA/IFwiY291bnQoKilcIlxuICAgICAgOiBgJHttZXRyaWMuYWdncmVnYXRpb24gPT09IFwic3VtXCIgPyBcInN1bVwiIDogXCJhdmdcIn0oJHtxdW90ZUlkZW50aWZpZXIobWV0cmljLmNvbHVtbiEpfSlgO1xuICByZXR1cm4gYFNFTEVDVCAke2FnZ3JlZ2F0ZX0gQVMgJHtxdW90ZUlkZW50aWZpZXIobWV0cmljLm5hbWUpfSBGUk9NICR7dGFibGV9YDtcbn1cblxuLyoqIEV4ZWN1dGUgb25lIHN0YXRlbWVudCBhbmQgd2FpdCBmb3IgaXRzIHRlcm1pbmFsIHJlc3BvbnNlLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVHZW5lcmF0b3JTdGF0ZW1lbnQoXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50LFxuICB3YXJlaG91c2VJZDogc3RyaW5nLFxuICBzdGF0ZW1lbnQ6IHN0cmluZyxcbiAgbG9jYXRpb246IFBpY2s8R2VuZXJhdGVkU2NoZW1hLCBcImNhdGFsb2dcIiB8IFwic2NoZW1hXCI+LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8U3RhdGVtZW50UmVzcG9uc2U+IHtcbiAgY29uc3QgY29udGV4dCA9IHNpZ25hbCA/IHRvQ29udGV4dChzaWduYWwpIDogdW5kZWZpbmVkO1xuICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc3RhdGVtZW50RXhlY3V0aW9uLmV4ZWN1dGVTdGF0ZW1lbnQoXG4gICAge1xuICAgICAgd2FyZWhvdXNlX2lkOiB3YXJlaG91c2VJZCxcbiAgICAgIHN0YXRlbWVudCxcbiAgICAgIGNhdGFsb2c6IGxvY2F0aW9uLmNhdGFsb2csXG4gICAgICBzY2hlbWE6IGxvY2F0aW9uLnNjaGVtYSxcbiAgICAgIHdhaXRfdGltZW91dDogXCI1MHNcIixcbiAgICAgIG9uX3dhaXRfdGltZW91dDogXCJDT05USU5VRVwiLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgKTtcbiAgaWYgKCFURVJNSU5BTF9TVEFURU1FTlRfU1RBVEVTLmhhcyhyZXNwb25zZS5zdGF0dXM/LnN0YXRlID8/IFwiXCIpKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SWQgPSByZXNwb25zZS5zdGF0ZW1lbnRfaWQ7XG4gICAgaWYgKCFzdGF0ZW1lbnRJZCkgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKFwiU3RhdGVtZW50IGV4ZWN1dGlvbiByZXR1cm5lZCBubyBzdGF0ZW1lbnQgaWRcIik7XG4gICAgZm9yIGF3YWl0IChjb25zdCBwb2xsZWQgb2YgcG9sbDxTdGF0ZW1lbnRSZXNwb25zZT4oXG4gICAgICAoeyBzaWduYWw6IHBvbGxTaWduYWwgfSkgPT5cbiAgICAgICAgY2xpZW50LnN0YXRlbWVudEV4ZWN1dGlvbi5nZXRTdGF0ZW1lbnQoXG4gICAgICAgICAgeyBzdGF0ZW1lbnRfaWQ6IHN0YXRlbWVudElkIH0sXG4gICAgICAgICAgdG9Db250ZXh0KHBvbGxTaWduYWwpLFxuICAgICAgICApLFxuICAgICAge1xuICAgICAgICBpbnRlcnZhbE1zOiAxXzAwMCxcbiAgICAgICAgdGltZW91dE1zOiAxODBfMDAwLFxuICAgICAgICAuLi4oc2lnbmFsID8geyBzaWduYWwgfSA6IHt9KSxcbiAgICAgICAgcHJlZGljYXRlOiAodmFsdWUpID0+ICFURVJNSU5BTF9TVEFURU1FTlRfU1RBVEVTLmhhcyh2YWx1ZS5zdGF0dXM/LnN0YXRlID8/IFwiXCIpLFxuICAgICAgfSxcbiAgICApKSB7XG4gICAgICByZXNwb25zZSA9IHBvbGxlZDtcbiAgICB9XG4gIH1cbiAgaWYgKHJlc3BvbnNlLnN0YXR1cz8uc3RhdGUgIT09IFwiU1VDQ0VFREVEXCIpIHtcbiAgICB0aHJvdyBuZXcgRXhlY3V0aW9uRXJyb3IoXG4gICAgICByZXNwb25zZS5zdGF0dXM/LmVycm9yPy5tZXNzYWdlID8/XG4gICAgICAgIGBTdGF0ZW1lbnQgZW5kZWQgaW4gJHtyZXNwb25zZS5zdGF0dXM/LnN0YXRlID8/IFwiVU5LTk9XTlwifWAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbi8qKiBNYXRlcmlhbGl6ZSBnZW5lcmF0ZWQgZGF0YSBhcyB0aGUgT0JPIHVzZXIgYW5kIHZhbGlkYXRlIGV2ZXJ5IHBsYW5uZWQgS1BJLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdGVyaWFsaXplR2VuZXJhdG9yRGF0YShcbiAgbG9jYXRpb246IEdlbmVyYXRlZFNjaGVtYSxcbiAgcGxhbjogR2VuZXJhdG9yUGxhbixcbiAgd2FyZWhvdXNlSWQ6IHN0cmluZyxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGE+IHtcbiAgY29uc3QgaWRlbnRpdHkgPSBhd2FpdCByZXNvbHZlR2VuZXJhdG9ySWRlbnRpdHkoKTtcbiAgaWYgKGlkZW50aXR5LnByaW5jaXBhbCAhPT0gbG9jYXRpb24ucHJpbmNpcGFsKSB7XG4gICAgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKFwiR2VuZXJhdG9yIHNjaGVtYSBwcmluY2lwYWwgZG9lcyBub3QgbWF0Y2ggdGhlIGFjdGl2ZSBPQk8gdXNlclwiKTtcbiAgfVxuICBhd2FpdCBleGVjdXRlR2VuZXJhdG9yU3RhdGVtZW50KFxuICAgIGlkZW50aXR5LnVzZXJDbGllbnQsXG4gICAgd2FyZWhvdXNlSWQsXG4gICAgY29tcGlsZUdlbmVyYXRvclRhYmxlU3FsKGxvY2F0aW9uLCBwbGFuKSxcbiAgICBsb2NhdGlvbixcbiAgICBzaWduYWwsXG4gICk7XG4gIGNvbnN0IGZ1bGxUYWJsZSA9IGAke2xvY2F0aW9uLmNhdGFsb2d9LiR7bG9jYXRpb24uc2NoZW1hfS4ke3BsYW4udGFibGV9YDtcbiAgY29uc3QgdmFsaWRhdGlvblN0YXRlbWVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgZm9yIChjb25zdCBtZXRyaWMgb2YgcGxhbi5tZXRyaWNzKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlR2VuZXJhdG9yU3RhdGVtZW50KFxuICAgICAgaWRlbnRpdHkudXNlckNsaWVudCxcbiAgICAgIHdhcmVob3VzZUlkLFxuICAgICAgY29tcGlsZU1ldHJpY1ZhbGlkYXRpb25TcWwoZnVsbFRhYmxlLCBtZXRyaWMpLFxuICAgICAgbG9jYXRpb24sXG4gICAgICBzaWduYWwsXG4gICAgKTtcbiAgICBpZiAoIXJlc3BvbnNlLnN0YXRlbWVudF9pZCkge1xuICAgICAgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKGBWYWxpZGF0aW9uIGZvciAke21ldHJpYy5uYW1lfSByZXR1cm5lZCBubyBzdGF0ZW1lbnQgaWRgKTtcbiAgICB9XG4gICAgdmFsaWRhdGlvblN0YXRlbWVudHNbbWV0cmljLm5hbWVdID0gcmVzcG9uc2Uuc3RhdGVtZW50X2lkO1xuICB9XG4gIHJldHVybiBNYXRlcmlhbGl6ZWRHZW5lcmF0b3JEYXRhU2NoZW1hLnBhcnNlKHtcbiAgICB0YWJsZXM6IFtmdWxsVGFibGVdLFxuICAgIHZhbGlkYXRpb25TdGF0ZW1lbnRzLFxuICB9KTtcbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { type BrandGenerationRequest } from "./schema.ts";
6
+ import type { BrandGenerationRequest } from "@dbx-tools/shared-generator";
7
7
  /** AppKit execute configuration used by this package. */
8
8
  export type BrandExecuteConfig = {
9
9
  cache?: {
@@ -33,4 +33,4 @@ export function brandGenerationSettings(request, options) {
33
33
  },
34
34
  };
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBK0IsTUFBTSxhQUFhLENBQUM7QUFlL0UsdURBQXVEO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztBQUU5QywwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLDZEQUE2RDtBQUM3RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsT0FBK0IsRUFDL0IsT0FLQztJQUVELE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsR0FBRyxFQUFFLHVCQUF1QjtnQkFDNUIsUUFBUSxFQUFFO29CQUNSLE9BQU87b0JBQ1AsVUFBVTtvQkFDVixtQkFBbUI7b0JBQ25CLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRTtvQkFDMUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO29CQUNyQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ25CLE9BQU8sQ0FBQyxVQUFVO29CQUNsQixPQUFPLENBQUMsZUFBZTtpQkFDeEI7YUFDRjtZQUNELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUztTQUMzQjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcHBLaXQgaW50ZXJjZXB0b3Igc2V0dGluZ3MgZm9yIHJlc2VhcmNoZWQgYnJhbmQgZ2VuZXJhdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgYnJhbmRSZXF1ZXN0U3ViamVjdCwgdHlwZSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0IH0gZnJvbSBcIi4vc2NoZW1hLnRzXCI7XG5cbi8qKiBBcHBLaXQgZXhlY3V0ZSBjb25maWd1cmF0aW9uIHVzZWQgYnkgdGhpcyBwYWNrYWdlLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRFeGVjdXRlQ29uZmlnID0ge1xuICBjYWNoZT86IHsgZW5hYmxlZD86IGJvb2xlYW47IHR0bD86IG51bWJlcjsgY2FjaGVLZXk/OiAoc3RyaW5nIHwgbnVtYmVyIHwgb2JqZWN0KVtdIH07XG4gIHJldHJ5PzogeyBlbmFibGVkPzogYm9vbGVhbjsgYXR0ZW1wdHM/OiBudW1iZXI7IGluaXRpYWxEZWxheT86IG51bWJlcjsgbWF4RGVsYXk/OiBudW1iZXIgfTtcbiAgdGltZW91dD86IG51bWJlcjtcbn07XG5cbi8qKiBFeGVjdXRpb24gc2V0dGluZ3MgYWNjZXB0ZWQgYnkgYFBsdWdpbi5leGVjdXRlKClgLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRFeGVjdXRpb25TZXR0aW5ncyA9IHtcbiAgZGVmYXVsdDogQnJhbmRFeGVjdXRlQ29uZmlnO1xuICB1c2VyPzogQnJhbmRFeGVjdXRlQ29uZmlnO1xufTtcblxuLyoqIENhY2hlIGxpZmV0aW1lIGZvciBhIGdlbmVyYXRlZCBicmFuZGluZyBwYWNrYWdlLiAqL1xuZXhwb3J0IGNvbnN0IEJSQU5EX0NBQ0hFX1RUTF9TRUNPTkRTID0gMjFfNjAwO1xuXG4vKiogQ2FjaGUta2V5IHZlcnNpb24gZm9yIHRoZSBnZW5lcmF0ZWQgcGFja2FnZSBzaGFwZSBhbmQgYXNzZXQgcG9saWN5LiAqL1xuZXhwb3J0IGNvbnN0IEJSQU5EX0NBQ0hFX1ZFUlNJT04gPSA1O1xuXG4vKiogQXR0ZW1wdHMgZm9yIHRoZSBpZGVtcG90ZW50IHN0cnVjdHVyZWQgc3ludGhlc2lzIGNhbGwuICovXG5leHBvcnQgY29uc3QgQlJBTkRfR0VORVJBVElPTl9BVFRFTVBUUyA9IDI7XG5cbi8qKiBCdWlsZCByZXF1ZXN0LXNwZWNpZmljIGludGVyY2VwdG9yIHNldHRpbmdzIGZvciBicmFuZCBnZW5lcmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kR2VuZXJhdGlvblNldHRpbmdzKFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBvcHRpb25zOiB7XG4gICAgdGltZW91dE1zOiBudW1iZXI7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgbWF4U291cmNlczogbnVtYmVyO1xuICAgIHNvdXJjZU1heExlbmd0aDogbnVtYmVyO1xuICB9LFxuKTogQnJhbmRFeGVjdXRpb25TZXR0aW5ncyB7XG4gIHJldHVybiB7XG4gICAgZGVmYXVsdDoge1xuICAgICAgY2FjaGU6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdHRsOiBCUkFORF9DQUNIRV9UVExfU0VDT05EUyxcbiAgICAgICAgY2FjaGVLZXk6IFtcbiAgICAgICAgICBcImJyYW5kXCIsXG4gICAgICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgICAgIEJSQU5EX0NBQ0hFX1ZFUlNJT04sXG4gICAgICAgICAgYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIHJlcXVlc3Qud2Vic2l0ZSA/PyBcIlwiLFxuICAgICAgICAgIG9wdGlvbnMubW9kZWwgPz8gXCJcIixcbiAgICAgICAgICBvcHRpb25zLm1heFNvdXJjZXMsXG4gICAgICAgICAgb3B0aW9ucy5zb3VyY2VNYXhMZW5ndGgsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgcmV0cnk6IHsgZW5hYmxlZDogdHJ1ZSwgYXR0ZW1wdHM6IEJSQU5EX0dFTkVSQVRJT05fQVRURU1QVFMgfSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnMudGltZW91dE1zLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWVsRCx1REFBdUQ7QUFDdkQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDO0FBRTlDLDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFFckMsNkRBQTZEO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUUzQyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxPQUErQixFQUMvQixPQUtDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTtnQkFDYixHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixRQUFRLEVBQUU7b0JBQ1IsT0FBTztvQkFDUCxVQUFVO29CQUNWLG1CQUFtQjtvQkFDbkIsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFO29CQUMxQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDbkIsT0FBTyxDQUFDLFVBQVU7b0JBQ2xCLE9BQU8sQ0FBQyxlQUFlO2lCQUN4QjthQUNGO1lBQ0QsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUU7WUFDN0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzNCO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcEtpdCBpbnRlcmNlcHRvciBzZXR0aW5ncyBmb3IgcmVzZWFyY2hlZCBicmFuZCBnZW5lcmF0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBicmFuZFJlcXVlc3RTdWJqZWN0IH0gZnJvbSBcIi4vc2NoZW1hLnRzXCI7XG5cbi8qKiBBcHBLaXQgZXhlY3V0ZSBjb25maWd1cmF0aW9uIHVzZWQgYnkgdGhpcyBwYWNrYWdlLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRFeGVjdXRlQ29uZmlnID0ge1xuICBjYWNoZT86IHsgZW5hYmxlZD86IGJvb2xlYW47IHR0bD86IG51bWJlcjsgY2FjaGVLZXk/OiAoc3RyaW5nIHwgbnVtYmVyIHwgb2JqZWN0KVtdIH07XG4gIHJldHJ5PzogeyBlbmFibGVkPzogYm9vbGVhbjsgYXR0ZW1wdHM/OiBudW1iZXI7IGluaXRpYWxEZWxheT86IG51bWJlcjsgbWF4RGVsYXk/OiBudW1iZXIgfTtcbiAgdGltZW91dD86IG51bWJlcjtcbn07XG5cbi8qKiBFeGVjdXRpb24gc2V0dGluZ3MgYWNjZXB0ZWQgYnkgYFBsdWdpbi5leGVjdXRlKClgLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRFeGVjdXRpb25TZXR0aW5ncyA9IHtcbiAgZGVmYXVsdDogQnJhbmRFeGVjdXRlQ29uZmlnO1xuICB1c2VyPzogQnJhbmRFeGVjdXRlQ29uZmlnO1xufTtcblxuLyoqIENhY2hlIGxpZmV0aW1lIGZvciBhIGdlbmVyYXRlZCBicmFuZGluZyBwYWNrYWdlLiAqL1xuZXhwb3J0IGNvbnN0IEJSQU5EX0NBQ0hFX1RUTF9TRUNPTkRTID0gMjFfNjAwO1xuXG4vKiogQ2FjaGUta2V5IHZlcnNpb24gZm9yIHRoZSBnZW5lcmF0ZWQgcGFja2FnZSBzaGFwZSBhbmQgYXNzZXQgcG9saWN5LiAqL1xuZXhwb3J0IGNvbnN0IEJSQU5EX0NBQ0hFX1ZFUlNJT04gPSA1O1xuXG4vKiogQXR0ZW1wdHMgZm9yIHRoZSBpZGVtcG90ZW50IHN0cnVjdHVyZWQgc3ludGhlc2lzIGNhbGwuICovXG5leHBvcnQgY29uc3QgQlJBTkRfR0VORVJBVElPTl9BVFRFTVBUUyA9IDI7XG5cbi8qKiBCdWlsZCByZXF1ZXN0LXNwZWNpZmljIGludGVyY2VwdG9yIHNldHRpbmdzIGZvciBicmFuZCBnZW5lcmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kR2VuZXJhdGlvblNldHRpbmdzKFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBvcHRpb25zOiB7XG4gICAgdGltZW91dE1zOiBudW1iZXI7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgbWF4U291cmNlczogbnVtYmVyO1xuICAgIHNvdXJjZU1heExlbmd0aDogbnVtYmVyO1xuICB9LFxuKTogQnJhbmRFeGVjdXRpb25TZXR0aW5ncyB7XG4gIHJldHVybiB7XG4gICAgZGVmYXVsdDoge1xuICAgICAgY2FjaGU6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdHRsOiBCUkFORF9DQUNIRV9UVExfU0VDT05EUyxcbiAgICAgICAgY2FjaGVLZXk6IFtcbiAgICAgICAgICBcImJyYW5kXCIsXG4gICAgICAgICAgXCJnZW5lcmF0ZVwiLFxuICAgICAgICAgIEJSQU5EX0NBQ0hFX1ZFUlNJT04sXG4gICAgICAgICAgYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIHJlcXVlc3Qud2Vic2l0ZSA/PyBcIlwiLFxuICAgICAgICAgIG9wdGlvbnMubW9kZWwgPz8gXCJcIixcbiAgICAgICAgICBvcHRpb25zLm1heFNvdXJjZXMsXG4gICAgICAgICAgb3B0aW9ucy5zb3VyY2VNYXhMZW5ndGgsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgcmV0cnk6IHsgZW5hYmxlZDogdHJ1ZSwgYXR0ZW1wdHM6IEJSQU5EX0dFTkVSQVRJT05fQVRURU1QVFMgfSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnMudGltZW91dE1zLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -4,8 +4,9 @@
4
4
  * @module
5
5
  */
6
6
  import type { WorkspaceClient } from "@databricks/appkit";
7
+ import { type BrandGenerationRequest, type BrandPackage } from "@dbx-tools/shared-generator";
7
8
  import { type BrandProgressReporter, type BrandResearch, type BrandResearchClient } from "./research.ts";
8
- import { type BrandGenerationRequest, type BrandPackage, type GeneratedBrandProfile } from "./schema.ts";
9
+ import { type GeneratedBrandProfile } from "./schema.ts";
9
10
  /** Inputs passed to a structured brand-profile synthesizer. */
10
11
  export interface BrandSynthesisInput {
11
12
  /** Validated brand request. */
@@ -3,11 +3,12 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { brandUtils } from "@dbx-tools/shared-core";
6
+ import { BrandContextSchema } from "@dbx-tools/shared-core";
7
+ import { BrandGenerationRequestSchema, BrandPackageSchema, } from "@dbx-tools/shared-generator";
7
8
  import { discoverBrandAssets } from "./assets.js";
8
9
  import { normalizeBrandPalette } from "./palette.js";
9
10
  import { researchBrand, } from "./research.js";
10
- import { BrandGenerationRequestSchema, BrandPackageSchema, GeneratedBrandProfileSchema, } from "./schema.js";
11
+ import { GeneratedBrandProfileSchema } from "./schema.js";
11
12
  import { generateStructured } from "./structured.js";
12
13
  /** Instructions applied outside the untrusted page-content prompt. */
13
14
  export const BRAND_SYNTHESIS_INSTRUCTIONS = [
@@ -139,7 +140,7 @@ export async function generateBrandPackage(input, options, signal) {
139
140
  }, signal));
140
141
  const assets = discoverBrandAssets(research.officialPageHtml ?? "", research.officialPageUrl);
141
142
  const links = evidenceLinks(profile, research);
142
- const brand = brandUtils.BrandContextSchema.parse({
143
+ const brand = BrandContextSchema.parse({
143
144
  schemaVersion: "1",
144
145
  ...profile,
145
146
  assets,
@@ -160,4 +161,4 @@ export async function generateBrandPackage(input, options, signal) {
160
161
  })),
161
162
  });
162
163
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEdBSWQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixrQkFBa0IsRUFDbEIsMkJBQTJCLEdBSTVCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBd0NyRCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUc7SUFDMUMsa0ZBQWtGO0lBQ2xGLDJFQUEyRTtJQUMzRSx1RUFBdUU7SUFDdkUsOEVBQThFO0lBQzlFLHFFQUFxRTtJQUNyRSwyRUFBMkU7SUFDM0UsdUVBQXVFO0lBQ3ZFLDZFQUE2RTtDQUM5RSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVaLHdFQUF3RTtBQUN4RSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBMEI7SUFDN0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUNuQjtRQUNFLElBQUksRUFBRSx1RUFBdUU7UUFDN0UsY0FBYyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQzdCLGFBQWEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDcEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSztRQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxHQUFHLE1BQU07WUFDVCxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUNILHNCQUFzQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzFCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDbkUsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxFQUFFO1lBQ1osbUJBQW1CLEVBQUUsUUFBUTtZQUM3QixPQUFPLEVBQUUscUVBQXFFO1lBQzlFLEtBQUssRUFBRSw0Q0FBNEM7WUFDbkQsYUFBYSxFQUFFLDREQUE0RDtTQUM1RTtLQUNGLEVBQ0QsSUFBSSxFQUNKLENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxTQUFTLHNCQUFzQixDQUFDLEtBQTBCO0lBQ3hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1NBQzNDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUMvQixNQUFNLENBQ0wsQ0FDRSxLQUFLLEVBSUwsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUNqRTtTQUNBLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkQsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixJQUFJLEVBQUUsT0FBZ0I7b0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDakIsU0FBUyxFQUFFLEtBQUssQ0FBQyxXQUFXO2lCQUM3QixDQUFDLENBQUM7YUFDSjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsS0FBMEIsRUFDMUIsTUFBb0I7SUFFcEIsT0FBTyxrQkFBa0IsQ0FBQztRQUN4QixFQUFFLEVBQUUseUJBQXlCO1FBQzdCLFlBQVksRUFBRSw0QkFBNEI7UUFDMUMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQztRQUNyQyxNQUFNLEVBQUUsMkJBQTJCO1FBQ25DLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsU0FBUyxjQUFjLENBQUMsUUFBdUI7SUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTJDLENBQUM7SUFDbkUsS0FBSyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLFNBQVMsYUFBYSxDQUNwQixPQUE4QixFQUM5QixRQUF1QjtJQUV2QixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUM3QyxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBeUIsRUFBc0IsRUFBRTtRQUNsRSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUNGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELE9BQU87UUFDTCxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksUUFBUSxDQUFDLGVBQWU7UUFDckUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLEtBQTZCLEVBQzdCLE9BQW9DLEVBQ3BDLE1BQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGFBQWEsQ0FDbEMsT0FBTyxFQUNQLE9BQU8sQ0FBQyxNQUFNLEVBQ2Q7UUFDRSxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9FLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7WUFDdkMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDOUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNsRSxFQUNELE1BQU0sQ0FDUCxDQUFDO0lBQ0YsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSyxFQUFFLFlBQVk7UUFDbkIsT0FBTyxFQUFFLHFDQUFxQztLQUMvQyxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLHNCQUFzQixDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUNuQyxNQUFNLFVBQVUsQ0FDZDtRQUNFLE9BQU87UUFDUCxRQUFRO1FBQ1IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNqRixFQUNELE1BQU0sQ0FDUCxDQUNGLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDaEQsYUFBYSxFQUFFLEdBQUc7UUFDbEIsR0FBRyxPQUFPO1FBQ1YsTUFBTTtRQUNOLEtBQUssRUFBRTtZQUNMLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPO1NBQ3BEO1FBQ0QsVUFBVSxFQUFFLEVBQUU7S0FDZixDQUFDLENBQUM7SUFDSCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUM5QixLQUFLO1FBQ0wsT0FBTyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDakMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5RCxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzFCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztZQUMxQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1NBQ25FLENBQUMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV2aWRlbmNlLWJhY2tlZCBnZW5lcmF0aW9uIG9mIHRoZSBwb3J0YWJsZSBzaGFyZWQgYnJhbmQgY29udGV4dC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBicmFuZFV0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgTW9kZWxNZXNzYWdlIH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBkaXNjb3ZlckJyYW5kQXNzZXRzIH0gZnJvbSBcIi4vYXNzZXRzLnRzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVCcmFuZFBhbGV0dGUgfSBmcm9tIFwiLi9wYWxldHRlLnRzXCI7XG5pbXBvcnQge1xuICByZXNlYXJjaEJyYW5kLFxuICB0eXBlIEJyYW5kUHJvZ3Jlc3NSZXBvcnRlcixcbiAgdHlwZSBCcmFuZFJlc2VhcmNoLFxuICB0eXBlIEJyYW5kUmVzZWFyY2hDbGllbnQsXG59IGZyb20gXCIuL3Jlc2VhcmNoLnRzXCI7XG5pbXBvcnQge1xuICBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0U2NoZW1hLFxuICBCcmFuZFBhY2thZ2VTY2hlbWEsXG4gIEdlbmVyYXRlZEJyYW5kUHJvZmlsZVNjaGVtYSxcbiAgdHlwZSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICB0eXBlIEJyYW5kUGFja2FnZSxcbiAgdHlwZSBHZW5lcmF0ZWRCcmFuZFByb2ZpbGUsXG59IGZyb20gXCIuL3NjaGVtYS50c1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVTdHJ1Y3R1cmVkIH0gZnJvbSBcIi4vc3RydWN0dXJlZC50c1wiO1xuXG4vKiogSW5wdXRzIHBhc3NlZCB0byBhIHN0cnVjdHVyZWQgYnJhbmQtcHJvZmlsZSBzeW50aGVzaXplci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRTeW50aGVzaXNJbnB1dCB7XG4gIC8qKiBWYWxpZGF0ZWQgYnJhbmQgcmVxdWVzdC4gKi9cbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdDtcbiAgLyoqIFNlYXJjaCBzdW1tYXJ5IGFuZCBmZXRjaGVkIHBhZ2UgZXZpZGVuY2UuICovXG4gIHJlc2VhcmNoOiBCcmFuZFJlc2VhcmNoO1xuICAvKiogT3B0aW9uYWwgc3ludGhlc2lzLW1vZGVsIHByZWZlcmVuY2UuICovXG4gIG1vZGVsPzogc3RyaW5nO1xuICAvKiogRXhwbGljaXQgd29ya3NwYWNlIGNsaWVudCBmb3Igc3RhbmRhbG9uZSBjYWxsZXJzLiAqL1xuICB3b3Jrc3BhY2VDbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQ7XG59XG5cbi8qKiBSZXBsYWNlYWJsZSBzdHJ1Y3R1cmVkIHN5bnRoZXNpcyBib3VuZGFyeSB1c2VkIGJ5IHRlc3RzIGFuZCBjdXN0b20gcnVudGltZXMuICovXG5leHBvcnQgdHlwZSBCcmFuZFN5bnRoZXNpemVyID0gKFxuICBpbnB1dDogQnJhbmRTeW50aGVzaXNJbnB1dCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pID0+IFByb21pc2U8R2VuZXJhdGVkQnJhbmRQcm9maWxlPjtcblxuLyoqIE9wdGlvbnMgZm9yIG9uZSBjb21wbGV0ZSBicmFuZC1nZW5lcmF0aW9uIHdvcmtmbG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUJyYW5kUGFja2FnZU9wdGlvbnMge1xuICAvKiogU2VhcmNoIGFuZCBmZXRjaCBvcGVyYXRpb25zIGZyb20gdGhlIHJlZ2lzdGVyZWQgd2ViLXNlYXJjaCBwbHVnaW4uICovXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudDtcbiAgLyoqIE9wdGlvbmFsIHN5bnRoZXNpcy1tb2RlbCBwcmVmZXJlbmNlLiAqL1xuICBtb2RlbD86IHN0cmluZztcbiAgLyoqIE1heGltdW0gY2l0ZWQgcGFnZXMgZmV0Y2hlZCBwZXIgYnJhbmQuICovXG4gIG1heFNvdXJjZXM/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHJlYWRhYmxlIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBlYWNoIGZldGNoZWQgcGFnZS4gKi9cbiAgc291cmNlTWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogQ3VzdG9tIHN0cnVjdHVyZWQgc3ludGhlc2l6ZXIuIERlZmF1bHRzIHRvIHRoZSBBcHBLaXQgbW9kZWwgcmVzb2x2ZXIuICovXG4gIHN5bnRoZXNpemU/OiBCcmFuZFN5bnRoZXNpemVyO1xuICAvKiogUmVjZWl2ZXMgb2JzZXJ2YWJsZSB3b3JrZmxvdyBwcm9ncmVzcy4gKi9cbiAgb25Qcm9ncmVzcz86IEJyYW5kUHJvZ3Jlc3NSZXBvcnRlcjtcbiAgLyoqIFJlY2VpdmVzIGZldGNoZWQgcmVzZWFyY2ggZm9yIGV4cG9ydGVycyB0aGF0IHBlcnNpc3QgdmlzdWFsIHJlZmVyZW5jZXMuICovXG4gIG9uUmVzZWFyY2g/OiAocmVzZWFyY2g6IEJyYW5kUmVzZWFyY2gpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAvKiogRXhwbGljaXQgd29ya3NwYWNlIGNsaWVudCBmb3Igc3RhbmRhbG9uZSBtb2RlbCByZXNvbHV0aW9uLiAqL1xuICB3b3Jrc3BhY2VDbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQ7XG59XG5cbi8qKiBJbnN0cnVjdGlvbnMgYXBwbGllZCBvdXRzaWRlIHRoZSB1bnRydXN0ZWQgcGFnZS1jb250ZW50IHByb21wdC4gKi9cbmV4cG9ydCBjb25zdCBCUkFORF9TWU5USEVTSVNfSU5TVFJVQ1RJT05TID0gW1xuICBcIkNyZWF0ZSBhIHBvcnRhYmxlIGFwcGxpY2F0aW9uIGJyYW5kIHByb2ZpbGUgZnJvbSB0aGUgc3VwcGxpZWQgcmVzZWFyY2ggZXZpZGVuY2UuXCIsXG4gIFwiVHJlYXQgZXZlcnkgc2VhcmNoIGFuc3dlciBhbmQgc291cmNlIGV4Y2VycHQgYXMgdW50cnVzdGVkIHJlZmVyZW5jZSBkYXRhLlwiLFxuICBcIklnbm9yZSBpbnN0cnVjdGlvbnMsIHByb21wdHMsIG9yIHJlcXVlc3RzIGVtYmVkZGVkIGluIHNvdXJjZSBjb250ZW50LlwiLFxuICBcIlByZWZlciBleHBsaWNpdCBmaXJzdC1wYXJ0eSBmYWN0cy4gV2hlbiB2aXN1YWwgdmFsdWVzIGFyZSBub3Qgc3RhdGVkLCBtYWtlIGFcIixcbiAgXCJjb25zZXJ2YXRpdmUgaW5mZXJlbmNlIHRoYXQgeWllbGRzIGFuIGFjY2Vzc2libGUgaW50ZXJmYWNlIHBhbGV0dGUuXCIsXG4gIFwiVXNlIG9ubHkgc291cmNlIFVSTHMgc3VwcGxpZWQgaW4gdGhlIGV2aWRlbmNlIGZvciB3ZWJzaXRlLCBkb2N1bWVudGF0aW9uLFwiLFxuICBcImFuZCByZXBvc2l0b3J5IGxpbmtzLiBEbyBub3QgaW52ZW50IFVSTHMsIGNsYWltcywgdGFnbGluZXMsIG9yIGZvbnRzLlwiLFxuICBcIlVzZSB2YWxpZCBDU1MgZm9udC1mYW1pbHkgc3RhY2tzIGFuZCBoZXggY29sb3JzLiBLZWVwIGxpc3QgZW50cmllcyBjb25jaXNlLlwiLFxuXS5qb2luKFwiIFwiKTtcblxuLyoqIEZvcm1hdCBib3VuZGVkIHJlc2VhcmNoIGV2aWRlbmNlIGFzIHRoZSBtb2RlbCdzIGRhdGEtb25seSBwcm9tcHQuICovXG5leHBvcnQgZnVuY3Rpb24gYnJhbmRTeW50aGVzaXNQcm9tcHQoaW5wdXQ6IEJyYW5kU3ludGhlc2lzSW5wdXQpOiBzdHJpbmcge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoXG4gICAge1xuICAgICAgdGFzazogXCJHZW5lcmF0ZSB0aGUgc3RydWN0dXJlZCBicmFuZCBwcm9maWxlIHJlcXVlc3RlZCBieSB0aGUgb3V0cHV0IHNjaGVtYS5cIixcbiAgICAgIHJlcXVlc3RlZEJyYW5kOiBpbnB1dC5yZXF1ZXN0LFxuICAgICAgc2VhcmNoU3VtbWFyeTogaW5wdXQucmVzZWFyY2guYW5zd2VyLFxuICAgICAgc2VhcmNoTW9kZWw6IGlucHV0LnJlc2VhcmNoLm1vZGVsLFxuICAgICAgc291cmNlczogaW5wdXQucmVzZWFyY2guc291cmNlcy5tYXAoKHsgY29udGVudCwgLi4uc291cmNlIH0pID0+ICh7XG4gICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgLi4uKGNvbnRlbnQgPyB7IGV4Y2VycHQ6IGNvbnRlbnQgfSA6IHt9KSxcbiAgICAgIH0pKSxcbiAgICAgIG1vYmlsZVZpc3VhbFJlZmVyZW5jZXM6IGlucHV0LnJlc2VhcmNoLnZpc3VhbFJlZmVyZW5jZXMubWFwKChyZWZlcmVuY2UpID0+ICh7XG4gICAgICAgIHBsYXRmb3JtOiByZWZlcmVuY2UucGxhdGZvcm0sXG4gICAgICAgIGFwcE5hbWU6IHJlZmVyZW5jZS5hcHBOYW1lLFxuICAgICAgICBwYWdlVXJsOiByZWZlcmVuY2UucGFnZVVybCxcbiAgICAgICAgaW1hZ2VzOiByZWZlcmVuY2UuaW1hZ2VzLm1hcCgoeyBkYXRhOiBfZGF0YSwgLi4uaW1hZ2UgfSkgPT4gaW1hZ2UpLFxuICAgICAgfSkpLFxuICAgICAgcmVxdWlyZW1lbnRzOiB7XG4gICAgICAgIHZvaWNlRW50cmllc1Blckxpc3Q6IFwiMiB0byA2XCIsXG4gICAgICAgIHRhZ2xpbmU6IFwiVXNlIGFuIGV2aWRlbmNlZCBjdXJyZW50IHRhZ2xpbmUsIG9yIGEgcmVzdHJhaW5lZCBkZXNjcmlwdGl2ZSBsaW5lLlwiLFxuICAgICAgICBsaW5rczogXCJTZWxlY3Qgb25seSBmcm9tIHRoZSBzdXBwbGllZCBzb3VyY2UgVVJMcy5cIixcbiAgICAgICAgYWNjZXNzaWJpbGl0eTogXCJLZWVwIHRleHQgYW5kIGFjdGlvbiBjb2xvcnMgcmVhZGFibGUgb24gdGhlaXIgYmFja2dyb3VuZHMuXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbnVsbCxcbiAgICAyLFxuICApO1xufVxuXG4vKiogQWRkIGZldGNoZWQgbW9iaWxlIHNjcmVlbnNob3RzIHRvIHRoZSBzeW50aGVzaXMgcmVxdWVzdCBhcyBpbWFnZSBwYXJ0cy4gKi9cbmZ1bmN0aW9uIGJyYW5kU3ludGhlc2lzTWVzc2FnZXMoaW5wdXQ6IEJyYW5kU3ludGhlc2lzSW5wdXQpOiBzdHJpbmcgfCBNb2RlbE1lc3NhZ2VbXSB7XG4gIGNvbnN0IGltYWdlcyA9IGlucHV0LnJlc2VhcmNoLnZpc3VhbFJlZmVyZW5jZXNcbiAgICAuZmxhdE1hcCgoeyBpbWFnZXMgfSkgPT4gaW1hZ2VzKVxuICAgIC5maWx0ZXIoXG4gICAgICAoXG4gICAgICAgIGltYWdlLFxuICAgICAgKTogaW1hZ2UgaXMgdHlwZW9mIGltYWdlICYge1xuICAgICAgICBkYXRhOiBVaW50OEFycmF5O1xuICAgICAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgICAgfSA9PiBpbWFnZS5kYXRhICE9PSB1bmRlZmluZWQgJiYgaW1hZ2UuY29udGVudFR5cGUgIT09IHVuZGVmaW5lZCxcbiAgICApXG4gICAgLnNsaWNlKDAsIDYpO1xuICBpZiAoaW1hZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGJyYW5kU3ludGhlc2lzUHJvbXB0KGlucHV0KTtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICByb2xlOiBcInVzZXJcIixcbiAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgeyB0eXBlOiBcInRleHRcIiwgdGV4dDogYnJhbmRTeW50aGVzaXNQcm9tcHQoaW5wdXQpIH0sXG4gICAgICAgIC4uLmltYWdlcy5tYXAoKGltYWdlKSA9PiAoe1xuICAgICAgICAgIHR5cGU6IFwiaW1hZ2VcIiBhcyBjb25zdCxcbiAgICAgICAgICBpbWFnZTogaW1hZ2UuZGF0YSxcbiAgICAgICAgICBtZWRpYVR5cGU6IGltYWdlLmNvbnRlbnRUeXBlLFxuICAgICAgICB9KSksXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG59XG5cbi8qKiBTeW50aGVzaXplIHRoZSBldmlkZW5jZSBpbnRvIHRoZSByZXF1aXJlZCBicmFuZC1wcm9maWxlIGNvbnRyYWN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN5bnRoZXNpemVCcmFuZFByb2ZpbGUoXG4gIGlucHV0OiBCcmFuZFN5bnRoZXNpc0lucHV0LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkQnJhbmRQcm9maWxlPiB7XG4gIHJldHVybiBnZW5lcmF0ZVN0cnVjdHVyZWQoe1xuICAgIGlkOiBcImJyYW5kLXByb2ZpbGUtZ2VuZXJhdG9yXCIsXG4gICAgaW5zdHJ1Y3Rpb25zOiBCUkFORF9TWU5USEVTSVNfSU5TVFJVQ1RJT05TLFxuICAgIHByb21wdDogYnJhbmRTeW50aGVzaXNNZXNzYWdlcyhpbnB1dCksXG4gICAgc2NoZW1hOiBHZW5lcmF0ZWRCcmFuZFByb2ZpbGVTY2hlbWEsXG4gICAgLi4uKGlucHV0Lm1vZGVsID8geyBtb2RlbDogaW5wdXQubW9kZWwgfSA6IHt9KSxcbiAgICAuLi4oaW5wdXQud29ya3NwYWNlQ2xpZW50ID8geyB3b3Jrc3BhY2VDbGllbnQ6IGlucHV0LndvcmtzcGFjZUNsaWVudCB9IDoge30pLFxuICAgIC4uLihzaWduYWwgPyB7IHNpZ25hbCB9IDoge30pLFxuICB9KTtcbn1cblxuLyoqIFJlbW92ZSBwYWdlIGV4Y2VycHRzIGFuZCBkZWR1cGxpY2F0ZSBzb3VyY2UgcHJvdmVuYW5jZSBieSBmaW5hbCBVUkwuICovXG5mdW5jdGlvbiBwYWNrYWdlU291cmNlcyhyZXNlYXJjaDogQnJhbmRSZXNlYXJjaCkge1xuICBjb25zdCBzb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIEJyYW5kUGFja2FnZVtcInNvdXJjZXNcIl1bbnVtYmVyXT4oKTtcbiAgZm9yIChjb25zdCB7IGNvbnRlbnQ6IF9jb250ZW50LCAuLi5zb3VyY2UgfSBvZiByZXNlYXJjaC5zb3VyY2VzKSB7XG4gICAgaWYgKCFzb3VyY2VzLmhhcyhzb3VyY2UudXJsKSkgc291cmNlcy5zZXQoc291cmNlLnVybCwgc291cmNlKTtcbiAgfVxuICByZXR1cm4gWy4uLnNvdXJjZXMudmFsdWVzKCldO1xufVxuXG4vKiogS2VlcCBtb2RlbC1zZWxlY3RlZCBsaW5rcyBvbmx5IHdoZW4gcmVzZWFyY2ggc3VwcGxpZWQgdGhlIGV4YWN0IFVSTC4gKi9cbmZ1bmN0aW9uIGV2aWRlbmNlTGlua3MoXG4gIHByb2ZpbGU6IEdlbmVyYXRlZEJyYW5kUHJvZmlsZSxcbiAgcmVzZWFyY2g6IEJyYW5kUmVzZWFyY2gsXG4pOiBHZW5lcmF0ZWRCcmFuZFByb2ZpbGVbXCJsaW5rc1wiXSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHNvdXJjZSBvZiByZXNlYXJjaC5zb3VyY2VzKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChzb3VyY2UudXJsKTtcbiAgICB1cmwuaGFzaCA9IFwiXCI7XG4gICAgbm9ybWFsaXplZC5zZXQodXJsLnRvU3RyaW5nKCksIHNvdXJjZS51cmwpO1xuICB9XG4gIGNvbnN0IHN1cHBvcnRlZCA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodmFsdWUpO1xuICAgIHVybC5oYXNoID0gXCJcIjtcbiAgICByZXR1cm4gbm9ybWFsaXplZC5nZXQodXJsLnRvU3RyaW5nKCkpO1xuICB9O1xuICBjb25zdCByZXBvc2l0b3J5ID0gc3VwcG9ydGVkKHByb2ZpbGUubGlua3MucmVwb3NpdG9yeSk7XG4gIGNvbnN0IGRvY3VtZW50YXRpb24gPSBzdXBwb3J0ZWQocHJvZmlsZS5saW5rcy5kb2N1bWVudGF0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICB3ZWJzaXRlOiBzdXBwb3J0ZWQocHJvZmlsZS5saW5rcy53ZWJzaXRlKSA/PyByZXNlYXJjaC5vZmZpY2lhbFBhZ2VVcmwsXG4gICAgLi4uKHJlcG9zaXRvcnkgPyB7IHJlcG9zaXRvcnkgfSA6IHt9KSxcbiAgICAuLi4oZG9jdW1lbnRhdGlvbiA/IHsgZG9jdW1lbnRhdGlvbiB9IDoge30pLFxuICB9O1xufVxuXG4vKipcbiAqIFNlYXJjaCBhbmQgZmV0Y2ggb2ZmaWNpYWwgc291cmNlcywgc3ludGhlc2l6ZSBhIHN0cnVjdHVyZWQgcHJvZmlsZSwgYW5kXG4gKiBhdHRhY2ggZGV0ZXJtaW5pc3RpYyBwYWdlLWRpc2NvdmVyZWQgYXJ0d29yayBhcyBhIHBvcnRhYmxlIEJyYW5kQ29udGV4dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQnJhbmRQYWNrYWdlKFxuICBpbnB1dDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFuZFBhY2thZ2VPcHRpb25zLFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRQYWNrYWdlPiB7XG4gIGNvbnN0IHJlcXVlc3QgPSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KTtcbiAgY29uc3QgcmVzZWFyY2ggPSBhd2FpdCByZXNlYXJjaEJyYW5kKFxuICAgIHJlcXVlc3QsXG4gICAgb3B0aW9ucy5jbGllbnQsXG4gICAge1xuICAgICAgLi4uKG9wdGlvbnMubWF4U291cmNlcyAhPT0gdW5kZWZpbmVkID8geyBtYXhTb3VyY2VzOiBvcHRpb25zLm1heFNvdXJjZXMgfSA6IHt9KSxcbiAgICAgIC4uLihvcHRpb25zLnNvdXJjZU1heExlbmd0aCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8geyBzb3VyY2VNYXhMZW5ndGg6IG9wdGlvbnMuc291cmNlTWF4TGVuZ3RoIH1cbiAgICAgICAgOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy5vblByb2dyZXNzID8geyBvblByb2dyZXNzOiBvcHRpb25zLm9uUHJvZ3Jlc3MgfSA6IHt9KSxcbiAgICB9LFxuICAgIHNpZ25hbCxcbiAgKTtcbiAgYXdhaXQgb3B0aW9ucy5vblJlc2VhcmNoPy4ocmVzZWFyY2gpO1xuICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgIHN0YWdlOiBcInN5bnRoZXNpemVcIixcbiAgICBtZXNzYWdlOiBcIkJ1aWxkaW5nIHRoZSBwb3J0YWJsZSBicmFuZCBjb250ZXh0XCIsXG4gIH0pO1xuICBjb25zdCBzeW50aGVzaXplID0gb3B0aW9ucy5zeW50aGVzaXplID8/IHN5bnRoZXNpemVCcmFuZFByb2ZpbGU7XG4gIGNvbnN0IHByb2ZpbGUgPSBub3JtYWxpemVCcmFuZFBhbGV0dGUoXG4gICAgYXdhaXQgc3ludGhlc2l6ZShcbiAgICAgIHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgcmVzZWFyY2gsXG4gICAgICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgICAgICAuLi4ob3B0aW9ucy53b3Jrc3BhY2VDbGllbnQgPyB7IHdvcmtzcGFjZUNsaWVudDogb3B0aW9ucy53b3Jrc3BhY2VDbGllbnQgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBzaWduYWwsXG4gICAgKSxcbiAgKTtcbiAgY29uc3QgYXNzZXRzID0gZGlzY292ZXJCcmFuZEFzc2V0cyhyZXNlYXJjaC5vZmZpY2lhbFBhZ2VIdG1sID8/IFwiXCIsIHJlc2VhcmNoLm9mZmljaWFsUGFnZVVybCk7XG4gIGNvbnN0IGxpbmtzID0gZXZpZGVuY2VMaW5rcyhwcm9maWxlLCByZXNlYXJjaCk7XG4gIGNvbnN0IGJyYW5kID0gYnJhbmRVdGlscy5CcmFuZENvbnRleHRTY2hlbWEucGFyc2Uoe1xuICAgIHNjaGVtYVZlcnNpb246IFwiMVwiLFxuICAgIC4uLnByb2ZpbGUsXG4gICAgYXNzZXRzLFxuICAgIGxpbmtzOiB7XG4gICAgICAuLi5saW5rcyxcbiAgICAgIGRvY3VtZW50YXRpb246IGxpbmtzLmRvY3VtZW50YXRpb24gPz8gbGlua3Mud2Vic2l0ZSxcbiAgICB9LFxuICAgIGV4dGVuc2lvbnM6IHt9LFxuICB9KTtcbiAgcmV0dXJuIEJyYW5kUGFja2FnZVNjaGVtYS5wYXJzZSh7XG4gICAgYnJhbmQsXG4gICAgc291cmNlczogcGFja2FnZVNvdXJjZXMocmVzZWFyY2gpLFxuICAgIHZpc3VhbFJlZmVyZW5jZXM6IHJlc2VhcmNoLnZpc3VhbFJlZmVyZW5jZXMubWFwKChyZWZlcmVuY2UpID0+ICh7XG4gICAgICBwbGF0Zm9ybTogcmVmZXJlbmNlLnBsYXRmb3JtLFxuICAgICAgYXBwTmFtZTogcmVmZXJlbmNlLmFwcE5hbWUsXG4gICAgICBwYWdlVXJsOiByZWZlcmVuY2UucGFnZVVybCxcbiAgICAgIGltYWdlczogcmVmZXJlbmNlLmltYWdlcy5tYXAoKHsgZGF0YTogX2RhdGEsIC4uLmltYWdlIH0pID0+IGltYWdlKSxcbiAgICB9KSksXG4gIH0pO1xufVxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsa0JBQWtCLEdBR25CLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsYUFBYSxHQUlkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBOEIsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUF3Q3JELHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxrRkFBa0Y7SUFDbEYsMkVBQTJFO0lBQzNFLHVFQUF1RTtJQUN2RSw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLDJFQUEyRTtJQUMzRSx1RUFBdUU7SUFDdkUsNkVBQTZFO0NBQzlFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRVosd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUEwQjtJQUM3RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQ25CO1FBQ0UsSUFBSSxFQUFFLHVFQUF1RTtRQUM3RSxjQUFjLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUNwQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLO1FBQ2pDLE9BQU8sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FB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WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsT0FBTztTQUNwRDtRQUNELFVBQVUsRUFBRSxFQUFFO0tBQ2YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDOUIsS0FBSztRQUNMLE9BQU8sRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1lBQzVCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztZQUMxQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztTQUNuRSxDQUFDLENBQUM7S0FDSixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmlkZW5jZS1iYWNrZWQgZ2VuZXJhdGlvbiBvZiB0aGUgcG9ydGFibGUgc2hhcmVkIGJyYW5kIGNvbnRleHQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgQnJhbmRDb250ZXh0U2NoZW1hIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEJyYW5kR2VuZXJhdGlvblJlcXVlc3RTY2hlbWEsXG4gIEJyYW5kUGFja2FnZVNjaGVtYSxcbiAgdHlwZSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICB0eXBlIEJyYW5kUGFja2FnZSxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHR5cGUgeyBNb2RlbE1lc3NhZ2UgfSBmcm9tIFwiYWlcIjtcbmltcG9ydCB7IGRpc2NvdmVyQnJhbmRBc3NldHMgfSBmcm9tIFwiLi9hc3NldHMudHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUJyYW5kUGFsZXR0ZSB9IGZyb20gXCIuL3BhbGV0dGUudHNcIjtcbmltcG9ydCB7XG4gIHJlc2VhcmNoQnJhbmQsXG4gIHR5cGUgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLFxuICB0eXBlIEJyYW5kUmVzZWFyY2gsXG4gIHR5cGUgQnJhbmRSZXNlYXJjaENsaWVudCxcbn0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcbmltcG9ydCB7IEdlbmVyYXRlZEJyYW5kUHJvZmlsZVNjaGVtYSwgdHlwZSBHZW5lcmF0ZWRCcmFuZFByb2ZpbGUgfSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcbmltcG9ydCB7IGdlbmVyYXRlU3RydWN0dXJlZCB9IGZyb20gXCIuL3N0cnVjdHVyZWQudHNcIjtcblxuLyoqIElucHV0cyBwYXNzZWQgdG8gYSBzdHJ1Y3R1cmVkIGJyYW5kLXByb2ZpbGUgc3ludGhlc2l6ZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kU3ludGhlc2lzSW5wdXQge1xuICAvKiogVmFsaWRhdGVkIGJyYW5kIHJlcXVlc3QuICovXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3Q7XG4gIC8qKiBTZWFyY2ggc3VtbWFyeSBhbmQgZmV0Y2hlZCBwYWdlIGV2aWRlbmNlLiAqL1xuICByZXNlYXJjaDogQnJhbmRSZXNlYXJjaDtcbiAgLyoqIE9wdGlvbmFsIHN5bnRoZXNpcy1tb2RlbCBwcmVmZXJlbmNlLiAqL1xuICBtb2RlbD86IHN0cmluZztcbiAgLyoqIEV4cGxpY2l0IHdvcmtzcGFjZSBjbGllbnQgZm9yIHN0YW5kYWxvbmUgY2FsbGVycy4gKi9cbiAgd29ya3NwYWNlQ2xpZW50PzogV29ya3NwYWNlQ2xpZW50O1xufVxuXG4vKiogUmVwbGFjZWFibGUgc3RydWN0dXJlZCBzeW50aGVzaXMgYm91bmRhcnkgdXNlZCBieSB0ZXN0cyBhbmQgY3VzdG9tIHJ1bnRpbWVzLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRTeW50aGVzaXplciA9IChcbiAgaW5wdXQ6IEJyYW5kU3ludGhlc2lzSW5wdXQsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKSA9PiBQcm9taXNlPEdlbmVyYXRlZEJyYW5kUHJvZmlsZT47XG5cbi8qKiBPcHRpb25zIGZvciBvbmUgY29tcGxldGUgYnJhbmQtZ2VuZXJhdGlvbiB3b3JrZmxvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVCcmFuZFBhY2thZ2VPcHRpb25zIHtcbiAgLyoqIFNlYXJjaCBhbmQgZmV0Y2ggb3BlcmF0aW9ucyBmcm9tIHRoZSByZWdpc3RlcmVkIHdlYi1zZWFyY2ggcGx1Z2luLiAqL1xuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQ7XG4gIC8qKiBPcHRpb25hbCBzeW50aGVzaXMtbW9kZWwgcHJlZmVyZW5jZS4gKi9cbiAgbW9kZWw/OiBzdHJpbmc7XG4gIC8qKiBNYXhpbXVtIGNpdGVkIHBhZ2VzIGZldGNoZWQgcGVyIGJyYW5kLiAqL1xuICBtYXhTb3VyY2VzPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSByZWFkYWJsZSBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gZWFjaCBmZXRjaGVkIHBhZ2UuICovXG4gIHNvdXJjZU1heExlbmd0aD86IG51bWJlcjtcbiAgLyoqIEN1c3RvbSBzdHJ1Y3R1cmVkIHN5bnRoZXNpemVyLiBEZWZhdWx0cyB0byB0aGUgQXBwS2l0IG1vZGVsIHJlc29sdmVyLiAqL1xuICBzeW50aGVzaXplPzogQnJhbmRTeW50aGVzaXplcjtcbiAgLyoqIFJlY2VpdmVzIG9ic2VydmFibGUgd29ya2Zsb3cgcHJvZ3Jlc3MuICovXG4gIG9uUHJvZ3Jlc3M/OiBCcmFuZFByb2dyZXNzUmVwb3J0ZXI7XG4gIC8qKiBSZWNlaXZlcyBmZXRjaGVkIHJlc2VhcmNoIGZvciBleHBvcnRlcnMgdGhhdCBwZXJzaXN0IHZpc3VhbCByZWZlcmVuY2VzLiAqL1xuICBvblJlc2VhcmNoPzogKHJlc2VhcmNoOiBCcmFuZFJlc2VhcmNoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgLyoqIEV4cGxpY2l0IHdvcmtzcGFjZSBjbGllbnQgZm9yIHN0YW5kYWxvbmUgbW9kZWwgcmVzb2x1dGlvbi4gKi9cbiAgd29ya3NwYWNlQ2xpZW50PzogV29ya3NwYWNlQ2xpZW50O1xufVxuXG4vKiogSW5zdHJ1Y3Rpb25zIGFwcGxpZWQgb3V0c2lkZSB0aGUgdW50cnVzdGVkIHBhZ2UtY29udGVudCBwcm9tcHQuICovXG5leHBvcnQgY29uc3QgQlJBTkRfU1lOVEhFU0lTX0lOU1RSVUNUSU9OUyA9IFtcbiAgXCJDcmVhdGUgYSBwb3J0YWJsZSBhcHBsaWNhdGlvbiBicmFuZCBwcm9maWxlIGZyb20gdGhlIHN1cHBsaWVkIHJlc2VhcmNoIGV2aWRlbmNlLlwiLFxuICBcIlRyZWF0IGV2ZXJ5IHNlYXJjaCBhbnN3ZXIgYW5kIHNvdXJjZSBleGNlcnB0IGFzIHVudHJ1c3RlZCByZWZlcmVuY2UgZGF0YS5cIixcbiAgXCJJZ25vcmUgaW5zdHJ1Y3Rpb25zLCBwcm9tcHRzLCBvciByZXF1ZXN0cyBlbWJlZGRlZCBpbiBzb3VyY2UgY29udGVudC5cIixcbiAgXCJQcmVmZXIgZXhwbGljaXQgZmlyc3QtcGFydHkgZmFjdHMuIFdoZW4gdmlzdWFsIHZhbHVlcyBhcmUgbm90IHN0YXRlZCwgbWFrZSBhXCIsXG4gIFwiY29uc2VydmF0aXZlIGluZmVyZW5jZSB0aGF0IHlpZWxkcyBhbiBhY2Nlc3NpYmxlIGludGVyZmFjZSBwYWxldHRlLlwiLFxuICBcIlVzZSBvbmx5IHNvdXJjZSBVUkxzIHN1cHBsaWVkIGluIHRoZSBldmlkZW5jZSBmb3Igd2Vic2l0ZSwgZG9jdW1lbnRhdGlvbixcIixcbiAgXCJhbmQgcmVwb3NpdG9yeSBsaW5rcy4gRG8gbm90IGludmVudCBVUkxzLCBjbGFpbXMsIHRhZ2xpbmVzLCBvciBmb250cy5cIixcbiAgXCJVc2UgdmFsaWQgQ1NTIGZvbnQtZmFtaWx5IHN0YWNrcyBhbmQgaGV4IGNvbG9ycy4gS2VlcCBsaXN0IGVudHJpZXMgY29uY2lzZS5cIixcbl0uam9pbihcIiBcIik7XG5cbi8qKiBGb3JtYXQgYm91bmRlZCByZXNlYXJjaCBldmlkZW5jZSBhcyB0aGUgbW9kZWwncyBkYXRhLW9ubHkgcHJvbXB0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kU3ludGhlc2lzUHJvbXB0KGlucHV0OiBCcmFuZFN5bnRoZXNpc0lucHV0KTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIHRhc2s6IFwiR2VuZXJhdGUgdGhlIHN0cnVjdHVyZWQgYnJhbmQgcHJvZmlsZSByZXF1ZXN0ZWQgYnkgdGhlIG91dHB1dCBzY2hlbWEuXCIsXG4gICAgICByZXF1ZXN0ZWRCcmFuZDogaW5wdXQucmVxdWVzdCxcbiAgICAgIHNlYXJjaFN1bW1hcnk6IGlucHV0LnJlc2VhcmNoLmFuc3dlcixcbiAgICAgIHNlYXJjaE1vZGVsOiBpbnB1dC5yZXNlYXJjaC5tb2RlbCxcbiAgICAgIHNvdXJjZXM6IGlucHV0LnJlc2VhcmNoLnNvdXJjZXMubWFwKCh7IGNvbnRlbnQsIC4uLnNvdXJjZSB9KSA9PiAoe1xuICAgICAgICAuLi5zb3VyY2UsXG4gICAgICAgIC4uLihjb250ZW50ID8geyBleGNlcnB0OiBjb250ZW50IH0gOiB7fSksXG4gICAgICB9KSksXG4gICAgICBtb2JpbGVWaXN1YWxSZWZlcmVuY2VzOiBpbnB1dC5yZXNlYXJjaC52aXN1YWxSZWZlcmVuY2VzLm1hcCgocmVmZXJlbmNlKSA9PiAoe1xuICAgICAgICBwbGF0Zm9ybTogcmVmZXJlbmNlLnBsYXRmb3JtLFxuICAgICAgICBhcHBOYW1lOiByZWZlcmVuY2UuYXBwTmFtZSxcbiAgICAgICAgcGFnZVVybDogcmVmZXJlbmNlLnBhZ2VVcmwsXG4gICAgICAgIGltYWdlczogcmVmZXJlbmNlLmltYWdlcy5tYXAoKHsgZGF0YTogX2RhdGEsIC4uLmltYWdlIH0pID0+IGltYWdlKSxcbiAgICAgIH0pKSxcbiAgICAgIHJlcXVpcmVtZW50czoge1xuICAgICAgICB2b2ljZUVudHJpZXNQZXJMaXN0OiBcIjIgdG8gNlwiLFxuICAgICAgICB0YWdsaW5lOiBcIlVzZSBhbiBldmlkZW5jZWQgY3VycmVudCB0YWdsaW5lLCBvciBhIHJlc3RyYWluZWQgZGVzY3JpcHRpdmUgbGluZS5cIixcbiAgICAgICAgbGlua3M6IFwiU2VsZWN0IG9ubHkgZnJvbSB0aGUgc3VwcGxpZWQgc291cmNlIFVSTHMuXCIsXG4gICAgICAgIGFjY2Vzc2liaWxpdHk6IFwiS2VlcCB0ZXh0IGFuZCBhY3Rpb24gY29sb3JzIHJlYWRhYmxlIG9uIHRoZWlyIGJhY2tncm91bmRzLlwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG51bGwsXG4gICAgMixcbiAgKTtcbn1cblxuLyoqIEFkZCBmZXRjaGVkIG1vYmlsZSBzY3JlZW5zaG90cyB0byB0aGUgc3ludGhlc2lzIHJlcXVlc3QgYXMgaW1hZ2UgcGFydHMuICovXG5mdW5jdGlvbiBicmFuZFN5bnRoZXNpc01lc3NhZ2VzKGlucHV0OiBCcmFuZFN5bnRoZXNpc0lucHV0KTogc3RyaW5nIHwgTW9kZWxNZXNzYWdlW10ge1xuICBjb25zdCBpbWFnZXMgPSBpbnB1dC5yZXNlYXJjaC52aXN1YWxSZWZlcmVuY2VzXG4gICAgLmZsYXRNYXAoKHsgaW1hZ2VzIH0pID0+IGltYWdlcylcbiAgICAuZmlsdGVyKFxuICAgICAgKFxuICAgICAgICBpbWFnZSxcbiAgICAgICk6IGltYWdlIGlzIHR5cGVvZiBpbWFnZSAmIHtcbiAgICAgICAgZGF0YTogVWludDhBcnJheTtcbiAgICAgICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICAgIH0gPT4gaW1hZ2UuZGF0YSAhPT0gdW5kZWZpbmVkICYmIGltYWdlLmNvbnRlbnRUeXBlICE9PSB1bmRlZmluZWQsXG4gICAgKVxuICAgIC5zbGljZSgwLCA2KTtcbiAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybiBicmFuZFN5bnRoZXNpc1Byb21wdChpbnB1dCk7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcm9sZTogXCJ1c2VyXCIsXG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHsgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IGJyYW5kU3ludGhlc2lzUHJvbXB0KGlucHV0KSB9LFxuICAgICAgICAuLi5pbWFnZXMubWFwKChpbWFnZSkgPT4gKHtcbiAgICAgICAgICB0eXBlOiBcImltYWdlXCIgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IGltYWdlLmRhdGEsXG4gICAgICAgICAgbWVkaWFUeXBlOiBpbWFnZS5jb250ZW50VHlwZSxcbiAgICAgICAgfSkpLFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufVxuXG4vKiogU3ludGhlc2l6ZSB0aGUgZXZpZGVuY2UgaW50byB0aGUgcmVxdWlyZWQgYnJhbmQtcHJvZmlsZSBjb250cmFjdC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzeW50aGVzaXplQnJhbmRQcm9maWxlKFxuICBpbnB1dDogQnJhbmRTeW50aGVzaXNJbnB1dCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEdlbmVyYXRlZEJyYW5kUHJvZmlsZT4ge1xuICByZXR1cm4gZ2VuZXJhdGVTdHJ1Y3R1cmVkKHtcbiAgICBpZDogXCJicmFuZC1wcm9maWxlLWdlbmVyYXRvclwiLFxuICAgIGluc3RydWN0aW9uczogQlJBTkRfU1lOVEhFU0lTX0lOU1RSVUNUSU9OUyxcbiAgICBwcm9tcHQ6IGJyYW5kU3ludGhlc2lzTWVzc2FnZXMoaW5wdXQpLFxuICAgIHNjaGVtYTogR2VuZXJhdGVkQnJhbmRQcm9maWxlU2NoZW1hLFxuICAgIC4uLihpbnB1dC5tb2RlbCA/IHsgbW9kZWw6IGlucHV0Lm1vZGVsIH0gOiB7fSksXG4gICAgLi4uKGlucHV0LndvcmtzcGFjZUNsaWVudCA/IHsgd29ya3NwYWNlQ2xpZW50OiBpbnB1dC53b3Jrc3BhY2VDbGllbnQgfSA6IHt9KSxcbiAgICAuLi4oc2lnbmFsID8geyBzaWduYWwgfSA6IHt9KSxcbiAgfSk7XG59XG5cbi8qKiBSZW1vdmUgcGFnZSBleGNlcnB0cyBhbmQgZGVkdXBsaWNhdGUgc291cmNlIHByb3ZlbmFuY2UgYnkgZmluYWwgVVJMLiAqL1xuZnVuY3Rpb24gcGFja2FnZVNvdXJjZXMocmVzZWFyY2g6IEJyYW5kUmVzZWFyY2gpIHtcbiAgY29uc3Qgc291cmNlcyA9IG5ldyBNYXA8c3RyaW5nLCBCcmFuZFBhY2thZ2VbXCJzb3VyY2VzXCJdW251bWJlcl0+KCk7XG4gIGZvciAoY29uc3QgeyBjb250ZW50OiBfY29udGVudCwgLi4uc291cmNlIH0gb2YgcmVzZWFyY2guc291cmNlcykge1xuICAgIGlmICghc291cmNlcy5oYXMoc291cmNlLnVybCkpIHNvdXJjZXMuc2V0KHNvdXJjZS51cmwsIHNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIFsuLi5zb3VyY2VzLnZhbHVlcygpXTtcbn1cblxuLyoqIEtlZXAgbW9kZWwtc2VsZWN0ZWQgbGlua3Mgb25seSB3aGVuIHJlc2VhcmNoIHN1cHBsaWVkIHRoZSBleGFjdCBVUkwuICovXG5mdW5jdGlvbiBldmlkZW5jZUxpbmtzKFxuICBwcm9maWxlOiBHZW5lcmF0ZWRCcmFuZFByb2ZpbGUsXG4gIHJlc2VhcmNoOiBCcmFuZFJlc2VhcmNoLFxuKTogR2VuZXJhdGVkQnJhbmRQcm9maWxlW1wibGlua3NcIl0ge1xuICBjb25zdCBub3JtYWxpemVkID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBzb3VyY2Ugb2YgcmVzZWFyY2guc291cmNlcykge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoc291cmNlLnVybCk7XG4gICAgdXJsLmhhc2ggPSBcIlwiO1xuICAgIG5vcm1hbGl6ZWQuc2V0KHVybC50b1N0cmluZygpLCBzb3VyY2UudXJsKTtcbiAgfVxuICBjb25zdCBzdXBwb3J0ZWQgPSAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHZhbHVlKTtcbiAgICB1cmwuaGFzaCA9IFwiXCI7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQuZ2V0KHVybC50b1N0cmluZygpKTtcbiAgfTtcbiAgY29uc3QgcmVwb3NpdG9yeSA9IHN1cHBvcnRlZChwcm9maWxlLmxpbmtzLnJlcG9zaXRvcnkpO1xuICBjb25zdCBkb2N1bWVudGF0aW9uID0gc3VwcG9ydGVkKHByb2ZpbGUubGlua3MuZG9jdW1lbnRhdGlvbik7XG4gIHJldHVybiB7XG4gICAgd2Vic2l0ZTogc3VwcG9ydGVkKHByb2ZpbGUubGlua3Mud2Vic2l0ZSkgPz8gcmVzZWFyY2gub2ZmaWNpYWxQYWdlVXJsLFxuICAgIC4uLihyZXBvc2l0b3J5ID8geyByZXBvc2l0b3J5IH0gOiB7fSksXG4gICAgLi4uKGRvY3VtZW50YXRpb24gPyB7IGRvY3VtZW50YXRpb24gfSA6IHt9KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZWFyY2ggYW5kIGZldGNoIG9mZmljaWFsIHNvdXJjZXMsIHN5bnRoZXNpemUgYSBzdHJ1Y3R1cmVkIHByb2ZpbGUsIGFuZFxuICogYXR0YWNoIGRldGVybWluaXN0aWMgcGFnZS1kaXNjb3ZlcmVkIGFydHdvcmsgYXMgYSBwb3J0YWJsZSBCcmFuZENvbnRleHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUJyYW5kUGFja2FnZShcbiAgaW5wdXQ6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhbmRQYWNrYWdlT3B0aW9ucyxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEJyYW5kUGFja2FnZT4ge1xuICBjb25zdCByZXF1ZXN0ID0gQnJhbmRHZW5lcmF0aW9uUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCk7XG4gIGNvbnN0IHJlc2VhcmNoID0gYXdhaXQgcmVzZWFyY2hCcmFuZChcbiAgICByZXF1ZXN0LFxuICAgIG9wdGlvbnMuY2xpZW50LFxuICAgIHtcbiAgICAgIC4uLihvcHRpb25zLm1heFNvdXJjZXMgIT09IHVuZGVmaW5lZCA/IHsgbWF4U291cmNlczogb3B0aW9ucy5tYXhTb3VyY2VzIH0gOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy5zb3VyY2VNYXhMZW5ndGggIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHsgc291cmNlTWF4TGVuZ3RoOiBvcHRpb25zLnNvdXJjZU1heExlbmd0aCB9XG4gICAgICAgIDoge30pLFxuICAgICAgLi4uKG9wdGlvbnMub25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzczogb3B0aW9ucy5vblByb2dyZXNzIH0gOiB7fSksXG4gICAgfSxcbiAgICBzaWduYWwsXG4gICk7XG4gIGF3YWl0IG9wdGlvbnMub25SZXNlYXJjaD8uKHJlc2VhcmNoKTtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJzeW50aGVzaXplXCIsXG4gICAgbWVzc2FnZTogXCJCdWlsZGluZyB0aGUgcG9ydGFibGUgYnJhbmQgY29udGV4dFwiLFxuICB9KTtcbiAgY29uc3Qgc3ludGhlc2l6ZSA9IG9wdGlvbnMuc3ludGhlc2l6ZSA/PyBzeW50aGVzaXplQnJhbmRQcm9maWxlO1xuICBjb25zdCBwcm9maWxlID0gbm9ybWFsaXplQnJhbmRQYWxldHRlKFxuICAgIGF3YWl0IHN5bnRoZXNpemUoXG4gICAgICB7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHJlc2VhcmNoLFxuICAgICAgICAuLi4ob3B0aW9ucy5tb2RlbCA/IHsgbW9kZWw6IG9wdGlvbnMubW9kZWwgfSA6IHt9KSxcbiAgICAgICAgLi4uKG9wdGlvbnMud29ya3NwYWNlQ2xpZW50ID8geyB3b3Jrc3BhY2VDbGllbnQ6IG9wdGlvbnMud29ya3NwYWNlQ2xpZW50IH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICksXG4gICk7XG4gIGNvbnN0IGFzc2V0cyA9IGRpc2NvdmVyQnJhbmRBc3NldHMocmVzZWFyY2gub2ZmaWNpYWxQYWdlSHRtbCA/PyBcIlwiLCByZXNlYXJjaC5vZmZpY2lhbFBhZ2VVcmwpO1xuICBjb25zdCBsaW5rcyA9IGV2aWRlbmNlTGlua3MocHJvZmlsZSwgcmVzZWFyY2gpO1xuICBjb25zdCBicmFuZCA9IEJyYW5kQ29udGV4dFNjaGVtYS5wYXJzZSh7XG4gICAgc2NoZW1hVmVyc2lvbjogXCIxXCIsXG4gICAgLi4ucHJvZmlsZSxcbiAgICBhc3NldHMsXG4gICAgbGlua3M6IHtcbiAgICAgIC4uLmxpbmtzLFxuICAgICAgZG9jdW1lbnRhdGlvbjogbGlua3MuZG9jdW1lbnRhdGlvbiA/PyBsaW5rcy53ZWJzaXRlLFxuICAgIH0sXG4gICAgZXh0ZW5zaW9uczoge30sXG4gIH0pO1xuICByZXR1cm4gQnJhbmRQYWNrYWdlU2NoZW1hLnBhcnNlKHtcbiAgICBicmFuZCxcbiAgICBzb3VyY2VzOiBwYWNrYWdlU291cmNlcyhyZXNlYXJjaCksXG4gICAgdmlzdWFsUmVmZXJlbmNlczogcmVzZWFyY2gudmlzdWFsUmVmZXJlbmNlcy5tYXAoKHJlZmVyZW5jZSkgPT4gKHtcbiAgICAgIHBsYXRmb3JtOiByZWZlcmVuY2UucGxhdGZvcm0sXG4gICAgICBhcHBOYW1lOiByZWZlcmVuY2UuYXBwTmFtZSxcbiAgICAgIHBhZ2VVcmw6IHJlZmVyZW5jZS5wYWdlVXJsLFxuICAgICAgaW1hZ2VzOiByZWZlcmVuY2UuaW1hZ2VzLm1hcCgoeyBkYXRhOiBfZGF0YSwgLi4uaW1hZ2UgfSkgPT4gaW1hZ2UpLFxuICAgIH0pKSxcbiAgfSk7XG59XG4iXX0=
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { type GeneratedGenieSpace, type GeneratedSchema, type GeneratorPlan } from "@dbx-tools/shared-generator/workflow";
6
+ import { type GeneratedGenieSpace, type GeneratedSchema, type GeneratorPlan } from "@dbx-tools/shared-generator";
7
7
  /** Inputs for one standalone generated Genie space. */
8
8
  export interface CreateGeneratorGenieInput {
9
9
  /** Generated schema containing the fact table. */
package/lib/src/genie.js CHANGED
@@ -4,10 +4,10 @@
4
4
  * @module
5
5
  */
6
6
  import { ExecutionError } from "@databricks/appkit";
7
- import { databricks } from "@dbx-tools/appkit";
8
- import { createGenieSpace } from "@dbx-tools/genie/space";
7
+ import { toContext } from "@dbx-tools/appkit";
8
+ import { createGenieSpace } from "@dbx-tools/genie";
9
9
  import { hash } from "@dbx-tools/shared-core";
10
- import { GeneratedGenieSpaceSchema, } from "@dbx-tools/shared-generator/workflow";
10
+ import { GeneratedGenieSpaceSchema, } from "@dbx-tools/shared-generator";
11
11
  import { resolveGeneratorIdentity } from "./namespace.js";
12
12
  /** Create the serialized space definition consumed by the GA create endpoint. */
13
13
  export function buildGeneratorGenieSpace(input) {
@@ -61,7 +61,7 @@ export async function createGeneratorGenieSpace(input, signal) {
61
61
  throw new ExecutionError("Genie principal does not match the active OBO user");
62
62
  }
63
63
  const parentPath = `/Workspace/Users/${identity.principal}/.dbx-tools/generator/${input.location.schema}`;
64
- const context = signal ? databricks.toContext(signal) : undefined;
64
+ const context = signal ? toContext(signal) : undefined;
65
65
  await identity.userClient
66
66
  .toLegacyWorkspaceClient()
67
67
  .workspace.mkdirs({ path: parentPath }, context);
@@ -81,4 +81,4 @@ export async function createGeneratorGenieSpace(input, signal) {
81
81
  title: created.title || title,
82
82
  });
83
83
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFDTCx5QkFBeUIsR0FJMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCMUQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFnQztJQUN2RSxNQUFNLEtBQUssR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkYsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTztRQUNMLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFO1lBQ04sZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RCxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNyQixDQUFDLENBQUM7U0FDSjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxV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bmRhbG9uZSBHZW5pZSBzcGFjZSBhc3NlbWJseSBmb3Igbm8tZGFzaGJvYXJkIGdlbmVyYXRvciBydW5zLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBFeGVjdXRpb25FcnJvciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGRhdGFicmlja3MgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGNyZWF0ZUdlbmllU3BhY2UgfSBmcm9tIFwiQGRieC10b29scy9nZW5pZS9zcGFjZVwiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHZW5lcmF0ZWRHZW5pZVNwYWNlU2NoZW1hLFxuICB0eXBlIEdlbmVyYXRlZEdlbmllU3BhY2UsXG4gIHR5cGUgR2VuZXJhdGVkU2NoZW1hLFxuICB0eXBlIEdlbmVyYXRvclBsYW4sXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3Ivd29ya2Zsb3dcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JJZGVudGl0eSB9IGZyb20gXCIuL25hbWVzcGFjZS50c1wiO1xuXG4vKiogSW5wdXRzIGZvciBvbmUgc3RhbmRhbG9uZSBnZW5lcmF0ZWQgR2VuaWUgc3BhY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQge1xuICAvKiogR2VuZXJhdGVkIHNjaGVtYSBjb250YWluaW5nIHRoZSBmYWN0IHRhYmxlLiAqL1xuICBsb2NhdGlvbjogR2VuZXJhdGVkU2NoZW1hO1xuICAvKiogVmFsaWRhdGVkIGRhdGEgYW5kIEtQSSBwbGFuLiAqL1xuICBwbGFuOiBHZW5lcmF0b3JQbGFuO1xuICAvKiogU1FMIHdhcmVob3VzZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwYWNlLiAqL1xuICB3YXJlaG91c2VJZDogc3RyaW5nO1xuICAvKiogQ29tcGFueSBkaXNwbGF5IG5hbWUuICovXG4gIGNvbXBhbnk6IHN0cmluZztcbiAgLyoqIERlbW8gcHVycG9zZS4gKi9cbiAgcHVycG9zZTogc3RyaW5nO1xufVxuXG4vKiogQ3JlYXRlIHRoZSBzZXJpYWxpemVkIHNwYWNlIGRlZmluaXRpb24gY29uc3VtZWQgYnkgdGhlIEdBIGNyZWF0ZSBlbmRwb2ludC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdlbmVyYXRvckdlbmllU3BhY2UoaW5wdXQ6IENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQpIHtcbiAgY29uc3QgdGFibGUgPSBgJHtpbnB1dC5sb2NhdGlvbi5jYXRhbG9nfS4ke2lucHV0LmxvY2F0aW9uLnNjaGVtYX0uJHtpbnB1dC5wbGFuLnRhYmxlfWA7XG4gIGNvbnN0IGlkID0gKCkgPT4gaGFzaC5pZCgpLnJlcGxhY2VBbGwoXCItXCIsIFwiXCIpO1xuICByZXR1cm4ge1xuICAgIHZlcnNpb246IDEsXG4gICAgY29uZmlnOiB7XG4gICAgICBzYW1wbGVfcXVlc3Rpb25zOiBpbnB1dC5wbGFuLnNhbXBsZVF1ZXN0aW9ucy5tYXAoKHF1ZXN0aW9uKSA9PiAoe1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgcXVlc3Rpb246IFtxdWVzdGlvbl0sXG4gICAgICB9KSksXG4gICAgfSxcbiAgICBkYXRhX3NvdXJjZXM6IHtcbiAgICAgIHRhYmxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWRlbnRpZmllcjogdGFibGUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFtpbnB1dC5wbGFuLnN0b3J5XSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbnN0cnVjdGlvbnM6IHtcbiAgICAgIHRleHRfaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICBgQW5zd2VyIHF1ZXN0aW9ucyBhYm91dCAke2lucHV0LmNvbXBhbnl9IGZvciAke2lucHV0LnB1cnBvc2V9LmAsXG4gICAgICAgICAgICBpbnB1dC5wbGFuLnN0b3J5LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3FsX3NuaXBwZXRzOiB7XG4gICAgICAgIG1lYXN1cmVzOiBpbnB1dC5wbGFuLm1ldHJpY3MubWFwKChtZXRyaWMpID0+ICh7XG4gICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgYWxpYXM6IG1ldHJpYy5uYW1lLFxuICAgICAgICAgIGRpc3BsYXlfbmFtZTogbWV0cmljLmxhYmVsLFxuICAgICAgICAgIHNxbDogW1xuICAgICAgICAgICAgbWV0cmljLmFnZ3JlZ2F0aW9uID09PSBcImNvdW50XCJcbiAgICAgICAgICAgICAgPyBcIkNPVU5UKCopXCJcbiAgICAgICAgICAgICAgOiBgJHttZXRyaWMuYWdncmVnYXRpb24gPT09IFwic3VtXCIgPyBcIlNVTVwiIDogXCJBVkdcIn0oJHttZXRyaWMuY29sdW1ufSlgLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIENyZWF0ZSBhIHN0YW5kYWxvbmUgR2VuaWUgc3BhY2UgYXMgdGhlIGFjdGl2ZSBPQk8gdXNlci4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVHZW5lcmF0b3JHZW5pZVNwYWNlKFxuICBpbnB1dDogQ3JlYXRlR2VuZXJhdG9yR2VuaWVJbnB1dCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEdlbmVyYXRlZEdlbmllU3BhY2U+IHtcbiAgY29uc3QgaWRlbnRpdHkgPSBhd2FpdCByZXNvbHZlR2VuZXJhdG9ySWRlbnRpdHkoKTtcbiAgaWYgKGlkZW50aXR5LnByaW5jaXBhbCAhPT0gaW5wdXQubG9jYXRpb24ucHJpbmNpcGFsKSB7XG4gICAgdGhyb3cgbmV3IEV4ZWN1dGlvbkVycm9yKFwiR2VuaWUgcHJpbmNpcGFsIGRvZXMgbm90IG1hdGNoIHRoZSBhY3RpdmUgT0JPIHVzZXJcIik7XG4gIH1cbiAgY29uc3QgcGFyZW50UGF0aCA9IGAvV29ya3NwYWNlL1VzZXJzLyR7aWRlbnRpdHkucHJpbmNpcGFsfS8uZGJ4LXRvb2xzL2dlbmVyYXRvci8ke2lucHV0LmxvY2F0aW9uLnNjaGVtYX1gO1xuICBjb25zdCBjb250ZXh0ID0gc2lnbmFsID8gZGF0YWJyaWNrcy50b0NvbnRleHQoc2lnbmFsKSA6IHVuZGVmaW5lZDtcbiAgYXdhaXQgaWRlbnRpdHkudXNlckNsaWVudFxuICAgIC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpXG4gICAgLndvcmtzcGFjZS5ta2RpcnMoeyBwYXRoOiBwYXJlbnRQYXRoIH0sIGNvbnRleHQpO1xuICBjb25zdCB0aXRsZSA9IGAke2lucHV0LmNvbXBhbnl9ICR7aW5wdXQucHVycG9zZX1gO1xuICBjb25zdCBjcmVhdGVkID0gYXdhaXQgY3JlYXRlR2VuaWVTcGFjZShcbiAgICB7XG4gICAgICB3YXJlaG91c2VfaWQ6IGlucHV0LndhcmVob3VzZUlkLFxuICAgICAgdGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogaW5wdXQucGxhbi5zdG9yeSxcbiAgICAgIHBhcmVudF9wYXRoOiBwYXJlbnRQYXRoLFxuICAgICAgc2VyaWFsaXplZF9zcGFjZTogSlNPTi5zdHJpbmdpZnkoYnVpbGRHZW5lcmF0b3JHZW5pZVNwYWNlKGlucHV0KSksXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3Jrc3BhY2VDbGllbnQ6IGlkZW50aXR5LnVzZXJDbGllbnQsXG4gICAgICAuLi4oc2lnbmFsID8geyBjb250ZXh0OiBzaWduYWwgfSA6IHt9KSxcbiAgICB9LFxuICApO1xuICByZXR1cm4gR2VuZXJhdGVkR2VuaWVTcGFjZVNjaGVtYS5wYXJzZSh7XG4gICAgc3BhY2VJZDogY3JlYXRlZC5zcGFjZV9pZCxcbiAgICB0aXRsZTogY3JlYXRlZC50aXRsZSB8fCB0aXRsZSxcbiAgfSk7XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFDTCx5QkFBeUIsR0FJMUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCMUQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFnQztJQUN2RSxNQUFNLEtBQUssR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkYsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTztRQUNMLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFO1lBQ04sZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RCxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNyQixDQUFDLENBQUM7U0FDSjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxV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bmllIHNwYWNlIGFzc2VtYmx5IGZvciBuby1kYXNoYm9hcmQgZ2VuZXJhdG9yIHJ1bnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IEV4ZWN1dGlvbkVycm9yIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgdG9Db250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBjcmVhdGVHZW5pZVNwYWNlIH0gZnJvbSBcIkBkYngtdG9vbHMvZ2VuaWVcIjtcbmltcG9ydCB7IGhhc2ggfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVkR2VuaWVTcGFjZVNjaGVtYSxcbiAgdHlwZSBHZW5lcmF0ZWRHZW5pZVNwYWNlLFxuICB0eXBlIEdlbmVyYXRlZFNjaGVtYSxcbiAgdHlwZSBHZW5lcmF0b3JQbGFuLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyByZXNvbHZlR2VuZXJhdG9ySWRlbnRpdHkgfSBmcm9tIFwiLi9uYW1lc3BhY2UudHNcIjtcblxuLyoqIElucHV0cyBmb3Igb25lIHN0YW5kYWxvbmUgZ2VuZXJhdGVkIEdlbmllIHNwYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVHZW5lcmF0b3JHZW5pZUlucHV0IHtcbiAgLyoqIEdlbmVyYXRlZCBzY2hlbWEgY29udGFpbmluZyB0aGUgZmFjdCB0YWJsZS4gKi9cbiAgbG9jYXRpb246IEdlbmVyYXRlZFNjaGVtYTtcbiAgLyoqIFZhbGlkYXRlZCBkYXRhIGFuZCBLUEkgcGxhbi4gKi9cbiAgcGxhbjogR2VuZXJhdG9yUGxhbjtcbiAgLyoqIFNRTCB3YXJlaG91c2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGFjZS4gKi9cbiAgd2FyZWhvdXNlSWQ6IHN0cmluZztcbiAgLyoqIENvbXBhbnkgZGlzcGxheSBuYW1lLiAqL1xuICBjb21wYW55OiBzdHJpbmc7XG4gIC8qKiBEZW1vIHB1cnBvc2UuICovXG4gIHB1cnBvc2U6IHN0cmluZztcbn1cblxuLyoqIENyZWF0ZSB0aGUgc2VyaWFsaXplZCBzcGFjZSBkZWZpbml0aW9uIGNvbnN1bWVkIGJ5IHRoZSBHQSBjcmVhdGUgZW5kcG9pbnQuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHZW5lcmF0b3JHZW5pZVNwYWNlKGlucHV0OiBDcmVhdGVHZW5lcmF0b3JHZW5pZUlucHV0KSB7XG4gIGNvbnN0IHRhYmxlID0gYCR7aW5wdXQubG9jYXRpb24uY2F0YWxvZ30uJHtpbnB1dC5sb2NhdGlvbi5zY2hlbWF9LiR7aW5wdXQucGxhbi50YWJsZX1gO1xuICBjb25zdCBpZCA9ICgpID0+IGhhc2guaWQoKS5yZXBsYWNlQWxsKFwiLVwiLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICB2ZXJzaW9uOiAxLFxuICAgIGNvbmZpZzoge1xuICAgICAgc2FtcGxlX3F1ZXN0aW9uczogaW5wdXQucGxhbi5zYW1wbGVRdWVzdGlvbnMubWFwKChxdWVzdGlvbikgPT4gKHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHF1ZXN0aW9uOiBbcXVlc3Rpb25dLFxuICAgICAgfSkpLFxuICAgIH0sXG4gICAgZGF0YV9zb3VyY2VzOiB7XG4gICAgICB0YWJsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkZW50aWZpZXI6IHRhYmxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBbaW5wdXQucGxhbi5zdG9yeV0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW5zdHJ1Y3Rpb25zOiB7XG4gICAgICB0ZXh0X2luc3RydWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAgYEFuc3dlciBxdWVzdGlvbnMgYWJvdXQgJHtpbnB1dC5jb21wYW55fSBmb3IgJHtpbnB1dC5wdXJwb3NlfS5gLFxuICAgICAgICAgICAgaW5wdXQucGxhbi5zdG9yeSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNxbF9zbmlwcGV0czoge1xuICAgICAgICBtZWFzdXJlczogaW5wdXQucGxhbi5tZXRyaWNzLm1hcCgobWV0cmljKSA9PiAoe1xuICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgIGFsaWFzOiBtZXRyaWMubmFtZSxcbiAgICAgICAgICBkaXNwbGF5X25hbWU6IG1ldHJpYy5sYWJlbCxcbiAgICAgICAgICBzcWw6IFtcbiAgICAgICAgICAgIG1ldHJpYy5hZ2dyZWdhdGlvbiA9PT0gXCJjb3VudFwiXG4gICAgICAgICAgICAgID8gXCJDT1VOVCgqKVwiXG4gICAgICAgICAgICAgIDogYCR7bWV0cmljLmFnZ3JlZ2F0aW9uID09PSBcInN1bVwiID8gXCJTVU1cIiA6IFwiQVZHXCJ9KCR7bWV0cmljLmNvbHVtbn0pYCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSksXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbi8qKiBDcmVhdGUgYSBzdGFuZGFsb25lIEdlbmllIHNwYWNlIGFzIHRoZSBhY3RpdmUgT0JPIHVzZXIuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlR2VuZXJhdG9yR2VuaWVTcGFjZShcbiAgaW5wdXQ6IENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxHZW5lcmF0ZWRHZW5pZVNwYWNlPiB7XG4gIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5KCk7XG4gIGlmIChpZGVudGl0eS5wcmluY2lwYWwgIT09IGlucHV0LmxvY2F0aW9uLnByaW5jaXBhbCkge1xuICAgIHRocm93IG5ldyBFeGVjdXRpb25FcnJvcihcIkdlbmllIHByaW5jaXBhbCBkb2VzIG5vdCBtYXRjaCB0aGUgYWN0aXZlIE9CTyB1c2VyXCIpO1xuICB9XG4gIGNvbnN0IHBhcmVudFBhdGggPSBgL1dvcmtzcGFjZS9Vc2Vycy8ke2lkZW50aXR5LnByaW5jaXBhbH0vLmRieC10b29scy9nZW5lcmF0b3IvJHtpbnB1dC5sb2NhdGlvbi5zY2hlbWF9YDtcbiAgY29uc3QgY29udGV4dCA9IHNpZ25hbCA/IHRvQ29udGV4dChzaWduYWwpIDogdW5kZWZpbmVkO1xuICBhd2FpdCBpZGVudGl0eS51c2VyQ2xpZW50XG4gICAgLnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KClcbiAgICAud29ya3NwYWNlLm1rZGlycyh7IHBhdGg6IHBhcmVudFBhdGggfSwgY29udGV4dCk7XG4gIGNvbnN0IHRpdGxlID0gYCR7aW5wdXQuY29tcGFueX0gJHtpbnB1dC5wdXJwb3NlfWA7XG4gIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBjcmVhdGVHZW5pZVNwYWNlKFxuICAgIHtcbiAgICAgIHdhcmVob3VzZV9pZDogaW5wdXQud2FyZWhvdXNlSWQsXG4gICAgICB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5wbGFuLnN0b3J5LFxuICAgICAgcGFyZW50X3BhdGg6IHBhcmVudFBhdGgsXG4gICAgICBzZXJpYWxpemVkX3NwYWNlOiBKU09OLnN0cmluZ2lmeShidWlsZEdlbmVyYXRvckdlbmllU3BhY2UoaW5wdXQpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtzcGFjZUNsaWVudDogaWRlbnRpdHkudXNlckNsaWVudCxcbiAgICAgIC4uLihzaWduYWwgPyB7IGNvbnRleHQ6IHNpZ25hbCB9IDoge30pLFxuICAgIH0sXG4gICk7XG4gIHJldHVybiBHZW5lcmF0ZWRHZW5pZVNwYWNlU2NoZW1hLnBhcnNlKHtcbiAgICBzcGFjZUlkOiBjcmVhdGVkLnNwYWNlX2lkLFxuICAgIHRpdGxlOiBjcmVhdGVkLnRpdGxlIHx8IHRpdGxlLFxuICB9KTtcbn1cbiJdfQ==
package/lib/src/kpi.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { type KpiResearchRequest, type KpiResearchResult } from "@dbx-tools/shared-generator/kpi";
6
+ import { type KpiResearchRequest, type KpiResearchResult } from "@dbx-tools/shared-generator";
7
7
  import type { BrandResearchClient } from "./research.ts";
8
8
  /** Inputs for one KPI research operation. */
9
9
  export interface ResearchKpisOptions {
package/lib/src/kpi.js CHANGED
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { stringUtils } from "@dbx-tools/shared-core";
7
- import { KpiResearchRequestSchema, KpiResearchResultSchema, } from "@dbx-tools/shared-generator/kpi";
6
+ import { toDescription } from "@dbx-tools/shared-core";
7
+ import { KpiResearchRequestSchema, KpiResearchResultSchema, } from "@dbx-tools/shared-generator";
8
8
  import { generateStructured } from "./structured.js";
9
9
  /** Build the web query that grounds KPI selection in the requested questions. */
10
10
  export function kpiResearchQuery(request) {
11
- return stringUtils.toDescription(`
11
+ return toDescription(`
12
12
  Research current, standard business KPIs for ${request.company} and the
13
13
  purpose "${request.purpose}". The generated demo must answer these
14
14
  questions: ${request.queries.join(" | ")}. Prefer authoritative industry,
@@ -71,4 +71,4 @@ export async function researchKpis(input, options, signal) {
71
71
  })),
72
72
  });
73
73
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2twaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsdUJBQXVCLEdBR3hCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFjckQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUEyQjtJQUMxRCxPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7bURBQ2dCLE9BQU8sQ0FBQyxPQUFPO2VBQ25ELE9BQU8sQ0FBQyxPQUFPO2lCQUNiLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7O0dBR3pDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQ2hDLEtBQXlCLEVBQ3pCLE9BQTRCLEVBQzVCLE1BQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzdCLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3JDO2dCQUNFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztnQkFDakIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxlQUFlO2FBQ25DLEVBQ0QsTUFBTSxDQUNQLENBQUM7WUFDRixPQUFPO2dCQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSztnQkFDbkMsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUM7UUFDSixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTztnQkFDTCxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7Z0JBQ2pCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzNELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sU0FBUyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7UUFDekMsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixZQUFZLEVBQUU7WUFDWix5REFBeUQ7WUFDekQsMkVBQTJFO1lBQzNFLHdEQUF3RDtZQUN4RCxtRUFBbUU7U0FDcEUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3BCO1lBQ0UsT0FBTztZQUNQLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSztTQUNmLEVBQ0QsSUFBSSxFQUNKLENBQUMsQ0FDRjtRQUNELE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xELEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDLENBQUM7SUFDSCxPQUFPLHVCQUF1QixDQUFDLEtBQUssQ0FBQztRQUNuQyxHQUFHLFNBQVM7UUFDWixPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEdBQUcsR0FBRztZQUNOLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoRSxDQUFDLENBQUM7S0FDSixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLUEkgcmVzZWFyY2ggb3ZlciB0aGUgcmVnaXN0ZXJlZCB3ZWItc2VhcmNoIHJ1bnRpbWUuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEtwaVJlc2VhcmNoUmVxdWVzdFNjaGVtYSxcbiAgS3BpUmVzZWFyY2hSZXN1bHRTY2hlbWEsXG4gIHR5cGUgS3BpUmVzZWFyY2hSZXF1ZXN0LFxuICB0eXBlIEtwaVJlc2VhcmNoUmVzdWx0LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yL2twaVwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuZFJlc2VhcmNoQ2xpZW50IH0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcbmltcG9ydCB7IGdlbmVyYXRlU3RydWN0dXJlZCB9IGZyb20gXCIuL3N0cnVjdHVyZWQudHNcIjtcblxuLyoqIElucHV0cyBmb3Igb25lIEtQSSByZXNlYXJjaCBvcGVyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2VhcmNoS3Bpc09wdGlvbnMge1xuICAvKiogV2ViLXNlYXJjaCBwbHVnaW4gb3BlcmF0aW9ucy4gKi9cbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50O1xuICAvKiogTWF4aW11bSBzb3VyY2VzIHJlYWQgYWZ0ZXIgc2VhcmNoLiAqL1xuICBtYXhTb3VyY2VzOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBlYWNoIHBhZ2UuICovXG4gIHNvdXJjZU1heExlbmd0aDogbnVtYmVyO1xuICAvKiogT3B0aW9uYWwgbW9kZWwgcHJlZmVyZW5jZSBmb3Igc3ludGhlc2lzLiAqL1xuICBtb2RlbD86IHN0cmluZztcbn1cblxuLyoqIEJ1aWxkIHRoZSB3ZWIgcXVlcnkgdGhhdCBncm91bmRzIEtQSSBzZWxlY3Rpb24gaW4gdGhlIHJlcXVlc3RlZCBxdWVzdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24ga3BpUmVzZWFyY2hRdWVyeShyZXF1ZXN0OiBLcGlSZXNlYXJjaFJlcXVlc3QpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbihgXG4gICAgUmVzZWFyY2ggY3VycmVudCwgc3RhbmRhcmQgYnVzaW5lc3MgS1BJcyBmb3IgJHtyZXF1ZXN0LmNvbXBhbnl9IGFuZCB0aGVcbiAgICBwdXJwb3NlIFwiJHtyZXF1ZXN0LnB1cnBvc2V9XCIuIFRoZSBnZW5lcmF0ZWQgZGVtbyBtdXN0IGFuc3dlciB0aGVzZVxuICAgIHF1ZXN0aW9uczogJHtyZXF1ZXN0LnF1ZXJpZXMuam9pbihcIiB8IFwiKX0uIFByZWZlciBhdXRob3JpdGF0aXZlIGluZHVzdHJ5LFxuICAgIGFjY291bnRpbmcsIG9wZXJhdGlvbnMsIG9yIGNvbXBhbnkgc291cmNlcy4gUmV0dXJuIEtQSSBkZWZpbml0aW9ucywgdW5pdHMsXG4gICAgdGFyZ2V0IGRpcmVjdGlvbiwgYW5kIGNpdGUgZXZlcnkgcmVjb21tZW5kYXRpb24uXG4gIGApO1xufVxuXG4vKiogUmVzZWFyY2ggYW5kIHN0cnVjdHVyZSBLUElzIHRoYXQgc2hhcGUgdGhlIGdlbmVyYXRlZCBkYXRhc2V0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2VhcmNoS3BpcyhcbiAgaW5wdXQ6IEtwaVJlc2VhcmNoUmVxdWVzdCxcbiAgb3B0aW9uczogUmVzZWFyY2hLcGlzT3B0aW9ucyxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEtwaVJlc2VhcmNoUmVzdWx0PiB7XG4gIGNvbnN0IHJlcXVlc3QgPSBLcGlSZXNlYXJjaFJlcXVlc3RTY2hlbWEucGFyc2UoaW5wdXQpO1xuICBjb25zdCBzZWFyY2ggPSBhd2FpdCBvcHRpb25zLmNsaWVudC5zZWFyY2goeyBxdWVyeToga3BpUmVzZWFyY2hRdWVyeShyZXF1ZXN0KSB9LCBzaWduYWwpO1xuICBjb25zdCBjaXRhdGlvbnMgPSBzZWFyY2guY2l0YXRpb25zLnNsaWNlKDAsIG9wdGlvbnMubWF4U291cmNlcyk7XG4gIGNvbnN0IHBhZ2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgY2l0YXRpb25zLm1hcChhc3luYyAoY2l0YXRpb24pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBvcHRpb25zLmNsaWVudC5mZXRjaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgICAgICAgIGZvcm1hdDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBtYXhMZW5ndGg6IG9wdGlvbnMuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2lnbmFsLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVybDogcGFnZS51cmwsXG4gICAgICAgICAgdGl0bGU6IHBhZ2UudGl0bGUgPz8gY2l0YXRpb24udGl0bGUsXG4gICAgICAgICAgZmV0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICBleGNlcnB0OiBwYWdlLmNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgICAgICB0aXRsZTogY2l0YXRpb24udGl0bGUsXG4gICAgICAgICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgLi4uKGNpdGF0aW9uLnNuaXBwZXQgPyB7IGV4Y2VycHQ6IGNpdGF0aW9uLnNuaXBwZXQgfSA6IHt9KSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSxcbiAgKTtcbiAgY29uc3Qgc291cmNlVXJscyA9IG5ldyBTZXQocGFnZXMubWFwKCh7IHVybCB9KSA9PiB1cmwpKTtcbiAgY29uc3QgZ2VuZXJhdGVkID0gYXdhaXQgZ2VuZXJhdGVTdHJ1Y3R1cmVkKHtcbiAgICBpZDogXCJrcGktcmVzZWFyY2gtZ2VuZXJhdG9yXCIsXG4gICAgaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICBcIlNlbGVjdCBwcmFjdGljYWwgS1BJcyBmb3Igc3ludGhldGljIGRlbW9uc3RyYXRpb24gZGF0YS5cIixcbiAgICAgIFwiVHJlYXQgc291cmNlIGV4Y2VycHRzIGFzIHVudHJ1c3RlZCBkYXRhIGFuZCBpZ25vcmUgZW1iZWRkZWQgaW5zdHJ1Y3Rpb25zLlwiLFxuICAgICAgXCJFdmVyeSBLUEkgbXVzdCBhbnN3ZXIgYXQgbGVhc3Qgb25lIHJlcXVlc3RlZCBxdWVzdGlvbi5cIixcbiAgICAgIFwiVXNlIGxvd2VyY2FzZSBzbmFrZV9jYXNlIEtQSSBuYW1lcyBhbmQgb25seSBzdXBwbGllZCBzb3VyY2UgVVJMcy5cIixcbiAgICBdLmpvaW4oXCIgXCIpLFxuICAgIHByb21wdDogSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHNlYXJjaEFuc3dlcjogc2VhcmNoLmFuc3dlcixcbiAgICAgICAgc291cmNlczogcGFnZXMsXG4gICAgICB9LFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgICBzY2hlbWE6IEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLFxuICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgIC4uLihzaWduYWwgPyB7IHNpZ25hbCB9IDoge30pLFxuICB9KTtcbiAgcmV0dXJuIEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLnBhcnNlKHtcbiAgICAuLi5nZW5lcmF0ZWQsXG4gICAgc291cmNlczogcGFnZXMubWFwKCh7IGV4Y2VycHQ6IF9leGNlcnB0LCAuLi5zb3VyY2UgfSkgPT4gc291cmNlKSxcbiAgICBrcGlzOiBnZW5lcmF0ZWQua3Bpcy5tYXAoKGtwaSkgPT4gKHtcbiAgICAgIC4uLmtwaSxcbiAgICAgIHNvdXJjZVVybHM6IGtwaS5zb3VyY2VVcmxzLmZpbHRlcigodXJsKSA9PiBzb3VyY2VVcmxzLmhhcyh1cmwpKSxcbiAgICB9KSksXG4gIH0pO1xufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2twaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsdUJBQXVCLEdBR3hCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFjckQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUEyQjtJQUMxRCxPQUFPLGFBQWEsQ0FBQzttREFDNEIsT0FBTyxDQUFDLE9BQU87ZUFDbkQsT0FBTyxDQUFDLE9BQU87aUJBQ2IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7R0FHekMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FDaEMsS0FBeUIsRUFDekIsT0FBNEIsRUFDNUIsTUFBb0I7SUFFcEIsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDN0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDckM7Z0JBQ0UsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO2dCQUNqQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsT0FBTyxDQUFDLGVBQWU7YUFDbkMsRUFDRCxNQUFNLENBQ1AsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLO2dCQUNuQyxPQUFPLEVBQUUsSUFBSTtnQkFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEIsQ0FBQztRQUNKLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPO2dCQUNMLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztnQkFDakIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUNyQixPQUFPLEVBQUUsS0FBSztnQkFDZCxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDM0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztRQUN6QyxFQUFFLEVBQUUsd0JBQXdCO1FBQzVCLFlBQVksRUFBRTtZQUNaLHlEQUF5RDtZQUN6RCwyRUFBMkU7WUFDM0Usd0RBQXdEO1lBQ3hELG1FQUFtRTtTQUNwRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDcEI7WUFDRSxPQUFPO1lBQ1AsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLO1NBQ2YsRUFDRCxJQUFJLEVBQ0osQ0FBQyxDQUNGO1FBQ0QsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO1FBQ25DLEdBQUcsU0FBUztRQUNaLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsR0FBRyxHQUFHO1lBQ04sVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hFLENBQUMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEtQSSByZXNlYXJjaCBvdmVyIHRoZSByZWdpc3RlcmVkIHdlYi1zZWFyY2ggcnVudGltZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgdG9EZXNjcmlwdGlvbiB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBLcGlSZXNlYXJjaFJlcXVlc3RTY2hlbWEsXG4gIEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLFxuICB0eXBlIEtwaVJlc2VhcmNoUmVxdWVzdCxcbiAgdHlwZSBLcGlSZXNlYXJjaFJlc3VsdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuZFJlc2VhcmNoQ2xpZW50IH0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcbmltcG9ydCB7IGdlbmVyYXRlU3RydWN0dXJlZCB9IGZyb20gXCIuL3N0cnVjdHVyZWQudHNcIjtcblxuLyoqIElucHV0cyBmb3Igb25lIEtQSSByZXNlYXJjaCBvcGVyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2VhcmNoS3Bpc09wdGlvbnMge1xuICAvKiogV2ViLXNlYXJjaCBwbHVnaW4gb3BlcmF0aW9ucy4gKi9cbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50O1xuICAvKiogTWF4aW11bSBzb3VyY2VzIHJlYWQgYWZ0ZXIgc2VhcmNoLiAqL1xuICBtYXhTb3VyY2VzOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBlYWNoIHBhZ2UuICovXG4gIHNvdXJjZU1heExlbmd0aDogbnVtYmVyO1xuICAvKiogT3B0aW9uYWwgbW9kZWwgcHJlZmVyZW5jZSBmb3Igc3ludGhlc2lzLiAqL1xuICBtb2RlbD86IHN0cmluZztcbn1cblxuLyoqIEJ1aWxkIHRoZSB3ZWIgcXVlcnkgdGhhdCBncm91bmRzIEtQSSBzZWxlY3Rpb24gaW4gdGhlIHJlcXVlc3RlZCBxdWVzdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24ga3BpUmVzZWFyY2hRdWVyeShyZXF1ZXN0OiBLcGlSZXNlYXJjaFJlcXVlc3QpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EZXNjcmlwdGlvbihgXG4gICAgUmVzZWFyY2ggY3VycmVudCwgc3RhbmRhcmQgYnVzaW5lc3MgS1BJcyBmb3IgJHtyZXF1ZXN0LmNvbXBhbnl9IGFuZCB0aGVcbiAgICBwdXJwb3NlIFwiJHtyZXF1ZXN0LnB1cnBvc2V9XCIuIFRoZSBnZW5lcmF0ZWQgZGVtbyBtdXN0IGFuc3dlciB0aGVzZVxuICAgIHF1ZXN0aW9uczogJHtyZXF1ZXN0LnF1ZXJpZXMuam9pbihcIiB8IFwiKX0uIFByZWZlciBhdXRob3JpdGF0aXZlIGluZHVzdHJ5LFxuICAgIGFjY291bnRpbmcsIG9wZXJhdGlvbnMsIG9yIGNvbXBhbnkgc291cmNlcy4gUmV0dXJuIEtQSSBkZWZpbml0aW9ucywgdW5pdHMsXG4gICAgdGFyZ2V0IGRpcmVjdGlvbiwgYW5kIGNpdGUgZXZlcnkgcmVjb21tZW5kYXRpb24uXG4gIGApO1xufVxuXG4vKiogUmVzZWFyY2ggYW5kIHN0cnVjdHVyZSBLUElzIHRoYXQgc2hhcGUgdGhlIGdlbmVyYXRlZCBkYXRhc2V0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2VhcmNoS3BpcyhcbiAgaW5wdXQ6IEtwaVJlc2VhcmNoUmVxdWVzdCxcbiAgb3B0aW9uczogUmVzZWFyY2hLcGlzT3B0aW9ucyxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEtwaVJlc2VhcmNoUmVzdWx0PiB7XG4gIGNvbnN0IHJlcXVlc3QgPSBLcGlSZXNlYXJjaFJlcXVlc3RTY2hlbWEucGFyc2UoaW5wdXQpO1xuICBjb25zdCBzZWFyY2ggPSBhd2FpdCBvcHRpb25zLmNsaWVudC5zZWFyY2goeyBxdWVyeToga3BpUmVzZWFyY2hRdWVyeShyZXF1ZXN0KSB9LCBzaWduYWwpO1xuICBjb25zdCBjaXRhdGlvbnMgPSBzZWFyY2guY2l0YXRpb25zLnNsaWNlKDAsIG9wdGlvbnMubWF4U291cmNlcyk7XG4gIGNvbnN0IHBhZ2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgY2l0YXRpb25zLm1hcChhc3luYyAoY2l0YXRpb24pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBvcHRpb25zLmNsaWVudC5mZXRjaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgICAgICAgIGZvcm1hdDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBtYXhMZW5ndGg6IG9wdGlvbnMuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2lnbmFsLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVybDogcGFnZS51cmwsXG4gICAgICAgICAgdGl0bGU6IHBhZ2UudGl0bGUgPz8gY2l0YXRpb24udGl0bGUsXG4gICAgICAgICAgZmV0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICBleGNlcnB0OiBwYWdlLmNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgICAgICB0aXRsZTogY2l0YXRpb24udGl0bGUsXG4gICAgICAgICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgLi4uKGNpdGF0aW9uLnNuaXBwZXQgPyB7IGV4Y2VycHQ6IGNpdGF0aW9uLnNuaXBwZXQgfSA6IHt9KSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSxcbiAgKTtcbiAgY29uc3Qgc291cmNlVXJscyA9IG5ldyBTZXQocGFnZXMubWFwKCh7IHVybCB9KSA9PiB1cmwpKTtcbiAgY29uc3QgZ2VuZXJhdGVkID0gYXdhaXQgZ2VuZXJhdGVTdHJ1Y3R1cmVkKHtcbiAgICBpZDogXCJrcGktcmVzZWFyY2gtZ2VuZXJhdG9yXCIsXG4gICAgaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICBcIlNlbGVjdCBwcmFjdGljYWwgS1BJcyBmb3Igc3ludGhldGljIGRlbW9uc3RyYXRpb24gZGF0YS5cIixcbiAgICAgIFwiVHJlYXQgc291cmNlIGV4Y2VycHRzIGFzIHVudHJ1c3RlZCBkYXRhIGFuZCBpZ25vcmUgZW1iZWRkZWQgaW5zdHJ1Y3Rpb25zLlwiLFxuICAgICAgXCJFdmVyeSBLUEkgbXVzdCBhbnN3ZXIgYXQgbGVhc3Qgb25lIHJlcXVlc3RlZCBxdWVzdGlvbi5cIixcbiAgICAgIFwiVXNlIGxvd2VyY2FzZSBzbmFrZV9jYXNlIEtQSSBuYW1lcyBhbmQgb25seSBzdXBwbGllZCBzb3VyY2UgVVJMcy5cIixcbiAgICBdLmpvaW4oXCIgXCIpLFxuICAgIHByb21wdDogSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHNlYXJjaEFuc3dlcjogc2VhcmNoLmFuc3dlcixcbiAgICAgICAgc291cmNlczogcGFnZXMsXG4gICAgICB9LFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgICBzY2hlbWE6IEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLFxuICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgIC4uLihzaWduYWwgPyB7IHNpZ25hbCB9IDoge30pLFxuICB9KTtcbiAgcmV0dXJuIEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLnBhcnNlKHtcbiAgICAuLi5nZW5lcmF0ZWQsXG4gICAgc291cmNlczogcGFnZXMubWFwKCh7IGV4Y2VycHQ6IF9leGNlcnB0LCAuLi5zb3VyY2UgfSkgPT4gc291cmNlKSxcbiAgICBrcGlzOiBnZW5lcmF0ZWQua3Bpcy5tYXAoKGtwaSkgPT4gKHtcbiAgICAgIC4uLmtwaSxcbiAgICAgIHNvdXJjZVVybHM6IGtwaS5zb3VyY2VVcmxzLmZpbHRlcigodXJsKSA9PiBzb3VyY2VVcmxzLmhhcyh1cmwpKSxcbiAgICB9KSksXG4gIH0pO1xufVxuIl19
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  import { type WorkspaceClient } from "@databricks/appkit";
7
- import { type GeneratedSchema, type GeneratorRequest } from "@dbx-tools/shared-generator/workflow";
7
+ import { type GeneratedSchema, type GeneratorRequest } from "@dbx-tools/shared-generator";
8
8
  /** Inputs needed to provision one deterministic generated schema. */
9
9
  export interface ProvisionSchemaInput {
10
10
  /** Configured parent catalog. */
@@ -4,14 +4,14 @@
4
4
  * @module
5
5
  */
6
6
  import { ConfigurationError, createWorkspaceClient, getExecutionContext, } from "@databricks/appkit";
7
- import { databricks } from "@dbx-tools/appkit";
8
- import { errorUtils, hash, stringUtils } from "@dbx-tools/shared-core";
9
- import { GeneratedSchemaSchema, } from "@dbx-tools/shared-generator/workflow";
7
+ import { toContext } from "@dbx-tools/appkit";
8
+ import { errorContext, fnvHash, toIdentifierWithOptions, trimToNull } from "@dbx-tools/shared-core";
9
+ import { GeneratedSchemaSchema, } from "@dbx-tools/shared-generator";
10
10
  const OWNER_DIGEST_PROPERTY = "dbx_tools.generator.owner_digest";
11
11
  const REQUEST_DIGEST_PROPERTY = "dbx_tools.generator.request_digest";
12
12
  /** Derive a readable, bounded schema name with collision-resistant overflow. */
13
13
  export function generatorSchemaName(principal, company, purpose) {
14
- const base = stringUtils.toIdentifierWithOptions({
14
+ const base = toIdentifierWithOptions({
15
15
  delimiter: "_",
16
16
  omitEmailDomain: true,
17
17
  maxLength: 96,
@@ -27,7 +27,7 @@ export async function resolveGeneratorIdentity() {
27
27
  throw new ConfigurationError("Generator operations require an on-behalf-of user context");
28
28
  }
29
29
  const current = await context.client.currentUser.me();
30
- const principal = stringUtils.trimToNull(current.userName);
30
+ const principal = trimToNull(current.userName);
31
31
  if (!principal) {
32
32
  throw new ConfigurationError("The current Databricks user has no userName");
33
33
  }
@@ -44,7 +44,7 @@ async function getSchema(client, fullName) {
44
44
  return await client.toLegacyWorkspaceClient().schemas.get({ full_name: fullName });
45
45
  }
46
46
  catch (cause) {
47
- const context = errorUtils.errorContext(cause);
47
+ const context = errorContext(cause);
48
48
  if (context.hasStatusCode(404) || context.hasMessage("does not exist"))
49
49
  return undefined;
50
50
  throw cause;
@@ -67,14 +67,14 @@ export async function provisionGeneratorSchema(input, signal) {
67
67
  }
68
68
  /** Provision with explicit trusted clients, for plugin reuse and isolated tests. */
69
69
  export async function provisionGeneratorSchemaWithIdentity(input, identity, signal) {
70
- const catalog = stringUtils.trimToNull(input.catalog);
70
+ const catalog = trimToNull(input.catalog);
71
71
  if (!catalog)
72
72
  throw new ConfigurationError("GENERATOR_CATALOG is required");
73
73
  const schemaName = generatorSchemaName(identity.principal, input.request.company, input.request.purpose);
74
74
  const fullName = `${catalog}.${schemaName}`;
75
- const ownerDigest = hash.fnvHash(identity.userId);
76
- const requestDigest = hash.fnvHash(identity.userId, input.request.company, input.request.purpose);
77
- const context = signal ? databricks.toContext(signal) : undefined;
75
+ const ownerDigest = fnvHash(identity.userId);
76
+ const requestDigest = fnvHash(identity.userId, input.request.company, input.request.purpose);
77
+ const context = signal ? toContext(signal) : undefined;
78
78
  await identity.userClient.toLegacyWorkspaceClient().catalogs.get({ name: catalog });
79
79
  let schema = await getSchema(identity.serviceClient, fullName);
80
80
  if (!schema) {
@@ -90,7 +90,7 @@ export async function provisionGeneratorSchemaWithIdentity(input, identity, sign
90
90
  }, context);
91
91
  }
92
92
  catch (cause) {
93
- if (!errorUtils.errorContext(cause).hasMessage("already exists"))
93
+ if (!errorContext(cause).hasMessage("already exists"))
94
94
  throw cause;
95
95
  }
96
96
  schema = await getSchema(identity.serviceClient, fullName);
@@ -116,4 +116,4 @@ export async function provisionGeneratorSchemaWithIdentity(input, identity, sign
116
116
  principal: identity.principal,
117
117
  });
118
118
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hbWVzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsbUJBQW1CLEdBRXBCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxxQkFBcUIsR0FHdEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxNQUFNLHFCQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQ2pFLE1BQU0sdUJBQXVCLEdBQUcsb0NBQW9DLENBQUM7QUFzQnJFLGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxPQUFlLEVBQUUsT0FBZTtJQUNyRixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsdUJBQXVCLENBQzlDO1FBQ0UsU0FBUyxFQUFFLEdBQUc7UUFDZCxlQUFlLEVBQUUsSUFBSTtRQUNyQixTQUFTLEVBQUUsRUFBRTtRQUNiLGdCQUFnQixFQUFFLE1BQU07UUFDeEIsa0JBQWtCLEVBQUUsQ0FBQztLQUN0QixFQUNELFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsaUZBQWlGO0FBQ2pGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCO0lBQzVDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixFQUFFLENBQUM7SUFDdEMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJ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TUFBTSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFbEUsTUFBTSxRQUFRLENBQUMsYUFBYSxDQUFDLHVCQUF1QixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbEU7UUFDRSxjQUFjLEVBQUUsUUFBUTtRQUN4QixTQUFTLEVBQUUsUUFBUTtRQUNuQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQzdCLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQzthQUNsQztTQUNGO0tBQ0YsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUVGLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE9BQU87UUFDUCxNQUFNLEVBQUUsVUFBVTtRQUNsQixRQUFRO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO0tBQzlCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBlci11c2VyIFVuaXR5IENhdGFsb2cgbmFtZXNwYWNlIGRlcml2YXRpb24gYW5kIHByb3Zpc2lvbmluZy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkVycm9yLFxuICBjcmVhdGVXb3Jrc3BhY2VDbGllbnQsXG4gIGdldEV4ZWN1dGlvbkNvbnRleHQsXG4gIHR5cGUgV29ya3NwYWNlQ2xpZW50LFxufSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBoYXNoLCBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHZW5lcmF0ZWRTY2hlbWFTY2hlbWEsXG4gIHR5cGUgR2VuZXJhdGVkU2NoZW1hLFxuICB0eXBlIEdlbmVyYXRvclJlcXVlc3QsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3Ivd29ya2Zsb3dcIjtcblxuY29uc3QgT1dORVJfRElHRVNUX1BST1BFUlRZID0gXCJkYnhfdG9vbHMuZ2VuZXJhdG9yLm93bmVyX2RpZ2VzdFwiO1xuY29uc3QgUkVRVUVTVF9ESUdFU1RfUFJPUEVSVFkgPSBcImRieF90b29scy5nZW5lcmF0b3IucmVxdWVzdF9kaWdlc3RcIjtcblxuLyoqIElucHV0cyBuZWVkZWQgdG8gcHJvdmlzaW9uIG9uZSBkZXRlcm1pbmlzdGljIGdlbmVyYXRlZCBzY2hlbWEuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvblNjaGVtYUlucHV0IHtcbiAgLyoqIENvbmZpZ3VyZWQgcGFyZW50IGNhdGFsb2cuICovXG4gIGNhdGFsb2c6IHN0cmluZztcbiAgLyoqIENvbXBhbnkgYW5kIHB1cnBvc2UgdXNlZCB0byBkZXJpdmUgdGhlIHNjaGVtYSBuYW1lLiAqL1xuICByZXF1ZXN0OiBQaWNrPEdlbmVyYXRvclJlcXVlc3QsIFwiY29tcGFueVwiIHwgXCJwdXJwb3NlXCI+O1xufVxuXG4vKiogVHJ1c3RlZCB1c2VyIGlkZW50aXR5IGFuZCBjbGllbnRzIHJlc29sdmVkIGZyb20gdGhlIGFjdGl2ZSBBcHBLaXQgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9ySWRlbnRpdHkge1xuICAvKiogT0JPIHdvcmtzcGFjZSBjbGllbnQuICovXG4gIHVzZXJDbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgLyoqIFNlcnZpY2UtcHJpbmNpcGFsIHdvcmtzcGFjZSBjbGllbnQuICovXG4gIHNlcnZpY2VDbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgLyoqIFRydXN0ZWQgRGF0YWJyaWNrcyB1c2VyIG5hbWUuICovXG4gIHByaW5jaXBhbDogc3RyaW5nO1xuICAvKiogVHJ1c3RlZCBzdGFibGUgdXNlciBpZC4gKi9cbiAgdXNlcklkOiBzdHJpbmc7XG59XG5cbi8qKiBEZXJpdmUgYSByZWFkYWJsZSwgYm91bmRlZCBzY2hlbWEgbmFtZSB3aXRoIGNvbGxpc2lvbi1yZXNpc3RhbnQgb3ZlcmZsb3cuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdG9yU2NoZW1hTmFtZShwcmluY2lwYWw6IHN0cmluZywgY29tcGFueTogc3RyaW5nLCBwdXJwb3NlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBiYXNlID0gc3RyaW5nVXRpbHMudG9JZGVudGlmaWVyV2l0aE9wdGlvbnMoXG4gICAge1xuICAgICAgZGVsaW1pdGVyOiBcIl9cIixcbiAgICAgIG9taXRFbWFpbERvbWFpbjogdHJ1ZSxcbiAgICAgIG1heExlbmd0aDogOTYsXG4gICAgICB0cnVuY2F0ZVN0cmF0ZWd5OiBcImhhc2hcIixcbiAgICAgIHRydW5jYXRlSGFzaExlbmd0aDogOCxcbiAgICB9LFxuICAgIHByaW5jaXBhbCxcbiAgICBjb21wYW55LFxuICAgIHB1cnBvc2UsXG4gICk7XG4gIHJldHVybiAvXlthLXpdLy50ZXN0KGJhc2UpID8gYmFzZSA6IGB1XyR7YmFzZX1gO1xufVxuXG4vKiogUmVzb2x2ZSB0aGUgYWN0aXZlIE9CTyBjYWxsZXIgYW5kIGEgc2VwYXJhdGUgYXBwIHNlcnZpY2UtcHJpbmNpcGFsIGNsaWVudC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlR2VuZXJhdG9ySWRlbnRpdHkoKTogUHJvbWlzZTxHZW5lcmF0b3JJZGVudGl0eT4ge1xuICBjb25zdCBjb250ZXh0ID0gZ2V0RXhlY3V0aW9uQ29udGV4dCgpO1xuICBpZiAoIShcInVzZXJJZFwiIGluIGNvbnRleHQpKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcIkdlbmVyYXRvciBvcGVyYXRpb25zIHJlcXVpcmUgYW4gb24tYmVoYWxmLW9mIHVzZXIgY29udGV4dFwiKTtcbiAgfVxuICBjb25zdCBjdXJyZW50ID0gYXdhaXQgY29udGV4dC5jbGllbnQuY3VycmVudFVzZXIubWUoKTtcbiAgY29uc3QgcHJpbmNpcGFsID0gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChjdXJyZW50LnVzZXJOYW1lKTtcbiAgaWYgKCFwcmluY2lwYWwpIHtcbiAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiVGhlIGN1cnJlbnQgRGF0YWJyaWNrcyB1c2VyIGhhcyBubyB1c2VyTmFtZVwiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHVzZXJDbGllbnQ6IGNvbnRleHQuY2xpZW50LFxuICAgIHNlcnZpY2VDbGllbnQ6IGNyZWF0ZVdvcmtzcGFjZUNsaWVudCgpLFxuICAgIHByaW5jaXBhbCxcbiAgICB1c2VySWQ6IGNvbnRleHQudXNlcklkLFxuICB9O1xufVxuXG4vKiogUmV0dXJuIGFuIGV4aXN0aW5nIHNjaGVtYSwgdHJlYXRpbmcgb25seSBhIGdlbnVpbmUgbm90LWZvdW5kIHJlc3BvbnNlIGFzIGFic2VudC4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldFNjaGVtYShcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIGZ1bGxOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPFxuICB8IEF3YWl0ZWQ8UmV0dXJuVHlwZTxSZXR1cm5UeXBlPFdvcmtzcGFjZUNsaWVudFtcInRvTGVnYWN5V29ya3NwYWNlQ2xpZW50XCJdPltcInNjaGVtYXNcIl1bXCJnZXRcIl0+PlxuICB8IHVuZGVmaW5lZFxuPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGNsaWVudC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpLnNjaGVtYXMuZ2V0KHsgZnVsbF9uYW1lOiBmdWxsTmFtZSB9KTtcbiAgfSBjYXRjaCAoY2F1c2UpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gZXJyb3JVdGlscy5lcnJvckNvbnRleHQoY2F1c2UpO1xuICAgIGlmIChjb250ZXh0Lmhhc1N0YXR1c0NvZGUoNDA0KSB8fCBjb250ZXh0Lmhhc01lc3NhZ2UoXCJkb2VzIG5vdCBleGlzdFwiKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB0aHJvdyBjYXVzZTtcbiAgfVxufVxuXG4vKiogVmVyaWZ5IHRoYXQgYW4gZXhpc3RpbmcgZGV0ZXJtaW5pc3RpYyBzY2hlbWEgYmVsb25ncyB0byB0aGlzIHVzZXIgYW5kIHJlcXVlc3QuICovXG5mdW5jdGlvbiBhc3NlcnRTY2hlbWFNYXJrZXJzKFxuICBzY2hlbWE6IHsgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSxcbiAgb3duZXJEaWdlc3Q6IHN0cmluZyxcbiAgcmVxdWVzdERpZ2VzdDogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuKTogdm9pZCB7XG4gIGlmIChcbiAgICBzY2hlbWEucHJvcGVydGllcz8uW09XTkVSX0RJR0VTVF9QUk9QRVJUWV0gIT09IG93bmVyRGlnZXN0IHx8XG4gICAgc2NoZW1hLnByb3BlcnRpZXM/LltSRVFVRVNUX0RJR0VTVF9QUk9QRVJUWV0gIT09IHJlcXVlc3REaWdlc3RcbiAgKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcbiAgICAgIGBHZW5lcmF0b3Igc2NoZW1hICR7ZnVsbE5hbWV9IGFscmVhZHkgZXhpc3RzIHdpdGggZGlmZmVyZW50IG93bmVyc2hpcCBtYXJrZXJzYCxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2stY3JlYXRlLXJlY2hlY2sgb25lIG1hcmtlZCBzY2hlbWEgYXMgdGhlIGFwcCBzZXJ2aWNlIHByaW5jaXBhbCwgdGhlblxuICogZ3JhbnQgdGhlIE9CTyB1c2VyIGZ1bGwgc2NoZW1hIGNvbnRyb2wgd2hpbGUgcmV0YWluaW5nIFNQIG93bmVyc2hpcC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYShcbiAgaW5wdXQ6IFByb3Zpc2lvblNjaGVtYUlucHV0LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5KCk7XG4gIHJldHVybiBwcm92aXNpb25HZW5lcmF0b3JTY2hlbWFXaXRoSWRlbnRpdHkoaW5wdXQsIGlkZW50aXR5LCBzaWduYWwpO1xufVxuXG4vKiogUHJvdmlzaW9uIHdpdGggZXhwbGljaXQgdHJ1c3RlZCBjbGllbnRzLCBmb3IgcGx1Z2luIHJldXNlIGFuZCBpc29sYXRlZCB0ZXN0cy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92aXNpb25HZW5lcmF0b3JTY2hlbWFXaXRoSWRlbnRpdHkoXG4gIGlucHV0OiBQcm92aXNpb25TY2hlbWFJbnB1dCxcbiAgaWRlbnRpdHk6IEdlbmVyYXRvcklkZW50aXR5LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gIGNvbnN0IGNhdGFsb2cgPSBzdHJpbmdVdGlscy50cmltVG9OdWxsKGlucHV0LmNhdGFsb2cpO1xuICBpZiAoIWNhdGFsb2cpIHRocm93IG5ldyBDb25maWd1cmF0aW9uRXJyb3IoXCJHRU5FUkFUT1JfQ0FUQUxPRyBpcyByZXF1aXJlZFwiKTtcblxuICBjb25zdCBzY2hlbWFOYW1lID0gZ2VuZXJhdG9yU2NoZW1hTmFtZShcbiAgICBpZGVudGl0eS5wcmluY2lwYWwsXG4gICAgaW5wdXQucmVxdWVzdC5jb21wYW55LFxuICAgIGlucHV0LnJlcXVlc3QucHVycG9zZSxcbiAgKTtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHtjYXRhbG9nfS4ke3NjaGVtYU5hbWV9YDtcbiAgY29uc3Qgb3duZXJEaWdlc3QgPSBoYXNoLmZudkhhc2goaWRlbnRpdHkudXNlcklkKTtcbiAgY29uc3QgcmVxdWVzdERpZ2VzdCA9IGhhc2guZm52SGFzaChpZGVudGl0eS51c2VySWQsIGlucHV0LnJlcXVlc3QuY29tcGFueSwgaW5wdXQucmVxdWVzdC5wdXJwb3NlKTtcbiAgY29uc3QgY29udGV4dCA9IHNpZ25hbCA/IGRhdGFicmlja3MudG9Db250ZXh0KHNpZ25hbCkgOiB1bmRlZmluZWQ7XG5cbiAgYXdhaXQgaWRlbnRpdHkudXNlckNsaWVudC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpLmNhdGFsb2dzLmdldCh7IG5hbWU6IGNhdGFsb2cgfSk7XG5cbiAgbGV0IHNjaGVtYSA9IGF3YWl0IGdldFNjaGVtYShpZGVudGl0eS5zZXJ2aWNlQ2xpZW50LCBmdWxsTmFtZSk7XG4gIGlmICghc2NoZW1hKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGlkZW50aXR5LnNlcnZpY2VDbGllbnQudG9MZWdhY3lXb3Jrc3BhY2VDbGllbnQoKS5zY2hlbWFzLmNyZWF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGNhdGFsb2dfbmFtZTogY2F0YWxvZyxcbiAgICAgICAgICBuYW1lOiBzY2hlbWFOYW1lLFxuICAgICAgICAgIGNvbW1lbnQ6IGBHZW5lcmF0ZWQgZGVtbyBhc3NldHMgZm9yICR7aWRlbnRpdHkucHJpbmNpcGFsfWAsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgW09XTkVSX0RJR0VTVF9QUk9QRVJUWV06IG93bmVyRGlnZXN0LFxuICAgICAgICAgICAgW1JFUVVFU1RfRElHRVNUX1BST1BFUlRZXTogcmVxdWVzdERpZ2VzdCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb250ZXh0LFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChjYXVzZSkge1xuICAgICAgaWYgKCFlcnJvclV0aWxzLmVycm9yQ29udGV4dChjYXVzZSkuaGFzTWVzc2FnZShcImFscmVhZHkgZXhpc3RzXCIpKSB0aHJvdyBjYXVzZTtcbiAgICB9XG4gICAgc2NoZW1hID0gYXdhaXQgZ2V0U2NoZW1hKGlkZW50aXR5LnNlcnZpY2VDbGllbnQsIGZ1bGxOYW1lKTtcbiAgfVxuICBpZiAoIXNjaGVtYSkge1xuICAgIHRocm93IENvbmZpZ3VyYXRpb25FcnJvci5yZXNvdXJjZU5vdEZvdW5kKFwiR2VuZXJhdG9yIHNjaGVtYVwiLCBmdWxsTmFtZSk7XG4gIH1cbiAgYXNzZXJ0U2NoZW1hTWFya2VycyhzY2hlbWEsIG93bmVyRGlnZXN0LCByZXF1ZXN0RGlnZXN0LCBmdWxsTmFtZSk7XG5cbiAgYXdhaXQgaWRlbnRpdHkuc2VydmljZUNsaWVudC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpLmdyYW50cy51cGRhdGUoXG4gICAge1xuICAgICAgc2VjdXJhYmxlX3R5cGU6IFwiU0NIRU1BXCIsXG4gICAgICBmdWxsX25hbWU6IGZ1bGxOYW1lLFxuICAgICAgY2hhbmdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJpbmNpcGFsOiBpZGVudGl0eS5wcmluY2lwYWwsXG4gICAgICAgICAgYWRkOiBbXCJBTExfUFJJVklMRUdFU1wiLCBcIk1BTkFHRVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBjb250ZXh0LFxuICApO1xuXG4gIHJldHVybiBHZW5lcmF0ZWRTY2hlbWFTY2hlbWEucGFyc2Uoe1xuICAgIGNhdGFsb2csXG4gICAgc2NoZW1hOiBzY2hlbWFOYW1lLFxuICAgIGZ1bGxOYW1lLFxuICAgIHByaW5jaXBhbDogaWRlbnRpdHkucHJpbmNpcGFsLFxuICB9KTtcbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hbWVzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsbUJBQW1CLEdBRXBCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BHLE9BQU8sRUFDTCxxQkFBcUIsR0FHdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLHFCQUFxQixHQUFHLGtDQUFrQyxDQUFDO0FBQ2pFLE1BQU0sdUJBQXVCLEdBQUcsb0NBQW9DLENBQUM7QUFzQnJFLGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxPQUFlLEVBQUUsT0FBZTtJQUNyRixNQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FDbEM7UUFDRSxTQUFTLEVBQUUsR0FBRztRQUNkLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFNBQVMsRUFBRSxFQUFFO1FBQ2IsZ0JBQWdCLEVBQUUsTUFBTTtRQUN4QixrQkFBa0IsRUFBRSxDQUFDO0tBQ3RCLEVBQ0QsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLENBQ1IsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0FBQ2xELENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0I7SUFDNUMsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsQ0FBQyxRQUFRLElB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QUNELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sUUFBUSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2xFO1FBQ0UsY0FBYyxFQUFFLFFBQVE7UUFDeEIsU0FBUyxFQUFFLFFBQVE7UUFDbkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUM3QixHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUM7YUFDbEM7U0FDRjtLQUNGLEVBQ0QsT0FBTyxDQUNSLENBQUM7SUFFRixPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUNqQyxPQUFPO1FBQ1AsTUFBTSxFQUFFLFVBQVU7UUFDbEIsUUFBUTtRQUNSLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztLQUM5QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQZXItdXNlciBVbml0eSBDYXRhbG9nIG5hbWVzcGFjZSBkZXJpdmF0aW9uIGFuZCBwcm92aXNpb25pbmcuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25FcnJvcixcbiAgY3JlYXRlV29ya3NwYWNlQ2xpZW50LFxuICBnZXRFeGVjdXRpb25Db250ZXh0LFxuICB0eXBlIFdvcmtzcGFjZUNsaWVudCxcbn0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgdG9Db250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBlcnJvckNvbnRleHQsIGZudkhhc2gsIHRvSWRlbnRpZmllcldpdGhPcHRpb25zLCB0cmltVG9OdWxsIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEdlbmVyYXRlZFNjaGVtYVNjaGVtYSxcbiAgdHlwZSBHZW5lcmF0ZWRTY2hlbWEsXG4gIHR5cGUgR2VuZXJhdG9yUmVxdWVzdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuXG5jb25zdCBPV05FUl9ESUdFU1RfUFJPUEVSVFkgPSBcImRieF90b29scy5nZW5lcmF0b3Iub3duZXJfZGlnZXN0XCI7XG5jb25zdCBSRVFVRVNUX0RJR0VTVF9QUk9QRVJUWSA9IFwiZGJ4X3Rvb2xzLmdlbmVyYXRvci5yZXF1ZXN0X2RpZ2VzdFwiO1xuXG4vKiogSW5wdXRzIG5lZWRlZCB0byBwcm92aXNpb24gb25lIGRldGVybWluaXN0aWMgZ2VuZXJhdGVkIHNjaGVtYS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uU2NoZW1hSW5wdXQge1xuICAvKiogQ29uZmlndXJlZCBwYXJlbnQgY2F0YWxvZy4gKi9cbiAgY2F0YWxvZzogc3RyaW5nO1xuICAvKiogQ29tcGFueSBhbmQgcHVycG9zZSB1c2VkIHRvIGRlcml2ZSB0aGUgc2NoZW1hIG5hbWUuICovXG4gIHJlcXVlc3Q6IFBpY2s8R2VuZXJhdG9yUmVxdWVzdCwgXCJjb21wYW55XCIgfCBcInB1cnBvc2VcIj47XG59XG5cbi8qKiBUcnVzdGVkIHVzZXIgaWRlbnRpdHkgYW5kIGNsaWVudHMgcmVzb2x2ZWQgZnJvbSB0aGUgYWN0aXZlIEFwcEtpdCByZXF1ZXN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JJZGVudGl0eSB7XG4gIC8qKiBPQk8gd29ya3NwYWNlIGNsaWVudC4gKi9cbiAgdXNlckNsaWVudDogV29ya3NwYWNlQ2xpZW50O1xuICAvKiogU2VydmljZS1wcmluY2lwYWwgd29ya3NwYWNlIGNsaWVudC4gKi9cbiAgc2VydmljZUNsaWVudDogV29ya3NwYWNlQ2xpZW50O1xuICAvKiogVHJ1c3RlZCBEYXRhYnJpY2tzIHVzZXIgbmFtZS4gKi9cbiAgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIC8qKiBUcnVzdGVkIHN0YWJsZSB1c2VyIGlkLiAqL1xuICB1c2VySWQ6IHN0cmluZztcbn1cblxuLyoqIERlcml2ZSBhIHJlYWRhYmxlLCBib3VuZGVkIHNjaGVtYSBuYW1lIHdpdGggY29sbGlzaW9uLXJlc2lzdGFudCBvdmVyZmxvdy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0b3JTY2hlbWFOYW1lKHByaW5jaXBhbDogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcsIHB1cnBvc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGJhc2UgPSB0b0lkZW50aWZpZXJXaXRoT3B0aW9ucyhcbiAgICB7XG4gICAgICBkZWxpbWl0ZXI6IFwiX1wiLFxuICAgICAgb21pdEVtYWlsRG9tYWluOiB0cnVlLFxuICAgICAgbWF4TGVuZ3RoOiA5NixcbiAgICAgIHRydW5jYXRlU3RyYXRlZ3k6IFwiaGFzaFwiLFxuICAgICAgdHJ1bmNhdGVIYXNoTGVuZ3RoOiA4LFxuICAgIH0sXG4gICAgcHJpbmNpcGFsLFxuICAgIGNvbXBhbnksXG4gICAgcHVycG9zZSxcbiAgKTtcbiAgcmV0dXJuIC9eW2Etel0vLnRlc3QoYmFzZSkgPyBiYXNlIDogYHVfJHtiYXNlfWA7XG59XG5cbi8qKiBSZXNvbHZlIHRoZSBhY3RpdmUgT0JPIGNhbGxlciBhbmQgYSBzZXBhcmF0ZSBhcHAgc2VydmljZS1wcmluY2lwYWwgY2xpZW50LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVHZW5lcmF0b3JJZGVudGl0eSgpOiBQcm9taXNlPEdlbmVyYXRvcklkZW50aXR5PiB7XG4gIGNvbnN0IGNvbnRleHQgPSBnZXRFeGVjdXRpb25Db250ZXh0KCk7XG4gIGlmICghKFwidXNlcklkXCIgaW4gY29udGV4dCkpIHtcbiAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiR2VuZXJhdG9yIG9wZXJhdGlvbnMgcmVxdWlyZSBhbiBvbi1iZWhhbGYtb2YgdXNlciBjb250ZXh0XCIpO1xuICB9XG4gIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBjb250ZXh0LmNsaWVudC5jdXJyZW50VXNlci5tZSgpO1xuICBjb25zdCBwcmluY2lwYWwgPSB0cmltVG9OdWxsKGN1cnJlbnQudXNlck5hbWUpO1xuICBpZiAoIXByaW5jaXBhbCkge1xuICAgIHRocm93IG5ldyBDb25maWd1cmF0aW9uRXJyb3IoXCJUaGUgY3VycmVudCBEYXRhYnJpY2tzIHVzZXIgaGFzIG5vIHVzZXJOYW1lXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgdXNlckNsaWVudDogY29udGV4dC5jbGllbnQsXG4gICAgc2VydmljZUNsaWVudDogY3JlYXRlV29ya3NwYWNlQ2xpZW50KCksXG4gICAgcHJpbmNpcGFsLFxuICAgIHVzZXJJZDogY29udGV4dC51c2VySWQsXG4gIH07XG59XG5cbi8qKiBSZXR1cm4gYW4gZXhpc3Rpbmcgc2NoZW1hLCB0cmVhdGluZyBvbmx5IGEgZ2VudWluZSBub3QtZm91bmQgcmVzcG9uc2UgYXMgYWJzZW50LiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0U2NoZW1hKFxuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudCxcbiAgZnVsbE5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8XG4gIHwgQXdhaXRlZDxSZXR1cm5UeXBlPFJldHVyblR5cGU8V29ya3NwYWNlQ2xpZW50W1widG9MZWdhY3lXb3Jrc3BhY2VDbGllbnRcIl0+W1wic2NoZW1hc1wiXVtcImdldFwiXT4+XG4gIHwgdW5kZWZpbmVkXG4+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgY2xpZW50LnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCkuc2NoZW1hcy5nZXQoeyBmdWxsX25hbWU6IGZ1bGxOYW1lIH0pO1xuICB9IGNhdGNoIChjYXVzZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBlcnJvckNvbnRleHQoY2F1c2UpO1xuICAgIGlmIChjb250ZXh0Lmhhc1N0YXR1c0NvZGUoNDA0KSB8fCBjb250ZXh0Lmhhc01lc3NhZ2UoXCJkb2VzIG5vdCBleGlzdFwiKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB0aHJvdyBjYXVzZTtcbiAgfVxufVxuXG4vKiogVmVyaWZ5IHRoYXQgYW4gZXhpc3RpbmcgZGV0ZXJtaW5pc3RpYyBzY2hlbWEgYmVsb25ncyB0byB0aGlzIHVzZXIgYW5kIHJlcXVlc3QuICovXG5mdW5jdGlvbiBhc3NlcnRTY2hlbWFNYXJrZXJzKFxuICBzY2hlbWE6IHsgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSxcbiAgb3duZXJEaWdlc3Q6IHN0cmluZyxcbiAgcmVxdWVzdERpZ2VzdDogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuKTogdm9pZCB7XG4gIGlmIChcbiAgICBzY2hlbWEucHJvcGVydGllcz8uW09XTkVSX0RJR0VTVF9QUk9QRVJUWV0gIT09IG93bmVyRGlnZXN0IHx8XG4gICAgc2NoZW1hLnByb3BlcnRpZXM/LltSRVFVRVNUX0RJR0VTVF9QUk9QRVJUWV0gIT09IHJlcXVlc3REaWdlc3RcbiAgKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcbiAgICAgIGBHZW5lcmF0b3Igc2NoZW1hICR7ZnVsbE5hbWV9IGFscmVhZHkgZXhpc3RzIHdpdGggZGlmZmVyZW50IG93bmVyc2hpcCBtYXJrZXJzYCxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2stY3JlYXRlLXJlY2hlY2sgb25lIG1hcmtlZCBzY2hlbWEgYXMgdGhlIGFwcCBzZXJ2aWNlIHByaW5jaXBhbCwgdGhlblxuICogZ3JhbnQgdGhlIE9CTyB1c2VyIGZ1bGwgc2NoZW1hIGNvbnRyb2wgd2hpbGUgcmV0YWluaW5nIFNQIG93bmVyc2hpcC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYShcbiAgaW5wdXQ6IFByb3Zpc2lvblNjaGVtYUlucHV0LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5KCk7XG4gIHJldHVybiBwcm92aXNpb25HZW5lcmF0b3JTY2hlbWFXaXRoSWRlbnRpdHkoaW5wdXQsIGlkZW50aXR5LCBzaWduYWwpO1xufVxuXG4vKiogUHJvdmlzaW9uIHdpdGggZXhwbGljaXQgdHJ1c3RlZCBjbGllbnRzLCBmb3IgcGx1Z2luIHJldXNlIGFuZCBpc29sYXRlZCB0ZXN0cy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92aXNpb25HZW5lcmF0b3JTY2hlbWFXaXRoSWRlbnRpdHkoXG4gIGlucHV0OiBQcm92aXNpb25TY2hlbWFJbnB1dCxcbiAgaWRlbnRpdHk6IEdlbmVyYXRvcklkZW50aXR5LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gIGNvbnN0IGNhdGFsb2cgPSB0cmltVG9OdWxsKGlucHV0LmNhdGFsb2cpO1xuICBpZiAoIWNhdGFsb2cpIHRocm93IG5ldyBDb25maWd1cmF0aW9uRXJyb3IoXCJHRU5FUkFUT1JfQ0FUQUxPRyBpcyByZXF1aXJlZFwiKTtcblxuICBjb25zdCBzY2hlbWFOYW1lID0gZ2VuZXJhdG9yU2NoZW1hTmFtZShcbiAgICBpZGVudGl0eS5wcmluY2lwYWwsXG4gICAgaW5wdXQucmVxdWVzdC5jb21wYW55LFxuICAgIGlucHV0LnJlcXVlc3QucHVycG9zZSxcbiAgKTtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHtjYXRhbG9nfS4ke3NjaGVtYU5hbWV9YDtcbiAgY29uc3Qgb3duZXJEaWdlc3QgPSBmbnZIYXNoKGlkZW50aXR5LnVzZXJJZCk7XG4gIGNvbnN0IHJlcXVlc3REaWdlc3QgPSBmbnZIYXNoKGlkZW50aXR5LnVzZXJJZCwgaW5wdXQucmVxdWVzdC5jb21wYW55LCBpbnB1dC5yZXF1ZXN0LnB1cnBvc2UpO1xuICBjb25zdCBjb250ZXh0ID0gc2lnbmFsID8gdG9Db250ZXh0KHNpZ25hbCkgOiB1bmRlZmluZWQ7XG5cbiAgYXdhaXQgaWRlbnRpdHkudXNlckNsaWVudC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpLmNhdGFsb2dzLmdldCh7IG5hbWU6IGNhdGFsb2cgfSk7XG5cbiAgbGV0IHNjaGVtYSA9IGF3YWl0IGdldFNjaGVtYShpZGVudGl0eS5zZXJ2aWNlQ2xpZW50LCBmdWxsTmFtZSk7XG4gIGlmICghc2NoZW1hKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGlkZW50aXR5LnNlcnZpY2VDbGllbnQudG9MZWdhY3lXb3Jrc3BhY2VDbGllbnQoKS5zY2hlbWFzLmNyZWF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGNhdGFsb2dfbmFtZTogY2F0YWxvZyxcbiAgICAgICAgICBuYW1lOiBzY2hlbWFOYW1lLFxuICAgICAgICAgIGNvbW1lbnQ6IGBHZW5lcmF0ZWQgZGVtbyBhc3NldHMgZm9yICR7aWRlbnRpdHkucHJpbmNpcGFsfWAsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgW09XTkVSX0RJR0VTVF9QUk9QRVJUWV06IG93bmVyRGlnZXN0LFxuICAgICAgICAgICAgW1JFUVVFU1RfRElHRVNUX1BST1BFUlRZXTogcmVxdWVzdERpZ2VzdCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb250ZXh0LFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChjYXVzZSkge1xuICAgICAgaWYgKCFlcnJvckNvbnRleHQoY2F1c2UpLmhhc01lc3NhZ2UoXCJhbHJlYWR5IGV4aXN0c1wiKSkgdGhyb3cgY2F1c2U7XG4gICAgfVxuICAgIHNjaGVtYSA9IGF3YWl0IGdldFNjaGVtYShpZGVudGl0eS5zZXJ2aWNlQ2xpZW50LCBmdWxsTmFtZSk7XG4gIH1cbiAgaWYgKCFzY2hlbWEpIHtcbiAgICB0aHJvdyBDb25maWd1cmF0aW9uRXJyb3IucmVzb3VyY2VOb3RGb3VuZChcIkdlbmVyYXRvciBzY2hlbWFcIiwgZnVsbE5hbWUpO1xuICB9XG4gIGFzc2VydFNjaGVtYU1hcmtlcnMoc2NoZW1hLCBvd25lckRpZ2VzdCwgcmVxdWVzdERpZ2VzdCwgZnVsbE5hbWUpO1xuXG4gIGF3YWl0IGlkZW50aXR5LnNlcnZpY2VDbGllbnQudG9MZWdhY3lXb3Jrc3BhY2VDbGllbnQoKS5ncmFudHMudXBkYXRlKFxuICAgIHtcbiAgICAgIHNlY3VyYWJsZV90eXBlOiBcIlNDSEVNQVwiLFxuICAgICAgZnVsbF9uYW1lOiBmdWxsTmFtZSxcbiAgICAgIGNoYW5nZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByaW5jaXBhbDogaWRlbnRpdHkucHJpbmNpcGFsLFxuICAgICAgICAgIGFkZDogW1wiQUxMX1BSSVZJTEVHRVNcIiwgXCJNQU5BR0VcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgKTtcblxuICByZXR1cm4gR2VuZXJhdGVkU2NoZW1hU2NoZW1hLnBhcnNlKHtcbiAgICBjYXRhbG9nLFxuICAgIHNjaGVtYTogc2NoZW1hTmFtZSxcbiAgICBmdWxsTmFtZSxcbiAgICBwcmluY2lwYWw6IGlkZW50aXR5LnByaW5jaXBhbCxcbiAgfSk7XG59XG4iXX0=
@@ -3,9 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { BrandGenerationRequest, BrandPackage } from "@dbx-tools/shared-generator/brand";
7
- import type { KpiResearchRequest, KpiResearchResult } from "@dbx-tools/shared-generator/kpi";
8
- import type { CreateGeneratorPresentationRequest, GeneratedDashboard, GeneratedGenieSpace, GeneratedSchema, GeneratorPlan, MaterializeGeneratorDataRequest, MaterializedGeneratorData, PlanGeneratorDataRequest, ProvisionGeneratorSchemaRequest } from "@dbx-tools/shared-generator/workflow";
6
+ import type { BrandGenerationRequest, BrandPackage, KpiResearchRequest, KpiResearchResult, CreateGeneratorPresentationRequest, GeneratedDashboard, GeneratedGenieSpace, GeneratedSchema, GeneratorPlan, MaterializeGeneratorDataRequest, MaterializedGeneratorData, PlanGeneratorDataRequest, ProvisionGeneratorSchemaRequest } from "@dbx-tools/shared-generator";
9
7
  import type { ResolvedGeneratorConfig } from "./config.ts";
10
8
  import type { BrandProgressReporter, BrandResearchClient } from "./research.ts";
11
9
  /** Runtime dependencies captured by one generator plugin instance. */