@dbx-tools/cli 0.9.132 → 0.9.138
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/README.md +73 -13
- package/index.ts +10 -1
- package/lib/index.d.ts +10 -1
- package/lib/index.js +7 -2
- package/lib/src/brand/cli.d.ts +15 -0
- package/lib/src/brand/cli.js +36 -0
- package/lib/src/brand/export.d.ts +27 -0
- package/lib/src/brand/export.js +106 -0
- package/lib/src/brand/index.d.ts +9 -0
- package/lib/src/brand/index.js +9 -0
- package/lib/src/brand/options.d.ts +19 -0
- package/lib/src/brand/options.js +44 -0
- package/lib/src/brand/run.d.ts +17 -0
- package/lib/src/brand/run.js +59 -0
- package/lib/src/cli.js +5 -2
- package/lib/src/tunnel/cli.js +2 -1
- package/lib/src/tunnel/options.d.ts +1 -0
- package/lib/src/tunnel/options.js +5 -1
- package/lib/src/tunnel/proxy.d.ts +2 -0
- package/lib/src/tunnel/proxy.js +8 -3
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +55 -19
- package/src/brand/cli.ts +52 -0
- package/src/brand/export.ts +144 -0
- package/src/brand/index.ts +13 -0
- package/src/brand/options.ts +48 -0
- package/src/brand/run.ts +85 -0
- package/src/cli.ts +10 -1
- package/src/tunnel/cli.ts +1 -0
- package/src/tunnel/options.ts +4 -0
- package/src/tunnel/proxy.ts +12 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone researched brand generation for the consolidated CLI.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { generateBrandPackage } from "@dbx-tools/appkit-generator/generate";
|
|
7
|
+
import { runWebAssetPageFetch, runWebFetch, runWebImageFetch, } from "@dbx-tools/appkit-web-search/fetch";
|
|
8
|
+
import { createWebSearchRuntime } from "@dbx-tools/appkit-web-search/runtime";
|
|
9
|
+
import { runWebSearch } from "@dbx-tools/appkit-web-search/search";
|
|
10
|
+
import { createWorkspaceClient } from "@dbx-tools/databricks/workspace-client";
|
|
11
|
+
import { writeBrandPackage } from "./export.js";
|
|
12
|
+
/**
|
|
13
|
+
* Research a freeform brand brief, synthesize a portable context, and export
|
|
14
|
+
* the package to disk.
|
|
15
|
+
*/
|
|
16
|
+
export async function exportBrandFromPrompt(prompt, options, callbacks = {}) {
|
|
17
|
+
const workspaceClient = await createWorkspaceClient({
|
|
18
|
+
...(options.profile ? { profile: options.profile } : {}),
|
|
19
|
+
});
|
|
20
|
+
const host = (await workspaceClient.config.getHost()).toString();
|
|
21
|
+
const runtime = createWebSearchRuntime({
|
|
22
|
+
...(options.model ? { model: options.model } : {}),
|
|
23
|
+
});
|
|
24
|
+
let research;
|
|
25
|
+
const brandPackage = await generateBrandPackage({
|
|
26
|
+
prompt,
|
|
27
|
+
...(options.name ? { name: options.name } : {}),
|
|
28
|
+
...(options.website ? { website: options.website } : {}),
|
|
29
|
+
}, {
|
|
30
|
+
client: {
|
|
31
|
+
search: (request, signal) => runWebSearch(request, runtime, {
|
|
32
|
+
client: workspaceClient,
|
|
33
|
+
host,
|
|
34
|
+
...(options.profile ? { cacheIdentity: `profile:${options.profile}` } : {}),
|
|
35
|
+
}, signal),
|
|
36
|
+
fetch: (request, signal) => runWebFetch(request, runtime, signal),
|
|
37
|
+
fetchAssetPage: (request, signal) => runWebAssetPageFetch(request, runtime, signal),
|
|
38
|
+
fetchImage: (request, signal) => runWebImageFetch(request, runtime, signal),
|
|
39
|
+
},
|
|
40
|
+
workspaceClient,
|
|
41
|
+
...(options.model ? { model: options.model } : {}),
|
|
42
|
+
maxSources: options.maxSources,
|
|
43
|
+
sourceMaxLength: options.sourceMaxLength,
|
|
44
|
+
...(callbacks.onProgress ? { onProgress: callbacks.onProgress } : {}),
|
|
45
|
+
onResearch(value) {
|
|
46
|
+
research = value;
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (!research)
|
|
50
|
+
throw new Error("Brand generation completed without research provenance");
|
|
51
|
+
return writeBrandPackage({
|
|
52
|
+
outputDirectory: options.output,
|
|
53
|
+
prompt,
|
|
54
|
+
brandPackage,
|
|
55
|
+
research,
|
|
56
|
+
force: options.force,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxhQUFhLENBQUM7QUFRMUU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsTUFBYyxFQUNkLE9BQTJCLEVBQzNCLFlBQWtDLEVBQUU7SUFFcEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztRQUNsRCxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDekQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQztRQUNyQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDbkQsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxRQUFtQyxDQUFDO0lBQ3hDLE1BQU0sWUFBWSxHQUFHLE1BQU0sb0JBQW9CLENBQzdDO1FBQ0UsTUFBTTtRQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDekQsRUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUMxQixZQUFZLENBQ1YsT0FBTyxFQUNQLE9BQU8sRUFDUDtnQkFDRSxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsSUFBSTtnQkFDSixHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsV0FBVyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzVFLEVBQ0QsTUFBTSxDQUNQO1lBQ0gsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1lBQ2pFLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1lBQ25GLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1NBQzVFO1FBQ0QsZUFBZTtRQUNmLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQ3hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxVQUFVLENBQUMsS0FBSztZQUNkLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQztLQUNGLENBQ0YsQ0FBQztJQUNGLElBQUksQ0FBQyxRQUFRO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ3pGLE9BQU8saUJBQWlCLENBQUM7UUFDdkIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQy9CLE1BQU07UUFDTixZQUFZO1FBQ1osUUFBUTtRQUNSLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFsb25lIHJlc2VhcmNoZWQgYnJhbmQgZ2VuZXJhdGlvbiBmb3IgdGhlIGNvbnNvbGlkYXRlZCBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGdlbmVyYXRlQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvci9nZW5lcmF0ZVwiO1xuaW1wb3J0IHtcbiAgcnVuV2ViQXNzZXRQYWdlRmV0Y2gsXG4gIHJ1bldlYkZldGNoLFxuICBydW5XZWJJbWFnZUZldGNoLFxufSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtd2ViLXNlYXJjaC9mZXRjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV2ViU2VhcmNoUnVudGltZSB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3J1bnRpbWVcIjtcbmltcG9ydCB7IHJ1bldlYlNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3NlYXJjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrcy93b3Jrc3BhY2UtY2xpZW50XCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yXCI7XG5cbmltcG9ydCB7IHdyaXRlQnJhbmRQYWNrYWdlLCB0eXBlIFdyaXR0ZW5CcmFuZFBhY2thZ2UgfSBmcm9tIFwiLi9leHBvcnQudHNcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRFeHBvcnRPcHRpb25zIH0gZnJvbSBcIi4vb3B0aW9ucy50c1wiO1xuXG4vKiogT3B0aW9uYWwgb2JzZXJ2ZXJzIGZvciBvbmUgQ0xJIGJyYW5kIGdlbmVyYXRpb24gcnVuLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZEV4cG9ydENhbGxiYWNrcyB7XG4gIHJlYWRvbmx5IG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlc2VhcmNoIGEgZnJlZWZvcm0gYnJhbmQgYnJpZWYsIHN5bnRoZXNpemUgYSBwb3J0YWJsZSBjb250ZXh0LCBhbmQgZXhwb3J0XG4gKiB0aGUgcGFja2FnZSB0byBkaXNrLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhwb3J0QnJhbmRGcm9tUHJvbXB0KFxuICBwcm9tcHQ6IHN0cmluZyxcbiAgb3B0aW9uczogQnJhbmRFeHBvcnRPcHRpb25zLFxuICBjYWxsYmFja3M6IEJyYW5kRXhwb3J0Q2FsbGJhY2tzID0ge30sXG4pOiBQcm9taXNlPFdyaXR0ZW5CcmFuZFBhY2thZ2U+IHtcbiAgY29uc3Qgd29ya3NwYWNlQ2xpZW50ID0gYXdhaXQgY3JlYXRlV29ya3NwYWNlQ2xpZW50KHtcbiAgICAuLi4ob3B0aW9ucy5wcm9maWxlID8geyBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgfSA6IHt9KSxcbiAgfSk7XG4gIGNvbnN0IGhvc3QgPSAoYXdhaXQgd29ya3NwYWNlQ2xpZW50LmNvbmZpZy5nZXRIb3N0KCkpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHJ1bnRpbWUgPSBjcmVhdGVXZWJTZWFyY2hSdW50aW1lKHtcbiAgICAuLi4ob3B0aW9ucy5tb2RlbCA/IHsgbW9kZWw6IG9wdGlvbnMubW9kZWwgfSA6IHt9KSxcbiAgfSk7XG4gIGxldCByZXNlYXJjaDogQnJhbmRSZXNlYXJjaCB8IHVuZGVmaW5lZDtcbiAgY29uc3QgYnJhbmRQYWNrYWdlID0gYXdhaXQgZ2VuZXJhdGVCcmFuZFBhY2thZ2UoXG4gICAge1xuICAgICAgcHJvbXB0LFxuICAgICAgLi4uKG9wdGlvbnMubmFtZSA/IHsgbmFtZTogb3B0aW9ucy5uYW1lIH0gOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy53ZWJzaXRlID8geyB3ZWJzaXRlOiBvcHRpb25zLndlYnNpdGUgfSA6IHt9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBzZWFyY2g6IChyZXF1ZXN0LCBzaWduYWwpID0+XG4gICAgICAgICAgcnVuV2ViU2VhcmNoKFxuICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgIHJ1bnRpbWUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsaWVudDogd29ya3NwYWNlQ2xpZW50LFxuICAgICAgICAgICAgICBob3N0LFxuICAgICAgICAgICAgICAuLi4ob3B0aW9ucy5wcm9maWxlID8geyBjYWNoZUlkZW50aXR5OiBgcHJvZmlsZToke29wdGlvbnMucHJvZmlsZX1gIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICksXG4gICAgICAgIGZldGNoOiAocmVxdWVzdCwgc2lnbmFsKSA9PiBydW5XZWJGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgICBmZXRjaEFzc2V0UGFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViQXNzZXRQYWdlRmV0Y2gocmVxdWVzdCwgcnVudGltZSwgc2lnbmFsKSxcbiAgICAgICAgZmV0Y2hJbWFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViSW1hZ2VGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgfSxcbiAgICAgIHdvcmtzcGFjZUNsaWVudCxcbiAgICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgICAgbWF4U291cmNlczogb3B0aW9ucy5tYXhTb3VyY2VzLFxuICAgICAgc291cmNlTWF4TGVuZ3RoOiBvcHRpb25zLnNvdXJjZU1heExlbmd0aCxcbiAgICAgIC4uLihjYWxsYmFja3Mub25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzczogY2FsbGJhY2tzLm9uUHJvZ3Jlc3MgfSA6IHt9KSxcbiAgICAgIG9uUmVzZWFyY2godmFsdWUpIHtcbiAgICAgICAgcmVzZWFyY2ggPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbiAgaWYgKCFyZXNlYXJjaCkgdGhyb3cgbmV3IEVycm9yKFwiQnJhbmQgZ2VuZXJhdGlvbiBjb21wbGV0ZWQgd2l0aG91dCByZXNlYXJjaCBwcm92ZW5hbmNlXCIpO1xuICByZXR1cm4gd3JpdGVCcmFuZFBhY2thZ2Uoe1xuICAgIG91dHB1dERpcmVjdG9yeTogb3B0aW9ucy5vdXRwdXQsXG4gICAgcHJvbXB0LFxuICAgIGJyYW5kUGFja2FnZSxcbiAgICByZXNlYXJjaCxcbiAgICBmb3JjZTogb3B0aW9ucy5mb3JjZSxcbiAgfSk7XG59XG4iXX0=
|
package/lib/src/cli.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* `dev` bootstraps or repairs a workspace and forwards to projen.
|
|
5
5
|
* `appkit` provides AppKit environment helpers.
|
|
6
6
|
* `auth` manages Databricks OAuth and access tokens.
|
|
7
|
+
* `brand` researches and exports portable brand packages.
|
|
7
8
|
* `tunnel` runs a public portr tunnel with passwordless access gating.
|
|
8
9
|
*
|
|
9
10
|
* Feature commands load their sibling packages only when selected and forward
|
|
@@ -73,7 +74,7 @@ function addForwardedCommand(program, name, description, load) {
|
|
|
73
74
|
export function buildProgram(name = PROGRAM_NAMES[0]) {
|
|
74
75
|
const program = new Command()
|
|
75
76
|
.name(name)
|
|
76
|
-
.description("Databricks developer tools: workspace lifecycle, AppKit env, auth, tunnels, and local proxies")
|
|
77
|
+
.description("Databricks developer tools: workspace lifecycle, AppKit env, auth, brand generation, tunnels, and local proxies")
|
|
77
78
|
.enablePositionalOptions()
|
|
78
79
|
.showHelpAfterError()
|
|
79
80
|
.helpOption("-h, --help", `Show ${name} help`);
|
|
@@ -89,6 +90,7 @@ export function buildProgram(name = PROGRAM_NAMES[0]) {
|
|
|
89
90
|
});
|
|
90
91
|
addForwardedCommand(program, "appkit", "AppKit helpers (env: print the environment an AppKit app resolves)", async () => (await import("./appkit/cli.js")).buildProgram);
|
|
91
92
|
addForwardedCommand(program, "auth", "Authenticate to Databricks and manage OAuth tokens", async () => (await import("./auth/cli.js")).buildProgram);
|
|
93
|
+
addForwardedCommand(program, "brand", "Research and export a portable brand package", async () => (await import("./brand/cli.js")).buildProgram);
|
|
92
94
|
addForwardedCommand(program, "tunnel", "Run a public portr tunnel with an email-OTP gate", async () => (await import("./tunnel/cli.js")).buildProgram);
|
|
93
95
|
addForwardedCommand(program, "lakebase-proxy", "Run the Node Databricks Lakebase PostgreSQL proxy", async () => (await import("./lakebase-proxy/cli.js")).buildProgram);
|
|
94
96
|
addForwardedCommand(program, "model-gateway", "Run the foreground AppKit Databricks model gateway", async () => (await import("./model-gateway/cli.js")).buildProgram);
|
|
@@ -102,6 +104,7 @@ export async function buildDocumentationProgram(name = PROGRAM_NAMES[0]) {
|
|
|
102
104
|
const children = [
|
|
103
105
|
(await import("./appkit/cli.js")).buildProgram("appkit"),
|
|
104
106
|
(await import("./auth/cli.js")).buildProgram("auth"),
|
|
107
|
+
(await import("./brand/cli.js")).buildProgram("brand"),
|
|
105
108
|
(await import("./tunnel/cli.js")).buildProgram("tunnel"),
|
|
106
109
|
(await import("./lakebase-proxy/cli.js")).buildProgram("lakebase-proxy"),
|
|
107
110
|
(await import("./model-gateway/cli.js")).buildProgram("model-gateway"),
|
|
@@ -125,4 +128,4 @@ function programName(argv) {
|
|
|
125
128
|
export async function runCli(argv) {
|
|
126
129
|
await buildProgram(programName(argv)).parseAsync(argv);
|
|
127
130
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlFLHNFQUFzRTtBQUN0RSxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxVQUFvQixFQUFFLFFBQWlCO0lBQy9FLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPO0lBQ1QsQ0FBQztJQUNELG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFD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LEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRO1FBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBYztJQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6RixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ3pDLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXIgZW50cnkgZm9yIGBkYnhgIGFuZCBpdHMgYGRieC10b29sc2AgYWxpYXMuXG4gKlxuICogYGRldmAgYm9vdHN0cmFwcyBvciByZXBhaXJzIGEgd29ya3NwYWNlIGFuZCBmb3J3YXJkcyB0byBwcm9qZW4uXG4gKiBgYXBwa2l0YCBwcm92aWRlcyBBcHBLaXQgZW52aXJvbm1lbnQgaGVscGVycy5cbiAqIGBhdXRoYCBtYW5hZ2VzIERhdGFicmlja3MgT0F1dGggYW5kIGFjY2VzcyB0b2tlbnMuXG4gKiBgdHVubmVsYCBydW5zIGEgcHVibGljIHBvcnRyIHR1bm5lbCB3aXRoIHBhc3N3b3JkbGVzcyBhY2Nlc3MgZ2F0aW5nLlxuICpcbiAqIEZlYXR1cmUgY29tbWFuZHMgbG9hZCB0aGVpciBzaWJsaW5nIHBhY2thZ2VzIG9ubHkgd2hlbiBzZWxlY3RlZCBhbmQgZm9yd2FyZFxuICogdGhlaXIgY29tcGxldGUgYXJndW1lbnQgbGlzdCwgaW5jbHVkaW5nIGAtLWhlbHBgLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHtcbiAgYm9vdHN0cmFwV29ya3NwYWNlLFxuICBlbnN1cmVFbmdpbmVDdXJyZW50LFxuICBydW5Jbml0aWFsU3ludGgsXG4gIHNlZWRUb29sY2hhaW4sXG59IGZyb20gXCIuL2Jvb3RzdHJhcC50c1wiO1xuaW1wb3J0IHsgZW5zdXJlV29ya3NwYWNlUmVhZHksIHJ1bkJ1biwgcnVuUHJvamVuIH0gZnJvbSBcIi4vYnVuLnRzXCI7XG5pbXBvcnQgeyBmaW5kV29ya3NwYWNlUm9vdCwgbmVlZHNCb290c3RyYXAsIG5lZWRzVG9vbGNoYWluIH0gZnJvbSBcIi4vcm9vdC50c1wiO1xuXG4vKiogQ29tbWFuZHMgdGhlIGJpbiBleHBvc2VzLCBhbmQgdGhlIG5hbWVzIGhlbHAgaXMgcmVuZGVyZWQgdW5kZXIuICovXG5jb25zdCBQUk9HUkFNX05BTUVTID0gW1wiZGJ4XCIsIFwiZGJ4LXRvb2xzXCJdIGFzIGNvbnN0O1xuXG4vKipcbiAqIFByZXBhcmUgdGhlIHdvcmtzcGFjZSBhdCBgcm9vdGAsIHRoZW4gcnVuIHByb2plbiAodmlhIGJ1bikgd2l0aCBgcHJvamVuQXJnc2AuXG4gKlxuICogVGhyZWUgY2FzZXMsIGluIG9yZGVyOlxuICogICAtIG5vIGAucHJvamVucmMudHNgIGF0IGFsbCAtPiBmdWxsIGJvb3RzdHJhcCAoc2NhZmZvbGQgKyBpbnN0YWxsICsgc3ludGgpLFxuICogICAgIHdoaWNoIGFscmVhZHkgcnVucyB0aGUgaW5pdGlhbCBzeW50aDsgbm90aGluZyBtb3JlIHRvIGZvcndhcmQuXG4gKiAgIC0gYSBgLnByb2plbnJjLnRzYCBidXQgdGhlIGVuZ2luZS90b29sY2hhaW4gaXNuJ3QgaW5zdGFsbGVkIChlLmcuIGEgZnJlc2hseVxuICogICAgIGNvcGllZCBwcm9qZWN0IHdob3NlIGdlbmVyYXRlZCBmaWxlcyArIG1hbmlmZXN0cyBhcmUgZ2l0aWdub3JlZCkgLT4gc2VlZFxuICogICAgIHRoZSB0b29sY2hhaW4sIHRoZW4gcnVuIHRoZSBJTklUSUFMIHN5bnRoIGRpcmVjdGx5ICh0aGUgcHJvamVuIHRhc2tzIHRoZVxuICogICAgIGFyZ3Mgd291bGQgbmFtZSwgbGlrZSBgc3luY2AsIGRvbid0IGV4aXN0IHVudGlsIGAucHJvamVucmMudHNgIGhhcyBydW5cbiAqICAgICBvbmNlKSwgYW5kIGluc3RhbGwuIERvbid0IGZvcndhcmQgYHByb2plbkFyZ3NgIC0gdGhlIHN5bnRoIGlzIHRoZSB3b3JrLlxuICogICAtIG90aGVyd2lzZSAoZXN0YWJsaXNoZWQgd29ya3NwYWNlKSAtPiBlbnN1cmUgZGVwcywgYnJpbmcgdGhlIGVuZ2luZSB1cCB0b1xuICogICAgIHRoaXMgQ0xJJ3MgdmVyc2lvbiwgdGhlbiBmb3J3YXJkIHRvIHByb2plbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVBbmRSdW5Qcm9qZW4ocHJvamVuQXJnczogc3RyaW5nW10sIHN0YXJ0RGlyPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJvb3QgPSBhd2FpdCBmaW5kV29ya3NwYWNlUm9vdChzdGFydERpcik7XG4gIGlmIChuZWVkc0Jvb3RzdHJhcChyb290KSkge1xuICAgIGJvb3RzdHJhcFdvcmtzcGFjZShyb290KTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG5lZWRzVG9vbGNoYWluKHJvb3QpKSB7XG4gICAgc2VlZFRvb2xjaGFpbihyb290KTtcbiAgICBydW5Jbml0aWFsU3ludGgocm9vdCk7XG4gICAgcnVuQnVuKFtcImluc3RhbGxcIl0sIHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBlbnN1cmVXb3Jrc3BhY2VSZWFkeShyb290KTtcbiAgZW5zdXJlRW5naW5lQ3VycmVudChyb290KTtcbiAgcnVuUHJvamVuKHByb2plbkFyZ3MsIHJvb3QpO1xufVxuXG4vKipcbiAqIE1vdW50IGBuYW1lYCBhcyBhIGNvbW1hbmQgdGhhdCBjYXB0dXJlcyBldmVyeSBmb2xsb3dpbmcgdG9rZW4gdmVyYmF0aW0gYW5kXG4gKiBoYW5kcyBpdCB0byB0aGUgcHJvZ3JhbSBgbG9hZCgpYCByZXNvbHZlcy4gYGhlbHBPcHRpb24oZmFsc2UpYCBpcyB3aGF0IGxldHNcbiAqIGAtLWhlbHBgIHRocm91Z2ggdG8gdGhlIGNoaWxkIGluc3RlYWQgb2YgYmVpbmcgYW5zd2VyZWQgaGVyZSwgYW5kXG4gKiBgcGFzc1Rocm91Z2hPcHRpb25zKClgIGtlZXBzIHVua25vd24gZmxhZ3MgaW4gdGhhdCB0b2tlbiBsaXN0IHNvIHRoZSBjaGlsZFxuICogcHJvZ3JhbSBvd25zIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gIHByb2dyYW06IENvbW1hbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwobmFtZTogc3RyaW5nKSA9PiBDb21tYW5kPixcbik6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQobmFtZSlcbiAgICAuZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pXG4gICAgLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIGBhcmd1bWVudHMgZm9yd2FyZGVkIHRvICR7bmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5wYXNzVGhyb3VnaE9wdGlvbnMoKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkUHJvZ3JhbSA9IGF3YWl0IGxvYWQoKTtcbiAgICAgIGF3YWl0IGJ1aWxkUHJvZ3JhbShgJHtwcm9ncmFtLm5hbWUoKX0gJHtuYW1lfWApLnBhcnNlQXN5bmMoYXJncywgeyBmcm9tOiBcInVzZXJcIiB9KTtcbiAgICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiRGF0YWJyaWNrcyBkZXZlbG9wZXIgdG9vbHM6IHdvcmtzcGFjZSBsaWZlY3ljbGUsIEFwcEtpdCBlbnYsIGF1dGgsIHR1bm5lbHMsIGFuZCBsb2NhbCBwcm94aWVzXCIsXG4gICAgKVxuICAgIC5lbmFibGVQb3NpdGlvbmFsT3B0aW9ucygpXG4gICAgLnNob3dIZWxwQWZ0ZXJFcnJvcigpXG4gICAgLmhlbHBPcHRpb24oXCItaCwgLS1oZWxwXCIsIGBTaG93ICR7bmFtZX0gaGVscGApO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImRldlwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkJvb3RzdHJhcCBvciByZXBhaXIgYSBkYngtdG9vbHMgd29ya3NwYWNlLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuXCIpXG4gICAgLmFyZ3VtZW50KFwiW3Byb2plbkFyZ3MuLi5dXCIsIFwiUHJvamVuIHRhc2sgYW5kIGFyZ3VtZW50cywgZm9yIGV4YW1wbGUgc3luYyAtLXdhdGNoXCIpXG4gICAgLmFsbG93VW5rbm93bk9wdGlvbigpXG4gICAgLmFsbG93RXhjZXNzQXJndW1lbnRzKClcbiAgICAuaGVscE9wdGlvbihmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChwcm9qZW5BcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgYXdhaXQgcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzKTtcbiAgICB9KTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhcHBraXRcIixcbiAgICBcIkFwcEtpdCBoZWxwZXJzIChlbnY6IHByaW50IHRoZSBlbnZpcm9ubWVudCBhbiBBcHBLaXQgYXBwIHJlc29sdmVzKVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhdXRoXCIsXG4gICAgXCJBdXRoZW50aWNhdGUgdG8gRGF0YWJyaWNrcyBhbmQgbWFuYWdlIE9BdXRoIHRva2Vuc1wiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2F1dGgvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwidHVubmVsXCIsXG4gICAgXCJSdW4gYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggYW4gZW1haWwtT1RQIGdhdGVcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi90dW5uZWwvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwibGFrZWJhc2UtcHJveHlcIixcbiAgICBcIlJ1biB0aGUgTm9kZSBEYXRhYnJpY2tzIExha2ViYXNlIFBvc3RncmVTUUwgcHJveHlcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9sYWtlYmFzZS1wcm94eS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJtb2RlbC1nYXRld2F5XCIsXG4gICAgXCJSdW4gdGhlIGZvcmVncm91bmQgQXBwS2l0IERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL21vZGVsLWdhdGV3YXkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ2VuaWVcIixcbiAgICBcIlJ1biBtYW5hZ2VkIEdlbmllIENvZGUgdGhyb3VnaCBhIGxvY2FsIERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2dlbmllLWNvZGUvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ3JhcGhpdGlcIixcbiAgICBcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9ncmFwaGl0aS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBjb21wbGV0ZSBjb21tYW5kIHRyZWUgdXNlZCBmb3IgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGREb2N1bWVudGF0aW9uUHJvZ3JhbShuYW1lOiBzdHJpbmcgPSBQUk9HUkFNX05BTUVTWzBdKTogUHJvbWlzZTxDb21tYW5kPiB7XG4gIGNvbnN0IHByb2dyYW0gPSBidWlsZFByb2dyYW0obmFtZSk7XG4gIGNvbnN0IGNoaWxkcmVuID0gW1xuICAgIChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImFwcGtpdFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9hdXRoL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiYXV0aFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi90dW5uZWwvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJ0dW5uZWxcIiksXG4gICAgKGF3YWl0IGltcG9ydChcIi4vbGFrZWJhc2UtcHJveHkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJsYWtlYmFzZS1wcm94eVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9tb2RlbC1nYXRld2F5L2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwibW9kZWwtZ2F0ZXdheVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9nZW5pZS1jb2RlL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiZ2VuaWVcIiksXG4gICAgKGF3YWl0IGltcG9ydChcIi4vZ3JhcGhpdGkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJncmFwaGl0aVwiKSxcbiAgXTtcbiAgKHByb2dyYW0uY29tbWFuZHMgYXMgQ29tbWFuZFtdKS5zcGxpY2UoMSwgcHJvZ3JhbS5jb21tYW5kcy5sZW5ndGggLSAxKTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikgcHJvZ3JhbS5hZGRDb21tYW5kKGNoaWxkKTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbi8qKlxuICogUHJvZ3JhbSBuYW1lIGZvciBoZWxwIG91dHB1dDogd2hpY2hldmVyIGJpbiB0aGUgdXNlciBhY3R1YWxseSB0eXBlZCwgc29cbiAqIGBkYngtdG9vbHMgLS1oZWxwYCBkb2Vzbid0IGRvY3VtZW50IGl0c2VsZiBhcyBgZGJ4YC4gRmFsbHMgYmFjayB0byBgZGJ4YC5cbiAqL1xuZnVuY3Rpb24gcHJvZ3JhbU5hbWUoYXJndjogc3RyaW5nW10pOiBzdHJpbmcge1xuICBjb25zdCBpbnZva2VkID0gYXJndlsxXSA/IGJhc2VuYW1lKGFyZ3ZbMV0pLnJlcGxhY2UoL1xcLig/OltjbV0/W2p0XXMpJC8sIFwiXCIpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gUFJPR1JBTV9OQU1FUy5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZSA9PT0gaW52b2tlZCkgPz8gUFJPR1JBTV9OQU1FU1swXTtcbn1cblxuLyoqIFBhcnNlIGBhcmd2YCAoYSBgcHJvY2Vzcy5hcmd2YCkgYW5kIHJ1biB0aGUgbWF0Y2hpbmcgY29tbWFuZC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5DbGkoYXJndjogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYnVpbGRQcm9ncmFtKHByb2dyYW1OYW1lKGFyZ3YpKS5wYXJzZUFzeW5jKGFyZ3YpO1xufVxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixhQUFhLEdBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5RSxzRUFBc0U7QUFDdEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsVUFBb0IsRUFBRSxRQUFpQjtJQUMvRSxNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTztJQUNULENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FB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LGVBQWUsQ0FBQztRQUN0RSxDQUFDLE1BQU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzNELENBQUMsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7S0FDN0QsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRO1FBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBYztJQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6RixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ3pDLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tYW5kZXIgZW50cnkgZm9yIGBkYnhgIGFuZCBpdHMgYGRieC10b29sc2AgYWxpYXMuXG4gKlxuICogYGRldmAgYm9vdHN0cmFwcyBvciByZXBhaXJzIGEgd29ya3NwYWNlIGFuZCBmb3J3YXJkcyB0byBwcm9qZW4uXG4gKiBgYXBwa2l0YCBwcm92aWRlcyBBcHBLaXQgZW52aXJvbm1lbnQgaGVscGVycy5cbiAqIGBhdXRoYCBtYW5hZ2VzIERhdGFicmlja3MgT0F1dGggYW5kIGFjY2VzcyB0b2tlbnMuXG4gKiBgYnJhbmRgIHJlc2VhcmNoZXMgYW5kIGV4cG9ydHMgcG9ydGFibGUgYnJhbmQgcGFja2FnZXMuXG4gKiBgdHVubmVsYCBydW5zIGEgcHVibGljIHBvcnRyIHR1bm5lbCB3aXRoIHBhc3N3b3JkbGVzcyBhY2Nlc3MgZ2F0aW5nLlxuICpcbiAqIEZlYXR1cmUgY29tbWFuZHMgbG9hZCB0aGVpciBzaWJsaW5nIHBhY2thZ2VzIG9ubHkgd2hlbiBzZWxlY3RlZCBhbmQgZm9yd2FyZFxuICogdGhlaXIgY29tcGxldGUgYXJndW1lbnQgbGlzdCwgaW5jbHVkaW5nIGAtLWhlbHBgLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHtcbiAgYm9vdHN0cmFwV29ya3NwYWNlLFxuICBlbnN1cmVFbmdpbmVDdXJyZW50LFxuICBydW5Jbml0aWFsU3ludGgsXG4gIHNlZWRUb29sY2hhaW4sXG59IGZyb20gXCIuL2Jvb3RzdHJhcC50c1wiO1xuaW1wb3J0IHsgZW5zdXJlV29ya3NwYWNlUmVhZHksIHJ1bkJ1biwgcnVuUHJvamVuIH0gZnJvbSBcIi4vYnVuLnRzXCI7XG5pbXBvcnQgeyBmaW5kV29ya3NwYWNlUm9vdCwgbmVlZHNCb290c3RyYXAsIG5lZWRzVG9vbGNoYWluIH0gZnJvbSBcIi4vcm9vdC50c1wiO1xuXG4vKiogQ29tbWFuZHMgdGhlIGJpbiBleHBvc2VzLCBhbmQgdGhlIG5hbWVzIGhlbHAgaXMgcmVuZGVyZWQgdW5kZXIuICovXG5jb25zdCBQUk9HUkFNX05BTUVTID0gW1wiZGJ4XCIsIFwiZGJ4LXRvb2xzXCJdIGFzIGNvbnN0O1xuXG4vKipcbiAqIFByZXBhcmUgdGhlIHdvcmtzcGFjZSBhdCBgcm9vdGAsIHRoZW4gcnVuIHByb2plbiAodmlhIGJ1bikgd2l0aCBgcHJvamVuQXJnc2AuXG4gKlxuICogVGhyZWUgY2FzZXMsIGluIG9yZGVyOlxuICogICAtIG5vIGAucHJvamVucmMudHNgIGF0IGFsbCAtPiBmdWxsIGJvb3RzdHJhcCAoc2NhZmZvbGQgKyBpbnN0YWxsICsgc3ludGgpLFxuICogICAgIHdoaWNoIGFscmVhZHkgcnVucyB0aGUgaW5pdGlhbCBzeW50aDsgbm90aGluZyBtb3JlIHRvIGZvcndhcmQuXG4gKiAgIC0gYSBgLnByb2plbnJjLnRzYCBidXQgdGhlIGVuZ2luZS90b29sY2hhaW4gaXNuJ3QgaW5zdGFsbGVkIChlLmcuIGEgZnJlc2hseVxuICogICAgIGNvcGllZCBwcm9qZWN0IHdob3NlIGdlbmVyYXRlZCBmaWxlcyArIG1hbmlmZXN0cyBhcmUgZ2l0aWdub3JlZCkgLT4gc2VlZFxuICogICAgIHRoZSB0b29sY2hhaW4sIHRoZW4gcnVuIHRoZSBJTklUSUFMIHN5bnRoIGRpcmVjdGx5ICh0aGUgcHJvamVuIHRhc2tzIHRoZVxuICogICAgIGFyZ3Mgd291bGQgbmFtZSwgbGlrZSBgc3luY2AsIGRvbid0IGV4aXN0IHVudGlsIGAucHJvamVucmMudHNgIGhhcyBydW5cbiAqICAgICBvbmNlKSwgYW5kIGluc3RhbGwuIERvbid0IGZvcndhcmQgYHByb2plbkFyZ3NgIC0gdGhlIHN5bnRoIGlzIHRoZSB3b3JrLlxuICogICAtIG90aGVyd2lzZSAoZXN0YWJsaXNoZWQgd29ya3NwYWNlKSAtPiBlbnN1cmUgZGVwcywgYnJpbmcgdGhlIGVuZ2luZSB1cCB0b1xuICogICAgIHRoaXMgQ0xJJ3MgdmVyc2lvbiwgdGhlbiBmb3J3YXJkIHRvIHByb2plbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVBbmRSdW5Qcm9qZW4ocHJvamVuQXJnczogc3RyaW5nW10sIHN0YXJ0RGlyPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJvb3QgPSBhd2FpdCBmaW5kV29ya3NwYWNlUm9vdChzdGFydERpcik7XG4gIGlmIChuZWVkc0Jvb3RzdHJhcChyb290KSkge1xuICAgIGJvb3RzdHJhcFdvcmtzcGFjZShyb290KTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG5lZWRzVG9vbGNoYWluKHJvb3QpKSB7XG4gICAgc2VlZFRvb2xjaGFpbihyb290KTtcbiAgICBydW5Jbml0aWFsU3ludGgocm9vdCk7XG4gICAgcnVuQnVuKFtcImluc3RhbGxcIl0sIHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBlbnN1cmVXb3Jrc3BhY2VSZWFkeShyb290KTtcbiAgZW5zdXJlRW5naW5lQ3VycmVudChyb290KTtcbiAgcnVuUHJvamVuKHByb2plbkFyZ3MsIHJvb3QpO1xufVxuXG4vKipcbiAqIE1vdW50IGBuYW1lYCBhcyBhIGNvbW1hbmQgdGhhdCBjYXB0dXJlcyBldmVyeSBmb2xsb3dpbmcgdG9rZW4gdmVyYmF0aW0gYW5kXG4gKiBoYW5kcyBpdCB0byB0aGUgcHJvZ3JhbSBgbG9hZCgpYCByZXNvbHZlcy4gYGhlbHBPcHRpb24oZmFsc2UpYCBpcyB3aGF0IGxldHNcbiAqIGAtLWhlbHBgIHRocm91Z2ggdG8gdGhlIGNoaWxkIGluc3RlYWQgb2YgYmVpbmcgYW5zd2VyZWQgaGVyZSwgYW5kXG4gKiBgcGFzc1Rocm91Z2hPcHRpb25zKClgIGtlZXBzIHVua25vd24gZmxhZ3MgaW4gdGhhdCB0b2tlbiBsaXN0IHNvIHRoZSBjaGlsZFxuICogcHJvZ3JhbSBvd25zIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gIHByb2dyYW06IENvbW1hbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwobmFtZTogc3RyaW5nKSA9PiBDb21tYW5kPixcbik6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQobmFtZSlcbiAgICAuZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pXG4gICAgLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIGBhcmd1bWVudHMgZm9yd2FyZGVkIHRvICR7bmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5wYXNzVGhyb3VnaE9wdGlvbnMoKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkUHJvZ3JhbSA9IGF3YWl0IGxvYWQoKTtcbiAgICAgIGF3YWl0IGJ1aWxkUHJvZ3JhbShgJHtwcm9ncmFtLm5hbWUoKX0gJHtuYW1lfWApLnBhcnNlQXN5bmMoYXJncywgeyBmcm9tOiBcInVzZXJcIiB9KTtcbiAgICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiRGF0YWJyaWNrcyBkZXZlbG9wZXIgdG9vbHM6IHdvcmtzcGFjZSBsaWZlY3ljbGUsIEFwcEtpdCBlbnYsIGF1dGgsIGJyYW5kIGdlbmVyYXRpb24sIHR1bm5lbHMsIGFuZCBsb2NhbCBwcm94aWVzXCIsXG4gICAgKVxuICAgIC5lbmFibGVQb3NpdGlvbmFsT3B0aW9ucygpXG4gICAgLnNob3dIZWxwQWZ0ZXJFcnJvcigpXG4gICAgLmhlbHBPcHRpb24oXCItaCwgLS1oZWxwXCIsIGBTaG93ICR7bmFtZX0gaGVscGApO1xuXG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcImRldlwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkJvb3RzdHJhcCBvciByZXBhaXIgYSBkYngtdG9vbHMgd29ya3NwYWNlLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuXCIpXG4gICAgLmFyZ3VtZW50KFwiW3Byb2plbkFyZ3MuLi5dXCIsIFwiUHJvamVuIHRhc2sgYW5kIGFyZ3VtZW50cywgZm9yIGV4YW1wbGUgc3luYyAtLXdhdGNoXCIpXG4gICAgLmFsbG93VW5rbm93bk9wdGlvbigpXG4gICAgLmFsbG93RXhjZXNzQXJndW1lbnRzKClcbiAgICAuaGVscE9wdGlvbihmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChwcm9qZW5BcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgYXdhaXQgcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzKTtcbiAgICB9KTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhcHBraXRcIixcbiAgICBcIkFwcEtpdCBoZWxwZXJzIChlbnY6IHByaW50IHRoZSBlbnZpcm9ubWVudCBhbiBBcHBLaXQgYXBwIHJlc29sdmVzKVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJhdXRoXCIsXG4gICAgXCJBdXRoZW50aWNhdGUgdG8gRGF0YWJyaWNrcyBhbmQgbWFuYWdlIE9BdXRoIHRva2Vuc1wiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2F1dGgvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiYnJhbmRcIixcbiAgICBcIlJlc2VhcmNoIGFuZCBleHBvcnQgYSBwb3J0YWJsZSBicmFuZCBwYWNrYWdlXCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vYnJhbmQvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwidHVubmVsXCIsXG4gICAgXCJSdW4gYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggYW4gZW1haWwtT1RQIGdhdGVcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi90dW5uZWwvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwibGFrZWJhc2UtcHJveHlcIixcbiAgICBcIlJ1biB0aGUgTm9kZSBEYXRhYnJpY2tzIExha2ViYXNlIFBvc3RncmVTUUwgcHJveHlcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9sYWtlYmFzZS1wcm94eS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJtb2RlbC1nYXRld2F5XCIsXG4gICAgXCJSdW4gdGhlIGZvcmVncm91bmQgQXBwS2l0IERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL21vZGVsLWdhdGV3YXkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ2VuaWVcIixcbiAgICBcIlJ1biBtYW5hZ2VkIEdlbmllIENvZGUgdGhyb3VnaCBhIGxvY2FsIERhdGFicmlja3MgbW9kZWwgZ2F0ZXdheVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL2dlbmllLWNvZGUvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiZ3JhcGhpdGlcIixcbiAgICBcIlJ1biBHcmFwaGl0aSBvciBtYW5hZ2UgaXRzIGN1cnJlbnQtdXNlciBkZXNrdG9wIHNlcnZpY2VcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9ncmFwaGl0aS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBjb21wbGV0ZSBjb21tYW5kIHRyZWUgdXNlZCBmb3IgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGREb2N1bWVudGF0aW9uUHJvZ3JhbShuYW1lOiBzdHJpbmcgPSBQUk9HUkFNX05BTUVTWzBdKTogUHJvbWlzZTxDb21tYW5kPiB7XG4gIGNvbnN0IHByb2dyYW0gPSBidWlsZFByb2dyYW0obmFtZSk7XG4gIGNvbnN0IGNoaWxkcmVuID0gW1xuICAgIChhd2FpdCBpbXBvcnQoXCIuL2FwcGtpdC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImFwcGtpdFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9hdXRoL2NsaS50c1wiKSkuYnVpbGRQcm9ncmFtKFwiYXV0aFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9icmFuZC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImJyYW5kXCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL3R1bm5lbC9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcInR1bm5lbFwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9sYWtlYmFzZS1wcm94eS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImxha2ViYXNlLXByb3h5XCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL21vZGVsLWdhdGV3YXkvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJtb2RlbC1nYXRld2F5XCIpLFxuICAgIChhd2FpdCBpbXBvcnQoXCIuL2dlbmllLWNvZGUvY2xpLnRzXCIpKS5idWlsZFByb2dyYW0oXCJnZW5pZVwiKSxcbiAgICAoYXdhaXQgaW1wb3J0KFwiLi9ncmFwaGl0aS9jbGkudHNcIikpLmJ1aWxkUHJvZ3JhbShcImdyYXBoaXRpXCIpLFxuICBdO1xuICAocHJvZ3JhbS5jb21tYW5kcyBhcyBDb21tYW5kW10pLnNwbGljZSgxLCBwcm9ncmFtLmNvbW1hbmRzLmxlbmd0aCAtIDEpO1xuICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSBwcm9ncmFtLmFkZENvbW1hbmQoY2hpbGQpO1xuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqXG4gKiBQcm9ncmFtIG5hbWUgZm9yIGhlbHAgb3V0cHV0OiB3aGljaGV2ZXIgYmluIHRoZSB1c2VyIGFjdHVhbGx5IHR5cGVkLCBzb1xuICogYGRieC10b29scyAtLWhlbHBgIGRvZXNuJ3QgZG9jdW1lbnQgaXRzZWxmIGFzIGBkYnhgLiBGYWxscyBiYWNrIHRvIGBkYnhgLlxuICovXG5mdW5jdGlvbiBwcm9ncmFtTmFtZShhcmd2OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGludm9rZWQgPSBhcmd2WzFdID8gYmFzZW5hbWUoYXJndlsxXSkucmVwbGFjZSgvXFwuKD86W2NtXT9banRdcykkLywgXCJcIikgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBQUk9HUkFNX05BTUVTLmZpbmQoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlID09PSBpbnZva2VkKSA/PyBQUk9HUkFNX05BTUVTWzBdO1xufVxuXG4vKiogUGFyc2UgYGFyZ3ZgIChhIGBwcm9jZXNzLmFyZ3ZgKSBhbmQgcnVuIHRoZSBtYXRjaGluZyBjb21tYW5kLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNsaShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBidWlsZFByb2dyYW0ocHJvZ3JhbU5hbWUoYXJndikpLnBhcnNlQXN5bmMoYXJndik7XG59XG4iXX0=
|
package/lib/src/tunnel/cli.js
CHANGED
|
@@ -119,6 +119,7 @@ async function run(raw, command) {
|
|
|
119
119
|
forwardHeaders: resolved.gate.forwardHeaders,
|
|
120
120
|
gatePaths: resolved.gate.gatePaths,
|
|
121
121
|
brandName: resolved.gate.brandName,
|
|
122
|
+
passkeyNamePrefix: resolved.gate.passkeyNamePrefix,
|
|
122
123
|
bindHosts: resolved.bindHosts,
|
|
123
124
|
});
|
|
124
125
|
if ((resolved.transport === "portr" || resolved.transport === "both") && resolved.portr) {
|
|
@@ -180,4 +181,4 @@ export function buildProgram(name = "dbx tunnel") {
|
|
|
180
181
|
});
|
|
181
182
|
return program;
|
|
182
183
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R1bm5lbC9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBRTFCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFcEM7Ozs7R0FJRztBQUNILFNBQVMsUUFBUTtJQUNmLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUNoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxTQUFTLENBQUMsUUFBdUM7SUFDeEQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFRLEVBQUU7UUFDbEMsSUFBSSxRQUFRO1lBQUUsT0FBTztRQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUNGLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLE9BQTBCO0lBQy9ELE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDdEMsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQXlCLEVBQUUsQ0FBQztJQUUxQyxzQkFBc0I7SUFDdEIsOEVBQThFO0lBQzlFLG1EQUFtRDtJQUNuRCw2RUFBNkU7SUFDN0UsMEVBQTBFO0lBQzFFLDBFQUEwRTtJQUMxRSxtQ0FBbUM7SUFDbkMsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUN2QyxHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxPQUFPLENBQUMsR0FBRztnQkFDZCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNwQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDckIsSUFBSSxFQUFFLFdBQVc7YUFDbEI7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsU0FBUztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0IsRUFBRSxNQUFNO1NBQ3pCLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLGNBQWMsQ0FDdEIsQ0FBQyxFQUNELG9CQUFvQixFQUNwQixzRUFBc0UsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsMENBQTBDO0lBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNqQyxDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxNQUFNLENBQ0osTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQ3pCLENBQUMsWUFBWSxDQUFDO1lBQ2IsR0FBRyxRQUFRLENBQUMsVUFBVTtZQUN0QixZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksYUFBYSxRQUFRLENBQUMsVUFBVSxFQUFFO1NBQy9FLENBQUMsQ0FBQztJQUNQLElBQUksQ0FBQyxJQUFJO1FBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sVUFBVSxDQUFDO1FBQ2YsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1FBQy9CLE9BQU87UUFDUCxJQUFJO1FBQ0osY0FBYyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYztRQUM1QyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTO1FBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVM7UUFDbEMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO0tBQzlCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUssSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwRixNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLEVBQUU7WUFDckQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFJLEdBQUcsWUFBWTtJQUM5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxFQUFFO1NBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLFdBQVcsQ0FBQyw0REFBNEQsQ0FBQyxFQUM1RSxtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLGdGQUFnRjtJQUNoRiwyRUFBMkU7SUFDM0Usd0RBQXdEO0lBQ3hELE9BQU87U0FDSixRQUFRLENBQUMsY0FBYyxFQUFFLGlDQUFpQyxDQUFDO1NBQzNELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVMLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMscUNBQXFDLENBQUMsRUFDekUsbUJBQW1CLENBQ3BCLENBQUM7SUFDRixVQUFVO1NBQ1AsUUFBUSxDQUFDLGNBQWMsRUFBRSxpQ0FBaUMsQ0FBQztTQUMzRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQyxDQUFDLENBQUM7SUFFTCwyRUFBMkU7SUFDM0UsNEVBQTRFO0lBQzVFLCtDQUErQztJQUMvQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQzNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLHdDQUF3QyxDQUFDLEVBQy9FLG1CQUFtQixDQUNwQixDQUFDO0lBQ0YsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDeEIsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDckYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztTQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDbEIsUUFBUSxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUM7U0FDdkQsV0FBVyxDQUFDLGdEQUFnRCxDQUFDO1NBQzdELE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsTUFBTSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEUsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFFTCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgZGJ4IHR1bm5lbGAgLSBmcm9udCBhIGNvbW1hbmQgd2l0aCBhIHB1YmxpYyBwb3J0ciB0dW5uZWwgYW5kIHBhc3N3b3JkbGVzcyBnYXRlLlxuICpcbiAqIFRoaXMgaXMgdGhlIFdSQVBQRVIgcGF0aCwgYW5kIGl0IGV4aXN0cyBmb3Igb25lIGNhc2U6IGEgcHJvamVjdCB0aGF0IGRvZXMgbm90XG4gKiB1c2UgYEBkYngtdG9vbHMvYXBwa2l0YCdzIGBjcmVhdGVBcHBgLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCByZWdpc3RlclxuICogYHR1bm5lbEludGVyY2VwdG9yKClgICsgdGhlIGBhdXRoR2F0ZWAgcGx1Z2luIGluLXByb2Nlc3MuIEFuIEFwcEtpdCBhcHAgc2hvdWxkXG4gKiBzdGlsbCB0YWtlIHRoZSBwbHVnaW4gcGF0aCAtIG9uZSBwcm9jZXNzLCBubyBwcm94eSBob3AsIG5vIGR1cGxpY2F0ZWQgaGVhZGVyXG4gKiBoYW5kbGluZy5cbiAqXG4gKiBUaGUgd3JhcHBlciBjbGFpbXMgdGhlIFBVQkxJQyBwb3J0IChgREFUQUJSSUNLU19BUFBfUE9SVGAsIHRoZSBwb3J0IHRoZVxuICogcGxhdGZvcm0gYW5kIHBvcnRyIHJvdXRlIHRvKSwgbW92ZXMgdGhlIHdyYXBwZWQgYXBwIHRvIGEgcHJpdmF0ZSBvbmUsIGFuZFxuICogcmV2ZXJzZS1wcm94aWVzIGJldHdlZW4gdGhlbSBzbyB0aGUgZ2F0ZSBzaXRzIGluIGZyb250IG9mIHRyYWZmaWMgaXQgd291bGRcbiAqIG90aGVyd2lzZSBoYXZlIG5vIHdheSB0byBpbnRlcmNlcHQuIEV2ZXJ5dGhpbmcgZWxzZSBpcyBkZWxlZ2F0ZWQ6IHRoZSBnYXRlXG4gKiBjb25maWcgY29tZXMgZnJvbSBgcGx1Z2luLnJlc29sdmVBdXRoR2F0ZUNvbmZpZ2AsIHRoZSBwb3J0ciBsaWZlY3ljbGUgZnJvbVxuICogYHBvcnRyLipgIC0gYm90aCB0aGUgc2FtZSBmdW5jdGlvbnMgdGhlIGluLXByb2Nlc3MgcGF0aCB1c2VzLlxuICpcbiAqIFNoaXBzIG5vIGJpbi4gYEBkYngtdG9vbHMvY2xpYCBtb3VudHMgYGJ1aWxkUHJvZ3JhbSgpYCBhcyBgZGJ4IHR1bm5lbGAgbGF6aWx5LFxuICogc28gYGRieCBkZXZgIHBheXMgZm9yIG5vbmUgb2YgdGhpcywgYW5kIGAtLWluc2VjdXJlYCAvIGBzdGF0dXNgIC8gYGluc3RhbGxgXG4gKiBuZXZlciBsb2FkIEFwcEtpdCBvciB0aGUgU01UUCBzdGFjayBlaXRoZXIgKHRoZSBnYXRlIGFwcCBpcyBiZWhpbmQgYSBkeW5hbWljXG4gKiBpbXBvcnQpLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXIgfSBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3NSZXN1bHQgfSBmcm9tIFwiQGRieC10b29scy9jb3JlL2V4ZWNcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBmcnAsIGludGVyY2VwdG9yLCBwb3J0ciB9IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZGVyRXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7IHJlc29sdmVUdW5uZWxPcHRpb25zLCBUdW5uZWxPcHRpb25zU2NoZW1hLCB0eXBlIFR1bm5lbE9wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQgeyBzdGFydFByb3h5IH0gZnJvbSBcIi4vcHJveHkudHNcIjtcblxuZXhwb3J0IHsgQ29tbWFuZGVyRXJyb3IgfTtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbFwiKTtcblxuLyoqXG4gKiBBIGZyZWUgbG9vcGJhY2sgcG9ydCwgZnJvbSB0aGUgT1MgcmF0aGVyIHRoYW4gYSByYW5kb20gZ3Vlc3M6IGJpbmRpbmcgYDBgIGFuZFxuICogcmVhZGluZyBiYWNrIHdoYXQgd2FzIGFzc2lnbmVkIGlzIHRoZSBvbmx5IHdheSB0byBrbm93IHRoZSBwb3J0IGlzIGFjdHVhbGx5XG4gKiBhdmFpbGFibGUsIHNvIHR3byB0dW5uZWxzIGNhbiBydW4gc2lkZSBieSBzaWRlIHdpdGhvdXQgY29sbGlkaW5nLlxuICovXG5mdW5jdGlvbiBmcmVlUG9ydCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHByb2JlID0gY3JlYXRlU2VydmVyKCk7XG4gICAgcHJvYmUub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHByb2JlLmxpc3RlbigwLCBcIjEyNy4wLjAuMVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gcHJvYmUuYWRkcmVzcygpO1xuICAgICAgY29uc3QgcG9ydCA9IHR5cGVvZiBhZGRyZXNzID09PSBcIm9iamVjdFwiICYmIGFkZHJlc3MgPyBhZGRyZXNzLnBvcnQgOiAwO1xuICAgICAgcHJvYmUuY2xvc2UoKCkgPT4gKHBvcnQgPiAwID8gcmVzb2x2ZShwb3J0KSA6IHJlamVjdChuZXcgRXJyb3IoXCJubyBmcmVlIHBvcnRcIikpKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFRpZSB0aGUgd3JhcHBlcidzIGxpZmV0aW1lIHRvIGl0cyBjaGlsZHJlbjogYSBjaGlsZCB0aGF0IGV4aXRzIHRha2VzIHRoZVxuICogd3JhcHBlciBkb3duIHdpdGggaXRzIGNvZGUuIENvcmUgZXhlYyBvd25zIHBhcmVudCB0ZXJtaW5hdGlvbiBmb3J3YXJkaW5nIGZvclxuICogZXZlcnkgc3Bhd25lZCBjaGlsZC4gV2l0aG91dCB0aGlzIGEgY3Jhc2hlZCBhcHAgbGVhdmVzIGEgcG9ydHIgdHVubmVsIHNlcnZpbmdcbiAqIGEgZGVhZCBwb3J0LCB3aGljaCBsb29rcyBsaWtlIGEgaGFuZyByYXRoZXIgdGhhbiBhIGZhaWx1cmUuXG4gKi9cbmZ1bmN0aW9uIHN1cGVydmlzZShjaGlsZHJlbjogcmVhZG9ubHkgQ2hpbGRQcm9jZXNzUmVzdWx0W10pOiB2b2lkIHtcbiAgbGV0IHN0b3BwaW5nID0gZmFsc2U7XG4gIGNvbnN0IHN0b3AgPSAoY29kZTogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgaWYgKHN0b3BwaW5nKSByZXR1cm47XG4gICAgc3RvcHBpbmcgPSB0cnVlO1xuICAgIHZvaWQgUHJvbWlzZS5hbGxTZXR0bGVkKGNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLnNodXRkb3duKCkpKS50aGVuKCgpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChjb2RlKTtcbiAgICB9KTtcbiAgfTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgIHZvaWQgY2hpbGQub24oXCJleGl0XCIsIChjb2RlKSA9PiBzdG9wKGNvZGUgPz8gMSkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bihyYXc6IFR1bm5lbE9wdGlvbnMsIGNvbW1hbmQ6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5hcmdzXSA9IGNvbW1hbmQ7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVR1bm5lbE9wdGlvbnMocmF3KTtcbiAgY29uc3QgY2hpbGRyZW46IENoaWxkUHJvY2Vzc1Jlc3VsdFtdID0gW107XG5cbiAgLy8gVHdvIHVwc3RyZWFtIG1vZGVzOlxuICAvLyAgIC0gV1JBUDogYSBjb21tYW5kIGFmdGVyIGAtLWAuIFRoZSB3cmFwcGVyIHNwYXducyBpdCBvbiBhIHByaXZhdGUgbG9vcGJhY2tcbiAgLy8gICAgIHBvcnQgYW5kIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgdGFsa3MgdG8gaXQuXG4gIC8vICAgLSBBVFRBQ0g6IG5vIGNvbW1hbmQsIGJ1dCBgLS1hcHAtcG9ydGAgbmFtZXMgYW4gYWxyZWFkeS1ydW5uaW5nIHVwc3RyZWFtXG4gIC8vICAgICAoZS5nLiBhIGxvY2FsIHJldmVyc2UgcHJveHkpLiBUaGUgZ2F0ZSBmcm9udHMgaXQgd2l0aG91dCBzcGF3bmluZyBhXG4gIC8vICAgICBjaGlsZC4gVGhpcyBpcyB3aGF0IGxldHMgdGhlIGdhdGUgc2l0IG9uIGFuIGludGVyZmFjZSBpbiBmcm9udCBvZiBhXG4gIC8vICAgICBzZXBhcmF0ZWx5LXN1cGVydmlzZWQgc3RhY2suXG4gIGxldCBhcHBQb3J0OiBudW1iZXI7XG4gIGlmIChleGVjdXRhYmxlKSB7XG4gICAgYXBwUG9ydCA9IHJlc29sdmVkLmFwcFBvcnQgPz8gKGF3YWl0IGZyZWVQb3J0KCkpO1xuICAgIGNvbnN0IGFwcCA9IGV4ZWMuc3Bhd24oZXhlY3V0YWJsZSwgYXJncywge1xuICAgICAgZW52OiB7XG4gICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICBEQVRBQlJJQ0tTX0FQUF9QT1JUOiBTdHJpbmcoYXBwUG9ydCksXG4gICAgICAgIFBPUlQ6IFN0cmluZyhhcHBQb3J0KSxcbiAgICAgICAgSE9TVDogXCIxMjcuMC4wLjFcIixcbiAgICAgIH0sXG4gICAgICBzdGRpbjogXCJpbmhlcml0XCIsXG4gICAgICBzdGRvdXQ6IFwiaW5oZXJpdFwiLFxuICAgICAgc3RkZXJyOiBcImluaGVyaXRcIixcbiAgICAgIHRlcm1pbmF0ZVRpbWVvdXQ6IDEwXzAwMCxcbiAgICB9KTtcbiAgICBjaGlsZHJlbi5wdXNoKGFwcCk7XG4gIH0gZWxzZSBpZiAocmVzb2x2ZWQuYXBwUG9ydCkge1xuICAgIGFwcFBvcnQgPSByZXNvbHZlZC5hcHBQb3J0O1xuICAgIGxvZ2dlci5pbmZvKFwiYXR0YWNoaW5nIGdhdGUgdG8gZXhpc3RpbmcgdXBzdHJlYW1cIiwgeyBhcHBQb3J0IH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBDb21tYW5kZXJFcnJvcihcbiAgICAgIDEsXG4gICAgICBcInR1bm5lbC5uby11cHN0cmVhbVwiLFxuICAgICAgXCJubyBjb21tYW5kIGdpdmVuIChwYXNzIGl0IGFmdGVyIGAtLWApIGFuZCBubyAtLWFwcC1wb3J0IHRvIGF0dGFjaCB0b1wiLFxuICAgICk7XG4gIH1cblxuICAvLyBEeW5hbWljIGltcG9ydDogdGhlIGdhdGUgaXMgdGhlIG9ubHkgdGhpbmcgaGVyZSB0aGF0IG5lZWRzIEFwcEtpdCArIFNNVFAsIHNvXG4gIC8vIGFuIGAtLWluc2VjdXJlYCBydW4gbmV2ZXIgbG9hZHMgZWl0aGVyLlxuICBjb25zdCBnYXRlID0gcmVzb2x2ZWQuZ2F0ZS5pbnNlY3VyZVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiBhd2FpdCAoXG4gICAgICAgIGF3YWl0IGltcG9ydChcIi4vYXBwLnRzXCIpXG4gICAgICApLnN0YXJ0R2F0ZUFwcCh7XG4gICAgICAgIC4uLnJlc29sdmVkLmdhdGVDb25maWcsXG4gICAgICAgIHB1YmxpY0RvbWFpbjogcmVzb2x2ZWQuZ2F0ZS5wdWJsaWNEb21haW4gPz8gYGxvY2FsaG9zdDoke3Jlc29sdmVkLnB1YmxpY1BvcnR9YCxcbiAgICAgIH0pO1xuICBpZiAoIWdhdGUpIGxvZ2dlci53YXJuKFwicnVubmluZyBPUEVOIC0gbm8gZ2F0ZSBpcyBpbiBmcm9udCBvZiB0aGlzIHR1bm5lbFwiKTtcblxuICBhd2FpdCBzdGFydFByb3h5KHtcbiAgICBwdWJsaWNQb3J0OiByZXNvbHZlZC5wdWJsaWNQb3J0LFxuICAgIGFwcFBvcnQsXG4gICAgZ2F0ZSxcbiAgICBmb3J3YXJkSGVhZGVyczogcmVzb2x2ZWQuZ2F0ZS5mb3J3YXJkSGVhZGVycyxcbiAgICBnYXRlUGF0aHM6IHJlc29sdmVkLmdhdGUuZ2F0ZVBhdGhzLFxuICAgIGJyYW5kTmFtZTogcmVzb2x2ZWQuZ2F0ZS5icmFuZE5hbWUsXG4gICAgYmluZEhvc3RzOiByZXNvbHZlZC5iaW5kSG9zdHMsXG4gIH0pO1xuXG4gIGlmICgocmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcInBvcnRyXCIgfHwgcmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcImJvdGhcIikgJiYgcmVzb2x2ZWQucG9ydHIpIHtcbiAgICBjb25zdCBwb3J0ckVudiA9IGF3YWl0IHBvcnRyLmluc3RhbGxQb3J0cigpO1xuICAgIGF3YWl0IHBvcnRyLndyaXRlUG9ydHJDb25maWcocmVzb2x2ZWQucG9ydHIsIHBvcnRyRW52KTtcbiAgICBjaGlsZHJlbi5wdXNoKHBvcnRyLnN0YXJ0UG9ydHIocmVzb2x2ZWQucG9ydHIsIHBvcnRyRW52KSk7XG4gIH1cbiAgaWYgKChyZXNvbHZlZC50cmFuc3BvcnQgPT09IFwiZnJwXCIgfHwgcmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcImJvdGhcIikgJiYgcmVzb2x2ZWQuZnJwKSB7XG4gICAgY29uc3QgZnJwRW52ID0gYXdhaXQgZnJwLmluc3RhbGxGcnAoKTtcbiAgICBjb25zdCBjb25maWdQYXRoID0gYXdhaXQgZnJwLndyaXRlRnJwQ29uZmlnKHJlc29sdmVkLmZycCwgZnJwRW52KTtcbiAgICBjaGlsZHJlbi5wdXNoKGZycC5zdGFydEZycChyZXNvbHZlZC5mcnAsIGZycEVudiwgY29uZmlnUGF0aCkpO1xuICB9XG4gIGNvbnN0IGFjdGl2ZVR1bm5lbENvdW50ID0gY2hpbGRyZW4ubGVuZ3RoIC0gKGV4ZWN1dGFibGUgPyAxIDogMCk7XG4gIGlmICghYWN0aXZlVHVubmVsQ291bnQpIHtcbiAgICBsb2dnZXIuaW5mbyhcIm5vIHNlbGVjdGVkIHB1YmxpYyB0dW5uZWwgaXMgY29uZmlndXJlZFwiLCB7XG4gICAgICB0cmFuc3BvcnQ6IHJlc29sdmVkLnRyYW5zcG9ydCxcbiAgICAgIHB1YmxpY1BvcnQ6IHJlc29sdmVkLnB1YmxpY1BvcnQsXG4gICAgfSk7XG4gIH1cbiAgc3VwZXJ2aXNlKGNoaWxkcmVuKTtcbn1cblxuLyoqIFRoZSBgZGJ4IHR1bm5lbGAgcHJvZ3JhbS4gTm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0obmFtZSA9IFwiZGJ4IHR1bm5lbFwiKTogQ29tbWFuZCB7XG4gIGNvbnN0IHByb2dyYW0gPSBhZGRBcmdzKFxuICAgIG5ldyBDb21tYW5kKClcbiAgICAgIC5uYW1lKG5hbWUpXG4gICAgICAuZGVzY3JpcHRpb24oXCJGcm9udCBhIGNvbW1hbmQgd2l0aCBhIHB1YmxpYyB0dW5uZWwgYW5kIHBhc3N3b3JkbGVzcyBhdXRoXCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG5cbiAgLy8gYHJ1bmAgaXMgdGhlIERFRkFVTFQgYWN0aW9uIGFzIHdlbGwgYXMgYSBuYW1lZCBzdWJjb21tYW5kLCBwcmVzZXJ2aW5nIHRoZSBvbGRcbiAgLy8gd3JhcHBlcidzIGVyZ29ub21pY3MgKGBkYnggdHVubmVsIC0tYWxsb3cgeCAtLSBidW4gc3JjL3NlcnZlci50c2ApIHdoaWxlXG4gIC8vIGxlYXZpbmcgc29tZXdoZXJlIGZvciBgc3RhdHVzYCBhbmQgYGluc3RhbGxgIHRvIGxpdmUuXG4gIHByb2dyYW1cbiAgICAuYXJndW1lbnQoXCJbY29tbWFuZC4uLl1cIiwgXCJ0aGUgY29tbWFuZCB0byB3cmFwLCBhZnRlciBgLS1gXCIpXG4gICAgLmFjdGlvbihhc3luYyAoY29tbWFuZDogc3RyaW5nW10pID0+IHtcbiAgICAgIGF3YWl0IHJ1bihwYXJzZUFyZ3MocHJvZ3JhbSwgVHVubmVsT3B0aW9uc1NjaGVtYSksIGNvbW1hbmQpO1xuICAgIH0pO1xuXG4gIGNvbnN0IHJ1bkNvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInJ1blwiKS5kZXNjcmlwdGlvbihcIldyYXAgYSBjb21tYW5kICh0aGUgZGVmYXVsdCBhY3Rpb24pXCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG4gIHJ1bkNvbW1hbmRcbiAgICAuYXJndW1lbnQoXCI8Y29tbWFuZC4uLj5cIiwgXCJ0aGUgY29tbWFuZCB0byB3cmFwLCBhZnRlciBgLS1gXCIpXG4gICAgLmFjdGlvbihhc3luYyAoY29tbWFuZDogc3RyaW5nW10pID0+IHtcbiAgICAgIGF3YWl0IHJ1bihwYXJzZUFyZ3MocnVuQ29tbWFuZCwgVHVubmVsT3B0aW9uc1NjaGVtYSksIGNvbW1hbmQpO1xuICAgIH0pO1xuXG4gIC8vIFdvcnRoIGl0cyBvd24gY29tbWFuZDogdGhlIG1vc3QgY29tbW9uIGZhaWx1cmUgaXMgYSB0dW5uZWwgdGhhdCBzaWxlbnRseVxuICAvLyBkb2VzIG5vdGhpbmcgYmVjYXVzZSBubyB0b2tlbiBvciBkb21haW4gcmVzb2x2ZWQsIGFuZCB0aGlzIHByaW50cyBleGFjdGx5XG4gIC8vIHdoYXQgd291bGQgaGFwcGVuIHdpdGhvdXQgc3RhcnRpbmcgYW55dGhpbmcuXG4gIGNvbnN0IHN0YXR1c0NvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInN0YXR1c1wiKS5kZXNjcmlwdGlvbihcIlJlc29sdmUgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIHByaW50IGl0XCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG4gIHN0YXR1c0NvbW1hbmQuYWN0aW9uKCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVUdW5uZWxPcHRpb25zKHBhcnNlQXJncyhzdGF0dXNDb21tYW5kLCBUdW5uZWxPcHRpb25zU2NoZW1hKSk7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkocmVzb2x2ZWQsIG51bGwsIDIpfVxcbmApO1xuICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJpbnN0YWxsXCIpXG4gICAgLmFyZ3VtZW50KFwiW3RyYW5zcG9ydF1cIiwgXCJwb3J0ciwgZnJwLCBvciBib3RoXCIsIFwicG9ydHJcIilcbiAgICAuZGVzY3JpcHRpb24oXCJJbnN0YWxsIHB1YmxpYyB0dW5uZWwgY2xpZW50IGJpbmFyaWVzIGFuZCBleGl0XCIpXG4gICAgLmFjdGlvbihhc3luYyAodHJhbnNwb3J0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IGludGVyY2VwdG9yLlR1bm5lbFRyYW5zcG9ydFNjaGVtYS5wYXJzZSh0cmFuc3BvcnQpO1xuICAgICAgaWYgKHBhcnNlZCA9PT0gXCJwb3J0clwiIHx8IHBhcnNlZCA9PT0gXCJib3RoXCIpIGF3YWl0IHBvcnRyLmluc3RhbGxQb3J0cigpO1xuICAgICAgaWYgKHBhcnNlZCA9PT0gXCJmcnBcIiB8fCBwYXJzZWQgPT09IFwiYm90aFwiKSBhd2FpdCBmcnAuaW5zdGFsbEZycCgpO1xuICAgIH0pO1xuXG4gIHJldHVybiBwcm9ncmFtO1xufVxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R1bm5lbC9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBRTFCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFcEM7Ozs7R0FJRztBQUNILFNBQVMsUUFBUTtJQUNmLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUNoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsTUFB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T0FBTztTQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDbEIsUUFBUSxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUM7U0FDdkQsV0FBVyxDQUFDLGdEQUFnRCxDQUFDO1NBQzdELE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsTUFBTSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEUsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFFTCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBgZGJ4IHR1bm5lbGAgLSBmcm9udCBhIGNvbW1hbmQgd2l0aCBhIHB1YmxpYyBwb3J0ciB0dW5uZWwgYW5kIHBhc3N3b3JkbGVzcyBnYXRlLlxuICpcbiAqIFRoaXMgaXMgdGhlIFdSQVBQRVIgcGF0aCwgYW5kIGl0IGV4aXN0cyBmb3Igb25lIGNhc2U6IGEgcHJvamVjdCB0aGF0IGRvZXMgbm90XG4gKiB1c2UgYEBkYngtdG9vbHMvYXBwa2l0YCdzIGBjcmVhdGVBcHBgLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCByZWdpc3RlclxuICogYHR1bm5lbEludGVyY2VwdG9yKClgICsgdGhlIGBhdXRoR2F0ZWAgcGx1Z2luIGluLXByb2Nlc3MuIEFuIEFwcEtpdCBhcHAgc2hvdWxkXG4gKiBzdGlsbCB0YWtlIHRoZSBwbHVnaW4gcGF0aCAtIG9uZSBwcm9jZXNzLCBubyBwcm94eSBob3AsIG5vIGR1cGxpY2F0ZWQgaGVhZGVyXG4gKiBoYW5kbGluZy5cbiAqXG4gKiBUaGUgd3JhcHBlciBjbGFpbXMgdGhlIFBVQkxJQyBwb3J0IChgREFUQUJSSUNLU19BUFBfUE9SVGAsIHRoZSBwb3J0IHRoZVxuICogcGxhdGZvcm0gYW5kIHBvcnRyIHJvdXRlIHRvKSwgbW92ZXMgdGhlIHdyYXBwZWQgYXBwIHRvIGEgcHJpdmF0ZSBvbmUsIGFuZFxuICogcmV2ZXJzZS1wcm94aWVzIGJldHdlZW4gdGhlbSBzbyB0aGUgZ2F0ZSBzaXRzIGluIGZyb250IG9mIHRyYWZmaWMgaXQgd291bGRcbiAqIG90aGVyd2lzZSBoYXZlIG5vIHdheSB0byBpbnRlcmNlcHQuIEV2ZXJ5dGhpbmcgZWxzZSBpcyBkZWxlZ2F0ZWQ6IHRoZSBnYXRlXG4gKiBjb25maWcgY29tZXMgZnJvbSBgcGx1Z2luLnJlc29sdmVBdXRoR2F0ZUNvbmZpZ2AsIHRoZSBwb3J0ciBsaWZlY3ljbGUgZnJvbVxuICogYHBvcnRyLipgIC0gYm90aCB0aGUgc2FtZSBmdW5jdGlvbnMgdGhlIGluLXByb2Nlc3MgcGF0aCB1c2VzLlxuICpcbiAqIFNoaXBzIG5vIGJpbi4gYEBkYngtdG9vbHMvY2xpYCBtb3VudHMgYGJ1aWxkUHJvZ3JhbSgpYCBhcyBgZGJ4IHR1bm5lbGAgbGF6aWx5LFxuICogc28gYGRieCBkZXZgIHBheXMgZm9yIG5vbmUgb2YgdGhpcywgYW5kIGAtLWluc2VjdXJlYCAvIGBzdGF0dXNgIC8gYGluc3RhbGxgXG4gKiBuZXZlciBsb2FkIEFwcEtpdCBvciB0aGUgU01UUCBzdGFjayBlaXRoZXIgKHRoZSBnYXRlIGFwcCBpcyBiZWhpbmQgYSBkeW5hbWljXG4gKiBpbXBvcnQpLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXIgfSBmcm9tIFwibm9kZTpuZXRcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3NSZXN1bHQgfSBmcm9tIFwiQGRieC10b29scy9jb3JlL2V4ZWNcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBmcnAsIGludGVyY2VwdG9yLCBwb3J0ciB9IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuaW1wb3J0IHsgQ29tbWFuZCwgQ29tbWFuZGVyRXJyb3IgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5cbmltcG9ydCB7IHJlc29sdmVUdW5uZWxPcHRpb25zLCBUdW5uZWxPcHRpb25zU2NoZW1hLCB0eXBlIFR1bm5lbE9wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQgeyBzdGFydFByb3h5IH0gZnJvbSBcIi4vcHJveHkudHNcIjtcblxuZXhwb3J0IHsgQ29tbWFuZGVyRXJyb3IgfTtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbFwiKTtcblxuLyoqXG4gKiBBIGZyZWUgbG9vcGJhY2sgcG9ydCwgZnJvbSB0aGUgT1MgcmF0aGVyIHRoYW4gYSByYW5kb20gZ3Vlc3M6IGJpbmRpbmcgYDBgIGFuZFxuICogcmVhZGluZyBiYWNrIHdoYXQgd2FzIGFzc2lnbmVkIGlzIHRoZSBvbmx5IHdheSB0byBrbm93IHRoZSBwb3J0IGlzIGFjdHVhbGx5XG4gKiBhdmFpbGFibGUsIHNvIHR3byB0dW5uZWxzIGNhbiBydW4gc2lkZSBieSBzaWRlIHdpdGhvdXQgY29sbGlkaW5nLlxuICovXG5mdW5jdGlvbiBmcmVlUG9ydCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHByb2JlID0gY3JlYXRlU2VydmVyKCk7XG4gICAgcHJvYmUub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHByb2JlLmxpc3RlbigwLCBcIjEyNy4wLjAuMVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gcHJvYmUuYWRkcmVzcygpO1xuICAgICAgY29uc3QgcG9ydCA9IHR5cGVvZiBhZGRyZXNzID09PSBcIm9iamVjdFwiICYmIGFkZHJlc3MgPyBhZGRyZXNzLnBvcnQgOiAwO1xuICAgICAgcHJvYmUuY2xvc2UoKCkgPT4gKHBvcnQgPiAwID8gcmVzb2x2ZShwb3J0KSA6IHJlamVjdChuZXcgRXJyb3IoXCJubyBmcmVlIHBvcnRcIikpKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFRpZSB0aGUgd3JhcHBlcidzIGxpZmV0aW1lIHRvIGl0cyBjaGlsZHJlbjogYSBjaGlsZCB0aGF0IGV4aXRzIHRha2VzIHRoZVxuICogd3JhcHBlciBkb3duIHdpdGggaXRzIGNvZGUuIENvcmUgZXhlYyBvd25zIHBhcmVudCB0ZXJtaW5hdGlvbiBmb3J3YXJkaW5nIGZvclxuICogZXZlcnkgc3Bhd25lZCBjaGlsZC4gV2l0aG91dCB0aGlzIGEgY3Jhc2hlZCBhcHAgbGVhdmVzIGEgcG9ydHIgdHVubmVsIHNlcnZpbmdcbiAqIGEgZGVhZCBwb3J0LCB3aGljaCBsb29rcyBsaWtlIGEgaGFuZyByYXRoZXIgdGhhbiBhIGZhaWx1cmUuXG4gKi9cbmZ1bmN0aW9uIHN1cGVydmlzZShjaGlsZHJlbjogcmVhZG9ubHkgQ2hpbGRQcm9jZXNzUmVzdWx0W10pOiB2b2lkIHtcbiAgbGV0IHN0b3BwaW5nID0gZmFsc2U7XG4gIGNvbnN0IHN0b3AgPSAoY29kZTogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgaWYgKHN0b3BwaW5nKSByZXR1cm47XG4gICAgc3RvcHBpbmcgPSB0cnVlO1xuICAgIHZvaWQgUHJvbWlzZS5hbGxTZXR0bGVkKGNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLnNodXRkb3duKCkpKS50aGVuKCgpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChjb2RlKTtcbiAgICB9KTtcbiAgfTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgIHZvaWQgY2hpbGQub24oXCJleGl0XCIsIChjb2RlKSA9PiBzdG9wKGNvZGUgPz8gMSkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bihyYXc6IFR1bm5lbE9wdGlvbnMsIGNvbW1hbmQ6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5hcmdzXSA9IGNvbW1hbmQ7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVR1bm5lbE9wdGlvbnMocmF3KTtcbiAgY29uc3QgY2hpbGRyZW46IENoaWxkUHJvY2Vzc1Jlc3VsdFtdID0gW107XG5cbiAgLy8gVHdvIHVwc3RyZWFtIG1vZGVzOlxuICAvLyAgIC0gV1JBUDogYSBjb21tYW5kIGFmdGVyIGAtLWAuIFRoZSB3cmFwcGVyIHNwYXducyBpdCBvbiBhIHByaXZhdGUgbG9vcGJhY2tcbiAgLy8gICAgIHBvcnQgYW5kIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgdGFsa3MgdG8gaXQuXG4gIC8vICAgLSBBVFRBQ0g6IG5vIGNvbW1hbmQsIGJ1dCBgLS1hcHAtcG9ydGAgbmFtZXMgYW4gYWxyZWFkeS1ydW5uaW5nIHVwc3RyZWFtXG4gIC8vICAgICAoZS5nLiBhIGxvY2FsIHJldmVyc2UgcHJveHkpLiBUaGUgZ2F0ZSBmcm9udHMgaXQgd2l0aG91dCBzcGF3bmluZyBhXG4gIC8vICAgICBjaGlsZC4gVGhpcyBpcyB3aGF0IGxldHMgdGhlIGdhdGUgc2l0IG9uIGFuIGludGVyZmFjZSBpbiBmcm9udCBvZiBhXG4gIC8vICAgICBzZXBhcmF0ZWx5LXN1cGVydmlzZWQgc3RhY2suXG4gIGxldCBhcHBQb3J0OiBudW1iZXI7XG4gIGlmIChleGVjdXRhYmxlKSB7XG4gICAgYXBwUG9ydCA9IHJlc29sdmVkLmFwcFBvcnQgPz8gKGF3YWl0IGZyZWVQb3J0KCkpO1xuICAgIGNvbnN0IGFwcCA9IGV4ZWMuc3Bhd24oZXhlY3V0YWJsZSwgYXJncywge1xuICAgICAgZW52OiB7XG4gICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICBEQVRBQlJJQ0tTX0FQUF9QT1JUOiBTdHJpbmcoYXBwUG9ydCksXG4gICAgICAgIFBPUlQ6IFN0cmluZyhhcHBQb3J0KSxcbiAgICAgICAgSE9TVDogXCIxMjcuMC4wLjFcIixcbiAgICAgIH0sXG4gICAgICBzdGRpbjogXCJpbmhlcml0XCIsXG4gICAgICBzdGRvdXQ6IFwiaW5oZXJpdFwiLFxuICAgICAgc3RkZXJyOiBcImluaGVyaXRcIixcbiAgICAgIHRlcm1pbmF0ZVRpbWVvdXQ6IDEwXzAwMCxcbiAgICB9KTtcbiAgICBjaGlsZHJlbi5wdXNoKGFwcCk7XG4gIH0gZWxzZSBpZiAocmVzb2x2ZWQuYXBwUG9ydCkge1xuICAgIGFwcFBvcnQgPSByZXNvbHZlZC5hcHBQb3J0O1xuICAgIGxvZ2dlci5pbmZvKFwiYXR0YWNoaW5nIGdhdGUgdG8gZXhpc3RpbmcgdXBzdHJlYW1cIiwgeyBhcHBQb3J0IH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBDb21tYW5kZXJFcnJvcihcbiAgICAgIDEsXG4gICAgICBcInR1bm5lbC5uby11cHN0cmVhbVwiLFxuICAgICAgXCJubyBjb21tYW5kIGdpdmVuIChwYXNzIGl0IGFmdGVyIGAtLWApIGFuZCBubyAtLWFwcC1wb3J0IHRvIGF0dGFjaCB0b1wiLFxuICAgICk7XG4gIH1cblxuICAvLyBEeW5hbWljIGltcG9ydDogdGhlIGdhdGUgaXMgdGhlIG9ubHkgdGhpbmcgaGVyZSB0aGF0IG5lZWRzIEFwcEtpdCArIFNNVFAsIHNvXG4gIC8vIGFuIGAtLWluc2VjdXJlYCBydW4gbmV2ZXIgbG9hZHMgZWl0aGVyLlxuICBjb25zdCBnYXRlID0gcmVzb2x2ZWQuZ2F0ZS5pbnNlY3VyZVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiBhd2FpdCAoXG4gICAgICAgIGF3YWl0IGltcG9ydChcIi4vYXBwLnRzXCIpXG4gICAgICApLnN0YXJ0R2F0ZUFwcCh7XG4gICAgICAgIC4uLnJlc29sdmVkLmdhdGVDb25maWcsXG4gICAgICAgIHB1YmxpY0RvbWFpbjogcmVzb2x2ZWQuZ2F0ZS5wdWJsaWNEb21haW4gPz8gYGxvY2FsaG9zdDoke3Jlc29sdmVkLnB1YmxpY1BvcnR9YCxcbiAgICAgIH0pO1xuICBpZiAoIWdhdGUpIGxvZ2dlci53YXJuKFwicnVubmluZyBPUEVOIC0gbm8gZ2F0ZSBpcyBpbiBmcm9udCBvZiB0aGlzIHR1bm5lbFwiKTtcblxuICBhd2FpdCBzdGFydFByb3h5KHtcbiAgICBwdWJsaWNQb3J0OiByZXNvbHZlZC5wdWJsaWNQb3J0LFxuICAgIGFwcFBvcnQsXG4gICAgZ2F0ZSxcbiAgICBmb3J3YXJkSGVhZGVyczogcmVzb2x2ZWQuZ2F0ZS5mb3J3YXJkSGVhZGVycyxcbiAgICBnYXRlUGF0aHM6IHJlc29sdmVkLmdhdGUuZ2F0ZVBhdGhzLFxuICAgIGJyYW5kTmFtZTogcmVzb2x2ZWQuZ2F0ZS5icmFuZE5hbWUsXG4gICAgcGFzc2tleU5hbWVQcmVmaXg6IHJlc29sdmVkLmdhdGUucGFzc2tleU5hbWVQcmVmaXgsXG4gICAgYmluZEhvc3RzOiByZXNvbHZlZC5iaW5kSG9zdHMsXG4gIH0pO1xuXG4gIGlmICgocmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcInBvcnRyXCIgfHwgcmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcImJvdGhcIikgJiYgcmVzb2x2ZWQucG9ydHIpIHtcbiAgICBjb25zdCBwb3J0ckVudiA9IGF3YWl0IHBvcnRyLmluc3RhbGxQb3J0cigpO1xuICAgIGF3YWl0IHBvcnRyLndyaXRlUG9ydHJDb25maWcocmVzb2x2ZWQucG9ydHIsIHBvcnRyRW52KTtcbiAgICBjaGlsZHJlbi5wdXNoKHBvcnRyLnN0YXJ0UG9ydHIocmVzb2x2ZWQucG9ydHIsIHBvcnRyRW52KSk7XG4gIH1cbiAgaWYgKChyZXNvbHZlZC50cmFuc3BvcnQgPT09IFwiZnJwXCIgfHwgcmVzb2x2ZWQudHJhbnNwb3J0ID09PSBcImJvdGhcIikgJiYgcmVzb2x2ZWQuZnJwKSB7XG4gICAgY29uc3QgZnJwRW52ID0gYXdhaXQgZnJwLmluc3RhbGxGcnAoKTtcbiAgICBjb25zdCBjb25maWdQYXRoID0gYXdhaXQgZnJwLndyaXRlRnJwQ29uZmlnKHJlc29sdmVkLmZycCwgZnJwRW52KTtcbiAgICBjaGlsZHJlbi5wdXNoKGZycC5zdGFydEZycChyZXNvbHZlZC5mcnAsIGZycEVudiwgY29uZmlnUGF0aCkpO1xuICB9XG4gIGNvbnN0IGFjdGl2ZVR1bm5lbENvdW50ID0gY2hpbGRyZW4ubGVuZ3RoIC0gKGV4ZWN1dGFibGUgPyAxIDogMCk7XG4gIGlmICghYWN0aXZlVHVubmVsQ291bnQpIHtcbiAgICBsb2dnZXIuaW5mbyhcIm5vIHNlbGVjdGVkIHB1YmxpYyB0dW5uZWwgaXMgY29uZmlndXJlZFwiLCB7XG4gICAgICB0cmFuc3BvcnQ6IHJlc29sdmVkLnRyYW5zcG9ydCxcbiAgICAgIHB1YmxpY1BvcnQ6IHJlc29sdmVkLnB1YmxpY1BvcnQsXG4gICAgfSk7XG4gIH1cbiAgc3VwZXJ2aXNlKGNoaWxkcmVuKTtcbn1cblxuLyoqIFRoZSBgZGJ4IHR1bm5lbGAgcHJvZ3JhbS4gTm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW0obmFtZSA9IFwiZGJ4IHR1bm5lbFwiKTogQ29tbWFuZCB7XG4gIGNvbnN0IHByb2dyYW0gPSBhZGRBcmdzKFxuICAgIG5ldyBDb21tYW5kKClcbiAgICAgIC5uYW1lKG5hbWUpXG4gICAgICAuZGVzY3JpcHRpb24oXCJGcm9udCBhIGNvbW1hbmQgd2l0aCBhIHB1YmxpYyB0dW5uZWwgYW5kIHBhc3N3b3JkbGVzcyBhdXRoXCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG5cbiAgLy8gYHJ1bmAgaXMgdGhlIERFRkFVTFQgYWN0aW9uIGFzIHdlbGwgYXMgYSBuYW1lZCBzdWJjb21tYW5kLCBwcmVzZXJ2aW5nIHRoZSBvbGRcbiAgLy8gd3JhcHBlcidzIGVyZ29ub21pY3MgKGBkYnggdHVubmVsIC0tYWxsb3cgeCAtLSBidW4gc3JjL3NlcnZlci50c2ApIHdoaWxlXG4gIC8vIGxlYXZpbmcgc29tZXdoZXJlIGZvciBgc3RhdHVzYCBhbmQgYGluc3RhbGxgIHRvIGxpdmUuXG4gIHByb2dyYW1cbiAgICAuYXJndW1lbnQoXCJbY29tbWFuZC4uLl1cIiwgXCJ0aGUgY29tbWFuZCB0byB3cmFwLCBhZnRlciBgLS1gXCIpXG4gICAgLmFjdGlvbihhc3luYyAoY29tbWFuZDogc3RyaW5nW10pID0+IHtcbiAgICAgIGF3YWl0IHJ1bihwYXJzZUFyZ3MocHJvZ3JhbSwgVHVubmVsT3B0aW9uc1NjaGVtYSksIGNvbW1hbmQpO1xuICAgIH0pO1xuXG4gIGNvbnN0IHJ1bkNvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInJ1blwiKS5kZXNjcmlwdGlvbihcIldyYXAgYSBjb21tYW5kICh0aGUgZGVmYXVsdCBhY3Rpb24pXCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG4gIHJ1bkNvbW1hbmRcbiAgICAuYXJndW1lbnQoXCI8Y29tbWFuZC4uLj5cIiwgXCJ0aGUgY29tbWFuZCB0byB3cmFwLCBhZnRlciBgLS1gXCIpXG4gICAgLmFjdGlvbihhc3luYyAoY29tbWFuZDogc3RyaW5nW10pID0+IHtcbiAgICAgIGF3YWl0IHJ1bihwYXJzZUFyZ3MocnVuQ29tbWFuZCwgVHVubmVsT3B0aW9uc1NjaGVtYSksIGNvbW1hbmQpO1xuICAgIH0pO1xuXG4gIC8vIFdvcnRoIGl0cyBvd24gY29tbWFuZDogdGhlIG1vc3QgY29tbW9uIGZhaWx1cmUgaXMgYSB0dW5uZWwgdGhhdCBzaWxlbnRseVxuICAvLyBkb2VzIG5vdGhpbmcgYmVjYXVzZSBubyB0b2tlbiBvciBkb21haW4gcmVzb2x2ZWQsIGFuZCB0aGlzIHByaW50cyBleGFjdGx5XG4gIC8vIHdoYXQgd291bGQgaGFwcGVuIHdpdGhvdXQgc3RhcnRpbmcgYW55dGhpbmcuXG4gIGNvbnN0IHN0YXR1c0NvbW1hbmQgPSBhZGRBcmdzKFxuICAgIHByb2dyYW0uY29tbWFuZChcInN0YXR1c1wiKS5kZXNjcmlwdGlvbihcIlJlc29sdmUgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIHByaW50IGl0XCIpLFxuICAgIFR1bm5lbE9wdGlvbnNTY2hlbWEsXG4gICk7XG4gIHN0YXR1c0NvbW1hbmQuYWN0aW9uKCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVUdW5uZWxPcHRpb25zKHBhcnNlQXJncyhzdGF0dXNDb21tYW5kLCBUdW5uZWxPcHRpb25zU2NoZW1hKSk7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkocmVzb2x2ZWQsIG51bGwsIDIpfVxcbmApO1xuICB9KTtcblxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoXCJpbnN0YWxsXCIpXG4gICAgLmFyZ3VtZW50KFwiW3RyYW5zcG9ydF1cIiwgXCJwb3J0ciwgZnJwLCBvciBib3RoXCIsIFwicG9ydHJcIilcbiAgICAuZGVzY3JpcHRpb24oXCJJbnN0YWxsIHB1YmxpYyB0dW5uZWwgY2xpZW50IGJpbmFyaWVzIGFuZCBleGl0XCIpXG4gICAgLmFjdGlvbihhc3luYyAodHJhbnNwb3J0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IGludGVyY2VwdG9yLlR1bm5lbFRyYW5zcG9ydFNjaGVtYS5wYXJzZSh0cmFuc3BvcnQpO1xuICAgICAgaWYgKHBhcnNlZCA9PT0gXCJwb3J0clwiIHx8IHBhcnNlZCA9PT0gXCJib3RoXCIpIGF3YWl0IHBvcnRyLmluc3RhbGxQb3J0cigpO1xuICAgICAgaWYgKHBhcnNlZCA9PT0gXCJmcnBcIiB8fCBwYXJzZWQgPT09IFwiYm90aFwiKSBhd2FpdCBmcnAuaW5zdGFsbEZycCgpO1xuICAgIH0pO1xuXG4gIHJldHVybiBwcm9ncmFtO1xufVxuIl19
|
|
@@ -26,6 +26,7 @@ export declare const TunnelOptionsSchema: z.ZodObject<{
|
|
|
26
26
|
allow: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodArray<z.ZodString>>>;
|
|
27
27
|
subject: z.ZodOptional<z.ZodString>;
|
|
28
28
|
brandName: z.ZodOptional<z.ZodString>;
|
|
29
|
+
passkeyNamePrefix: z.ZodOptional<z.ZodString>;
|
|
29
30
|
message: z.ZodOptional<z.ZodString>;
|
|
30
31
|
sessionTtlSeconds: z.ZodOptional<z.ZodCoercedNumber<number>>;
|
|
31
32
|
codeTtlSeconds: z.ZodOptional<z.ZodCoercedNumber<number>>;
|
|
@@ -37,6 +37,9 @@ export const TunnelOptionsSchema = z
|
|
|
37
37
|
allow: list("Email allow-list patterns.").meta({ env: "TUNNEL_AUTH_ALLOW" }),
|
|
38
38
|
subject: text("Verification email subject.").meta({ env: "TUNNEL_AUTH_SUBJECT" }),
|
|
39
39
|
brandName: text("Verification email brand name.").meta({ env: "TUNNEL_AUTH_BRAND_NAME" }),
|
|
40
|
+
passkeyNamePrefix: text("Prefix for humanized tunnel passkey names.").meta({
|
|
41
|
+
env: "TUNNEL_AUTH_PASSKEY_NAME_PREFIX",
|
|
42
|
+
}),
|
|
40
43
|
message: text("Verification email message.").meta({ env: "TUNNEL_AUTH_MESSAGE" }),
|
|
41
44
|
sessionTtlSeconds: z.coerce
|
|
42
45
|
.number()
|
|
@@ -95,6 +98,7 @@ export function resolveTunnelOptions(options) {
|
|
|
95
98
|
allow: options.allow,
|
|
96
99
|
subject: options.subject,
|
|
97
100
|
brandName: options.brandName,
|
|
101
|
+
passkeyNamePrefix: options.passkeyNamePrefix,
|
|
98
102
|
message: options.message,
|
|
99
103
|
// Coerced, not resolved: the plugin owns the env name and the default for
|
|
100
104
|
// these, so the flag is passed through as the `config` value it expects and
|
|
@@ -135,4 +139,4 @@ export function resolveTunnelOptions(options) {
|
|
|
135
139
|
}),
|
|
136
140
|
};
|
|
137
141
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90dW5uZWwvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0UsT0FBTyxFQUF1QixHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sSUFBSSxHQUFHLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDbkMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNyRSxNQUFNLElBQUksR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRSxDQUNuQyxDQUFDO0tBQ0UsVUFBVSxDQUNULENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQzdFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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O1FBQ2xDLFNBQVM7UUFDVCxVQUFVO1FBQ1YsSUFBSTtRQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUM7WUFDOUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO1FBQ0YsR0FBRyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QixZQUFZLEVBQUUsT0FBTyxDQUFDLGVBQWU7WUFDckMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUNqQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUMvQixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsYWcgLT4gY29uZmlnIC0+IGRlZmF1bHQgcmVzb2x1dGlvbiBmb3IgYGRieCB0dW5uZWxgLlxuICpcbiAqIFRoZSBwb2ludCBvZiB0aGlzIG1vZHVsZSBpcyB0aGF0IGl0IGRvZXMgYWxtb3N0IE5PVEhJTkcgaXRzZWxmOiBldmVyeSBnYXRlXG4gKiBzZXR0aW5nIGlzIGhhbmRlZCBzdHJhaWdodCB0byBgQGRieC10b29scy90dW5uZWxgJ3Mgb3duXG4gKiBgcGx1Z2luLnJlc29sdmVBdXRoR2F0ZUNvbmZpZ2AsIHdoaWNoIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIHRoZSBpbi1wcm9jZXNzXG4gKiBwbHVnaW4gcGF0aCBjYWxscy4gVGhlIENMSSB0aGVyZWZvcmUgY2Fubm90IGRyaWZ0IGZyb20gdGhlIHBsdWdpbiBvbiBhIGRlZmF1bHQsXG4gKiBhbiBlbnYgbmFtZSwgb3IgYSBjb2VyY2lvbiBydWxlIC0gYSBmbGFnIGlzIGp1c3QgYSB2YWx1ZSBwYXNzZWQgd2hlcmUgdGhlXG4gKiBwbHVnaW4ncyBgY29uZmlnYCBvYmplY3Qgd291bGQgZ28sIGFuZCBgY29uZmlnLipgIGZpbGxzIHRoZSByZXN0IGluIGZyb20gdGhlXG4gKiBlbnZpcm9ubWVudCwgYSBgLmVudmAgZmlsZSwgb3IgYGRhdGFicmlja3MueW1sYC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgY29uZmlnVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBvcHRpb25zIGFzIHNoYXJlZE9wdGlvbnMsIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHR5cGUgQXV0aEdhdGVDb25maWcsIGZycCwgaW50ZXJjZXB0b3IsIHBsdWdpbiwgcG9ydHIgfSBmcm9tIFwiQGRieC10b29scy90dW5uZWxcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IHRleHQgPSAoZGVzY3JpcHRpb246IHN0cmluZykgPT4gei5zdHJpbmcoKS50cmltKCkubWluKDEpLm9wdGlvbmFsKCkuZGVzY3JpYmUoZGVzY3JpcHRpb24pO1xuY29uc3QgcG9ydCA9IChkZXNjcmlwdGlvbjogc3RyaW5nKSA9PlxuICBzaGFyZWRPcHRpb25zLnRjcFBvcnRPclplcm9TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShkZXNjcmlwdGlvbik7XG5jb25zdCBsaXN0ID0gKGRlc2NyaXB0aW9uOiBzdHJpbmcpID0+XG4gIHpcbiAgICAucHJlcHJvY2VzcyhcbiAgICAgICh2YWx1ZSkgPT4gKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHN0cmluZ1V0aWxzLnBhcnNlTGlzdCh2YWx1ZSkgOiB2YWx1ZSksXG4gICAgICB6LmFycmF5KHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSksXG4gICAgKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKGRlc2NyaXB0aW9uKTtcblxuZXhwb3J0IGNvbnN0IFR1bm5lbE9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHRyYW5zcG9ydDogaW50ZXJjZXB0b3IuVHVubmVsVHJhbnNwb3J0U2NoZW1hLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlB1YmxpYyB0dW5uZWwgdHJhbnNwb3J0LlwiKVxuICAgICAgLm1ldGEoeyBlbnY6IFwiVFVOTkVMX1RSQU5TUE9SVFwiIH0pLFxuICAgIHB1YmxpY0RvbWFpbjogdGV4dChcIlB1YmxpYyB0dW5uZWwgZG9tYWluLlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9QVUJMSUNfRE9NQUlOXCIgfSksXG4gICAgc3ViZG9tYWluOiB0ZXh0KFwiUG9ydHIgc3ViZG9tYWluLlwiKSxcbiAgICBwb3J0OiBwb3J0KFwiUHVibGljIGxpc3RlbmVyIHBvcnQuXCIpLm1ldGEoe1xuICAgICAgZW52OiBzaGFyZWRPcHRpb25zLmRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLmFwcFBvcnQsXG4gICAgfSksXG4gICAgYXBwUG9ydDogcG9ydChcIlByaXZhdGUgd3JhcHBlZCBhcHBsaWNhdGlvbiBwb3J0LlwiKS5tZXRhKHtcbiAgICAgIGVudjogW1wiVFVOTkVMX0FQUF9QT1JUXCIsIFwiQVBQX1BPUlRcIl0sXG4gICAgfSksXG4gICAgYWxsb3c6IGxpc3QoXCJFbWFpbCBhbGxvdy1saXN0IHBhdHRlcm5zLlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX0FMTE9XXCIgfSksXG4gICAgc3ViamVjdDogdGV4dChcIlZlcmlmaWNhdGlvbiBlbWFpbCBzdWJqZWN0LlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX1NVQkpFQ1RcIiB9KSxcbiAgICBicmFuZE5hbWU6IHRleHQoXCJWZXJpZmljYXRpb24gZW1haWwgYnJhbmQgbmFtZS5cIikubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9CUkFORF9OQU1FXCIgfSksXG4gICAgbWVzc2FnZTogdGV4dChcIlZlcmlmaWNhdGlvbiBlbWFpbCBtZXNzYWdlLlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX01FU1NBR0VcIiB9KSxcbiAgICBzZXNzaW9uVHRsU2Vjb25kczogei5jb2VyY2VcbiAgICAgIC5udW1iZXI8bnVtYmVyPigpXG4gICAgICAucG9zaXRpdmUoKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlNlc3Npb24gbGlmZXRpbWUgaW4gc2Vjb25kcy5cIilcbiAgICAgIC5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX1NFU1NJT05fVFRMXCIgfSksXG4gICAgY29kZVR0bFNlY29uZHM6IHouY29lcmNlXG4gICAgICAubnVtYmVyPG51bWJlcj4oKVxuICAgICAgLnBvc2l0aXZlKClcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJPbmUtdGltZS1jb2RlIGxpZmV0aW1lIGluIHNlY29uZHMuXCIpXG4gICAgICAubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9DT0RFX1RUTFwiIH0pLFxuICAgIHNlc3Npb25DdXRvZmY6IHRleHQoXCJJbnZhbGlkYXRlIHNlc3Npb25zIGlzc3VlZCBiZWZvcmUgdGhpcyB2YWx1ZS5cIikubWV0YSh7XG4gICAgICBlbnY6IFwiVFVOTkVMX0FVVEhfU0VTU0lPTl9DVVRPRkZcIixcbiAgICB9KSxcbiAgICBzdG9yYWdlOiB6XG4gICAgICAuZW51bShbXCJhdXRvXCIsIFwibGFrZWJhc2VcIiwgXCJzcWxpdGVcIl0pXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiQXV0aGVudGljYXRpb24gZGF0YWJhc2UgbW9kZS5cIilcbiAgICAgIC5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX1NUT1JBR0VcIiB9KSxcbiAgICBzcWxpdGVQYXRoOiB0ZXh0KFwiTG9jYWwgYXV0aGVudGljYXRpb24gU1FMaXRlIGZpbGUuXCIpLm1ldGEoe1xuICAgICAgZW52OiBcIlRVTk5FTF9BVVRIX1NRTElURV9QQVRIXCIsXG4gICAgfSksXG4gICAgZm9yd2FyZEhlYWRlcnM6IGxpc3QoXCJBZGRpdGlvbmFsIGZvcndhcmRlZCByZXF1ZXN0IGhlYWRlciBwYXR0ZXJucy5cIikubWV0YSh7XG4gICAgICBlbnY6IFwiVFVOTkVMX0ZPUldBUkRfSEVBREVSU1wiLFxuICAgIH0pLFxuICAgIGdhdGVQYXRoczogbGlzdChcIkFkZGl0aW9uYWwgcGF0aCBwcmVmaXhlcyByZXF1aXJpbmcgYXV0aGVudGljYXRpb24uXCIpLm1ldGEoe1xuICAgICAgZW52OiBcIlRVTk5FTF9HQVRFX1BBVEhTXCIsXG4gICAgfSksXG4gICAgYmluZEhvc3RzOiBsaXN0KFwiSW50ZXJmYWNlIElQcyB0aGUgZ2F0ZSBsaXN0ZW5zIG9uLlwiKSxcbiAgICBpbnNlY3VyZTogelxuICAgICAgLmJvb2xlYW4oKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlJ1biB3aXRob3V0IGFuIGF1dGhlbnRpY2F0aW9uIGdhdGUuXCIpXG4gICAgICAubWV0YSh7IGVudjogXCJUVU5ORUxfSU5TRUNVUkVcIiB9KSxcbiAgICBmcnBTZXJ2ZXI6IHRleHQoXCJGUlAgY29udHJvbCBob3N0LlwiKS5tZXRhKHsgZW52OiBcIkZSUF9TRVJWRVJcIiB9KSxcbiAgICBmcnBQdWJsaWNEb21haW46IHRleHQoXCJGUlAgcHVibGljIEhUVFAgZG9tYWluLlwiKS5tZXRhKHtcbiAgICAgIGVudjogXCJUVU5ORUxfRlJQX1BVQkxJQ19ET01BSU5cIixcbiAgICB9KSxcbiAgICBmcnBTZXJ2ZXJQb3J0OiBwb3J0KFwiRlJQIGNvbnRyb2wgcG9ydC5cIikubWV0YSh7IGVudjogXCJGUlBfU0VSVkVSX1BPUlRcIiB9KSxcbiAgICBmcnBQcm90b2NvbDogdGV4dChcIkZSUCB0cmFuc3BvcnQgcHJvdG9jb2wuXCIpLm1ldGEoeyBlbnY6IFwiRlJQX1BST1RPQ09MXCIgfSksXG4gICAgZnJwVG9rZW46IHRleHQoXCJGUlAgYXV0aGVudGljYXRpb24gdG9rZW4uXCIpLm1ldGEoeyBlbnY6IFtcIkZSUF9UT0tFTlwiLCBcIlRVTk5FTF9UT0tFTlwiXSB9KSxcbiAgICBmcnBQcm94eU5hbWU6IHRleHQoXCJGUlAgcHJveHkgcmVnaXN0cmF0aW9uIG5hbWUuXCIpLm1ldGEoeyBlbnY6IFwiRlJQX1BST1hZX05BTUVcIiB9KSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIlB1YmxpYyB0dW5uZWwgd3JhcHBlciBjb21tYW5kLWxpbmUgb3B0aW9ucy5cIik7XG5cbmV4cG9ydCB0eXBlIFR1bm5lbE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgVHVubmVsT3B0aW9uc1NjaGVtYT47XG5cbi8qKiBGdWxseSByZXNvbHZlZCBsaXN0ZW5lciwgZ2F0ZSwgYW5kIHRyYW5zcG9ydCBzZXR0aW5ncyB1c2VkIHRvIHN0YXJ0IGEgdHVubmVsLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFR1bm5lbE9wdGlvbnMge1xuICAvKiogVGhlIHBvcnQgdGhlIHdyYXBwZXIgaXRzZWxmIGxpc3RlbnMgb24gLSB3aGF0IHBvcnRyIGZvcndhcmRzIHRvLiAqL1xuICBwdWJsaWNQb3J0OiBudW1iZXI7XG4gIC8qKiBUaGUgcHJpdmF0ZSBwb3J0IHRoZSB3cmFwcGVkIGFwcCBpcyB0b2xkIHRvIGJpbmQuIFVuc2V0IG1lYW5zIFwicGljayBvbmVcIi4gKi9cbiAgYXBwUG9ydD86IG51bWJlcjtcbiAgLyoqIEludGVyZmFjZSBJUHMgdGhlIGdhdGUgbGlzdGVucyBvbi4gRW1wdHkgbWVhbnMgdGhlIGRlZmF1bHQgKDAuMC4wLjApLiAqL1xuICBiaW5kSG9zdHM6IHN0cmluZ1tdO1xuICB0cmFuc3BvcnQ6IGludGVyY2VwdG9yLlR1bm5lbFRyYW5zcG9ydDtcbiAgLyoqXG4gICAqIFRoZSBnYXRlIGNvbmZpZyBhcyB0aGUgYGF1dGhHYXRlYCBQTFVHSU4gdGFrZXMgaXQgLSBmbGFncyBvbmx5LCBub3RoaW5nXG4gICAqIHJlc29sdmVkLiBQYXNzZWQgc3RyYWlnaHQgdG8gdGhlIHBsdWdpbiBzbyBpdCBhcHBsaWVzIGl0cyBvd24gZmFsbGJhY2tzXG4gICAqIGV4YWN0bHkgb25jZSwgaW4gdGhlIG9uZSBwbGFjZSB0aGF0IG93bnMgdGhlbS5cbiAgICovXG4gIGdhdGVDb25maWc6IEF1dGhHYXRlQ29uZmlnO1xuICAvKiogVGhlIHNhbWUgY29uZmlnIGFmdGVyIHRoZSBwbHVnaW4ncyByZXNvbHV0aW9uLCBmb3IgYHN0YXR1c2AgYW5kIGZvciByb3V0aW5nLiAqL1xuICBnYXRlOiBwbHVnaW4uUmVzb2x2ZWRBdXRoR2F0ZUNvbmZpZztcbiAgcG9ydHI6IFJldHVyblR5cGU8dHlwZW9mIHBvcnRyLnJlc29sdmVQb3J0ckNvbmZpZz47XG4gIGZycDogUmV0dXJuVHlwZTx0eXBlb2YgZnJwLnJlc29sdmVGcnBDb25maWc+O1xufVxuXG4vKiogUmVzb2x2ZSBDTEkgZmxhZyB2YWx1ZXMgdGhyb3VnaCB0aGUgb3duaW5nIHR1bm5lbCBhbmQgYXV0aC1nYXRlIGNvbmZpZ3VyYXRpb24gcnVsZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVR1bm5lbE9wdGlvbnMob3B0aW9uczogVHVubmVsT3B0aW9ucyk6IFJlc29sdmVkVHVubmVsT3B0aW9ucyB7XG4gIC8vIFRoZSBEYXRhYnJpY2tzIEFwcHMgcnVudGltZSBjb250cmFjdDogdGhlIHBsYXRmb3JtIHJvdXRlcyB0b1xuICAvLyBEQVRBQlJJQ0tTX0FQUF9QT1JULCBzbyB0aGUgV1JBUFBFUiBjbGFpbXMgaXQgYW5kIHRoZSB3cmFwcGVkIGFwcCBpcyBtb3ZlZFxuICAvLyB0byBhIHByaXZhdGUgb25lLlxuICBjb25zdCBwdWJsaWNQb3J0ID0gY29uZmlnVXRpbHMucG9ydChvcHRpb25zLnBvcnQsIFwiREFUQUJSSUNLU19BUFBfUE9SVFwiLCA4MDAwKTtcbiAgY29uc3QgYXBwUG9ydCA9IGNvbmZpZ1V0aWxzLnBvcnQob3B0aW9ucy5hcHBQb3J0LCBcIkFQUF9QT1JUXCIsIDAsIHsgcHJlZml4OiBcIlRVTk5FTFwiIH0pO1xuICBjb25zdCBnYXRlQ29uZmlnOiBBdXRoR2F0ZUNvbmZpZyA9IHtcbiAgICBhbGxvdzogb3B0aW9ucy5hbGxvdyxcbiAgICBzdWJqZWN0OiBvcHRpb25zLnN1YmplY3QsXG4gICAgYnJhbmROYW1lOiBvcHRpb25zLmJyYW5kTmFtZSxcbiAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2UsXG4gICAgLy8gQ29lcmNlZCwgbm90IHJlc29sdmVkOiB0aGUgcGx1Z2luIG93bnMgdGhlIGVudiBuYW1lIGFuZCB0aGUgZGVmYXVsdCBmb3JcbiAgICAvLyB0aGVzZSwgc28gdGhlIGZsYWcgaXMgcGFzc2VkIHRocm91Z2ggYXMgdGhlIGBjb25maWdgIHZhbHVlIGl0IGV4cGVjdHMgYW5kXG4gICAgLy8gb25seSBuZWVkcyBhIHN0cmluZyAtPiBudW1iZXIgbnVkZ2Ugb24gdGhlIHdheS5cbiAgICBzZXNzaW9uVHRsU2Vjb25kczogb3B0aW9ucy5zZXNzaW9uVHRsU2Vjb25kcyxcbiAgICBjb2RlVHRsU2Vjb25kczogb3B0aW9ucy5jb2RlVHRsU2Vjb25kcyxcbiAgICBzZXNzaW9uQ3V0b2ZmOiBvcHRpb25zLnNlc3Npb25DdXRvZmYsXG4gICAgc3RvcmFnZTogb3B0aW9ucy5zdG9yYWdlLFxuICAgIHNxbGl0ZVBhdGg6IG9wdGlvbnMuc3FsaXRlUGF0aCxcbiAgICBmb3J3YXJkSGVhZGVyczogb3B0aW9ucy5mb3J3YXJkSGVhZGVycyxcbiAgICBnYXRlUGF0aHM6IG9wdGlvbnMuZ2F0ZVBhdGhzLFxuICAgIGluc2VjdXJlOiBvcHRpb25zLmluc2VjdXJlLFxuICAgIHB1YmxpY0RvbWFpbjogb3B0aW9ucy5wdWJsaWNEb21haW4sXG4gICAgcHVibGljRG9tYWluczogb3B0aW9ucy5mcnBQdWJsaWNEb21haW4gPyBbb3B0aW9ucy5mcnBQdWJsaWNEb21haW5dIDogdW5kZWZpbmVkLFxuICB9O1xuICBjb25zdCBnYXRlID0gcGx1Z2luLnJlc29sdmVBdXRoR2F0ZUNvbmZpZyhnYXRlQ29uZmlnKTtcbiAgY29uc3QgdHJhbnNwb3J0ID0gaW50ZXJjZXB0b3IucmVzb2x2ZVR1bm5lbFRyYW5zcG9ydChvcHRpb25zLnRyYW5zcG9ydCk7XG4gIHJldHVybiB7XG4gICAgcHVibGljUG9ydCxcbiAgICAuLi4oYXBwUG9ydCA+IDAgPyB7IGFwcFBvcnQgfSA6IHt9KSxcbiAgICBiaW5kSG9zdHM6IG9wdGlvbnMuYmluZEhvc3RzID8/IFtdLFxuICAgIHRyYW5zcG9ydCxcbiAgICBnYXRlQ29uZmlnLFxuICAgIGdhdGUsXG4gICAgcG9ydHI6IHBvcnRyLnJlc29sdmVQb3J0ckNvbmZpZyh7XG4gICAgICBwdWJsaWNEb21haW46IGdhdGUucHVibGljRG9tYWluLFxuICAgICAgc3ViZG9tYWluOiBvcHRpb25zLnN1YmRvbWFpbixcbiAgICAgIHBvcnQ6IHB1YmxpY1BvcnQsXG4gICAgfSksXG4gICAgZnJwOiBmcnAucmVzb2x2ZUZycENvbmZpZyh7XG4gICAgICBwdWJsaWNEb21haW46IG9wdGlvbnMuZnJwUHVibGljRG9tYWluLFxuICAgICAgc2VydmVyOiBvcHRpb25zLmZycFNlcnZlcixcbiAgICAgIHNlcnZlclBvcnQ6IG9wdGlvbnMuZnJwU2VydmVyUG9ydCxcbiAgICAgIHByb3RvY29sOiBvcHRpb25zLmZycFByb3RvY29sLFxuICAgICAgdG9rZW46IG9wdGlvbnMuZnJwVG9rZW4sXG4gICAgICBwcm94eU5hbWU6IG9wdGlvbnMuZnJwUHJveHlOYW1lLFxuICAgICAgcG9ydDogcHVibGljUG9ydCxcbiAgICB9KSxcbiAgfTtcbn1cbiJdfQ==
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90dW5uZWwvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0UsT0FBTyxFQUF1QixHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sSUFBSSxHQUFHLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDbkMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNyRSxNQUFNLElBQUksR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRSxDQUNuQyxDQUFDO0tBQ0UsVUFBVSxDQUNULENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQzdFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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Q1YsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQ2xDLFNBQVM7UUFDVCxVQUFVO1FBQ1YsSUFBSTtRQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUM7WUFDOUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO1FBQ0YsR0FBRyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QixZQUFZLEVBQUUsT0FBTyxDQUFDLGVBQWU7WUFDckMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUNqQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUMvQixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsYWcgLT4gY29uZmlnIC0+IGRlZmF1bHQgcmVzb2x1dGlvbiBmb3IgYGRieCB0dW5uZWxgLlxuICpcbiAqIFRoZSBwb2ludCBvZiB0aGlzIG1vZHVsZSBpcyB0aGF0IGl0IGRvZXMgYWxtb3N0IE5PVEhJTkcgaXRzZWxmOiBldmVyeSBnYXRlXG4gKiBzZXR0aW5nIGlzIGhhbmRlZCBzdHJhaWdodCB0byBgQGRieC10b29scy90dW5uZWxgJ3Mgb3duXG4gKiBgcGx1Z2luLnJlc29sdmVBdXRoR2F0ZUNvbmZpZ2AsIHdoaWNoIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIHRoZSBpbi1wcm9jZXNzXG4gKiBwbHVnaW4gcGF0aCBjYWxscy4gVGhlIENMSSB0aGVyZWZvcmUgY2Fubm90IGRyaWZ0IGZyb20gdGhlIHBsdWdpbiBvbiBhIGRlZmF1bHQsXG4gKiBhbiBlbnYgbmFtZSwgb3IgYSBjb2VyY2lvbiBydWxlIC0gYSBmbGFnIGlzIGp1c3QgYSB2YWx1ZSBwYXNzZWQgd2hlcmUgdGhlXG4gKiBwbHVnaW4ncyBgY29uZmlnYCBvYmplY3Qgd291bGQgZ28sIGFuZCBgY29uZmlnLipgIGZpbGxzIHRoZSByZXN0IGluIGZyb20gdGhlXG4gKiBlbnZpcm9ubWVudCwgYSBgLmVudmAgZmlsZSwgb3IgYGRhdGFicmlja3MueW1sYC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgY29uZmlnVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBvcHRpb25zIGFzIHNoYXJlZE9wdGlvbnMsIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHR5cGUgQXV0aEdhdGVDb25maWcsIGZycCwgaW50ZXJjZXB0b3IsIHBsdWdpbiwgcG9ydHIgfSBmcm9tIFwiQGRieC10b29scy90dW5uZWxcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IHRleHQgPSAoZGVzY3JpcHRpb246IHN0cmluZykgPT4gei5zdHJpbmcoKS50cmltKCkubWluKDEpLm9wdGlvbmFsKCkuZGVzY3JpYmUoZGVzY3JpcHRpb24pO1xuY29uc3QgcG9ydCA9IChkZXNjcmlwdGlvbjogc3RyaW5nKSA9PlxuICBzaGFyZWRPcHRpb25zLnRjcFBvcnRPclplcm9TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShkZXNjcmlwdGlvbik7XG5jb25zdCBsaXN0ID0gKGRlc2NyaXB0aW9uOiBzdHJpbmcpID0+XG4gIHpcbiAgICAucHJlcHJvY2VzcyhcbiAgICAgICh2YWx1ZSkgPT4gKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHN0cmluZ1V0aWxzLnBhcnNlTGlzdCh2YWx1ZSkgOiB2YWx1ZSksXG4gICAgICB6LmFycmF5KHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSksXG4gICAgKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKGRlc2NyaXB0aW9uKTtcblxuZXhwb3J0IGNvbnN0IFR1bm5lbE9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHRyYW5zcG9ydDogaW50ZXJjZXB0b3IuVHVubmVsVHJhbnNwb3J0U2NoZW1hLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlB1YmxpYyB0dW5uZWwgdHJhbnNwb3J0LlwiKVxuICAgICAgLm1ldGEoeyBlbnY6IFwiVFVOTkVMX1RSQU5TUE9SVFwiIH0pLFxuICAgIHB1YmxpY0RvbWFpbjogdGV4dChcIlB1YmxpYyB0dW5uZWwgZG9tYWluLlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9QVUJMSUNfRE9NQUlOXCIgfSksXG4gICAgc3ViZG9tYWluOiB0ZXh0KFwiUG9ydHIgc3ViZG9tYWluLlwiKSxcbiAgICBwb3J0OiBwb3J0KFwiUHVibGljIGxpc3RlbmVyIHBvcnQuXCIpLm1ldGEoe1xuICAgICAgZW52OiBzaGFyZWRPcHRpb25zLmRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLmFwcFBvcnQsXG4gICAgfSksXG4gICAgYXBwUG9ydDogcG9ydChcIlByaXZhdGUgd3JhcHBlZCBhcHBsaWNhdGlvbiBwb3J0LlwiKS5tZXRhKHtcbiAgICAgIGVudjogW1wiVFVOTkVMX0FQUF9QT1JUXCIsIFwiQVBQX1BPUlRcIl0sXG4gICAgfSksXG4gICAgYWxsb3c6IGxpc3QoXCJFbWFpbCBhbGxvdy1saXN0IHBhdHRlcm5zLlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX0FMTE9XXCIgfSksXG4gICAgc3ViamVjdDogdGV4dChcIlZlcmlmaWNhdGlvbiBlbWFpbCBzdWJqZWN0LlwiKS5tZXRhKHsgZW52OiBcIlRVTk5FTF9BVVRIX1NVQkpFQ1RcIiB9KSxcbiAgICBicmFuZE5hbWU6IHRleHQoXCJWZXJpZmljYXRpb24gZW1haWwgYnJhbmQgbmFtZS5cIikubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9CUkFORF9OQU1FXCIgfSksXG4gICAgcGFzc2tleU5hbWVQcmVmaXg6IHRleHQoXCJQcmVmaXggZm9yIGh1bWFuaXplZCB0dW5uZWwgcGFzc2tleSBuYW1lcy5cIikubWV0YSh7XG4gICAgICBlbnY6IFwiVFVOTkVMX0FVVEhfUEFTU0tFWV9OQU1FX1BSRUZJWFwiLFxuICAgIH0pLFxuICAgIG1lc3NhZ2U6IHRleHQoXCJWZXJpZmljYXRpb24gZW1haWwgbWVzc2FnZS5cIikubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9NRVNTQUdFXCIgfSksXG4gICAgc2Vzc2lvblR0bFNlY29uZHM6IHouY29lcmNlXG4gICAgICAubnVtYmVyPG51bWJlcj4oKVxuICAgICAgLnBvc2l0aXZlKClcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJTZXNzaW9uIGxpZmV0aW1lIGluIHNlY29uZHMuXCIpXG4gICAgICAubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9TRVNTSU9OX1RUTFwiIH0pLFxuICAgIGNvZGVUdGxTZWNvbmRzOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcjxudW1iZXI+KClcbiAgICAgIC5wb3NpdGl2ZSgpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiT25lLXRpbWUtY29kZSBsaWZldGltZSBpbiBzZWNvbmRzLlwiKVxuICAgICAgLm1ldGEoeyBlbnY6IFwiVFVOTkVMX0FVVEhfQ09ERV9UVExcIiB9KSxcbiAgICBzZXNzaW9uQ3V0b2ZmOiB0ZXh0KFwiSW52YWxpZGF0ZSBzZXNzaW9ucyBpc3N1ZWQgYmVmb3JlIHRoaXMgdmFsdWUuXCIpLm1ldGEoe1xuICAgICAgZW52OiBcIlRVTk5FTF9BVVRIX1NFU1NJT05fQ1VUT0ZGXCIsXG4gICAgfSksXG4gICAgc3RvcmFnZTogelxuICAgICAgLmVudW0oW1wiYXV0b1wiLCBcImxha2ViYXNlXCIsIFwic3FsaXRlXCJdKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkF1dGhlbnRpY2F0aW9uIGRhdGFiYXNlIG1vZGUuXCIpXG4gICAgICAubWV0YSh7IGVudjogXCJUVU5ORUxfQVVUSF9TVE9SQUdFXCIgfSksXG4gICAgc3FsaXRlUGF0aDogdGV4dChcIkxvY2FsIGF1dGhlbnRpY2F0aW9uIFNRTGl0ZSBmaWxlLlwiKS5tZXRhKHtcbiAgICAgIGVudjogXCJUVU5ORUxfQVVUSF9TUUxJVEVfUEFUSFwiLFxuICAgIH0pLFxuICAgIGZvcndhcmRIZWFkZXJzOiBsaXN0KFwiQWRkaXRpb25hbCBmb3J3YXJkZWQgcmVxdWVzdCBoZWFkZXIgcGF0dGVybnMuXCIpLm1ldGEoe1xuICAgICAgZW52OiBcIlRVTk5FTF9GT1JXQVJEX0hFQURFUlNcIixcbiAgICB9KSxcbiAgICBnYXRlUGF0aHM6IGxpc3QoXCJBZGRpdGlvbmFsIHBhdGggcHJlZml4ZXMgcmVxdWlyaW5nIGF1dGhlbnRpY2F0aW9uLlwiKS5tZXRhKHtcbiAgICAgIGVudjogXCJUVU5ORUxfR0FURV9QQVRIU1wiLFxuICAgIH0pLFxuICAgIGJpbmRIb3N0czogbGlzdChcIkludGVyZmFjZSBJUHMgdGhlIGdhdGUgbGlzdGVucyBvbi5cIiksXG4gICAgaW5zZWN1cmU6IHpcbiAgICAgIC5ib29sZWFuKClcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJSdW4gd2l0aG91dCBhbiBhdXRoZW50aWNhdGlvbiBnYXRlLlwiKVxuICAgICAgLm1ldGEoeyBlbnY6IFwiVFVOTkVMX0lOU0VDVVJFXCIgfSksXG4gICAgZnJwU2VydmVyOiB0ZXh0KFwiRlJQIGNvbnRyb2wgaG9zdC5cIikubWV0YSh7IGVudjogXCJGUlBfU0VSVkVSXCIgfSksXG4gICAgZnJwUHVibGljRG9tYWluOiB0ZXh0KFwiRlJQIHB1YmxpYyBIVFRQIGRvbWFpbi5cIikubWV0YSh7XG4gICAgICBlbnY6IFwiVFVOTkVMX0ZSUF9QVUJMSUNfRE9NQUlOXCIsXG4gICAgfSksXG4gICAgZnJwU2VydmVyUG9ydDogcG9ydChcIkZSUCBjb250cm9sIHBvcnQuXCIpLm1ldGEoeyBlbnY6IFwiRlJQX1NFUlZFUl9QT1JUXCIgfSksXG4gICAgZnJwUHJvdG9jb2w6IHRleHQoXCJGUlAgdHJhbnNwb3J0IHByb3RvY29sLlwiKS5tZXRhKHsgZW52OiBcIkZSUF9QUk9UT0NPTFwiIH0pLFxuICAgIGZycFRva2VuOiB0ZXh0KFwiRlJQIGF1dGhlbnRpY2F0aW9uIHRva2VuLlwiKS5tZXRhKHsgZW52OiBbXCJGUlBfVE9LRU5cIiwgXCJUVU5ORUxfVE9LRU5cIl0gfSksXG4gICAgZnJwUHJveHlOYW1lOiB0ZXh0KFwiRlJQIHByb3h5IHJlZ2lzdHJhdGlvbiBuYW1lLlwiKS5tZXRhKHsgZW52OiBcIkZSUF9QUk9YWV9OQU1FXCIgfSksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJQdWJsaWMgdHVubmVsIHdyYXBwZXIgY29tbWFuZC1saW5lIG9wdGlvbnMuXCIpO1xuXG5leHBvcnQgdHlwZSBUdW5uZWxPcHRpb25zID0gei5vdXRwdXQ8dHlwZW9mIFR1bm5lbE9wdGlvbnNTY2hlbWE+O1xuXG4vKiogRnVsbHkgcmVzb2x2ZWQgbGlzdGVuZXIsIGdhdGUsIGFuZCB0cmFuc3BvcnQgc2V0dGluZ3MgdXNlZCB0byBzdGFydCBhIHR1bm5lbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRUdW5uZWxPcHRpb25zIHtcbiAgLyoqIFRoZSBwb3J0IHRoZSB3cmFwcGVyIGl0c2VsZiBsaXN0ZW5zIG9uIC0gd2hhdCBwb3J0ciBmb3J3YXJkcyB0by4gKi9cbiAgcHVibGljUG9ydDogbnVtYmVyO1xuICAvKiogVGhlIHByaXZhdGUgcG9ydCB0aGUgd3JhcHBlZCBhcHAgaXMgdG9sZCB0byBiaW5kLiBVbnNldCBtZWFucyBcInBpY2sgb25lXCIuICovXG4gIGFwcFBvcnQ/OiBudW1iZXI7XG4gIC8qKiBJbnRlcmZhY2UgSVBzIHRoZSBnYXRlIGxpc3RlbnMgb24uIEVtcHR5IG1lYW5zIHRoZSBkZWZhdWx0ICgwLjAuMC4wKS4gKi9cbiAgYmluZEhvc3RzOiBzdHJpbmdbXTtcbiAgdHJhbnNwb3J0OiBpbnRlcmNlcHRvci5UdW5uZWxUcmFuc3BvcnQ7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZSBjb25maWcgYXMgdGhlIGBhdXRoR2F0ZWAgUExVR0lOIHRha2VzIGl0IC0gZmxhZ3Mgb25seSwgbm90aGluZ1xuICAgKiByZXNvbHZlZC4gUGFzc2VkIHN0cmFpZ2h0IHRvIHRoZSBwbHVnaW4gc28gaXQgYXBwbGllcyBpdHMgb3duIGZhbGxiYWNrc1xuICAgKiBleGFjdGx5IG9uY2UsIGluIHRoZSBvbmUgcGxhY2UgdGhhdCBvd25zIHRoZW0uXG4gICAqL1xuICBnYXRlQ29uZmlnOiBBdXRoR2F0ZUNvbmZpZztcbiAgLyoqIFRoZSBzYW1lIGNvbmZpZyBhZnRlciB0aGUgcGx1Z2luJ3MgcmVzb2x1dGlvbiwgZm9yIGBzdGF0dXNgIGFuZCBmb3Igcm91dGluZy4gKi9cbiAgZ2F0ZTogcGx1Z2luLlJlc29sdmVkQXV0aEdhdGVDb25maWc7XG4gIHBvcnRyOiBSZXR1cm5UeXBlPHR5cGVvZiBwb3J0ci5yZXNvbHZlUG9ydHJDb25maWc+O1xuICBmcnA6IFJldHVyblR5cGU8dHlwZW9mIGZycC5yZXNvbHZlRnJwQ29uZmlnPjtcbn1cblxuLyoqIFJlc29sdmUgQ0xJIGZsYWcgdmFsdWVzIHRocm91Z2ggdGhlIG93bmluZyB0dW5uZWwgYW5kIGF1dGgtZ2F0ZSBjb25maWd1cmF0aW9uIHJ1bGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUdW5uZWxPcHRpb25zKG9wdGlvbnM6IFR1bm5lbE9wdGlvbnMpOiBSZXNvbHZlZFR1bm5lbE9wdGlvbnMge1xuICAvLyBUaGUgRGF0YWJyaWNrcyBBcHBzIHJ1bnRpbWUgY29udHJhY3Q6IHRoZSBwbGF0Zm9ybSByb3V0ZXMgdG9cbiAgLy8gREFUQUJSSUNLU19BUFBfUE9SVCwgc28gdGhlIFdSQVBQRVIgY2xhaW1zIGl0IGFuZCB0aGUgd3JhcHBlZCBhcHAgaXMgbW92ZWRcbiAgLy8gdG8gYSBwcml2YXRlIG9uZS5cbiAgY29uc3QgcHVibGljUG9ydCA9IGNvbmZpZ1V0aWxzLnBvcnQob3B0aW9ucy5wb3J0LCBcIkRBVEFCUklDS1NfQVBQX1BPUlRcIiwgODAwMCk7XG4gIGNvbnN0IGFwcFBvcnQgPSBjb25maWdVdGlscy5wb3J0KG9wdGlvbnMuYXBwUG9ydCwgXCJBUFBfUE9SVFwiLCAwLCB7IHByZWZpeDogXCJUVU5ORUxcIiB9KTtcbiAgY29uc3QgZ2F0ZUNvbmZpZzogQXV0aEdhdGVDb25maWcgPSB7XG4gICAgYWxsb3c6IG9wdGlvbnMuYWxsb3csXG4gICAgc3ViamVjdDogb3B0aW9ucy5zdWJqZWN0LFxuICAgIGJyYW5kTmFtZTogb3B0aW9ucy5icmFuZE5hbWUsXG4gICAgcGFzc2tleU5hbWVQcmVmaXg6IG9wdGlvbnMucGFzc2tleU5hbWVQcmVmaXgsXG4gICAgbWVzc2FnZTogb3B0aW9ucy5tZXNzYWdlLFxuICAgIC8vIENvZXJjZWQsIG5vdCByZXNvbHZlZDogdGhlIHBsdWdpbiBvd25zIHRoZSBlbnYgbmFtZSBhbmQgdGhlIGRlZmF1bHQgZm9yXG4gICAgLy8gdGhlc2UsIHNvIHRoZSBmbGFnIGlzIHBhc3NlZCB0aHJvdWdoIGFzIHRoZSBgY29uZmlnYCB2YWx1ZSBpdCBleHBlY3RzIGFuZFxuICAgIC8vIG9ubHkgbmVlZHMgYSBzdHJpbmcgLT4gbnVtYmVyIG51ZGdlIG9uIHRoZSB3YXkuXG4gICAgc2Vzc2lvblR0bFNlY29uZHM6IG9wdGlvbnMuc2Vzc2lvblR0bFNlY29uZHMsXG4gICAgY29kZVR0bFNlY29uZHM6IG9wdGlvbnMuY29kZVR0bFNlY29uZHMsXG4gICAgc2Vzc2lvbkN1dG9mZjogb3B0aW9ucy5zZXNzaW9uQ3V0b2ZmLFxuICAgIHN0b3JhZ2U6IG9wdGlvbnMuc3RvcmFnZSxcbiAgICBzcWxpdGVQYXRoOiBvcHRpb25zLnNxbGl0ZVBhdGgsXG4gICAgZm9yd2FyZEhlYWRlcnM6IG9wdGlvbnMuZm9yd2FyZEhlYWRlcnMsXG4gICAgZ2F0ZVBhdGhzOiBvcHRpb25zLmdhdGVQYXRocyxcbiAgICBpbnNlY3VyZTogb3B0aW9ucy5pbnNlY3VyZSxcbiAgICBwdWJsaWNEb21haW46IG9wdGlvbnMucHVibGljRG9tYWluLFxuICAgIHB1YmxpY0RvbWFpbnM6IG9wdGlvbnMuZnJwUHVibGljRG9tYWluID8gW29wdGlvbnMuZnJwUHVibGljRG9tYWluXSA6IHVuZGVmaW5lZCxcbiAgfTtcbiAgY29uc3QgZ2F0ZSA9IHBsdWdpbi5yZXNvbHZlQXV0aEdhdGVDb25maWcoZ2F0ZUNvbmZpZyk7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IGludGVyY2VwdG9yLnJlc29sdmVUdW5uZWxUcmFuc3BvcnQob3B0aW9ucy50cmFuc3BvcnQpO1xuICByZXR1cm4ge1xuICAgIHB1YmxpY1BvcnQsXG4gICAgLi4uKGFwcFBvcnQgPiAwID8geyBhcHBQb3J0IH0gOiB7fSksXG4gICAgYmluZEhvc3RzOiBvcHRpb25zLmJpbmRIb3N0cyA/PyBbXSxcbiAgICB0cmFuc3BvcnQsXG4gICAgZ2F0ZUNvbmZpZyxcbiAgICBnYXRlLFxuICAgIHBvcnRyOiBwb3J0ci5yZXNvbHZlUG9ydHJDb25maWcoe1xuICAgICAgcHVibGljRG9tYWluOiBnYXRlLnB1YmxpY0RvbWFpbixcbiAgICAgIHN1YmRvbWFpbjogb3B0aW9ucy5zdWJkb21haW4sXG4gICAgICBwb3J0OiBwdWJsaWNQb3J0LFxuICAgIH0pLFxuICAgIGZycDogZnJwLnJlc29sdmVGcnBDb25maWcoe1xuICAgICAgcHVibGljRG9tYWluOiBvcHRpb25zLmZycFB1YmxpY0RvbWFpbixcbiAgICAgIHNlcnZlcjogb3B0aW9ucy5mcnBTZXJ2ZXIsXG4gICAgICBzZXJ2ZXJQb3J0OiBvcHRpb25zLmZycFNlcnZlclBvcnQsXG4gICAgICBwcm90b2NvbDogb3B0aW9ucy5mcnBQcm90b2NvbCxcbiAgICAgIHRva2VuOiBvcHRpb25zLmZycFRva2VuLFxuICAgICAgcHJveHlOYW1lOiBvcHRpb25zLmZycFByb3h5TmFtZSxcbiAgICAgIHBvcnQ6IHB1YmxpY1BvcnQsXG4gICAgfSksXG4gIH07XG59XG4iXX0=
|
|
@@ -31,6 +31,8 @@ export interface ProxyOptions {
|
|
|
31
31
|
gatePaths?: readonly string[];
|
|
32
32
|
/** Brand name for the hosted login page shown on a denied browser navigation. */
|
|
33
33
|
brandName?: string;
|
|
34
|
+
/** Prefix added before the humanized tunnel subdomain in new passkey names. */
|
|
35
|
+
passkeyNamePrefix?: string;
|
|
34
36
|
/**
|
|
35
37
|
* Addresses to listen on. Defaults to a single `0.0.0.0` (every interface),
|
|
36
38
|
* the portr/platform case. Pass specific interface IPs to expose the gate on
|
package/lib/src/tunnel/proxy.js
CHANGED
|
@@ -31,13 +31,14 @@ function sendJson(response, status, body, setCookie) {
|
|
|
31
31
|
/**
|
|
32
32
|
* Hand every Better Auth and compatibility route to the shared gate runtime.
|
|
33
33
|
*/
|
|
34
|
-
async function handleAuthRoute(request, response, path, gate, brandName) {
|
|
34
|
+
async function handleAuthRoute(request, response, path, gate, brandName, passkeyNamePrefix) {
|
|
35
35
|
if (!tunnelGate.isAuthPath(path))
|
|
36
36
|
return false;
|
|
37
37
|
if (tunnelGate.wantsHostedLogin(request)) {
|
|
38
38
|
response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
|
|
39
39
|
response.end(tunnelLoginPage.loginPageHtml({
|
|
40
40
|
brandName,
|
|
41
|
+
passkeyNamePrefix,
|
|
41
42
|
returnTo: tunnelGate.loginReturnTo(request),
|
|
42
43
|
}));
|
|
43
44
|
return true;
|
|
@@ -75,14 +76,18 @@ export async function startProxy(options) {
|
|
|
75
76
|
void (async () => {
|
|
76
77
|
const path = (request.url ?? "/").split("?")[0] ?? "/";
|
|
77
78
|
const brandName = options.brandName ?? "this app";
|
|
78
|
-
|
|
79
|
+
const passkeyNamePrefix = options.passkeyNamePrefix;
|
|
80
|
+
if (gate &&
|
|
81
|
+
(await handleAuthRoute(request, response, path, gate, brandName, passkeyNamePrefix))) {
|
|
79
82
|
return;
|
|
83
|
+
}
|
|
80
84
|
if ((await decide(request)) === "deny") {
|
|
81
85
|
// A denied browser navigation gets the hosted login page; anything else
|
|
82
86
|
// (an XHR, a /ws upgrade probe, a non-HTML fetch) gets the 401 JSON.
|
|
83
87
|
if (gate && tunnelGate.wantsLoginPage(request)) {
|
|
84
88
|
const html = tunnelLoginPage.loginPageHtml({
|
|
85
89
|
brandName,
|
|
90
|
+
passkeyNamePrefix,
|
|
86
91
|
returnTo: tunnelGate.requestReturnTo(request),
|
|
87
92
|
});
|
|
88
93
|
response.writeHead(401, { "content-type": "text/html; charset=utf-8" });
|
|
@@ -140,4 +145,4 @@ export async function startProxy(options) {
|
|
|
140
145
|
});
|
|
141
146
|
})));
|
|
142
147
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHVubmVsL3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQTZDLE1BQU0sV0FBVyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUNMLElBQUksSUFBSSxVQUFVLEVBQ2xCLE9BQU8sSUFBSSxhQUFhLEVBQ3hCLFNBQVMsSUFBSSxlQUFlLEdBRTdCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUEyQjFDLFNBQVMsUUFBUSxDQUNmLFFBQXdCLEVBQ3hCLE1BQWMsRUFDZCxJQUFhLEVBQ2IsU0FBa0I7SUFFbEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDekIsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2xELENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxlQUFlLENBQzVCLE9BQXdCLEVBQ3hCLFFBQXdCLEVBQ3hCLElBQVksRUFDWixJQUFpQixFQUNqQixTQUFpQjtJQUVqQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUMvQyxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FB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QztJQUNMLENBQUMsQ0FBQyxDQUNMLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSByZXZlcnNlIHByb3h5IHRoYXQgbWFrZXMgdGhlIHdyYXBwZXIgcGF0aCBwb3NzaWJsZS5cbiAqXG4gKiBUaGUgd3JhcHBlciBjbGFpbXMgdGhlIFBVQkxJQyBwb3J0IGFuZCB0aGUgd3JhcHBlZCBhcHAgcnVucyBhcyBhIGNoaWxkIHByb2Nlc3NcbiAqIG9uIGEgcHJpdmF0ZSBsb29wYmFjayBwb3J0LCBzbyAtIHVubGlrZSB0aGUgaW4tcHJvY2VzcyBwbHVnaW4gLSB0aGVyZSBpcyBub1xuICogbWlkZGxld2FyZSBjaGFpbiB0byBpbnNlcnQgdGhlIGdhdGUgaW50by4gVGhpcyBwcm94eSBpcyB0aGF0IGluc2VydGlvbiBwb2ludDogaXRcbiAqIGFuc3dlcnMgdGhlIGxvZ2luIHJvdXRlcyBpdHNlbGYsIGFwcGxpZXMgdGhlIGdhdGUgdG8gZXZlcnl0aGluZyBlbHNlLCBhbmRcbiAqIGZvcndhcmRzIHdoYXQgc3Vydml2ZXMgdG8gdGhlIGNoaWxkLlxuICpcbiAqIFRoZSBnYXRpbmcgREVDSVNJT04gaXMgbm90IHJlaW1wbGVtZW50ZWQgaGVyZS4gYEBkYngtdG9vbHMvdHVubmVsYCdzXG4gKiBgZ2F0ZS5nYXRlUmVxdWVzdGAgbWFrZXMgaXQgLSB0aGUgc2FtZSBmdW5jdGlvbiB0aGUgRXhwcmVzcyBtaWRkbGV3YXJlIGNhbGxzIC1cbiAqIGFuZCB0aGlzIG1vZHVsZSBvbmx5IGRpZmZlcnMgaW4gaG93IHRoZSBvdXRjb21lIGlzIHdyaXR0ZW46IGEgcHJveGllZCByZXF1ZXN0XG4gKiBpbnN0ZWFkIG9mIGBuZXh0KClgLCBhIGB3cml0ZUhlYWRgIGluc3RlYWQgb2YgYHJlcy5qc29uYC4gVGhhdCBpcyBkZWxpYmVyYXRlOlxuICogdHdvIGluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucyBvZiBcIndoaWNoIHJlcXVlc3RzIGFyZSBnYXRlZCBhbmQgd2hpY2ggaGVhZGVyc1xuICogYXJlIHN0cmlwcGVkXCIgaXMgdGhlIG9uZSB3YXkgdGhpcyBwYWNrYWdlIGNvdWxkIGJlY29tZSBhIHNlY3VyaXR5IGJ1Zy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyLCB0eXBlIEluY29taW5nTWVzc2FnZSwgdHlwZSBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gXCJub2RlOmh0dHBcIjtcbmltcG9ydCB0eXBlIHsgU29ja2V0IH0gZnJvbSBcIm5vZGU6bmV0XCI7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgZ2F0ZSBhcyB0dW5uZWxHYXRlLFxuICBoZWFkZXJzIGFzIHR1bm5lbEhlYWRlcnMsXG4gIGxvZ2luUGFnZSBhcyB0dW5uZWxMb2dpblBhZ2UsXG4gIHR5cGUgQXV0aEdhdGVBcGksXG59IGZyb20gXCJAZGJ4LXRvb2xzL3R1bm5lbFwiO1xuaW1wb3J0IFByb3h5TW9kdWxlIGZyb20gXCJodHRwLXByb3h5LTNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbDpwcm94eVwiKTtcblxudHlwZSBVcGdyYWRlU29ja2V0ID0gU29ja2V0ICYgeyBkZXN0cm95U29vbj86ICgpID0+IHZvaWQgfTtcblxuLyoqIExpc3RlbmVyLCB1cHN0cmVhbSBhcHBsaWNhdGlvbiwgYW5kIG9wdGlvbmFsIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzIGZvciB0aGUgd3JhcHBlciBwcm94eS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlPcHRpb25zIHtcbiAgLyoqIFRoZSBwb3J0IHRoaXMgcHJveHkgbGlzdGVucyBvbiAtIHRoZSBwb3J0IHBvcnRyIGFuZCB0aGUgcGxhdGZvcm0gcm91dGUgdG8uICovXG4gIHB1YmxpY1BvcnQ6IG51bWJlcjtcbiAgLyoqIFRoZSBwcml2YXRlIGxvb3BiYWNrIHBvcnQgdGhlIHdyYXBwZWQgYXBwIGxpc3RlbnMgb24uICovXG4gIGFwcFBvcnQ6IG51bWJlcjtcbiAgLyoqIFRoZSBnYXRlIGhhbmRsZXJzLiBPbWl0dGVkIChhbiBgLS1pbnNlY3VyZWAgcnVuKSBmb3J3YXJkcyBldmVyeXRoaW5nLiAqL1xuICBnYXRlPzogQXV0aEdhdGVBcGk7XG4gIC8qKiBFeHRyYSBgeC1gIGhlYWRlcnMgdHVubmVsIHRyYWZmaWMgbWF5IGZvcndhcmQuICovXG4gIGZvcndhcmRIZWFkZXJzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBQYXRoIHByZWZpeGVzIHRvIGdhdGUgYmV5b25kIGAvYXBpL2AgKGUuZy4gYC93c2AgZm9yIGEgV2ViU29ja2V0IGFwcCkuICovXG4gIGdhdGVQYXRocz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKiogQnJhbmQgbmFtZSBmb3IgdGhlIGhvc3RlZCBsb2dpbiBwYWdlIHNob3duIG9uIGEgZGVuaWVkIGJyb3dzZXIgbmF2aWdhdGlvbi4gKi9cbiAgYnJhbmROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkcmVzc2VzIHRvIGxpc3RlbiBvbi4gRGVmYXVsdHMgdG8gYSBzaW5nbGUgYDAuMC4wLjBgIChldmVyeSBpbnRlcmZhY2UpLFxuICAgKiB0aGUgcG9ydHIvcGxhdGZvcm0gY2FzZS4gUGFzcyBzcGVjaWZpYyBpbnRlcmZhY2UgSVBzIHRvIGV4cG9zZSB0aGUgZ2F0ZSBvblxuICAgKiBvbmx5IHRob3NlIC0gZS5nLiBhbiBvdmVybGF5L0xBTiBhZGRyZXNzIHdoaWxlIGxvb3BiYWNrIHJlYWNoZXMgdGhlIHVwc3RyZWFtXG4gICAqIGRpcmVjdGx5IGFuZCB1bmdhdGVkLlxuICAgKi9cbiAgYmluZEhvc3RzPzogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIHNlbmRKc29uKFxuICByZXNwb25zZTogU2VydmVyUmVzcG9uc2UsXG4gIHN0YXR1czogbnVtYmVyLFxuICBib2R5OiB1bmtub3duLFxuICBzZXRDb29raWU/OiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgcmVzcG9uc2Uud3JpdGVIZWFkKHN0YXR1cywge1xuICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIC4uLihzZXRDb29raWUgPyB7IFwic2V0LWNvb2tpZVwiOiBzZXRDb29raWUgfSA6IHt9KSxcbiAgfSk7XG4gIHJlc3BvbnNlLmVuZChKU09OLnN0cmluZ2lmeShib2R5KSk7XG59XG5cbi8qKlxuICogSGFuZCBldmVyeSBCZXR0ZXIgQXV0aCBhbmQgY29tcGF0aWJpbGl0eSByb3V0ZSB0byB0aGUgc2hhcmVkIGdhdGUgcnVudGltZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXV0aFJvdXRlKFxuICByZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsXG4gIHJlc3BvbnNlOiBTZXJ2ZXJSZXNwb25zZSxcbiAgcGF0aDogc3RyaW5nLFxuICBnYXRlOiBBdXRoR2F0ZUFwaSxcbiAgYnJhbmROYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgaWYgKCF0dW5uZWxHYXRlLmlzQXV0aFBhdGgocGF0aCkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR1bm5lbEdhdGUud2FudHNIb3N0ZWRMb2dpbihyZXF1ZXN0KSkge1xuICAgIHJlc3BvbnNlLndyaXRlSGVhZCgyMDAsIHsgXCJjb250ZW50LXR5cGVcIjogXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiB9KTtcbiAgICByZXNwb25zZS5lbmQoXG4gICAgICB0dW5uZWxMb2dpblBhZ2UubG9naW5QYWdlSHRtbCh7XG4gICAgICAgIGJyYW5kTmFtZSxcbiAgICAgICAgcmV0dXJuVG86IHR1bm5lbEdhdGUubG9naW5SZXR1cm5UbyhyZXF1ZXN0KSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2F0ZS5oYW5kbGVyKHR1bm5lbEdhdGUud2ViUmVxdWVzdChyZXF1ZXN0KSk7XG4gIGF3YWl0IHR1bm5lbEdhdGUuc2VuZFdlYlJlc3BvbnNlKHJlc3BvbnNlLCByZXN1bHQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBTdGFydCB0aGUgcHJveHkgYW5kIHJlc29sdmUgb25jZSBpdCBpcyBsaXN0ZW5pbmcuXG4gKlxuICogYHB1YmxpY0RvbWFpbmAgaXMgaW50ZW50aW9uYWxseSBOT1QgcGFzc2VkIHRvIGBnYXRlUmVxdWVzdGA6IG9uIHRoaXMgcGF0aCBldmVyeVxuICogcmVxdWVzdCBhcnJpdmVkIG9uIHRoZSBwdWJsaWMgcG9ydCwgc28gaXQgSVMgdHVubmVsIHRyYWZmaWMgYnkgY29uc3RydWN0aW9uIC1cbiAqIHdoZXJlYXMgdGhlIGluLXByb2Nlc3MgZ2F0ZSBzaGFyZXMgYSBwb3J0IHdpdGggdGhlIHBsYXRmb3JtIGZyb250IGRvb3IgYW5kIGhhc1xuICogdG8gdGVsbCB0aGVtIGFwYXJ0IGJ5IGBIb3N0YC4gUGFzc2luZyB0aGUgcmVxdWVzdCdzIG93biBob3N0IGtlZXBzIHRoZSBzaGFyZWRcbiAqIGRlY2lzaW9uIGZ1bmN0aW9uJ3MgY29udHJhY3Qgc2F0aXNmaWVkIHdpdGhvdXQgd2Vha2VuaW5nIGl0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRQcm94eShvcHRpb25zOiBQcm94eU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJveHkgPSBQcm94eU1vZHVsZS5jcmVhdGVQcm94eVNlcnZlcih7XG4gICAgdGFyZ2V0OiBgaHR0cDovLzEyNy4wLjAuMToke29wdGlvbnMuYXBwUG9ydH1gLFxuICAgIHdzOiB0cnVlLFxuICAgIHhmd2Q6IHRydWUsXG4gIH0pO1xuICBjb25zdCBoZWFkZXJQb2xpY3kgPSB0dW5uZWxIZWFkZXJzLnRvSGVhZGVyUG9saWN5KG9wdGlvbnMuZm9yd2FyZEhlYWRlcnMpO1xuICBjb25zdCBnYXRlID0gb3B0aW9ucy5nYXRlO1xuXG4gIGNvbnN0IGRlY2lkZSA9IChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UpOiBQcm9taXNlPHR1bm5lbEdhdGUuR2F0ZUFjdGlvbj4gPT5cbiAgICBnYXRlXG4gICAgICA/IHR1bm5lbEdhdGUuZ2F0ZVJlcXVlc3QocmVxdWVzdCwge1xuICAgICAgICAgIGdhdGUsXG4gICAgICAgICAgcHVibGljRG9tYWluOiAocmVxdWVzdC5oZWFkZXJzLmhvc3QgPz8gXCJcIikuc3BsaXQoXCI6XCIpWzBdIHx8IFwibG9jYWxob3N0XCIsXG4gICAgICAgICAgaGVhZGVyUG9saWN5LFxuICAgICAgICAgIGdhdGVQYXRoczogb3B0aW9ucy5nYXRlUGF0aHMsXG4gICAgICAgIH0pXG4gICAgICA6IFByb21pc2UucmVzb2x2ZTx0dW5uZWxHYXRlLkdhdGVBY3Rpb24+KFwicGFzc1wiKTtcblxuICBjb25zdCBvblJlcXVlc3QgPSAocmVxdWVzdDogSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogU2VydmVyUmVzcG9uc2UpOiB2b2lkID0+IHtcbiAgICB2b2lkIChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwYXRoID0gKHJlcXVlc3QudXJsID8/IFwiL1wiKS5zcGxpdChcIj9cIilbMF0gPz8gXCIvXCI7XG4gICAgICBjb25zdCBicmFuZE5hbWUgPSBvcHRpb25zLmJyYW5kTmFtZSA/PyBcInRoaXMgYXBwXCI7XG4gICAgICBpZiAoZ2F0ZSAmJiAoYXdhaXQgaGFuZGxlQXV0aFJvdXRlKHJlcXVlc3QsIHJlc3BvbnNlLCBwYXRoLCBnYXRlLCBicmFuZE5hbWUpKSkgcmV0dXJuO1xuICAgICAgaWYgKChhd2FpdCBkZWNpZGUocmVxdWVzdCkpID09PSBcImRlbnlcIikge1xuICAgICAgICAvLyBBIGRlbmllZCBicm93c2VyIG5hdmlnYXRpb24gZ2V0cyB0aGUgaG9zdGVkIGxvZ2luIHBhZ2U7IGFueXRoaW5nIGVsc2VcbiAgICAgICAgLy8gKGFuIFhIUiwgYSAvd3MgdXBncmFkZSBwcm9iZSwgYSBub24tSFRNTCBmZXRjaCkgZ2V0cyB0aGUgNDAxIEpTT04uXG4gICAgICAgIGlmIChnYXRlICYmIHR1bm5lbEdhdGUud2FudHNMb2dpblBhZ2UocmVxdWVzdCkpIHtcbiAgICAgICAgICBjb25zdCBodG1sID0gdHVubmVsTG9naW5QYWdlLmxvZ2luUGFnZUh0bWwoe1xuICAgICAgICAgICAgYnJhbmROYW1lLFxuICAgICAgICAgICAgcmV0dXJuVG86IHR1bm5lbEdhdGUucmVxdWVzdFJldHVyblRvKHJlcXVlc3QpLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg0MDEsIHsgXCJjb250ZW50LXR5cGVcIjogXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiB9KTtcbiAgICAgICAgICByZXNwb25zZS5lbmQoaHRtbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VuZEpzb24ocmVzcG9uc2UsIDQwMSwgdHVubmVsR2F0ZS51bmF1dGhvcml6ZWRCb2R5KHJlcXVlc3QpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwcm94eS53ZWIocmVxdWVzdCwgcmVzcG9uc2UpO1xuICAgIH0pKCkuY2F0Y2goKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJwcm94eSByZXF1ZXN0IGZhaWxlZFwiLCB7IGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoZXJyb3IpIH0pO1xuICAgICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzU2VudCkgc2VuZEpzb24ocmVzcG9uc2UsIDUwMiwgeyBlcnJvcjogXCJiYWQgZ2F0ZXdheVwiIH0pO1xuICAgICAgZWxzZSByZXNwb25zZS5lbmQoKTtcbiAgICB9KTtcbiAgfTtcblxuICAvLyBBIHdlYnNvY2tldCB1cGdyYWRlIGNhbm5vdCBiZSBhbnN3ZXJlZCB3aXRoIGEgNDAxIGJvZHksIHNvIGEgZGVuaWVkIG9uZSBpc1xuICAvLyBkZXN0cm95ZWQgLSB0aGUgY2xpZW50IHNlZXMgdGhlIGhhbmRzaGFrZSBmYWlsLCB3aGljaCBpcyB3aGF0IGEgYnJvd3NlcidzXG4gIC8vIFdlYlNvY2tldCBlcnJvciBoYW5kbGVyIGV4cGVjdHMuXG4gIGNvbnN0IG9uVXBncmFkZSA9IChyZXF1ZXN0OiBJbmNvbWluZ01lc3NhZ2UsIHNvY2tldDogU29ja2V0LCBoZWFkOiBCdWZmZXIpOiB2b2lkID0+IHtcbiAgICBjb25zdCB1cGdyYWRlU29ja2V0ID0gc29ja2V0IGFzIFVwZ3JhZGVTb2NrZXQ7XG4gICAgdXBncmFkZVNvY2tldC5kZXN0cm95U29vbiA/Pz0gKCkgPT4gdXBncmFkZVNvY2tldC5lbmQoKTtcbiAgICBjb25zdCBwYXRoID0gKHJlcXVlc3QudXJsID8/IFwiL1wiKS5zcGxpdChcIj9cIiwgMSlbMF0gPz8gXCIvXCI7XG4gICAgaWYgKHR1bm5lbEdhdGUuaXNBdXRoUGF0aChwYXRoKSkge1xuICAgICAgdXBncmFkZVNvY2tldC5kZXN0cm95KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZvaWQgZGVjaWRlKHJlcXVlc3QpXG4gICAgICAudGhlbigoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24gPT09IFwiZGVueVwiKSB1cGdyYWRlU29ja2V0LmRlc3Ryb3koKTtcbiAgICAgICAgZWxzZSBwcm94eS53cyhyZXF1ZXN0LCB1cGdyYWRlU29ja2V0LCBoZWFkKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4gdXBncmFkZVNvY2tldC5kZXN0cm95KCkpO1xuICB9O1xuXG4gIC8vIE9uZSBuZXQuU2VydmVyIGJpbmRzIG9uZSBhZGRyZXNzLCBzbyBsaXN0ZW4gZWFjaCBob3N0IG9uIGl0cyBvd24gc2VydmVyIHRoYXRcbiAgLy8gc2hhcmVzIHRoZSBzYW1lIGhhbmRsZXJzLiBCaW5kaW5nIHNwZWNpZmljIGludGVyZmFjZSBJUHMgKHJhdGhlciB0aGFuIHRoZVxuICAvLyBkZWZhdWx0IDAuMC4wLjApIGlzIHdoYXQgbGV0cyB0aGUgZ2F0ZSBmcm9udCBhbiBvdmVybGF5L0xBTiBhZGRyZXNzIHdoaWxlXG4gIC8vIGxvb3BiYWNrIHJlYWNoZXMgdGhlIHVwc3RyZWFtIHVuZ2F0ZWQuXG4gIGNvbnN0IGhvc3RzID0gb3B0aW9ucy5iaW5kSG9zdHM/Lmxlbmd0aCA/IG9wdGlvbnMuYmluZEhvc3RzIDogW1wiMC4wLjAuMFwiXTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaG9zdHMubWFwKFxuICAgICAgKGhvc3QpID0+XG4gICAgICAgIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VydmVyID0gY3JlYXRlU2VydmVyKG9uUmVxdWVzdCk7XG4gICAgICAgICAgc2VydmVyLm9uKFwidXBncmFkZVwiLCBvblVwZ3JhZGUpO1xuICAgICAgICAgIHNlcnZlci5saXN0ZW4ob3B0aW9ucy5wdWJsaWNQb3J0LCBob3N0LCAoKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcInByb3h5IGxpc3RlbmluZ1wiLCB7XG4gICAgICAgICAgICAgIGhvc3QsXG4gICAgICAgICAgICAgIHB1YmxpY1BvcnQ6IG9wdGlvbnMucHVibGljUG9ydCxcbiAgICAgICAgICAgICAgYXBwUG9ydDogb3B0aW9ucy5hcHBQb3J0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICksXG4gICk7XG59XG4iXX0=
|
|
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==
|
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/appkit/index.ts","../src/auth/cli.ts","../src/auth/index.ts","../src/auth/options.ts","../src/genie-code/cli.ts","../src/genie-code/config.ts","../src/genie-code/index.ts","../src/genie-code/install.ts","../src/genie-code/options.ts","../src/genie-code/runner.ts","../src/genie-code/runtime.ts","../src/graphiti/cli.ts","../src/graphiti/index.ts","../src/graphiti/options.ts","../src/lakebase-proxy/cancellation.ts","../src/lakebase-proxy/cli.ts","../src/lakebase-proxy/index.ts","../src/lakebase-proxy/options.ts","../src/lakebase-proxy/protocol.ts","../src/lakebase-proxy/proxy.ts","../src/model-gateway/cli.ts","../src/model-gateway/index.ts","../src/model-gateway/server.ts","../src/tunnel/app.ts","../src/tunnel/cli.ts","../src/tunnel/index.ts","../src/tunnel/options.ts","../src/tunnel/proxy.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"}
|
|
1
|
+
{"root":["../src/bootstrap.ts","../src/bun.ts","../src/cli.ts","../src/root.ts","../src/appkit/cli.ts","../src/appkit/env-export.ts","../src/appkit/index.ts","../src/auth/cli.ts","../src/auth/index.ts","../src/auth/options.ts","../src/brand/cli.ts","../src/brand/export.ts","../src/brand/index.ts","../src/brand/options.ts","../src/brand/run.ts","../src/genie-code/cli.ts","../src/genie-code/config.ts","../src/genie-code/index.ts","../src/genie-code/install.ts","../src/genie-code/options.ts","../src/genie-code/runner.ts","../src/genie-code/runtime.ts","../src/graphiti/cli.ts","../src/graphiti/index.ts","../src/graphiti/options.ts","../src/lakebase-proxy/cancellation.ts","../src/lakebase-proxy/cli.ts","../src/lakebase-proxy/index.ts","../src/lakebase-proxy/options.ts","../src/lakebase-proxy/protocol.ts","../src/lakebase-proxy/proxy.ts","../src/model-gateway/cli.ts","../src/model-gateway/index.ts","../src/model-gateway/server.ts","../src/tunnel/app.ts","../src/tunnel/cli.ts","../src/tunnel/index.ts","../src/tunnel/options.ts","../src/tunnel/proxy.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"}
|