@dbx-tools/cli 0.9.61 → 0.9.65

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.
package/lib/src/cli.js CHANGED
@@ -99,7 +99,18 @@ export function buildProgram(name = PROGRAM_NAMES[0]) {
99
99
  /** Build the complete command tree used for generated documentation. */
100
100
  export async function buildDocumentationProgram(name = PROGRAM_NAMES[0]) {
101
101
  const program = buildProgram(name);
102
- program.commands.splice(1, program.commands.length - 1, (await import("./appkit/cli.js")).buildProgram("appkit"), (await import("./auth/cli.js")).buildProgram("auth"), (await import("./tunnel/cli.js")).buildProgram("tunnel"), (await import("./lakebase-proxy/cli.js")).buildProgram("lakebase-proxy"), (await import("./model-gateway/cli.js")).buildProgram("model-gateway"), (await import("./genie-code/cli.js")).buildProgram("genie"), (await import("./graphiti/cli.js")).buildProgram("graphiti"));
102
+ const children = [
103
+ (await import("./appkit/cli.js")).buildProgram("appkit"),
104
+ (await import("./auth/cli.js")).buildProgram("auth"),
105
+ (await import("./tunnel/cli.js")).buildProgram("tunnel"),
106
+ (await import("./lakebase-proxy/cli.js")).buildProgram("lakebase-proxy"),
107
+ (await import("./model-gateway/cli.js")).buildProgram("model-gateway"),
108
+ (await import("./genie-code/cli.js")).buildProgram("genie"),
109
+ (await import("./graphiti/cli.js")).buildProgram("graphiti"),
110
+ ];
111
+ program.commands.splice(1, program.commands.length - 1);
112
+ for (const child of children)
113
+ program.addCommand(child);
103
114
  return program;
104
115
  }
105
116
  /**
@@ -114,4 +125,4 @@ function programName(argv) {
114
125
  export async function runCli(argv) {
115
126
  await buildProgram(programName(argv)).parseAsync(argv);
116
127
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlFLHNFQUFzRTtBQUN0RSxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxVQUFvQixFQUFFLFFBQWlCO0lBQy9FLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPO0lBQ1QsQ0FBQztJQUNELG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFD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QyxVQUFVLENBQUMsQ0FDN0QsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFjO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLElBQWM7SUFDekMsTUFBTSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbW1hbmRlciBlbnRyeSBmb3IgYGRieGAgYW5kIGl0cyBgZGJ4LXRvb2xzYCBhbGlhcy5cbiAqXG4gKiBgZGV2YCBib290c3RyYXBzIG9yIHJlcGFpcnMgYSB3b3Jrc3BhY2UgYW5kIGZvcndhcmRzIHRvIHByb2plbi5cbiAqIGBhcHBraXRgIHByb3ZpZGVzIEFwcEtpdCBlbnZpcm9ubWVudCBoZWxwZXJzLlxuICogYGF1dGhgIG1hbmFnZXMgRGF0YWJyaWNrcyBPQXV0aCBhbmQgYWNjZXNzIHRva2Vucy5cbiAqIGB0dW5uZWxgIHJ1bnMgYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggcGFzc3dvcmRsZXNzIGFjY2VzcyBnYXRpbmcuXG4gKlxuICogRmVhdHVyZSBjb21tYW5kcyBsb2FkIHRoZWlyIHNpYmxpbmcgcGFja2FnZXMgb25seSB3aGVuIHNlbGVjdGVkIGFuZCBmb3J3YXJkXG4gKiB0aGVpciBjb21wbGV0ZSBhcmd1bWVudCBsaXN0LCBpbmNsdWRpbmcgYC0taGVscGAuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQge1xuICBib290c3RyYXBXb3Jrc3BhY2UsXG4gIGVuc3VyZUVuZ2luZUN1cnJlbnQsXG4gIHJ1bkluaXRpYWxTeW50aCxcbiAgc2VlZFRvb2xjaGFpbixcbn0gZnJvbSBcIi4vYm9vdHN0cmFwLnRzXCI7XG5pbXBvcnQgeyBlbnN1cmVXb3Jrc3BhY2VSZWFkeSwgcnVuQnVuLCBydW5Qcm9qZW4gfSBmcm9tIFwiLi9idW4udHNcIjtcbmltcG9ydCB7IGZpbmRXb3Jrc3BhY2VSb290LCBuZWVkc0Jvb3RzdHJhcCwgbmVlZHNUb29sY2hhaW4gfSBmcm9tIFwiLi9yb290LnRzXCI7XG5cbi8qKiBDb21tYW5kcyB0aGUgYmluIGV4cG9zZXMsIGFuZCB0aGUgbmFtZXMgaGVscCBpcyByZW5kZXJlZCB1bmRlci4gKi9cbmNvbnN0IFBST0dSQU1fTkFNRVMgPSBbXCJkYnhcIiwgXCJkYngtdG9vbHNcIl0gYXMgY29uc3Q7XG5cbi8qKlxuICogUHJlcGFyZSB0aGUgd29ya3NwYWNlIGF0IGByb290YCwgdGhlbiBydW4gcHJvamVuICh2aWEgYnVuKSB3aXRoIGBwcm9qZW5BcmdzYC5cbiAqXG4gKiBUaHJlZSBjYXNlcywgaW4gb3JkZXI6XG4gKiAgIC0gbm8gYC5wcm9qZW5yYy50c2AgYXQgYWxsIC0+IGZ1bGwgYm9vdHN0cmFwIChzY2FmZm9sZCArIGluc3RhbGwgKyBzeW50aCksXG4gKiAgICAgd2hpY2ggYWxyZWFkeSBydW5zIHRoZSBpbml0aWFsIHN5bnRoOyBub3RoaW5nIG1vcmUgdG8gZm9yd2FyZC5cbiAqICAgLSBhIGAucHJvamVucmMudHNgIGJ1dCB0aGUgZW5naW5lL3Rvb2xjaGFpbiBpc24ndCBpbnN0YWxsZWQgKGUuZy4gYSBmcmVzaGx5XG4gKiAgICAgY29waWVkIHByb2plY3Qgd2hvc2UgZ2VuZXJhdGVkIGZpbGVzICsgbWFuaWZlc3RzIGFyZSBnaXRpZ25vcmVkKSAtPiBzZWVkXG4gKiAgICAgdGhlIHRvb2xjaGFpbiwgdGhlbiBydW4gdGhlIElOSVRJQUwgc3ludGggZGlyZWN0bHkgKHRoZSBwcm9qZW4gdGFza3MgdGhlXG4gKiAgICAgYXJncyB3b3VsZCBuYW1lLCBsaWtlIGBzeW5jYCwgZG9uJ3QgZXhpc3QgdW50aWwgYC5wcm9qZW5yYy50c2AgaGFzIHJ1blxuICogICAgIG9uY2UpLCBhbmQgaW5zdGFsbC4gRG9uJ3QgZm9yd2FyZCBgcHJvamVuQXJnc2AgLSB0aGUgc3ludGggaXMgdGhlIHdvcmsuXG4gKiAgIC0gb3RoZXJ3aXNlIChlc3RhYmxpc2hlZCB3b3Jrc3BhY2UpIC0+IGVuc3VyZSBkZXBzLCBicmluZyB0aGUgZW5naW5lIHVwIHRvXG4gKiAgICAgdGhpcyBDTEkncyB2ZXJzaW9uLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzOiBzdHJpbmdbXSwgc3RhcnREaXI/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgcm9vdCA9IGF3YWl0IGZpbmRXb3Jrc3BhY2VSb290KHN0YXJ0RGlyKTtcbiAgaWYgKG5lZWRzQm9vdHN0cmFwKHJvb3QpKSB7XG4gICAgYm9vdHN0cmFwV29ya3NwYWNlKHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobmVlZHNUb29sY2hhaW4ocm9vdCkpIHtcbiAgICBzZWVkVG9vbGNoYWluKHJvb3QpO1xuICAgIHJ1bkluaXRpYWxTeW50aChyb290KTtcbiAgICBydW5CdW4oW1wiaW5zdGFsbFwiXSwgcm9vdCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVuc3VyZVdvcmtzcGFjZVJlYWR5KHJvb3QpO1xuICBlbnN1cmVFbmdpbmVDdXJyZW50KHJvb3QpO1xuICBydW5Qcm9qZW4ocHJvamVuQXJncywgcm9vdCk7XG59XG5cbi8qKlxuICogTW91bnQgYG5hbWVgIGFzIGEgY29tbWFuZCB0aGF0IGNhcHR1cmVzIGV2ZXJ5IGZvbGxvd2luZyB0b2tlbiB2ZXJiYXRpbSBhbmRcbiAqIGhhbmRzIGl0IHRvIHRoZSBwcm9ncmFtIGBsb2FkKClgIHJlc29sdmVzLiBgaGVscE9wdGlvbihmYWxzZSlgIGlzIHdoYXQgbGV0c1xuICogYC0taGVscGAgdGhyb3VnaCB0byB0aGUgY2hpbGQgaW5zdGVhZCBvZiBiZWluZyBhbnN3ZXJlZCBoZXJlLCBhbmRcbiAqIGBwYXNzVGhyb3VnaE9wdGlvbnMoKWAga2VlcHMgdW5rbm93biBmbGFncyBpbiB0aGF0IHRva2VuIGxpc3Qgc28gdGhlIGNoaWxkXG4gKiBwcm9ncmFtIG93bnMgdGhlbS5cbiAqL1xuZnVuY3Rpb24gYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgcHJvZ3JhbTogQ29tbWFuZCxcbiAgbmFtZTogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICBsb2FkOiAoKSA9PiBQcm9taXNlPChuYW1lOiBzdHJpbmcpID0+IENvbW1hbmQ+LFxuKTogdm9pZCB7XG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbilcbiAgICAuYXJndW1lbnQoXCJbYXJncy4uLl1cIiwgYGFyZ3VtZW50cyBmb3J3YXJkZWQgdG8gJHtuYW1lfWApXG4gICAgLmFsbG93VW5rbm93bk9wdGlvbigpXG4gICAgLnBhc3NUaHJvdWdoT3B0aW9ucygpXG4gICAgLmFsbG93RXhjZXNzQXJndW1lbnRzKClcbiAgICAuaGVscE9wdGlvbihmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChhcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRQcm9ncmFtID0gYXdhaXQgbG9hZCgpO1xuICAgICAgYXdhaXQgYnVpbGRQcm9ncmFtKGAke3Byb2dyYW0ubmFtZSgpfSAke25hbWV9YCkucGFyc2VBc3luYyhhcmdzLCB7IGZyb206IFwidXNlclwiIH0pO1xuICAgIH0pO1xufVxuXG4vKiogQnVpbGQgdGhlIGBkYnhgIGNvbW1hbmRlciBwcm9ncmFtIChubyBzaWRlIGVmZmVjdHMgdW50aWwgcGFyc2VkKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0obmFtZTogc3RyaW5nID0gUFJPR1JBTV9OQU1FU1swXSk6IENvbW1hbmQge1xuICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKG5hbWUpXG4gICAgLmRlc2NyaXB0aW9uKFxuICAgICAgXCJEYXRhYnJpY2tzIGRldmVsb3BlciB0b29sczogd29ya3NwYWNlIGxpZmVjeWNsZSwgQXBwS2l0IGVudiwgYXV0aCwgdHVubmVscywgYW5kIGxvY2FsIHByb3hpZXNcIixcbiAgICApXG4gICAgLmVuYWJsZVBvc2l0aW9uYWxPcHRpb25zKClcbiAgICAuc2hvd0hlbHBBZnRlckVycm9yKClcbiAgICAuaGVscE9wdGlvbihcIi1oLCAtLWhlbHBcIiwgYFNob3cgJHtuYW1lfSBoZWxwYCk7XG5cbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKFwiZGV2XCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiQm9vdHN0cmFwIG9yIHJlcGFpciBhIGRieC10b29scyB3b3Jrc3BhY2UsIHRoZW4gZm9yd2FyZCB0byBwcm9qZW5cIilcbiAgICAuYXJndW1lbnQoXCJbcHJvamVuQXJncy4uLl1cIiwgXCJwcm9qZW4gdGFzayBhbmQgYXJndW1lbnRzIChlLmcuIHN5bmMgLS13YXRjaClcIilcbiAgICAuYWxsb3dVbmtub3duT3B0aW9uKClcbiAgICAuYWxsb3dFeGNlc3NBcmd1bWVudHMoKVxuICAgIC5oZWxwT3B0aW9uKGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKHByb2plbkFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBhd2FpdCBwcmVwYXJlQW5kUnVuUHJvamVuKHByb2plbkFyZ3MpO1xuICAgIH0pO1xuXG4gIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gICAgcHJvZ3JhbSxcbiAgICBcImFwcGtpdFwiLFxuICAgIFwiQXBwS2l0IGhlbHBlcnMgKGVudjogcHJpbnQgdGhlIGVudmlyb25tZW50IGFuIEFwcEtpdCBhcHAgcmVzb2x2ZXMpXCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vYXBwa2l0L2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtLFxuICApO1xuXG4gIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gICAgcHJvZ3JhbSxcbiAgICBcImF1dGhcIixcbiAgICBcIkF1dGhlbnRpY2F0ZSB0byBEYXRhYnJpY2tzIGFuZCBtYW5hZ2UgT0F1dGggdG9rZW5zXCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vYXV0aC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJ0dW5uZWxcIixcbiAgICBcIlJ1biBhIHB1YmxpYyBwb3J0ciB0dW5uZWwgd2l0aCBhbiBlbWFpbC1PVFAgZ2F0ZVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL3R1bm5lbC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJsYWtlYmFzZS1wcm94eVwiLFxuICAgIFwiUnVuIHRoZSBOb2RlIERhdGFicmlja3MgTGFrZWJhc2UgUG9zdGdyZVNRTCBwcm94eVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2xha2ViYXNlLXByb3h5L2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtLFxuICApO1xuXG4gIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gICAgcHJvZ3JhbSxcbiAgICBcIm1vZGVsLWdhdGV3YXlcIixcbiAgICBcIlJ1biB0aGUgZm9yZWdyb3VuZCBBcHBLaXQgRGF0YWJyaWNrcyBtb2RlbCBnYXRld2F5XCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vbW9kZWwtZ2F0ZXdheS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJnZW5pZVwiLFxuICAgIFwiUnVuIG1hbmFnZWQgR2VuaWUgQ29kZSB0aHJvdWdoIGEgbG9jYWwgRGF0YWJyaWNrcyBtb2RlbCBnYXRld2F5XCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vZ2VuaWUtY29kZS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJncmFwaGl0aVwiLFxuICAgIFwiUnVuIEdyYXBoaXRpIG9yIG1hbmFnZSBpdHMgY3VycmVudC11c2VyIGRlc2t0b3Agc2VydmljZVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2dyYXBoaXRpL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtLFxuICApO1xuXG4gIHJldHVybiBwcm9ncmFtO1xufVxuXG4vKiogQnVpbGQgdGhlIGNvbXBsZXRlIGNvbW1hbmQgdHJlZSB1c2VkIGZvciBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZERvY3VtZW50YXRpb25Qcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBQcm9taXNlPENvbW1hbmQ+IHtcbiAgY29uc3QgcHJvZ3JhbSA9IGJ1aWxkUHJvZ3JhbShuYW1lKTtcbiAgKHByb2dyYW0uY29tbWFuZHMgYXMgQ29tbWFuZFtdKS5zcGxpY2UoXG4gICAgMSxcbiAgICBwcm9ncmFtLmNvbW1hbmRzLmxlbmd0aCAtIDEsXG4gICAgKGF3YWl0IGltcG9ydChcIi4vYXBwa2l0L2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiYXBwa2l0XCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL2F1dGgvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJhdXRoXCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL3R1bm5lbC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcInR1bm5lbFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9sYWtlYmFzZS1wcm94eS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImxha2ViYXNlLXByb3h5XCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL21vZGVsLWdhdGV3YXkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJtb2RlbC1nYXRld2F5XCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL2dlbmllLWNvZGUvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJnZW5pZVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9ncmFwaGl0aS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImdyYXBoaXRpXCIpLFxuICApO1xuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqXG4gKiBQcm9ncmFtIG5hbWUgZm9yIGhlbHAgb3V0cHV0OiB3aGljaGV2ZXIgYmluIHRoZSB1c2VyIGFjdHVhbGx5IHR5cGVkLCBzb1xuICogYGRieC10b29scyAtLWhlbHBgIGRvZXNuJ3QgZG9jdW1lbnQgaXRzZWxmIGFzIGBkYnhgLiBGYWxscyBiYWNrIHRvIGBkYnhgLlxuICovXG5mdW5jdGlvbiBwcm9ncmFtTmFtZShhcmd2OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGludm9rZWQgPSBhcmd2WzFdID8gYmFzZW5hbWUoYXJndlsxXSkucmVwbGFjZSgvXFwuKD86W2NtXT9banRdcykkLywgXCJcIikgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBQUk9HUkFNX05BTUVTLmZpbmQoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlID09PSBpbnZva2VkKSA/PyBQUk9HUkFNX05BTUVTWzBdO1xufVxuXG4vKiogUGFyc2UgYGFyZ3ZgIChhIGBwcm9jZXNzLmFyZ3ZgKSBhbmQgcnVuIHRoZSBtYXRjaGluZyBjb21tYW5kLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNsaShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBidWlsZFByb2dyYW0ocHJvZ3JhbU5hbWUoYXJndikpLnBhcnNlQXN5bmMoYXJndik7XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlFLHNFQUFzRTtBQUN0RSxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxVQUFvQixFQUFFLFFBQWlCO0lBQy9FLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPO0lBQ1QsQ0FBQztJQUNELG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFD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LEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRO1FBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBYztJQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6RixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ3pDLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXIgZW50cnkgZm9yIGBkYnhgIGFuZCBpdHMgYGRieC10b29sc2AgYWxpYXMuXG4gKlxuICogYGRldmAgYm9vdHN0cmFwcyBvciByZXBhaXJzIGEgd29ya3NwYWNlIGFuZCBmb3J3YXJkcyB0byBwcm9qZW4uXG4gKiBgYXBwa2l0YCBwcm92aWRlcyBBcHBLaXQgZW52aXJvbm1lbnQgaGVscGVycy5cbiAqIGBhdXRoYCBtYW5hZ2VzIERhdGFicmlja3MgT0F1dGggYW5kIGFjY2VzcyB0b2tlbnMuXG4gKiBgdHVubmVsYCBydW5zIGEgcHVibGljIHBvcnRyIHR1bm5lbCB3aXRoIHBhc3N3b3JkbGVzcyBhY2Nlc3MgZ2F0aW5nLlxuICpcbiAqIEZlYXR1cmUgY29tbWFuZHMgbG9hZCB0aGVpciBzaWJsaW5nIHBhY2thZ2VzIG9ubHkgd2hlbiBzZWxlY3RlZCBhbmQgZm9yd2FyZFxuICogdGhlaXIgY29tcGxldGUgYXJndW1lbnQgbGlzdCwgaW5jbHVkaW5nIGAtLWhlbHBgLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHtcbiAgYm9vdHN0cmFwV29ya3NwYWNlLFxuICBlbnN1cmVFbmdpbmVDdXJyZW50LFxuICBydW5Jbml0aWFsU3ludGgsXG4gIHNlZWRUb29sY2hhaW4sXG59IGZyb20gXCIuL2Jvb3RzdHJhcC50c1wiO1xuaW1wb3J0IHsgZW5zdXJlV29ya3NwYWNlUmVhZHksIHJ1bkJ1biwgcnVuUHJvamVuIH0gZnJvbSBcIi4vYnVuLnRzXCI7XG5pbXBvcnQgeyBmaW5kV29ya3NwYWNlUm9vdCwgbmVlZHNCb290c3RyYXAsIG5lZWRzVG9vbGNoYWluIH0gZnJvbSBcIi4vcm9vdC50c1wiO1xuXG4vKiogQ29tbWFuZHMgdGhlIGJpbiBleHBvc2VzLCBhbmQgdGhlIG5hbWVzIGhlbHAgaXMgcmVuZGVyZWQgdW5kZXIuICovXG5jb25zdCBQUk9HUkFNX05BTUVTID0gW1wiZGJ4XCIsIFwiZGJ4LXRvb2xzXCJdIGFzIGNvbnN0O1xuXG4vKipcbiAqIFByZXBhcmUgdGhlIHdvcmtzcGFjZSBhdCBgcm9vdGAsIHRoZW4gcnVuIHByb2plbiAodmlhIGJ1bikgd2l0aCBgcHJvamVuQXJnc2AuXG4gKlxuICogVGhyZWUgY2FzZXMsIGluIG9yZGVyOlxuICogICAtIG5vIGAucHJvamVucmMudHNgIGF0IGFsbCAtPiBmdWxsIGJvb3RzdHJhcCAoc2NhZmZvbGQgKyBpbnN0YWxsICsgc3ludGgpLFxuICogICAgIHdoaWNoIGFscmVhZHkgcnVucyB0aGUgaW5pdGlhbCBzeW50aDsgbm90aGluZyBtb3JlIHRvIGZvcndhcmQuXG4gKiAgIC0gYSBgLnByb2plbnJjLnRzYCBidXQgdGhlIGVuZ2luZS90b29sY2hhaW4gaXNuJ3QgaW5zdGFsbGVkIChlLmcuIGEgZnJlc2hseVxuICogICAgIGNvcGllZCBwcm9qZWN0IHdob3NlIGdlbmVyYXRlZCBmaWxlcyArIG1hbmlmZXN0cyBhcmUgZ2l0aWdub3JlZCkgLT4gc2VlZFxuICogICAgIHRoZSB0b29sY2hhaW4sIHRoZW4gcnVuIHRoZSBJTklUSUFMIHN5bnRoIGRpcmVjdGx5ICh0aGUgcHJvamVuIHRhc2tzIHRoZVxuICogICAgIGFyZ3Mgd291bGQgbmFtZSwgbGlrZSBgc3luY2AsIGRvbid0IGV4aXN0IHVudGlsIGAucHJvamVucmMudHNgIGhhcyBydW5cbiAqICAgICBvbmNlKSwgYW5kIGluc3RhbGwuIERvbid0IGZvcndhcmQgYHByb2plbkFyZ3NgIC0gdGhlIHN5bnRoIGlzIHRoZSB3b3JrLlxuICogICAtIG90aGVyd2lzZSAoZXN0YWJsaXNoZWQgd29ya3NwYWNlKSAtPiBlbnN1cmUgZGVwcywgYnJpbmcgdGhlIGVuZ2luZSB1cCB0b1xuICogICAgIHRoaXMgQ0xJJ3MgdmVyc2lvbiwgdGhlbiBmb3J3YXJkIHRvIHByb2plbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVBbmRSdW5Qcm9qZW4ocHJvamVuQXJnczogc3RyaW5nW10sIHN0YXJ0RGlyPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJvb3QgPSBhd2FpdCBmaW5kV29ya3NwYWNlUm9vdChzdGFydERpcik7XG4gIGlmIChuZWVkc0Jvb3RzdHJhcChyb290KSkge1xuICAgIGJvb3RzdHJhcFdvcmtzcGFjZShyb290KTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG5lZWRzVG9vbGNoYWluKHJvb3QpKSB7XG4gICAgc2VlZFRvb2xjaGFpbihyb290KTtcbiAgICBydW5Jbml0aWFsU3ludGgocm9vdCk7XG4gICAgcnVuQnVuKFtcImluc3RhbGxcIl0sIHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBlbnN1cmVXb3Jrc3BhY2VSZWFkeShyb290KTtcbiAgZW5zdXJlRW5naW5lQ3VycmVudChyb290KTtcbiAgcnVuUHJvamVuKHByb2plbkFyZ3MsIHJvb3QpO1xufVxuXG4vKipcbiAqIE1vdW50IGBuYW1lYCBhcyBhIGNvbW1hbmQgdGhhdCBjYXB0dXJlcyBldmVyeSBmb2xsb3dpbmcgdG9rZW4gdmVyYmF0aW0gYW5kXG4gKiBoYW5kcyBpdCB0byB0aGUgcHJvZ3JhbSBgbG9hZCgpYCByZXNvbHZlcy4gYGhlbHBPcHRpb24oZmFsc2UpYCBpcyB3aGF0IGxldHNcbiAqIGAtLWhlbHBgIHRocm91Z2ggdG8gdGhlIGNoaWxkIGluc3RlYWQgb2YgYmVpbmcgYW5zd2VyZWQgaGVyZSwgYW5kXG4gKiBgcGFzc1Rocm91Z2hPcHRpb25zKClgIGtlZXBzIHVua25vd24gZmxhZ3MgaW4gdGhhdCB0b2tlbiBsaXN0IHNvIHRoZSBjaGlsZFxuICogcHJvZ3JhbSBvd25zIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gIHByb2dyYW06IENvbW1hbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwobmFtZTogc3RyaW5nKSA9PiBDb21tYW5kPixcbik6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQobmFtZSlcbiAgICAuZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pXG4gICAgLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIGBhcmd1bWVudHMgZm9yd2FyZGVkIHRvICR7bmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5wYXNzVGhyb3VnaE9wdGlvbnMoKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkUHJvZ3JhbSA9IGF3YWl0IGxvYWQoKTtcbiAgICAgIGF3YWl0IGJ1aWxkUHJvZ3JhbShgJHtwcm9ncmFtLm5hbWUoKX0gJHtuYW1lfWApLnBhcnNlQXN5bmMoYXJncywgeyBmcm9tOiBcInVzZXJcIiB9KTtcbiAgICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiRGF0YWJyaWNrcyBkZXZlbG9wZXIgdG9vbHM6IHdvcmtzcGFjZSBsaWZlY3ljbGUsIEFwcEtpdCBlbnYsIGF1dGgsIHR1bm5lbHMsIGFuZCBsb2NhbCBwcm94aWVzXCIsXG4gICAgKVxuICAgIC5lbmFibGVQb3NpdGlvbmFsT3B0aW9ucygpXG4gICAgLnNob3dIZWxwQWZ0ZXJFcnJvcigpXG4gICAgLmhlbHBPcHRpb24oXCItaCwgLS1oZWxwXCIsIGBTaG93ICR7bmFtZX0gaGVscGApO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImRldlwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkJvb3RzdHJhcCBvciByZXBhaXIgYSBkYngtdG9vbHMgd29ya3NwYWNlLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuXCIpXG4gICAgLmFyZ3VtZW50KFwiW3Byb2plbkFyZ3MuLi5dXCIsIFwicHJvamVuIHRhc2sgYW5kIGFyZ3VtZW50cyAoZS5nLiBzeW5jIC0td2F0Y2gpXCIpXG4gICAgLmFsbG93VW5rbm93bk9wdGlvbigpXG4gICAgLmFsbG93RXhjZXNzQXJndW1lbnRzKClcbiAgICAuaGVscE9wdGlvbihmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChwcm9qZW5BcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgYXdhaXQgcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzKTtcbiAgICB9KTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhcHBraXRcIixcbiAgICBcIkFwcEtpdCBoZWxwZXJzIChlbnY6IHByaW50IHRoZSBlbnZpcm9ubWVudCBhbiBBcHBLaXQgYXBwIHJlc29sdmVzKVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhdXRoXCIsXG4gICAgXCJBdXRoZW50aWNhdGUgdG8gRGF0YWJyaWNrcyBhbmQgbWFuYWdlIE9BdXRoIHRva2Vuc1wiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2F1dGgvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwidHVubmVsXCIsXG4gICAgXCJSdW4gYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggYW4gZW1haWwtT1RQIGdhdGVcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi90dW5uZWwvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwibGFrZWJhc2UtcHJveHlcIixcbiAgICBcIlJ1biB0aGUgTm9kZSBEYXRhYnJpY2tzIExha2ViYXNlIFBvc3RncmVTUUwgcHJveHlcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9sYWtlYmFzZS1wcm94eS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJtb2RlbC1nYXRld2F5XCIsXG4gICAgXCJSdW4gdGhlIGZvcmVncm91bmQgQXBwS2l0IERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL21vZGVsLWdhdGV3YXkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ2VuaWVcIixcbiAgICBcIlJ1biBtYW5hZ2VkIEdlbmllIENvZGUgdGhyb3VnaCBhIGxvY2FsIERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2dlbmllLWNvZGUvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ3JhcGhpdGlcIixcbiAgICBcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9ncmFwaGl0aS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBjb21wbGV0ZSBjb21tYW5kIHRyZWUgdXNlZCBmb3IgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGREb2N1bWVudGF0aW9uUHJvZ3JhbShuYW1lOiBzdHJpbmcgPSBQUk9HUkFNX05BTUVTWzBdKTogUHJvbWlzZTxDb21tYW5kPiB7XG4gIGNvbnN0IHByb2dyYW0gPSBidWlsZFByb2dyYW0obmFtZSk7XG4gIGNvbnN0IGNoaWxkcmVuID0gW1xuICAgIChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImFwcGtpdFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9hdXRoL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiYXV0aFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi90dW5uZWwvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJ0dW5uZWxcIiksXG4gICAgKGF3YWl0IGltcG9ydChcIi4vbGFrZWJhc2UtcHJveHkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJsYWtlYmFzZS1wcm94eVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9tb2RlbC1nYXRld2F5L2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwibW9kZWwtZ2F0ZXdheVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9nZW5pZS1jb2RlL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiZ2VuaWVcIiksXG4gICAgKGF3YWl0IGltcG9ydChcIi4vZ3JhcGhpdGkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJncmFwaGl0aVwiKSxcbiAgXTtcbiAgKHByb2dyYW0uY29tbWFuZHMgYXMgQ29tbWFuZFtdKS5zcGxpY2UoMSwgcHJvZ3JhbS5jb21tYW5kcy5sZW5ndGggLSAxKTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikgcHJvZ3JhbS5hZGRDb21tYW5kKGNoaWxkKTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbi8qKlxuICogUHJvZ3JhbSBuYW1lIGZvciBoZWxwIG91dHB1dDogd2hpY2hldmVyIGJpbiB0aGUgdXNlciBhY3R1YWxseSB0eXBlZCwgc29cbiAqIGBkYngtdG9vbHMgLS1oZWxwYCBkb2Vzbid0IGRvY3VtZW50IGl0c2VsZiBhcyBgZGJ4YC4gRmFsbHMgYmFjayB0byBgZGJ4YC5cbiAqL1xuZnVuY3Rpb24gcHJvZ3JhbU5hbWUoYXJndjogc3RyaW5nW10pOiBzdHJpbmcge1xuICBjb25zdCBpbnZva2VkID0gYXJndlsxXSA/IGJhc2VuYW1lKGFyZ3ZbMV0pLnJlcGxhY2UoL1xcLig/OltjbV0/W2p0XXMpJC8sIFwiXCIpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gUFJPR1JBTV9OQU1FUy5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZSA9PT0gaW52b2tlZCkgPz8gUFJPR1JBTV9OQU1FU1swXTtcbn1cblxuLyoqIFBhcnNlIGBhcmd2YCAoYSBgcHJvY2Vzcy5hcmd2YCkgYW5kIHJ1biB0aGUgbWF0Y2hpbmcgY29tbWFuZC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5DbGkoYXJndjogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYnVpbGRQcm9ncmFtKHByb2dyYW1OYW1lKGFyZ3YpKS5wYXJzZUFzeW5jKGFyZ3YpO1xufVxuIl19
@@ -15,19 +15,19 @@ export interface WriteGenieCodeConfigOptions {
15
15
  profile: string;
16
16
  projectDirectory: string;
17
17
  }
18
- /** Stable persistent home for one exact profile-model pairing. */
19
- export interface GenieCodePairingHome {
18
+ /** Stable persistent home for one exact Databricks profile. */
19
+ export interface GenieCodeProfileHome {
20
20
  configPath: string;
21
21
  home: string;
22
22
  name: string;
23
23
  }
24
- /** Persistent pairing home and invocation-specific provider overlay. */
25
- export interface GenieCodeHome extends GenieCodePairingHome {
24
+ /** Persistent profile home and invocation-specific model-provider overlay. */
25
+ export interface GenieCodeHome extends GenieCodeProfileHome {
26
26
  overlayName: string;
27
27
  overlayPath: string;
28
28
  }
29
- /** Derive the stable home for one exact profile-model pair. */
30
- export declare function genieCodeHome(profile: string, model: string, homeDirectory?: string): GenieCodePairingHome;
29
+ /** Derive the stable home for one exact Databricks profile. */
30
+ export declare function genieCodeHome(profile: string, homeDirectory?: string): GenieCodeProfileHome;
31
31
  /** Render the persistent profile-model configuration. */
32
32
  export declare function genieCodeBaseConfig(options: WriteGenieCodeConfigOptions, existingProjects?: Readonly<Record<string, unknown>>): GenieCodeBaseConfig;
33
33
  /** Render the invocation-specific guarded provider configuration. */
@@ -10,17 +10,14 @@ import { dirname, join, resolve } from "node:path";
10
10
  import { withFileLock } from "@dbx-tools/core/file-lock";
11
11
  import { object } from "@dbx-tools/shared-core";
12
12
  import { GenieCodeBaseConfigSchema, GenieCodeConfigSchema, GenieCodeProviderOverlaySchema, } from "@dbx-tools/shared-genie-code/config";
13
- import { genieCodePairingName } from "@dbx-tools/shared-genie-code/options";
13
+ import { genieCodeHomeName } from "@dbx-tools/shared-genie-code/options";
14
14
  import { parse, stringify } from "smol-toml";
15
15
  /** Provider identifier written to the base and invocation overlay configurations. */
16
16
  export const GENIE_CODE_GATEWAY_PROVIDER = "dbx_tools_model_gateway";
17
- /** Derive the stable home for one exact profile-model pair. */
18
- export function genieCodeHome(profile, model, homeDirectory = homedir()) {
19
- const digest = createHash("sha256")
20
- .update(JSON.stringify([profile, model]))
21
- .digest("hex")
22
- .slice(0, 12);
23
- const name = genieCodePairingName({ profile, model, digest });
17
+ /** Derive the stable home for one exact Databricks profile. */
18
+ export function genieCodeHome(profile, homeDirectory = homedir()) {
19
+ const digest = createHash("sha256").update(profile).digest("hex").slice(0, 12);
20
+ const name = genieCodeHomeName({ profile, digest });
24
21
  const home = join(homeDirectory, ".dbx-tools", "genie", "profiles", name);
25
22
  return { name, home, configPath: join(home, "config.toml") };
26
23
  }
@@ -28,8 +25,6 @@ export function genieCodeHome(profile, model, homeDirectory = homedir()) {
28
25
  export function genieCodeBaseConfig(options, existingProjects = {}) {
29
26
  const projects = Object.fromEntries(Object.entries(existingProjects).filter(([, value]) => object.isRecord(value) && value.trust_level === "trusted"));
30
27
  return GenieCodeBaseConfigSchema.parse({
31
- model_provider: GENIE_CODE_GATEWAY_PROVIDER,
32
- model: options.model,
33
28
  databricks_profile: options.profile,
34
29
  projects: {
35
30
  ...projects,
@@ -37,16 +32,13 @@ export function genieCodeBaseConfig(options, existingProjects = {}) {
37
32
  trust_level: "trusted",
38
33
  },
39
34
  },
40
- tui: {
41
- model_availability_nux: {
42
- [options.model]: 1,
43
- },
44
- },
45
35
  });
46
36
  }
47
37
  /** Render the invocation-specific guarded provider configuration. */
48
38
  export function genieCodeProviderOverlay(options) {
49
39
  return GenieCodeProviderOverlaySchema.parse({
40
+ model_provider: GENIE_CODE_GATEWAY_PROVIDER,
41
+ model: options.model,
50
42
  model_providers: {
51
43
  [GENIE_CODE_GATEWAY_PROVIDER]: {
52
44
  name: "dbx-tools model gateway",
@@ -60,6 +52,11 @@ export function genieCodeProviderOverlay(options) {
60
52
  },
61
53
  },
62
54
  },
55
+ tui: {
56
+ model_availability_nux: {
57
+ [options.model]: 1,
58
+ },
59
+ },
63
60
  });
64
61
  }
65
62
  /** Render the merged configuration used by validation and tests. */
@@ -93,7 +90,7 @@ async function writePrivateToml(path, value) {
93
90
  }
94
91
  /** Update the persistent base config and write one private invocation overlay. */
95
92
  export async function writeGenieCodeConfig(options) {
96
- const base = genieCodeHome(options.profile, options.model, options.homeDirectory);
93
+ const base = genieCodeHome(options.profile, options.homeDirectory);
97
94
  const overlayName = `dbx-${randomUUID().replaceAll("-", "")}`;
98
95
  const destination = {
99
96
  ...base,
@@ -108,4 +105,4 @@ export async function writeGenieCodeConfig(options) {
108
105
  await writePrivateToml(destination.overlayPath, genieCodeProviderOverlay(options));
109
106
  return destination;
110
107
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmllLWNvZGUvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUkvQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQztBQXlCckUsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQWUsRUFDZixLQUFhLEVBQ2IsZ0JBQXdCLE9BQU8sRUFBRTtJQUVqQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDeEMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNiLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEIsTUFBTSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFFRCx5REFBeUQ7QUFDekQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxPQUFvQyxFQUNwQyxtQkFBc0QsRUFBRTtJQUV4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUNyQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FDekUsQ0FDRixDQUFDO0lBQ0YsT0FBTyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFDckMsY0FBYyxFQUFFLDJCQUEyQjtRQUMzQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDbkMsUUFBUSxFQUFFO1lBQ1IsR0FBRyxRQUFRO1lBQ1gsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRTtnQkFDbkMsV0FBVyxFQUFFLFNBQVM7YUFDdkI7U0FDRjtRQUNELEdBQUcsRUFBRTtZQUNILHNCQUFzQixFQUFFO2dCQUN0QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsT0FBb0M7SUFFcEMsT0FBTyw4QkFBOEIsQ0FBQyxLQUFLLENBQUM7UUFDMUMsZUFBZSxFQUFFO1lBQ2YsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQ2hDLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixZQUFZLEVBQUU7b0JBQ1osYUFBYSxFQUFFLFVBQVUsT0FBTyxDQUFDLFdBQVcsRUFBRTtvQkFDOUMsVUFBVSxFQUFFLE9BQU87aUJBQ3BCO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxvRUFBb0U7QUFDcEUsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUFvQztJQUNsRSxPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUNqQyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztRQUMvQixHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztLQUNyQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQixDQUFDLElBQVk7SUFDMUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BGLE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWM7SUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7QUFDSCxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLE9BQW9DO0lBRXBDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sV0FBVyxHQUFHLE9BQU8sVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzlELE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEdBQUcsSUFBSTtRQUNQLFdBQVc7UUFDWCxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLGNBQWMsQ0FBQztLQUMzRCxDQUFDO0lBQ0YsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sWUFBWSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzNFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlIG9uZSBwZXJzaXN0ZW50IEdlbmllIENvZGUgaG9tZSBwZXIgZXhhY3QgcHJvZmlsZS1tb2RlbCBwYWlyaW5nLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoLCByYW5kb21VVUlEIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBjaG1vZCwgbWtkaXIsIHJlYWRGaWxlLCByZW5hbWUsIHJtLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgd2l0aEZpbGVMb2NrIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZS9maWxlLWxvY2tcIjtcbmltcG9ydCB7IG9iamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLFxuICBHZW5pZUNvZGVDb25maWdTY2hlbWEsXG4gIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYSxcbiAgdHlwZSBHZW5pZUNvZGVCYXNlQ29uZmlnLFxuICB0eXBlIEdlbmllQ29kZUNvbmZpZyxcbiAgdHlwZSBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXksXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZS1jb2RlL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2VuaWVDb2RlUGFpcmluZ05hbWUgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWUtY29kZS9vcHRpb25zXCI7XG5pbXBvcnQgeyBwYXJzZSwgc3RyaW5naWZ5IH0gZnJvbSBcInNtb2wtdG9tbFwiO1xuXG4vKiogUHJvdmlkZXIgaWRlbnRpZmllciB3cml0dGVuIHRvIHRoZSBiYXNlIGFuZCBpbnZvY2F0aW9uIG92ZXJsYXkgY29uZmlndXJhdGlvbnMuICovXG5leHBvcnQgY29uc3QgR0VOSUVfQ09ERV9HQVRFV0FZX1BST1ZJREVSID0gXCJkYnhfdG9vbHNfbW9kZWxfZ2F0ZXdheVwiO1xuXG4vKiogSW5wdXRzIHVzZWQgdG8gdXBkYXRlIGEgcGVyc2lzdGVudCBob21lIGFuZCBjcmVhdGUgb25lIGludm9jYXRpb24gb3ZlcmxheS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zIHtcbiAgYmVhcmVyVG9rZW46IHN0cmluZztcbiAgZ2F0ZXdheUJhc2VVcmw6IHN0cmluZztcbiAgaG9tZURpcmVjdG9yeT86IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbiAgcHJvZmlsZTogc3RyaW5nO1xuICBwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKiBTdGFibGUgcGVyc2lzdGVudCBob21lIGZvciBvbmUgZXhhY3QgcHJvZmlsZS1tb2RlbCBwYWlyaW5nLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVQYWlyaW5nSG9tZSB7XG4gIGNvbmZpZ1BhdGg6IHN0cmluZztcbiAgaG9tZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBQZXJzaXN0ZW50IHBhaXJpbmcgaG9tZSBhbmQgaW52b2NhdGlvbi1zcGVjaWZpYyBwcm92aWRlciBvdmVybGF5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVIb21lIGV4dGVuZHMgR2VuaWVDb2RlUGFpcmluZ0hvbWUge1xuICBvdmVybGF5TmFtZTogc3RyaW5nO1xuICBvdmVybGF5UGF0aDogc3RyaW5nO1xufVxuXG4vKiogRGVyaXZlIHRoZSBzdGFibGUgaG9tZSBmb3Igb25lIGV4YWN0IHByb2ZpbGUtbW9kZWwgcGFpci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZUNvZGVIb21lKFxuICBwcm9maWxlOiBzdHJpbmcsXG4gIG1vZGVsOiBzdHJpbmcsXG4gIGhvbWVEaXJlY3Rvcnk6IHN0cmluZyA9IGhvbWVkaXIoKSxcbik6IEdlbmllQ29kZVBhaXJpbmdIb21lIHtcbiAgY29uc3QgZGlnZXN0ID0gY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgIC51cGRhdGUoSlNPTi5zdHJpbmdpZnkoW3Byb2ZpbGUsIG1vZGVsXSkpXG4gICAgLmRpZ2VzdChcImhleFwiKVxuICAgIC5zbGljZSgwLCAxMik7XG4gIGNvbnN0IG5hbWUgPSBnZW5pZUNvZGVQYWlyaW5nTmFtZSh7IHByb2ZpbGUsIG1vZGVsLCBkaWdlc3QgfSk7XG4gIGNvbnN0IGhvbWUgPSBqb2luKGhvbWVEaXJlY3RvcnksIFwiLmRieC10b29sc1wiLCBcImdlbmllXCIsIFwicHJvZmlsZXNcIiwgbmFtZSk7XG4gIHJldHVybiB7IG5hbWUsIGhvbWUsIGNvbmZpZ1BhdGg6IGpvaW4oaG9tZSwgXCJjb25maWcudG9tbFwiKSB9O1xufVxuXG4vKiogUmVuZGVyIHRoZSBwZXJzaXN0ZW50IHByb2ZpbGUtbW9kZWwgY29uZmlndXJhdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZUNvZGVCYXNlQ29uZmlnKFxuICBvcHRpb25zOiBXcml0ZUdlbmllQ29kZUNvbmZpZ09wdGlvbnMsXG4gIGV4aXN0aW5nUHJvamVjdHM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IHt9LFxuKTogR2VuaWVDb2RlQmFzZUNvbmZpZyB7XG4gIGNvbnN0IHByb2plY3RzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKGV4aXN0aW5nUHJvamVjdHMpLmZpbHRlcihcbiAgICAgIChbLCB2YWx1ZV0pID0+IG9iamVjdC5pc1JlY29yZCh2YWx1ZSkgJiYgdmFsdWUudHJ1c3RfbGV2ZWwgPT09IFwidHJ1c3RlZFwiLFxuICAgICksXG4gICk7XG4gIHJldHVybiBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLnBhcnNlKHtcbiAgICBtb2RlbF9wcm92aWRlcjogR0VOSUVfQ09ERV9HQVRFV0FZX1BST1ZJREVSLFxuICAgIG1vZGVsOiBvcHRpb25zLm1vZGVsLFxuICAgIGRhdGFicmlja3NfcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgIHByb2plY3RzOiB7XG4gICAgICAuLi5wcm9qZWN0cyxcbiAgICAgIFtyZXNvbHZlKG9wdGlvbnMucHJvamVjdERpcmVjdG9yeSldOiB7XG4gICAgICAgIHRydXN0X2xldmVsOiBcInRydXN0ZWRcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0dWk6IHtcbiAgICAgIG1vZGVsX2F2YWlsYWJpbGl0eV9udXg6IHtcbiAgICAgICAgW29wdGlvbnMubW9kZWxdOiAxLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIFJlbmRlciB0aGUgaW52b2NhdGlvbi1zcGVjaWZpYyBndWFyZGVkIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5KFxuICBvcHRpb25zOiBXcml0ZUdlbmllQ29kZUNvbmZpZ09wdGlvbnMsXG4pOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXkge1xuICByZXR1cm4gR2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5U2NoZW1hLnBhcnNlKHtcbiAgICBtb2RlbF9wcm92aWRlcnM6IHtcbiAgICAgIFtHRU5JRV9DT0RFX0dBVEVXQVlfUFJPVklERVJdOiB7XG4gICAgICAgIG5hbWU6IFwiZGJ4LXRvb2xzIG1vZGVsIGdhdGV3YXlcIixcbiAgICAgICAgYmFzZV91cmw6IG9wdGlvbnMuZ2F0ZXdheUJhc2VVcmwsXG4gICAgICAgIHdpcmVfYXBpOiBcInJlc3BvbnNlc1wiLFxuICAgICAgICByZXF1aXJlc19vcGVuYWlfYXV0aDogZmFsc2UsXG4gICAgICAgIHN1cHBvcnRzX3dlYnNvY2tldHM6IGZhbHNlLFxuICAgICAgICBodHRwX2hlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7b3B0aW9ucy5iZWFyZXJUb2tlbn1gLFxuICAgICAgICAgIE9yaWdpbmF0b3I6IFwiY29kZXhcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBSZW5kZXIgdGhlIG1lcmdlZCBjb25maWd1cmF0aW9uIHVzZWQgYnkgdmFsaWRhdGlvbiBhbmQgdGVzdHMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDb2RlQ29uZmlnKG9wdGlvbnM6IFdyaXRlR2VuaWVDb2RlQ29uZmlnT3B0aW9ucyk6IEdlbmllQ29kZUNvbmZpZyB7XG4gIHJldHVybiBHZW5pZUNvZGVDb25maWdTY2hlbWEucGFyc2Uoe1xuICAgIC4uLmdlbmllQ29kZUJhc2VDb25maWcob3B0aW9ucyksXG4gICAgLi4uZ2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5KG9wdGlvbnMpLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhpc3RpbmdQcm9qZWN0cyhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZShhd2FpdCByZWFkRmlsZShwYXRoLCBcInV0ZjhcIikpO1xuICAgIHJldHVybiBvYmplY3QuaXNSZWNvcmQodmFsdWUucHJvamVjdHMpID8gdmFsdWUucHJvamVjdHMgOiB7fTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBcImNvZGVcIiBpbiBlcnJvciAmJiBlcnJvci5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm4ge307XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVQcml2YXRlVG9tbChwYXRoOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YWdlZCA9IGpvaW4oZGlybmFtZShwYXRoKSwgYC4ke3JhbmRvbVVVSUQoKX0udG9tbGApO1xuICB0cnkge1xuICAgIGF3YWl0IHdyaXRlRmlsZShzdGFnZWQsIHN0cmluZ2lmeSh2YWx1ZSksIHsgbW9kZTogMG82MDAgfSk7XG4gICAgYXdhaXQgY2htb2Qoc3RhZ2VkLCAwbzYwMCk7XG4gICAgYXdhaXQgcmVuYW1lKHN0YWdlZCwgcGF0aCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcm0oc3RhZ2VkLCB7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKiBVcGRhdGUgdGhlIHBlcnNpc3RlbnQgYmFzZSBjb25maWcgYW5kIHdyaXRlIG9uZSBwcml2YXRlIGludm9jYXRpb24gb3ZlcmxheS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUdlbmllQ29kZUNvbmZpZyhcbiAgb3B0aW9uczogV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zLFxuKTogUHJvbWlzZTxHZW5pZUNvZGVIb21lPiB7XG4gIGNvbnN0IGJhc2UgPSBnZW5pZUNvZGVIb21lKG9wdGlvbnMucHJvZmlsZSwgb3B0aW9ucy5tb2RlbCwgb3B0aW9ucy5ob21lRGlyZWN0b3J5KTtcbiAgY29uc3Qgb3ZlcmxheU5hbWUgPSBgZGJ4LSR7cmFuZG9tVVVJRCgpLnJlcGxhY2VBbGwoXCItXCIsIFwiXCIpfWA7XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0ge1xuICAgIC4uLmJhc2UsXG4gICAgb3ZlcmxheU5hbWUsXG4gICAgb3ZlcmxheVBhdGg6IGpvaW4oYmFzZS5ob21lLCBgJHtvdmVybGF5TmFtZX0uY29uZmlnLnRvbWxgKSxcbiAgfTtcbiAgYXdhaXQgbWtkaXIoZGVzdGluYXRpb24uaG9tZSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdpdGhGaWxlTG9jayhbXCJnZW5pZS1jb2RlLWNvbmZpZ1wiLCBkZXN0aW5hdGlvbi5jb25maWdQYXRoXSwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZXhpc3RpbmdQcm9qZWN0cyhkZXN0aW5hdGlvbi5jb25maWdQYXRoKTtcbiAgICBhd2FpdCB3cml0ZVByaXZhdGVUb21sKGRlc3RpbmF0aW9uLmNvbmZpZ1BhdGgsIGdlbmllQ29kZUJhc2VDb25maWcob3B0aW9ucywgcHJvamVjdHMpKTtcbiAgfSk7XG4gIGF3YWl0IHdyaXRlUHJpdmF0ZVRvbWwoZGVzdGluYXRpb24ub3ZlcmxheVBhdGgsIGdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheShvcHRpb25zKSk7XG4gIHJldHVybiBkZXN0aW5hdGlvbjtcbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmllLWNvZGUvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUkvQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQztBQXlCckUsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQWUsRUFDZixnQkFBd0IsT0FBTyxFQUFFO0lBRWpDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0UsTUFBTSxJ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QUFFLEtBQUssSUFBSSxFQUFFO1FBQzNFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlIG9uZSBwZXJzaXN0ZW50IEdlbmllIENvZGUgaG9tZSBwZXIgZXhhY3QgcHJvZmlsZS1tb2RlbCBwYWlyaW5nLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoLCByYW5kb21VVUlEIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBjaG1vZCwgbWtkaXIsIHJlYWRGaWxlLCByZW5hbWUsIHJtLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgd2l0aEZpbGVMb2NrIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZS9maWxlLWxvY2tcIjtcbmltcG9ydCB7IG9iamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLFxuICBHZW5pZUNvZGVDb25maWdTY2hlbWEsXG4gIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYSxcbiAgdHlwZSBHZW5pZUNvZGVCYXNlQ29uZmlnLFxuICB0eXBlIEdlbmllQ29kZUNvbmZpZyxcbiAgdHlwZSBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXksXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZS1jb2RlL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2VuaWVDb2RlSG9tZU5hbWUgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWUtY29kZS9vcHRpb25zXCI7XG5pbXBvcnQgeyBwYXJzZSwgc3RyaW5naWZ5IH0gZnJvbSBcInNtb2wtdG9tbFwiO1xuXG4vKiogUHJvdmlkZXIgaWRlbnRpZmllciB3cml0dGVuIHRvIHRoZSBiYXNlIGFuZCBpbnZvY2F0aW9uIG92ZXJsYXkgY29uZmlndXJhdGlvbnMuICovXG5leHBvcnQgY29uc3QgR0VOSUVfQ09ERV9HQVRFV0FZX1BST1ZJREVSID0gXCJkYnhfdG9vbHNfbW9kZWxfZ2F0ZXdheVwiO1xuXG4vKiogSW5wdXRzIHVzZWQgdG8gdXBkYXRlIGEgcGVyc2lzdGVudCBob21lIGFuZCBjcmVhdGUgb25lIGludm9jYXRpb24gb3ZlcmxheS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zIHtcbiAgYmVhcmVyVG9rZW46IHN0cmluZztcbiAgZ2F0ZXdheUJhc2VVcmw6IHN0cmluZztcbiAgaG9tZURpcmVjdG9yeT86IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbiAgcHJvZmlsZTogc3RyaW5nO1xuICBwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKiBTdGFibGUgcGVyc2lzdGVudCBob21lIGZvciBvbmUgZXhhY3QgRGF0YWJyaWNrcyBwcm9maWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVQcm9maWxlSG9tZSB7XG4gIGNvbmZpZ1BhdGg6IHN0cmluZztcbiAgaG9tZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBQZXJzaXN0ZW50IHByb2ZpbGUgaG9tZSBhbmQgaW52b2NhdGlvbi1zcGVjaWZpYyBtb2RlbC1wcm92aWRlciBvdmVybGF5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVIb21lIGV4dGVuZHMgR2VuaWVDb2RlUHJvZmlsZUhvbWUge1xuICBvdmVybGF5TmFtZTogc3RyaW5nO1xuICBvdmVybGF5UGF0aDogc3RyaW5nO1xufVxuXG4vKiogRGVyaXZlIHRoZSBzdGFibGUgaG9tZSBmb3Igb25lIGV4YWN0IERhdGFicmlja3MgcHJvZmlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZUNvZGVIb21lKFxuICBwcm9maWxlOiBzdHJpbmcsXG4gIGhvbWVEaXJlY3Rvcnk6IHN0cmluZyA9IGhvbWVkaXIoKSxcbik6IEdlbmllQ29kZVByb2ZpbGVIb21lIHtcbiAgY29uc3QgZGlnZXN0ID0gY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUocHJvZmlsZSkuZGlnZXN0KFwiaGV4XCIpLnNsaWNlKDAsIDEyKTtcbiAgY29uc3QgbmFtZSA9IGdlbmllQ29kZUhvbWVOYW1lKHsgcHJvZmlsZSwgZGlnZXN0IH0pO1xuICBjb25zdCBob21lID0gam9pbihob21lRGlyZWN0b3J5LCBcIi5kYngtdG9vbHNcIiwgXCJnZW5pZVwiLCBcInByb2ZpbGVzXCIsIG5hbWUpO1xuICByZXR1cm4geyBuYW1lLCBob21lLCBjb25maWdQYXRoOiBqb2luKGhvbWUsIFwiY29uZmlnLnRvbWxcIikgfTtcbn1cblxuLyoqIFJlbmRlciB0aGUgcGVyc2lzdGVudCBwcm9maWxlLW1vZGVsIGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDb2RlQmFzZUNvbmZpZyhcbiAgb3B0aW9uczogV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zLFxuICBleGlzdGluZ1Byb2plY3RzOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7fSxcbik6IEdlbmllQ29kZUJhc2VDb25maWcge1xuICBjb25zdCBwcm9qZWN0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhleGlzdGluZ1Byb2plY3RzKS5maWx0ZXIoXG4gICAgICAoWywgdmFsdWVdKSA9PiBvYmplY3QuaXNSZWNvcmQodmFsdWUpICYmIHZhbHVlLnRydXN0X2xldmVsID09PSBcInRydXN0ZWRcIixcbiAgICApLFxuICApO1xuICByZXR1cm4gR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYS5wYXJzZSh7XG4gICAgZGF0YWJyaWNrc19wcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgcHJvamVjdHM6IHtcbiAgICAgIC4uLnByb2plY3RzLFxuICAgICAgW3Jlc29sdmUob3B0aW9ucy5wcm9qZWN0RGlyZWN0b3J5KV06IHtcbiAgICAgICAgdHJ1c3RfbGV2ZWw6IFwidHJ1c3RlZFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIFJlbmRlciB0aGUgaW52b2NhdGlvbi1zcGVjaWZpYyBndWFyZGVkIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5KFxuICBvcHRpb25zOiBXcml0ZUdlbmllQ29kZUNvbmZpZ09wdGlvbnMsXG4pOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXkge1xuICByZXR1cm4gR2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5U2NoZW1hLnBhcnNlKHtcbiAgICBtb2RlbF9wcm92aWRlcjogR0VOSUVfQ09ERV9HQVRFV0FZX1BST1ZJREVSLFxuICAgIG1vZGVsOiBvcHRpb25zLm1vZGVsLFxuICAgIG1vZGVsX3Byb3ZpZGVyczoge1xuICAgICAgW0dFTklFX0NPREVfR0FURVdBWV9QUk9WSURFUl06IHtcbiAgICAgICAgbmFtZTogXCJkYngtdG9vbHMgbW9kZWwgZ2F0ZXdheVwiLFxuICAgICAgICBiYXNlX3VybDogb3B0aW9ucy5nYXRld2F5QmFzZVVybCxcbiAgICAgICAgd2lyZV9hcGk6IFwicmVzcG9uc2VzXCIsXG4gICAgICAgIHJlcXVpcmVzX29wZW5haV9hdXRoOiBmYWxzZSxcbiAgICAgICAgc3VwcG9ydHNfd2Vic29ja2V0czogZmFsc2UsXG4gICAgICAgIGh0dHBfaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtvcHRpb25zLmJlYXJlclRva2VufWAsXG4gICAgICAgICAgT3JpZ2luYXRvcjogXCJjb2RleFwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHR1aToge1xuICAgICAgbW9kZWxfYXZhaWxhYmlsaXR5X251eDoge1xuICAgICAgICBbb3B0aW9ucy5tb2RlbF06IDEsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogUmVuZGVyIHRoZSBtZXJnZWQgY29uZmlndXJhdGlvbiB1c2VkIGJ5IHZhbGlkYXRpb24gYW5kIHRlc3RzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmllQ29kZUNvbmZpZyhvcHRpb25zOiBXcml0ZUdlbmllQ29kZUNvbmZpZ09wdGlvbnMpOiBHZW5pZUNvZGVDb25maWcge1xuICByZXR1cm4gR2VuaWVDb2RlQ29uZmlnU2NoZW1hLnBhcnNlKHtcbiAgICAuLi5nZW5pZUNvZGVCYXNlQ29uZmlnKG9wdGlvbnMpLFxuICAgIC4uLmdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheShvcHRpb25zKSxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4aXN0aW5nUHJvamVjdHMocGF0aDogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyc2UoYXdhaXQgcmVhZEZpbGUocGF0aCwgXCJ1dGY4XCIpKTtcbiAgICByZXR1cm4gb2JqZWN0LmlzUmVjb3JkKHZhbHVlLnByb2plY3RzKSA/IHZhbHVlLnByb2plY3RzIDoge307XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgXCJjb2RlXCIgaW4gZXJyb3IgJiYgZXJyb3IuY29kZSA9PT0gXCJFTk9FTlRcIikgcmV0dXJuIHt9O1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlUHJpdmF0ZVRvbWwocGF0aDogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdGFnZWQgPSBqb2luKGRpcm5hbWUocGF0aCksIGAuJHtyYW5kb21VVUlEKCl9LnRvbWxgKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB3cml0ZUZpbGUoc3RhZ2VkLCBzdHJpbmdpZnkodmFsdWUpLCB7IG1vZGU6IDBvNjAwIH0pO1xuICAgIGF3YWl0IGNobW9kKHN0YWdlZCwgMG82MDApO1xuICAgIGF3YWl0IHJlbmFtZShzdGFnZWQsIHBhdGgpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJtKHN0YWdlZCwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKiogVXBkYXRlIHRoZSBwZXJzaXN0ZW50IGJhc2UgY29uZmlnIGFuZCB3cml0ZSBvbmUgcHJpdmF0ZSBpbnZvY2F0aW9uIG92ZXJsYXkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVHZW5pZUNvZGVDb25maWcoXG4gIG9wdGlvbnM6IFdyaXRlR2VuaWVDb2RlQ29uZmlnT3B0aW9ucyxcbik6IFByb21pc2U8R2VuaWVDb2RlSG9tZT4ge1xuICBjb25zdCBiYXNlID0gZ2VuaWVDb2RlSG9tZShvcHRpb25zLnByb2ZpbGUsIG9wdGlvbnMuaG9tZURpcmVjdG9yeSk7XG4gIGNvbnN0IG92ZXJsYXlOYW1lID0gYGRieC0ke3JhbmRvbVVVSUQoKS5yZXBsYWNlQWxsKFwiLVwiLCBcIlwiKX1gO1xuICBjb25zdCBkZXN0aW5hdGlvbiA9IHtcbiAgICAuLi5iYXNlLFxuICAgIG92ZXJsYXlOYW1lLFxuICAgIG92ZXJsYXlQYXRoOiBqb2luKGJhc2UuaG9tZSwgYCR7b3ZlcmxheU5hbWV9LmNvbmZpZy50b21sYCksXG4gIH07XG4gIGF3YWl0IG1rZGlyKGRlc3RpbmF0aW9uLmhvbWUsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBhd2FpdCB3aXRoRmlsZUxvY2soW1wiZ2VuaWUtY29kZS1jb25maWdcIiwgZGVzdGluYXRpb24uY29uZmlnUGF0aF0sIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0cyA9IGF3YWl0IGV4aXN0aW5nUHJvamVjdHMoZGVzdGluYXRpb24uY29uZmlnUGF0aCk7XG4gICAgYXdhaXQgd3JpdGVQcml2YXRlVG9tbChkZXN0aW5hdGlvbi5jb25maWdQYXRoLCBnZW5pZUNvZGVCYXNlQ29uZmlnKG9wdGlvbnMsIHByb2plY3RzKSk7XG4gIH0pO1xuICBhd2FpdCB3cml0ZVByaXZhdGVUb21sKGRlc3RpbmF0aW9uLm92ZXJsYXlQYXRoLCBnZW5pZUNvZGVQcm92aWRlck92ZXJsYXkob3B0aW9ucykpO1xuICByZXR1cm4gZGVzdGluYXRpb247XG59XG4iXX0=
@@ -6,6 +6,7 @@
6
6
  import * as auth from "@dbx-tools/auth";
7
7
  import type { BinContext } from "@dbx-tools/core/bin";
8
8
  import { type GenieCodeOptions } from "@dbx-tools/shared-genie-code/options";
9
+ import type { ModelClass } from "@dbx-tools/shared-model/contracts";
9
10
  import concurrently from "concurrently";
10
11
  import { writeGenieCodeConfig, type GenieCodeHome } from "./config.ts";
11
12
  import { installGenieCode } from "./install.ts";
@@ -18,7 +19,7 @@ export interface GenieCodeRuntimeDependencies {
18
19
  port?: number;
19
20
  }): Promise<number>;
20
21
  resolveBin(packageReference: string, binName: string): string;
21
- resolveCodexModel(model: string, profile: string): Promise<string>;
22
+ resolveCodexModel(model: string | undefined, profile: string, modelClass?: ModelClass): Promise<string>;
22
23
  supervise: typeof concurrently;
23
24
  token(): string;
24
25
  writeConfig: typeof writeGenieCodeConfig;
@@ -29,13 +29,15 @@ const DEFAULT_DEPENDENCIES = {
29
29
  writeConfig: writeGenieCodeConfig,
30
30
  };
31
31
  /** Resolve a Genie `--model` value to the Codex catalogue slug the gateway publishes. */
32
- async function resolveCodexModel(model, profile) {
32
+ async function resolveCodexModel(model, profile, modelClass) {
33
33
  const client = await workspaceClient.createWorkspaceClient({ profile });
34
34
  const target = await new DatabricksModelRegistry({ client }).resolve(model, {
35
35
  requiresTools: true,
36
+ ...(modelClass ? { modelClass } : {}),
36
37
  });
37
- if (!target)
38
- throw new Error(`Genie Code model not found: ${model}`);
38
+ if (!target) {
39
+ throw new Error(model ? `Genie Code model not found: ${model}` : "No tool-capable chat model is available");
40
+ }
39
41
  return models.codexModelSlug(target);
40
42
  }
41
43
  /** Resolve auth, installation, listener, and configuration before spawning children. */
@@ -53,6 +55,7 @@ export async function prepareGenieCodeRuntime(input = {}) {
53
55
  logger.info("preparing Genie Code runtime", {
54
56
  profile,
55
57
  model: options.model,
58
+ modelClass: options.modelClass,
56
59
  });
57
60
  const installation = await dependencies.install();
58
61
  const host = options.gatewayListen.host;
@@ -64,8 +67,12 @@ export async function prepareGenieCodeRuntime(input = {}) {
64
67
  if (requestedPort > 0 && gatewayPort !== requestedPort) {
65
68
  throw new Error(`Genie Code gateway port ${requestedPort} is already in use`);
66
69
  }
67
- const model = await dependencies.resolveCodexModel(options.model, profile);
68
- logger.info("resolved Genie Code model", { requested: options.model, model });
70
+ const model = await dependencies.resolveCodexModel(options.model, profile, options.modelClass);
71
+ logger.info("resolved Genie Code model", {
72
+ requested: options.model,
73
+ modelClass: options.modelClass,
74
+ model,
75
+ });
69
76
  const urlHost = host.includes(":") ? `[${host}]` : host;
70
77
  const gatewayBaseUrl = `http://${urlHost}:${gatewayPort}/v1`;
71
78
  const gatewayHealthUrl = `http://${urlHost}:${gatewayPort}/api/healthz`;
@@ -159,4 +166,4 @@ export async function runGenieCode(input = {}) {
159
166
  await rm(prepared.home.overlayPath, { force: true });
160
167
  }
161
168
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixHQUd4QixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFjeEMsTUFBTSxvQkFBb0IsR0FBaUM7SUFDekQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7SUFDOUMsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixJQUFJLEVBQUUsQ0FBQyxF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ekIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLE9BQU8sRUFBRSxRQUFRLENBQUMsY0FBYztRQUNoQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJO0tBQ3pCLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxDQUFDO0lBQ2YsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdXBlcnZpc2UgR2VuaWUgQ29kZSBhbmQgaXRzIGF1dGhlbnRpY2F0ZWQgbG9jYWwgbW9kZWwgZ2F0ZXdheS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IHJtIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGRlbGltaXRlciwgZGlybmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERhdGFicmlja3NNb2RlbFJlZ2lzdHJ5LCBtb2RlbHMgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0ICogYXMgYXV0aCBmcm9tIFwiQGRieC10b29scy9hdXRoXCI7XG5pbXBvcnQgeyByZXNvbHZlU2VydmljZVBhY2thZ2VCaW4gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9kZWZpbml0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IEJpbkNvbnRleHQgfSBmcm9tIFwiQGRieC10b29scy9jb3JlL2JpblwiO1xuaW1wb3J0IHsgd29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrc1wiO1xuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIHJlc29sdmVHZW5pZUNvZGVPcHRpb25zLFxuICB0eXBlIEdlbmllQ29kZU9wdGlvbnMsXG4gIHR5cGUgR2VuaWVDb2RlUnVubmVyT3B0aW9ucyxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllLWNvZGUvb3B0aW9uc1wiO1xuaW1wb3J0IGNvbmN1cnJlbnRseSBmcm9tIFwiY29uY3VycmVudGx5XCI7XG5pbXBvcnQgZ2V0UG9ydCBmcm9tIFwiZ2V0LXBvcnRcIjtcblxuaW1wb3J0IHsgd3JpdGVHZW5pZUNvZGVDb25maWcsIHR5cGUgR2VuaWVDb2RlSG9tZSB9IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgaW5zdGFsbEdlbmllQ29kZSB9IGZyb20gXCIuL2luc3RhbGwudHNcIjtcbmltcG9ydCB7IFJVTk5FUl9PUFRJT05TX0VOViB9IGZyb20gXCIuL3J1bm5lci50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiZ2VuaWUtY29kZVwiKTtcblxuLyoqIEluamVjdGFibGUgb3duZXJzIHVzZWQgdG8gcHJlcGFyZSBhbmQgc3VwZXJ2aXNlIG1hbmFnZWQgR2VuaWUgQ29kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcyB7XG4gIGNyZWF0ZUF1dGhDbGllbnQ6IHR5cGVvZiBhdXRoLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50O1xuICBpbnN0YWxsOiB0eXBlb2YgaW5zdGFsbEdlbmllQ29kZTtcbiAgcG9ydChvcHRpb25zOiB7IGhvc3Q6IHN0cmluZzsgcG9ydD86IG51bWJlciB9KTogUHJvbWlzZTxudW1iZXI+O1xuICByZXNvbHZlQmluKHBhY2thZ2VSZWZlcmVuY2U6IHN0cmluZywgYmluTmFtZTogc3RyaW5nKTogc3RyaW5nO1xuICByZXNvbHZlQ29kZXhNb2RlbChtb2RlbDogc3RyaW5nLCBwcm9maWxlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gIHN1cGVydmlzZTogdHlwZW9mIGNvbmN1cnJlbnRseTtcbiAgdG9rZW4oKTogc3RyaW5nO1xuICB3cml0ZUNvbmZpZzogdHlwZW9mIHdyaXRlR2VuaWVDb2RlQ29uZmlnO1xufVxuXG5jb25zdCBERUZBVUxUX0RFUEVOREVOQ0lFUzogR2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcyA9IHtcbiAgY3JlYXRlQXV0aENsaWVudDogYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudCxcbiAgaW5zdGFsbDogaW5zdGFsbEdlbmllQ29kZSxcbiAgcG9ydDogKHsgaG9zdCwgcG9ydCB9KSA9PiBnZXRQb3J0KHsgaG9zdCwgLi4uKHBvcnQgPyB7IHBvcnQgfSA6IHt9KSB9KSxcbiAgcmVzb2x2ZUJpbjogcmVzb2x2ZVNlcnZpY2VQYWNrYWdlQmluLFxuICByZXNvbHZlQ29kZXhNb2RlbCxcbiAgc3VwZXJ2aXNlOiBjb25jdXJyZW50bHksXG4gIHRva2VuOiAoKSA9PiByYW5kb21CeXRlcygzMikudG9TdHJpbmcoXCJiYXNlNjR1cmxcIiksXG4gIHdyaXRlQ29uZmlnOiB3cml0ZUdlbmllQ29kZUNvbmZpZyxcbn07XG5cbi8qKiBSZXNvbHZlIGEgR2VuaWUgYC0tbW9kZWxgIHZhbHVlIHRvIHRoZSBDb2RleCBjYXRhbG9ndWUgc2x1ZyB0aGUgZ2F0ZXdheSBwdWJsaXNoZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlQ29kZXhNb2RlbChtb2RlbDogc3RyaW5nLCBwcm9maWxlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjbGllbnQgPSBhd2FpdCB3b3Jrc3BhY2VDbGllbnQuY3JlYXRlV29ya3NwYWNlQ2xpZW50KHsgcHJvZmlsZSB9KTtcbiAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgbmV3IERhdGFicmlja3NNb2RlbFJlZ2lzdHJ5KHsgY2xpZW50IH0pLnJlc29sdmUobW9kZWwsIHtcbiAgICByZXF1aXJlc1Rvb2xzOiB0cnVlLFxuICB9KTtcbiAgaWYgKCF0YXJnZXQpIHRocm93IG5ldyBFcnJvcihgR2VuaWUgQ29kZSBtb2RlbCBub3QgZm91bmQ6ICR7bW9kZWx9YCk7XG4gIHJldHVybiBtb2RlbHMuY29kZXhNb2RlbFNsdWcodGFyZ2V0KTtcbn1cblxuLyoqIElucHV0cyBhY2NlcHRlZCBieSBtYW5hZ2VkIEdlbmllIENvZGUgcHJlcGFyYXRpb24gYW5kIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuR2VuaWVDb2RlT3B0aW9ucyB7XG4gIGN3ZD86IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzPzogUGFydGlhbDxHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzPjtcbiAgZ2VuaWVBcmdzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIG9wdGlvbnM/OiBHZW5pZUNvZGVPcHRpb25zO1xufVxuXG4vKiogUmVzb2x2ZWQgaW5zdGFsbGF0aW9uLCBhdXRoLCBsaXN0ZW5lciwgYW5kIGhvbWUgZm9yIG9uZSBpbnZvY2F0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWUge1xuICBiZWFyZXJUb2tlbjogc3RyaW5nO1xuICBnYXRld2F5QmFzZVVybDogc3RyaW5nO1xuICBnYXRld2F5SGVhbHRoVXJsOiBzdHJpbmc7XG4gIGdhdGV3YXlMaXN0ZW46IHN0cmluZztcbiAgZ2F0ZXdheVBvcnQ6IG51bWJlcjtcbiAgaG9tZTogR2VuaWVDb2RlSG9tZTtcbiAgaW5zdGFsbGF0aW9uOiBCaW5Db250ZXh0O1xuICBtb2RlbDogc3RyaW5nO1xuICBwcm9maWxlOiBzdHJpbmc7XG59XG5cbi8qKiBSZXNvbHZlIGF1dGgsIGluc3RhbGxhdGlvbiwgbGlzdGVuZXIsIGFuZCBjb25maWd1cmF0aW9uIGJlZm9yZSBzcGF3bmluZyBjaGlsZHJlbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmVwYXJlR2VuaWVDb2RlUnVudGltZShcbiAgaW5wdXQ6IFJ1bkdlbmllQ29kZU9wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8UHJlcGFyZWRHZW5pZUNvZGVSdW50aW1lPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLmlucHV0LmRlcGVuZGVuY2llcyB9O1xuICBjb25zdCBvcHRpb25zID0gcmVzb2x2ZUdlbmllQ29kZU9wdGlvbnMoaW5wdXQub3B0aW9ucyk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2aW5nIERhdGFicmlja3MgYXV0aGVudGljYXRpb25cIiwge1xuICAgIHJlcXVlc3RlZFByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfSk7XG4gIGNvbnN0IGF1dGhDbGllbnQgPSBhd2FpdCBkZXBlbmRlbmNpZXMuY3JlYXRlQXV0aENsaWVudChcbiAgICBvcHRpb25zLnByb2ZpbGUgPyB7IHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9IDoge30sXG4gICk7XG4gIGNvbnN0IHByb2ZpbGUgPSBhdXRoQ2xpZW50LnByb2ZpbGU7XG4gIGlmICghcHJvZmlsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmllIENvZGUgcmVxdWlyZXMgYSBjb25maWd1cmVkIERhdGFicmlja3MgcHJvZmlsZVwiKTtcbiAgfVxuICBsb2dnZXIuaW5mbyhcInByZXBhcmluZyBHZW5pZSBDb2RlIHJ1bnRpbWVcIiwge1xuICAgIHByb2ZpbGUsXG4gICAgbW9kZWw6IG9wdGlvbnMubW9kZWwsXG4gIH0pO1xuICBjb25zdCBpbnN0YWxsYXRpb24gPSBhd2FpdCBkZXBlbmRlbmNpZXMuaW5zdGFsbCgpO1xuICBjb25zdCBob3N0ID0gb3B0aW9ucy5nYXRld2F5TGlzdGVuLmhvc3Q7XG4gIGNvbnN0IHJlcXVlc3RlZFBvcnQgPSBvcHRpb25zLmdhdGV3YXlMaXN0ZW4ucG9ydDtcbiAgY29uc3QgZ2F0ZXdheVBvcnQgPSBhd2FpdCBkZXBlbmRlbmNpZXMucG9ydCh7XG4gICAgaG9zdCxcbiAgICAuLi4ocmVxdWVzdGVkUG9ydCA+IDAgPyB7IHBvcnQ6IHJlcXVlc3RlZFBvcnQgfSA6IHt9KSxcbiAgfSk7XG4gIGlmIChyZXF1ZXN0ZWRQb3J0ID4gMCAmJiBnYXRld2F5UG9ydCAhPT0gcmVxdWVzdGVkUG9ydCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgR2VuaWUgQ29kZSBnYXRld2F5IHBvcnQgJHtyZXF1ZXN0ZWRQb3J0fSBpcyBhbHJlYWR5IGluIHVzZWApO1xuICB9XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgZGVwZW5kZW5jaWVzLnJlc29sdmVDb2RleE1vZGVsKG9wdGlvbnMubW9kZWwsIHByb2ZpbGUpO1xuICBsb2dnZXIuaW5mbyhcInJlc29sdmVkIEdlbmllIENvZGUgbW9kZWxcIiwgeyByZXF1ZXN0ZWQ6IG9wdGlvbnMubW9kZWwsIG1vZGVsIH0pO1xuICBjb25zdCB1cmxIb3N0ID0gaG9zdC5pbmNsdWRlcyhcIjpcIikgPyBgWyR7aG9zdH1dYCA6IGhvc3Q7XG4gIGNvbnN0IGdhdGV3YXlCYXNlVXJsID0gYGh0dHA6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9L3YxYDtcbiAgY29uc3QgZ2F0ZXdheUhlYWx0aFVybCA9IGBodHRwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fS9hcGkvaGVhbHRoemA7XG4gIGNvbnN0IGdhdGV3YXlMaXN0ZW4gPSBgdGNwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fWA7XG4gIGNvbnN0IGJlYXJlclRva2VuID0gZGVwZW5kZW5jaWVzLnRva2VuKCk7XG4gIGNvbnN0IGhvbWUgPSBhd2FpdCBkZXBlbmRlbmNpZXMud3JpdGVDb25maWcoe1xuICAgIGJlYXJlclRva2VuLFxuICAgIGdhdGV3YXlCYXNlVXJsLFxuICAgIG1vZGVsLFxuICAgIHByb2ZpbGUsXG4gICAgcHJvamVjdERpcmVjdG9yeTogaW5wdXQuY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJlYXJlclRva2VuLFxuICAgIGdhdGV3YXlCYXNlVXJsLFxuICAgIGdhdGV3YXlIZWFsdGhVcmwsXG4gICAgZ2F0ZXdheUxpc3RlbixcbiAgICBnYXRld2F5UG9ydCxcbiAgICBob21lLFxuICAgIGluc3RhbGxhdGlvbixcbiAgICBtb2RlbCxcbiAgICBwcm9maWxlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzaGVsbEV4ZWN1dGFibGUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIikgcmV0dXJuIGBcIiR7cGF0aC5yZXBsYWNlQWxsKCdcIicsICdcIlwiJyl9XCJgO1xuICByZXR1cm4gYCcke3BhdGgucmVwbGFjZUFsbChcIidcIiwgXCInXFxcXCcnXCIpfSdgO1xufVxuXG5mdW5jdGlvbiBjaGlsZFBhdGgoLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5wYXRocy5tYXAoZGlybmFtZSksIHByb2Nlc3MuZW52LlBBVEhdLmZpbHRlcihCb29sZWFuKSldLmpvaW4oZGVsaW1pdGVyKTtcbn1cblxuLyoqIFJ1biBHZW5pZSBDb2RlIGFuZCB0aGUgbW9kZWwgZ2F0ZXdheSB1bnRpbCBlaXRoZXIgcHJvY2VzcyBleGl0cy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5HZW5pZUNvZGUoaW5wdXQ6IFJ1bkdlbmllQ29kZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSB7IC4uLkRFRkFVTFRfREVQRU5ERU5DSUVTLCAuLi5pbnB1dC5kZXBlbmRlbmNpZXMgfTtcbiAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBwcmVwYXJlR2VuaWVDb2RlUnVudGltZSh7XG4gICAgLi4uaW5wdXQsXG4gICAgZGVwZW5kZW5jaWVzLFxuICB9KTtcbiAgY29uc3QgZ2F0ZXdheUJpbiA9IGRlcGVuZGVuY2llcy5yZXNvbHZlQmluKGltcG9ydC5tZXRhLnVybCwgXCJkYngtbW9kZWwtZ2F0ZXdheVwiKTtcbiAgY29uc3QgcnVubmVyQmluID0gZGVwZW5kZW5jaWVzLnJlc29sdmVCaW4oaW1wb3J0Lm1ldGEudXJsLCBcImRieC1nZW5pZVwiKTtcbiAgY29uc3QgcGF0aCA9IGNoaWxkUGF0aChnYXRld2F5QmluLCBydW5uZXJCaW4pO1xuICBjb25zdCBydW5uZXJPcHRpb25zOiBHZW5pZUNvZGVSdW5uZXJPcHRpb25zID0ge1xuICAgIGV4ZWN1dGFibGU6IHByZXBhcmVkLmluc3RhbGxhdGlvbi5wYXRoLFxuICAgIGFyZ3VtZW50czogW1wiLXBcIiwgcHJlcGFyZWQuaG9tZS5vdmVybGF5TmFtZSwgLi4uKGlucHV0LmdlbmllQXJncyA/PyBbXSldLFxuICAgIGhvbWU6IHByZXBhcmVkLmhvbWUuaG9tZSxcbiAgICBnYXRld2F5SGVhbHRoVXJsOiBwcmVwYXJlZC5nYXRld2F5SGVhbHRoVXJsLFxuICAgIGJlYXJlclRva2VuOiBwcmVwYXJlZC5iZWFyZXJUb2tlbixcbiAgICBzdGFydHVwVGltZW91dE1zOiA2MF8wMDAsXG4gIH07XG4gIGNvbnN0IHsgcmVzdWx0IH0gPSBkZXBlbmRlbmNpZXMuc3VwZXJ2aXNlKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogc2hlbGxFeGVjdXRhYmxlKGdhdGV3YXlCaW4pLFxuICAgICAgICBuYW1lOiBcImdhdGV3YXlcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgUEFUSDogcGF0aCxcbiAgICAgICAgICBMSVNURU46IHByZXBhcmVkLmdhdGV3YXlMaXN0ZW4sXG4gICAgICAgICAgREFUQUJSSUNLU19DT05GSUdfUFJPRklMRTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICAgICAgICBEQlhfVE9PTFNfTU9ERUxfR0FURVdBWV9CRUFSRVJfVE9LRU46IHByZXBhcmVkLmJlYXJlclRva2VuLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogc2hlbGxFeGVjdXRhYmxlKHJ1bm5lckJpbiksXG4gICAgICAgIG5hbWU6IFwiZ2VuaWVcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgUEFUSDogcGF0aCxcbiAgICAgICAgICBEQVRBQlJJQ0tTX0NPTkZJR19QUk9GSUxFOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgICAgICAgIFtSVU5ORVJfT1BUSU9OU19FTlZdOiBKU09OLnN0cmluZ2lmeShydW5uZXJPcHRpb25zKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB7XG4gICAgICBjd2Q6IGlucHV0LmN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgICAgcmF3OiB0cnVlLFxuICAgICAga2lsbE90aGVyc09uOiBbXCJmYWlsdXJlXCIsIFwic3VjY2Vzc1wiXSxcbiAgICAgIGtpbGxTaWduYWw6IFwiU0lHVEVSTVwiLFxuICAgICAga2lsbFRpbWVvdXQ6IDE3XzAwMCxcbiAgICAgIHN1Y2Nlc3NDb25kaXRpb246IFwiY29tbWFuZC1nZW5pZVwiLFxuICAgIH0sXG4gICk7XG4gIGxvZ2dlci5pbmZvKFwic3RhcnRlZCBHZW5pZSBDb2RlIGFuZCBtb2RlbCBnYXRld2F5XCIsIHtcbiAgICBwcm9maWxlOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgIG1vZGVsOiBwcmVwYXJlZC5tb2RlbCxcbiAgICBnYXRld2F5OiBwcmVwYXJlZC5nYXRld2F5QmFzZVVybCxcbiAgICBob21lOiBwcmVwYXJlZC5ob21lLmhvbWUsXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IHJlc3VsdDtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBybShwcmVwYXJlZC5ob21lLm92ZXJsYXlQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixHQUd4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFrQnhDLE1BQU0sb0JBQW9CLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO0lBQzlDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLENBQUMs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QUksT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUMvQixHQUFHLEVBQUUsSUFBSTtRQUNULFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDcEMsVUFBVSxFQUFFLFNBQVM7UUFDckIsV0FBVyxFQUFFLE1BQU07UUFDbkIsZ0JBQWdCLEVBQUUsZUFBZTtLQUNsQyxDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFO1FBQ2xELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztRQUN6QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxjQUFjO1FBQ2hDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUk7S0FDekIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLENBQUM7SUFDZixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1cGVydmlzZSBHZW5pZSBDb2RlIGFuZCBpdHMgYXV0aGVudGljYXRlZCBsb2NhbCBtb2RlbCBnYXRld2F5LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgcm0gfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZGVsaW1pdGVyLCBkaXJuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgRGF0YWJyaWNrc01vZGVsUmVnaXN0cnksIG1vZGVscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5XCI7XG5pbXBvcnQgKiBhcyBhdXRoIGZyb20gXCJAZGJ4LXRvb2xzL2F1dGhcIjtcbmltcG9ydCB7IHJlc29sdmVTZXJ2aWNlUGFja2FnZUJpbiB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1zZXJ2aWNlL2RlZmluaXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQmluQ29udGV4dCB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmUvYmluXCI7XG5pbXBvcnQgeyB3b3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRieC10b29scy9kYXRhYnJpY2tzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUdlbmllQ29kZU9wdGlvbnMsXG4gIHR5cGUgR2VuaWVDb2RlT3B0aW9ucyxcbiAgdHlwZSBHZW5pZUNvZGVSdW5uZXJPcHRpb25zLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWUtY29kZS9vcHRpb25zXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGVsQ2xhc3MgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5pbXBvcnQgY29uY3VycmVudGx5IGZyb20gXCJjb25jdXJyZW50bHlcIjtcbmltcG9ydCBnZXRQb3J0IGZyb20gXCJnZXQtcG9ydFwiO1xuXG5pbXBvcnQgeyB3cml0ZUdlbmllQ29kZUNvbmZpZywgdHlwZSBHZW5pZUNvZGVIb21lIH0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgeyBpbnN0YWxsR2VuaWVDb2RlIH0gZnJvbSBcIi4vaW5zdGFsbC50c1wiO1xuaW1wb3J0IHsgUlVOTkVSX09QVElPTlNfRU5WIH0gZnJvbSBcIi4vcnVubmVyLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJnZW5pZS1jb2RlXCIpO1xuXG4vKiogSW5qZWN0YWJsZSBvd25lcnMgdXNlZCB0byBwcmVwYXJlIGFuZCBzdXBlcnZpc2UgbWFuYWdlZCBHZW5pZSBDb2RlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzIHtcbiAgY3JlYXRlQXV0aENsaWVudDogdHlwZW9mIGF1dGguY2xpZW50LmNyZWF0ZUF1dGhDbGllbnQ7XG4gIGluc3RhbGw6IHR5cGVvZiBpbnN0YWxsR2VuaWVDb2RlO1xuICBwb3J0KG9wdGlvbnM6IHsgaG9zdDogc3RyaW5nOyBwb3J0PzogbnVtYmVyIH0pOiBQcm9taXNlPG51bWJlcj47XG4gIHJlc29sdmVCaW4ocGFja2FnZVJlZmVyZW5jZTogc3RyaW5nLCBiaW5OYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHJlc29sdmVDb2RleE1vZGVsKFxuICAgIG1vZGVsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHJvZmlsZTogc3RyaW5nLFxuICAgIG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzLFxuICApOiBQcm9taXNlPHN0cmluZz47XG4gIHN1cGVydmlzZTogdHlwZW9mIGNvbmN1cnJlbnRseTtcbiAgdG9rZW4oKTogc3RyaW5nO1xuICB3cml0ZUNvbmZpZzogdHlwZW9mIHdyaXRlR2VuaWVDb2RlQ29uZmlnO1xufVxuXG5jb25zdCBERUZBVUxUX0RFUEVOREVOQ0lFUzogR2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcyA9IHtcbiAgY3JlYXRlQXV0aENsaWVudDogYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudCxcbiAgaW5zdGFsbDogaW5zdGFsbEdlbmllQ29kZSxcbiAgcG9ydDogKHsgaG9zdCwgcG9ydCB9KSA9PiBnZXRQb3J0KHsgaG9zdCwgLi4uKHBvcnQgPyB7IHBvcnQgfSA6IHt9KSB9KSxcbiAgcmVzb2x2ZUJpbjogcmVzb2x2ZVNlcnZpY2VQYWNrYWdlQmluLFxuICByZXNvbHZlQ29kZXhNb2RlbCxcbiAgc3VwZXJ2aXNlOiBjb25jdXJyZW50bHksXG4gIHRva2VuOiAoKSA9PiByYW5kb21CeXRlcygzMikudG9TdHJpbmcoXCJiYXNlNjR1cmxcIiksXG4gIHdyaXRlQ29uZmlnOiB3cml0ZUdlbmllQ29kZUNvbmZpZyxcbn07XG5cbi8qKiBSZXNvbHZlIGEgR2VuaWUgYC0tbW9kZWxgIHZhbHVlIHRvIHRoZSBDb2RleCBjYXRhbG9ndWUgc2x1ZyB0aGUgZ2F0ZXdheSBwdWJsaXNoZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlQ29kZXhNb2RlbChcbiAgbW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgcHJvZmlsZTogc3RyaW5nLFxuICBtb2RlbENsYXNzPzogTW9kZWxDbGFzcyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jcmVhdGVXb3Jrc3BhY2VDbGllbnQoeyBwcm9maWxlIH0pO1xuICBjb25zdCB0YXJnZXQgPSBhd2FpdCBuZXcgRGF0YWJyaWNrc01vZGVsUmVnaXN0cnkoeyBjbGllbnQgfSkucmVzb2x2ZShtb2RlbCwge1xuICAgIHJlcXVpcmVzVG9vbHM6IHRydWUsXG4gICAgLi4uKG1vZGVsQ2xhc3MgPyB7IG1vZGVsQ2xhc3MgfSA6IHt9KSxcbiAgfSk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgbW9kZWwgPyBgR2VuaWUgQ29kZSBtb2RlbCBub3QgZm91bmQ6ICR7bW9kZWx9YCA6IFwiTm8gdG9vbC1jYXBhYmxlIGNoYXQgbW9kZWwgaXMgYXZhaWxhYmxlXCIsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbW9kZWxzLmNvZGV4TW9kZWxTbHVnKHRhcmdldCk7XG59XG5cbi8qKiBJbnB1dHMgYWNjZXB0ZWQgYnkgbWFuYWdlZCBHZW5pZSBDb2RlIHByZXBhcmF0aW9uIGFuZCBleGVjdXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bkdlbmllQ29kZU9wdGlvbnMge1xuICBjd2Q/OiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llcz86IFBhcnRpYWw8R2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcz47XG4gIGdlbmllQXJncz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBvcHRpb25zPzogR2VuaWVDb2RlT3B0aW9ucztcbn1cblxuLyoqIFJlc29sdmVkIGluc3RhbGxhdGlvbiwgYXV0aCwgbGlzdGVuZXIsIGFuZCBob21lIGZvciBvbmUgaW52b2NhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZWRHZW5pZUNvZGVSdW50aW1lIHtcbiAgYmVhcmVyVG9rZW46IHN0cmluZztcbiAgZ2F0ZXdheUJhc2VVcmw6IHN0cmluZztcbiAgZ2F0ZXdheUhlYWx0aFVybDogc3RyaW5nO1xuICBnYXRld2F5TGlzdGVuOiBzdHJpbmc7XG4gIGdhdGV3YXlQb3J0OiBudW1iZXI7XG4gIGhvbWU6IEdlbmllQ29kZUhvbWU7XG4gIGluc3RhbGxhdGlvbjogQmluQ29udGV4dDtcbiAgbW9kZWw6IHN0cmluZztcbiAgcHJvZmlsZTogc3RyaW5nO1xufVxuXG4vKiogUmVzb2x2ZSBhdXRoLCBpbnN0YWxsYXRpb24sIGxpc3RlbmVyLCBhbmQgY29uZmlndXJhdGlvbiBiZWZvcmUgc3Bhd25pbmcgY2hpbGRyZW4uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUdlbmllQ29kZVJ1bnRpbWUoXG4gIGlucHV0OiBSdW5HZW5pZUNvZGVPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPFByZXBhcmVkR2VuaWVDb2RlUnVudGltZT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSB7IC4uLkRFRkFVTFRfREVQRU5ERU5DSUVTLCAuLi5pbnB1dC5kZXBlbmRlbmNpZXMgfTtcbiAgY29uc3Qgb3B0aW9ucyA9IHJlc29sdmVHZW5pZUNvZGVPcHRpb25zKGlucHV0Lm9wdGlvbnMpO1xuICBsb2dnZXIuaW5mbyhcInJlc29sdmluZyBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uXCIsIHtcbiAgICByZXF1ZXN0ZWRQcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH0pO1xuICBjb25zdCBhdXRoQ2xpZW50ID0gYXdhaXQgZGVwZW5kZW5jaWVzLmNyZWF0ZUF1dGhDbGllbnQoXG4gICAgb3B0aW9ucy5wcm9maWxlID8geyBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgfSA6IHt9LFxuICApO1xuICBjb25zdCBwcm9maWxlID0gYXV0aENsaWVudC5wcm9maWxlO1xuICBpZiAoIXByb2ZpbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5pZSBDb2RlIHJlcXVpcmVzIGEgY29uZmlndXJlZCBEYXRhYnJpY2tzIHByb2ZpbGVcIik7XG4gIH1cbiAgbG9nZ2VyLmluZm8oXCJwcmVwYXJpbmcgR2VuaWUgQ29kZSBydW50aW1lXCIsIHtcbiAgICBwcm9maWxlLFxuICAgIG1vZGVsOiBvcHRpb25zLm1vZGVsLFxuICAgIG1vZGVsQ2xhc3M6IG9wdGlvbnMubW9kZWxDbGFzcyxcbiAgfSk7XG4gIGNvbnN0IGluc3RhbGxhdGlvbiA9IGF3YWl0IGRlcGVuZGVuY2llcy5pbnN0YWxsKCk7XG4gIGNvbnN0IGhvc3QgPSBvcHRpb25zLmdhdGV3YXlMaXN0ZW4uaG9zdDtcbiAgY29uc3QgcmVxdWVzdGVkUG9ydCA9IG9wdGlvbnMuZ2F0ZXdheUxpc3Rlbi5wb3J0O1xuICBjb25zdCBnYXRld2F5UG9ydCA9IGF3YWl0IGRlcGVuZGVuY2llcy5wb3J0KHtcbiAgICBob3N0LFxuICAgIC4uLihyZXF1ZXN0ZWRQb3J0ID4gMCA/IHsgcG9ydDogcmVxdWVzdGVkUG9ydCB9IDoge30pLFxuICB9KTtcbiAgaWYgKHJlcXVlc3RlZFBvcnQgPiAwICYmIGdhdGV3YXlQb3J0ICE9PSByZXF1ZXN0ZWRQb3J0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHZW5pZSBDb2RlIGdhdGV3YXkgcG9ydCAke3JlcXVlc3RlZFBvcnR9IGlzIGFscmVhZHkgaW4gdXNlYCk7XG4gIH1cbiAgY29uc3QgbW9kZWwgPSBhd2FpdCBkZXBlbmRlbmNpZXMucmVzb2x2ZUNvZGV4TW9kZWwob3B0aW9ucy5tb2RlbCwgcHJvZmlsZSwgb3B0aW9ucy5tb2RlbENsYXNzKTtcbiAgbG9nZ2VyLmluZm8oXCJyZXNvbHZlZCBHZW5pZSBDb2RlIG1vZGVsXCIsIHtcbiAgICByZXF1ZXN0ZWQ6IG9wdGlvbnMubW9kZWwsXG4gICAgbW9kZWxDbGFzczogb3B0aW9ucy5tb2RlbENsYXNzLFxuICAgIG1vZGVsLFxuICB9KTtcbiAgY29uc3QgdXJsSG9zdCA9IGhvc3QuaW5jbHVkZXMoXCI6XCIpID8gYFske2hvc3R9XWAgOiBob3N0O1xuICBjb25zdCBnYXRld2F5QmFzZVVybCA9IGBodHRwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fS92MWA7XG4gIGNvbnN0IGdhdGV3YXlIZWFsdGhVcmwgPSBgaHR0cDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH0vYXBpL2hlYWx0aHpgO1xuICBjb25zdCBnYXRld2F5TGlzdGVuID0gYHRjcDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH1gO1xuICBjb25zdCBiZWFyZXJUb2tlbiA9IGRlcGVuZGVuY2llcy50b2tlbigpO1xuICBjb25zdCBob21lID0gYXdhaXQgZGVwZW5kZW5jaWVzLndyaXRlQ29uZmlnKHtcbiAgICBiZWFyZXJUb2tlbixcbiAgICBnYXRld2F5QmFzZVVybCxcbiAgICBtb2RlbCxcbiAgICBwcm9maWxlLFxuICAgIHByb2plY3REaXJlY3Rvcnk6IGlucHV0LmN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBiZWFyZXJUb2tlbixcbiAgICBnYXRld2F5QmFzZVVybCxcbiAgICBnYXRld2F5SGVhbHRoVXJsLFxuICAgIGdhdGV3YXlMaXN0ZW4sXG4gICAgZ2F0ZXdheVBvcnQsXG4gICAgaG9tZSxcbiAgICBpbnN0YWxsYXRpb24sXG4gICAgbW9kZWwsXG4gICAgcHJvZmlsZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2hlbGxFeGVjdXRhYmxlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHJldHVybiBgXCIke3BhdGgucmVwbGFjZUFsbCgnXCInLCAnXCJcIicpfVwiYDtcbiAgcmV0dXJuIGAnJHtwYXRoLnJlcGxhY2VBbGwoXCInXCIsIFwiJ1xcXFwnJ1wiKX0nYDtcbn1cblxuZnVuY3Rpb24gY2hpbGRQYXRoKC4uLnBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4ucGF0aHMubWFwKGRpcm5hbWUpLCBwcm9jZXNzLmVudi5QQVRIXS5maWx0ZXIoQm9vbGVhbikpXS5qb2luKGRlbGltaXRlcik7XG59XG5cbi8qKiBSdW4gR2VuaWUgQ29kZSBhbmQgdGhlIG1vZGVsIGdhdGV3YXkgdW50aWwgZWl0aGVyIHByb2Nlc3MgZXhpdHMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuR2VuaWVDb2RlKGlucHV0OiBSdW5HZW5pZUNvZGVPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0geyAuLi5ERUZBVUxUX0RFUEVOREVOQ0lFUywgLi4uaW5wdXQuZGVwZW5kZW5jaWVzIH07XG4gIGNvbnN0IHByZXBhcmVkID0gYXdhaXQgcHJlcGFyZUdlbmllQ29kZVJ1bnRpbWUoe1xuICAgIC4uLmlucHV0LFxuICAgIGRlcGVuZGVuY2llcyxcbiAgfSk7XG4gIGNvbnN0IGdhdGV3YXlCaW4gPSBkZXBlbmRlbmNpZXMucmVzb2x2ZUJpbihpbXBvcnQubWV0YS51cmwsIFwiZGJ4LW1vZGVsLWdhdGV3YXlcIik7XG4gIGNvbnN0IHJ1bm5lckJpbiA9IGRlcGVuZGVuY2llcy5yZXNvbHZlQmluKGltcG9ydC5tZXRhLnVybCwgXCJkYngtZ2VuaWVcIik7XG4gIGNvbnN0IHBhdGggPSBjaGlsZFBhdGgoZ2F0ZXdheUJpbiwgcnVubmVyQmluKTtcbiAgY29uc3QgcnVubmVyT3B0aW9uczogR2VuaWVDb2RlUnVubmVyT3B0aW9ucyA9IHtcbiAgICBleGVjdXRhYmxlOiBwcmVwYXJlZC5pbnN0YWxsYXRpb24ucGF0aCxcbiAgICBhcmd1bWVudHM6IFtcIi1wXCIsIHByZXBhcmVkLmhvbWUub3ZlcmxheU5hbWUsIC4uLihpbnB1dC5nZW5pZUFyZ3MgPz8gW10pXSxcbiAgICBob21lOiBwcmVwYXJlZC5ob21lLmhvbWUsXG4gICAgZ2F0ZXdheUhlYWx0aFVybDogcHJlcGFyZWQuZ2F0ZXdheUhlYWx0aFVybCxcbiAgICBiZWFyZXJUb2tlbjogcHJlcGFyZWQuYmVhcmVyVG9rZW4sXG4gICAgc3RhcnR1cFRpbWVvdXRNczogNjBfMDAwLFxuICB9O1xuICBjb25zdCB7IHJlc3VsdCB9ID0gZGVwZW5kZW5jaWVzLnN1cGVydmlzZShcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6IHNoZWxsRXhlY3V0YWJsZShnYXRld2F5QmluKSxcbiAgICAgICAgbmFtZTogXCJnYXRld2F5XCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIFBBVEg6IHBhdGgsXG4gICAgICAgICAgTElTVEVOOiBwcmVwYXJlZC5nYXRld2F5TGlzdGVuLFxuICAgICAgICAgIERBVEFCUklDS1NfQ09ORklHX1BST0ZJTEU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgICAgICAgREJYX1RPT0xTX01PREVMX0dBVEVXQVlfQkVBUkVSX1RPS0VOOiBwcmVwYXJlZC5iZWFyZXJUb2tlbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6IHNoZWxsRXhlY3V0YWJsZShydW5uZXJCaW4pLFxuICAgICAgICBuYW1lOiBcImdlbmllXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIFBBVEg6IHBhdGgsXG4gICAgICAgICAgREFUQUJSSUNLU19DT05GSUdfUFJPRklMRTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICAgICAgICBbUlVOTkVSX09QVElPTlNfRU5WXTogSlNPTi5zdHJpbmdpZnkocnVubmVyT3B0aW9ucyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAge1xuICAgICAgY3dkOiBpbnB1dC5jd2QgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgICAgIHJhdzogdHJ1ZSxcbiAgICAgIGtpbGxPdGhlcnNPbjogW1wiZmFpbHVyZVwiLCBcInN1Y2Nlc3NcIl0sXG4gICAgICBraWxsU2lnbmFsOiBcIlNJR1RFUk1cIixcbiAgICAgIGtpbGxUaW1lb3V0OiAxN18wMDAsXG4gICAgICBzdWNjZXNzQ29uZGl0aW9uOiBcImNvbW1hbmQtZ2VuaWVcIixcbiAgICB9LFxuICApO1xuICBsb2dnZXIuaW5mbyhcInN0YXJ0ZWQgR2VuaWUgQ29kZSBhbmQgbW9kZWwgZ2F0ZXdheVwiLCB7XG4gICAgcHJvZmlsZTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICBtb2RlbDogcHJlcGFyZWQubW9kZWwsXG4gICAgZ2F0ZXdheTogcHJlcGFyZWQuZ2F0ZXdheUJhc2VVcmwsXG4gICAgaG9tZTogcHJlcGFyZWQuaG9tZS5ob21lLFxuICB9KTtcbiAgdHJ5IHtcbiAgICBhd2FpdCByZXN1bHQ7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcm0ocHJlcGFyZWQuaG9tZS5vdmVybGF5UGF0aCwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
@@ -12,8 +12,8 @@ import { buildServiceCommand } from "@dbx-tools/cli-service/cli";
12
12
  import { defineService } from "@dbx-tools/cli-service/definition";
13
13
  import { runGraphiti } from "@dbx-tools/graphiti/runtime";
14
14
  import { Command } from "commander";
15
- import { PACKAGE_VERSION } from "../../index.js";
16
15
  import { GraphitiCliOptionsSchema, GraphitiOptionsSchema, } from "./options.js";
16
+ import { PACKAGE_VERSION } from "../../index.js";
17
17
  /** Define a Graphiti service without duplicating installation or lifecycle policy. */
18
18
  export function graphitiServiceDefinition(options = {}) {
19
19
  return defineService(import.meta.url, {
@@ -40,4 +40,4 @@ export function buildProgram(name = "dbx graphiti", dependencies = { run: runGra
40
40
  function graphitiOptions(command) {
41
41
  return GraphitiOptionsSchema.parse(parseArgs(command, GraphitiCliOptionsSchema));
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoaXRpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUE2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQStCLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixxQkFBcUIsR0FFdEIsTUFBTSxjQUFjLENBQUM7QUFhdEIsc0ZBQXNGO0FBQ3RGLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsVUFBa0MsRUFBRTtJQUVwQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQyxFQUFFLEVBQUUsd0JBQXdCO1FBQzVCLElBQUksRUFBRSxjQUFjO1FBQ3BCLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtRQUM3QyxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsY0FBYztZQUN2QixTQUFTLEVBQUUsYUFBYSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxzRUFBc0U7QUFDdEUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBSSxHQUFHLGNBQWMsRUFDckIsZUFBd0MsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFO0lBRTVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FDckIsSUFBSSxPQUFPLEVBQUU7U0FDVixJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsV0FBVyxDQUFDLHlEQUF5RCxDQUFDO1NBQ3RFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLEVBQzVDLHdCQUF3QixDQUN6QixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsVUFBVSxDQUNoQixtQkFBbUIsQ0FDakIsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3pELFlBQVksQ0FBQyxPQUFPLENBQ3JCLENBQ0YsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxPQUFnQjtJQUN2QyxPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXItb3duZWQgR3JhcGhpdGkgQ0xJIGFuZCBzaGFyZWQgY3VycmVudC11c2VyIHNlcnZpY2UgZGVmaW5pdGlvbi5cbiAqXG4gKiBUaGlzIG1vZHVsZSBvd25zIGV2ZXJ5IHVzZXItZmFjaW5nIEdyYXBoaXRpIGNvbW1hbmQuIFRoZSBzaGFyZWQgR3JhcGhpdGkgWm9kXG4gKiBzY2hlbWEgb3ducyBpdHMgb3B0aW9ucywgZW52aXJvbm1lbnQgbmFtZXMsIGRlZmF1bHRzLCBhbmQgdmFsaWRhdGlvbi4gVGhlXG4gKiBOb2RlIEdyYXBoaXRpIHBhY2thZ2Ugb3ducyBydW50aW1lIGFuZCBQeXRob24gaW50ZXJhY3Rpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBhZGRBcmdzLCBwYXJzZUFyZ3MsIHNlcmlhbGl6ZUFyZ3MgfSBmcm9tIFwiQGRieC10b29scy9jbGktYXJnc1wiO1xuaW1wb3J0IHsgYnVpbGRTZXJ2aWNlQ29tbWFuZCwgdHlwZSBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvY2xpXCI7XG5pbXBvcnQgeyBkZWZpbmVTZXJ2aWNlLCB0eXBlIENsaVNlcnZpY2VEZWZpbml0aW9uIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgcnVuR3JhcGhpdGksIHR5cGUgR3JhcGhpdGlSdW50aW1lT3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL2dyYXBoaXRpL3J1bnRpbWVcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7IFBBQ0tBR0VfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi9pbmRleC50c1wiO1xuaW1wb3J0IHtcbiAgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hLFxuICBHcmFwaGl0aU9wdGlvbnNTY2hlbWEsXG4gIHR5cGUgR3JhcGhpdGlPcHRpb25zLFxufSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5cbi8qKiBJbmplY3RhYmxlIHJ1bnRpbWUgYW5kIHNlcnZpY2UgbGlmZWN5Y2xlIGJvdW5kYXJpZXMgZm9yIENMSSBjYWxsZXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaGl0aUNsaURlcGVuZGVuY2llcyB7XG4gIC8qKiBSdW4gdGhlIEdyYXBoaXRpIHN0YWNrIHRocm91Z2ggdGhlIE5vZGUgcnVudGltZSBvd25lci4gKi9cbiAgcnVuKG9wdGlvbnM6IEdyYXBoaXRpUnVudGltZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogU2hhcmVkIHNlcnZpY2UgY29tbWFuZCBkZXBlbmRlbmNpZXMgZm9yIHRlc3RzIGFuZCBlbWJlZGRpbmcuICovXG4gIHJlYWRvbmx5IHNlcnZpY2U/OiBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzO1xufVxuXG4vKiogUnVudGltZSBvcHRpb25zIHBlcnNpc3RlZCB3aGVuIGluc3RhbGxpbmcgdGhlIEdyYXBoaXRpIGRlc2t0b3Agc2VydmljZS4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoaXRpU2VydmljZU9wdGlvbnMgPSBHcmFwaGl0aU9wdGlvbnM7XG5cbi8qKiBEZWZpbmUgYSBHcmFwaGl0aSBzZXJ2aWNlIHdpdGhvdXQgZHVwbGljYXRpbmcgaW5zdGFsbGF0aW9uIG9yIGxpZmVjeWNsZSBwb2xpY3kuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhpdGlTZXJ2aWNlRGVmaW5pdGlvbihcbiAgb3B0aW9uczogR3JhcGhpdGlTZXJ2aWNlT3B0aW9ucyA9IHt9LFxuKTogQ2xpU2VydmljZURlZmluaXRpb24ge1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWdyYXBoaXRpXCIsXG4gICAgbmFtZTogXCJkYnggZ3JhcGhpdGlcIixcbiAgICBweXRob25QYWNrYWdlOiB7IG5hbWU6IFwiZGJ4LXRvb2xzLWdyYXBoaXRpXCIgfSxcbiAgICBjb21tYW5kOiB7XG4gICAgICBiaW5OYW1lOiBcImRieC1ncmFwaGl0aVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKEdyYXBoaXRpT3B0aW9uc1NjaGVtYS5wYXJzZShvcHRpb25zKSksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBCdWlsZCBmb3JlZ3JvdW5kIGV4ZWN1dGlvbiBhbmQgc2hhcmVkIGRlc2t0b3Atc2VydmljZSBjb21tYW5kcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBncmFwaGl0aVwiLFxuICBkZXBlbmRlbmNpZXM6IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzID0geyBydW46IHJ1bkdyYXBoaXRpIH0sXG4pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQoKVxuICAgICAgLm5hbWUobmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbihcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIilcbiAgICAgIC52ZXJzaW9uKFBBQ0tBR0VfVkVSU0lPTiwgXCItdiwgLS12ZXJzaW9uXCIpLFxuICAgIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRlcGVuZGVuY2llcy5ydW4oZ3JhcGhpdGlPcHRpb25zKHByb2dyYW0pKTtcbiAgfSk7XG5cbiAgcHJvZ3JhbS5hZGRDb21tYW5kKFxuICAgIGJ1aWxkU2VydmljZUNvbW1hbmQoXG4gICAgICAoKSA9PiBncmFwaGl0aVNlcnZpY2VEZWZpbml0aW9uKGdyYXBoaXRpT3B0aW9ucyhwcm9ncmFtKSksXG4gICAgICBkZXBlbmRlbmNpZXMuc2VydmljZSxcbiAgICApLFxuICApO1xuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuZnVuY3Rpb24gZ3JhcGhpdGlPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpOiBHcmFwaGl0aU9wdGlvbnMge1xuICByZXR1cm4gR3JhcGhpdGlPcHRpb25zU2NoZW1hLnBhcnNlKHBhcnNlQXJncyhjb21tYW5kLCBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEpKTtcbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoaXRpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUE2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQStCLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUV0QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFhakQsc0ZBQXNGO0FBQ3RGLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsVUFBa0MsRUFBRTtJQUVwQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQyxFQUFFLEVBQUUsd0JBQXdCO1FBQzVCLElBQUksRUFBRSxjQUFjO1FBQ3BCLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtRQUM3QyxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsY0FBYztZQUN2QixTQUFTLEVBQUUsYUFBYSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxzRUFBc0U7QUFDdEUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBSSxHQUFHLGNBQWMsRUFDckIsZUFBd0MsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFO0lBRTVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FDckIsSUFBSSxPQUFPLEVBQUU7U0FDVixJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsV0FBVyxDQUFDLHlEQUF5RCxDQUFDO1NBQ3RFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLEVBQzVDLHdCQUF3QixDQUN6QixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsVUFBVSxDQUNoQixtQkFBbUIsQ0FDakIsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3pELFlBQVksQ0FBQyxPQUFPLENBQ3JCLENBQ0YsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxPQUFnQjtJQUN2QyxPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXItb3duZWQgR3JhcGhpdGkgQ0xJIGFuZCBzaGFyZWQgY3VycmVudC11c2VyIHNlcnZpY2UgZGVmaW5pdGlvbi5cbiAqXG4gKiBUaGlzIG1vZHVsZSBvd25zIGV2ZXJ5IHVzZXItZmFjaW5nIEdyYXBoaXRpIGNvbW1hbmQuIFRoZSBzaGFyZWQgR3JhcGhpdGkgWm9kXG4gKiBzY2hlbWEgb3ducyBpdHMgb3B0aW9ucywgZW52aXJvbm1lbnQgbmFtZXMsIGRlZmF1bHRzLCBhbmQgdmFsaWRhdGlvbi4gVGhlXG4gKiBOb2RlIEdyYXBoaXRpIHBhY2thZ2Ugb3ducyBydW50aW1lIGFuZCBQeXRob24gaW50ZXJhY3Rpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBhZGRBcmdzLCBwYXJzZUFyZ3MsIHNlcmlhbGl6ZUFyZ3MgfSBmcm9tIFwiQGRieC10b29scy9jbGktYXJnc1wiO1xuaW1wb3J0IHsgYnVpbGRTZXJ2aWNlQ29tbWFuZCwgdHlwZSBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvY2xpXCI7XG5pbXBvcnQgeyBkZWZpbmVTZXJ2aWNlLCB0eXBlIENsaVNlcnZpY2VEZWZpbml0aW9uIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgcnVuR3JhcGhpdGksIHR5cGUgR3JhcGhpdGlSdW50aW1lT3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL2dyYXBoaXRpL3J1bnRpbWVcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSxcbiAgR3JhcGhpdGlPcHRpb25zU2NoZW1hLFxuICB0eXBlIEdyYXBoaXRpT3B0aW9ucyxcbn0gZnJvbSBcIi4vb3B0aW9ucy50c1wiO1xuaW1wb3J0IHsgUEFDS0FHRV9WRVJTSU9OIH0gZnJvbSBcIi4uLy4uL2luZGV4LnRzXCI7XG5cbi8qKiBJbmplY3RhYmxlIHJ1bnRpbWUgYW5kIHNlcnZpY2UgbGlmZWN5Y2xlIGJvdW5kYXJpZXMgZm9yIENMSSBjYWxsZXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaGl0aUNsaURlcGVuZGVuY2llcyB7XG4gIC8qKiBSdW4gdGhlIEdyYXBoaXRpIHN0YWNrIHRocm91Z2ggdGhlIE5vZGUgcnVudGltZSBvd25lci4gKi9cbiAgcnVuKG9wdGlvbnM6IEdyYXBoaXRpUnVudGltZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogU2hhcmVkIHNlcnZpY2UgY29tbWFuZCBkZXBlbmRlbmNpZXMgZm9yIHRlc3RzIGFuZCBlbWJlZGRpbmcuICovXG4gIHJlYWRvbmx5IHNlcnZpY2U/OiBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzO1xufVxuXG4vKiogUnVudGltZSBvcHRpb25zIHBlcnNpc3RlZCB3aGVuIGluc3RhbGxpbmcgdGhlIEdyYXBoaXRpIGRlc2t0b3Agc2VydmljZS4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoaXRpU2VydmljZU9wdGlvbnMgPSBHcmFwaGl0aU9wdGlvbnM7XG5cbi8qKiBEZWZpbmUgYSBHcmFwaGl0aSBzZXJ2aWNlIHdpdGhvdXQgZHVwbGljYXRpbmcgaW5zdGFsbGF0aW9uIG9yIGxpZmVjeWNsZSBwb2xpY3kuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhpdGlTZXJ2aWNlRGVmaW5pdGlvbihcbiAgb3B0aW9uczogR3JhcGhpdGlTZXJ2aWNlT3B0aW9ucyA9IHt9LFxuKTogQ2xpU2VydmljZURlZmluaXRpb24ge1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWdyYXBoaXRpXCIsXG4gICAgbmFtZTogXCJkYnggZ3JhcGhpdGlcIixcbiAgICBweXRob25QYWNrYWdlOiB7IG5hbWU6IFwiZGJ4LXRvb2xzLWdyYXBoaXRpXCIgfSxcbiAgICBjb21tYW5kOiB7XG4gICAgICBiaW5OYW1lOiBcImRieC1ncmFwaGl0aVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKEdyYXBoaXRpT3B0aW9uc1NjaGVtYS5wYXJzZShvcHRpb25zKSksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBCdWlsZCBmb3JlZ3JvdW5kIGV4ZWN1dGlvbiBhbmQgc2hhcmVkIGRlc2t0b3Atc2VydmljZSBjb21tYW5kcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBncmFwaGl0aVwiLFxuICBkZXBlbmRlbmNpZXM6IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzID0geyBydW46IHJ1bkdyYXBoaXRpIH0sXG4pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQoKVxuICAgICAgLm5hbWUobmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbihcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIilcbiAgICAgIC52ZXJzaW9uKFBBQ0tBR0VfVkVSU0lPTiwgXCItdiwgLS12ZXJzaW9uXCIpLFxuICAgIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRlcGVuZGVuY2llcy5ydW4oZ3JhcGhpdGlPcHRpb25zKHByb2dyYW0pKTtcbiAgfSk7XG5cbiAgcHJvZ3JhbS5hZGRDb21tYW5kKFxuICAgIGJ1aWxkU2VydmljZUNvbW1hbmQoXG4gICAgICAoKSA9PiBncmFwaGl0aVNlcnZpY2VEZWZpbml0aW9uKGdyYXBoaXRpT3B0aW9ucyhwcm9ncmFtKSksXG4gICAgICBkZXBlbmRlbmNpZXMuc2VydmljZSxcbiAgICApLFxuICApO1xuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuZnVuY3Rpb24gZ3JhcGhpdGlPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpOiBHcmFwaGl0aU9wdGlvbnMge1xuICByZXR1cm4gR3JhcGhpdGlPcHRpb25zU2NoZW1hLnBhcnNlKHBhcnNlQXJncyhjb21tYW5kLCBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEpKTtcbn1cbiJdfQ==
@@ -4,9 +4,9 @@ import { buildServiceCommand } from "@dbx-tools/cli-service/cli";
4
4
  import { defineService } from "@dbx-tools/cli-service/definition";
5
5
  import { connectionUrl } from "@dbx-tools/lakebase";
6
6
  import { Command } from "commander";
7
- import { PACKAGE_VERSION } from "../../index.js";
8
7
  import { LakebaseProxyOptionsSchema, LakebaseProxyUrlOptionsSchema, resolveLakebaseProxyOptions, } from "./options.js";
9
8
  import { LakebaseProxy } from "./proxy.js";
9
+ import { PACKAGE_VERSION } from "../../index.js";
10
10
  /** Build the tray-only Lakebase proxy service definition. */
11
11
  export function lakebaseProxyServiceDefinition(options = {}) {
12
12
  const resolved = resolveLakebaseProxyOptions(options);
@@ -51,4 +51,4 @@ function waitForShutdown() {
51
51
  process.once("SIGTERM", shutdown);
52
52
  });
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sbUNBQW1DLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsNkJBQTZCLEVBQzdCLDJCQUEyQixHQUU1QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBTzNDLDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLFVBQWdDLEVBQUU7SUFFbEMsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEMsRUFBRSxFQUFFLDhCQUE4QjtRQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQUksR0FBRyxvQkFBb0IsRUFDM0IsZUFBNkMsRUFBRTtJQUUvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztTQUNkLFdBQVcsQ0FBQyx5REFBeUQsQ0FBQztTQUN0RSxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLHVCQUF1QixFQUFFLEVBQzVCLDBCQUEwQixDQUMzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixNQUFNLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxREFBcUQsQ0FBQyxFQUN6Riw2QkFBNkIsQ0FDOUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1osTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLGdCQUFpQixDQUFDO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksY0FBd0IsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7UUFDOUMsT0FBTyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLFNBQVMsQ0FBRSxDQUFDO0lBQzFGLE9BQU8sQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWU7SUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBDb21tYW5kZXIgZW50cnkgcG9pbnQgZm9yIHRoZSBwdXJlIE5vZGUgTGFrZWJhc2UgcHJveHkuICovXG5cbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncywgc2VyaWFsaXplQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBidWlsZFNlcnZpY2VDb21tYW5kLCB0eXBlIENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXMgfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9jbGlcIjtcbmltcG9ydCB7IGRlZmluZVNlcnZpY2UsIHR5cGUgQ2xpU2VydmljZURlZmluaXRpb24gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBjb25uZWN0aW9uVXJsIH0gZnJvbSBcIkBkYngtdG9vbHMvbGFrZWJhc2VcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7IFBBQ0tBR0VfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi9pbmRleC50c1wiO1xuaW1wb3J0IHtcbiAgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEsXG4gIExha2ViYXNlUHJveHlVcmxPcHRpb25zU2NoZW1hLFxuICByZXNvbHZlTGFrZWJhc2VQcm94eU9wdGlvbnMsXG4gIHR5cGUgTGFrZWJhc2VQcm94eU9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmltcG9ydCB7IExha2ViYXNlUHJveHkgfSBmcm9tIFwiLi9wcm94eS50c1wiO1xuXG4vKiogSW5qZWN0YWJsZSBzZXJ2aWNlIGJvdW5kYXJ5IGZvciBMYWtlYmFzZSBwcm94eSBDTEkgY29tcG9zaXRpb24gYW5kIHRlc3RzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWtlYmFzZVByb3h5Q2xpRGVwZW5kZW5jaWVzIHtcbiAgcmVhZG9ubHkgc2VydmljZT86IENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXM7XG59XG5cbi8qKiBCdWlsZCB0aGUgdHJheS1vbmx5IExha2ViYXNlIHByb3h5IHNlcnZpY2UgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYWtlYmFzZVByb3h5U2VydmljZURlZmluaXRpb24oXG4gIG9wdGlvbnM6IExha2ViYXNlUHJveHlPcHRpb25zID0ge30sXG4pOiBDbGlTZXJ2aWNlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZUxha2ViYXNlUHJveHlPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWxha2ViYXNlLXByb3h5XCIsXG4gICAgbmFtZTogXCJkYnggbGFrZWJhc2UgcHJveHlcIixcbiAgICBjb21tYW5kOiB7XG4gICAgICBiaW5OYW1lOiBcImRieC1sYWtlYmFzZS1wcm94eVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKHJlc29sdmVkKSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBMYWtlYmFzZSBwcm94eSBjb21tYW5kLWxpbmUgcHJvZ3JhbS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBsYWtlYmFzZS1wcm94eVwiLFxuICBkZXBlbmRlbmNpZXM6IExha2ViYXNlUHJveHlDbGlEZXBlbmRlbmNpZXMgPSB7fSxcbik6IENvbW1hbmQge1xuICBjb25zdCBwcm9ncmFtID0gYWRkQXJncyhcbiAgICBuZXcgQ29tbWFuZChuYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKFwiUnVuIGEgbG9vcGJhY2sgUG9zdGdyZVNRTCBwcm94eSBmb3IgRGF0YWJyaWNrcyBMYWtlYmFzZVwiKVxuICAgICAgLnZlcnNpb24oUEFDS0FHRV9WRVJTSU9OKVxuICAgICAgLmVuYWJsZVBvc2l0aW9uYWxPcHRpb25zKCksXG4gICAgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEsXG4gICkuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm94eSA9IG5ldyBMYWtlYmFzZVByb3h5KHBhcnNlQXJncyhwcm9ncmFtLCBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSkpO1xuICAgIGF3YWl0IHByb3h5Lmxpc3RlbigpO1xuICAgIGF3YWl0IHdhaXRGb3JTaHV0ZG93bigpO1xuICAgIGF3YWl0IHByb3h5LmNsb3NlKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHVybENvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInVybFwiKS5kZXNjcmlwdGlvbihcIkZvcm1hdCBhIGxvY2FsIFBvc3RncmVTUUwgVVJMIGZvciBhIExha2ViYXNlIHRhcmdldFwiKSxcbiAgICBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3ModXJsQ29tbWFuZCwgTGFrZWJhc2VQcm94eVVybE9wdGlvbnNTY2hlbWEpO1xuICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMudGFyZ2V0ID8/IG9wdGlvbnMubGFrZWJhc2VFbmRwb2ludCE7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7Y29ubmVjdGlvblVybCh0YXJnZXQsIG9wdGlvbnMubGlzdGVuLmhvc3QsIG9wdGlvbnMubGlzdGVuLnBvcnQpfVxcbmApO1xuICB9KTtcbiAgbGV0IGluc3RhbGxDb21tYW5kITogQ29tbWFuZDtcbiAgY29uc3Qgc2VydmljZUNvbW1hbmQgPSBidWlsZFNlcnZpY2VDb21tYW5kKCgpID0+IHtcbiAgICByZXR1cm4gbGFrZWJhc2VQcm94eVNlcnZpY2VEZWZpbml0aW9uKHBhcnNlQXJncyhpbnN0YWxsQ29tbWFuZCwgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEpKTtcbiAgfSwgZGVwZW5kZW5jaWVzLnNlcnZpY2UpO1xuICBpbnN0YWxsQ29tbWFuZCA9IHNlcnZpY2VDb21tYW5kLmNvbW1hbmRzLmZpbmQoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSgpID09PSBcImluc3RhbGxcIikhO1xuICBhZGRBcmdzKGluc3RhbGxDb21tYW5kLCBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSk7XG4gIHByb2dyYW0uYWRkQ29tbWFuZChzZXJ2aWNlQ29tbWFuZCk7XG4gIHJldHVybiBwcm9ncmFtO1xufVxuXG5mdW5jdGlvbiB3YWl0Rm9yU2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHNodXRkb3duID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgIHByb2Nlc3Mub25jZShcIlNJR0lOVFwiLCBzaHV0ZG93bik7XG4gICAgcHJvY2Vzcy5vbmNlKFwiU0lHVEVSTVwiLCBzaHV0ZG93bik7XG4gIH0pO1xufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sbUNBQW1DLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IsMkJBQTJCLEdBRTVCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2pELDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLFVBQWdDLEVBQUU7SUFFbEMsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEMsRUFBRSxFQUFFLDhCQUE4QjtRQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQUksR0FBRyxvQkFBb0IsRUFDM0IsZUFBNkMsRUFBRTtJQUUvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztTQUNkLFdBQVcsQ0FBQyx5REFBeUQsQ0FBQztTQUN0RSxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLHVCQUF1QixFQUFFLEVBQzVCLDBCQUEwQixDQUMzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixNQUFNLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxREFBcUQsQ0FBQyxFQUN6Riw2QkFBNkIsQ0FDOUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1osTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLGdCQUFpQixDQUFDO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksY0FBd0IsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7UUFDOUMsT0FBTyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLFNBQVMsQ0FBRSxDQUFDO0lBQzFGLE9BQU8sQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWU7SUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBDb21tYW5kZXIgZW50cnkgcG9pbnQgZm9yIHRoZSBwdXJlIE5vZGUgTGFrZWJhc2UgcHJveHkuICovXG5cbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncywgc2VyaWFsaXplQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBidWlsZFNlcnZpY2VDb21tYW5kLCB0eXBlIENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXMgfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9jbGlcIjtcbmltcG9ydCB7IGRlZmluZVNlcnZpY2UsIHR5cGUgQ2xpU2VydmljZURlZmluaXRpb24gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBjb25uZWN0aW9uVXJsIH0gZnJvbSBcIkBkYngtdG9vbHMvbGFrZWJhc2VcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7XG4gIExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hLFxuICBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSxcbiAgcmVzb2x2ZUxha2ViYXNlUHJveHlPcHRpb25zLFxuICB0eXBlIExha2ViYXNlUHJveHlPcHRpb25zLFxufSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQgeyBMYWtlYmFzZVByb3h5IH0gZnJvbSBcIi4vcHJveHkudHNcIjtcbmltcG9ydCB7IFBBQ0tBR0VfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi9pbmRleC50c1wiO1xuXG4vKiogSW5qZWN0YWJsZSBzZXJ2aWNlIGJvdW5kYXJ5IGZvciBMYWtlYmFzZSBwcm94eSBDTEkgY29tcG9zaXRpb24gYW5kIHRlc3RzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWtlYmFzZVByb3h5Q2xpRGVwZW5kZW5jaWVzIHtcbiAgcmVhZG9ubHkgc2VydmljZT86IENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXM7XG59XG5cbi8qKiBCdWlsZCB0aGUgdHJheS1vbmx5IExha2ViYXNlIHByb3h5IHNlcnZpY2UgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYWtlYmFzZVByb3h5U2VydmljZURlZmluaXRpb24oXG4gIG9wdGlvbnM6IExha2ViYXNlUHJveHlPcHRpb25zID0ge30sXG4pOiBDbGlTZXJ2aWNlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZUxha2ViYXNlUHJveHlPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWxha2ViYXNlLXByb3h5XCIsXG4gICAgbmFtZTogXCJkYnggbGFrZWJhc2UgcHJveHlcIixcbiAgICBjb21tYW5kOiB7XG4gICAgICBiaW5OYW1lOiBcImRieC1sYWtlYmFzZS1wcm94eVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKHJlc29sdmVkKSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBMYWtlYmFzZSBwcm94eSBjb21tYW5kLWxpbmUgcHJvZ3JhbS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIG5hbWUgPSBcImRieCBsYWtlYmFzZS1wcm94eVwiLFxuICBkZXBlbmRlbmNpZXM6IExha2ViYXNlUHJveHlDbGlEZXBlbmRlbmNpZXMgPSB7fSxcbik6IENvbW1hbmQge1xuICBjb25zdCBwcm9ncmFtID0gYWRkQXJncyhcbiAgICBuZXcgQ29tbWFuZChuYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKFwiUnVuIGEgbG9vcGJhY2sgUG9zdGdyZVNRTCBwcm94eSBmb3IgRGF0YWJyaWNrcyBMYWtlYmFzZVwiKVxuICAgICAgLnZlcnNpb24oUEFDS0FHRV9WRVJTSU9OKVxuICAgICAgLmVuYWJsZVBvc2l0aW9uYWxPcHRpb25zKCksXG4gICAgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEsXG4gICkuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm94eSA9IG5ldyBMYWtlYmFzZVByb3h5KHBhcnNlQXJncyhwcm9ncmFtLCBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSkpO1xuICAgIGF3YWl0IHByb3h5Lmxpc3RlbigpO1xuICAgIGF3YWl0IHdhaXRGb3JTaHV0ZG93bigpO1xuICAgIGF3YWl0IHByb3h5LmNsb3NlKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHVybENvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInVybFwiKS5kZXNjcmlwdGlvbihcIkZvcm1hdCBhIGxvY2FsIFBvc3RncmVTUUwgVVJMIGZvciBhIExha2ViYXNlIHRhcmdldFwiKSxcbiAgICBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3ModXJsQ29tbWFuZCwgTGFrZWJhc2VQcm94eVVybE9wdGlvbnNTY2hlbWEpO1xuICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMudGFyZ2V0ID8/IG9wdGlvbnMubGFrZWJhc2VFbmRwb2ludCE7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7Y29ubmVjdGlvblVybCh0YXJnZXQsIG9wdGlvbnMubGlzdGVuLmhvc3QsIG9wdGlvbnMubGlzdGVuLnBvcnQpfVxcbmApO1xuICB9KTtcbiAgbGV0IGluc3RhbGxDb21tYW5kITogQ29tbWFuZDtcbiAgY29uc3Qgc2VydmljZUNvbW1hbmQgPSBidWlsZFNlcnZpY2VDb21tYW5kKCgpID0+IHtcbiAgICByZXR1cm4gbGFrZWJhc2VQcm94eVNlcnZpY2VEZWZpbml0aW9uKHBhcnNlQXJncyhpbnN0YWxsQ29tbWFuZCwgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEpKTtcbiAgfSwgZGVwZW5kZW5jaWVzLnNlcnZpY2UpO1xuICBpbnN0YWxsQ29tbWFuZCA9IHNlcnZpY2VDb21tYW5kLmNvbW1hbmRzLmZpbmQoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSgpID09PSBcImluc3RhbGxcIikhO1xuICBhZGRBcmdzKGluc3RhbGxDb21tYW5kLCBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSk7XG4gIHByb2dyYW0uYWRkQ29tbWFuZChzZXJ2aWNlQ29tbWFuZCk7XG4gIHJldHVybiBwcm9ncmFtO1xufVxuXG5mdW5jdGlvbiB3YWl0Rm9yU2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHNodXRkb3duID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgIHByb2Nlc3Mub25jZShcIlNJR0lOVFwiLCBzaHV0ZG93bik7XG4gICAgcHJvY2Vzcy5vbmNlKFwiU0lHVEVSTVwiLCBzaHV0ZG93bik7XG4gIH0pO1xufVxuIl19
@@ -48,7 +48,10 @@ export function gatewayBearerMiddleware(token) {
48
48
  /** Start the foreground model gateway and keep its AppKit server active. */
49
49
  export async function startModelGateway(options = {}) {
50
50
  const resolved = resolveModelGatewayOptions(options);
51
- const gateway = new ModelGateway();
51
+ const gateway = new ModelGateway({
52
+ ...(resolved.model ? { model: resolved.model } : {}),
53
+ ...(resolved.modelClass ? { modelClass: resolved.modelClass } : {}),
54
+ });
52
55
  const client = await workspaceClient.createWorkspaceClient({
53
56
  ...(resolved.profile ? { profile: resolved.profile } : {}),
54
57
  });
@@ -80,4 +83,4 @@ export async function startModelGateway(options = {}) {
80
83
  },
81
84
  });
82
85
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsLWdhdGV3YXkvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLDBCQUEwQixHQUczQixNQUFNLHlDQUF5QyxDQUFDO0FBS2pELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBK0IsRUFBRTtJQUN6RSxPQUFPLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBb0M7SUFDL0QsT0FBTztRQUNMLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ3pCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWE7SUFDbkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3RCxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUs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TCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yZWdyb3VuZCBtb2RlbC1nYXRld2F5IHNlcnZlciBvd25lZCBieSB0aGUgQ0xJIHBhY2thZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2gsIHRpbWluZ1NhZmVFcXVhbCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgY3JlYXRlQXBwLCBzZXJ2ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBNb2RlbEdhdGV3YXkgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0IHsgc2VuZEhlYWx0aCwgc2VuZEluZmVyZW5jZSwgc2VuZE1vZGVscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5L3JvdXRlc1wiO1xuaW1wb3J0IHsgd29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrc1wiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMsXG4gIHR5cGUgTW9kZWxHYXRld2F5T3B0aW9ucyxcbiAgdHlwZSBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC1nYXRld2F5L29wdGlvbnNcIjtcbmltcG9ydCB0eXBlIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcblxudHlwZSBBcHBLaXRTZXJ2ZXJPcHRpb25zID0gTm9uTnVsbGFibGU8UGFyYW1ldGVyczx0eXBlb2Ygc2VydmVyPlswXT47XG5cbi8qKiBSZXNvbHZlIEFwcEtpdCBzZXJ2ZXIgc2V0dGluZ3MgZm9yIHRoZSBsb29wYmFjayBtb2RlbCBnYXRld2F5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsR2F0ZXdheVNlcnZlck9wdGlvbnMob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogQXBwS2l0U2VydmVyT3B0aW9ucyB7XG4gIHJldHVybiBhcHBLaXRTZXJ2ZXJPcHRpb25zKHJlc29sdmVNb2RlbEdhdGV3YXlPcHRpb25zKG9wdGlvbnMpKTtcbn1cblxuZnVuY3Rpb24gYXBwS2l0U2VydmVyT3B0aW9ucyhvcHRpb25zOiBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMpOiBBcHBLaXRTZXJ2ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBib2R5TGltaXQ6IG9wdGlvbnMuYm9keUxpbWl0LFxuICAgIGhvc3Q6IG9wdGlvbnMubGlzdGVuLmhvc3QsXG4gICAgcG9ydDogb3B0aW9ucy5saXN0ZW4ucG9ydCxcbiAgfTtcbn1cblxuLyoqIFJlcXVpcmUgb25lIGJlYXJlciB0b2tlbiB3aXRob3V0IHJldGFpbmluZyBvciBsb2dnaW5nIHJlcXVlc3QgY3JlZGVudGlhbHMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0ZXdheUJlYXJlck1pZGRsZXdhcmUodG9rZW46IHN0cmluZyk6IGV4cHJlc3MuUmVxdWVzdEhhbmRsZXIge1xuICBjb25zdCBleHBlY3RlZCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHRva2VuKS5kaWdlc3QoKTtcbiAgcmV0dXJuIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSByZXF1ZXN0LmhlYWRlcihcImF1dGhvcml6YXRpb25cIik7XG4gICAgY29uc3QgbWF0Y2ggPSAvXkJlYXJlclxccysoLispJC9pLmV4ZWMoYXV0aG9yaXphdGlvbiA/PyBcIlwiKTtcbiAgICBjb25zdCBhY3R1YWwgPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKG1hdGNoPy5bMV0gPz8gXCJcIilcbiAgICAgIC5kaWdlc3QoKTtcbiAgICBpZiAobWF0Y2ggJiYgdGltaW5nU2FmZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlc3BvbnNlXG4gICAgICAuc3RhdHVzKDQwMSlcbiAgICAgIC5zZXRIZWFkZXIoXCJ3d3ctYXV0aGVudGljYXRlXCIsIFwiQmVhcmVyXCIpXG4gICAgICAuanNvbih7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbWVzc2FnZTogXCJJbnZhbGlkIG9yIG1pc3NpbmcgbW9kZWwtZ2F0ZXdheSBiZWFyZXIgdG9rZW4uXCIsXG4gICAgICAgICAgdHlwZTogXCJhdXRoZW50aWNhdGlvbl9lcnJvclwiLFxuICAgICAgICAgIGNvZGU6IFwiaW52YWxpZF9iZWFyZXJfdG9rZW5cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9O1xufVxuXG4vKiogU3RhcnQgdGhlIGZvcmVncm91bmQgbW9kZWwgZ2F0ZXdheSBhbmQga2VlcCBpdHMgQXBwS2l0IHNlcnZlciBhY3RpdmUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRNb2RlbEdhdGV3YXkob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGdhdGV3YXkgPSBuZXcgTW9kZWxHYXRld2F5KCk7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jcmVhdGVXb3Jrc3BhY2VDbGllbnQoe1xuICAgIC4uLihyZXNvbHZlZC5wcm9maWxlID8geyBwcm9maWxlOiByZXNvbHZlZC5wcm9maWxlIH0gOiB7fSksXG4gIH0pO1xuICBhd2FpdCBjcmVhdGVBcHAoe1xuICAgIGNsaWVudCxcbiAgICBwbHVnaW5zOiBbc2VydmVyKGFwcEtpdFNlcnZlck9wdGlvbnMocmVzb2x2ZWQpKV0sXG4gICAgb25QbHVnaW5zUmVhZHkoYXBwa2l0KSB7XG4gICAgICBhcHBraXQuc2VydmVyLmV4dGVuZCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgaWYgKHJlc29sdmVkLmJlYXJlclRva2VuKSB7XG4gICAgICAgICAgYXBwbGljYXRpb24udXNlKGdhdGV3YXlCZWFyZXJNaWRkbGV3YXJlKHJlc29sdmVkLmJlYXJlclRva2VuKSk7XG4gICAgICAgIH1cbiAgICAgICAgYXBwbGljYXRpb24uZ2V0KFwiL2FwaS9oZWFsdGh6XCIsIChfcmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBzZW5kSGVhbHRoKHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFwcGxpY2F0aW9uLmdldChcIi92MS9tb2RlbHNcIiwgKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdm9pZCBzZW5kTW9kZWxzKGdhdGV3YXksIHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgW3BhdGgsIHByb3RvY29sXSBvZiBbXG4gICAgICAgICAgW1wiL3YxL2NoYXQvY29tcGxldGlvbnNcIiwgXCJvcGVuYWktY2hhdFwiXSxcbiAgICAgICAgICBbXCIvdjEvcmVzcG9uc2VzXCIsIFwib3BlbmFpLXJlc3BvbnNlc1wiXSxcbiAgICAgICAgICBbXCIvdjEvbWVzc2FnZXNcIiwgXCJhbnRocm9waWMtbWVzc2FnZXNcIl0sXG4gICAgICAgICAgW1wiL3YxL2VtYmVkZGluZ3NcIiwgXCJvcGVuYWktZW1iZWRkaW5nc1wiXSxcbiAgICAgICAgXSBhcyBjb25zdCkge1xuICAgICAgICAgIGFwcGxpY2F0aW9uLnBvc3QocGF0aCwgKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB2b2lkIHNlbmRJbmZlcmVuY2UoZ2F0ZXdheSwgcHJvdG9jb2wsIHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsLWdhdGV3YXkvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLDBCQUEwQixHQUczQixNQUFNLHlDQUF5QyxDQUFDO0FBS2pELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBK0IsRUFBRTtJQUN6RSxPQUFPLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBb0M7SUFDL0QsT0FBTztRQUNMLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ3pCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWE7SUFDbkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3RCxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUs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QUFvQixDQUFDO29CQUN0QyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO2lCQUMvQixFQUFFLENBQUM7b0JBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7d0JBQzNDLEtBQUssYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUMzRCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yZWdyb3VuZCBtb2RlbC1nYXRld2F5IHNlcnZlciBvd25lZCBieSB0aGUgQ0xJIHBhY2thZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2gsIHRpbWluZ1NhZmVFcXVhbCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgY3JlYXRlQXBwLCBzZXJ2ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBNb2RlbEdhdGV3YXkgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0IHsgc2VuZEhlYWx0aCwgc2VuZEluZmVyZW5jZSwgc2VuZE1vZGVscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5L3JvdXRlc1wiO1xuaW1wb3J0IHsgd29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrc1wiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMsXG4gIHR5cGUgTW9kZWxHYXRld2F5T3B0aW9ucyxcbiAgdHlwZSBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC1nYXRld2F5L29wdGlvbnNcIjtcbmltcG9ydCB0eXBlIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcblxudHlwZSBBcHBLaXRTZXJ2ZXJPcHRpb25zID0gTm9uTnVsbGFibGU8UGFyYW1ldGVyczx0eXBlb2Ygc2VydmVyPlswXT47XG5cbi8qKiBSZXNvbHZlIEFwcEtpdCBzZXJ2ZXIgc2V0dGluZ3MgZm9yIHRoZSBsb29wYmFjayBtb2RlbCBnYXRld2F5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsR2F0ZXdheVNlcnZlck9wdGlvbnMob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogQXBwS2l0U2VydmVyT3B0aW9ucyB7XG4gIHJldHVybiBhcHBLaXRTZXJ2ZXJPcHRpb25zKHJlc29sdmVNb2RlbEdhdGV3YXlPcHRpb25zKG9wdGlvbnMpKTtcbn1cblxuZnVuY3Rpb24gYXBwS2l0U2VydmVyT3B0aW9ucyhvcHRpb25zOiBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMpOiBBcHBLaXRTZXJ2ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBib2R5TGltaXQ6IG9wdGlvbnMuYm9keUxpbWl0LFxuICAgIGhvc3Q6IG9wdGlvbnMubGlzdGVuLmhvc3QsXG4gICAgcG9ydDogb3B0aW9ucy5saXN0ZW4ucG9ydCxcbiAgfTtcbn1cblxuLyoqIFJlcXVpcmUgb25lIGJlYXJlciB0b2tlbiB3aXRob3V0IHJldGFpbmluZyBvciBsb2dnaW5nIHJlcXVlc3QgY3JlZGVudGlhbHMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0ZXdheUJlYXJlck1pZGRsZXdhcmUodG9rZW46IHN0cmluZyk6IGV4cHJlc3MuUmVxdWVzdEhhbmRsZXIge1xuICBjb25zdCBleHBlY3RlZCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHRva2VuKS5kaWdlc3QoKTtcbiAgcmV0dXJuIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSByZXF1ZXN0LmhlYWRlcihcImF1dGhvcml6YXRpb25cIik7XG4gICAgY29uc3QgbWF0Y2ggPSAvXkJlYXJlclxccysoLispJC9pLmV4ZWMoYXV0aG9yaXphdGlvbiA/PyBcIlwiKTtcbiAgICBjb25zdCBhY3R1YWwgPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKG1hdGNoPy5bMV0gPz8gXCJcIilcbiAgICAgIC5kaWdlc3QoKTtcbiAgICBpZiAobWF0Y2ggJiYgdGltaW5nU2FmZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlc3BvbnNlXG4gICAgICAuc3RhdHVzKDQwMSlcbiAgICAgIC5zZXRIZWFkZXIoXCJ3d3ctYXV0aGVudGljYXRlXCIsIFwiQmVhcmVyXCIpXG4gICAgICAuanNvbih7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbWVzc2FnZTogXCJJbnZhbGlkIG9yIG1pc3NpbmcgbW9kZWwtZ2F0ZXdheSBiZWFyZXIgdG9rZW4uXCIsXG4gICAgICAgICAgdHlwZTogXCJhdXRoZW50aWNhdGlvbl9lcnJvclwiLFxuICAgICAgICAgIGNvZGU6IFwiaW52YWxpZF9iZWFyZXJfdG9rZW5cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9O1xufVxuXG4vKiogU3RhcnQgdGhlIGZvcmVncm91bmQgbW9kZWwgZ2F0ZXdheSBhbmQga2VlcCBpdHMgQXBwS2l0IHNlcnZlciBhY3RpdmUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRNb2RlbEdhdGV3YXkob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGdhdGV3YXkgPSBuZXcgTW9kZWxHYXRld2F5KHtcbiAgICAuLi4ocmVzb2x2ZWQubW9kZWwgPyB7IG1vZGVsOiByZXNvbHZlZC5tb2RlbCB9IDoge30pLFxuICAgIC4uLihyZXNvbHZlZC5tb2RlbENsYXNzID8geyBtb2RlbENsYXNzOiByZXNvbHZlZC5tb2RlbENsYXNzIH0gOiB7fSksXG4gIH0pO1xuICBjb25zdCBjbGllbnQgPSBhd2FpdCB3b3Jrc3BhY2VDbGllbnQuY3JlYXRlV29ya3NwYWNlQ2xpZW50KHtcbiAgICAuLi4ocmVzb2x2ZWQucHJvZmlsZSA/IHsgcHJvZmlsZTogcmVzb2x2ZWQucHJvZmlsZSB9IDoge30pLFxuICB9KTtcbiAgYXdhaXQgY3JlYXRlQXBwKHtcbiAgICBjbGllbnQsXG4gICAgcGx1Z2luczogW3NlcnZlcihhcHBLaXRTZXJ2ZXJPcHRpb25zKHJlc29sdmVkKSldLFxuICAgIG9uUGx1Z2luc1JlYWR5KGFwcGtpdCkge1xuICAgICAgYXBwa2l0LnNlcnZlci5leHRlbmQoKGFwcGxpY2F0aW9uKSA9PiB7XG4gICAgICAgIGlmIChyZXNvbHZlZC5iZWFyZXJUb2tlbikge1xuICAgICAgICAgIGFwcGxpY2F0aW9uLnVzZShnYXRld2F5QmVhcmVyTWlkZGxld2FyZShyZXNvbHZlZC5iZWFyZXJUb2tlbikpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGxpY2F0aW9uLmdldChcIi9hcGkvaGVhbHRoelwiLCAoX3JlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgc2VuZEhlYWx0aChyZXNwb25zZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBhcHBsaWNhdGlvbi5nZXQoXCIvdjEvbW9kZWxzXCIsIChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHZvaWQgc2VuZE1vZGVscyhnYXRld2F5LCByZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IFtwYXRoLCBwcm90b2NvbF0gb2YgW1xuICAgICAgICAgIFtcIi92MS9jaGF0L2NvbXBsZXRpb25zXCIsIFwib3BlbmFpLWNoYXRcIl0sXG4gICAgICAgICAgW1wiL3YxL3Jlc3BvbnNlc1wiLCBcIm9wZW5haS1yZXNwb25zZXNcIl0sXG4gICAgICAgICAgW1wiL3YxL21lc3NhZ2VzXCIsIFwiYW50aHJvcGljLW1lc3NhZ2VzXCJdLFxuICAgICAgICAgIFtcIi92MS9lbWJlZGRpbmdzXCIsIFwib3BlbmFpLWVtYmVkZGluZ3NcIl0sXG4gICAgICAgIF0gYXMgY29uc3QpIHtcbiAgICAgICAgICBhcHBsaWNhdGlvbi5wb3N0KHBhdGgsIChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdm9pZCBzZW5kSW5mZXJlbmNlKGdhdGV3YXksIHByb3RvY29sLCByZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
package/package.json CHANGED
@@ -34,24 +34,24 @@
34
34
  "dependencies": {
35
35
  "@clack/prompts": "^1.7.0",
36
36
  "@databricks/appkit": "0.81.0",
37
- "@dbx-tools/appkit": "^0.9.61",
38
- "@dbx-tools/appkit-model-gateway": "^0.9.61",
39
- "@dbx-tools/auth": "^0.9.61",
40
- "@dbx-tools/auth-gate": "^0.9.61",
41
- "@dbx-tools/cli-args": "^0.9.61",
42
- "@dbx-tools/cli-service": "^0.9.61",
43
- "@dbx-tools/core": "^0.9.61",
44
- "@dbx-tools/databricks": "^0.9.61",
45
- "@dbx-tools/email": "^0.9.61",
46
- "@dbx-tools/graphiti": "^0.9.61",
47
- "@dbx-tools/lakebase": "^0.9.61",
48
- "@dbx-tools/postgres": "^0.9.61",
49
- "@dbx-tools/shared-auth": "^0.9.61",
50
- "@dbx-tools/shared-core": "^0.9.61",
51
- "@dbx-tools/shared-email": "^0.9.61",
52
- "@dbx-tools/shared-genie-code": "^0.9.61",
53
- "@dbx-tools/shared-model-gateway": "^0.9.61",
54
- "@dbx-tools/tunnel": "^0.9.61",
37
+ "@dbx-tools/appkit": "^0.9.65",
38
+ "@dbx-tools/appkit-model-gateway": "^0.9.65",
39
+ "@dbx-tools/auth": "^0.9.65",
40
+ "@dbx-tools/auth-gate": "^0.9.65",
41
+ "@dbx-tools/cli-args": "^0.9.65",
42
+ "@dbx-tools/cli-service": "^0.9.65",
43
+ "@dbx-tools/core": "^0.9.65",
44
+ "@dbx-tools/databricks": "^0.9.65",
45
+ "@dbx-tools/email": "^0.9.65",
46
+ "@dbx-tools/graphiti": "^0.9.65",
47
+ "@dbx-tools/lakebase": "^0.9.65",
48
+ "@dbx-tools/postgres": "^0.9.65",
49
+ "@dbx-tools/shared-auth": "^0.9.65",
50
+ "@dbx-tools/shared-core": "^0.9.65",
51
+ "@dbx-tools/shared-email": "^0.9.65",
52
+ "@dbx-tools/shared-genie-code": "^0.9.65",
53
+ "@dbx-tools/shared-model-gateway": "^0.9.65",
54
+ "@dbx-tools/tunnel": "^0.9.65",
55
55
  "commander": "^15.0.0",
56
56
  "concurrently": "^10.0.3",
57
57
  "get-port": "^7.1.0",
@@ -154,7 +154,7 @@
154
154
  "./package.json": "./package.json"
155
155
  }
156
156
  },
157
- "version": "0.9.61",
157
+ "version": "0.9.65",
158
158
  "types": "./lib/index.d.ts",
159
159
  "dbxToolsConfig": {
160
160
  "tags": [