@dbx-tools/cli 0.9.154 → 0.9.158
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
package/lib/src/tunnel/proxy.js
CHANGED
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
* @module
|
|
18
18
|
*/
|
|
19
19
|
import { createServer } from "node:http";
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
20
|
+
import { isAuthPath } from "@dbx-tools/shared-auth";
|
|
21
|
+
import { log, toError } from "@dbx-tools/shared-core";
|
|
22
|
+
import { wantsHostedLogin, loginReturnTo, webRequest, sendWebResponse, gateRequest, wantsLoginPage, requestReturnTo, unauthorizedBody, toHeaderPolicy, loginPageHtml, } from "@dbx-tools/tunnel";
|
|
22
23
|
import ProxyModule from "http-proxy-3";
|
|
23
24
|
const logger = log.logger("tunnel:proxy");
|
|
24
25
|
function sendJson(response, status, body, setCookie) {
|
|
@@ -32,19 +33,19 @@ function sendJson(response, status, body, setCookie) {
|
|
|
32
33
|
* Hand every Better Auth and compatibility route to the shared gate runtime.
|
|
33
34
|
*/
|
|
34
35
|
async function handleAuthRoute(request, response, path, gate, brandName, passkeyNamePrefix) {
|
|
35
|
-
if (!
|
|
36
|
+
if (!isAuthPath(path))
|
|
36
37
|
return false;
|
|
37
|
-
if (
|
|
38
|
+
if (wantsHostedLogin(request)) {
|
|
38
39
|
response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
|
|
39
|
-
response.end(
|
|
40
|
+
response.end(loginPageHtml({
|
|
40
41
|
brandName,
|
|
41
42
|
passkeyNamePrefix,
|
|
42
|
-
returnTo:
|
|
43
|
+
returnTo: loginReturnTo(request),
|
|
43
44
|
}));
|
|
44
45
|
return true;
|
|
45
46
|
}
|
|
46
|
-
const result = await gate.handler(
|
|
47
|
-
await
|
|
47
|
+
const result = await gate.handler(webRequest(request));
|
|
48
|
+
await sendWebResponse(response, result);
|
|
48
49
|
return true;
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
@@ -62,10 +63,10 @@ export async function startProxy(options) {
|
|
|
62
63
|
ws: true,
|
|
63
64
|
xfwd: true,
|
|
64
65
|
});
|
|
65
|
-
const headerPolicy =
|
|
66
|
+
const headerPolicy = toHeaderPolicy(options.forwardHeaders);
|
|
66
67
|
const gate = options.gate;
|
|
67
68
|
const decide = (request) => gate
|
|
68
|
-
?
|
|
69
|
+
? gateRequest(request, {
|
|
69
70
|
gate,
|
|
70
71
|
publicDomain: (request.headers.host ?? "").split(":")[0] || "localhost",
|
|
71
72
|
headerPolicy,
|
|
@@ -84,23 +85,23 @@ export async function startProxy(options) {
|
|
|
84
85
|
if ((await decide(request)) === "deny") {
|
|
85
86
|
// A denied browser navigation gets the hosted login page; anything else
|
|
86
87
|
// (an XHR, a /ws upgrade probe, a non-HTML fetch) gets the 401 JSON.
|
|
87
|
-
if (gate &&
|
|
88
|
-
const html =
|
|
88
|
+
if (gate && wantsLoginPage(request)) {
|
|
89
|
+
const html = loginPageHtml({
|
|
89
90
|
brandName,
|
|
90
91
|
passkeyNamePrefix,
|
|
91
|
-
returnTo:
|
|
92
|
+
returnTo: requestReturnTo(request),
|
|
92
93
|
});
|
|
93
94
|
response.writeHead(401, { "content-type": "text/html; charset=utf-8" });
|
|
94
95
|
response.end(html);
|
|
95
96
|
}
|
|
96
97
|
else {
|
|
97
|
-
sendJson(response, 401,
|
|
98
|
+
sendJson(response, 401, unauthorizedBody(request));
|
|
98
99
|
}
|
|
99
100
|
return;
|
|
100
101
|
}
|
|
101
102
|
proxy.web(request, response);
|
|
102
103
|
})().catch((error) => {
|
|
103
|
-
logger.error("proxy request failed", { error:
|
|
104
|
+
logger.error("proxy request failed", { error: toError(error) });
|
|
104
105
|
if (!response.headersSent)
|
|
105
106
|
sendJson(response, 502, { error: "bad gateway" });
|
|
106
107
|
else
|
|
@@ -114,7 +115,7 @@ export async function startProxy(options) {
|
|
|
114
115
|
const upgradeSocket = socket;
|
|
115
116
|
upgradeSocket.destroySoon ??= () => upgradeSocket.end();
|
|
116
117
|
const path = (request.url ?? "/").split("?", 1)[0] ?? "/";
|
|
117
|
-
if (
|
|
118
|
+
if (isAuthPath(path)) {
|
|
118
119
|
upgradeSocket.destroy();
|
|
119
120
|
return;
|
|
120
121
|
}
|
|
@@ -145,4 +146,4 @@ export async function startProxy(options) {
|
|
|
145
146
|
});
|
|
146
147
|
})));
|
|
147
148
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHVubmVsL3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQTZDLE1BQU0sV0FBVyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUNMLElBQUksSUFBSSxVQUFVLEVBQ2xCLE9BQU8sSUFBSSxhQUFhLEVBQ3hCLFNBQVMsSUFBSSxlQUFlLEdBRTdCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUE2QjFDLFNBQVMsUUFBUSxDQUNmLFFBQXdCLEVBQ3hCLE1BQWMsRUFDZCxJQUFhLEVBQ2IsU0FBa0I7SUFFbEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDekIsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2xELENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxlQUFlLENBQzVCLE9BQXdCLEVBQ3hCLFFBQXdCLEVBQ3hCLElBQVksRUFDWixJQUFpQixFQUNqQixTQUFpQixFQUNqQixpQkFBMEI7SUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDL0MsSUFBSSxVQUFVLENB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O2dCQUNKLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ3pCLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FDTCxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgcmV2ZXJzZSBwcm94eSB0aGF0IG1ha2VzIHRoZSB3cmFwcGVyIHBhdGggcG9zc2libGUuXG4gKlxuICogVGhlIHdyYXBwZXIgY2xhaW1zIHRoZSBQVUJMSUMgcG9ydCBhbmQgdGhlIHdyYXBwZWQgYXBwIHJ1bnMgYXMgYSBjaGlsZCBwcm9jZXNzXG4gKiBvbiBhIHByaXZhdGUgbG9vcGJhY2sgcG9ydCwgc28gLSB1bmxpa2UgdGhlIGluLXByb2Nlc3MgcGx1Z2luIC0gdGhlcmUgaXMgbm9cbiAqIG1pZGRsZXdhcmUgY2hhaW4gdG8gaW5zZXJ0IHRoZSBnYXRlIGludG8uIFRoaXMgcHJveHkgaXMgdGhhdCBpbnNlcnRpb24gcG9pbnQ6IGl0XG4gKiBhbnN3ZXJzIHRoZSBsb2dpbiByb3V0ZXMgaXRzZWxmLCBhcHBsaWVzIHRoZSBnYXRlIHRvIGV2ZXJ5dGhpbmcgZWxzZSwgYW5kXG4gKiBmb3J3YXJkcyB3aGF0IHN1cnZpdmVzIHRvIHRoZSBjaGlsZC5cbiAqXG4gKiBUaGUgZ2F0aW5nIERFQ0lTSU9OIGlzIG5vdCByZWltcGxlbWVudGVkIGhlcmUuIGBAZGJ4LXRvb2xzL3R1bm5lbGAnc1xuICogYGdhdGUuZ2F0ZVJlcXVlc3RgIG1ha2VzIGl0IC0gdGhlIHNhbWUgZnVuY3Rpb24gdGhlIEV4cHJlc3MgbWlkZGxld2FyZSBjYWxscyAtXG4gKiBhbmQgdGhpcyBtb2R1bGUgb25seSBkaWZmZXJzIGluIGhvdyB0aGUgb3V0Y29tZSBpcyB3cml0dGVuOiBhIHByb3hpZWQgcmVxdWVzdFxuICogaW5zdGVhZCBvZiBgbmV4dCgpYCwgYSBgd3JpdGVIZWFkYCBpbnN0ZWFkIG9mIGByZXMuanNvbmAuIFRoYXQgaXMgZGVsaWJlcmF0ZTpcbiAqIHR3byBpbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMgb2YgXCJ3aGljaCByZXF1ZXN0cyBhcmUgZ2F0ZWQgYW5kIHdoaWNoIGhlYWRlcnNcbiAqIGFyZSBzdHJpcHBlZFwiIGlzIHRoZSBvbmUgd2F5IHRoaXMgcGFja2FnZSBjb3VsZCBiZWNvbWUgYSBzZWN1cml0eSBidWcuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZVNlcnZlciwgdHlwZSBJbmNvbWluZ01lc3NhZ2UsIHR5cGUgU2VydmVyUmVzcG9uc2UgfSBmcm9tIFwibm9kZTpodHRwXCI7XG5pbXBvcnQgdHlwZSB7IFNvY2tldCB9IGZyb20gXCJub2RlOm5ldFwiO1xuaW1wb3J0IHsgZXJyb3JVdGlscywgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIGdhdGUgYXMgdHVubmVsR2F0ZSxcbiAgaGVhZGVycyBhcyB0dW5uZWxIZWFkZXJzLFxuICBsb2dpblBhZ2UgYXMgdHVubmVsTG9naW5QYWdlLFxuICB0eXBlIEF1dGhHYXRlQXBpLFxufSBmcm9tIFwiQGRieC10b29scy90dW5uZWxcIjtcbmltcG9ydCBQcm94eU1vZHVsZSBmcm9tIFwiaHR0cC1wcm94eS0zXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJ0dW5uZWw6cHJveHlcIik7XG5cbnR5cGUgVXBncmFkZVNvY2tldCA9IFNvY2tldCAmIHsgZGVzdHJveVNvb24/OiAoKSA9PiB2b2lkIH07XG5cbi8qKiBMaXN0ZW5lciwgdXBzdHJlYW0gYXBwbGljYXRpb24sIGFuZCBvcHRpb25hbCBhdXRoZW50aWNhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIHdyYXBwZXIgcHJveHkuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3h5T3B0aW9ucyB7XG4gIC8qKiBUaGUgcG9ydCB0aGlzIHByb3h5IGxpc3RlbnMgb24gLSB0aGUgcG9ydCBwb3J0ciBhbmQgdGhlIHBsYXRmb3JtIHJvdXRlIHRvLiAqL1xuICBwdWJsaWNQb3J0OiBudW1iZXI7XG4gIC8qKiBUaGUgcHJpdmF0ZSBsb29wYmFjayBwb3J0IHRoZSB3cmFwcGVkIGFwcCBsaXN0ZW5zIG9uLiAqL1xuICBhcHBQb3J0OiBudW1iZXI7XG4gIC8qKiBUaGUgZ2F0ZSBoYW5kbGVycy4gT21pdHRlZCAoYW4gYC0taW5zZWN1cmVgIHJ1bikgZm9yd2FyZHMgZXZlcnl0aGluZy4gKi9cbiAgZ2F0ZT86IEF1dGhHYXRlQXBpO1xuICAvKiogRXh0cmEgYHgtYCBoZWFkZXJzIHR1bm5lbCB0cmFmZmljIG1heSBmb3J3YXJkLiAqL1xuICBmb3J3YXJkSGVhZGVycz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogUGF0aCBwcmVmaXhlcyB0byBnYXRlIGJleW9uZCBgL2FwaS9gIChlLmcuIGAvd3NgIGZvciBhIFdlYlNvY2tldCBhcHApLiAqL1xuICBnYXRlUGF0aHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIEJyYW5kIG5hbWUgZm9yIHRoZSBob3N0ZWQgbG9naW4gcGFnZSBzaG93biBvbiBhIGRlbmllZCBicm93c2VyIG5hdmlnYXRpb24uICovXG4gIGJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIFByZWZpeCBhZGRlZCBiZWZvcmUgdGhlIGh1bWFuaXplZCB0dW5uZWwgc3ViZG9tYWluIGluIG5ldyBwYXNza2V5IG5hbWVzLiAqL1xuICBwYXNza2V5TmFtZVByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24uIERlZmF1bHRzIHRvIGEgc2luZ2xlIGAwLjAuMC4wYCAoZXZlcnkgaW50ZXJmYWNlKSxcbiAgICogdGhlIHBvcnRyL3BsYXRmb3JtIGNhc2UuIFBhc3Mgc3BlY2lmaWMgaW50ZXJmYWNlIElQcyB0byBleHBvc2UgdGhlIGdhdGUgb25cbiAgICogb25seSB0aG9zZSAtIGUuZy4gYW4gb3ZlcmxheS9MQU4gYWRkcmVzcyB3aGlsZSBsb29wYmFjayByZWFjaGVzIHRoZSB1cHN0cmVhbVxuICAgKiBkaXJlY3RseSBhbmQgdW5nYXRlZC5cbiAgICovXG4gIGJpbmRIb3N0cz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBzZW5kSnNvbihcbiAgcmVzcG9uc2U6IFNlcnZlclJlc3BvbnNlLFxuICBzdGF0dXM6IG51bWJlcixcbiAgYm9keTogdW5rbm93bixcbiAgc2V0Q29va2llPzogc3RyaW5nLFxuKTogdm9pZCB7XG4gIHJlc3BvbnNlLndyaXRlSGVhZChzdGF0dXMsIHtcbiAgICBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAuLi4oc2V0Q29va2llID8geyBcInNldC1jb29raWVcIjogc2V0Q29va2llIH0gOiB7fSksXG4gIH0pO1xuICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xufVxuXG4vKipcbiAqIEhhbmQgZXZlcnkgQmV0dGVyIEF1dGggYW5kIGNvbXBhdGliaWxpdHkgcm91dGUgdG8gdGhlIHNoYXJlZCBnYXRlIHJ1bnRpbWUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUF1dGhSb3V0ZShcbiAgcmVxdWVzdDogSW5jb21pbmdNZXNzYWdlLFxuICByZXNwb25zZTogU2VydmVyUmVzcG9uc2UsXG4gIHBhdGg6IHN0cmluZyxcbiAgZ2F0ZTogQXV0aEdhdGVBcGksXG4gIGJyYW5kTmFtZTogc3RyaW5nLFxuICBwYXNza2V5TmFtZVByZWZpeD86IHN0cmluZyxcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAoIXR1bm5lbEdhdGUuaXNBdXRoUGF0aChwYXRoKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHVubmVsR2F0ZS53YW50c0hvc3RlZExvZ2luKHJlcXVlc3QpKSB7XG4gICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIH0pO1xuICAgIHJlc3BvbnNlLmVuZChcbiAgICAgIHR1bm5lbExvZ2luUGFnZS5sb2dpblBhZ2VIdG1sKHtcbiAgICAgICAgYnJhbmROYW1lLFxuICAgICAgICBwYXNza2V5TmFtZVByZWZpeCxcbiAgICAgICAgcmV0dXJuVG86IHR1bm5lbEdhdGUubG9naW5SZXR1cm5UbyhyZXF1ZXN0KSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2F0ZS5oYW5kbGVyKHR1bm5lbEdhdGUud2ViUmVxdWVzdChyZXF1ZXN0KSk7XG4gIGF3YWl0IHR1bm5lbEdhdGUuc2VuZFdlYlJlc3BvbnNlKHJlc3BvbnNlLCByZXN1bHQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBTdGFydCB0aGUgcHJveHkgYW5kIHJlc29sdmUgb25jZSBpdCBpcyBsaXN0ZW5pbmcuXG4gKlxuICogYHB1YmxpY0RvbWFpbmAgaXMgaW50ZW50aW9uYWxseSBOT1QgcGFzc2VkIHRvIGBnYXRlUmVxdWVzdGA6IG9uIHRoaXMgcGF0aCBldmVyeVxuICogcmVxdWVzdCBhcnJpdmVkIG9uIHRoZSBwdWJsaWMgcG9ydCwgc28gaXQgSVMgdHVubmVsIHRyYWZmaWMgYnkgY29uc3RydWN0aW9uIC1cbiAqIHdoZXJlYXMgdGhlIGluLXByb2Nlc3MgZ2F0ZSBzaGFyZXMgYSBwb3J0IHdpdGggdGhlIHBsYXRmb3JtIGZyb250IGRvb3IgYW5kIGhhc1xuICogdG8gdGVsbCB0aGVtIGFwYXJ0IGJ5IGBIb3N0YC4gUGFzc2luZyB0aGUgcmVxdWVzdCdzIG93biBob3N0IGtlZXBzIHRoZSBzaGFyZWRcbiAqIGRlY2lzaW9uIGZ1bmN0aW9uJ3MgY29udHJhY3Qgc2F0aXNmaWVkIHdpdGhvdXQgd2Vha2VuaW5nIGl0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRQcm94eShvcHRpb25zOiBQcm94eU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJveHkgPSBQcm94eU1vZHVsZS5jcmVhdGVQcm94eVNlcnZlcih7XG4gICAgdGFyZ2V0OiBgaHR0cDovLzEyNy4wLjAuMToke29wdGlvbnMuYXBwUG9ydH1gLFxuICAgIHdzOiB0cnVlLFxuICAgIHhmd2Q6IHRydWUsXG4gIH0pO1xuICBjb25zdCBoZWFkZXJQb2xpY3kgPSB0dW5uZWxIZWFkZXJzLnRvSGVhZGVyUG9saWN5KG9wdGlvbnMuZm9yd2FyZEhlYWRlcnMpO1xuICBjb25zdCBnYXRlID0gb3B0aW9ucy5nYXRlO1xuXG4gIGNvbnN0IGRlY2lkZSA9IChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UpOiBQcm9taXNlPHR1bm5lbEdhdGUuR2F0ZUFjdGlvbj4gPT5cbiAgICBnYXRlXG4gICAgICA/IHR1bm5lbEdhdGUuZ2F0ZVJlcXVlc3QocmVxdWVzdCwge1xuICAgICAgICAgIGdhdGUsXG4gICAgICAgICAgcHVibGljRG9tYWluOiAocmVxdWVzdC5oZWFkZXJzLmhvc3QgPz8gXCJcIikuc3BsaXQoXCI6XCIpWzBdIHx8IFwibG9jYWxob3N0XCIsXG4gICAgICAgICAgaGVhZGVyUG9saWN5LFxuICAgICAgICAgIGdhdGVQYXRoczogb3B0aW9ucy5nYXRlUGF0aHMsXG4gICAgICAgIH0pXG4gICAgICA6IFByb21pc2UucmVzb2x2ZTx0dW5uZWxHYXRlLkdhdGVBY3Rpb24+KFwicGFzc1wiKTtcblxuICBjb25zdCBvblJlcXVlc3QgPSAocmVxdWVzdDogSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogU2VydmVyUmVzcG9uc2UpOiB2b2lkID0+IHtcbiAgICB2b2lkIChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwYXRoID0gKHJlcXVlc3QudXJsID8/IFwiL1wiKS5zcGxpdChcIj9cIilbMF0gPz8gXCIvXCI7XG4gICAgICBjb25zdCBicmFuZE5hbWUgPSBvcHRpb25zLmJyYW5kTmFtZSA/PyBcInRoaXMgYXBwXCI7XG4gICAgICBjb25zdCBwYXNza2V5TmFtZVByZWZpeCA9IG9wdGlvbnMucGFzc2tleU5hbWVQcmVmaXg7XG4gICAgICBpZiAoXG4gICAgICAgIGdhdGUgJiZcbiAgICAgICAgKGF3YWl0IGhhbmRsZUF1dGhSb3V0ZShyZXF1ZXN0LCByZXNwb25zZSwgcGF0aCwgZ2F0ZSwgYnJhbmROYW1lLCBwYXNza2V5TmFtZVByZWZpeCkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKChhd2FpdCBkZWNpZGUocmVxdWVzdCkpID09PSBcImRlbnlcIikge1xuICAgICAgICAvLyBBIGRlbmllZCBicm93c2VyIG5hdmlnYXRpb24gZ2V0cyB0aGUgaG9zdGVkIGxvZ2luIHBhZ2U7IGFueXRoaW5nIGVsc2VcbiAgICAgICAgLy8gKGFuIFhIUiwgYSAvd3MgdXBncmFkZSBwcm9iZSwgYSBub24tSFRNTCBmZXRjaCkgZ2V0cyB0aGUgNDAxIEpTT04uXG4gICAgICAgIGlmIChnYXRlICYmIHR1bm5lbEdhdGUud2FudHNMb2dpblBhZ2UocmVxdWVzdCkpIHtcbiAgICAgICAgICBjb25zdCBodG1sID0gdHVubmVsTG9naW5QYWdlLmxvZ2luUGFnZUh0bWwoe1xuICAgICAgICAgICAgYnJhbmROYW1lLFxuICAgICAgICAgICAgcGFzc2tleU5hbWVQcmVmaXgsXG4gICAgICAgICAgICByZXR1cm5UbzogdHVubmVsR2F0ZS5yZXF1ZXN0UmV0dXJuVG8ocmVxdWVzdCksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwMSwgeyBcImNvbnRlbnQtdHlwZVwiOiBcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLmVuZChodG1sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZW5kSnNvbihyZXNwb25zZSwgNDAxLCB0dW5uZWxHYXRlLnVuYXV0aG9yaXplZEJvZHkocmVxdWVzdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHByb3h5LndlYihyZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgfSkoKS5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgIGxvZ2dlci5lcnJvcihcInByb3h5IHJlcXVlc3QgZmFpbGVkXCIsIHsgZXJyb3I6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvcikgfSk7XG4gICAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnNTZW50KSBzZW5kSnNvbihyZXNwb25zZSwgNTAyLCB7IGVycm9yOiBcImJhZCBnYXRld2F5XCIgfSk7XG4gICAgICBlbHNlIHJlc3BvbnNlLmVuZCgpO1xuICAgIH0pO1xuICB9O1xuXG4gIC8vIEEgd2Vic29ja2V0IHVwZ3JhZGUgY2Fubm90IGJlIGFuc3dlcmVkIHdpdGggYSA0MDEgYm9keSwgc28gYSBkZW5pZWQgb25lIGlzXG4gIC8vIGRlc3Ryb3llZCAtIHRoZSBjbGllbnQgc2VlcyB0aGUgaGFuZHNoYWtlIGZhaWwsIHdoaWNoIGlzIHdoYXQgYSBicm93c2VyJ3NcbiAgLy8gV2ViU29ja2V0IGVycm9yIGhhbmRsZXIgZXhwZWN0cy5cbiAgY29uc3Qgb25VcGdyYWRlID0gKHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSwgc29ja2V0OiBTb2NrZXQsIGhlYWQ6IEJ1ZmZlcik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHVwZ3JhZGVTb2NrZXQgPSBzb2NrZXQgYXMgVXBncmFkZVNvY2tldDtcbiAgICB1cGdyYWRlU29ja2V0LmRlc3Ryb3lTb29uID8/PSAoKSA9PiB1cGdyYWRlU29ja2V0LmVuZCgpO1xuICAgIGNvbnN0IHBhdGggPSAocmVxdWVzdC51cmwgPz8gXCIvXCIpLnNwbGl0KFwiP1wiLCAxKVswXSA/PyBcIi9cIjtcbiAgICBpZiAodHVubmVsR2F0ZS5pc0F1dGhQYXRoKHBhdGgpKSB7XG4gICAgICB1cGdyYWRlU29ja2V0LmRlc3Ryb3koKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdm9pZCBkZWNpZGUocmVxdWVzdClcbiAgICAgIC50aGVuKChhY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gXCJkZW55XCIpIHVwZ3JhZGVTb2NrZXQuZGVzdHJveSgpO1xuICAgICAgICBlbHNlIHByb3h5LndzKHJlcXVlc3QsIHVwZ3JhZGVTb2NrZXQsIGhlYWQpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB1cGdyYWRlU29ja2V0LmRlc3Ryb3koKSk7XG4gIH07XG5cbiAgLy8gT25lIG5ldC5TZXJ2ZXIgYmluZHMgb25lIGFkZHJlc3MsIHNvIGxpc3RlbiBlYWNoIGhvc3Qgb24gaXRzIG93biBzZXJ2ZXIgdGhhdFxuICAvLyBzaGFyZXMgdGhlIHNhbWUgaGFuZGxlcnMuIEJpbmRpbmcgc3BlY2lmaWMgaW50ZXJmYWNlIElQcyAocmF0aGVyIHRoYW4gdGhlXG4gIC8vIGRlZmF1bHQgMC4wLjAuMCkgaXMgd2hhdCBsZXRzIHRoZSBnYXRlIGZyb250IGFuIG92ZXJsYXkvTEFOIGFkZHJlc3Mgd2hpbGVcbiAgLy8gbG9vcGJhY2sgcmVhY2hlcyB0aGUgdXBzdHJlYW0gdW5nYXRlZC5cbiAgY29uc3QgaG9zdHMgPSBvcHRpb25zLmJpbmRIb3N0cz8ubGVuZ3RoID8gb3B0aW9ucy5iaW5kSG9zdHMgOiBbXCIwLjAuMC4wXCJdO1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBob3N0cy5tYXAoXG4gICAgICAoaG9zdCkgPT5cbiAgICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgICBjb25zdCBzZXJ2ZXIgPSBjcmVhdGVTZXJ2ZXIob25SZXF1ZXN0KTtcbiAgICAgICAgICBzZXJ2ZXIub24oXCJ1cGdyYWRlXCIsIG9uVXBncmFkZSk7XG4gICAgICAgICAgc2VydmVyLmxpc3RlbihvcHRpb25zLnB1YmxpY1BvcnQsIGhvc3QsICgpID0+IHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKFwicHJveHkgbGlzdGVuaW5nXCIsIHtcbiAgICAgICAgICAgICAgaG9zdCxcbiAgICAgICAgICAgICAgcHVibGljUG9ydDogb3B0aW9ucy5wdWJsaWNQb3J0LFxuICAgICAgICAgICAgICBhcHBQb3J0OiBvcHRpb25zLmFwcFBvcnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSksXG4gICAgKSxcbiAgKTtcbn1cbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHVubmVsL3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQTZDLE1BQU0sV0FBVyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLFVBQVUsRUFDVixlQUFlLEVBRWYsV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEdBQ2QsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFFdkMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQTZCMUMsU0FBUyxRQUFRLENBQ2YsUUFBd0IsRUFDeEIsTUFBYyxFQUNkLElBQWEsRUFDYixTQUFrQjtJQUVsQixRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUN6QixjQUFjLEVBQUUsa0JBQWtCO1FBQ2xDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDbEQsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLGVBQWUsQ0FDNUIsT0FBd0IsRUFDeEIsUUFBd0IsRUFDeEIsSUFBWSxFQUNaLElBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLGlCQUEw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QUMsT0FBTzthQUN6QixDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHJldmVyc2UgcHJveHkgdGhhdCBtYWtlcyB0aGUgd3JhcHBlciBwYXRoIHBvc3NpYmxlLlxuICpcbiAqIFRoZSB3cmFwcGVyIGNsYWltcyB0aGUgUFVCTElDIHBvcnQgYW5kIHRoZSB3cmFwcGVkIGFwcCBydW5zIGFzIGEgY2hpbGQgcHJvY2Vzc1xuICogb24gYSBwcml2YXRlIGxvb3BiYWNrIHBvcnQsIHNvIC0gdW5saWtlIHRoZSBpbi1wcm9jZXNzIHBsdWdpbiAtIHRoZXJlIGlzIG5vXG4gKiBtaWRkbGV3YXJlIGNoYWluIHRvIGluc2VydCB0aGUgZ2F0ZSBpbnRvLiBUaGlzIHByb3h5IGlzIHRoYXQgaW5zZXJ0aW9uIHBvaW50OiBpdFxuICogYW5zd2VycyB0aGUgbG9naW4gcm91dGVzIGl0c2VsZiwgYXBwbGllcyB0aGUgZ2F0ZSB0byBldmVyeXRoaW5nIGVsc2UsIGFuZFxuICogZm9yd2FyZHMgd2hhdCBzdXJ2aXZlcyB0byB0aGUgY2hpbGQuXG4gKlxuICogVGhlIGdhdGluZyBERUNJU0lPTiBpcyBub3QgcmVpbXBsZW1lbnRlZCBoZXJlLiBgQGRieC10b29scy90dW5uZWxgJ3NcbiAqIGBnYXRlLmdhdGVSZXF1ZXN0YCBtYWtlcyBpdCAtIHRoZSBzYW1lIGZ1bmN0aW9uIHRoZSBFeHByZXNzIG1pZGRsZXdhcmUgY2FsbHMgLVxuICogYW5kIHRoaXMgbW9kdWxlIG9ubHkgZGlmZmVycyBpbiBob3cgdGhlIG91dGNvbWUgaXMgd3JpdHRlbjogYSBwcm94aWVkIHJlcXVlc3RcbiAqIGluc3RlYWQgb2YgYG5leHQoKWAsIGEgYHdyaXRlSGVhZGAgaW5zdGVhZCBvZiBgcmVzLmpzb25gLiBUaGF0IGlzIGRlbGliZXJhdGU6XG4gKiB0d28gaW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIFwid2hpY2ggcmVxdWVzdHMgYXJlIGdhdGVkIGFuZCB3aGljaCBoZWFkZXJzXG4gKiBhcmUgc3RyaXBwZWRcIiBpcyB0aGUgb25lIHdheSB0aGlzIHBhY2thZ2UgY291bGQgYmVjb21lIGEgc2VjdXJpdHkgYnVnLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXIsIHR5cGUgSW5jb21pbmdNZXNzYWdlLCB0eXBlIFNlcnZlclJlc3BvbnNlIH0gZnJvbSBcIm5vZGU6aHR0cFwiO1xuaW1wb3J0IHR5cGUgeyBTb2NrZXQgfSBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCB7IGlzQXV0aFBhdGggfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtYXV0aFwiO1xuaW1wb3J0IHsgbG9nLCB0b0Vycm9yIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgQXV0aEdhdGVBcGksXG4gIHdhbnRzSG9zdGVkTG9naW4sXG4gIGxvZ2luUmV0dXJuVG8sXG4gIHdlYlJlcXVlc3QsXG4gIHNlbmRXZWJSZXNwb25zZSxcbiAgdHlwZSBHYXRlQWN0aW9uLFxuICBnYXRlUmVxdWVzdCxcbiAgd2FudHNMb2dpblBhZ2UsXG4gIHJlcXVlc3RSZXR1cm5UbyxcbiAgdW5hdXRob3JpemVkQm9keSxcbiAgdG9IZWFkZXJQb2xpY3ksXG4gIGxvZ2luUGFnZUh0bWwsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuaW1wb3J0IFByb3h5TW9kdWxlIGZyb20gXCJodHRwLXByb3h5LTNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbDpwcm94eVwiKTtcblxudHlwZSBVcGdyYWRlU29ja2V0ID0gU29ja2V0ICYgeyBkZXN0cm95U29vbj86ICgpID0+IHZvaWQgfTtcblxuLyoqIExpc3RlbmVyLCB1cHN0cmVhbSBhcHBsaWNhdGlvbiwgYW5kIG9wdGlvbmFsIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzIGZvciB0aGUgd3JhcHBlciBwcm94eS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlPcHRpb25zIHtcbiAgLyoqIFRoZSBwb3J0IHRoaXMgcHJveHkgbGlzdGVucyBvbiAtIHRoZSBwb3J0IHBvcnRyIGFuZCB0aGUgcGxhdGZvcm0gcm91dGUgdG8uICovXG4gIHB1YmxpY1BvcnQ6IG51bWJlcjtcbiAgLyoqIFRoZSBwcml2YXRlIGxvb3BiYWNrIHBvcnQgdGhlIHdyYXBwZWQgYXBwIGxpc3RlbnMgb24uICovXG4gIGFwcFBvcnQ6IG51bWJlcjtcbiAgLyoqIFRoZSBnYXRlIGhhbmRsZXJzLiBPbWl0dGVkIChhbiBgLS1pbnNlY3VyZWAgcnVuKSBmb3J3YXJkcyBldmVyeXRoaW5nLiAqL1xuICBnYXRlPzogQXV0aEdhdGVBcGk7XG4gIC8qKiBFeHRyYSBgeC1gIGhlYWRlcnMgdHVubmVsIHRyYWZmaWMgbWF5IGZvcndhcmQuICovXG4gIGZvcndhcmRIZWFkZXJzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBQYXRoIHByZWZpeGVzIHRvIGdhdGUgYmV5b25kIGAvYXBpL2AgKGUuZy4gYC93c2AgZm9yIGEgV2ViU29ja2V0IGFwcCkuICovXG4gIGdhdGVQYXRocz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogQnJhbmQgbmFtZSBmb3IgdGhlIGhvc3RlZCBsb2dpbiBwYWdlIHNob3duIG9uIGEgZGVuaWVkIGJyb3dzZXIgbmF2aWdhdGlvbi4gKi9cbiAgYnJhbmROYW1lPzogc3RyaW5nO1xuICAvKiogUHJlZml4IGFkZGVkIGJlZm9yZSB0aGUgaHVtYW5pemVkIHR1bm5lbCBzdWJkb21haW4gaW4gbmV3IHBhc3NrZXkgbmFtZXMuICovXG4gIHBhc3NrZXlOYW1lUHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkcmVzc2VzIHRvIGxpc3RlbiBvbi4gRGVmYXVsdHMgdG8gYSBzaW5nbGUgYDAuMC4wLjBgIChldmVyeSBpbnRlcmZhY2UpLFxuICAgKiB0aGUgcG9ydHIvcGxhdGZvcm0gY2FzZS4gUGFzcyBzcGVjaWZpYyBpbnRlcmZhY2UgSVBzIHRvIGV4cG9zZSB0aGUgZ2F0ZSBvblxuICAgKiBvbmx5IHRob3NlIC0gZS5nLiBhbiBvdmVybGF5L0xBTiBhZGRyZXNzIHdoaWxlIGxvb3BiYWNrIHJlYWNoZXMgdGhlIHVwc3RyZWFtXG4gICAqIGRpcmVjdGx5IGFuZCB1bmdhdGVkLlxuICAgKi9cbiAgYmluZEhvc3RzPzogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIHNlbmRKc29uKFxuICByZXNwb25zZTogU2VydmVyUmVzcG9uc2UsXG4gIHN0YXR1czogbnVtYmVyLFxuICBib2R5OiB1bmtub3duLFxuICBzZXRDb29raWU/OiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgcmVzcG9uc2Uud3JpdGVIZWFkKHN0YXR1cywge1xuICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIC4uLihzZXRDb29raWUgPyB7IFwic2V0LWNvb2tpZVwiOiBzZXRDb29raWUgfSA6IHt9KSxcbiAgfSk7XG4gIHJlc3BvbnNlLmVuZChKU09OLnN0cmluZ2lmeShib2R5KSk7XG59XG5cbi8qKlxuICogSGFuZCBldmVyeSBCZXR0ZXIgQXV0aCBhbmQgY29tcGF0aWJpbGl0eSByb3V0ZSB0byB0aGUgc2hhcmVkIGdhdGUgcnVudGltZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXV0aFJvdXRlKFxuICByZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsXG4gIHJlc3BvbnNlOiBTZXJ2ZXJSZXNwb25zZSxcbiAgcGF0aDogc3RyaW5nLFxuICBnYXRlOiBBdXRoR2F0ZUFwaSxcbiAgYnJhbmROYW1lOiBzdHJpbmcsXG4gIHBhc3NrZXlOYW1lUHJlZml4Pzogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghaXNBdXRoUGF0aChwYXRoKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAod2FudHNIb3N0ZWRMb2dpbihyZXF1ZXN0KSkge1xuICAgIHJlc3BvbnNlLndyaXRlSGVhZCgyMDAsIHsgXCJjb250ZW50LXR5cGVcIjogXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiB9KTtcbiAgICByZXNwb25zZS5lbmQoXG4gICAgICBsb2dpblBhZ2VIdG1sKHtcbiAgICAgICAgYnJhbmROYW1lLFxuICAgICAgICBwYXNza2V5TmFtZVByZWZpeCxcbiAgICAgICAgcmV0dXJuVG86IGxvZ2luUmV0dXJuVG8ocmVxdWVzdCksXG4gICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdhdGUuaGFuZGxlcih3ZWJSZXF1ZXN0KHJlcXVlc3QpKTtcbiAgYXdhaXQgc2VuZFdlYlJlc3BvbnNlKHJlc3BvbnNlLCByZXN1bHQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBTdGFydCB0aGUgcHJveHkgYW5kIHJlc29sdmUgb25jZSBpdCBpcyBsaXN0ZW5pbmcuXG4gKlxuICogYHB1YmxpY0RvbWFpbmAgaXMgaW50ZW50aW9uYWxseSBOT1QgcGFzc2VkIHRvIGBnYXRlUmVxdWVzdGA6IG9uIHRoaXMgcGF0aCBldmVyeVxuICogcmVxdWVzdCBhcnJpdmVkIG9uIHRoZSBwdWJsaWMgcG9ydCwgc28gaXQgSVMgdHVubmVsIHRyYWZmaWMgYnkgY29uc3RydWN0aW9uIC1cbiAqIHdoZXJlYXMgdGhlIGluLXByb2Nlc3MgZ2F0ZSBzaGFyZXMgYSBwb3J0IHdpdGggdGhlIHBsYXRmb3JtIGZyb250IGRvb3IgYW5kIGhhc1xuICogdG8gdGVsbCB0aGVtIGFwYXJ0IGJ5IGBIb3N0YC4gUGFzc2luZyB0aGUgcmVxdWVzdCdzIG93biBob3N0IGtlZXBzIHRoZSBzaGFyZWRcbiAqIGRlY2lzaW9uIGZ1bmN0aW9uJ3MgY29udHJhY3Qgc2F0aXNmaWVkIHdpdGhvdXQgd2Vha2VuaW5nIGl0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRQcm94eShvcHRpb25zOiBQcm94eU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJveHkgPSBQcm94eU1vZHVsZS5jcmVhdGVQcm94eVNlcnZlcih7XG4gICAgdGFyZ2V0OiBgaHR0cDovLzEyNy4wLjAuMToke29wdGlvbnMuYXBwUG9ydH1gLFxuICAgIHdzOiB0cnVlLFxuICAgIHhmd2Q6IHRydWUsXG4gIH0pO1xuICBjb25zdCBoZWFkZXJQb2xpY3kgPSB0b0hlYWRlclBvbGljeShvcHRpb25zLmZvcndhcmRIZWFkZXJzKTtcbiAgY29uc3QgZ2F0ZSA9IG9wdGlvbnMuZ2F0ZTtcblxuICBjb25zdCBkZWNpZGUgPSAocmVxdWVzdDogSW5jb21pbmdNZXNzYWdlKTogUHJvbWlzZTxHYXRlQWN0aW9uPiA9PlxuICAgIGdhdGVcbiAgICAgID8gZ2F0ZVJlcXVlc3QocmVxdWVzdCwge1xuICAgICAgICAgIGdhdGUsXG4gICAgICAgICAgcHVibGljRG9tYWluOiAocmVxdWVzdC5oZWFkZXJzLmhvc3QgPz8gXCJcIikuc3BsaXQoXCI6XCIpWzBdIHx8IFwibG9jYWxob3N0XCIsXG4gICAgICAgICAgaGVhZGVyUG9saWN5LFxuICAgICAgICAgIGdhdGVQYXRoczogb3B0aW9ucy5nYXRlUGF0aHMsXG4gICAgICAgIH0pXG4gICAgICA6IFByb21pc2UucmVzb2x2ZTxHYXRlQWN0aW9uPihcInBhc3NcIik7XG5cbiAgY29uc3Qgb25SZXF1ZXN0ID0gKHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSwgcmVzcG9uc2U6IFNlcnZlclJlc3BvbnNlKTogdm9pZCA9PiB7XG4gICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IChyZXF1ZXN0LnVybCA/PyBcIi9cIikuc3BsaXQoXCI/XCIpWzBdID8/IFwiL1wiO1xuICAgICAgY29uc3QgYnJhbmROYW1lID0gb3B0aW9ucy5icmFuZE5hbWUgPz8gXCJ0aGlzIGFwcFwiO1xuICAgICAgY29uc3QgcGFzc2tleU5hbWVQcmVmaXggPSBvcHRpb25zLnBhc3NrZXlOYW1lUHJlZml4O1xuICAgICAgaWYgKFxuICAgICAgICBnYXRlICYmXG4gICAgICAgIChhd2FpdCBoYW5kbGVBdXRoUm91dGUocmVxdWVzdCwgcmVzcG9uc2UsIHBhdGgsIGdhdGUsIGJyYW5kTmFtZSwgcGFzc2tleU5hbWVQcmVmaXgpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICgoYXdhaXQgZGVjaWRlKHJlcXVlc3QpKSA9PT0gXCJkZW55XCIpIHtcbiAgICAgICAgLy8gQSBkZW5pZWQgYnJvd3NlciBuYXZpZ2F0aW9uIGdldHMgdGhlIGhvc3RlZCBsb2dpbiBwYWdlOyBhbnl0aGluZyBlbHNlXG4gICAgICAgIC8vIChhbiBYSFIsIGEgL3dzIHVwZ3JhZGUgcHJvYmUsIGEgbm9uLUhUTUwgZmV0Y2gpIGdldHMgdGhlIDQwMSBKU09OLlxuICAgICAgICBpZiAoZ2F0ZSAmJiB3YW50c0xvZ2luUGFnZShyZXF1ZXN0KSkge1xuICAgICAgICAgIGNvbnN0IGh0bWwgPSBsb2dpblBhZ2VIdG1sKHtcbiAgICAgICAgICAgIGJyYW5kTmFtZSxcbiAgICAgICAgICAgIHBhc3NrZXlOYW1lUHJlZml4LFxuICAgICAgICAgICAgcmV0dXJuVG86IHJlcXVlc3RSZXR1cm5UbyhyZXF1ZXN0KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoNDAxLCB7IFwiY29udGVudC10eXBlXCI6IFwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIgfSk7XG4gICAgICAgICAgcmVzcG9uc2UuZW5kKGh0bWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbmRKc29uKHJlc3BvbnNlLCA0MDEsIHVuYXV0aG9yaXplZEJvZHkocmVxdWVzdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHByb3h5LndlYihyZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgfSkoKS5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgIGxvZ2dlci5lcnJvcihcInByb3h5IHJlcXVlc3QgZmFpbGVkXCIsIHsgZXJyb3I6IHRvRXJyb3IoZXJyb3IpIH0pO1xuICAgICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzU2VudCkgc2VuZEpzb24ocmVzcG9uc2UsIDUwMiwgeyBlcnJvcjogXCJiYWQgZ2F0ZXdheVwiIH0pO1xuICAgICAgZWxzZSByZXNwb25zZS5lbmQoKTtcbiAgICB9KTtcbiAgfTtcblxuICAvLyBBIHdlYnNvY2tldCB1cGdyYWRlIGNhbm5vdCBiZSBhbnN3ZXJlZCB3aXRoIGEgNDAxIGJvZHksIHNvIGEgZGVuaWVkIG9uZSBpc1xuICAvLyBkZXN0cm95ZWQgLSB0aGUgY2xpZW50IHNlZXMgdGhlIGhhbmRzaGFrZSBmYWlsLCB3aGljaCBpcyB3aGF0IGEgYnJvd3NlcidzXG4gIC8vIFdlYlNvY2tldCBlcnJvciBoYW5kbGVyIGV4cGVjdHMuXG4gIGNvbnN0IG9uVXBncmFkZSA9IChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsIHNvY2tldDogU29ja2V0LCBoZWFkOiBCdWZmZXIpOiB2b2lkID0+IHtcbiAgICBjb25zdCB1cGdyYWRlU29ja2V0ID0gc29ja2V0IGFzIFVwZ3JhZGVTb2NrZXQ7XG4gICAgdXBncmFkZVNvY2tldC5kZXN0cm95U29vbiA/Pz0gKCkgPT4gdXBncmFkZVNvY2tldC5lbmQoKTtcbiAgICBjb25zdCBwYXRoID0gKHJlcXVlc3QudXJsID8/IFwiL1wiKS5zcGxpdChcIj9cIiwgMSlbMF0gPz8gXCIvXCI7XG4gICAgaWYgKGlzQXV0aFBhdGgocGF0aCkpIHtcbiAgICAgIHVwZ3JhZGVTb2NrZXQuZGVzdHJveSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIGRlY2lkZShyZXF1ZXN0KVxuICAgICAgLnRoZW4oKGFjdGlvbikgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uID09PSBcImRlbnlcIikgdXBncmFkZVNvY2tldC5kZXN0cm95KCk7XG4gICAgICAgIGVsc2UgcHJveHkud3MocmVxdWVzdCwgdXBncmFkZVNvY2tldCwgaGVhZCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHVwZ3JhZGVTb2NrZXQuZGVzdHJveSgpKTtcbiAgfTtcblxuICAvLyBPbmUgbmV0LlNlcnZlciBiaW5kcyBvbmUgYWRkcmVzcywgc28gbGlzdGVuIGVhY2ggaG9zdCBvbiBpdHMgb3duIHNlcnZlciB0aGF0XG4gIC8vIHNoYXJlcyB0aGUgc2FtZSBoYW5kbGVycy4gQmluZGluZyBzcGVjaWZpYyBpbnRlcmZhY2UgSVBzIChyYXRoZXIgdGhhbiB0aGVcbiAgLy8gZGVmYXVsdCAwLjAuMC4wKSBpcyB3aGF0IGxldHMgdGhlIGdhdGUgZnJvbnQgYW4gb3ZlcmxheS9MQU4gYWRkcmVzcyB3aGlsZVxuICAvLyBsb29wYmFjayByZWFjaGVzIHRoZSB1cHN0cmVhbSB1bmdhdGVkLlxuICBjb25zdCBob3N0cyA9IG9wdGlvbnMuYmluZEhvc3RzPy5sZW5ndGggPyBvcHRpb25zLmJpbmRIb3N0cyA6IFtcIjAuMC4wLjBcIl07XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGhvc3RzLm1hcChcbiAgICAgIChob3N0KSA9PlxuICAgICAgICBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlcnZlciA9IGNyZWF0ZVNlcnZlcihvblJlcXVlc3QpO1xuICAgICAgICAgIHNlcnZlci5vbihcInVwZ3JhZGVcIiwgb25VcGdyYWRlKTtcbiAgICAgICAgICBzZXJ2ZXIubGlzdGVuKG9wdGlvbnMucHVibGljUG9ydCwgaG9zdCwgKCkgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLmluZm8oXCJwcm94eSBsaXN0ZW5pbmdcIiwge1xuICAgICAgICAgICAgICBob3N0LFxuICAgICAgICAgICAgICBwdWJsaWNQb3J0OiBvcHRpb25zLnB1YmxpY1BvcnQsXG4gICAgICAgICAgICAgIGFwcFBvcnQ6IG9wdGlvbnMuYXBwUG9ydCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICApLFxuICApO1xufVxuIl19
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/bootstrap.ts","../src/bun.ts","../src/cli.ts","../src/root.ts","../src/appkit/cli.ts","../src/appkit/env-export.ts","../src/
|
|
1
|
+
{"root":["../src/bootstrap.ts","../src/bun.ts","../src/cli.ts","../src/root.ts","../src/appkit/cli.ts","../src/appkit/env-export.ts","../src/auth/cli.ts","../src/auth/options.ts","../src/brand/cli.ts","../src/brand/export.ts","../src/brand/options.ts","../src/brand/run.ts","../src/brand/showcase.ts","../src/genie-code/cli.ts","../src/genie-code/config.ts","../src/genie-code/install.ts","../src/genie-code/runner.ts","../src/genie-code/runtime.ts","../src/graphiti/cli.ts","../src/lakebase-proxy/cancellation.ts","../src/lakebase-proxy/cli.ts","../src/lakebase-proxy/options.ts","../src/lakebase-proxy/protocol.ts","../src/lakebase-proxy/proxy.ts","../src/model-gateway/cli.ts","../src/model-gateway/server.ts","../src/tunnel/app.ts","../src/tunnel/cli.ts","../src/tunnel/options.ts","../src/tunnel/proxy.ts","../index.appkit.ts","../index.auth.ts","../index.brand.ts","../index.genie-code.ts","../index.graphiti.ts","../index.lakebase-proxy.ts","../index.model-gateway.ts","../index.tunnel.ts","../index.ts","../bin/dbx-genie.ts","../bin/dbx-graphiti.ts","../bin/dbx-lakebase-proxy.ts","../bin/dbx-model-gateway.ts","../bin/dbx-tools.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -34,27 +34,28 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@clack/prompts": "^1.7.0",
|
|
36
36
|
"@databricks/appkit": "0.81.0",
|
|
37
|
-
"@dbx-tools/appkit": "^0.9.
|
|
38
|
-
"@dbx-tools/appkit-generator": "^0.9.
|
|
39
|
-
"@dbx-tools/appkit-memory": "^0.9.
|
|
40
|
-
"@dbx-tools/appkit-model-gateway": "^0.9.
|
|
41
|
-
"@dbx-tools/appkit-web-search": "^0.9.
|
|
42
|
-
"@dbx-tools/auth": "^0.9.
|
|
43
|
-
"@dbx-tools/auth-gate": "^0.9.
|
|
44
|
-
"@dbx-tools/cli-args": "^0.9.
|
|
45
|
-
"@dbx-tools/cli-service": "^0.9.
|
|
46
|
-
"@dbx-tools/core": "^0.9.
|
|
47
|
-
"@dbx-tools/databricks": "^0.9.
|
|
48
|
-
"@dbx-tools/email": "^0.9.
|
|
49
|
-
"@dbx-tools/lakebase": "^0.9.
|
|
50
|
-
"@dbx-tools/postgres": "^0.9.
|
|
51
|
-
"@dbx-tools/shared-auth": "^0.9.
|
|
52
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
53
|
-
"@dbx-tools/shared-email": "^0.9.
|
|
54
|
-
"@dbx-tools/shared-generator": "^0.9.
|
|
55
|
-
"@dbx-tools/shared-genie-code": "^0.9.
|
|
56
|
-
"@dbx-tools/shared-
|
|
57
|
-
"@dbx-tools/
|
|
37
|
+
"@dbx-tools/appkit": "^0.9.158",
|
|
38
|
+
"@dbx-tools/appkit-generator": "^0.9.158",
|
|
39
|
+
"@dbx-tools/appkit-memory": "^0.9.158",
|
|
40
|
+
"@dbx-tools/appkit-model-gateway": "^0.9.158",
|
|
41
|
+
"@dbx-tools/appkit-web-search": "^0.9.158",
|
|
42
|
+
"@dbx-tools/auth": "^0.9.158",
|
|
43
|
+
"@dbx-tools/auth-gate": "^0.9.158",
|
|
44
|
+
"@dbx-tools/cli-args": "^0.9.158",
|
|
45
|
+
"@dbx-tools/cli-service": "^0.9.158",
|
|
46
|
+
"@dbx-tools/core": "^0.9.158",
|
|
47
|
+
"@dbx-tools/databricks": "^0.9.158",
|
|
48
|
+
"@dbx-tools/email": "^0.9.158",
|
|
49
|
+
"@dbx-tools/lakebase": "^0.9.158",
|
|
50
|
+
"@dbx-tools/postgres": "^0.9.158",
|
|
51
|
+
"@dbx-tools/shared-auth": "^0.9.158",
|
|
52
|
+
"@dbx-tools/shared-core": "^0.9.158",
|
|
53
|
+
"@dbx-tools/shared-email": "^0.9.158",
|
|
54
|
+
"@dbx-tools/shared-generator": "^0.9.158",
|
|
55
|
+
"@dbx-tools/shared-genie-code": "^0.9.158",
|
|
56
|
+
"@dbx-tools/shared-graphiti": "^0.9.158",
|
|
57
|
+
"@dbx-tools/shared-model-gateway": "^0.9.158",
|
|
58
|
+
"@dbx-tools/tunnel": "^0.9.158",
|
|
58
59
|
"commander": "^15.0.0",
|
|
59
60
|
"concurrently": "^10.0.3",
|
|
60
61
|
"get-port": "^7.1.0",
|
|
@@ -83,102 +84,42 @@
|
|
|
83
84
|
"types": "./lib/index.d.ts",
|
|
84
85
|
"default": "./lib/index.js"
|
|
85
86
|
},
|
|
86
|
-
"./bootstrap": {
|
|
87
|
-
"types": "./lib/src/bootstrap.d.ts",
|
|
88
|
-
"default": "./lib/src/bootstrap.js"
|
|
89
|
-
},
|
|
90
|
-
"./bun": {
|
|
91
|
-
"types": "./lib/src/bun.d.ts",
|
|
92
|
-
"default": "./lib/src/bun.js"
|
|
93
|
-
},
|
|
94
|
-
"./cli": {
|
|
95
|
-
"types": "./lib/src/cli.d.ts",
|
|
96
|
-
"default": "./lib/src/cli.js"
|
|
97
|
-
},
|
|
98
|
-
"./root": {
|
|
99
|
-
"types": "./lib/src/root.d.ts",
|
|
100
|
-
"default": "./lib/src/root.js"
|
|
101
|
-
},
|
|
102
|
-
"./*": {
|
|
103
|
-
"types": "./lib/src/*/index.d.ts",
|
|
104
|
-
"default": "./lib/src/*/index.js"
|
|
105
|
-
},
|
|
106
87
|
"./appkit": {
|
|
107
|
-
"types": "./lib/
|
|
108
|
-
"default": "./lib/
|
|
109
|
-
},
|
|
110
|
-
"./appkit/env-export": {
|
|
111
|
-
"types": "./lib/src/appkit/env-export.d.ts",
|
|
112
|
-
"default": "./lib/src/appkit/env-export.js"
|
|
88
|
+
"types": "./lib/index.appkit.d.ts",
|
|
89
|
+
"default": "./lib/index.appkit.js"
|
|
113
90
|
},
|
|
114
91
|
"./auth": {
|
|
115
|
-
"types": "./lib/
|
|
116
|
-
"default": "./lib/
|
|
117
|
-
},
|
|
118
|
-
"./auth/options": {
|
|
119
|
-
"types": "./lib/src/auth/options.d.ts",
|
|
120
|
-
"default": "./lib/src/auth/options.js"
|
|
92
|
+
"types": "./lib/index.auth.d.ts",
|
|
93
|
+
"default": "./lib/index.auth.js"
|
|
121
94
|
},
|
|
122
95
|
"./brand": {
|
|
123
|
-
"types": "./lib/
|
|
124
|
-
"default": "./lib/
|
|
125
|
-
},
|
|
126
|
-
"./brand/export": {
|
|
127
|
-
"types": "./lib/src/brand/export.d.ts",
|
|
128
|
-
"default": "./lib/src/brand/export.js"
|
|
96
|
+
"types": "./lib/index.brand.d.ts",
|
|
97
|
+
"default": "./lib/index.brand.js"
|
|
129
98
|
},
|
|
130
|
-
"./
|
|
131
|
-
"types": "./lib/
|
|
132
|
-
"default": "./lib/
|
|
133
|
-
},
|
|
134
|
-
"./brand/run": {
|
|
135
|
-
"types": "./lib/src/brand/run.d.ts",
|
|
136
|
-
"default": "./lib/src/brand/run.js"
|
|
99
|
+
"./genie-code": {
|
|
100
|
+
"types": "./lib/index.genie-code.d.ts",
|
|
101
|
+
"default": "./lib/index.genie-code.js"
|
|
137
102
|
},
|
|
138
103
|
"./graphiti": {
|
|
139
|
-
"types": "./lib/
|
|
140
|
-
"default": "./lib/
|
|
141
|
-
},
|
|
142
|
-
"./graphiti/options": {
|
|
143
|
-
"types": "./lib/src/graphiti/options.d.ts",
|
|
144
|
-
"default": "./lib/src/graphiti/options.js"
|
|
145
|
-
},
|
|
146
|
-
"./genie": {
|
|
147
|
-
"types": "./lib/src/genie-code/cli.d.ts",
|
|
148
|
-
"default": "./lib/src/genie-code/cli.js"
|
|
149
|
-
},
|
|
150
|
-
"./genie/options": {
|
|
151
|
-
"types": "./lib/src/genie-code/options.d.ts",
|
|
152
|
-
"default": "./lib/src/genie-code/options.js"
|
|
104
|
+
"types": "./lib/index.graphiti.d.ts",
|
|
105
|
+
"default": "./lib/index.graphiti.js"
|
|
153
106
|
},
|
|
154
107
|
"./lakebase-proxy": {
|
|
155
|
-
"types": "./lib/
|
|
156
|
-
"default": "./lib/
|
|
157
|
-
},
|
|
158
|
-
"./lakebase-proxy/options": {
|
|
159
|
-
"types": "./lib/src/lakebase-proxy/options.d.ts",
|
|
160
|
-
"default": "./lib/src/lakebase-proxy/options.js"
|
|
108
|
+
"types": "./lib/index.lakebase-proxy.d.ts",
|
|
109
|
+
"default": "./lib/index.lakebase-proxy.js"
|
|
161
110
|
},
|
|
162
111
|
"./model-gateway": {
|
|
163
|
-
"types": "./lib/
|
|
164
|
-
"default": "./lib/
|
|
165
|
-
},
|
|
166
|
-
"./model-gateway/server": {
|
|
167
|
-
"types": "./lib/src/model-gateway/server.d.ts",
|
|
168
|
-
"default": "./lib/src/model-gateway/server.js"
|
|
112
|
+
"types": "./lib/index.model-gateway.d.ts",
|
|
113
|
+
"default": "./lib/index.model-gateway.js"
|
|
169
114
|
},
|
|
170
115
|
"./tunnel": {
|
|
171
|
-
"types": "./lib/
|
|
172
|
-
"default": "./lib/
|
|
173
|
-
},
|
|
174
|
-
"./tunnel/options": {
|
|
175
|
-
"types": "./lib/src/tunnel/options.d.ts",
|
|
176
|
-
"default": "./lib/src/tunnel/options.js"
|
|
116
|
+
"types": "./lib/index.tunnel.d.ts",
|
|
117
|
+
"default": "./lib/index.tunnel.js"
|
|
177
118
|
},
|
|
178
119
|
"./package.json": "./package.json"
|
|
179
120
|
}
|
|
180
121
|
},
|
|
181
|
-
"version": "0.9.
|
|
122
|
+
"version": "0.9.158",
|
|
182
123
|
"types": "./lib/index.d.ts",
|
|
183
124
|
"dbxToolsConfig": {
|
|
184
125
|
"tags": [
|
|
@@ -191,102 +132,42 @@
|
|
|
191
132
|
"types": "./lib/index.d.ts",
|
|
192
133
|
"default": "./lib/index.js"
|
|
193
134
|
},
|
|
194
|
-
"./bootstrap": {
|
|
195
|
-
"types": "./lib/src/bootstrap.d.ts",
|
|
196
|
-
"default": "./lib/src/bootstrap.js"
|
|
197
|
-
},
|
|
198
|
-
"./bun": {
|
|
199
|
-
"types": "./lib/src/bun.d.ts",
|
|
200
|
-
"default": "./lib/src/bun.js"
|
|
201
|
-
},
|
|
202
|
-
"./cli": {
|
|
203
|
-
"types": "./lib/src/cli.d.ts",
|
|
204
|
-
"default": "./lib/src/cli.js"
|
|
205
|
-
},
|
|
206
|
-
"./root": {
|
|
207
|
-
"types": "./lib/src/root.d.ts",
|
|
208
|
-
"default": "./lib/src/root.js"
|
|
209
|
-
},
|
|
210
|
-
"./*": {
|
|
211
|
-
"types": "./lib/src/*/index.d.ts",
|
|
212
|
-
"default": "./lib/src/*/index.js"
|
|
213
|
-
},
|
|
214
135
|
"./appkit": {
|
|
215
|
-
"types": "./lib/
|
|
216
|
-
"default": "./lib/
|
|
217
|
-
},
|
|
218
|
-
"./appkit/env-export": {
|
|
219
|
-
"types": "./lib/src/appkit/env-export.d.ts",
|
|
220
|
-
"default": "./lib/src/appkit/env-export.js"
|
|
136
|
+
"types": "./lib/index.appkit.d.ts",
|
|
137
|
+
"default": "./lib/index.appkit.js"
|
|
221
138
|
},
|
|
222
139
|
"./auth": {
|
|
223
|
-
"types": "./lib/
|
|
224
|
-
"default": "./lib/
|
|
225
|
-
},
|
|
226
|
-
"./auth/options": {
|
|
227
|
-
"types": "./lib/src/auth/options.d.ts",
|
|
228
|
-
"default": "./lib/src/auth/options.js"
|
|
140
|
+
"types": "./lib/index.auth.d.ts",
|
|
141
|
+
"default": "./lib/index.auth.js"
|
|
229
142
|
},
|
|
230
143
|
"./brand": {
|
|
231
|
-
"types": "./lib/
|
|
232
|
-
"default": "./lib/
|
|
233
|
-
},
|
|
234
|
-
"./brand/export": {
|
|
235
|
-
"types": "./lib/src/brand/export.d.ts",
|
|
236
|
-
"default": "./lib/src/brand/export.js"
|
|
144
|
+
"types": "./lib/index.brand.d.ts",
|
|
145
|
+
"default": "./lib/index.brand.js"
|
|
237
146
|
},
|
|
238
|
-
"./
|
|
239
|
-
"types": "./lib/
|
|
240
|
-
"default": "./lib/
|
|
241
|
-
},
|
|
242
|
-
"./brand/run": {
|
|
243
|
-
"types": "./lib/src/brand/run.d.ts",
|
|
244
|
-
"default": "./lib/src/brand/run.js"
|
|
147
|
+
"./genie-code": {
|
|
148
|
+
"types": "./lib/index.genie-code.d.ts",
|
|
149
|
+
"default": "./lib/index.genie-code.js"
|
|
245
150
|
},
|
|
246
151
|
"./graphiti": {
|
|
247
|
-
"types": "./lib/
|
|
248
|
-
"default": "./lib/
|
|
249
|
-
},
|
|
250
|
-
"./graphiti/options": {
|
|
251
|
-
"types": "./lib/src/graphiti/options.d.ts",
|
|
252
|
-
"default": "./lib/src/graphiti/options.js"
|
|
253
|
-
},
|
|
254
|
-
"./genie": {
|
|
255
|
-
"types": "./lib/src/genie-code/cli.d.ts",
|
|
256
|
-
"default": "./lib/src/genie-code/cli.js"
|
|
257
|
-
},
|
|
258
|
-
"./genie/options": {
|
|
259
|
-
"types": "./lib/src/genie-code/options.d.ts",
|
|
260
|
-
"default": "./lib/src/genie-code/options.js"
|
|
152
|
+
"types": "./lib/index.graphiti.d.ts",
|
|
153
|
+
"default": "./lib/index.graphiti.js"
|
|
261
154
|
},
|
|
262
155
|
"./lakebase-proxy": {
|
|
263
|
-
"types": "./lib/
|
|
264
|
-
"default": "./lib/
|
|
265
|
-
},
|
|
266
|
-
"./lakebase-proxy/options": {
|
|
267
|
-
"types": "./lib/src/lakebase-proxy/options.d.ts",
|
|
268
|
-
"default": "./lib/src/lakebase-proxy/options.js"
|
|
156
|
+
"types": "./lib/index.lakebase-proxy.d.ts",
|
|
157
|
+
"default": "./lib/index.lakebase-proxy.js"
|
|
269
158
|
},
|
|
270
159
|
"./model-gateway": {
|
|
271
|
-
"types": "./lib/
|
|
272
|
-
"default": "./lib/
|
|
273
|
-
},
|
|
274
|
-
"./model-gateway/server": {
|
|
275
|
-
"types": "./lib/src/model-gateway/server.d.ts",
|
|
276
|
-
"default": "./lib/src/model-gateway/server.js"
|
|
160
|
+
"types": "./lib/index.model-gateway.d.ts",
|
|
161
|
+
"default": "./lib/index.model-gateway.js"
|
|
277
162
|
},
|
|
278
163
|
"./tunnel": {
|
|
279
|
-
"types": "./lib/
|
|
280
|
-
"default": "./lib/
|
|
281
|
-
},
|
|
282
|
-
"./tunnel/options": {
|
|
283
|
-
"types": "./lib/src/tunnel/options.d.ts",
|
|
284
|
-
"default": "./lib/src/tunnel/options.js"
|
|
164
|
+
"types": "./lib/index.tunnel.d.ts",
|
|
165
|
+
"default": "./lib/index.tunnel.js"
|
|
285
166
|
},
|
|
286
167
|
"./package.json": "./package.json"
|
|
287
168
|
},
|
|
288
169
|
"files": [
|
|
289
|
-
"index
|
|
170
|
+
"index*.ts",
|
|
290
171
|
"src",
|
|
291
172
|
"bin",
|
|
292
173
|
"lib"
|
package/src/appkit/cli.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @module
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import {
|
|
15
|
+
import { autoConfigure } from "@dbx-tools/appkit";
|
|
16
16
|
import { addArgs, parseArgs } from "@dbx-tools/cli-args";
|
|
17
17
|
import { log } from "@dbx-tools/shared-core";
|
|
18
18
|
import { Command, CommanderError } from "commander";
|
|
@@ -35,7 +35,7 @@ async function writeEnvExport(opts: EnvCommandOptions): Promise<void> {
|
|
|
35
35
|
|
|
36
36
|
logger.debug("Snapshotting env vars");
|
|
37
37
|
const before = snapshotEnv();
|
|
38
|
-
await
|
|
38
|
+
await autoConfigure({ autoConfigure: "env" });
|
|
39
39
|
const changes = diffEnv(before, snapshotEnv());
|
|
40
40
|
|
|
41
41
|
process.stdout.write(formatEnvExport(changes, opts.format));
|
|
@@ -68,5 +68,3 @@ export function buildProgram(name = "dbx appkit"): Command {
|
|
|
68
68
|
export async function runCli(argv: string[]): Promise<void> {
|
|
69
69
|
await buildProgram().parseAsync(argv);
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
export { CommanderError };
|
package/src/auth/cli.ts
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
import * as databricks from "@dbx-tools/auth";
|
|
11
11
|
import { addArgs, parseArgs } from "@dbx-tools/cli-args";
|
|
12
|
-
import type { DatabricksAuthClientInfo } from "@dbx-tools/shared-auth
|
|
13
|
-
import { Command
|
|
12
|
+
import type { DatabricksAuthClientInfo } from "@dbx-tools/shared-auth";
|
|
13
|
+
import { Command } from "commander";
|
|
14
14
|
|
|
15
15
|
import {
|
|
16
16
|
AuthCliOptionsSchema,
|
|
@@ -171,5 +171,3 @@ export function buildProgram(
|
|
|
171
171
|
export async function runCli(argv: string[]): Promise<void> {
|
|
172
172
|
await buildProgram().parseAsync(argv);
|
|
173
173
|
}
|
|
174
|
-
|
|
175
|
-
export { CommanderError };
|
package/src/auth/options.ts
CHANGED
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
AuthOptionsSchema,
|
|
9
9
|
DatabricksAuthOptionsSchema,
|
|
10
10
|
type DatabricksAuthOptions,
|
|
11
|
-
} from "@dbx-tools/auth
|
|
12
|
-
import {
|
|
11
|
+
} from "@dbx-tools/auth";
|
|
12
|
+
import { parseList } from "@dbx-tools/shared-core";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
|
|
15
15
|
export const AuthCliOptionsSchema = z
|
|
@@ -25,9 +25,7 @@ export const AuthCliOptionsSchema = z
|
|
|
25
25
|
scopes: z
|
|
26
26
|
.preprocess(
|
|
27
27
|
(value) =>
|
|
28
|
-
Array.isArray(value)
|
|
29
|
-
? value.flatMap((entry) => stringUtils.parseList(String(entry)))
|
|
30
|
-
: value,
|
|
28
|
+
Array.isArray(value) ? value.flatMap((entry) => parseList(String(entry))) : value,
|
|
31
29
|
z.array(z.string().trim().min(1)),
|
|
32
30
|
)
|
|
33
31
|
.default([])
|
package/src/bootstrap.ts
CHANGED
|
@@ -7,8 +7,8 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
7
7
|
import { createRequire } from "node:module";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { intro, outro } from "@clack/prompts";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { spawnSync } from "@dbx-tools/core";
|
|
11
|
+
import { log, parseRecord } from "@dbx-tools/shared-core";
|
|
12
12
|
import { childEnv, resolveBunArgv, runBun } from "./bun.ts";
|
|
13
13
|
import { rootLabel } from "./root.ts";
|
|
14
14
|
|
|
@@ -44,7 +44,7 @@ function ownVersion(): string | undefined {
|
|
|
44
44
|
// in source but two levels away after compilation and silently fell back to
|
|
45
45
|
// `@latest` in every installed CLI.
|
|
46
46
|
const manifestPath = createRequire(import.meta.url).resolve(`${CLI_PACKAGE}/package.json`);
|
|
47
|
-
const version =
|
|
47
|
+
const version = parseRecord(readFileSync(manifestPath, "utf8"))?.version;
|
|
48
48
|
return typeof version === "string" && version !== "0.0.0" ? version : undefined;
|
|
49
49
|
} catch {
|
|
50
50
|
return undefined;
|
|
@@ -62,7 +62,7 @@ function compareVersions(a: string, b: string): number {
|
|
|
62
62
|
function installedEngineVersion(root: string): string | undefined {
|
|
63
63
|
try {
|
|
64
64
|
const manifest = join(root, "node_modules", "@dbx-tools", "projen", "package.json");
|
|
65
|
-
const version =
|
|
65
|
+
const version = parseRecord(readFileSync(manifest, "utf8"))?.version;
|
|
66
66
|
return typeof version === "string" ? version : undefined;
|
|
67
67
|
} catch {
|
|
68
68
|
return undefined;
|
|
@@ -89,13 +89,9 @@ export function ensureEngineCurrent(root: string): void {
|
|
|
89
89
|
runBun(["add", "-D", defaultProjenSpecifier()], root);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
// flat, but every engine ever published exports the namespace, and this template
|
|
94
|
-
// is resolved against `@latest` - a flat import dies on an older one with
|
|
95
|
-
// "does not provide an export named 'DBXToolsNodeProject'".
|
|
96
|
-
const PROJENRC_TEMPLATE = `import { project } from "@dbx-tools/projen";
|
|
92
|
+
const PROJENRC_TEMPLATE = `import { projectJs } from "@dbx-tools/projen";
|
|
97
93
|
|
|
98
|
-
const rootProject = new
|
|
94
|
+
const rootProject = new projectJs.DBXToolsNodeProject();
|
|
99
95
|
rootProject.synth();
|
|
100
96
|
`;
|
|
101
97
|
|
|
@@ -153,7 +149,7 @@ export function seedToolchain(
|
|
|
153
149
|
normalizeSeedManifest(manifestPath);
|
|
154
150
|
}
|
|
155
151
|
|
|
156
|
-
const kernelArch =
|
|
152
|
+
const kernelArch = spawnSync("uname", ["-m"], {
|
|
157
153
|
stdin: "ignore",
|
|
158
154
|
stdout: "capture",
|
|
159
155
|
stderr: "ignore",
|
|
@@ -178,7 +174,7 @@ export function seedToolchain(
|
|
|
178
174
|
*/
|
|
179
175
|
function normalizeSeedManifest(manifestPath: string): void {
|
|
180
176
|
try {
|
|
181
|
-
const manifest =
|
|
177
|
+
const manifest = parseRecord(readFileSync(manifestPath, "utf8"));
|
|
182
178
|
if (!manifest) return;
|
|
183
179
|
delete manifest.devEngines;
|
|
184
180
|
delete manifest.packageManager;
|
|
@@ -199,7 +195,7 @@ export function runInitialSynth(root: string): void {
|
|
|
199
195
|
const [command, ...prefix] = resolveBunArgv();
|
|
200
196
|
// bun runs the `.ts` directly. Registry environment aliases reach nested
|
|
201
197
|
// commands through `childEnv` without writing project-level npm configuration.
|
|
202
|
-
|
|
198
|
+
spawnSync(command, [...prefix, ".projenrc.ts"], {
|
|
203
199
|
cwd: root,
|
|
204
200
|
env: childEnv({ PROJEN_DISABLE_POST: "true" }),
|
|
205
201
|
check: true,
|
package/src/brand/options.ts
CHANGED