@dbx-tools/cli 0.9.153 → 0.9.157
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/dbx-genie.ts +3 -2
- package/index.appkit.ts +9 -0
- package/index.auth.ts +9 -0
- package/index.brand.ts +18 -0
- package/index.genie-code.ts +18 -0
- package/index.graphiti.ts +7 -0
- package/index.lakebase-proxy.ts +18 -0
- package/index.model-gateway.ts +9 -0
- package/index.ts +5 -61
- package/index.tunnel.ts +14 -0
- package/lib/bin/dbx-genie.js +4 -3
- package/lib/index.appkit.d.ts +5 -0
- package/lib/index.appkit.js +8 -0
- package/lib/index.auth.d.ts +5 -0
- package/lib/index.auth.js +8 -0
- package/lib/index.brand.d.ts +14 -0
- package/lib/index.brand.js +14 -0
- package/lib/index.d.ts +5 -61
- package/lib/index.genie-code.d.ts +14 -0
- package/lib/index.genie-code.js +14 -0
- package/lib/index.graphiti.d.ts +3 -0
- package/lib/index.graphiti.js +6 -0
- package/lib/index.js +6 -43
- package/lib/index.lakebase-proxy.d.ts +14 -0
- package/lib/index.lakebase-proxy.js +14 -0
- package/lib/index.model-gateway.d.ts +5 -0
- package/lib/index.model-gateway.js +8 -0
- package/lib/index.tunnel.d.ts +10 -0
- package/lib/index.tunnel.js +12 -0
- package/lib/src/appkit/cli.d.ts +1 -2
- package/lib/src/appkit/cli.js +4 -5
- package/lib/src/auth/cli.d.ts +2 -2
- package/lib/src/auth/cli.js +2 -3
- package/lib/src/auth/options.d.ts +2 -2
- package/lib/src/auth/options.js +4 -6
- package/lib/src/bootstrap.js +10 -14
- package/lib/src/brand/options.js +2 -2
- package/lib/src/brand/run.js +6 -8
- package/lib/src/brand/showcase.js +5 -5
- package/lib/src/bun.js +6 -6
- package/lib/src/genie-code/cli.d.ts +2 -2
- package/lib/src/genie-code/cli.js +4 -4
- package/lib/src/genie-code/config.d.ts +1 -1
- package/lib/src/genie-code/config.js +7 -7
- package/lib/src/genie-code/install.d.ts +2 -2
- package/lib/src/genie-code/install.js +4 -4
- package/lib/src/genie-code/runner.d.ts +2 -3
- package/lib/src/genie-code/runner.js +13 -11
- package/lib/src/genie-code/runtime.d.ts +3 -3
- package/lib/src/genie-code/runtime.js +10 -9
- package/lib/src/graphiti/cli.d.ts +2 -3
- package/lib/src/graphiti/cli.js +7 -8
- package/lib/src/lakebase-proxy/cli.d.ts +1 -2
- package/lib/src/lakebase-proxy/cli.js +3 -4
- package/lib/src/lakebase-proxy/options.js +7 -9
- package/lib/src/lakebase-proxy/proxy.js +8 -8
- package/lib/src/model-gateway/cli.d.ts +2 -3
- package/lib/src/model-gateway/cli.js +3 -4
- package/lib/src/model-gateway/server.d.ts +1 -1
- package/lib/src/model-gateway/server.js +5 -6
- package/lib/src/root.js +3 -3
- package/lib/src/tunnel/app.js +7 -9
- package/lib/src/tunnel/cli.d.ts +1 -2
- package/lib/src/tunnel/cli.js +13 -14
- package/lib/src/tunnel/options.d.ts +5 -5
- package/lib/src/tunnel/options.js +11 -11
- package/lib/src/tunnel/proxy.js +18 -17
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +58 -177
- package/src/appkit/cli.ts +2 -4
- package/src/auth/cli.ts +2 -4
- package/src/auth/options.ts +3 -5
- package/src/bootstrap.ts +9 -13
- package/src/brand/options.ts +1 -1
- package/src/brand/run.ts +7 -7
- package/src/brand/showcase.ts +4 -4
- package/src/bun.ts +6 -6
- package/src/genie-code/cli.ts +4 -4
- package/src/genie-code/config.ts +6 -6
- package/src/genie-code/install.ts +5 -7
- package/src/genie-code/runner.ts +12 -11
- package/src/genie-code/runtime.ts +10 -10
- package/src/graphiti/cli.ts +13 -9
- package/src/lakebase-proxy/cli.ts +7 -3
- package/src/lakebase-proxy/options.ts +13 -8
- package/src/lakebase-proxy/proxy.ts +7 -7
- package/src/model-gateway/cli.ts +7 -3
- package/src/model-gateway/server.ts +9 -5
- package/src/root.ts +2 -2
- package/src/tunnel/app.ts +6 -8
- package/src/tunnel/cli.ts +21 -15
- package/src/tunnel/options.ts +23 -15
- package/src/tunnel/proxy.ts +29 -20
- package/lib/src/appkit/index.d.ts +0 -5
- package/lib/src/appkit/index.js +0 -8
- package/lib/src/auth/index.d.ts +0 -5
- package/lib/src/auth/index.js +0 -8
- package/lib/src/brand/index.d.ts +0 -10
- package/lib/src/brand/index.js +0 -10
- package/lib/src/genie-code/index.d.ts +0 -12
- package/lib/src/genie-code/index.js +0 -12
- package/lib/src/genie-code/options.d.ts +0 -7
- package/lib/src/genie-code/options.js +0 -7
- package/lib/src/graphiti/index.d.ts +0 -5
- package/lib/src/graphiti/index.js +0 -7
- package/lib/src/graphiti/options.d.ts +0 -117
- package/lib/src/graphiti/options.js +0 -26
- package/lib/src/lakebase-proxy/index.d.ts +0 -13
- package/lib/src/lakebase-proxy/index.js +0 -13
- package/lib/src/model-gateway/index.d.ts +0 -3
- package/lib/src/model-gateway/index.js +0 -6
- package/lib/src/tunnel/index.d.ts +0 -8
- package/lib/src/tunnel/index.js +0 -10
- package/src/appkit/index.ts +0 -9
- package/src/auth/index.ts +0 -9
- package/src/brand/index.ts +0 -14
- package/src/genie-code/index.ts +0 -16
- package/src/genie-code/options.ts +0 -14
- package/src/graphiti/index.ts +0 -9
- package/src/graphiti/options.ts +0 -40
- package/src/lakebase-proxy/index.ts +0 -17
- package/src/model-gateway/index.ts +0 -7
- package/src/tunnel/index.ts +0 -12
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
import { randomBytes } from "node:crypto";
|
|
7
7
|
import { rm } from "node:fs/promises";
|
|
8
8
|
import { delimiter, dirname } from "node:path";
|
|
9
|
-
import { DatabricksModelRegistry,
|
|
9
|
+
import { DatabricksModelRegistry, codexModelSlug } from "@dbx-tools/appkit-model-gateway";
|
|
10
10
|
import * as auth from "@dbx-tools/auth";
|
|
11
|
-
import { resolveServicePackageBin } from "@dbx-tools/cli-service
|
|
12
|
-
import {
|
|
11
|
+
import { resolveServicePackageBin } from "@dbx-tools/cli-service";
|
|
12
|
+
import { configUtils } from "@dbx-tools/core";
|
|
13
|
+
import { createWorkspaceClient } from "@dbx-tools/databricks";
|
|
13
14
|
import { log } from "@dbx-tools/shared-core";
|
|
14
|
-
import { resolveGenieCodeOptions, } from "@dbx-tools/shared-genie-code
|
|
15
|
+
import { resolveGenieCodeOptions, } from "@dbx-tools/shared-genie-code";
|
|
15
16
|
import concurrently from "concurrently";
|
|
16
17
|
import getPort from "get-port";
|
|
17
18
|
import { writeGenieCodeConfig } from "./config.js";
|
|
18
19
|
import { installGenieCode } from "./install.js";
|
|
19
|
-
import {
|
|
20
|
+
import { RUNNER_OPTIONS_KEY } from "./runner.js";
|
|
20
21
|
const logger = log.logger("genie-code");
|
|
21
22
|
const DEFAULT_DEPENDENCIES = {
|
|
22
23
|
createAuthClient: auth.client.createAuthClient,
|
|
@@ -30,7 +31,7 @@ const DEFAULT_DEPENDENCIES = {
|
|
|
30
31
|
};
|
|
31
32
|
/** Resolve a Genie `--model` value to the Codex catalogue slug the gateway publishes. */
|
|
32
33
|
async function resolveCodexModel(model, profile, modelClass) {
|
|
33
|
-
const client = await
|
|
34
|
+
const client = await createWorkspaceClient({ profile });
|
|
34
35
|
const target = await new DatabricksModelRegistry({ client }).resolve(model, {
|
|
35
36
|
requiresTools: true,
|
|
36
37
|
...(modelClass ? { modelClass } : {}),
|
|
@@ -39,7 +40,7 @@ async function resolveCodexModel(model, profile, modelClass) {
|
|
|
39
40
|
throw new Error(model ? `Genie Code model not found: ${model}` : "No tool-capable chat model is available");
|
|
40
41
|
}
|
|
41
42
|
// Genie Code pins the exact system.ai service slug, which wins regardless of gateway preference.
|
|
42
|
-
return
|
|
43
|
+
return codexModelSlug(target, true);
|
|
43
44
|
}
|
|
44
45
|
/** Resolve auth, installation, listener, and configuration before spawning children. */
|
|
45
46
|
export async function prepareGenieCodeRuntime(input = {}) {
|
|
@@ -143,7 +144,7 @@ export async function runGenieCode(input = {}) {
|
|
|
143
144
|
...process.env,
|
|
144
145
|
PATH: path,
|
|
145
146
|
DATABRICKS_CONFIG_PROFILE: prepared.profile,
|
|
146
|
-
[
|
|
147
|
+
[configUtils.name(RUNNER_OPTIONS_KEY)]: JSON.stringify(runnerOptions),
|
|
147
148
|
},
|
|
148
149
|
},
|
|
149
150
|
], {
|
|
@@ -167,4 +168,4 @@ export async function runGenieCode(input = {}) {
|
|
|
167
168
|
await rm(prepared.home.overlayPath, { force: true });
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixHQUd4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFrQnhDLE1BQU0sb0JBQW9CLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO0lBQzlDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLENBQUMs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LEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQy9CLEdBQUcsRUFBRSxJQUFJO1FBQ1QsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxVQUFVLEVBQUUsU0FBUztRQUNyQixXQUFXLEVBQUUsTUFBTTtRQUNuQixnQkFBZ0IsRUFBRSxlQUFlO0tBQ2xDLENBQ0YsQ0FBQztJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUU7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLGNBQWM7UUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUN6QixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3VwZXJ2aXNlIEdlbmllIENvZGUgYW5kIGl0cyBhdXRoZW50aWNhdGVkIGxvY2FsIG1vZGVsIGdhdGV3YXkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBybSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGRpcm5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSwgbW9kZWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1vZGVsLWdhdGV3YXlcIjtcbmltcG9ydCAqIGFzIGF1dGggZnJvbSBcIkBkYngtdG9vbHMvYXV0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVNlcnZpY2VQYWNrYWdlQmluIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvZGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBCaW5Db250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZS9iaW5cIjtcbmltcG9ydCB7IHdvcmtzcGFjZUNsaWVudCB9IGZyb20gXCJAZGJ4LXRvb2xzL2RhdGFicmlja3NcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICByZXNvbHZlR2VuaWVDb2RlT3B0aW9ucyxcbiAgdHlwZSBHZW5pZUNvZGVPcHRpb25zLFxuICB0eXBlIEdlbmllQ29kZVJ1bm5lck9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZS1jb2RlL29wdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgTW9kZWxDbGFzcyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC9jb250cmFjdHNcIjtcbmltcG9ydCBjb25jdXJyZW50bHkgZnJvbSBcImNvbmN1cnJlbnRseVwiO1xuaW1wb3J0IGdldFBvcnQgZnJvbSBcImdldC1wb3J0XCI7XG5cbmltcG9ydCB7IHdyaXRlR2VuaWVDb2RlQ29uZmlnLCB0eXBlIEdlbmllQ29kZUhvbWUgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IGluc3RhbGxHZW5pZUNvZGUgfSBmcm9tIFwiLi9pbnN0YWxsLnRzXCI7XG5pbXBvcnQgeyBSVU5ORVJfT1BUSU9OU19FTlYgfSBmcm9tIFwiLi9ydW5uZXIudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImdlbmllLWNvZGVcIik7XG5cbi8qKiBJbmplY3RhYmxlIG93bmVycyB1c2VkIHRvIHByZXBhcmUgYW5kIHN1cGVydmlzZSBtYW5hZ2VkIEdlbmllIENvZGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmllQ29kZVJ1bnRpbWVEZXBlbmRlbmNpZXMge1xuICBjcmVhdGVBdXRoQ2xpZW50OiB0eXBlb2YgYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudDtcbiAgaW5zdGFsbDogdHlwZW9mIGluc3RhbGxHZW5pZUNvZGU7XG4gIHBvcnQob3B0aW9uczogeyBob3N0OiBzdHJpbmc7IHBvcnQ/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPjtcbiAgcmVzb2x2ZUJpbihwYWNrYWdlUmVmZXJlbmNlOiBzdHJpbmcsIGJpbk5hbWU6IHN0cmluZyk6IHN0cmluZztcbiAgcmVzb2x2ZUNvZGV4TW9kZWwoXG4gICAgbW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwcm9maWxlOiBzdHJpbmcsXG4gICAgbW9kZWxDbGFzcz86IE1vZGVsQ2xhc3MsXG4gICk6IFByb21pc2U8c3RyaW5nPjtcbiAgc3VwZXJ2aXNlOiB0eXBlb2YgY29uY3VycmVudGx5O1xuICB0b2tlbigpOiBzdHJpbmc7XG4gIHdyaXRlQ29uZmlnOiB0eXBlb2Ygd3JpdGVHZW5pZUNvZGVDb25maWc7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzID0ge1xuICBjcmVhdGVBdXRoQ2xpZW50OiBhdXRoLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50LFxuICBpbnN0YWxsOiBpbnN0YWxsR2VuaWVDb2RlLFxuICBwb3J0OiAoeyBob3N0LCBwb3J0IH0pID0+IGdldFBvcnQoeyBob3N0LCAuLi4ocG9ydCA/IHsgcG9ydCB9IDoge30pIH0pLFxuICByZXNvbHZlQmluOiByZXNvbHZlU2VydmljZVBhY2thZ2VCaW4sXG4gIHJlc29sdmVDb2RleE1vZGVsLFxuICBzdXBlcnZpc2U6IGNvbmN1cnJlbnRseSxcbiAgdG9rZW46ICgpID0+IHJhbmRvbUJ5dGVzKDMyKS50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgd3JpdGVDb25maWc6IHdyaXRlR2VuaWVDb2RlQ29uZmlnLFxufTtcblxuLyoqIFJlc29sdmUgYSBHZW5pZSBgLS1tb2RlbGAgdmFsdWUgdG8gdGhlIENvZGV4IGNhdGFsb2d1ZSBzbHVnIHRoZSBnYXRld2F5IHB1Ymxpc2hlcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDb2RleE1vZGVsKFxuICBtb2RlbDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBwcm9maWxlOiBzdHJpbmcsXG4gIG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgd29ya3NwYWNlQ2xpZW50LmNyZWF0ZVdvcmtzcGFjZUNsaWVudCh7IHByb2ZpbGUgfSk7XG4gIGNvbnN0IHRhcmdldCA9IGF3YWl0IG5ldyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSh7IGNsaWVudCB9KS5yZXNvbHZlKG1vZGVsLCB7XG4gICAgcmVxdWlyZXNUb29sczogdHJ1ZSxcbiAgICAuLi4obW9kZWxDbGFzcyA/IHsgbW9kZWxDbGFzcyB9IDoge30pLFxuICB9KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBtb2RlbCA/IGBHZW5pZSBDb2RlIG1vZGVsIG5vdCBmb3VuZDogJHttb2RlbH1gIDogXCJObyB0b29sLWNhcGFibGUgY2hhdCBtb2RlbCBpcyBhdmFpbGFibGVcIixcbiAgICApO1xuICB9XG4gIC8vIEdlbmllIENvZGUgcGlucyB0aGUgZXhhY3Qgc3lzdGVtLmFpIHNlcnZpY2Ugc2x1Zywgd2hpY2ggd2lucyByZWdhcmRsZXNzIG9mIGdhdGV3YXkgcHJlZmVyZW5jZS5cbiAgcmV0dXJuIG1vZGVscy5jb2RleE1vZGVsU2x1Zyh0YXJnZXQsIHRydWUpO1xufVxuXG4vKiogSW5wdXRzIGFjY2VwdGVkIGJ5IG1hbmFnZWQgR2VuaWUgQ29kZSBwcmVwYXJhdGlvbiBhbmQgZXhlY3V0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5HZW5pZUNvZGVPcHRpb25zIHtcbiAgY3dkPzogc3RyaW5nO1xuICBkZXBlbmRlbmNpZXM/OiBQYXJ0aWFsPEdlbmllQ29kZVJ1bnRpbWVEZXBlbmRlbmNpZXM+O1xuICBnZW5pZUFyZ3M/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgb3B0aW9ucz86IEdlbmllQ29kZU9wdGlvbnM7XG59XG5cbi8qKiBSZXNvbHZlZCBpbnN0YWxsYXRpb24sIGF1dGgsIGxpc3RlbmVyLCBhbmQgaG9tZSBmb3Igb25lIGludm9jYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXBhcmVkR2VuaWVDb2RlUnVudGltZSB7XG4gIGJlYXJlclRva2VuOiBzdHJpbmc7XG4gIGdhdGV3YXlCYXNlVXJsOiBzdHJpbmc7XG4gIGdhdGV3YXlIZWFsdGhVcmw6IHN0cmluZztcbiAgZ2F0ZXdheUxpc3Rlbjogc3RyaW5nO1xuICBnYXRld2F5UG9ydDogbnVtYmVyO1xuICBob21lOiBHZW5pZUNvZGVIb21lO1xuICBpbnN0YWxsYXRpb246IEJpbkNvbnRleHQ7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHByb2ZpbGU6IHN0cmluZztcbn1cblxuLyoqIFJlc29sdmUgYXV0aCwgaW5zdGFsbGF0aW9uLCBsaXN0ZW5lciwgYW5kIGNvbmZpZ3VyYXRpb24gYmVmb3JlIHNwYXduaW5nIGNoaWxkcmVuLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVHZW5pZUNvZGVSdW50aW1lKFxuICBpbnB1dDogUnVuR2VuaWVDb2RlT3B0aW9ucyA9IHt9LFxuKTogUHJvbWlzZTxQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWU+IHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0geyAuLi5ERUZBVUxUX0RFUEVOREVOQ0lFUywgLi4uaW5wdXQuZGVwZW5kZW5jaWVzIH07XG4gIGNvbnN0IG9wdGlvbnMgPSByZXNvbHZlR2VuaWVDb2RlT3B0aW9ucyhpbnB1dC5vcHRpb25zKTtcbiAgbG9nZ2VyLmluZm8oXCJyZXNvbHZpbmcgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvblwiLCB7XG4gICAgcmVxdWVzdGVkUHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9KTtcbiAgY29uc3QgYXV0aENsaWVudCA9IGF3YWl0IGRlcGVuZGVuY2llcy5jcmVhdGVBdXRoQ2xpZW50KFxuICAgIG9wdGlvbnMucHJvZmlsZSA/IHsgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlIH0gOiB7fSxcbiAgKTtcbiAgY29uc3QgcHJvZmlsZSA9IGF1dGhDbGllbnQucHJvZmlsZTtcbiAgaWYgKCFwcm9maWxlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiR2VuaWUgQ29kZSByZXF1aXJlcyBhIGNvbmZpZ3VyZWQgRGF0YWJyaWNrcyBwcm9maWxlXCIpO1xuICB9XG4gIGxvZ2dlci5pbmZvKFwicHJlcGFyaW5nIEdlbmllIENvZGUgcnVudGltZVwiLCB7XG4gICAgcHJvZmlsZSxcbiAgICBtb2RlbDogb3B0aW9ucy5tb2RlbCxcbiAgICBtb2RlbENsYXNzOiBvcHRpb25zLm1vZGVsQ2xhc3MsXG4gIH0pO1xuICBjb25zdCBpbnN0YWxsYXRpb24gPSBhd2FpdCBkZXBlbmRlbmNpZXMuaW5zdGFsbCgpO1xuICBjb25zdCBob3N0ID0gb3B0aW9ucy5nYXRld2F5TGlzdGVuLmhvc3Q7XG4gIGNvbnN0IHJlcXVlc3RlZFBvcnQgPSBvcHRpb25zLmdhdGV3YXlMaXN0ZW4ucG9ydDtcbiAgY29uc3QgZ2F0ZXdheVBvcnQgPSBhd2FpdCBkZXBlbmRlbmNpZXMucG9ydCh7XG4gICAgaG9zdCxcbiAgICAuLi4ocmVxdWVzdGVkUG9ydCA+IDAgPyB7IHBvcnQ6IHJlcXVlc3RlZFBvcnQgfSA6IHt9KSxcbiAgfSk7XG4gIGlmIChyZXF1ZXN0ZWRQb3J0ID4gMCAmJiBnYXRld2F5UG9ydCAhPT0gcmVxdWVzdGVkUG9ydCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgR2VuaWUgQ29kZSBnYXRld2F5IHBvcnQgJHtyZXF1ZXN0ZWRQb3J0fSBpcyBhbHJlYWR5IGluIHVzZWApO1xuICB9XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgZGVwZW5kZW5jaWVzLnJlc29sdmVDb2RleE1vZGVsKG9wdGlvbnMubW9kZWwsIHByb2ZpbGUsIG9wdGlvbnMubW9kZWxDbGFzcyk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2ZWQgR2VuaWUgQ29kZSBtb2RlbFwiLCB7XG4gICAgcmVxdWVzdGVkOiBvcHRpb25zLm1vZGVsLFxuICAgIG1vZGVsQ2xhc3M6IG9wdGlvbnMubW9kZWxDbGFzcyxcbiAgICBtb2RlbCxcbiAgfSk7XG4gIGNvbnN0IHVybEhvc3QgPSBob3N0LmluY2x1ZGVzKFwiOlwiKSA/IGBbJHtob3N0fV1gIDogaG9zdDtcbiAgY29uc3QgZ2F0ZXdheUJhc2VVcmwgPSBgaHR0cDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH0vdjFgO1xuICBjb25zdCBnYXRld2F5SGVhbHRoVXJsID0gYGh0dHA6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9L2FwaS9oZWFsdGh6YDtcbiAgY29uc3QgZ2F0ZXdheUxpc3RlbiA9IGB0Y3A6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9YDtcbiAgY29uc3QgYmVhcmVyVG9rZW4gPSBkZXBlbmRlbmNpZXMudG9rZW4oKTtcbiAgY29uc3QgaG9tZSA9IGF3YWl0IGRlcGVuZGVuY2llcy53cml0ZUNvbmZpZyh7XG4gICAgYmVhcmVyVG9rZW4sXG4gICAgZ2F0ZXdheUJhc2VVcmwsXG4gICAgbW9kZWwsXG4gICAgcHJvZmlsZSxcbiAgICBwcm9qZWN0RGlyZWN0b3J5OiBpbnB1dC5jd2QgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgYmVhcmVyVG9rZW4sXG4gICAgZ2F0ZXdheUJhc2VVcmwsXG4gICAgZ2F0ZXdheUhlYWx0aFVybCxcbiAgICBnYXRld2F5TGlzdGVuLFxuICAgIGdhdGV3YXlQb3J0LFxuICAgIGhvbWUsXG4gICAgaW5zdGFsbGF0aW9uLFxuICAgIG1vZGVsLFxuICAgIHByb2ZpbGUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNoZWxsRXhlY3V0YWJsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSByZXR1cm4gYFwiJHtwYXRoLnJlcGxhY2VBbGwoJ1wiJywgJ1wiXCInKX1cImA7XG4gIHJldHVybiBgJyR7cGF0aC5yZXBsYWNlQWxsKFwiJ1wiLCBcIidcXFxcJydcIil9J2A7XG59XG5cbmZ1bmN0aW9uIGNoaWxkUGF0aCguLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gWy4uLm5ldyBTZXQoWy4uLnBhdGhzLm1hcChkaXJuYW1lKSwgcHJvY2Vzcy5lbnYuUEFUSF0uZmlsdGVyKEJvb2xlYW4pKV0uam9pbihkZWxpbWl0ZXIpO1xufVxuXG4vKiogUnVuIEdlbmllIENvZGUgYW5kIHRoZSBtb2RlbCBnYXRld2F5IHVudGlsIGVpdGhlciBwcm9jZXNzIGV4aXRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkdlbmllQ29kZShpbnB1dDogUnVuR2VuaWVDb2RlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLmlucHV0LmRlcGVuZGVuY2llcyB9O1xuICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IHByZXBhcmVHZW5pZUNvZGVSdW50aW1lKHtcbiAgICAuLi5pbnB1dCxcbiAgICBkZXBlbmRlbmNpZXMsXG4gIH0pO1xuICBjb25zdCBnYXRld2F5QmluID0gZGVwZW5kZW5jaWVzLnJlc29sdmVCaW4oaW1wb3J0Lm1ldGEudXJsLCBcImRieC1tb2RlbC1nYXRld2F5XCIpO1xuICBjb25zdCBydW5uZXJCaW4gPSBkZXBlbmRlbmNpZXMucmVzb2x2ZUJpbihpbXBvcnQubWV0YS51cmwsIFwiZGJ4LWdlbmllXCIpO1xuICBjb25zdCBwYXRoID0gY2hpbGRQYXRoKGdhdGV3YXlCaW4sIHJ1bm5lckJpbik7XG4gIGNvbnN0IHJ1bm5lck9wdGlvbnM6IEdlbmllQ29kZVJ1bm5lck9wdGlvbnMgPSB7XG4gICAgZXhlY3V0YWJsZTogcHJlcGFyZWQuaW5zdGFsbGF0aW9uLnBhdGgsXG4gICAgYXJndW1lbnRzOiBbXCItcFwiLCBwcmVwYXJlZC5ob21lLm92ZXJsYXlOYW1lLCAuLi4oaW5wdXQuZ2VuaWVBcmdzID8/IFtdKV0sXG4gICAgaG9tZTogcHJlcGFyZWQuaG9tZS5ob21lLFxuICAgIGdhdGV3YXlIZWFsdGhVcmw6IHByZXBhcmVkLmdhdGV3YXlIZWFsdGhVcmwsXG4gICAgYmVhcmVyVG9rZW46IHByZXBhcmVkLmJlYXJlclRva2VuLFxuICAgIHN0YXJ0dXBUaW1lb3V0TXM6IDYwXzAwMCxcbiAgfTtcbiAgY29uc3QgeyByZXN1bHQgfSA9IGRlcGVuZGVuY2llcy5zdXBlcnZpc2UoXG4gICAgW1xuICAgICAge1xuICAgICAgICBjb21tYW5kOiBzaGVsbEV4ZWN1dGFibGUoZ2F0ZXdheUJpbiksXG4gICAgICAgIG5hbWU6IFwiZ2F0ZXdheVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgICAgICBQQVRIOiBwYXRoLFxuICAgICAgICAgIExJU1RFTjogcHJlcGFyZWQuZ2F0ZXdheUxpc3RlbixcbiAgICAgICAgICBEQVRBQlJJQ0tTX0NPTkZJR19QUk9GSUxFOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgICAgICAgIERCWF9UT09MU19NT0RFTF9HQVRFV0FZX0JFQVJFUl9UT0tFTjogcHJlcGFyZWQuYmVhcmVyVG9rZW4sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb21tYW5kOiBzaGVsbEV4ZWN1dGFibGUocnVubmVyQmluKSxcbiAgICAgICAgbmFtZTogXCJnZW5pZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgICAgICBQQVRIOiBwYXRoLFxuICAgICAgICAgIERBVEFCUklDS1NfQ09ORklHX1BST0ZJTEU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgICAgICAgW1JVTk5FUl9PUFRJT05TX0VOVl06IEpTT04uc3RyaW5naWZ5KHJ1bm5lck9wdGlvbnMpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIHtcbiAgICAgIGN3ZDogaW5wdXQuY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gICAgICByYXc6IHRydWUsXG4gICAgICBraWxsT3RoZXJzT246IFtcImZhaWx1cmVcIiwgXCJzdWNjZXNzXCJdLFxuICAgICAga2lsbFNpZ25hbDogXCJTSUdURVJNXCIsXG4gICAgICBraWxsVGltZW91dDogMTdfMDAwLFxuICAgICAgc3VjY2Vzc0NvbmRpdGlvbjogXCJjb21tYW5kLWdlbmllXCIsXG4gICAgfSxcbiAgKTtcbiAgbG9nZ2VyLmluZm8oXCJzdGFydGVkIEdlbmllIENvZGUgYW5kIG1vZGVsIGdhdGV3YXlcIiwge1xuICAgIHByb2ZpbGU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgbW9kZWw6IHByZXBhcmVkLm1vZGVsLFxuICAgIGdhdGV3YXk6IHByZXBhcmVkLmdhdGV3YXlCYXNlVXJsLFxuICAgIGhvbWU6IHByZXBhcmVkLmhvbWUuaG9tZSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVzdWx0O1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJtKHByZXBhcmVkLmhvbWUub3ZlcmxheVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsR0FHeEIsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLFlBQVksTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBa0J4QyxNQUFNLG9CQUFvQixHQUFpQztJQUN6RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFn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LFNBQVMsQ0FBQyxhQUFhLENBQUM7YUFDdEU7U0FDRjtLQUNGLEVBQ0Q7UUFDRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQy9CLEdBQUcsRUFBRSxJQUFJO1FBQ1QsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxVQUFVLEVBQUUsU0FBUztRQUNyQixXQUFXLEVBQUUsTUFBTTtRQUNuQixnQkFBZ0IsRUFBRSxlQUFlO0tBQ2xDLENBQ0YsQ0FBQztJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUU7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLGNBQWM7UUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUN6QixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3VwZXJ2aXNlIEdlbmllIENvZGUgYW5kIGl0cyBhdXRoZW50aWNhdGVkIGxvY2FsIG1vZGVsIGdhdGV3YXkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBybSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGRpcm5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSwgY29kZXhNb2RlbFNsdWcgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0ICogYXMgYXV0aCBmcm9tIFwiQGRieC10b29scy9hdXRoXCI7XG5pbXBvcnQgeyByZXNvbHZlU2VydmljZVBhY2thZ2VCaW4gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZVwiO1xuaW1wb3J0IHsgY29uZmlnVXRpbHMsIHR5cGUgQmluQ29udGV4dCB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IGNyZWF0ZVdvcmtzcGFjZUNsaWVudCB9IGZyb20gXCJAZGJ4LXRvb2xzL2RhdGFicmlja3NcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICByZXNvbHZlR2VuaWVDb2RlT3B0aW9ucyxcbiAgdHlwZSBHZW5pZUNvZGVPcHRpb25zLFxuICB0eXBlIEdlbmllQ29kZVJ1bm5lck9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZS1jb2RlXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGVsQ2xhc3MgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWxcIjtcbmltcG9ydCBjb25jdXJyZW50bHkgZnJvbSBcImNvbmN1cnJlbnRseVwiO1xuaW1wb3J0IGdldFBvcnQgZnJvbSBcImdldC1wb3J0XCI7XG5cbmltcG9ydCB7IHdyaXRlR2VuaWVDb2RlQ29uZmlnLCB0eXBlIEdlbmllQ29kZUhvbWUgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IGluc3RhbGxHZW5pZUNvZGUgfSBmcm9tIFwiLi9pbnN0YWxsLnRzXCI7XG5pbXBvcnQgeyBSVU5ORVJfT1BUSU9OU19LRVkgfSBmcm9tIFwiLi9ydW5uZXIudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImdlbmllLWNvZGVcIik7XG5cbi8qKiBJbmplY3RhYmxlIG93bmVycyB1c2VkIHRvIHByZXBhcmUgYW5kIHN1cGVydmlzZSBtYW5hZ2VkIEdlbmllIENvZGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmllQ29kZVJ1bnRpbWVEZXBlbmRlbmNpZXMge1xuICBjcmVhdGVBdXRoQ2xpZW50OiB0eXBlb2YgYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudDtcbiAgaW5zdGFsbDogdHlwZW9mIGluc3RhbGxHZW5pZUNvZGU7XG4gIHBvcnQob3B0aW9uczogeyBob3N0OiBzdHJpbmc7IHBvcnQ/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPjtcbiAgcmVzb2x2ZUJpbihwYWNrYWdlUmVmZXJlbmNlOiBzdHJpbmcsIGJpbk5hbWU6IHN0cmluZyk6IHN0cmluZztcbiAgcmVzb2x2ZUNvZGV4TW9kZWwoXG4gICAgbW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwcm9maWxlOiBzdHJpbmcsXG4gICAgbW9kZWxDbGFzcz86IE1vZGVsQ2xhc3MsXG4gICk6IFByb21pc2U8c3RyaW5nPjtcbiAgc3VwZXJ2aXNlOiB0eXBlb2YgY29uY3VycmVudGx5O1xuICB0b2tlbigpOiBzdHJpbmc7XG4gIHdyaXRlQ29uZmlnOiB0eXBlb2Ygd3JpdGVHZW5pZUNvZGVDb25maWc7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzID0ge1xuICBjcmVhdGVBdXRoQ2xpZW50OiBhdXRoLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50LFxuICBpbnN0YWxsOiBpbnN0YWxsR2VuaWVDb2RlLFxuICBwb3J0OiAoeyBob3N0LCBwb3J0IH0pID0+IGdldFBvcnQoeyBob3N0LCAuLi4ocG9ydCA/IHsgcG9ydCB9IDoge30pIH0pLFxuICByZXNvbHZlQmluOiByZXNvbHZlU2VydmljZVBhY2thZ2VCaW4sXG4gIHJlc29sdmVDb2RleE1vZGVsLFxuICBzdXBlcnZpc2U6IGNvbmN1cnJlbnRseSxcbiAgdG9rZW46ICgpID0+IHJhbmRvbUJ5dGVzKDMyKS50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgd3JpdGVDb25maWc6IHdyaXRlR2VuaWVDb2RlQ29uZmlnLFxufTtcblxuLyoqIFJlc29sdmUgYSBHZW5pZSBgLS1tb2RlbGAgdmFsdWUgdG8gdGhlIENvZGV4IGNhdGFsb2d1ZSBzbHVnIHRoZSBnYXRld2F5IHB1Ymxpc2hlcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDb2RleE1vZGVsKFxuICBtb2RlbDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBwcm9maWxlOiBzdHJpbmcsXG4gIG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlV29ya3NwYWNlQ2xpZW50KHsgcHJvZmlsZSB9KTtcbiAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgbmV3IERhdGFicmlja3NNb2RlbFJlZ2lzdHJ5KHsgY2xpZW50IH0pLnJlc29sdmUobW9kZWwsIHtcbiAgICByZXF1aXJlc1Rvb2xzOiB0cnVlLFxuICAgIC4uLihtb2RlbENsYXNzID8geyBtb2RlbENsYXNzIH0gOiB7fSksXG4gIH0pO1xuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIG1vZGVsID8gYEdlbmllIENvZGUgbW9kZWwgbm90IGZvdW5kOiAke21vZGVsfWAgOiBcIk5vIHRvb2wtY2FwYWJsZSBjaGF0IG1vZGVsIGlzIGF2YWlsYWJsZVwiLFxuICAgICk7XG4gIH1cbiAgLy8gR2VuaWUgQ29kZSBwaW5zIHRoZSBleGFjdCBzeXN0ZW0uYWkgc2VydmljZSBzbHVnLCB3aGljaCB3aW5zIHJlZ2FyZGxlc3Mgb2YgZ2F0ZXdheSBwcmVmZXJlbmNlLlxuICByZXR1cm4gY29kZXhNb2RlbFNsdWcodGFyZ2V0LCB0cnVlKTtcbn1cblxuLyoqIElucHV0cyBhY2NlcHRlZCBieSBtYW5hZ2VkIEdlbmllIENvZGUgcHJlcGFyYXRpb24gYW5kIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuR2VuaWVDb2RlT3B0aW9ucyB7XG4gIGN3ZD86IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzPzogUGFydGlhbDxHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzPjtcbiAgZ2VuaWVBcmdzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIG9wdGlvbnM/OiBHZW5pZUNvZGVPcHRpb25zO1xufVxuXG4vKiogUmVzb2x2ZWQgaW5zdGFsbGF0aW9uLCBhdXRoLCBsaXN0ZW5lciwgYW5kIGhvbWUgZm9yIG9uZSBpbnZvY2F0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWUge1xuICBiZWFyZXJUb2tlbjogc3RyaW5nO1xuICBnYXRld2F5QmFzZVVybDogc3RyaW5nO1xuICBnYXRld2F5SGVhbHRoVXJsOiBzdHJpbmc7XG4gIGdhdGV3YXlMaXN0ZW46IHN0cmluZztcbiAgZ2F0ZXdheVBvcnQ6IG51bWJlcjtcbiAgaG9tZTogR2VuaWVDb2RlSG9tZTtcbiAgaW5zdGFsbGF0aW9uOiBCaW5Db250ZXh0O1xuICBtb2RlbDogc3RyaW5nO1xuICBwcm9maWxlOiBzdHJpbmc7XG59XG5cbi8qKiBSZXNvbHZlIGF1dGgsIGluc3RhbGxhdGlvbiwgbGlzdGVuZXIsIGFuZCBjb25maWd1cmF0aW9uIGJlZm9yZSBzcGF3bmluZyBjaGlsZHJlbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmVwYXJlR2VuaWVDb2RlUnVudGltZShcbiAgaW5wdXQ6IFJ1bkdlbmllQ29kZU9wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8UHJlcGFyZWRHZW5pZUNvZGVSdW50aW1lPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLmlucHV0LmRlcGVuZGVuY2llcyB9O1xuICBjb25zdCBvcHRpb25zID0gcmVzb2x2ZUdlbmllQ29kZU9wdGlvbnMoaW5wdXQub3B0aW9ucyk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2aW5nIERhdGFicmlja3MgYXV0aGVudGljYXRpb25cIiwge1xuICAgIHJlcXVlc3RlZFByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfSk7XG4gIGNvbnN0IGF1dGhDbGllbnQgPSBhd2FpdCBkZXBlbmRlbmNpZXMuY3JlYXRlQXV0aENsaWVudChcbiAgICBvcHRpb25zLnByb2ZpbGUgPyB7IHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9IDoge30sXG4gICk7XG4gIGNvbnN0IHByb2ZpbGUgPSBhdXRoQ2xpZW50LnByb2ZpbGU7XG4gIGlmICghcHJvZmlsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmllIENvZGUgcmVxdWlyZXMgYSBjb25maWd1cmVkIERhdGFicmlja3MgcHJvZmlsZVwiKTtcbiAgfVxuICBsb2dnZXIuaW5mbyhcInByZXBhcmluZyBHZW5pZSBDb2RlIHJ1bnRpbWVcIiwge1xuICAgIHByb2ZpbGUsXG4gICAgbW9kZWw6IG9wdGlvbnMubW9kZWwsXG4gICAgbW9kZWxDbGFzczogb3B0aW9ucy5tb2RlbENsYXNzLFxuICB9KTtcbiAgY29uc3QgaW5zdGFsbGF0aW9uID0gYXdhaXQgZGVwZW5kZW5jaWVzLmluc3RhbGwoKTtcbiAgY29uc3QgaG9zdCA9IG9wdGlvbnMuZ2F0ZXdheUxpc3Rlbi5ob3N0O1xuICBjb25zdCByZXF1ZXN0ZWRQb3J0ID0gb3B0aW9ucy5nYXRld2F5TGlzdGVuLnBvcnQ7XG4gIGNvbnN0IGdhdGV3YXlQb3J0ID0gYXdhaXQgZGVwZW5kZW5jaWVzLnBvcnQoe1xuICAgIGhvc3QsXG4gICAgLi4uKHJlcXVlc3RlZFBvcnQgPiAwID8geyBwb3J0OiByZXF1ZXN0ZWRQb3J0IH0gOiB7fSksXG4gIH0pO1xuICBpZiAocmVxdWVzdGVkUG9ydCA+IDAgJiYgZ2F0ZXdheVBvcnQgIT09IHJlcXVlc3RlZFBvcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEdlbmllIENvZGUgZ2F0ZXdheSBwb3J0ICR7cmVxdWVzdGVkUG9ydH0gaXMgYWxyZWFkeSBpbiB1c2VgKTtcbiAgfVxuICBjb25zdCBtb2RlbCA9IGF3YWl0IGRlcGVuZGVuY2llcy5yZXNvbHZlQ29kZXhNb2RlbChvcHRpb25zLm1vZGVsLCBwcm9maWxlLCBvcHRpb25zLm1vZGVsQ2xhc3MpO1xuICBsb2dnZXIuaW5mbyhcInJlc29sdmVkIEdlbmllIENvZGUgbW9kZWxcIiwge1xuICAgIHJlcXVlc3RlZDogb3B0aW9ucy5tb2RlbCxcbiAgICBtb2RlbENsYXNzOiBvcHRpb25zLm1vZGVsQ2xhc3MsXG4gICAgbW9kZWwsXG4gIH0pO1xuICBjb25zdCB1cmxIb3N0ID0gaG9zdC5pbmNsdWRlcyhcIjpcIikgPyBgWyR7aG9zdH1dYCA6IGhvc3Q7XG4gIGNvbnN0IGdhdGV3YXlCYXNlVXJsID0gYGh0dHA6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9L3YxYDtcbiAgY29uc3QgZ2F0ZXdheUhlYWx0aFVybCA9IGBodHRwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fS9hcGkvaGVhbHRoemA7XG4gIGNvbnN0IGdhdGV3YXlMaXN0ZW4gPSBgdGNwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fWA7XG4gIGNvbnN0IGJlYXJlclRva2VuID0gZGVwZW5kZW5jaWVzLnRva2VuKCk7XG4gIGNvbnN0IGhvbWUgPSBhd2FpdCBkZXBlbmRlbmNpZXMud3JpdGVDb25maWcoe1xuICAgIGJlYXJlclRva2VuLFxuICAgIGdhdGV3YXlCYXNlVXJsLFxuICAgIG1vZGVsLFxuICAgIHByb2ZpbGUsXG4gICAgcHJvamVjdERpcmVjdG9yeTogaW5wdXQuY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJlYXJlclRva2VuLFxuICAgIGdhdGV3YXlCYXNlVXJsLFxuICAgIGdhdGV3YXlIZWFsdGhVcmwsXG4gICAgZ2F0ZXdheUxpc3RlbixcbiAgICBnYXRld2F5UG9ydCxcbiAgICBob21lLFxuICAgIGluc3RhbGxhdGlvbixcbiAgICBtb2RlbCxcbiAgICBwcm9maWxlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzaGVsbEV4ZWN1dGFibGUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIikgcmV0dXJuIGBcIiR7cGF0aC5yZXBsYWNlQWxsKCdcIicsICdcIlwiJyl9XCJgO1xuICByZXR1cm4gYCcke3BhdGgucmVwbGFjZUFsbChcIidcIiwgXCInXFxcXCcnXCIpfSdgO1xufVxuXG5mdW5jdGlvbiBjaGlsZFBhdGgoLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5wYXRocy5tYXAoZGlybmFtZSksIHByb2Nlc3MuZW52LlBBVEhdLmZpbHRlcihCb29sZWFuKSldLmpvaW4oZGVsaW1pdGVyKTtcbn1cblxuLyoqIFJ1biBHZW5pZSBDb2RlIGFuZCB0aGUgbW9kZWwgZ2F0ZXdheSB1bnRpbCBlaXRoZXIgcHJvY2VzcyBleGl0cy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5HZW5pZUNvZGUoaW5wdXQ6IFJ1bkdlbmllQ29kZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSB7IC4uLkRFRkFVTFRfREVQRU5ERU5DSUVTLCAuLi5pbnB1dC5kZXBlbmRlbmNpZXMgfTtcbiAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBwcmVwYXJlR2VuaWVDb2RlUnVudGltZSh7XG4gICAgLi4uaW5wdXQsXG4gICAgZGVwZW5kZW5jaWVzLFxuICB9KTtcbiAgY29uc3QgZ2F0ZXdheUJpbiA9IGRlcGVuZGVuY2llcy5yZXNvbHZlQmluKGltcG9ydC5tZXRhLnVybCwgXCJkYngtbW9kZWwtZ2F0ZXdheVwiKTtcbiAgY29uc3QgcnVubmVyQmluID0gZGVwZW5kZW5jaWVzLnJlc29sdmVCaW4oaW1wb3J0Lm1ldGEudXJsLCBcImRieC1nZW5pZVwiKTtcbiAgY29uc3QgcGF0aCA9IGNoaWxkUGF0aChnYXRld2F5QmluLCBydW5uZXJCaW4pO1xuICBjb25zdCBydW5uZXJPcHRpb25zOiBHZW5pZUNvZGVSdW5uZXJPcHRpb25zID0ge1xuICAgIGV4ZWN1dGFibGU6IHByZXBhcmVkLmluc3RhbGxhdGlvbi5wYXRoLFxuICAgIGFyZ3VtZW50czogW1wiLXBcIiwgcHJlcGFyZWQuaG9tZS5vdmVybGF5TmFtZSwgLi4uKGlucHV0LmdlbmllQXJncyA/PyBbXSldLFxuICAgIGhvbWU6IHByZXBhcmVkLmhvbWUuaG9tZSxcbiAgICBnYXRld2F5SGVhbHRoVXJsOiBwcmVwYXJlZC5nYXRld2F5SGVhbHRoVXJsLFxuICAgIGJlYXJlclRva2VuOiBwcmVwYXJlZC5iZWFyZXJUb2tlbixcbiAgICBzdGFydHVwVGltZW91dE1zOiA2MF8wMDAsXG4gIH07XG4gIGNvbnN0IHsgcmVzdWx0IH0gPSBkZXBlbmRlbmNpZXMuc3VwZXJ2aXNlKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogc2hlbGxFeGVjdXRhYmxlKGdhdGV3YXlCaW4pLFxuICAgICAgICBuYW1lOiBcImdhdGV3YXlcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgUEFUSDogcGF0aCxcbiAgICAgICAgICBMSVNURU46IHByZXBhcmVkLmdhdGV3YXlMaXN0ZW4sXG4gICAgICAgICAgREFUQUJSSUNLU19DT05GSUdfUFJPRklMRTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICAgICAgICBEQlhfVE9PTFNfTU9ERUxfR0FURVdBWV9CRUFSRVJfVE9LRU46IHByZXBhcmVkLmJlYXJlclRva2VuLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogc2hlbGxFeGVjdXRhYmxlKHJ1bm5lckJpbiksXG4gICAgICAgIG5hbWU6IFwiZ2VuaWVcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgUEFUSDogcGF0aCxcbiAgICAgICAgICBEQVRBQlJJQ0tTX0NPTkZJR19QUk9GSUxFOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgICAgICAgIFtjb25maWdVdGlscy5uYW1lKFJVTk5FUl9PUFRJT05TX0tFWSldOiBKU09OLnN0cmluZ2lmeShydW5uZXJPcHRpb25zKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB7XG4gICAgICBjd2Q6IGlucHV0LmN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgICAgcmF3OiB0cnVlLFxuICAgICAga2lsbE90aGVyc09uOiBbXCJmYWlsdXJlXCIsIFwic3VjY2Vzc1wiXSxcbiAgICAgIGtpbGxTaWduYWw6IFwiU0lHVEVSTVwiLFxuICAgICAga2lsbFRpbWVvdXQ6IDE3XzAwMCxcbiAgICAgIHN1Y2Nlc3NDb25kaXRpb246IFwiY29tbWFuZC1nZW5pZVwiLFxuICAgIH0sXG4gICk7XG4gIGxvZ2dlci5pbmZvKFwic3RhcnRlZCBHZW5pZSBDb2RlIGFuZCBtb2RlbCBnYXRld2F5XCIsIHtcbiAgICBwcm9maWxlOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgIG1vZGVsOiBwcmVwYXJlZC5tb2RlbCxcbiAgICBnYXRld2F5OiBwcmVwYXJlZC5nYXRld2F5QmFzZVVybCxcbiAgICBob21lOiBwcmVwYXJlZC5ob21lLmhvbWUsXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IHJlc3VsdDtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBybShwcmVwYXJlZC5ob21lLm92ZXJsYXlQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { runtime as graphitiRuntime } from "@dbx-tools/appkit-memory/graphiti";
|
|
2
|
-
import { type CliServiceCliDependencies } from "@dbx-tools/cli-service
|
|
3
|
-
import { type
|
|
2
|
+
import { type CliServiceCliDependencies, type CliServiceDefinition } from "@dbx-tools/cli-service";
|
|
3
|
+
import { type GraphitiOptions } from "@dbx-tools/shared-graphiti";
|
|
4
4
|
import { Command } from "commander";
|
|
5
|
-
import { type GraphitiOptions } from "./options.ts";
|
|
6
5
|
type GraphitiRuntimeOptions = graphitiRuntime.GraphitiRuntimeOptions;
|
|
7
6
|
/** Injectable runtime and service lifecycle boundaries for CLI callers. */
|
|
8
7
|
export interface GraphitiCliDependencies {
|
package/lib/src/graphiti/cli.js
CHANGED
|
@@ -11,11 +11,10 @@ import { homedir } from "node:os";
|
|
|
11
11
|
import { join } from "node:path";
|
|
12
12
|
import { runtime as graphitiRuntime } from "@dbx-tools/appkit-memory/graphiti";
|
|
13
13
|
import { addArgs, parseArgs, serializeArgs } from "@dbx-tools/cli-args";
|
|
14
|
-
import { buildServiceCommand } from "@dbx-tools/cli-service
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
14
|
+
import { buildServiceCommand, defineService, } from "@dbx-tools/cli-service";
|
|
15
|
+
import { serviceTrayIcon } from "@dbx-tools/cli-service";
|
|
16
|
+
import { GraphitiCliOptionsSchema, GraphitiOptionsSchema, } from "@dbx-tools/shared-graphiti";
|
|
17
17
|
import { Command } from "commander";
|
|
18
|
-
import { GraphitiCliOptionsSchema, GraphitiOptionsSchema, } from "./options.js";
|
|
19
18
|
import { PACKAGE_VERSION } from "../../index.js";
|
|
20
19
|
const DEFAULT_SERVICE_DIRECTORY = join(homedir(), ".dbx-tools", "services", "graphiti");
|
|
21
20
|
const DEFAULT_SERVICE_HOME = join(homedir(), ".dbx-tools", "graphiti");
|
|
@@ -45,12 +44,12 @@ export function buildProgram(name = "dbx graphiti", dependencies = { run: graphi
|
|
|
45
44
|
.name(name)
|
|
46
45
|
.description("Run Graphiti or manage its current-user desktop service")
|
|
47
46
|
.version(PACKAGE_VERSION, "-v, --version"), GraphitiCliOptionsSchema).action(async () => {
|
|
48
|
-
await dependencies.run(
|
|
47
|
+
await dependencies.run(parseGraphitiOptions(program));
|
|
49
48
|
});
|
|
50
|
-
program.addCommand(buildServiceCommand(() => graphitiServiceDefinition(
|
|
49
|
+
program.addCommand(buildServiceCommand(() => graphitiServiceDefinition(parseGraphitiOptions(program)), dependencies.service));
|
|
51
50
|
return program;
|
|
52
51
|
}
|
|
53
|
-
function
|
|
52
|
+
function parseGraphitiOptions(command) {
|
|
54
53
|
return GraphitiOptionsSchema.parse(parseArgs(command, GraphitiCliOptionsSchema));
|
|
55
54
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoaXRpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsYUFBYSxHQUVkLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEdBRXRCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN4RixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFjdkUsc0ZBQXNGO0FBQ3RGLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsVUFBa0MsRUFBRTtJQUVwQyxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7UUFDM0MsR0FBRyxPQUFPO1FBQ1YsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksb0JBQW9CO0tBQzNELENBQUMsQ0FBQztJQUNILE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3BDLEVBQUUsRUFBRSx3QkFBd0I7UUFDNUIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDakMsYUFBYSxFQUFFLHlCQUF5QjtRQUN4QyxhQUFhLEVBQUU7WUFDYixJQUFJLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtTQUM5RTtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELHNFQUFzRTtBQUN0RSxNQUFNLFVBQVUsWUFBWSxDQUMxQixJQUFJLEdBQUcsY0FBYyxFQUNyQixlQUF3QyxFQUFFLEdBQUcsRUFBRSxlQUFlLENBQUMsV0FBVyxFQUFFO0lBRTVFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FDckIsSUFBSSxPQUFPLEVBQUU7U0FDVixJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsV0FBVyxDQUFDLHlEQUF5RCxDQUFDO1NBQ3RFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLEVBQzVDLHdCQUF3QixDQUN6QixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQ2hCLG1CQUFtQixDQUNqQixHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM5RCxZQUFZLENBQUMsT0FBTyxDQUNyQixDQUNGLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxPQUFnQjtJQUM1QyxPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXItb3duZWQgR3JhcGhpdGkgQ0xJIGFuZCBzaGFyZWQgY3VycmVudC11c2VyIHNlcnZpY2UgZGVmaW5pdGlvbi5cbiAqXG4gKiBUaGlzIG1vZHVsZSBvd25zIGV2ZXJ5IHVzZXItZmFjaW5nIEdyYXBoaXRpIGNvbW1hbmQuIFRoZSBzaGFyZWQgR3JhcGhpdGkgWm9kXG4gKiBzY2hlbWEgb3ducyBpdHMgb3B0aW9ucywgZW52aXJvbm1lbnQgbmFtZXMsIGRlZmF1bHRzLCBhbmQgdmFsaWRhdGlvbi4gVGhlXG4gKiBOb2RlIEdyYXBoaXRpIHBhY2thZ2Ugb3ducyBydW50aW1lIGFuZCBQeXRob24gaW50ZXJhY3Rpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7IHJ1bnRpbWUgYXMgZ3JhcGhpdGlSdW50aW1lIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1lbW9yeS9ncmFwaGl0aVwiO1xuaW1wb3J0IHsgYWRkQXJncywgcGFyc2VBcmdzLCBzZXJpYWxpemVBcmdzIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLWFyZ3NcIjtcbmltcG9ydCB7XG4gIGJ1aWxkU2VydmljZUNvbW1hbmQsXG4gIHR5cGUgQ2xpU2VydmljZUNsaURlcGVuZGVuY2llcyxcbiAgZGVmaW5lU2VydmljZSxcbiAgdHlwZSBDbGlTZXJ2aWNlRGVmaW5pdGlvbixcbn0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2VcIjtcbmltcG9ydCB7IHNlcnZpY2VUcmF5SWNvbiB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEsXG4gIEdyYXBoaXRpT3B0aW9uc1NjaGVtYSxcbiAgdHlwZSBHcmFwaGl0aU9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1ncmFwaGl0aVwiO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcblxuaW1wb3J0IHsgUEFDS0FHRV9WRVJTSU9OIH0gZnJvbSBcIi4uLy4uL2luZGV4LnRzXCI7XG5cbmNvbnN0IERFRkFVTFRfU0VSVklDRV9ESVJFQ1RPUlkgPSBqb2luKGhvbWVkaXIoKSwgXCIuZGJ4LXRvb2xzXCIsIFwic2VydmljZXNcIiwgXCJncmFwaGl0aVwiKTtcbmNvbnN0IERFRkFVTFRfU0VSVklDRV9IT01FID0gam9pbihob21lZGlyKCksIFwiLmRieC10b29sc1wiLCBcImdyYXBoaXRpXCIpO1xudHlwZSBHcmFwaGl0aVJ1bnRpbWVPcHRpb25zID0gZ3JhcGhpdGlSdW50aW1lLkdyYXBoaXRpUnVudGltZU9wdGlvbnM7XG5cbi8qKiBJbmplY3RhYmxlIHJ1bnRpbWUgYW5kIHNlcnZpY2UgbGlmZWN5Y2xlIGJvdW5kYXJpZXMgZm9yIENMSSBjYWxsZXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaGl0aUNsaURlcGVuZGVuY2llcyB7XG4gIC8qKiBSdW4gdGhlIEdyYXBoaXRpIHN0YWNrIHRocm91Z2ggdGhlIE5vZGUgcnVudGltZSBvd25lci4gKi9cbiAgcnVuKG9wdGlvbnM6IEdyYXBoaXRpUnVudGltZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogU2hhcmVkIHNlcnZpY2UgY29tbWFuZCBkZXBlbmRlbmNpZXMgZm9yIHRlc3RzIGFuZCBlbWJlZGRpbmcuICovXG4gIHJlYWRvbmx5IHNlcnZpY2U/OiBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzO1xufVxuXG4vKiogUnVudGltZSBvcHRpb25zIHBlcnNpc3RlZCB3aGVuIGluc3RhbGxpbmcgdGhlIEdyYXBoaXRpIGRlc2t0b3Agc2VydmljZS4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoaXRpU2VydmljZU9wdGlvbnMgPSBHcmFwaGl0aU9wdGlvbnM7XG5cbi8qKiBEZWZpbmUgYSBHcmFwaGl0aSBzZXJ2aWNlIHdpdGhvdXQgZHVwbGljYXRpbmcgaW5zdGFsbGF0aW9uIG9yIGxpZmVjeWNsZSBwb2xpY3kuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhpdGlTZXJ2aWNlRGVmaW5pdGlvbihcbiAgb3B0aW9uczogR3JhcGhpdGlTZXJ2aWNlT3B0aW9ucyA9IHt9LFxuKTogQ2xpU2VydmljZURlZmluaXRpb24ge1xuICBjb25zdCByZXNvbHZlZCA9IEdyYXBoaXRpT3B0aW9uc1NjaGVtYS5wYXJzZSh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBncmFwaGl0aUhvbWU6IG9wdGlvbnMuZ3JhcGhpdGlIb21lID8/IERFRkFVTFRfU0VSVklDRV9IT01FLFxuICB9KTtcbiAgcmV0dXJuIGRlZmluZVNlcnZpY2UoaW1wb3J0Lm1ldGEudXJsLCB7XG4gICAgaWQ6IFwiZGJ4LXRvb2xzLmNsaS1ncmFwaGl0aVwiLFxuICAgIG5hbWU6IFwiZGJ4IGdyYXBoaXRpXCIsXG4gICAgaWNvbjogc2VydmljZVRyYXlJY29uKFwiZ3JhcGhpdGlcIiksXG4gICAgZGF0YURpcmVjdG9yeTogREVGQVVMVF9TRVJWSUNFX0RJUkVDVE9SWSxcbiAgICBweXRob25QYWNrYWdlOiB7XG4gICAgICBuYW1lOiByZXNvbHZlZC5kYXRhYmFzZVVybCA/IFwiZGJ4LXRvb2xzLWdyYXBoaXRpXCIgOiBcImRieC10b29scy1ncmFwaGl0aVtkZXZdXCIsXG4gICAgfSxcbiAgICBjb21tYW5kOiB7XG4gICAgICBiaW5OYW1lOiBcImRieC1ncmFwaGl0aVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKHJlc29sdmVkKSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIEJ1aWxkIGZvcmVncm91bmQgZXhlY3V0aW9uIGFuZCBzaGFyZWQgZGVza3RvcC1zZXJ2aWNlIGNvbW1hbmRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvZ3JhbShcbiAgbmFtZSA9IFwiZGJ4IGdyYXBoaXRpXCIsXG4gIGRlcGVuZGVuY2llczogR3JhcGhpdGlDbGlEZXBlbmRlbmNpZXMgPSB7IHJ1bjogZ3JhcGhpdGlSdW50aW1lLnJ1bkdyYXBoaXRpIH0sXG4pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQoKVxuICAgICAgLm5hbWUobmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbihcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIilcbiAgICAgIC52ZXJzaW9uKFBBQ0tBR0VfVkVSU0lPTiwgXCItdiwgLS12ZXJzaW9uXCIpLFxuICAgIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRlcGVuZGVuY2llcy5ydW4ocGFyc2VHcmFwaGl0aU9wdGlvbnMocHJvZ3JhbSkpO1xuICB9KTtcblxuICBwcm9ncmFtLmFkZENvbW1hbmQoXG4gICAgYnVpbGRTZXJ2aWNlQ29tbWFuZChcbiAgICAgICgpID0+IGdyYXBoaXRpU2VydmljZURlZmluaXRpb24ocGFyc2VHcmFwaGl0aU9wdGlvbnMocHJvZ3JhbSkpLFxuICAgICAgZGVwZW5kZW5jaWVzLnNlcnZpY2UsXG4gICAgKSxcbiAgKTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbmZ1bmN0aW9uIHBhcnNlR3JhcGhpdGlPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpOiBHcmFwaGl0aU9wdGlvbnMge1xuICByZXR1cm4gR3JhcGhpdGlPcHRpb25zU2NoZW1hLnBhcnNlKHBhcnNlQXJncyhjb21tYW5kLCBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEpKTtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** Commander entry point for the pure Node Lakebase proxy. */
|
|
2
|
-
import { type CliServiceCliDependencies } from "@dbx-tools/cli-service
|
|
3
|
-
import { type CliServiceDefinition } from "@dbx-tools/cli-service/definition";
|
|
2
|
+
import { type CliServiceCliDependencies, type CliServiceDefinition } from "@dbx-tools/cli-service";
|
|
4
3
|
import { Command } from "commander";
|
|
5
4
|
import { type LakebaseProxyOptions } from "./options.ts";
|
|
6
5
|
/** Injectable service boundary for Lakebase proxy CLI composition and tests. */
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/** Commander entry point for the pure Node Lakebase proxy. */
|
|
2
2
|
import { addArgs, parseArgs, serializeArgs } from "@dbx-tools/cli-args";
|
|
3
|
-
import { buildServiceCommand } from "@dbx-tools/cli-service
|
|
4
|
-
import {
|
|
5
|
-
import { serviceTrayIcon } from "@dbx-tools/cli-service/icon";
|
|
3
|
+
import { buildServiceCommand, defineService, } from "@dbx-tools/cli-service";
|
|
4
|
+
import { serviceTrayIcon } from "@dbx-tools/cli-service";
|
|
6
5
|
import { connectionUrl } from "@dbx-tools/lakebase";
|
|
7
6
|
import { Command } from "commander";
|
|
8
7
|
import { LakebaseProxyOptionsSchema, LakebaseProxyUrlOptionsSchema, resolveLakebaseProxyOptions, } from "./options.js";
|
|
@@ -53,4 +52,4 @@ function waitForShutdown() {
|
|
|
53
52
|
process.once("SIGTERM", shutdown);
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixhQUFhLEdBRWQsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IsMkJBQTJCLEdBRTVCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2pELDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLFVBQWdDLEVBQUU7SUFFbEMsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEMsRUFBRSxFQUFFLDhCQUE4QjtRQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLElBQUksRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQUksR0FBRyxvQkFBb0IsRUFDM0IsZUFBNkMsRUFBRTtJQUUvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztTQUNkLFdBQVcsQ0FBQyx5REFBeUQsQ0FBQztTQUN0RSxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLHVCQUF1QixFQUFFLEVBQzVCLDBCQUEwQixDQUMzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixNQUFNLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxREFBcUQsQ0FBQyxFQUN6Riw2QkFBNkIsQ0FDOUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1osTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLGdCQUFpQixDQUFDO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksY0FBd0IsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7UUFDOUMsT0FBTyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLFNBQVMsQ0FBRSxDQUFDO0lBQzFGLE9BQU8sQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWU7SUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBDb21tYW5kZXIgZW50cnkgcG9pbnQgZm9yIHRoZSBwdXJlIE5vZGUgTGFrZWJhc2UgcHJveHkuICovXG5cbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncywgc2VyaWFsaXplQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQge1xuICBidWlsZFNlcnZpY2VDb21tYW5kLFxuICB0eXBlIENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXMsXG4gIGRlZmluZVNlcnZpY2UsXG4gIHR5cGUgQ2xpU2VydmljZURlZmluaXRpb24sXG59IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBzZXJ2aWNlVHJheUljb24gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZVwiO1xuaW1wb3J0IHsgY29ubmVjdGlvblVybCB9IGZyb20gXCJAZGJ4LXRvb2xzL2xha2ViYXNlXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuXG5pbXBvcnQge1xuICBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSxcbiAgTGFrZWJhc2VQcm94eVVybE9wdGlvbnNTY2hlbWEsXG4gIHJlc29sdmVMYWtlYmFzZVByb3h5T3B0aW9ucyxcbiAgdHlwZSBMYWtlYmFzZVByb3h5T3B0aW9ucyxcbn0gZnJvbSBcIi4vb3B0aW9ucy50c1wiO1xuaW1wb3J0IHsgTGFrZWJhc2VQcm94eSB9IGZyb20gXCIuL3Byb3h5LnRzXCI7XG5pbXBvcnQgeyBQQUNLQUdFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vaW5kZXgudHNcIjtcblxuLyoqIEluamVjdGFibGUgc2VydmljZSBib3VuZGFyeSBmb3IgTGFrZWJhc2UgcHJveHkgQ0xJIGNvbXBvc2l0aW9uIGFuZCB0ZXN0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFrZWJhc2VQcm94eUNsaURlcGVuZGVuY2llcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2U/OiBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzO1xufVxuXG4vKiogQnVpbGQgdGhlIHRyYXktb25seSBMYWtlYmFzZSBwcm94eSBzZXJ2aWNlIGRlZmluaXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gbGFrZWJhc2VQcm94eVNlcnZpY2VEZWZpbml0aW9uKFxuICBvcHRpb25zOiBMYWtlYmFzZVByb3h5T3B0aW9ucyA9IHt9LFxuKTogQ2xpU2VydmljZURlZmluaXRpb24ge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVMYWtlYmFzZVByb3h5T3B0aW9ucyhvcHRpb25zKTtcbiAgcmV0dXJuIGRlZmluZVNlcnZpY2UoaW1wb3J0Lm1ldGEudXJsLCB7XG4gICAgaWQ6IFwiZGJ4LXRvb2xzLmNsaS1sYWtlYmFzZS1wcm94eVwiLFxuICAgIG5hbWU6IFwiZGJ4IGxha2ViYXNlIHByb3h5XCIsXG4gICAgaWNvbjogc2VydmljZVRyYXlJY29uKFwibGFrZWJhc2VcIiksXG4gICAgY29tbWFuZDoge1xuICAgICAgYmluTmFtZTogXCJkYngtbGFrZWJhc2UtcHJveHlcIixcbiAgICAgIGFyZ3VtZW50czogc2VyaWFsaXplQXJncyhyZXNvbHZlZCksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBCdWlsZCB0aGUgTGFrZWJhc2UgcHJveHkgY29tbWFuZC1saW5lIHByb2dyYW0uICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBuYW1lID0gXCJkYnggbGFrZWJhc2UtcHJveHlcIixcbiAgZGVwZW5kZW5jaWVzOiBMYWtlYmFzZVByb3h5Q2xpRGVwZW5kZW5jaWVzID0ge30sXG4pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQobmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbihcIlJ1biBhIGxvb3BiYWNrIFBvc3RncmVTUUwgcHJveHkgZm9yIERhdGFicmlja3MgTGFrZWJhc2VcIilcbiAgICAgIC52ZXJzaW9uKFBBQ0tBR0VfVkVSU0lPTilcbiAgICAgIC5lbmFibGVQb3NpdGlvbmFsT3B0aW9ucygpLFxuICAgIExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hLFxuICApLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJveHkgPSBuZXcgTGFrZWJhc2VQcm94eShwYXJzZUFyZ3MocHJvZ3JhbSwgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEpKTtcbiAgICBhd2FpdCBwcm94eS5saXN0ZW4oKTtcbiAgICBhd2FpdCB3YWl0Rm9yU2h1dGRvd24oKTtcbiAgICBhd2FpdCBwcm94eS5jbG9zZSgpO1xuICB9KTtcblxuICBjb25zdCB1cmxDb21tYW5kID0gYWRkQXJncyhcbiAgICBwcm9ncmFtLmNvbW1hbmQoXCJ1cmxcIikuZGVzY3JpcHRpb24oXCJGb3JtYXQgYSBsb2NhbCBQb3N0Z3JlU1FMIFVSTCBmb3IgYSBMYWtlYmFzZSB0YXJnZXRcIiksXG4gICAgTGFrZWJhc2VQcm94eVVybE9wdGlvbnNTY2hlbWEsXG4gICkuYWN0aW9uKCgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKHVybENvbW1hbmQsIExha2ViYXNlUHJveHlVcmxPcHRpb25zU2NoZW1hKTtcbiAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLnRhcmdldCA/PyBvcHRpb25zLmxha2ViYXNlRW5kcG9pbnQhO1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke2Nvbm5lY3Rpb25VcmwodGFyZ2V0LCBvcHRpb25zLmxpc3Rlbi5ob3N0LCBvcHRpb25zLmxpc3Rlbi5wb3J0KX1cXG5gKTtcbiAgfSk7XG4gIGxldCBpbnN0YWxsQ29tbWFuZCE6IENvbW1hbmQ7XG4gIGNvbnN0IHNlcnZpY2VDb21tYW5kID0gYnVpbGRTZXJ2aWNlQ29tbWFuZCgoKSA9PiB7XG4gICAgcmV0dXJuIGxha2ViYXNlUHJveHlTZXJ2aWNlRGVmaW5pdGlvbihwYXJzZUFyZ3MoaW5zdGFsbENvbW1hbmQsIExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hKSk7XG4gIH0sIGRlcGVuZGVuY2llcy5zZXJ2aWNlKTtcbiAgaW5zdGFsbENvbW1hbmQgPSBzZXJ2aWNlQ29tbWFuZC5jb21tYW5kcy5maW5kKChjb21tYW5kKSA9PiBjb21tYW5kLm5hbWUoKSA9PT0gXCJpbnN0YWxsXCIpITtcbiAgYWRkQXJncyhpbnN0YWxsQ29tbWFuZCwgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEpO1xuICBwcm9ncmFtLmFkZENvbW1hbmQoc2VydmljZUNvbW1hbmQpO1xuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuZnVuY3Rpb24gd2FpdEZvclNodXRkb3duKCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBzaHV0ZG93biA9ICgpID0+IHJlc29sdmUoKTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgc2h1dGRvd24pO1xuICAgIHByb2Nlc3Mub25jZShcIlNJR1RFUk1cIiwgc2h1dGRvd24pO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -3,30 +3,28 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { PostgresConfigOptionsSchema, listenAddressSchema, DatabricksOptionsSchema, LakebaseOptionsSchema, } from "@dbx-tools/shared-core";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
const text = (description) => z.string().trim().min(1).optional().describe(description);
|
|
9
9
|
export const LakebaseProxyOptionsSchema = z
|
|
10
10
|
.object({
|
|
11
|
-
...
|
|
12
|
-
listen:
|
|
13
|
-
.listenAddressSchema({ port: 5432, loopback: true })
|
|
14
|
-
.describe("Loopback listener address."),
|
|
11
|
+
...PostgresConfigOptionsSchema.shape,
|
|
12
|
+
listen: listenAddressSchema({ port: 5432, loopback: true }).describe("Loopback listener address."),
|
|
15
13
|
startupTimeoutSeconds: z.coerce
|
|
16
14
|
.number()
|
|
17
15
|
.int()
|
|
18
16
|
.nonnegative()
|
|
19
17
|
.default(30)
|
|
20
18
|
.describe("Startup timeout in seconds."),
|
|
21
|
-
profile:
|
|
19
|
+
profile: DatabricksOptionsSchema.shape.profile.describe("Exact Databricks profile."),
|
|
22
20
|
})
|
|
23
21
|
.strict()
|
|
24
22
|
.describe("Lakebase proxy listener and service options.");
|
|
25
23
|
export const LakebaseProxyUrlOptionsSchema = z
|
|
26
24
|
.object({
|
|
27
25
|
target: text("Lakebase project, resource path, host, or URL."),
|
|
28
|
-
lakebaseEndpoint:
|
|
29
|
-
listen:
|
|
26
|
+
lakebaseEndpoint: LakebaseOptionsSchema.shape.lakebaseEndpoint,
|
|
27
|
+
listen: listenAddressSchema({ port: 5432 }).describe("Local proxy address."),
|
|
30
28
|
})
|
|
31
29
|
.strict()
|
|
32
30
|
.refine((configured) => configured.target !== undefined || configured.lakebaseEndpoint !== undefined, {
|
|
@@ -38,4 +36,4 @@ export const LakebaseProxyUrlOptionsSchema = z
|
|
|
38
36
|
export function resolveLakebaseProxyOptions(options = {}) {
|
|
39
37
|
return LakebaseProxyOptionsSchema.parse(options);
|
|
40
38
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIscUJBQXFCLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLElBQUksR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUM7S0FDeEMsTUFBTSxDQUFDO0lBQ04sR0FBRywyQkFBMkIsQ0FBQyxLQUFLO0lBQ3BDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUNsRSw0QkFBNEIsQ0FDN0I7SUFDRCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsTUFBTTtTQUM1QixNQUFNLEVBQVU7U0FDaEIsR0FBRyxFQUFFO1NBQ0wsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNYLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQztJQUMxQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUM7Q0FDckYsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUM7S0FDM0MsTUFBTSxDQUFDO0lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxnREFBZ0QsQ0FBQztJQUM5RCxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO0lBQzlELE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztDQUM3RSxDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsTUFBTSxDQUNMLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUM1RjtJQUNFLE9BQU8sRUFBRSxrQ0FBa0M7SUFDM0MsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQ2pCLENBQ0Y7S0FDQSxRQUFRLENBQUMseURBQXlELENBQUMsQ0FBQztBQVF2RSw0REFBNEQ7QUFDNUQsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxVQUFnQyxFQUFFO0lBRWxDLE9BQU8sMEJBQTBCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExha2ViYXNlIHByb3h5IGxpc3RlbmVyLCBzZXJ2aWNlLCBhbmQgVVJMIGNvbW1hbmQgb3B0aW9ucy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHtcbiAgUG9zdGdyZXNDb25maWdPcHRpb25zU2NoZW1hLFxuICBsaXN0ZW5BZGRyZXNzU2NoZW1hLFxuICBEYXRhYnJpY2tzT3B0aW9uc1NjaGVtYSxcbiAgTGFrZWJhc2VPcHRpb25zU2NoZW1hLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuY29uc3QgdGV4dCA9IChkZXNjcmlwdGlvbjogc3RyaW5nKSA9PiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkub3B0aW9uYWwoKS5kZXNjcmliZShkZXNjcmlwdGlvbik7XG5cbmV4cG9ydCBjb25zdCBMYWtlYmFzZVByb3h5T3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgLi4uUG9zdGdyZXNDb25maWdPcHRpb25zU2NoZW1hLnNoYXBlLFxuICAgIGxpc3RlbjogbGlzdGVuQWRkcmVzc1NjaGVtYSh7IHBvcnQ6IDU0MzIsIGxvb3BiYWNrOiB0cnVlIH0pLmRlc2NyaWJlKFxuICAgICAgXCJMb29wYmFjayBsaXN0ZW5lciBhZGRyZXNzLlwiLFxuICAgICksXG4gICAgc3RhcnR1cFRpbWVvdXRTZWNvbmRzOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcjxudW1iZXI+KClcbiAgICAgIC5pbnQoKVxuICAgICAgLm5vbm5lZ2F0aXZlKClcbiAgICAgIC5kZWZhdWx0KDMwKVxuICAgICAgLmRlc2NyaWJlKFwiU3RhcnR1cCB0aW1lb3V0IGluIHNlY29uZHMuXCIpLFxuICAgIHByb2ZpbGU6IERhdGFicmlja3NPcHRpb25zU2NoZW1hLnNoYXBlLnByb2ZpbGUuZGVzY3JpYmUoXCJFeGFjdCBEYXRhYnJpY2tzIHByb2ZpbGUuXCIpLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiTGFrZWJhc2UgcHJveHkgbGlzdGVuZXIgYW5kIHNlcnZpY2Ugb3B0aW9ucy5cIik7XG5cbmV4cG9ydCBjb25zdCBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdGFyZ2V0OiB0ZXh0KFwiTGFrZWJhc2UgcHJvamVjdCwgcmVzb3VyY2UgcGF0aCwgaG9zdCwgb3IgVVJMLlwiKSxcbiAgICBsYWtlYmFzZUVuZHBvaW50OiBMYWtlYmFzZU9wdGlvbnNTY2hlbWEuc2hhcGUubGFrZWJhc2VFbmRwb2ludCxcbiAgICBsaXN0ZW46IGxpc3RlbkFkZHJlc3NTY2hlbWEoeyBwb3J0OiA1NDMyIH0pLmRlc2NyaWJlKFwiTG9jYWwgcHJveHkgYWRkcmVzcy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAucmVmaW5lKFxuICAgIChjb25maWd1cmVkKSA9PiBjb25maWd1cmVkLnRhcmdldCAhPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ3VyZWQubGFrZWJhc2VFbmRwb2ludCAhPT0gdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6IFwiVVJMIHJlcXVpcmVzIHRhcmdldCBvciBlbmRwb2ludC5cIixcbiAgICAgIHBhdGg6IFtcInRhcmdldFwiXSxcbiAgICB9LFxuICApXG4gIC5kZXNjcmliZShcIk9wdGlvbnMgZm9yIGZvcm1hdHRpbmcgYSBsb2NhbCBMYWtlYmFzZSBQb3N0Z3JlU1FMIFVSTC5cIik7XG5cbmV4cG9ydCB0eXBlIExha2ViYXNlUHJveHlPcHRpb25zID0gei5pbnB1dDx0eXBlb2YgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zID0gei5vdXRwdXQ8dHlwZW9mIExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgTGFrZWJhc2VQcm94eVVybE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgTGFrZWJhc2VQcm94eVVybE9wdGlvbnNTY2hlbWE+O1xuXG4vKiogVmFsaWRhdGUgYW5kIGRlZmF1bHQgTGFrZWJhc2UgcHJveHkgbGlzdGVuZXIgb3B0aW9ucy4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTGFrZWJhc2VQcm94eU9wdGlvbnMoXG4gIG9wdGlvbnM6IExha2ViYXNlUHJveHlPcHRpb25zID0ge30sXG4pOiBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zIHtcbiAgcmV0dXJuIExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hLnBhcnNlKG9wdGlvbnMpO1xufVxuIl19
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createServer } from "node:net";
|
|
3
3
|
import { LakebaseClient, requireAddress } from "@dbx-tools/lakebase";
|
|
4
4
|
import { postgresConnectionOptions } from "@dbx-tools/postgres";
|
|
5
|
-
import {
|
|
5
|
+
import { log, toError, trimToUndefined } from "@dbx-tools/shared-core";
|
|
6
6
|
import { Client } from "pg";
|
|
7
7
|
import { CancellationRegistry } from "./cancellation.js";
|
|
8
8
|
import { resolveLakebaseProxyOptions, } from "./options.js";
|
|
@@ -78,29 +78,29 @@ export class LakebaseProxy {
|
|
|
78
78
|
target = requireAddress(targetText);
|
|
79
79
|
}
|
|
80
80
|
catch (error) {
|
|
81
|
-
throw new ProxyFailure(message(error), "3D000", { cause:
|
|
81
|
+
throw new ProxyFailure(message(error), "3D000", { cause: toError(error) });
|
|
82
82
|
}
|
|
83
|
-
const startupUser =
|
|
83
|
+
const startupUser = trimToUndefined(startup.parameters.user);
|
|
84
84
|
let resolved;
|
|
85
85
|
try {
|
|
86
86
|
resolved = await this.client.resolve(target, startupUser);
|
|
87
87
|
}
|
|
88
88
|
catch (error) {
|
|
89
|
-
throw new ProxyFailure(message(error), "3D000", { cause:
|
|
89
|
+
throw new ProxyFailure(message(error), "3D000", { cause: toError(error) });
|
|
90
90
|
}
|
|
91
91
|
let password;
|
|
92
92
|
try {
|
|
93
93
|
password = await this.client.generateDatabaseCredential(resolved.endpoint, startupUser);
|
|
94
94
|
}
|
|
95
95
|
catch (error) {
|
|
96
|
-
throw new ProxyFailure(message(error), "28000", { cause:
|
|
96
|
+
throw new ProxyFailure(message(error), "28000", { cause: toError(error) });
|
|
97
97
|
}
|
|
98
98
|
let connected;
|
|
99
99
|
try {
|
|
100
100
|
connected = await connectUpstream(resolved, password, postgresConnectionOptions(startup.parameters, this.options.postgresRole));
|
|
101
101
|
}
|
|
102
102
|
catch (error) {
|
|
103
|
-
throw new ProxyFailure(message(error), "08001", { cause:
|
|
103
|
+
throw new ProxyFailure(message(error), "08001", { cause: toError(error) });
|
|
104
104
|
}
|
|
105
105
|
upstream = connected.socket;
|
|
106
106
|
cancellation = this.cancellations.register({
|
|
@@ -125,7 +125,7 @@ export class LakebaseProxy {
|
|
|
125
125
|
? error
|
|
126
126
|
: error instanceof PostgresProtocolError
|
|
127
127
|
? new ProxyFailure(error.message, "08P01", { cause: error })
|
|
128
|
-
: new ProxyFailure(message(error), "08001", { cause:
|
|
128
|
+
: new ProxyFailure(message(error), "08001", { cause: toError(error) });
|
|
129
129
|
logger.warn("Lakebase connection failed", {
|
|
130
130
|
durationMs: Date.now() - started,
|
|
131
131
|
error: failure,
|
|
@@ -197,4 +197,4 @@ class ProxyFailure extends Error {
|
|
|
197
197
|
this.sqlstate = sqlstate;
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQTRCLE1BQU0sVUFBVSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUU1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsMkJBQTJCLEdBRzVCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQW9CNUMsZ0ZBQWdGO0FBQ2hGLE1BQU0sT0FBTyxhQUFhO0lBQ1AsTUFBTSxDQUFpQjtJQUN2QixPQUFPLENBQStCO0lBQ3RDLGFBQWEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDcEQsTUFBTSxDQUFVO0lBQ2hCLFVBQVUsQ0FBa0M7SUFDNUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVuQixZQUFZLFVBQWdDLEVBQUU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FB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RUFBRSxNQUFNLENBQUMsU0FBUztRQUMzQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDM0IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsTUFBYztJQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsS0FBYztJQUM3QixPQUFPLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxZQUFhLFNBQVEsS0FBSztJQUduQjtJQUZYLFlBQ0UsT0FBZSxFQUNOLFdBQVcsT0FBTyxFQUMzQixPQUFzQjtRQUV0QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSGYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUk3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHVyZSBOb2RlIFBvc3RncmVTUUwgd2lyZSBwcm94eSBmb3IgRGF0YWJyaWNrcyBMYWtlYmFzZS4gKi9cblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyLCB0eXBlIFNlcnZlciwgdHlwZSBTb2NrZXQgfSBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCB0eXBlIHsgRHVwbGV4IH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7XG5pbXBvcnQgeyBMYWtlYmFzZUNsaWVudCwgcmVxdWlyZUFkZHJlc3MgfSBmcm9tIFwiQGRieC10b29scy9sYWtlYmFzZVwiO1xuaW1wb3J0IHsgcG9zdGdyZXNDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL3Bvc3RncmVzXCI7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBsb2csIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IENsaWVudCB9IGZyb20gXCJwZ1wiO1xuXG5pbXBvcnQgeyBDYW5jZWxsYXRpb25SZWdpc3RyeSB9IGZyb20gXCIuL2NhbmNlbGxhdGlvbi50c1wiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUxha2ViYXNlUHJveHlPcHRpb25zLFxuICB0eXBlIExha2ViYXNlUHJveHlPcHRpb25zLFxuICB0eXBlIFJlc29sdmVkTGFrZWJhc2VQcm94eU9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmltcG9ydCB7XG4gIGZhdGFsRXJyb3IsXG4gIFBvc3RncmVzUHJvdG9jb2xFcnJvcixcbiAgcmVhZEluaXRpYWxNZXNzYWdlLFxuICBzdGFydHVwQ29tcGxldGUsXG4gIHVwc3RyZWFtU3RhcnR1cFBhcmFtZXRlcnMsXG4gIHR5cGUgQ2FuY2VsTWVzc2FnZSxcbn0gZnJvbSBcIi4vcHJvdG9jb2wudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImxha2ViYXNlLXByb3h5XCIpO1xuXG5pbnRlcmZhY2UgUGdDb25uZWN0aW9uSW50ZXJuYWxzIHtcbiAgc3RyZWFtOiBEdXBsZXg7XG4gIG9uKGV2ZW50OiBcInBhcmFtZXRlclN0YXR1c1wiLCBsaXN0ZW5lcjogKG1lc3NhZ2U6IFBhcmFtZXRlclN0YXR1cykgPT4gdm9pZCk6IHZvaWQ7XG59XG5cbnR5cGUgUGdDbGllbnRJbnRlcm5hbHMgPSBDbGllbnQgJiB7XG4gIGNvbm5lY3Rpb246IENsaWVudFtcImNvbm5lY3Rpb25cIl0gJiBQZ0Nvbm5lY3Rpb25JbnRlcm5hbHM7XG4gIHByb2Nlc3NJRDogbnVtYmVyO1xuICBzZWNyZXRLZXk6IG51bWJlcjtcbiAgX3R4U3RhdHVzPzogc3RyaW5nO1xuICBnZXRTdGFydHVwQ29uZigpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxuaW50ZXJmYWNlIFBhcmFtZXRlclN0YXR1cyB7XG4gIHBhcmFtZXRlck5hbWU6IHN0cmluZztcbiAgcGFyYW1ldGVyVmFsdWU6IHN0cmluZztcbn1cblxuLyoqIExvb3BiYWNrIFBvc3RncmVTUUwgd2lyZSBwcm94eSBiYWNrZWQgYnkgRGF0YWJyaWNrcyBMYWtlYmFzZSBjcmVkZW50aWFscy4gKi9cbmV4cG9ydCBjbGFzcyBMYWtlYmFzZVByb3h5IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IExha2ViYXNlQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFJlc29sdmVkTGFrZWJhc2VQcm94eU9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FuY2VsbGF0aW9ucyA9IG5ldyBDYW5jZWxsYXRpb25SZWdpc3RyeSgpO1xuICBwcml2YXRlIHNlcnZlcj86IFNlcnZlcjtcbiAgcHJpdmF0ZSBzdGF0c1RpbWVyPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICBwcml2YXRlIG9wZW5lZCA9IDA7XG4gIHByaXZhdGUgY2xvc2VkID0gMDtcbiAgcHJpdmF0ZSBmYWlsZWQgPSAwO1xuICBwcml2YXRlIGFjdGl2ZSA9IDA7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGFrZWJhc2VQcm94eU9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHJlc29sdmVMYWtlYmFzZVByb3h5T3B0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBMYWtlYmFzZUNsaWVudCh7IHByb2ZpbGU6IHRoaXMub3B0aW9ucy5wcm9maWxlIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdGVuKCk6IFByb21pc2U8eyBob3N0OiBzdHJpbmc7IHBvcnQ6IG51bWJlciB9PiB7XG4gICAgaWYgKHRoaXMuc2VydmVyKSB0aHJvdyBuZXcgRXJyb3IoXCJMYWtlYmFzZSBwcm94eSBpcyBhbHJlYWR5IGxpc3RlbmluZ1wiKTtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5vcHRpb25zLmxpc3Rlbi5ob3N0O1xuICAgIGNvbnN0IHNlcnZlciA9IGNyZWF0ZVNlcnZlcigoc29ja2V0KSA9PiB2b2lkIHRoaXMuaGFuZGxlKHNvY2tldCkpO1xuICAgIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICAgIHRoaXMuc3RhdHNUaW1lciA9IHNldEludGVydmFsKCgpID0+IHRoaXMucmVwb3J0U3RhdHMoKSwgNjBfMDAwKTtcbiAgICB0aGlzLnN0YXRzVGltZXIudW5yZWYoKTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzZXJ2ZXIub25jZShcImVycm9yXCIsIHJlamVjdCk7XG4gICAgICBzZXJ2ZXIubGlzdGVuKHRoaXMub3B0aW9ucy5saXN0ZW4ucG9ydCwgaG9zdCwgKCkgPT4ge1xuICAgICAgICBzZXJ2ZXIub2ZmKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IHNlcnZlci5hZGRyZXNzKCk7XG4gICAgaWYgKCFhZGRyZXNzIHx8IHR5cGVvZiBhZGRyZXNzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMYWtlYmFzZSBsaXN0ZW5lciBoYXMgbm8gYWRkcmVzc1wiKTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oXCJMYWtlYmFzZSBwcm94eSBsaXN0ZW5pbmdcIiwgeyBob3N0OiBhZGRyZXNzLmFkZHJlc3MsIHBvcnQ6IGFkZHJlc3MucG9ydCB9KTtcbiAgICByZXR1cm4geyBob3N0OiBhZGRyZXNzLmFkZHJlc3MsIHBvcnQ6IGFkZHJlc3MucG9ydCB9O1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VydmVyID0gdGhpcy5zZXJ2ZXI7XG4gICAgdGhpcy5zZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuc3RhdHNUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnN0YXRzVGltZXIpO1xuICAgIHRoaXMuc3RhdHNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXNlcnZlcikgcmV0dXJuO1xuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICBzZXJ2ZXIuY2xvc2UoKGVycm9yKSA9PiAoZXJyb3IgPyByZWplY3QoZXJyb3IpIDogcmVzb2x2ZSgpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlKGxvY2FsOiBTb2NrZXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdGFydGVkID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgdXBzdHJlYW06IER1cGxleCB8IHVuZGVmaW5lZDtcbiAgICBsZXQgY2FuY2VsbGF0aW9uOiBDYW5jZWxNZXNzYWdlIHwgdW5kZWZpbmVkO1xuICAgIHRoaXMub3BlbmVkICs9IDE7XG4gICAgdGhpcy5hY3RpdmUgKz0gMTtcbiAgICB0cnkge1xuICAgICAgbG9jYWwuc2V0Tm9EZWxheSh0cnVlKTtcbiAgICAgIGNvbnN0IGluaXRpYWwgPSBhd2FpdCByZWFkSW5pdGlhbE1lc3NhZ2UobG9jYWwsIHRoaXMub3B0aW9ucy5zdGFydHVwVGltZW91dFNlY29uZHMgKiAxMDAwKTtcbiAgICAgIGlmIChpbml0aWFsLmtpbmQgPT09IFwiY2FuY2VsXCIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jYW5jZWxsYXRpb25zLmZvcndhcmQoaW5pdGlhbCk7XG4gICAgICAgIGxvY2FsLmVuZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBzdGFydHVwID0gaW5pdGlhbDtcbiAgICAgIGNvbnN0IHRhcmdldFRleHQgPSBzdGFydHVwLnBhcmFtZXRlcnMuZGF0YWJhc2U7XG4gICAgICBpZiAoIXRhcmdldFRleHQpIHRocm93IG5ldyBQcm94eUZhaWx1cmUoXCJzdGFydHVwIGRhdGFiYXNlIGlzIHJlcXVpcmVkXCIsIFwiM0QwMDBcIik7XG4gICAgICBsZXQgdGFyZ2V0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGFyZ2V0ID0gcmVxdWlyZUFkZHJlc3ModGFyZ2V0VGV4dCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjNEMDAwXCIsIHsgY2F1c2U6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvcikgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzdGFydHVwVXNlciA9IHN0cmluZ1V0aWxzLnRyaW1Ub1VuZGVmaW5lZChzdGFydHVwLnBhcmFtZXRlcnMudXNlcik7XG4gICAgICBsZXQgcmVzb2x2ZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByZXNvbHZlZCA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc29sdmUodGFyZ2V0LCBzdGFydHVwVXNlcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjNEMDAwXCIsIHsgY2F1c2U6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvcikgfSk7XG4gICAgICB9XG4gICAgICBsZXQgcGFzc3dvcmQ7XG4gICAgICB0cnkge1xuICAgICAgICBwYXNzd29yZCA9IGF3YWl0IHRoaXMuY2xpZW50LmdlbmVyYXRlRGF0YWJhc2VDcmVkZW50aWFsKHJlc29sdmVkLmVuZHBvaW50LCBzdGFydHVwVXNlcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjI4MDAwXCIsIHsgY2F1c2U6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvcikgfSk7XG4gICAgICB9XG4gICAgICBsZXQgY29ubmVjdGVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29ubmVjdGVkID0gYXdhaXQgY29ubmVjdFVwc3RyZWFtKFxuICAgICAgICAgIHJlc29sdmVkLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBvc3RncmVzQ29ubmVjdGlvbk9wdGlvbnMoc3RhcnR1cC5wYXJhbWV0ZXJzLCB0aGlzLm9wdGlvbnMucG9zdGdyZXNSb2xlKSxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBQcm94eUZhaWx1cmUobWVzc2FnZShlcnJvciksIFwiMDgwMDFcIiwgeyBjYXVzZTogZXJyb3JVdGlscy50b0Vycm9yKGVycm9yKSB9KTtcbiAgICAgIH1cbiAgICAgIHVwc3RyZWFtID0gY29ubmVjdGVkLnNvY2tldDtcbiAgICAgIGNhbmNlbGxhdGlvbiA9IHRoaXMuY2FuY2VsbGF0aW9ucy5yZWdpc3Rlcih7XG4gICAgICAgIGhvc3Q6IHJlc29sdmVkLmhvc3QsXG4gICAgICAgIHBvcnQ6IHJlc29sdmVkLnBvcnQsXG4gICAgICAgIHByb2Nlc3NJZDogY29ubmVjdGVkLnByb2Nlc3NJZCxcbiAgICAgICAgc2VjcmV0S2V5OiBjb25uZWN0ZWQuc2VjcmV0S2V5LFxuICAgICAgfSk7XG4gICAgICBsb2NhbC53cml0ZShcbiAgICAgICAgc3RhcnR1cENvbXBsZXRlKFxuICAgICAgICAgIGNvbm5lY3RlZC5wYXJhbWV0ZXJzLFxuICAgICAgICAgIGNhbmNlbGxhdGlvbi5wcm9jZXNzSWQsXG4gICAgICAgICAgY2FuY2VsbGF0aW9uLnNlY3JldEtleSxcbiAgICAgICAgICBjb25uZWN0ZWQudHJhbnNhY3Rpb25TdGF0dXMsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgbG9jYWwucGlwZSh1cHN0cmVhbSkucGlwZShsb2NhbCk7XG4gICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW2Nsb3NlZChsb2NhbCksIGNsb3NlZCh1cHN0cmVhbSldKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkxha2ViYXNlIGNvbm5lY3Rpb24gY2xvc2VkXCIsIHtcbiAgICAgICAgZHVyYXRpb25NczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWQsXG4gICAgICAgIHByb2plY3Q6IHJlc29sdmVkLnByb2plY3QsXG4gICAgICAgIGJyYW5jaDogcmVzb2x2ZWQuYnJhbmNoLFxuICAgICAgICBlbmRwb2ludDogcmVzb2x2ZWQuZW5kcG9pbnQsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5mYWlsZWQgKz0gMTtcbiAgICAgIGNvbnN0IGZhaWx1cmUgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIFByb3h5RmFpbHVyZVxuICAgICAgICAgID8gZXJyb3JcbiAgICAgICAgICA6IGVycm9yIGluc3RhbmNlb2YgUG9zdGdyZXNQcm90b2NvbEVycm9yXG4gICAgICAgICAgICA/IG5ldyBQcm94eUZhaWx1cmUoZXJyb3IubWVzc2FnZSwgXCIwOFAwMVwiLCB7IGNhdXNlOiBlcnJvciB9KVxuICAgICAgICAgICAgOiBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjA4MDAxXCIsIHsgY2F1c2U6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvcikgfSk7XG4gICAgICBsb2dnZXIud2FybihcIkxha2ViYXNlIGNvbm5lY3Rpb24gZmFpbGVkXCIsIHtcbiAgICAgICAgZHVyYXRpb25NczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWQsXG4gICAgICAgIGVycm9yOiBmYWlsdXJlLFxuICAgICAgfSk7XG4gICAgICBpZiAoIWxvY2FsLmRlc3Ryb3llZCkgbG9jYWwuZW5kKGZhdGFsRXJyb3IoZmFpbHVyZS5tZXNzYWdlLCBmYWlsdXJlLnNxbHN0YXRlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjYW5jZWxsYXRpb24pIHRoaXMuY2FuY2VsbGF0aW9ucy5yZW1vdmUoY2FuY2VsbGF0aW9uKTtcbiAgICAgIHVwc3RyZWFtPy5kZXN0cm95KCk7XG4gICAgICBsb2NhbC5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNsb3NlZCArPSAxO1xuICAgICAgdGhpcy5hY3RpdmUgLT0gMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcG9ydFN0YXRzKCk6IHZvaWQge1xuICAgIGxvZ2dlci5pbmZvKFwiTGFrZWJhc2UgcHJveHkgY29ubmVjdGlvbnNcIiwge1xuICAgICAgb3BlbmVkOiB0aGlzLm9wZW5lZCxcbiAgICAgIGNsb3NlZDogdGhpcy5jbG9zZWQsXG4gICAgICBmYWlsZWQ6IHRoaXMuZmFpbGVkLFxuICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZSxcbiAgICB9KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0VXBzdHJlYW0oXG4gIHJlc29sdmVkOiBBd2FpdGVkPFJldHVyblR5cGU8TGFrZWJhc2VDbGllbnRbXCJyZXNvbHZlXCJdPj4sXG4gIHBhc3N3b3JkOiBzdHJpbmcsXG4gIHN0YXJ0dXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBQcm9taXNlPHtcbiAgc29ja2V0OiBEdXBsZXg7XG4gIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIHByb2Nlc3NJZDogbnVtYmVyO1xuICBzZWNyZXRLZXk6IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25TdGF0dXM6IHN0cmluZztcbn0+IHtcbiAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudCh7XG4gICAgaG9zdDogcmVzb2x2ZWQuaG9zdCxcbiAgICBwb3J0OiByZXNvbHZlZC5wb3J0LFxuICAgIGRhdGFiYXNlOiByZXNvbHZlZC5kYXRhYmFzZSxcbiAgICB1c2VyOiByZXNvbHZlZC51c2VyLFxuICAgIHBhc3N3b3JkLFxuICAgIHNzbDogeyByZWplY3RVbmF1dGhvcml6ZWQ6IHRydWUsIHNlcnZlcm5hbWU6IHJlc29sdmVkLmhvc3QgfSxcbiAgICBhcHBsaWNhdGlvbl9uYW1lOiBzdGFydHVwLmFwcGxpY2F0aW9uX25hbWUsXG4gICAgY29ubmVjdGlvblRpbWVvdXRNaWxsaXM6IDMwXzAwMCxcbiAgfSkgYXMgdW5rbm93biBhcyBQZ0NsaWVudEludGVybmFscztcbiAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNsaWVudC5nZXRTdGFydHVwQ29uZiA9ICgpID0+XG4gICAgdXBzdHJlYW1TdGFydHVwUGFyYW1ldGVycyhzdGFydHVwLCByZXNvbHZlZC51c2VyLCByZXNvbHZlZC5kYXRhYmFzZSk7XG4gIGNsaWVudC5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcIkxha2ViYXNlIHVwc3RyZWFtIGNsaWVudCBjbG9zZWRcIiwgeyBlcnJvciB9KTtcbiAgfSk7XG4gIGNsaWVudC5jb25uZWN0aW9uLm9uKFwicGFyYW1ldGVyU3RhdHVzXCIsIChtZXNzYWdlKSA9PiB7XG4gICAgcGFyYW1ldGVycy5zZXQobWVzc2FnZS5wYXJhbWV0ZXJOYW1lLCBtZXNzYWdlLnBhcmFtZXRlclZhbHVlKTtcbiAgfSk7XG4gIGF3YWl0IGNsaWVudC5jb25uZWN0KCk7XG4gIGNvbnN0IHNvY2tldCA9IGNsaWVudC5jb25uZWN0aW9uLnN0cmVhbTtcbiAgc29ja2V0LnJlbW92ZUFsbExpc3RlbmVycyhcImRhdGFcIik7XG4gIHJldHVybiB7XG4gICAgc29ja2V0LFxuICAgIHBhcmFtZXRlcnMsXG4gICAgcHJvY2Vzc0lkOiBjbGllbnQucHJvY2Vzc0lELFxuICAgIHNlY3JldEtleTogY2xpZW50LnNlY3JldEtleSxcbiAgICB0cmFuc2FjdGlvblN0YXR1czogY2xpZW50Ll90eFN0YXR1cyA/PyBcIklcIixcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvc2VkKHNvY2tldDogRHVwbGV4KTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc29ja2V0Lm9uY2UoXCJjbG9zZVwiLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgIHNvY2tldC5vbmNlKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1lc3NhZ2UoZXJyb3I6IHVua25vd24pOiBzdHJpbmcge1xuICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xufVxuXG5jbGFzcyBQcm94eUZhaWx1cmUgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICByZWFkb25seSBzcWxzdGF0ZSA9IFwiMDgwMDFcIixcbiAgICBvcHRpb25zPzogRXJyb3JPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQTRCLE1BQU0sVUFBVSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUU1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsMkJBQTJCLEdBRzVCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQW9CNUMsZ0ZBQWdGO0FBQ2hGLE1BQU0sT0FBTyxhQUFhO0lBQ1AsTUFBTSxDQUFpQjtJQUN2QixPQUFPLENBQStCO0lBQ3RDLGFBQWEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDcEQsTUFBTSxDQUFVO0lBQ2hCLFVBQVUsQ0FBa0M7SUFDNUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVuQixZQUFZLFVBQWdDLEVBQUU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FB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QWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsTUFBYztJQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsS0FBYztJQUM3QixPQUFPLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxZQUFhLFNBQVEsS0FBSztJQUduQjtJQUZYLFlBQ0UsT0FBZSxFQUNOLFdBQVcsT0FBTyxFQUMzQixPQUFzQjtRQUV0QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSGYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUk3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHVyZSBOb2RlIFBvc3RncmVTUUwgd2lyZSBwcm94eSBmb3IgRGF0YWJyaWNrcyBMYWtlYmFzZS4gKi9cblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyLCB0eXBlIFNlcnZlciwgdHlwZSBTb2NrZXQgfSBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCB0eXBlIHsgRHVwbGV4IH0gZnJvbSBcIm5vZGU6c3RyZWFtXCI7XG5pbXBvcnQgeyBMYWtlYmFzZUNsaWVudCwgcmVxdWlyZUFkZHJlc3MgfSBmcm9tIFwiQGRieC10b29scy9sYWtlYmFzZVwiO1xuaW1wb3J0IHsgcG9zdGdyZXNDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL3Bvc3RncmVzXCI7XG5pbXBvcnQgeyBsb2csIHRvRXJyb3IsIHRyaW1Ub1VuZGVmaW5lZCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwicGdcIjtcblxuaW1wb3J0IHsgQ2FuY2VsbGF0aW9uUmVnaXN0cnkgfSBmcm9tIFwiLi9jYW5jZWxsYXRpb24udHNcIjtcbmltcG9ydCB7XG4gIHJlc29sdmVMYWtlYmFzZVByb3h5T3B0aW9ucyxcbiAgdHlwZSBMYWtlYmFzZVByb3h5T3B0aW9ucyxcbiAgdHlwZSBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zLFxufSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQge1xuICBmYXRhbEVycm9yLFxuICBQb3N0Z3Jlc1Byb3RvY29sRXJyb3IsXG4gIHJlYWRJbml0aWFsTWVzc2FnZSxcbiAgc3RhcnR1cENvbXBsZXRlLFxuICB1cHN0cmVhbVN0YXJ0dXBQYXJhbWV0ZXJzLFxuICB0eXBlIENhbmNlbE1lc3NhZ2UsXG59IGZyb20gXCIuL3Byb3RvY29sLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJsYWtlYmFzZS1wcm94eVwiKTtcblxuaW50ZXJmYWNlIFBnQ29ubmVjdGlvbkludGVybmFscyB7XG4gIHN0cmVhbTogRHVwbGV4O1xuICBvbihldmVudDogXCJwYXJhbWV0ZXJTdGF0dXNcIiwgbGlzdGVuZXI6IChtZXNzYWdlOiBQYXJhbWV0ZXJTdGF0dXMpID0+IHZvaWQpOiB2b2lkO1xufVxuXG50eXBlIFBnQ2xpZW50SW50ZXJuYWxzID0gQ2xpZW50ICYge1xuICBjb25uZWN0aW9uOiBDbGllbnRbXCJjb25uZWN0aW9uXCJdICYgUGdDb25uZWN0aW9uSW50ZXJuYWxzO1xuICBwcm9jZXNzSUQ6IG51bWJlcjtcbiAgc2VjcmV0S2V5OiBudW1iZXI7XG4gIF90eFN0YXR1cz86IHN0cmluZztcbiAgZ2V0U3RhcnR1cENvbmYoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmludGVyZmFjZSBQYXJhbWV0ZXJTdGF0dXMge1xuICBwYXJhbWV0ZXJOYW1lOiBzdHJpbmc7XG4gIHBhcmFtZXRlclZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKiBMb29wYmFjayBQb3N0Z3JlU1FMIHdpcmUgcHJveHkgYmFja2VkIGJ5IERhdGFicmlja3MgTGFrZWJhc2UgY3JlZGVudGlhbHMuICovXG5leHBvcnQgY2xhc3MgTGFrZWJhc2VQcm94eSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBMYWtlYmFzZUNsaWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbmNlbGxhdGlvbnMgPSBuZXcgQ2FuY2VsbGF0aW9uUmVnaXN0cnkoKTtcbiAgcHJpdmF0ZSBzZXJ2ZXI/OiBTZXJ2ZXI7XG4gIHByaXZhdGUgc3RhdHNUaW1lcj86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgcHJpdmF0ZSBvcGVuZWQgPSAwO1xuICBwcml2YXRlIGNsb3NlZCA9IDA7XG4gIHByaXZhdGUgZmFpbGVkID0gMDtcbiAgcHJpdmF0ZSBhY3RpdmUgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExha2ViYXNlUHJveHlPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSByZXNvbHZlTGFrZWJhc2VQcm94eU9wdGlvbnMob3B0aW9ucyk7XG4gICAgdGhpcy5jbGllbnQgPSBuZXcgTGFrZWJhc2VDbGllbnQoeyBwcm9maWxlOiB0aGlzLm9wdGlvbnMucHJvZmlsZSB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RlbigpOiBQcm9taXNlPHsgaG9zdDogc3RyaW5nOyBwb3J0OiBudW1iZXIgfT4ge1xuICAgIGlmICh0aGlzLnNlcnZlcikgdGhyb3cgbmV3IEVycm9yKFwiTGFrZWJhc2UgcHJveHkgaXMgYWxyZWFkeSBsaXN0ZW5pbmdcIik7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMub3B0aW9ucy5saXN0ZW4uaG9zdDtcbiAgICBjb25zdCBzZXJ2ZXIgPSBjcmVhdGVTZXJ2ZXIoKHNvY2tldCkgPT4gdm9pZCB0aGlzLmhhbmRsZShzb2NrZXQpKTtcbiAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICB0aGlzLnN0YXRzVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLnJlcG9ydFN0YXRzKCksIDYwXzAwMCk7XG4gICAgdGhpcy5zdGF0c1RpbWVyLnVucmVmKCk7XG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2VydmVyLm9uY2UoXCJlcnJvclwiLCByZWplY3QpO1xuICAgICAgc2VydmVyLmxpc3Rlbih0aGlzLm9wdGlvbnMubGlzdGVuLnBvcnQsIGhvc3QsICgpID0+IHtcbiAgICAgICAgc2VydmVyLm9mZihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBzZXJ2ZXIuYWRkcmVzcygpO1xuICAgIGlmICghYWRkcmVzcyB8fCB0eXBlb2YgYWRkcmVzcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTGFrZWJhc2UgbGlzdGVuZXIgaGFzIG5vIGFkZHJlc3NcIik7XG4gICAgfVxuICAgIGxvZ2dlci5pbmZvKFwiTGFrZWJhc2UgcHJveHkgbGlzdGVuaW5nXCIsIHsgaG9zdDogYWRkcmVzcy5hZGRyZXNzLCBwb3J0OiBhZGRyZXNzLnBvcnQgfSk7XG4gICAgcmV0dXJuIHsgaG9zdDogYWRkcmVzcy5hZGRyZXNzLCBwb3J0OiBhZGRyZXNzLnBvcnQgfTtcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlcnZlciA9IHRoaXMuc2VydmVyO1xuICAgIHRoaXMuc2VydmVyID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnN0YXRzVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0c1RpbWVyKTtcbiAgICB0aGlzLnN0YXRzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgaWYgKCFzZXJ2ZXIpIHJldHVybjtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PlxuICAgICAgc2VydmVyLmNsb3NlKChlcnJvcikgPT4gKGVycm9yID8gcmVqZWN0KGVycm9yKSA6IHJlc29sdmUoKSkpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZShsb2NhbDogU29ja2V0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RhcnRlZCA9IERhdGUubm93KCk7XG4gICAgbGV0IHVwc3RyZWFtOiBEdXBsZXggfCB1bmRlZmluZWQ7XG4gICAgbGV0IGNhbmNlbGxhdGlvbjogQ2FuY2VsTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9wZW5lZCArPSAxO1xuICAgIHRoaXMuYWN0aXZlICs9IDE7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsLnNldE5vRGVsYXkodHJ1ZSk7XG4gICAgICBjb25zdCBpbml0aWFsID0gYXdhaXQgcmVhZEluaXRpYWxNZXNzYWdlKGxvY2FsLCB0aGlzLm9wdGlvbnMuc3RhcnR1cFRpbWVvdXRTZWNvbmRzICogMTAwMCk7XG4gICAgICBpZiAoaW5pdGlhbC5raW5kID09PSBcImNhbmNlbFwiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsbGF0aW9ucy5mb3J3YXJkKGluaXRpYWwpO1xuICAgICAgICBsb2NhbC5lbmQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RhcnR1cCA9IGluaXRpYWw7XG4gICAgICBjb25zdCB0YXJnZXRUZXh0ID0gc3RhcnR1cC5wYXJhbWV0ZXJzLmRhdGFiYXNlO1xuICAgICAgaWYgKCF0YXJnZXRUZXh0KSB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKFwic3RhcnR1cCBkYXRhYmFzZSBpcyByZXF1aXJlZFwiLCBcIjNEMDAwXCIpO1xuICAgICAgbGV0IHRhcmdldDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRhcmdldCA9IHJlcXVpcmVBZGRyZXNzKHRhcmdldFRleHQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3h5RmFpbHVyZShtZXNzYWdlKGVycm9yKSwgXCIzRDAwMFwiLCB7IGNhdXNlOiB0b0Vycm9yKGVycm9yKSB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXJ0dXBVc2VyID0gdHJpbVRvVW5kZWZpbmVkKHN0YXJ0dXAucGFyYW1ldGVycy51c2VyKTtcbiAgICAgIGxldCByZXNvbHZlZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc29sdmVkID0gYXdhaXQgdGhpcy5jbGllbnQucmVzb2x2ZSh0YXJnZXQsIHN0YXJ0dXBVc2VyKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBQcm94eUZhaWx1cmUobWVzc2FnZShlcnJvciksIFwiM0QwMDBcIiwgeyBjYXVzZTogdG9FcnJvcihlcnJvcikgfSk7XG4gICAgICB9XG4gICAgICBsZXQgcGFzc3dvcmQ7XG4gICAgICB0cnkge1xuICAgICAgICBwYXNzd29yZCA9IGF3YWl0IHRoaXMuY2xpZW50LmdlbmVyYXRlRGF0YWJhc2VDcmVkZW50aWFsKHJlc29sdmVkLmVuZHBvaW50LCBzdGFydHVwVXNlcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjI4MDAwXCIsIHsgY2F1c2U6IHRvRXJyb3IoZXJyb3IpIH0pO1xuICAgICAgfVxuICAgICAgbGV0IGNvbm5lY3RlZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbm5lY3RlZCA9IGF3YWl0IGNvbm5lY3RVcHN0cmVhbShcbiAgICAgICAgICByZXNvbHZlZCxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICBwb3N0Z3Jlc0Nvbm5lY3Rpb25PcHRpb25zKHN0YXJ0dXAucGFyYW1ldGVycywgdGhpcy5vcHRpb25zLnBvc3RncmVzUm9sZSksXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgUHJveHlGYWlsdXJlKG1lc3NhZ2UoZXJyb3IpLCBcIjA4MDAxXCIsIHsgY2F1c2U6IHRvRXJyb3IoZXJyb3IpIH0pO1xuICAgICAgfVxuICAgICAgdXBzdHJlYW0gPSBjb25uZWN0ZWQuc29ja2V0O1xuICAgICAgY2FuY2VsbGF0aW9uID0gdGhpcy5jYW5jZWxsYXRpb25zLnJlZ2lzdGVyKHtcbiAgICAgICAgaG9zdDogcmVzb2x2ZWQuaG9zdCxcbiAgICAgICAgcG9ydDogcmVzb2x2ZWQucG9ydCxcbiAgICAgICAgcHJvY2Vzc0lkOiBjb25uZWN0ZWQucHJvY2Vzc0lkLFxuICAgICAgICBzZWNyZXRLZXk6IGNvbm5lY3RlZC5zZWNyZXRLZXksXG4gICAgICB9KTtcbiAgICAgIGxvY2FsLndyaXRlKFxuICAgICAgICBzdGFydHVwQ29tcGxldGUoXG4gICAgICAgICAgY29ubmVjdGVkLnBhcmFtZXRlcnMsXG4gICAgICAgICAgY2FuY2VsbGF0aW9uLnByb2Nlc3NJZCxcbiAgICAgICAgICBjYW5jZWxsYXRpb24uc2VjcmV0S2V5LFxuICAgICAgICAgIGNvbm5lY3RlZC50cmFuc2FjdGlvblN0YXR1cyxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBsb2NhbC5waXBlKHVwc3RyZWFtKS5waXBlKGxvY2FsKTtcbiAgICAgIGF3YWl0IFByb21pc2UucmFjZShbY2xvc2VkKGxvY2FsKSwgY2xvc2VkKHVwc3RyZWFtKV0pO1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiTGFrZWJhc2UgY29ubmVjdGlvbiBjbG9zZWRcIiwge1xuICAgICAgICBkdXJhdGlvbk1zOiBEYXRlLm5vdygpIC0gc3RhcnRlZCxcbiAgICAgICAgcHJvamVjdDogcmVzb2x2ZWQucHJvamVjdCxcbiAgICAgICAgYnJhbmNoOiByZXNvbHZlZC5icmFuY2gsXG4gICAgICAgIGVuZHBvaW50OiByZXNvbHZlZC5lbmRwb2ludCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmZhaWxlZCArPSAxO1xuICAgICAgY29uc3QgZmFpbHVyZSA9XG4gICAgICAgIGVycm9yIGluc3RhbmNlb2YgUHJveHlGYWlsdXJlXG4gICAgICAgICAgPyBlcnJvclxuICAgICAgICAgIDogZXJyb3IgaW5zdGFuY2VvZiBQb3N0Z3Jlc1Byb3RvY29sRXJyb3JcbiAgICAgICAgICAgID8gbmV3IFByb3h5RmFpbHVyZShlcnJvci5tZXNzYWdlLCBcIjA4UDAxXCIsIHsgY2F1c2U6IGVycm9yIH0pXG4gICAgICAgICAgICA6IG5ldyBQcm94eUZhaWx1cmUobWVzc2FnZShlcnJvciksIFwiMDgwMDFcIiwgeyBjYXVzZTogdG9FcnJvcihlcnJvcikgfSk7XG4gICAgICBsb2dnZXIud2FybihcIkxha2ViYXNlIGNvbm5lY3Rpb24gZmFpbGVkXCIsIHtcbiAgICAgICAgZHVyYXRpb25NczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWQsXG4gICAgICAgIGVycm9yOiBmYWlsdXJlLFxuICAgICAgfSk7XG4gICAgICBpZiAoIWxvY2FsLmRlc3Ryb3llZCkgbG9jYWwuZW5kKGZhdGFsRXJyb3IoZmFpbHVyZS5tZXNzYWdlLCBmYWlsdXJlLnNxbHN0YXRlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjYW5jZWxsYXRpb24pIHRoaXMuY2FuY2VsbGF0aW9ucy5yZW1vdmUoY2FuY2VsbGF0aW9uKTtcbiAgICAgIHVwc3RyZWFtPy5kZXN0cm95KCk7XG4gICAgICBsb2NhbC5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNsb3NlZCArPSAxO1xuICAgICAgdGhpcy5hY3RpdmUgLT0gMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcG9ydFN0YXRzKCk6IHZvaWQge1xuICAgIGxvZ2dlci5pbmZvKFwiTGFrZWJhc2UgcHJveHkgY29ubmVjdGlvbnNcIiwge1xuICAgICAgb3BlbmVkOiB0aGlzLm9wZW5lZCxcbiAgICAgIGNsb3NlZDogdGhpcy5jbG9zZWQsXG4gICAgICBmYWlsZWQ6IHRoaXMuZmFpbGVkLFxuICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZSxcbiAgICB9KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0VXBzdHJlYW0oXG4gIHJlc29sdmVkOiBBd2FpdGVkPFJldHVyblR5cGU8TGFrZWJhc2VDbGllbnRbXCJyZXNvbHZlXCJdPj4sXG4gIHBhc3N3b3JkOiBzdHJpbmcsXG4gIHN0YXJ0dXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBQcm9taXNlPHtcbiAgc29ja2V0OiBEdXBsZXg7XG4gIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIHByb2Nlc3NJZDogbnVtYmVyO1xuICBzZWNyZXRLZXk6IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25TdGF0dXM6IHN0cmluZztcbn0+IHtcbiAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudCh7XG4gICAgaG9zdDogcmVzb2x2ZWQuaG9zdCxcbiAgICBwb3J0OiByZXNvbHZlZC5wb3J0LFxuICAgIGRhdGFiYXNlOiByZXNvbHZlZC5kYXRhYmFzZSxcbiAgICB1c2VyOiByZXNvbHZlZC51c2VyLFxuICAgIHBhc3N3b3JkLFxuICAgIHNzbDogeyByZWplY3RVbmF1dGhvcml6ZWQ6IHRydWUsIHNlcnZlcm5hbWU6IHJlc29sdmVkLmhvc3QgfSxcbiAgICBhcHBsaWNhdGlvbl9uYW1lOiBzdGFydHVwLmFwcGxpY2F0aW9uX25hbWUsXG4gICAgY29ubmVjdGlvblRpbWVvdXRNaWxsaXM6IDMwXzAwMCxcbiAgfSkgYXMgdW5rbm93biBhcyBQZ0NsaWVudEludGVybmFscztcbiAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNsaWVudC5nZXRTdGFydHVwQ29uZiA9ICgpID0+XG4gICAgdXBzdHJlYW1TdGFydHVwUGFyYW1ldGVycyhzdGFydHVwLCByZXNvbHZlZC51c2VyLCByZXNvbHZlZC5kYXRhYmFzZSk7XG4gIGNsaWVudC5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcIkxha2ViYXNlIHVwc3RyZWFtIGNsaWVudCBjbG9zZWRcIiwgeyBlcnJvciB9KTtcbiAgfSk7XG4gIGNsaWVudC5jb25uZWN0aW9uLm9uKFwicGFyYW1ldGVyU3RhdHVzXCIsIChtZXNzYWdlKSA9PiB7XG4gICAgcGFyYW1ldGVycy5zZXQobWVzc2FnZS5wYXJhbWV0ZXJOYW1lLCBtZXNzYWdlLnBhcmFtZXRlclZhbHVlKTtcbiAgfSk7XG4gIGF3YWl0IGNsaWVudC5jb25uZWN0KCk7XG4gIGNvbnN0IHNvY2tldCA9IGNsaWVudC5jb25uZWN0aW9uLnN0cmVhbTtcbiAgc29ja2V0LnJlbW92ZUFsbExpc3RlbmVycyhcImRhdGFcIik7XG4gIHJldHVybiB7XG4gICAgc29ja2V0LFxuICAgIHBhcmFtZXRlcnMsXG4gICAgcHJvY2Vzc0lkOiBjbGllbnQucHJvY2Vzc0lELFxuICAgIHNlY3JldEtleTogY2xpZW50LnNlY3JldEtleSxcbiAgICB0cmFuc2FjdGlvblN0YXR1czogY2xpZW50Ll90eFN0YXR1cyA/PyBcIklcIixcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvc2VkKHNvY2tldDogRHVwbGV4KTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc29ja2V0Lm9uY2UoXCJjbG9zZVwiLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgIHNvY2tldC5vbmNlKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1lc3NhZ2UoZXJyb3I6IHVua25vd24pOiBzdHJpbmcge1xuICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xufVxuXG5jbGFzcyBQcm94eUZhaWx1cmUgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICByZWFkb25seSBzcWxzdGF0ZSA9IFwiMDgwMDFcIixcbiAgICBvcHRpb25zPzogRXJyb3JPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { type CliServiceCliDependencies } from "@dbx-tools/cli-service
|
|
7
|
-
import { type
|
|
8
|
-
import { type ModelGatewayOptions } from "@dbx-tools/shared-model-gateway/options";
|
|
6
|
+
import { type CliServiceCliDependencies, type CliServiceDefinition } from "@dbx-tools/cli-service";
|
|
7
|
+
import { type ModelGatewayOptions } from "@dbx-tools/shared-model-gateway";
|
|
9
8
|
import { Command } from "commander";
|
|
10
9
|
/** Injectable foreground gateway boundary for CLI tests. */
|
|
11
10
|
export interface ModelGatewayCliDependencies {
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { addArgs, parseArgs, serializeArgs } from "@dbx-tools/cli-args";
|
|
7
|
-
import { buildServiceCommand } from "@dbx-tools/cli-service
|
|
8
|
-
import {
|
|
9
|
-
import { ModelGatewayCliOptionsSchema, resolveModelGatewayCliOptions, } from "@dbx-tools/shared-model-gateway/options";
|
|
7
|
+
import { buildServiceCommand, defineService, } from "@dbx-tools/cli-service";
|
|
8
|
+
import { ModelGatewayCliOptionsSchema, resolveModelGatewayCliOptions, } from "@dbx-tools/shared-model-gateway";
|
|
10
9
|
import { Command } from "commander";
|
|
11
10
|
import { startModelGateway } from "./server.js";
|
|
12
11
|
import { PACKAGE_VERSION } from "../../index.js";
|
|
@@ -60,4 +59,4 @@ function modelGatewayOptions(command) {
|
|
|
60
59
|
function urlHost(host) {
|
|
61
60
|
return host.includes(":") ? `[${host}]` : host;
|
|
62
61
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsLWdhdGV3YXkvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGFBQWEsR0FFZCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNkJBQTZCLEdBRzlCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU2pELE1BQU0sb0JBQW9CLEdBQWdDO0lBQ3hELEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQztBQUVGLDREQUE0RDtBQUM1RCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLFVBQStCLEVBQUU7SUFFakMsTUFBTSxFQUNKLFdBQVcsRUFBRSxDQUFDLEVBQ2QsV0FBVyxFQUFFLFlBQVksRUFDekIsR0FBRyxRQUFRLEVBQ1osR0FBRyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQyxFQUFFLEVBQUUsNkJBQTZCO1FBQ2pDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixTQUFTLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQztTQUNuQztRQUNELElBQUksRUFBRTtZQUNKO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLEtBQUssRUFBRSxRQUFRO2dCQUNmLEdBQUcsRUFBRSxVQUFVLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWTthQUN4RDtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELHFGQUFxRjtBQUNyRixNQUFNLFVBQVUsWUFBWSxDQUMxQixJQUFJLEdBQUcsbUJBQW1CLEVBQzFCLGVBQTRDLG9CQUFvQjtJQUVoRSxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUM7SUFDaEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUNyQixJQUFJLE9BQU8sRUFBRTtTQUNWLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixXQUFXLENBQUMsbURBQW1ELENBQUM7U0FDaEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsRUFDcEMsNEJBQTRCLENBQzdCLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtRQUM5QyxPQUFPLDZCQUE2QixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE9BQWdCO0lBQzNDLE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvcmVncm91bmQgYGRieCBtb2RlbC1nYXRld2F5YCBjb21tYW5kLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBhZGRBcmdzLCBwYXJzZUFyZ3MsIHNlcmlhbGl6ZUFyZ3MgfSBmcm9tIFwiQGRieC10b29scy9jbGktYXJnc1wiO1xuaW1wb3J0IHtcbiAgYnVpbGRTZXJ2aWNlQ29tbWFuZCxcbiAgdHlwZSBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzLFxuICBkZWZpbmVTZXJ2aWNlLFxuICB0eXBlIENsaVNlcnZpY2VEZWZpbml0aW9uLFxufSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgTW9kZWxHYXRld2F5Q2xpT3B0aW9uc1NjaGVtYSxcbiAgcmVzb2x2ZU1vZGVsR2F0ZXdheUNsaU9wdGlvbnMsXG4gIHR5cGUgTW9kZWxHYXRld2F5Q2xpT3B0aW9ucyxcbiAgdHlwZSBNb2RlbEdhdGV3YXlPcHRpb25zLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcblxuaW1wb3J0IHsgc3RhcnRNb2RlbEdhdGV3YXkgfSBmcm9tIFwiLi9zZXJ2ZXIudHNcIjtcbmltcG9ydCB7IFBBQ0tBR0VfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi9pbmRleC50c1wiO1xuXG4vKiogSW5qZWN0YWJsZSBmb3JlZ3JvdW5kIGdhdGV3YXkgYm91bmRhcnkgZm9yIENMSSB0ZXN0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxHYXRld2F5Q2xpRGVwZW5kZW5jaWVzIHtcbiAgc3RhcnQob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gIC8qKiBPcHRpb25hbCBzZXJ2aWNlIENMSSBib3VuZGFyeSBmb3IgdGVzdHMgYW5kIGVtYmVkZGluZy4gKi9cbiAgcmVhZG9ubHkgc2VydmljZT86IENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXM7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBNb2RlbEdhdGV3YXlDbGlEZXBlbmRlbmNpZXMgPSB7XG4gIHN0YXJ0OiBzdGFydE1vZGVsR2F0ZXdheSxcbn07XG5cbi8qKiBCdWlsZCB0aGUgdHJheS1vbmx5IG1vZGVsLWdhdGV3YXkgc2VydmljZSBkZWZpbml0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsR2F0ZXdheVNlcnZpY2VEZWZpbml0aW9uKFxuICBvcHRpb25zOiBNb2RlbEdhdGV3YXlPcHRpb25zID0ge30sXG4pOiBDbGlTZXJ2aWNlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHtcbiAgICBydW50aW1lSW5mbzogXyxcbiAgICBiZWFyZXJUb2tlbjogX2JlYXJlclRva2VuLFxuICAgIC4uLnJlc29sdmVkXG4gIH0gPSByZXNvbHZlTW9kZWxHYXRld2F5Q2xpT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgaG9zdCA9IHVybEhvc3QocmVzb2x2ZWQubGlzdGVuLmhvc3QpO1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLW1vZGVsLWdhdGV3YXlcIixcbiAgICBuYW1lOiBcImRieCBtb2RlbCBnYXRld2F5XCIsXG4gICAgY29tbWFuZDoge1xuICAgICAgYmluTmFtZTogXCJkYngtbW9kZWwtZ2F0ZXdheVwiLFxuICAgICAgYXJndW1lbnRzOiBzZXJpYWxpemVBcmdzKHJlc29sdmVkKSxcbiAgICB9LFxuICAgIG1lbnU6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJ1cmxcIixcbiAgICAgICAgbGFiZWw6IFwiTW9kZWxzXCIsXG4gICAgICAgIHVybDogYGh0dHA6Ly8ke2hvc3R9OiR7cmVzb2x2ZWQubGlzdGVuLnBvcnR9L3YxL21vZGVsc2AsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufVxuXG4vKiogQnVpbGQgZm9yZWdyb3VuZCBhbmQgc2VydmljZSBtb2RlbC1nYXRld2F5IGNvbW1hbmRzIHdpdGhvdXQgc3RhcnRpbmcgYSBzZXJ2ZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBuYW1lID0gXCJkYnggbW9kZWwtZ2F0ZXdheVwiLFxuICBkZXBlbmRlbmNpZXM6IE1vZGVsR2F0ZXdheUNsaURlcGVuZGVuY2llcyA9IERFRkFVTFRfREVQRU5ERU5DSUVTLFxuKTogQ29tbWFuZCB7XG4gIGNvbnN0IHZlcnNpb24gPSBQQUNLQUdFX1ZFUlNJT047XG4gIGNvbnN0IHByb2dyYW0gPSBhZGRBcmdzKFxuICAgIG5ldyBDb21tYW5kKClcbiAgICAgIC5uYW1lKG5hbWUpXG4gICAgICAuZGVzY3JpcHRpb24oXCJSdW4gb3IgbWFuYWdlIHRoZSBBcHBLaXQgRGF0YWJyaWNrcyBtb2RlbCBnYXRld2F5XCIpXG4gICAgICAudmVyc2lvbih2ZXJzaW9uLCBcIi12LCAtLXZlcnNpb25cIiksXG4gICAgTW9kZWxHYXRld2F5Q2xpT3B0aW9uc1NjaGVtYSxcbiAgKS5hY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBtb2RlbEdhdGV3YXlPcHRpb25zKHByb2dyYW0pO1xuICAgIGlmIChvcHRpb25zLnJ1bnRpbWVJbmZvKSB7XG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtKU09OLnN0cmluZ2lmeSh7IGltcGxlbWVudGF0aW9uOiBcInR5cGVzY3JpcHQtYXBwa2l0XCIsIHZlcnNpb24gfSl9XFxuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgcnVudGltZUluZm86IF8sIC4uLnNlcnZlck9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gICAgYXdhaXQgZGVwZW5kZW5jaWVzLnN0YXJ0KHNlcnZlck9wdGlvbnMpO1xuICB9KTtcbiAgY29uc3Qgc2VydmljZUNvbW1hbmQgPSBidWlsZFNlcnZpY2VDb21tYW5kKCgpID0+IHtcbiAgICByZXR1cm4gbW9kZWxHYXRld2F5U2VydmljZURlZmluaXRpb24obW9kZWxHYXRld2F5T3B0aW9ucyhwcm9ncmFtKSk7XG4gIH0sIGRlcGVuZGVuY2llcy5zZXJ2aWNlKTtcbiAgcHJvZ3JhbS5hZGRDb21tYW5kKHNlcnZpY2VDb21tYW5kKTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbmZ1bmN0aW9uIG1vZGVsR2F0ZXdheU9wdGlvbnMoY29tbWFuZDogQ29tbWFuZCk6IE1vZGVsR2F0ZXdheUNsaU9wdGlvbnMge1xuICByZXR1cm4gcGFyc2VBcmdzKGNvbW1hbmQsIE1vZGVsR2F0ZXdheUNsaU9wdGlvbnNTY2hlbWEpO1xufVxuXG5mdW5jdGlvbiB1cmxIb3N0KGhvc3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBob3N0LmluY2x1ZGVzKFwiOlwiKSA/IGBbJHtob3N0fV1gIDogaG9zdDtcbn1cbiJdfQ==
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { server } from "@databricks/appkit";
|
|
7
|
-
import { type ModelGatewayOptions } from "@dbx-tools/shared-model-gateway
|
|
7
|
+
import { type ModelGatewayOptions } from "@dbx-tools/shared-model-gateway";
|
|
8
8
|
import type express from "express";
|
|
9
9
|
type AppKitServerOptions = NonNullable<Parameters<typeof server>[0]>;
|
|
10
10
|
/** Resolve AppKit server settings for the loopback model gateway. */
|