@dbx-tools/cli 0.9.5 → 0.9.6
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 +0 -1
- package/index.ts +1 -2
- package/lib/index.d.ts +1 -2
- package/lib/index.js +2 -3
- package/lib/src/bootstrap.js +8 -6
- package/lib/src/bun.js +5 -5
- package/lib/src/cli.js +6 -6
- package/lib/src/root.js +8 -27
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -15
- package/src/bootstrap.ts +7 -5
- package/src/bun.ts +5 -5
- package/src/cli.ts +9 -9
- package/src/root.ts +6 -25
- package/lib/src/rust-binary.d.ts +0 -6
- package/lib/src/rust-binary.js +0 -7
- package/src/rust-binary.ts +0 -6
package/README.md
CHANGED
|
@@ -141,7 +141,6 @@ should run the `dbx` bin.
|
|
|
141
141
|
- `bootstrap` - empty-workspace bootstrap, toolchain seeding, and the initial synth.
|
|
142
142
|
- `root` - workspace-root detection and bootstrap/install checks.
|
|
143
143
|
- `bun` - bun discovery, workspace install, registry forcing, and projen delegation.
|
|
144
|
-
- `rust-binary` - compatibility re-export of `@dbx-tools/rust-binary`.
|
|
145
144
|
|
|
146
145
|
The reusable project classes and generators live in
|
|
147
146
|
[`@dbx-tools/projen`](../../../../projen).
|
package/index.ts
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.6";
|
|
7
7
|
export * as bootstrap from "./src/bootstrap.ts";
|
|
8
8
|
export * as bun from "./src/bun.ts";
|
|
9
9
|
export * as cli from "./src/cli.ts";
|
|
10
10
|
export * as root from "./src/root.ts";
|
|
11
|
-
export * as rustBinary from "./src/rust-binary.ts";
|
|
12
11
|
export { resolveBunArgv } from "./src/bun.ts";
|
|
13
12
|
export { workspaceRoot } from "./src/root.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.6";
|
|
3
3
|
export * as bootstrap from "./src/bootstrap.ts";
|
|
4
4
|
export * as bun from "./src/bun.ts";
|
|
5
5
|
export * as cli from "./src/cli.ts";
|
|
6
6
|
export * as root from "./src/root.ts";
|
|
7
|
-
export * as rustBinary from "./src/rust-binary.ts";
|
|
8
7
|
export { resolveBunArgv } from "./src/bun.ts";
|
|
9
8
|
export { workspaceRoot } from "./src/root.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.6";
|
|
6
6
|
export * as bootstrap from "./src/bootstrap.js";
|
|
7
7
|
export * as bun from "./src/bun.js";
|
|
8
8
|
export * as cli from "./src/cli.js";
|
|
9
9
|
export * as root from "./src/root.js";
|
|
10
|
-
export * as rustBinary from "./src/rust-binary.js";
|
|
11
10
|
export { resolveBunArgv } from "./src/bun.js";
|
|
12
11
|
export { workspaceRoot } from "./src/root.js";
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9jbGlcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS42XCI7XG5leHBvcnQgKiBhcyBib290c3RyYXAgZnJvbSBcIi4vc3JjL2Jvb3RzdHJhcC50c1wiO1xuZXhwb3J0ICogYXMgYnVuIGZyb20gXCIuL3NyYy9idW4udHNcIjtcbmV4cG9ydCAqIGFzIGNsaSBmcm9tIFwiLi9zcmMvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyByb290IGZyb20gXCIuL3NyYy9yb290LnRzXCI7XG5leHBvcnQgeyByZXNvbHZlQnVuQXJndiB9IGZyb20gXCIuL3NyYy9idW4udHNcIjtcbmV4cG9ydCB7IHdvcmtzcGFjZVJvb3QgfSBmcm9tIFwiLi9zcmMvcm9vdC50c1wiO1xuIl19
|
package/lib/src/bootstrap.js
CHANGED
|
@@ -7,7 +7,7 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
7
7
|
import { createRequire } from "node:module";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { intro, outro } from "@clack/prompts";
|
|
10
|
-
import { exec,
|
|
10
|
+
import { exec, projectUtils } from "@dbx-tools/core";
|
|
11
11
|
import { json, log } from "@dbx-tools/shared-core";
|
|
12
12
|
import { childEnv, resolveBunArgv, runBun } from "./bun.js";
|
|
13
13
|
import { rootLabel } from "./root.js";
|
|
@@ -88,10 +88,10 @@ export function ensureEngineCurrent(root) {
|
|
|
88
88
|
// flat, but every engine ever published exports the namespace, and this template
|
|
89
89
|
// is resolved against `@latest` - a flat import dies on an older one with
|
|
90
90
|
// "does not provide an export named 'DBXToolsNodeProject'".
|
|
91
|
-
const PROJENRC_TEMPLATE = `import { project
|
|
91
|
+
const PROJENRC_TEMPLATE = `import { project } from "@dbx-tools/projen";
|
|
92
92
|
|
|
93
|
-
const
|
|
94
|
-
|
|
93
|
+
const rootProject = new project.DBXToolsNodeProject();
|
|
94
|
+
rootProject.synth();
|
|
95
95
|
`;
|
|
96
96
|
/**
|
|
97
97
|
* Turn a folder into a functioning dbx-tools workspace: `bun init`, seed the
|
|
@@ -165,7 +165,9 @@ export function seedToolchain(root, projenSpecifier = defaultProjenSpecifier())
|
|
|
165
165
|
* and never overwrites an existing `.npmrc` (the developer's own wins).
|
|
166
166
|
*/
|
|
167
167
|
function seedRegistry(root) {
|
|
168
|
-
const registry =
|
|
168
|
+
const registry = projectUtils
|
|
169
|
+
.npmRegistry(null, { overrideOnly: true, envVars: true })
|
|
170
|
+
?.toString();
|
|
169
171
|
if (!registry)
|
|
170
172
|
return;
|
|
171
173
|
const npmrc = join(root, ".npmrc");
|
|
@@ -210,4 +212,4 @@ export function runInitialSynth(root) {
|
|
|
210
212
|
check: true,
|
|
211
213
|
});
|
|
212
214
|
}
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFakQsaUZBQWlGO0FBQ2pGLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBRXJDLHNGQUFzRjtBQUN0RixNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBRTdEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCO0lBQzdCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO0FBQy9FLENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsU0FBUyxVQUFVO0lBQ2pCLElBQUksQ0FBQztRQUNILDRFQUE0RTtRQUM1RSx3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QUFhLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsZ0ZBQWdGO0lBQ2xGLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVk7SUFDMUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQzlDLDRFQUE0RTtJQUM1RSxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRTtRQUNuRCxHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM5QyxLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvb3RzdHJhcCBhIGJyYW5kLW5ldyBmb2xkZXIgaW50byBhIHdvcmtpbmcgZGJ4LXRvb2xzIHdvcmtzcGFjZSBiZWZvcmUgcHJvamVuIHJ1bnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGludHJvLCBvdXRybyB9IGZyb20gXCJAY2xhY2svcHJvbXB0c1wiO1xuaW1wb3J0IHsgZXhlYywgcHJvamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IGpzb24sIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBjaGlsZEVudiwgcmVzb2x2ZUJ1bkFyZ3YsIHJ1bkJ1biB9IGZyb20gXCIuL2J1bi50c1wiO1xuaW1wb3J0IHsgcm9vdExhYmVsIH0gZnJvbSBcIi4vcm9vdC50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiZGJ4LXRvb2xzOmJvb3RzdHJhcFwiKTtcblxuLyoqIFB1Ymxpc2hlZCBwYWNrYWdlIG5hbWUgdXNlZCBmb3IgTm9kZSdzIHNlbGYtcmVmZXJlbmNlIG1hbmlmZXN0IHJlc29sdXRpb24uICovXG5jb25zdCBDTElfUEFDS0FHRSA9IFwiQGRieC10b29scy9jbGlcIjtcblxuLyoqIEZhbGxiYWNrIHdoZW4gdGhpcyBDTEkncyBvd24gdmVyc2lvbiBpc24ndCBhIHJlYWwgcmVsZWFzZSAoYW4gaW4tcmVwbyBgMC4wLjBgKS4gKi9cbmNvbnN0IEZBTExCQUNLX1BST0pFTl9TUEVDSUZJRVIgPSBcIkBkYngtdG9vbHMvcHJvamVuQGxhdGVzdFwiO1xuXG4vKipcbiAqIEluc3RhbGwgdGhlIGVuZ2luZSBhdCBUSElTIENMSSdzIG93biB2ZXJzaW9uLiBUaGUgdHdvIGFyZSByZWxlYXNlZCB0b2dldGhlciBieVxuICogdGhlIHJvb3QgYGJ1bXBgLCBzbyB0aGUgbWF0Y2hpbmcgZW5naW5lIGFsd2F5cyBleGlzdHMgb24gdGhlIHJlZ2lzdHJ5LlxuICpcbiAqIE5vdCBgQGxhdGVzdGAsIGFuZCBub3QgYSBiYXJlIGBAZGJ4LXRvb2xzL3Byb2plbmAuIEEgYmFyZSBzcGVjaWZpZXIgY2FuIGxhbmQgb25cbiAqIGEgc3RyYXkgYDAuMC4wYCwgd2hvc2UgYF4wLjAuMGAgY2FyZXQgdGhlbiByZWFjaGVzIG5vIHJlYWwgcmVsZWFzZS4gQW4gZXhwbGljaXRcbiAqIHJhbmdlIHBpbm5lZCB0byB0aGlzIENMSSdzIG93biB2ZXJzaW9uIGFkbWl0cyBvbmx5IHRoZSBtYXRjaGluZyBlbmdpbmUsIHNvIHRoZVxuICogQ0xJIGFuZCB0aGUgZW5naW5lIGl0IGRyaXZlcyBuZXZlciBkcmlmdCBhY3Jvc3MgYSByZWxlYXNlICh0aGV5IGFyZSBjdXRcbiAqIHRvZ2V0aGVyIGJ5IHRoZSByb290IGBidW1wYCkuXG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKTogc3RyaW5nIHtcbiAgY29uc3QgdmVyc2lvbiA9IG93blZlcnNpb24oKTtcbiAgcmV0dXJuIHZlcnNpb24gPyBgQGRieC10b29scy9wcm9qZW5AXiR7dmVyc2lvbn1gIDogRkFMTEJBQ0tfUFJPSkVOX1NQRUNJRklFUjtcbn1cblxuLyoqIFRoaXMgQ0xJJ3Mgb3duIHJlbGVhc2VkIHZlcnNpb24sIG9yIGB1bmRlZmluZWRgIGZvciBhbiBpbi1yZXBvIGAwLjAuMGAgYnVpbGQuICovXG5mdW5jdGlvbiBvd25WZXJzaW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgLy8gUmVzb2x2ZSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgZXhwb3J0ZWQgYC4vcGFja2FnZS5qc29uYCwgd2hpY2ggd29ya3MgZnJvbVxuICAgIC8vIGJvdGggc291cmNlIChgc3JjL2Jvb3RzdHJhcC50c2ApIGFuZCBwdWJsaXNoZWQgb3V0cHV0XG4gICAgLy8gKGBsaWIvc3JjL2Jvb3RzdHJhcC5qc2ApLiBBIHJlbGF0aXZlIFVSTCBpcyBvbmUgbGV2ZWwgZnJvbSB0aGUgbWFuaWZlc3RcbiAgICAvLyBpbiBzb3VyY2UgYnV0IHR3byBsZXZlbHMgYXdheSBhZnRlciBjb21waWxhdGlvbiBhbmQgc2lsZW50bHkgZmVsbCBiYWNrIHRvXG4gICAgLy8gYEBsYXRlc3RgIGluIGV2ZXJ5IGluc3RhbGxlZCBDTEkuXG4gICAgY29uc3QgbWFuaWZlc3RQYXRoID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpLnJlc29sdmUoYCR7Q0xJX1BBQ0tBR0V9L3BhY2thZ2UuanNvbmApO1xuICAgIGNvbnN0IHZlcnNpb24gPSBqc29uLnBhcnNlUmVjb3JkKHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsIFwidXRmOFwiKSk/LnZlcnNpb247XG4gICAgcmV0dXJuIHR5cGVvZiB2ZXJzaW9uID09PSBcInN0cmluZ1wiICYmIHZlcnNpb24gIT09IFwiMC4wLjBcIiA/IHZlcnNpb24gOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqIENvbXBhcmUgYHgueS56YCB0cmlwbGVzOyByZXR1cm5zIDwwLCAwLCBvciA+MC4gTWlzc2luZyBwYXJ0cyBjb3VudCBhcyAwLiAqL1xuZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKGE6IHN0cmluZywgYjogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgcGFydHMgPSAodjogc3RyaW5nKSA9PiB2LnNwbGl0KFwiLlwiKS5tYXAoKHApID0+IE51bWJlci5wYXJzZUludChwLCAxMCkgfHwgMCk7XG4gIGNvbnN0IFt4LCB5XSA9IFtwYXJ0cyhhKSwgcGFydHMoYildO1xuICByZXR1cm4geFswXSAtIHlbMF0gfHwgeFsxXSAtIHlbMV0gfHwgeFsyXSAtIHlbMl07XG59XG5cbi8qKiBWZXJzaW9uIG9mIHRoZSBlbmdpbmUgY3VycmVudGx5IGluc3RhbGxlZCBhdCBgcm9vdGAsIGlmIGFueS4gKi9cbmZ1bmN0aW9uIGluc3RhbGxlZEVuZ2luZVZlcnNpb24ocm9vdDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGpvaW4ocm9vdCwgXCJub2RlX21vZHVsZXNcIiwgXCJAZGJ4LXRvb2xzXCIsIFwicHJvamVuXCIsIFwicGFja2FnZS5qc29uXCIpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBqc29uLnBhcnNlUmVjb3JkKHJlYWRGaWxlU3luYyhtYW5pZmVzdCwgXCJ1dGY4XCIpKT8udmVyc2lvbjtcbiAgICByZXR1cm4gdHlwZW9mIHZlcnNpb24gPT09IFwic3RyaW5nXCIgPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogVXBncmFkZSBhbiBlc3RhYmxpc2hlZCB3b3Jrc3BhY2Ugd2hvc2UgaW5zdGFsbGVkIGVuZ2luZSBwcmVkYXRlcyB0aGlzIENMSS5cbiAqXG4gKiBCb290c3RyYXBwaW5nIHBpbnMgdGhlIGVuZ2luZSBvbmNlLCBzbyB3aXRob3V0IHRoaXMgYSB3b3Jrc3BhY2UgY3JlYXRlZCBtb250aHMgYWdvXG4gKiB3b3VsZCBrZWVwIHJlc29sdmluZyBpdHMgb3JpZ2luYWwgZW5naW5lIG5vIG1hdHRlciBob3cgY3VycmVudCB0aGUgQ0xJIGludm9raW5nIGl0XG4gKiBpcywgYW5kIHdvdWxkIGZhaWwgaW5zaWRlIFRIQVQgZW5naW5lJ3MgY29kZSAoYHN5bmMgLS13YXRjaGAgZHlpbmcgb24gYVxuICogYGNvbmN1cnJlbnRseWAgaXQgbmV2ZXIgZGVjbGFyZWQpLiBUaGUgdHdvIGFyZSByZWxlYXNlZCBpbiBsb2Nrc3RlcCwgc28gdGhpcyBDTEknc1xuICogdmVyc2lvbiBpcyBleGFjdGx5IHRoZSBlbmdpbmUgaXQgZXhwZWN0cy5cbiAqXG4gKiBPbmx5IGV2ZXIgbW92ZXMgRk9SV0FSRDogYW4gZW5naW5lIGF0IG9yIGFoZWFkIG9mIHRoaXMgQ0xJIGlzIGxlZnQgYWxvbmUsIHNvXG4gKiBhbiBvbGRlciBDTEkgY2Fubm90IGRvd25ncmFkZSBhIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUVuZ2luZUN1cnJlbnQocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGV4cGVjdGVkID0gb3duVmVyc2lvbigpO1xuICBpZiAoIWV4cGVjdGVkKSByZXR1cm47XG4gIGNvbnN0IGluc3RhbGxlZCA9IGluc3RhbGxlZEVuZ2luZVZlcnNpb24ocm9vdCk7XG4gIGlmIChpbnN0YWxsZWQgJiYgY29tcGFyZVZlcnNpb25zKGluc3RhbGxlZCwgZXhwZWN0ZWQpID49IDApIHJldHVybjtcbiAgcnVuQnVuKFtcImFkZFwiLCBcIi1EXCIsIGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKV0sIHJvb3QpO1xufVxuXG4vLyBSZWFjaCB0aGUgY2xhc3MgdGhyb3VnaCBpdHMgbW9kdWxlIE5BTUVTUEFDRS4gQ3VycmVudCBlbmdpbmVzIGFsc28gaG9pc3QgaXRcbi8vIGZsYXQsIGJ1dCBldmVyeSBlbmdpbmUgZXZlciBwdWJsaXNoZWQgZXhwb3J0cyB0aGUgbmFtZXNwYWNlLCBhbmQgdGhpcyB0ZW1wbGF0ZVxuLy8gaXMgcmVzb2x2ZWQgYWdhaW5zdCBgQGxhdGVzdGAgLSBhIGZsYXQgaW1wb3J0IGRpZXMgb24gYW4gb2xkZXIgb25lIHdpdGhcbi8vIFwiZG9lcyBub3QgcHJvdmlkZSBhbiBleHBvcnQgbmFtZWQgJ0RCWFRvb2xzTm9kZVByb2plY3QnXCIuXG5jb25zdCBQUk9KRU5SQ19URU1QTEFURSA9IGBpbXBvcnQgeyBwcm9qZWN0IGFzIHByb2plblByb2plY3QgfSBmcm9tIFwiQGRieC10b29scy9wcm9qZW5cIjtcblxuY29uc3QgcHJvamVjdCA9IG5ldyBwcm9qZW5Qcm9qZWN0LkRCWFRvb2xzTm9kZVByb2plY3QoKTtcbnByb2plY3Quc3ludGgoKTtcbmA7XG5cbi8qKlxuICogVHVybiBhIGZvbGRlciBpbnRvIGEgZnVuY3Rpb25pbmcgZGJ4LXRvb2xzIHdvcmtzcGFjZTogYGJ1biBpbml0YCwgc2VlZCB0aGVcbiAqIGBwYWNrYWdlLmpzb25gIHdvcmtzcGFjZSBmaWVsZHMgKGJ1biByZWFkcyBgd29ya3NwYWNlc2AvYHRydXN0ZWREZXBlbmRlbmNpZXNgXG4gKiBmcm9tIHRoZSBtYW5pZmVzdCksIGFkZCBgcHJvamVuYC9gdHlwZXNjcmlwdGAgKyB0aGUgZW5naW5lIHBhY2thZ2UsIHdyaXRlIGFcbiAqIG1pbmltYWwgYC5wcm9qZW5yYy50c2AsIHN5bnRoIG9uY2UgKHdpdGggYFBST0pFTl9ESVNBQkxFX1BPU1RgKSwgdGhlbiBpbnN0YWxsLlxuICogRG9lcyBub3QgcnVuIGJhcnJlbHMgLSBydW4gYGJ1biBydW4gYmFycmVsc2Agb3IgYSBmdWxsIHByb2plbiBzeW50aCBwb3N0LWluc3RhbGxcbiAqIHRvIGdlbmVyYXRlIHBhY2thZ2UgYmFycmVscy5cbiAqXG4gKiBFdmVyeSBzdGVwIGlzIGlkZW1wb3RlbnQgYW5kIHNlbGYtZ3VhcmRlZCwgc28gdGhpcyBpcyBzYWZlIHRvIHJ1biBhZ2FpbnN0IGFcbiAqIGZvbGRlciB0aGF0IEFMUkVBRFkgaGFzIGEgaGFuZC1hdXRob3JlZCBgLnByb2plbnJjLnRzYCAoYW5kIGV2ZW4gYSBjb21taXR0ZWRcbiAqIGBwYWNrYWdlLmpzb25gKSBidXQgaXMgbWlzc2luZyB0aGUgaW5zdGFsbGVkIHRvb2xjaGFpbiAtIGUuZy4gYSBmcmVzaGx5IGNvcGllZFxuICogcHJvamVjdCB3aG9zZSBnZW5lcmF0ZWQgZmlsZXMgKGluY2x1ZGluZyBtYW5pZmVzdHMpIGFyZSBnaXRpZ25vcmVkLiBJbiB0aGF0XG4gKiBjYXNlIGBidW4gaW5pdGAgYW5kIHRoZSBgLnByb2plbnJjLnRzYCBzY2FmZm9sZCBhcmUgc2tpcHBlZCwgYnV0IHRoZSBlbmdpbmUgK1xuICogcHJvamVuIGFyZSAocmUpaW5zdGFsbGVkIHNvIHRoZSBzdWJzZXF1ZW50IHN5bnRoIGNhbiByZWdlbmVyYXRlIGV2ZXJ5dGhpbmcuXG4gKiBTZWUge0BsaW5rIHNlZWRUb29sY2hhaW59LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYm9vdHN0cmFwV29ya3NwYWNlKFxuICByb290OiBzdHJpbmcsXG4gIHByb2plblNwZWNpZmllcjogc3RyaW5nID0gZGVmYXVsdFByb2plblNwZWNpZmllcigpLFxuKTogdm9pZCB7XG4gIGludHJvKGBCb290c3RyYXBwaW5nIGRieC10b29scyB3b3Jrc3BhY2UgaW4gJHtyb290TGFiZWwocm9vdCl9YCk7XG5cbiAgc2VlZFRvb2xjaGFpbihyb290LCBwcm9qZW5TcGVjaWZpZXIpO1xuXG4gIGNvbnN0IHByb2plbnJjID0gam9pbihyb290LCBcIi5wcm9qZW5yYy50c1wiKTtcbiAgaWYgKCFleGlzdHNTeW5jKHByb2plbnJjKSkge1xuICAgIHdyaXRlRmlsZVN5bmMocHJvamVucmMsIFBST0pFTlJDX1RFTVBMQVRFKTtcbiAgfVxuXG4gIHJ1bkluaXRpYWxTeW50aChyb290KTtcblxuICBydW5CdW4oW1wiaW5zdGFsbFwiXSwgcm9vdCk7XG4gIG91dHJvKFwiV29ya3NwYWNlIHJlYWR5IC0gcmUtcnVuIGRieC10b29scyBvciBhZGQgcGFja2FnZXMgdW5kZXIgcGFja2FnZXMvXCIpO1xufVxuXG4vKipcbiAqIEluc3RhbGwgdGhlIHRvb2xjaGFpbiBhIHN5bnRoIG5lZWRzIChgcHJvamVuYCwgYHR5cGVzY3JpcHRgLCBhbmQgdGhlIGRieC10b29sc1xuICogZW5naW5lKSwgc2VlZGluZyBhIGBwYWNrYWdlLmpzb25gIGZpcnN0IHdoZW4gYWJzZW50LiBidW4gcmVhZHMgaXRzIHdvcmtzcGFjZVxuICogY29uZmlnIChgd29ya3NwYWNlc2AvYHRydXN0ZWREZXBlbmRlbmNpZXNgKSBmcm9tIHRoZSBtYW5pZmVzdCwgc28gdGhlcmUgaXMgbm9cbiAqIHNlcGFyYXRlIHdvcmtzcGFjZSBmaWxlIHRvIHNlZWQgLSB0aGUgZW5naW5lIHdyaXRlcyBgcG5wbS13b3Jrc3BhY2UueWFtbGAgYXRcbiAqIHN5bnRoIGZvciB0aGUgRGF0YWJyaWNrcyBBcHBzIHBsYXRmb3JtLiBJZGVtcG90ZW50OiBydW4gaXQgd2hlbmV2ZXIgdGhlIGVuZ2luZVxuICogaXMgbWlzc2luZywgc28gYSBjb3BpZWQgcHJvamVjdCB3aXRoIGEgYC5wcm9qZW5yYy50c2AgYnV0IG5vXG4gKiBgbm9kZV9tb2R1bGVzYC9tYW5pZmVzdCBjYW4gYmUgYnJvdWdodCB1cCB0byBhIHN5bnRoLXJlYWR5IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VlZFRvb2xjaGFpbihcbiAgcm9vdDogc3RyaW5nLFxuICBwcm9qZW5TcGVjaWZpZXI6IHN0cmluZyA9IGRlZmF1bHRQcm9qZW5TcGVjaWZpZXIoKSxcbik6IHZvaWQge1xuICBjb25zdCBtYW5pZmVzdFBhdGggPSBqb2luKHJvb3QsIFwicGFja2FnZS5qc29uXCIpO1xuICBpZiAoIWV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSkge1xuICAgIHJ1bkJ1bihbXCJpbml0XCIsIFwiLXlcIl0sIHJvb3QpO1xuICAgIG5vcm1hbGl6ZVNlZWRNYW5pZmVzdChtYW5pZmVzdFBhdGgpO1xuICB9XG5cbiAgc2VlZFJlZ2lzdHJ5KHJvb3QpO1xuXG4gIGNvbnN0IGtlcm5lbEFyY2ggPSBleGVjLnNwYXduU3luYyhcInVuYW1lXCIsIFtcIi1tXCJdLCB7XG4gICAgc3RkaW46IFwiaWdub3JlXCIsXG4gICAgc3Rkb3V0OiBcImNhcHR1cmVcIixcbiAgICBzdGRlcnI6IFwiaWdub3JlXCIsXG4gIH0pLnN0ZG91dDtcbiAgbG9nZ2VyLmluZm8oXCJzZWVkaW5nIHRvb2xjaGFpblwiLCB7XG4gICAgbm9kZTogcHJvY2Vzcy52ZXJzaW9uLFxuICAgIGJ1bjogcHJvY2Vzcy52ZXJzaW9ucy5idW4sXG4gICAgcGxhdGZvcm06IHByb2Nlc3MucGxhdGZvcm0sXG4gICAgYXJjaDogcHJvY2Vzcy5hcmNoLFxuICAgIGtlcm5lbEFyY2g6IGtlcm5lbEFyY2ggfHwgXCJ1bmtub3duXCIsXG4gICAgZW5naW5lOiBwcm9qZW5TcGVjaWZpZXIsXG4gIH0pO1xuICBydW5CdW4oW1wiYWRkXCIsIFwiLURcIiwgXCJwcm9qZW5cIiwgXCJ0eXBlc2NyaXB0QF41LjkuM1wiLCBcIkB0eXBlcy9idW5cIiwgcHJvamVuU3BlY2lmaWVyXSwgcm9vdCk7XG59XG5cbi8qKlxuICogUGluIGEgbm9uLWRlZmF1bHQgcmVnaXN0cnkgaW50byB0aGUgbmV3IHJvb3QncyBgLm5wbXJjYC5cbiAqXG4gKiBUaGUgQ0xJIGFscmVhZHkgZm9yY2VzIGAtLXJlZ2lzdHJ5YCBvbnRvIHRoZSBidW4gaW52b2NhdGlvbnMgaXQgbWFrZXMgaXRzZWxmLFxuICogYnV0IGEgYm9vdHN0cmFwcGVkIHdvcmtzcGFjZSBvdXRsaXZlcyB0aGlzIHByb2Nlc3M6IGV2ZXJ5IGxhdGVyIGBidW4gaW5zdGFsbGBcbiAqIHRoZSBkZXZlbG9wZXIgKG9yIHByb2plbidzIHBvc3Qtc3ludGggc3RlcCkgcnVucyBpcyBvbiBpdHMgb3duLiBidW4gaWdub3Jlc1xuICogYG5wbV9jb25maWdfcmVnaXN0cnlgIGZyb20gdGhlIGVudmlyb25tZW50LCBzbyB3aXRob3V0IGEgZmlsZSBvbiBkaXNrIHRob3NlXG4gKiBydW5zIHJldmVydCB0byBgaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYCAtIHdoaWNoIGlzIGEgaGFyZCBmYWlsdXJlIHdoZXJlXG4gKiB0aGUgY3VzdG9tIHJlZ2lzdHJ5IHdhcyB0aGUgb25seSByZWFjaGFibGUgb25lLlxuICpcbiAqIE9ubHkgd3JpdGVzIGZvciBhbiBhY3R1YWwgb3ZlcnJpZGUsIG5ldmVyIGNyZWF0ZXMgYSBmaWxlIGp1c3QgdG8gbmFtZSBucG1qcyxcbiAqIGFuZCBuZXZlciBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIGAubnBtcmNgICh0aGUgZGV2ZWxvcGVyJ3Mgb3duIHdpbnMpLlxuICovXG5mdW5jdGlvbiBzZWVkUmVnaXN0cnkocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gcHJvamVjdC5ucG1SZWdpc3RyeShudWxsLCB7IG92ZXJyaWRlT25seTogdHJ1ZSwgZW52VmFyczogdHJ1ZSB9KT8udG9TdHJpbmcoKTtcbiAgaWYgKCFyZWdpc3RyeSkgcmV0dXJuO1xuICBjb25zdCBucG1yYyA9IGpvaW4ocm9vdCwgXCIubnBtcmNcIik7XG4gIGlmIChleGlzdHNTeW5jKG5wbXJjKSkgcmV0dXJuO1xuICB3cml0ZUZpbGVTeW5jKG5wbXJjLCBgcmVnaXN0cnk9JHtyZWdpc3RyeX1cXG5gKTtcbn1cblxuLyoqXG4gKiBNYWtlIHdoYXQgYGJ1biBpbml0YCBwcm9kdWNlZCBzYWZlIHRvIHN5bnRoIGFnYWluc3Q6IGZvcmNlIGB0eXBlOiBcIm1vZHVsZVwiYFxuICogKGJ1biBydW5zIGAucHJvamVucmMudHNgIGZpbmUgZWl0aGVyIHdheSwgYnV0IHByb2plbidzIEVTTSBzb3VyY2VzIGFuZCB0aGVcbiAqIGVtaXR0ZWQgY29uZmlnIGFzc3VtZSBtb2R1bGUgdHlwZSkgYW5kIGRyb3AgYW55IGBwYWNrYWdlTWFuYWdlcmAvYGRldkVuZ2luZXNgXG4gKiBmaWVsZCB0aGF0IHdvdWxkIHBpbiBhIGRpZmZlcmVudCBtYW5hZ2VyLiBwcm9qZW4gcmVnZW5lcmF0ZXMgdGhlIHdob2xlIG1hbmlmZXN0XG4gKiBhdCBzeW50aCwgc28gdGhpcyBvbmx5IGhhcyB0byBob2xkIHRoZSBzZWVkIHRvZ2V0aGVyIGxvbmcgZW5vdWdoIHRvIGdldCB0aGVyZS5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU2VlZE1hbmlmZXN0KG1hbmlmZXN0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBqc29uLnBhcnNlUmVjb3JkKHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsIFwidXRmOFwiKSk7XG4gICAgaWYgKCFtYW5pZmVzdCkgcmV0dXJuO1xuICAgIGRlbGV0ZSBtYW5pZmVzdC5kZXZFbmdpbmVzO1xuICAgIGRlbGV0ZSBtYW5pZmVzdC5wYWNrYWdlTWFuYWdlcjtcbiAgICBtYW5pZmVzdC50eXBlID0gXCJtb2R1bGVcIjtcbiAgICB3cml0ZUZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgYCR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIG51bGwsIDIpfVxcbmApO1xuICB9IGNhdGNoIHtcbiAgICAvLyBBIG1hbGZvcm1lZC9hYnNlbnQgbWFuaWZlc3QgaGVyZSBqdXN0IG1lYW5zIHRoZSBsYXRlciBgYnVuIGFkZGAgcmVjcmVhdGVzIGl0LlxuICB9XG59XG5cbi8qKlxuICogUnVuIHRoZSBpbml0aWFsIHN5bnRoIGJ5IGV4ZWN1dGluZyBgLnByb2plbnJjLnRzYCBkaXJlY3RseSB3aXRoIGJ1biAod2l0aFxuICogYFBST0pFTl9ESVNBQkxFX1BPU1RgIHNldCksIE5PVCBgcHJvamVuIDx0YXNrPmAuIFVzZSByaWdodCBhZnRlciBzZWVkaW5nIGFcbiAqIGZyZXNoIHdvcmtzcGFjZTogdGhlIHByb2plbiBUQVNLUyAoYHN5bmNgLCBgYmFycmVsc2AsIC4uLikgb25seSBleGlzdCBvbmNlXG4gKiBgLnByb2plbnJjLnRzYCBoYXMgcnVuIG9uY2UsIHNvIGBwcm9qZW4gc3luY2AgY2FuJ3QgYmUgdGhlIGJvb3RzdHJhcHBpbmcgc3RlcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkluaXRpYWxTeW50aChyb290OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLnByZWZpeF0gPSByZXNvbHZlQnVuQXJndigpO1xuICAvLyBidW4gcnVucyB0aGUgYC50c2AgZGlyZWN0bHkuIFRoZSByZWdpc3RyeSByZWFjaGVzIGFueXRoaW5nIG5lc3RlZCB0aHJvdWdoXG4gIC8vIGBjaGlsZEVudmAgYW5kIHRoZSBzZWVkZWQgYC5ucG1yY2AuXG4gIGV4ZWMuc3Bhd25TeW5jKGNvbW1hbmQsIFsuLi5wcmVmaXgsIFwiLnByb2plbnJjLnRzXCJdLCB7XG4gICAgY3dkOiByb290LFxuICAgIGVudjogY2hpbGRFbnYoeyBQUk9KRU5fRElTQUJMRV9QT1NUOiBcInRydWVcIiB9KSxcbiAgICBjaGVjazogdHJ1ZSxcbiAgfSk7XG59XG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFakQsaUZBQWlGO0FBQ2pGLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBRXJDLHNGQUFzRjtBQUN0RixNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBRTdEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCO0lBQzdCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO0FBQy9FLENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsU0FBUyxVQUFVO0lBQ2pCLElBQUksQ0FBQztRQUNILDRFQUE0RTtRQUM1RSx3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QUN6QixhQUFhLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsZ0ZBQWdGO0lBQ2xGLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVk7SUFDMUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQzlDLDRFQUE0RTtJQUM1RSxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRTtRQUNuRCxHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM5QyxLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvb3RzdHJhcCBhIGJyYW5kLW5ldyBmb2xkZXIgaW50byBhIHdvcmtpbmcgZGJ4LXRvb2xzIHdvcmtzcGFjZSBiZWZvcmUgcHJvamVuIHJ1bnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGludHJvLCBvdXRybyB9IGZyb20gXCJAY2xhY2svcHJvbXB0c1wiO1xuaW1wb3J0IHsgZXhlYywgcHJvamVjdFV0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsganNvbiwgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGNoaWxkRW52LCByZXNvbHZlQnVuQXJndiwgcnVuQnVuIH0gZnJvbSBcIi4vYnVuLnRzXCI7XG5pbXBvcnQgeyByb290TGFiZWwgfSBmcm9tIFwiLi9yb290LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJkYngtdG9vbHM6Ym9vdHN0cmFwXCIpO1xuXG4vKiogUHVibGlzaGVkIHBhY2thZ2UgbmFtZSB1c2VkIGZvciBOb2RlJ3Mgc2VsZi1yZWZlcmVuY2UgbWFuaWZlc3QgcmVzb2x1dGlvbi4gKi9cbmNvbnN0IENMSV9QQUNLQUdFID0gXCJAZGJ4LXRvb2xzL2NsaVwiO1xuXG4vKiogRmFsbGJhY2sgd2hlbiB0aGlzIENMSSdzIG93biB2ZXJzaW9uIGlzbid0IGEgcmVhbCByZWxlYXNlIChhbiBpbi1yZXBvIGAwLjAuMGApLiAqL1xuY29uc3QgRkFMTEJBQ0tfUFJPSkVOX1NQRUNJRklFUiA9IFwiQGRieC10b29scy9wcm9qZW5AbGF0ZXN0XCI7XG5cbi8qKlxuICogSW5zdGFsbCB0aGUgZW5naW5lIGF0IFRISVMgQ0xJJ3Mgb3duIHZlcnNpb24uIFRoZSB0d28gYXJlIHJlbGVhc2VkIHRvZ2V0aGVyIGJ5XG4gKiB0aGUgcm9vdCBgYnVtcGAsIHNvIHRoZSBtYXRjaGluZyBlbmdpbmUgYWx3YXlzIGV4aXN0cyBvbiB0aGUgcmVnaXN0cnkuXG4gKlxuICogTm90IGBAbGF0ZXN0YCwgYW5kIG5vdCBhIGJhcmUgYEBkYngtdG9vbHMvcHJvamVuYC4gQSBiYXJlIHNwZWNpZmllciBjYW4gbGFuZCBvblxuICogYSBzdHJheSBgMC4wLjBgLCB3aG9zZSBgXjAuMC4wYCBjYXJldCB0aGVuIHJlYWNoZXMgbm8gcmVhbCByZWxlYXNlLiBBbiBleHBsaWNpdFxuICogcmFuZ2UgcGlubmVkIHRvIHRoaXMgQ0xJJ3Mgb3duIHZlcnNpb24gYWRtaXRzIG9ubHkgdGhlIG1hdGNoaW5nIGVuZ2luZSwgc28gdGhlXG4gKiBDTEkgYW5kIHRoZSBlbmdpbmUgaXQgZHJpdmVzIG5ldmVyIGRyaWZ0IGFjcm9zcyBhIHJlbGVhc2UgKHRoZXkgYXJlIGN1dFxuICogdG9nZXRoZXIgYnkgdGhlIHJvb3QgYGJ1bXBgKS5cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFByb2plblNwZWNpZmllcigpOiBzdHJpbmcge1xuICBjb25zdCB2ZXJzaW9uID0gb3duVmVyc2lvbigpO1xuICByZXR1cm4gdmVyc2lvbiA/IGBAZGJ4LXRvb2xzL3Byb2plbkBeJHt2ZXJzaW9ufWAgOiBGQUxMQkFDS19QUk9KRU5fU1BFQ0lGSUVSO1xufVxuXG4vKiogVGhpcyBDTEkncyBvd24gcmVsZWFzZWQgdmVyc2lvbiwgb3IgYHVuZGVmaW5lZGAgZm9yIGFuIGluLXJlcG8gYDAuMC4wYCBidWlsZC4gKi9cbmZ1bmN0aW9uIG93blZlcnNpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICAvLyBSZXNvbHZlIHRocm91Z2ggdGhlIHBhY2thZ2UncyBleHBvcnRlZCBgLi9wYWNrYWdlLmpzb25gLCB3aGljaCB3b3JrcyBmcm9tXG4gICAgLy8gYm90aCBzb3VyY2UgKGBzcmMvYm9vdHN0cmFwLnRzYCkgYW5kIHB1Ymxpc2hlZCBvdXRwdXRcbiAgICAvLyAoYGxpYi9zcmMvYm9vdHN0cmFwLmpzYCkuIEEgcmVsYXRpdmUgVVJMIGlzIG9uZSBsZXZlbCBmcm9tIHRoZSBtYW5pZmVzdFxuICAgIC8vIGluIHNvdXJjZSBidXQgdHdvIGxldmVscyBhd2F5IGFmdGVyIGNvbXBpbGF0aW9uIGFuZCBzaWxlbnRseSBmZWxsIGJhY2sgdG9cbiAgICAvLyBgQGxhdGVzdGAgaW4gZXZlcnkgaW5zdGFsbGVkIENMSS5cbiAgICBjb25zdCBtYW5pZmVzdFBhdGggPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCkucmVzb2x2ZShgJHtDTElfUEFDS0FHRX0vcGFja2FnZS5qc29uYCk7XG4gICAgY29uc3QgdmVyc2lvbiA9IGpzb24ucGFyc2VSZWNvcmQocmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgXCJ1dGY4XCIpKT8udmVyc2lvbjtcbiAgICByZXR1cm4gdHlwZW9mIHZlcnNpb24gPT09IFwic3RyaW5nXCIgJiYgdmVyc2lvbiAhPT0gXCIwLjAuMFwiID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogQ29tcGFyZSBgeC55LnpgIHRyaXBsZXM7IHJldHVybnMgPDAsIDAsIG9yID4wLiBNaXNzaW5nIHBhcnRzIGNvdW50IGFzIDAuICovXG5mdW5jdGlvbiBjb21wYXJlVmVyc2lvbnMoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBwYXJ0cyA9ICh2OiBzdHJpbmcpID0+IHYuc3BsaXQoXCIuXCIpLm1hcCgocCkgPT4gTnVtYmVyLnBhcnNlSW50KHAsIDEwKSB8fCAwKTtcbiAgY29uc3QgW3gsIHldID0gW3BhcnRzKGEpLCBwYXJ0cyhiKV07XG4gIHJldHVybiB4WzBdIC0geVswXSB8fCB4WzFdIC0geVsxXSB8fCB4WzJdIC0geVsyXTtcbn1cblxuLyoqIFZlcnNpb24gb2YgdGhlIGVuZ2luZSBjdXJyZW50bHkgaW5zdGFsbGVkIGF0IGByb290YCwgaWYgYW55LiAqL1xuZnVuY3Rpb24gaW5zdGFsbGVkRW5naW5lVmVyc2lvbihyb290OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gam9pbihyb290LCBcIm5vZGVfbW9kdWxlc1wiLCBcIkBkYngtdG9vbHNcIiwgXCJwcm9qZW5cIiwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgY29uc3QgdmVyc2lvbiA9IGpzb24ucGFyc2VSZWNvcmQocmVhZEZpbGVTeW5jKG1hbmlmZXN0LCBcInV0ZjhcIikpPy52ZXJzaW9uO1xuICAgIHJldHVybiB0eXBlb2YgdmVyc2lvbiA9PT0gXCJzdHJpbmdcIiA/IHZlcnNpb24gOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBVcGdyYWRlIGFuIGVzdGFibGlzaGVkIHdvcmtzcGFjZSB3aG9zZSBpbnN0YWxsZWQgZW5naW5lIHByZWRhdGVzIHRoaXMgQ0xJLlxuICpcbiAqIEJvb3RzdHJhcHBpbmcgcGlucyB0aGUgZW5naW5lIG9uY2UsIHNvIHdpdGhvdXQgdGhpcyBhIHdvcmtzcGFjZSBjcmVhdGVkIG1vbnRocyBhZ29cbiAqIHdvdWxkIGtlZXAgcmVzb2x2aW5nIGl0cyBvcmlnaW5hbCBlbmdpbmUgbm8gbWF0dGVyIGhvdyBjdXJyZW50IHRoZSBDTEkgaW52b2tpbmcgaXRcbiAqIGlzLCBhbmQgd291bGQgZmFpbCBpbnNpZGUgVEhBVCBlbmdpbmUncyBjb2RlIChgc3luYyAtLXdhdGNoYCBkeWluZyBvbiBhXG4gKiBgY29uY3VycmVudGx5YCBpdCBuZXZlciBkZWNsYXJlZCkuIFRoZSB0d28gYXJlIHJlbGVhc2VkIGluIGxvY2tzdGVwLCBzbyB0aGlzIENMSSdzXG4gKiB2ZXJzaW9uIGlzIGV4YWN0bHkgdGhlIGVuZ2luZSBpdCBleHBlY3RzLlxuICpcbiAqIE9ubHkgZXZlciBtb3ZlcyBGT1JXQVJEOiBhbiBlbmdpbmUgYXQgb3IgYWhlYWQgb2YgdGhpcyBDTEkgaXMgbGVmdCBhbG9uZSwgc29cbiAqIGFuIG9sZGVyIENMSSBjYW5ub3QgZG93bmdyYWRlIGEgd29ya3NwYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRW5naW5lQ3VycmVudChyb290OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgZXhwZWN0ZWQgPSBvd25WZXJzaW9uKCk7XG4gIGlmICghZXhwZWN0ZWQpIHJldHVybjtcbiAgY29uc3QgaW5zdGFsbGVkID0gaW5zdGFsbGVkRW5naW5lVmVyc2lvbihyb290KTtcbiAgaWYgKGluc3RhbGxlZCAmJiBjb21wYXJlVmVyc2lvbnMoaW5zdGFsbGVkLCBleHBlY3RlZCkgPj0gMCkgcmV0dXJuO1xuICBydW5CdW4oW1wiYWRkXCIsIFwiLURcIiwgZGVmYXVsdFByb2plblNwZWNpZmllcigpXSwgcm9vdCk7XG59XG5cbi8vIFJlYWNoIHRoZSBjbGFzcyB0aHJvdWdoIGl0cyBtb2R1bGUgTkFNRVNQQUNFLiBDdXJyZW50IGVuZ2luZXMgYWxzbyBob2lzdCBpdFxuLy8gZmxhdCwgYnV0IGV2ZXJ5IGVuZ2luZSBldmVyIHB1Ymxpc2hlZCBleHBvcnRzIHRoZSBuYW1lc3BhY2UsIGFuZCB0aGlzIHRlbXBsYXRlXG4vLyBpcyByZXNvbHZlZCBhZ2FpbnN0IGBAbGF0ZXN0YCAtIGEgZmxhdCBpbXBvcnQgZGllcyBvbiBhbiBvbGRlciBvbmUgd2l0aFxuLy8gXCJkb2VzIG5vdCBwcm92aWRlIGFuIGV4cG9ydCBuYW1lZCAnREJYVG9vbHNOb2RlUHJvamVjdCdcIi5cbmNvbnN0IFBST0pFTlJDX1RFTVBMQVRFID0gYGltcG9ydCB7IHByb2plY3QgfSBmcm9tIFwiQGRieC10b29scy9wcm9qZW5cIjtcblxuY29uc3Qgcm9vdFByb2plY3QgPSBuZXcgcHJvamVjdC5EQlhUb29sc05vZGVQcm9qZWN0KCk7XG5yb290UHJvamVjdC5zeW50aCgpO1xuYDtcblxuLyoqXG4gKiBUdXJuIGEgZm9sZGVyIGludG8gYSBmdW5jdGlvbmluZyBkYngtdG9vbHMgd29ya3NwYWNlOiBgYnVuIGluaXRgLCBzZWVkIHRoZVxuICogYHBhY2thZ2UuanNvbmAgd29ya3NwYWNlIGZpZWxkcyAoYnVuIHJlYWRzIGB3b3Jrc3BhY2VzYC9gdHJ1c3RlZERlcGVuZGVuY2llc2BcbiAqIGZyb20gdGhlIG1hbmlmZXN0KSwgYWRkIGBwcm9qZW5gL2B0eXBlc2NyaXB0YCArIHRoZSBlbmdpbmUgcGFja2FnZSwgd3JpdGUgYVxuICogbWluaW1hbCBgLnByb2plbnJjLnRzYCwgc3ludGggb25jZSAod2l0aCBgUFJPSkVOX0RJU0FCTEVfUE9TVGApLCB0aGVuIGluc3RhbGwuXG4gKiBEb2VzIG5vdCBydW4gYmFycmVscyAtIHJ1biBgYnVuIHJ1biBiYXJyZWxzYCBvciBhIGZ1bGwgcHJvamVuIHN5bnRoIHBvc3QtaW5zdGFsbFxuICogdG8gZ2VuZXJhdGUgcGFja2FnZSBiYXJyZWxzLlxuICpcbiAqIEV2ZXJ5IHN0ZXAgaXMgaWRlbXBvdGVudCBhbmQgc2VsZi1ndWFyZGVkLCBzbyB0aGlzIGlzIHNhZmUgdG8gcnVuIGFnYWluc3QgYVxuICogZm9sZGVyIHRoYXQgQUxSRUFEWSBoYXMgYSBoYW5kLWF1dGhvcmVkIGAucHJvamVucmMudHNgIChhbmQgZXZlbiBhIGNvbW1pdHRlZFxuICogYHBhY2thZ2UuanNvbmApIGJ1dCBpcyBtaXNzaW5nIHRoZSBpbnN0YWxsZWQgdG9vbGNoYWluIC0gZS5nLiBhIGZyZXNobHkgY29waWVkXG4gKiBwcm9qZWN0IHdob3NlIGdlbmVyYXRlZCBmaWxlcyAoaW5jbHVkaW5nIG1hbmlmZXN0cykgYXJlIGdpdGlnbm9yZWQuIEluIHRoYXRcbiAqIGNhc2UgYGJ1biBpbml0YCBhbmQgdGhlIGAucHJvamVucmMudHNgIHNjYWZmb2xkIGFyZSBza2lwcGVkLCBidXQgdGhlIGVuZ2luZSArXG4gKiBwcm9qZW4gYXJlIChyZSlpbnN0YWxsZWQgc28gdGhlIHN1YnNlcXVlbnQgc3ludGggY2FuIHJlZ2VuZXJhdGUgZXZlcnl0aGluZy5cbiAqIFNlZSB7QGxpbmsgc2VlZFRvb2xjaGFpbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXBXb3Jrc3BhY2UoXG4gIHJvb3Q6IHN0cmluZyxcbiAgcHJvamVuU3BlY2lmaWVyOiBzdHJpbmcgPSBkZWZhdWx0UHJvamVuU3BlY2lmaWVyKCksXG4pOiB2b2lkIHtcbiAgaW50cm8oYEJvb3RzdHJhcHBpbmcgZGJ4LXRvb2xzIHdvcmtzcGFjZSBpbiAke3Jvb3RMYWJlbChyb290KX1gKTtcblxuICBzZWVkVG9vbGNoYWluKHJvb3QsIHByb2plblNwZWNpZmllcik7XG5cbiAgY29uc3QgcHJvamVucmMgPSBqb2luKHJvb3QsIFwiLnByb2plbnJjLnRzXCIpO1xuICBpZiAoIWV4aXN0c1N5bmMocHJvamVucmMpKSB7XG4gICAgd3JpdGVGaWxlU3luYyhwcm9qZW5yYywgUFJPSkVOUkNfVEVNUExBVEUpO1xuICB9XG5cbiAgcnVuSW5pdGlhbFN5bnRoKHJvb3QpO1xuXG4gIHJ1bkJ1bihbXCJpbnN0YWxsXCJdLCByb290KTtcbiAgb3V0cm8oXCJXb3Jrc3BhY2UgcmVhZHkgLSByZS1ydW4gZGJ4LXRvb2xzIG9yIGFkZCBwYWNrYWdlcyB1bmRlciBwYWNrYWdlcy9cIik7XG59XG5cbi8qKlxuICogSW5zdGFsbCB0aGUgdG9vbGNoYWluIGEgc3ludGggbmVlZHMgKGBwcm9qZW5gLCBgdHlwZXNjcmlwdGAsIGFuZCB0aGUgZGJ4LXRvb2xzXG4gKiBlbmdpbmUpLCBzZWVkaW5nIGEgYHBhY2thZ2UuanNvbmAgZmlyc3Qgd2hlbiBhYnNlbnQuIGJ1biByZWFkcyBpdHMgd29ya3NwYWNlXG4gKiBjb25maWcgKGB3b3Jrc3BhY2VzYC9gdHJ1c3RlZERlcGVuZGVuY2llc2ApIGZyb20gdGhlIG1hbmlmZXN0LCBzbyB0aGVyZSBpcyBub1xuICogc2VwYXJhdGUgd29ya3NwYWNlIGZpbGUgdG8gc2VlZCAtIHRoZSBlbmdpbmUgd3JpdGVzIGBwbnBtLXdvcmtzcGFjZS55YW1sYCBhdFxuICogc3ludGggZm9yIHRoZSBEYXRhYnJpY2tzIEFwcHMgcGxhdGZvcm0uIElkZW1wb3RlbnQ6IHJ1biBpdCB3aGVuZXZlciB0aGUgZW5naW5lXG4gKiBpcyBtaXNzaW5nLCBzbyBhIGNvcGllZCBwcm9qZWN0IHdpdGggYSBgLnByb2plbnJjLnRzYCBidXQgbm9cbiAqIGBub2RlX21vZHVsZXNgL21hbmlmZXN0IGNhbiBiZSBicm91Z2h0IHVwIHRvIGEgc3ludGgtcmVhZHkgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWVkVG9vbGNoYWluKFxuICByb290OiBzdHJpbmcsXG4gIHByb2plblNwZWNpZmllcjogc3RyaW5nID0gZGVmYXVsdFByb2plblNwZWNpZmllcigpLFxuKTogdm9pZCB7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGpvaW4ocm9vdCwgXCJwYWNrYWdlLmpzb25cIik7XG4gIGlmICghZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgcnVuQnVuKFtcImluaXRcIiwgXCIteVwiXSwgcm9vdCk7XG4gICAgbm9ybWFsaXplU2VlZE1hbmlmZXN0KG1hbmlmZXN0UGF0aCk7XG4gIH1cblxuICBzZWVkUmVnaXN0cnkocm9vdCk7XG5cbiAgY29uc3Qga2VybmVsQXJjaCA9IGV4ZWMuc3Bhd25TeW5jKFwidW5hbWVcIiwgW1wiLW1cIl0sIHtcbiAgICBzdGRpbjogXCJpZ25vcmVcIixcbiAgICBzdGRvdXQ6IFwiY2FwdHVyZVwiLFxuICAgIHN0ZGVycjogXCJpZ25vcmVcIixcbiAgfSkuc3Rkb3V0O1xuICBsb2dnZXIuaW5mbyhcInNlZWRpbmcgdG9vbGNoYWluXCIsIHtcbiAgICBub2RlOiBwcm9jZXNzLnZlcnNpb24sXG4gICAgYnVuOiBwcm9jZXNzLnZlcnNpb25zLmJ1bixcbiAgICBwbGF0Zm9ybTogcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgICBhcmNoOiBwcm9jZXNzLmFyY2gsXG4gICAga2VybmVsQXJjaDoga2VybmVsQXJjaCB8fCBcInVua25vd25cIixcbiAgICBlbmdpbmU6IHByb2plblNwZWNpZmllcixcbiAgfSk7XG4gIHJ1bkJ1bihbXCJhZGRcIiwgXCItRFwiLCBcInByb2plblwiLCBcInR5cGVzY3JpcHRAXjUuOS4zXCIsIFwiQHR5cGVzL2J1blwiLCBwcm9qZW5TcGVjaWZpZXJdLCByb290KTtcbn1cblxuLyoqXG4gKiBQaW4gYSBub24tZGVmYXVsdCByZWdpc3RyeSBpbnRvIHRoZSBuZXcgcm9vdCdzIGAubnBtcmNgLlxuICpcbiAqIFRoZSBDTEkgYWxyZWFkeSBmb3JjZXMgYC0tcmVnaXN0cnlgIG9udG8gdGhlIGJ1biBpbnZvY2F0aW9ucyBpdCBtYWtlcyBpdHNlbGYsXG4gKiBidXQgYSBib290c3RyYXBwZWQgd29ya3NwYWNlIG91dGxpdmVzIHRoaXMgcHJvY2VzczogZXZlcnkgbGF0ZXIgYGJ1biBpbnN0YWxsYFxuICogdGhlIGRldmVsb3BlciAob3IgcHJvamVuJ3MgcG9zdC1zeW50aCBzdGVwKSBydW5zIGlzIG9uIGl0cyBvd24uIGJ1biBpZ25vcmVzXG4gKiBgbnBtX2NvbmZpZ19yZWdpc3RyeWAgZnJvbSB0aGUgZW52aXJvbm1lbnQsIHNvIHdpdGhvdXQgYSBmaWxlIG9uIGRpc2sgdGhvc2VcbiAqIHJ1bnMgcmV2ZXJ0IHRvIGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9gIC0gd2hpY2ggaXMgYSBoYXJkIGZhaWx1cmUgd2hlcmVcbiAqIHRoZSBjdXN0b20gcmVnaXN0cnkgd2FzIHRoZSBvbmx5IHJlYWNoYWJsZSBvbmUuXG4gKlxuICogT25seSB3cml0ZXMgZm9yIGFuIGFjdHVhbCBvdmVycmlkZSwgbmV2ZXIgY3JlYXRlcyBhIGZpbGUganVzdCB0byBuYW1lIG5wbWpzLFxuICogYW5kIG5ldmVyIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgYC5ucG1yY2AgKHRoZSBkZXZlbG9wZXIncyBvd24gd2lucykuXG4gKi9cbmZ1bmN0aW9uIHNlZWRSZWdpc3RyeShyb290OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVnaXN0cnkgPSBwcm9qZWN0VXRpbHNcbiAgICAubnBtUmVnaXN0cnkobnVsbCwgeyBvdmVycmlkZU9ubHk6IHRydWUsIGVudlZhcnM6IHRydWUgfSlcbiAgICA/LnRvU3RyaW5nKCk7XG4gIGlmICghcmVnaXN0cnkpIHJldHVybjtcbiAgY29uc3QgbnBtcmMgPSBqb2luKHJvb3QsIFwiLm5wbXJjXCIpO1xuICBpZiAoZXhpc3RzU3luYyhucG1yYykpIHJldHVybjtcbiAgd3JpdGVGaWxlU3luYyhucG1yYywgYHJlZ2lzdHJ5PSR7cmVnaXN0cnl9XFxuYCk7XG59XG5cbi8qKlxuICogTWFrZSB3aGF0IGBidW4gaW5pdGAgcHJvZHVjZWQgc2FmZSB0byBzeW50aCBhZ2FpbnN0OiBmb3JjZSBgdHlwZTogXCJtb2R1bGVcImBcbiAqIChidW4gcnVucyBgLnByb2plbnJjLnRzYCBmaW5lIGVpdGhlciB3YXksIGJ1dCBwcm9qZW4ncyBFU00gc291cmNlcyBhbmQgdGhlXG4gKiBlbWl0dGVkIGNvbmZpZyBhc3N1bWUgbW9kdWxlIHR5cGUpIGFuZCBkcm9wIGFueSBgcGFja2FnZU1hbmFnZXJgL2BkZXZFbmdpbmVzYFxuICogZmllbGQgdGhhdCB3b3VsZCBwaW4gYSBkaWZmZXJlbnQgbWFuYWdlci4gcHJvamVuIHJlZ2VuZXJhdGVzIHRoZSB3aG9sZSBtYW5pZmVzdFxuICogYXQgc3ludGgsIHNvIHRoaXMgb25seSBoYXMgdG8gaG9sZCB0aGUgc2VlZCB0b2dldGhlciBsb25nIGVub3VnaCB0byBnZXQgdGhlcmUuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlZWRNYW5pZmVzdChtYW5pZmVzdFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0ganNvbi5wYXJzZVJlY29yZChyZWFkRmlsZVN5bmMobWFuaWZlc3RQYXRoLCBcInV0ZjhcIikpO1xuICAgIGlmICghbWFuaWZlc3QpIHJldHVybjtcbiAgICBkZWxldGUgbWFuaWZlc3QuZGV2RW5naW5lcztcbiAgICBkZWxldGUgbWFuaWZlc3QucGFja2FnZU1hbmFnZXI7XG4gICAgbWFuaWZlc3QudHlwZSA9IFwibW9kdWxlXCI7XG4gICAgd3JpdGVGaWxlU3luYyhtYW5pZmVzdFBhdGgsIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gQSBtYWxmb3JtZWQvYWJzZW50IG1hbmlmZXN0IGhlcmUganVzdCBtZWFucyB0aGUgbGF0ZXIgYGJ1biBhZGRgIHJlY3JlYXRlcyBpdC5cbiAgfVxufVxuXG4vKipcbiAqIFJ1biB0aGUgaW5pdGlhbCBzeW50aCBieSBleGVjdXRpbmcgYC5wcm9qZW5yYy50c2AgZGlyZWN0bHkgd2l0aCBidW4gKHdpdGhcbiAqIGBQUk9KRU5fRElTQUJMRV9QT1NUYCBzZXQpLCBOT1QgYHByb2plbiA8dGFzaz5gLiBVc2UgcmlnaHQgYWZ0ZXIgc2VlZGluZyBhXG4gKiBmcmVzaCB3b3Jrc3BhY2U6IHRoZSBwcm9qZW4gVEFTS1MgKGBzeW5jYCwgYGJhcnJlbHNgLCAuLi4pIG9ubHkgZXhpc3Qgb25jZVxuICogYC5wcm9qZW5yYy50c2AgaGFzIHJ1biBvbmNlLCBzbyBgcHJvamVuIHN5bmNgIGNhbid0IGJlIHRoZSBib290c3RyYXBwaW5nIHN0ZXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5Jbml0aWFsU3ludGgocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IFtjb21tYW5kLCAuLi5wcmVmaXhdID0gcmVzb2x2ZUJ1bkFyZ3YoKTtcbiAgLy8gYnVuIHJ1bnMgdGhlIGAudHNgIGRpcmVjdGx5LiBUaGUgcmVnaXN0cnkgcmVhY2hlcyBhbnl0aGluZyBuZXN0ZWQgdGhyb3VnaFxuICAvLyBgY2hpbGRFbnZgIGFuZCB0aGUgc2VlZGVkIGAubnBtcmNgLlxuICBleGVjLnNwYXduU3luYyhjb21tYW5kLCBbLi4ucHJlZml4LCBcIi5wcm9qZW5yYy50c1wiXSwge1xuICAgIGN3ZDogcm9vdCxcbiAgICBlbnY6IGNoaWxkRW52KHsgUFJPSkVOX0RJU0FCTEVfUE9TVDogXCJ0cnVlXCIgfSksXG4gICAgY2hlY2s6IHRydWUsXG4gIH0pO1xufVxuIl19
|
package/lib/src/bun.js
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { existsSync } from "node:fs";
|
|
24
24
|
import { delimiter, dirname, join } from "node:path";
|
|
25
|
-
import { exec,
|
|
26
|
-
import {
|
|
25
|
+
import { exec, projectUtils } from "@dbx-tools/core";
|
|
26
|
+
import { functionUtils, log } from "@dbx-tools/shared-core";
|
|
27
27
|
import { needsInstall } from "./root.js";
|
|
28
28
|
const logger = log.logger("dbx-tools:bun");
|
|
29
29
|
/**
|
|
@@ -40,7 +40,7 @@ const REGISTRY_SUBCOMMANDS = new Set(["add", "install", "i", "update", "up"]);
|
|
|
40
40
|
* container may export it without any `.npmrc` for lookup. Memoized: resolution
|
|
41
41
|
* shells out.
|
|
42
42
|
*/
|
|
43
|
-
const registryOverride =
|
|
43
|
+
const registryOverride = functionUtils.memoize(() => projectUtils.npmRegistry(null, { overrideOnly: true, envVars: true })?.toString());
|
|
44
44
|
/** `--registry <url>` for a bun invocation, or `[]` when the subcommand doesn't resolve. */
|
|
45
45
|
export function bunRegistryArgs(args) {
|
|
46
46
|
const url = registryOverride();
|
|
@@ -90,7 +90,7 @@ function resolveBunArgvImpl() {
|
|
|
90
90
|
return ["bun"];
|
|
91
91
|
}
|
|
92
92
|
/** Memoized `[command, ...prefix]` argv prefix to run bun. */
|
|
93
|
-
export const resolveBunArgv =
|
|
93
|
+
export const resolveBunArgv = functionUtils.memoize(resolveBunArgvImpl);
|
|
94
94
|
/** Run bun with inherited stdio from `cwd`, forcing the resolved registry. */
|
|
95
95
|
export function runBun(args, cwd) {
|
|
96
96
|
const [command, ...prefix] = resolveBunArgv();
|
|
@@ -123,4 +123,4 @@ export function runProjen(args, root) {
|
|
|
123
123
|
// Fallback: resolve projen through bun's package runner.
|
|
124
124
|
runBun(["x", "projen", ...args], root);
|
|
125
125
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRTlFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBdUIsRUFBRSxDQUN2RSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQzdFLENBQUM7QUFFRiw0RkFBNEY7QUFDNUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUF1QjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDcEIsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFjLEVBQUUsSUFBWTtJQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0QsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPO0lBQ1QsQ0FBQztJQUNELHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYnVuIGRpc2NvdmVyeSwgd29ya3NwYWNlIGluc3RhbGwsIGFuZCBwcm9qZW4gZm9yd2FyZGluZyBmb3IgdGhlIGBkYngtdG9vbHNgIENMSS5cbiAqXG4gKiAjIyBGb3JjaW5nIGEgY3VzdG9tIHJlZ2lzdHJ5XG4gKlxuICogYnVuIGhvbm9ycyBhIGAtLXJlZ2lzdHJ5IDx1cmw+YCBmbGFnIG9uIGBidW4gaW5zdGFsbGAvYGJ1biBhZGRgIGFuZCBhIHByb2plY3RcbiAqIGAubnBtcmNgLCBidXQgKGxpa2UgcG5wbSkgaWdub3JlcyB0aGUgYG5wbV9jb25maWdfcmVnaXN0cnlgIGVudiB2YXIgZm9yIGl0cyBvd25cbiAqIHJlc29sdXRpb24uIFNvIGEgY3VzdG9tIHJlZ2lzdHJ5IGlzIGZvcmNlZCB0aHJvdWdoIFRXTyBjaGFubmVscywgZWFjaCB3aGVyZSBpdFxuICogYXBwbGllczpcbiAqXG4gKiAgLSB7QGxpbmsgYnVuUmVnaXN0cnlBcmdzfSBwYXNzZXMgYC0tcmVnaXN0cnlgIHRvIHRoZSBwYWNrYWdlLXJlc29sdmluZ1xuICogICAgc3ViY29tbWFuZHMgKGBpbnN0YWxsYC9gYWRkYC9gdXBkYXRlYCksIG5ldmVyIHRvIGBidW4gcnVuYC9gYnVueGAsIHdob3NlXG4gKiAgICB0cmFpbGluZyBhcmdzIGJlbG9uZyB0byB0aGUgc2NyaXB0LlxuICogIC0ge0BsaW5rIGNoaWxkRW52fSBrZWVwcyBgLm5wbXJjYC1zdHlsZSBlbnYgYWxpYXNlcyBzZXQgZm9yIGFueSBuZXN0ZWRcbiAqICAgIG5wbS1iYXNlZCB0b29sLCBhbmQgKGNyaXRpY2FsbHkpIHB1dHMgdGhlIGJ1bi9ub2RlIGV4ZWN1dGFibGUgZGlyIG9uIFBBVEggc29cbiAqICAgIGEgbGlmZWN5Y2xlIHNjcmlwdCBjYW4gaW52b2tlIHRoZSBydW50aW1lIGJ5IGJhcmUgbmFtZS5cbiAqXG4gKiBgQGRieC10b29scy9jb3JlYCdzIGBucG1SZWdpc3RyeSh7IG92ZXJyaWRlT25seTogdHJ1ZSB9KWAgcmV0dXJucyBub3RoaW5nIHdoZW5cbiAqIHRoZSBlZmZlY3RpdmUgcmVnaXN0cnkgSVMgbnBtanMsIHNvIG5vbmUgb2YgdGhpcyB0b3VjaGVzIGEgZGVmYXVsdCBpbnN0YWxsLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBleGVjLCBwcm9qZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsgZnVuY3Rpb25Nb2R1bGUsIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBuZWVkc0luc3RhbGwgfSBmcm9tIFwiLi9yb290LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJkYngtdG9vbHM6YnVuXCIpO1xuXG4vKipcbiAqIGJ1biBzdWJjb21tYW5kcyB0aGF0IHJlc29sdmUgcGFja2FnZXMgZnJvbSBhIHJlZ2lzdHJ5LCBhbmQgdGhlcmVmb3JlIGFjY2VwdCBhXG4gKiBtZWFuaW5nZnVsIGAtLXJlZ2lzdHJ5YC4gRXZlcnl0aGluZyBlbHNlIChgcnVuYCwgYHhgLCBgcG1gLCAuLi4pIGlzIGxlZnQgYWxvbmU6XG4gKiBgcnVuYC9geGAgZm9yd2FyZCB0cmFpbGluZyBhcmd1bWVudHMgdG8gdGhlIHNjcmlwdCB0aGV5IHJ1bi5cbiAqL1xuY29uc3QgUkVHSVNUUllfU1VCQ09NTUFORFMgPSBuZXcgU2V0KFtcImFkZFwiLCBcImluc3RhbGxcIiwgXCJpXCIsIFwidXBkYXRlXCIsIFwidXBcIl0pO1xuXG4vKipcbiAqIFRoZSByZWdpc3RyeSB0byBmb3JjZSBvbnRvIGNoaWxkIGluc3RhbGxzLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSBlZmZlY3RpdmVcbiAqIG9uZSBpcyBhbHJlYWR5IHRoZSBwdWJsaWMgZGVmYXVsdC5cbiAqXG4gKiBgZW52VmFyczogdHJ1ZWAgYWxzbyBjb25zdWx0cyBgbnBtX2NvbmZpZ19yZWdpc3RyeWAgZGlyZWN0bHksIGJlY2F1c2UgYVxuICogY29udGFpbmVyIG1heSBleHBvcnQgaXQgd2l0aG91dCBhbnkgYC5ucG1yY2AgZm9yIGxvb2t1cC4gTWVtb2l6ZWQ6IHJlc29sdXRpb25cbiAqIHNoZWxscyBvdXQuXG4gKi9cbmNvbnN0IHJlZ2lzdHJ5T3ZlcnJpZGUgPSBmdW5jdGlvbk1vZHVsZS5tZW1vaXplKCgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgcHJvamVjdC5ucG1SZWdpc3RyeShudWxsLCB7IG92ZXJyaWRlT25seTogdHJ1ZSwgZW52VmFyczogdHJ1ZSB9KT8udG9TdHJpbmcoKSxcbik7XG5cbi8qKiBgLS1yZWdpc3RyeSA8dXJsPmAgZm9yIGEgYnVuIGludm9jYXRpb24sIG9yIGBbXWAgd2hlbiB0aGUgc3ViY29tbWFuZCBkb2Vzbid0IHJlc29sdmUuICovXG5leHBvcnQgZnVuY3Rpb24gYnVuUmVnaXN0cnlBcmdzKGFyZ3M6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICBjb25zdCB1cmwgPSByZWdpc3RyeU92ZXJyaWRlKCk7XG4gIGlmICghdXJsKSByZXR1cm4gW107XG4gIHJldHVybiBidW5Vc2VzUmVnaXN0cnkoYXJncykgPyBbXCItLXJlZ2lzdHJ5XCIsIHVybF0gOiBbXTtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIGZpcnN0IGJ1biBzdWJjb21tYW5kIHJlc29sdmVzIHBhY2thZ2VzIGFuZCBhY2NlcHRzIGAtLXJlZ2lzdHJ5YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidW5Vc2VzUmVnaXN0cnkoYXJnczogcmVhZG9ubHkgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgY29uc3Qgc3ViY29tbWFuZCA9IGFyZ3MuZmluZCgoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpKTtcbiAgcmV0dXJuIHN1YmNvbW1hbmQgIT09IHVuZGVmaW5lZCAmJiBSRUdJU1RSWV9TVUJDT01NQU5EUy5oYXMoc3ViY29tbWFuZCk7XG59XG5cbi8qKlxuICogYHByb2Nlc3MuZW52YCBwbHVzIHRoZSBydW50aW1lIGV4ZWN1dGFibGUgZGlyZWN0b3J5IGFuZCByZWdpc3RyeSBhbGlhc2VzLlxuICpcbiAqIFRoZSBleGVjdXRhYmxlIGRpcmVjdG9yeSBtYXR0ZXJzIHdoZW4gdGhpcyBDTEkgd2FzIGxhdW5jaGVkIGJ5IGFic29sdXRlIHBhdGg6XG4gKiBidW4gcnVucywgYnV0IGEgbGlmZWN5Y2xlIHNjcmlwdCB0aGF0IGludm9rZXMgYGJ1bmAvYG5vZGVgIGJ5IGJhcmUgbmFtZSB3b3VsZFxuICogb3RoZXJ3aXNlIGZhaWwgd2l0aCBgY29tbWFuZCBub3QgZm91bmRgLiBQcmVwZW5kaW5nIGBkaXJuYW1lKHByb2Nlc3MuZXhlY1BhdGgpYFxuICogKHRoZSBydW5uaW5nIGJ1biBiaW5hcnkncyBkaXIpIHB1dHMgdGhlIHJ1bnRpbWUgYmFjayBvbiBQQVRILlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hpbGRFbnYoZXh0cmE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogTm9kZUpTLlByb2Nlc3NFbnYge1xuICBjb25zdCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0geyAuLi5wcm9jZXNzLmVudiwgLi4uZXh0cmEgfTtcbiAgY29uc3QgcnVudGltZUJpbiA9IGRpcm5hbWUocHJvY2Vzcy5leGVjUGF0aCk7XG4gIGNvbnN0IHBhdGhFbnRyaWVzID0gKGVudi5QQVRIID8/IFwiXCIpLnNwbGl0KGRlbGltaXRlcikuZmlsdGVyKEJvb2xlYW4pO1xuICBpZiAoIXBhdGhFbnRyaWVzLmluY2x1ZGVzKHJ1bnRpbWVCaW4pKSB7XG4gICAgZW52LlBBVEggPSBbcnVudGltZUJpbiwgLi4ucGF0aEVudHJpZXNdLmpvaW4oZGVsaW1pdGVyKTtcbiAgfVxuICBjb25zdCB1cmwgPSByZWdpc3RyeU92ZXJyaWRlKCk7XG4gIGlmICh1cmwpIHtcbiAgICAvLyBCb3RoIGNhc2VzOiBlbnYgaXMgY2FzZS1zZW5zaXRpdmUgb24gUE9TSVgsIGFuZCBucG0gbG93ZXJjYXNlcyB3aGVuIHJlYWRpbmcuXG4gICAgZW52Lm5wbV9jb25maWdfcmVnaXN0cnkgPSB1cmw7XG4gICAgZW52Lk5QTV9DT05GSUdfUkVHSVNUUlkgPSB1cmw7XG4gIH1cbiAgcmV0dXJuIGVudjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBhcmd2IHByZWZpeCB0byBydW4gYnVuOiB0aGUgYGJ1bmAgcGFja2FnZSdzIG93biBiaW4gd2hlbiB0aGlzIENMSVxuICogaXMgaXRzZWxmIHJ1bm5pbmcgdW5kZXIgYnVuIChgcHJvY2Vzcy5leGVjUGF0aGAgaXMgdGhlIGJ1biBiaW5hcnkpLCBlbHNlIGEgYmFyZVxuICogYGJ1bmAgb24gUEFUSC4gTm8gY29yZXBhY2svbnB4IGZhbGxiYWNrIC0gYnVuIGlzIHRoZSBhbWJpZW50IHJ1bnRpbWUgdGhpc1xuICogdG9vbGNoYWluIHJlcXVpcmVzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQnVuQXJndkltcGwoKTogc3RyaW5nW10ge1xuICAvLyBUaGUgcnVubmluZyBwcm9jZXNzIElTIGJ1biBpbiBldmVyeSBzdXBwb3J0ZWQgcGF0aCAodGhlIGJpbiBpcyBgYnVuIDxmaWxlPmApLFxuICAvLyBzbyByZXVzZSBpdCBkaXJlY3RseSAtIG5vIFBBVEggbG9va3VwLCBubyBwYWNrYWdlLW1hbmFnZXIgc2hpbS5cbiAgaWYgKC9cXGJidW5cXGIvLnRlc3QocHJvY2Vzcy5leGVjUGF0aCkpIHJldHVybiBbcHJvY2Vzcy5leGVjUGF0aF07XG4gIHJldHVybiBbXCJidW5cIl07XG59XG5cbi8qKiBNZW1vaXplZCBgW2NvbW1hbmQsIC4uLnByZWZpeF1gIGFyZ3YgcHJlZml4IHRvIHJ1biBidW4uICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZUJ1bkFyZ3YgPSBmdW5jdGlvbk1vZHVsZS5tZW1vaXplKHJlc29sdmVCdW5Bcmd2SW1wbCk7XG5cbi8qKiBSdW4gYnVuIHdpdGggaW5oZXJpdGVkIHN0ZGlvIGZyb20gYGN3ZGAsIGZvcmNpbmcgdGhlIHJlc29sdmVkIHJlZ2lzdHJ5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkJ1bihhcmdzOiBzdHJpbmdbXSwgY3dkOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLnByZWZpeF0gPSByZXNvbHZlQnVuQXJndigpO1xuICBjb25zdCByZWdpc3RyeUFyZ3MgPSBidW5SZWdpc3RyeUFyZ3MoYXJncyk7XG4gIGlmIChyZWdpc3RyeUFyZ3MubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5pbmZvKGBydW5uaW5nIGJ1biB3aXRoIHJlZ2lzdHJ5OiAke3JlZ2lzdHJ5QXJnc1sxXX1gKTtcbiAgfVxuICBleGVjLnNwYXduU3luYyhjb21tYW5kLCBbLi4ucHJlZml4LCAuLi5hcmdzLCAuLi5yZWdpc3RyeUFyZ3NdLCB7XG4gICAgY3dkLFxuICAgIGNoZWNrOiB0cnVlLFxuICAgIGVudjogY2hpbGRFbnYoKSxcbiAgfSk7XG59XG5cbi8qKiBJbnN0YWxsIHdvcmtzcGFjZSBkZXBlbmRlbmNpZXMgd2hlbiBgbm9kZV9tb2R1bGVzYCBvciBwcm9qZW4gaXMgbWlzc2luZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVXb3Jrc3BhY2VSZWFkeShyb290OiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKG5lZWRzSW5zdGFsbChyb290KSkge1xuICAgIHJ1bkJ1bihbXCJpbnN0YWxsXCJdLCByb290KTtcbiAgfVxufVxuXG4vKipcbiAqIFJ1biBwcm9qZW4gd2l0aCB0aGUgZ2l2ZW4gYXJncyBmcm9tIGByb290YC4gUHJlZmVycyB0aGUgaW5zdGFsbGVkIGBwcm9qZW5gIGJpblxuICogdmlhIGBidW4gcnVuYCwgc28gdGhlIHdvcmtzcGFjZSdzIG93biBlbmdpbmUgKyB0YXNrcyBhcmUgdXNlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blByb2plbihhcmdzOiBzdHJpbmdbXSwgcm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHByb2plbkJpbiA9IGpvaW4ocm9vdCwgXCJub2RlX21vZHVsZXNcIiwgXCIuYmluXCIsIFwicHJvamVuXCIpO1xuICBpZiAoZXhpc3RzU3luYyhwcm9qZW5CaW4pKSB7XG4gICAgcnVuQnVuKFtwcm9qZW5CaW4sIC4uLmFyZ3NdLCByb290KTtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gRmFsbGJhY2s6IHJlc29sdmUgcHJvamVuIHRocm91Z2ggYnVuJ3MgcGFja2FnZSBydW5uZXIuXG4gIHJ1bkJ1bihbXCJ4XCIsIFwicHJvamVuXCIsIC4uLmFyZ3NdLCByb290KTtcbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRTlFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBdUIsRUFBRSxDQUN0RSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQ2xGLENBQUM7QUFFRiw0RkFBNEY7QUFDNUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUF1QjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDcEIsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFjLEVBQUUsSUFBWTtJQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0QsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPO0lBQ1QsQ0FBQztJQUNELHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYnVuIGRpc2NvdmVyeSwgd29ya3NwYWNlIGluc3RhbGwsIGFuZCBwcm9qZW4gZm9yd2FyZGluZyBmb3IgdGhlIGBkYngtdG9vbHNgIENMSS5cbiAqXG4gKiAjIyBGb3JjaW5nIGEgY3VzdG9tIHJlZ2lzdHJ5XG4gKlxuICogYnVuIGhvbm9ycyBhIGAtLXJlZ2lzdHJ5IDx1cmw+YCBmbGFnIG9uIGBidW4gaW5zdGFsbGAvYGJ1biBhZGRgIGFuZCBhIHByb2plY3RcbiAqIGAubnBtcmNgLCBidXQgKGxpa2UgcG5wbSkgaWdub3JlcyB0aGUgYG5wbV9jb25maWdfcmVnaXN0cnlgIGVudiB2YXIgZm9yIGl0cyBvd25cbiAqIHJlc29sdXRpb24uIFNvIGEgY3VzdG9tIHJlZ2lzdHJ5IGlzIGZvcmNlZCB0aHJvdWdoIFRXTyBjaGFubmVscywgZWFjaCB3aGVyZSBpdFxuICogYXBwbGllczpcbiAqXG4gKiAgLSB7QGxpbmsgYnVuUmVnaXN0cnlBcmdzfSBwYXNzZXMgYC0tcmVnaXN0cnlgIHRvIHRoZSBwYWNrYWdlLXJlc29sdmluZ1xuICogICAgc3ViY29tbWFuZHMgKGBpbnN0YWxsYC9gYWRkYC9gdXBkYXRlYCksIG5ldmVyIHRvIGBidW4gcnVuYC9gYnVueGAsIHdob3NlXG4gKiAgICB0cmFpbGluZyBhcmdzIGJlbG9uZyB0byB0aGUgc2NyaXB0LlxuICogIC0ge0BsaW5rIGNoaWxkRW52fSBrZWVwcyBgLm5wbXJjYC1zdHlsZSBlbnYgYWxpYXNlcyBzZXQgZm9yIGFueSBuZXN0ZWRcbiAqICAgIG5wbS1iYXNlZCB0b29sLCBhbmQgKGNyaXRpY2FsbHkpIHB1dHMgdGhlIGJ1bi9ub2RlIGV4ZWN1dGFibGUgZGlyIG9uIFBBVEggc29cbiAqICAgIGEgbGlmZWN5Y2xlIHNjcmlwdCBjYW4gaW52b2tlIHRoZSBydW50aW1lIGJ5IGJhcmUgbmFtZS5cbiAqXG4gKiBgQGRieC10b29scy9jb3JlYCdzIGBucG1SZWdpc3RyeSh7IG92ZXJyaWRlT25seTogdHJ1ZSB9KWAgcmV0dXJucyBub3RoaW5nIHdoZW5cbiAqIHRoZSBlZmZlY3RpdmUgcmVnaXN0cnkgSVMgbnBtanMsIHNvIG5vbmUgb2YgdGhpcyB0b3VjaGVzIGEgZGVmYXVsdCBpbnN0YWxsLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBleGVjLCBwcm9qZWN0VXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBmdW5jdGlvblV0aWxzLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgbmVlZHNJbnN0YWxsIH0gZnJvbSBcIi4vcm9vdC50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiZGJ4LXRvb2xzOmJ1blwiKTtcblxuLyoqXG4gKiBidW4gc3ViY29tbWFuZHMgdGhhdCByZXNvbHZlIHBhY2thZ2VzIGZyb20gYSByZWdpc3RyeSwgYW5kIHRoZXJlZm9yZSBhY2NlcHQgYVxuICogbWVhbmluZ2Z1bCBgLS1yZWdpc3RyeWAuIEV2ZXJ5dGhpbmcgZWxzZSAoYHJ1bmAsIGB4YCwgYHBtYCwgLi4uKSBpcyBsZWZ0IGFsb25lOlxuICogYHJ1bmAvYHhgIGZvcndhcmQgdHJhaWxpbmcgYXJndW1lbnRzIHRvIHRoZSBzY3JpcHQgdGhleSBydW4uXG4gKi9cbmNvbnN0IFJFR0lTVFJZX1NVQkNPTU1BTkRTID0gbmV3IFNldChbXCJhZGRcIiwgXCJpbnN0YWxsXCIsIFwiaVwiLCBcInVwZGF0ZVwiLCBcInVwXCJdKTtcblxuLyoqXG4gKiBUaGUgcmVnaXN0cnkgdG8gZm9yY2Ugb250byBjaGlsZCBpbnN0YWxscywgb3IgYHVuZGVmaW5lZGAgd2hlbiB0aGUgZWZmZWN0aXZlXG4gKiBvbmUgaXMgYWxyZWFkeSB0aGUgcHVibGljIGRlZmF1bHQuXG4gKlxuICogYGVudlZhcnM6IHRydWVgIGFsc28gY29uc3VsdHMgYG5wbV9jb25maWdfcmVnaXN0cnlgIGRpcmVjdGx5LCBiZWNhdXNlIGFcbiAqIGNvbnRhaW5lciBtYXkgZXhwb3J0IGl0IHdpdGhvdXQgYW55IGAubnBtcmNgIGZvciBsb29rdXAuIE1lbW9pemVkOiByZXNvbHV0aW9uXG4gKiBzaGVsbHMgb3V0LlxuICovXG5jb25zdCByZWdpc3RyeU92ZXJyaWRlID0gZnVuY3Rpb25VdGlscy5tZW1vaXplKCgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgcHJvamVjdFV0aWxzLm5wbVJlZ2lzdHJ5KG51bGwsIHsgb3ZlcnJpZGVPbmx5OiB0cnVlLCBlbnZWYXJzOiB0cnVlIH0pPy50b1N0cmluZygpLFxuKTtcblxuLyoqIGAtLXJlZ2lzdHJ5IDx1cmw+YCBmb3IgYSBidW4gaW52b2NhdGlvbiwgb3IgYFtdYCB3aGVuIHRoZSBzdWJjb21tYW5kIGRvZXNuJ3QgcmVzb2x2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidW5SZWdpc3RyeUFyZ3MoYXJnczogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHVybCA9IHJlZ2lzdHJ5T3ZlcnJpZGUoKTtcbiAgaWYgKCF1cmwpIHJldHVybiBbXTtcbiAgcmV0dXJuIGJ1blVzZXNSZWdpc3RyeShhcmdzKSA/IFtcIi0tcmVnaXN0cnlcIiwgdXJsXSA6IFtdO1xufVxuXG4vKiogV2hldGhlciB0aGUgZmlyc3QgYnVuIHN1YmNvbW1hbmQgcmVzb2x2ZXMgcGFja2FnZXMgYW5kIGFjY2VwdHMgYC0tcmVnaXN0cnlgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1blVzZXNSZWdpc3RyeShhcmdzOiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICBjb25zdCBzdWJjb21tYW5kID0gYXJncy5maW5kKChhcmcpID0+ICFhcmcuc3RhcnRzV2l0aChcIi1cIikpO1xuICByZXR1cm4gc3ViY29tbWFuZCAhPT0gdW5kZWZpbmVkICYmIFJFR0lTVFJZX1NVQkNPTU1BTkRTLmhhcyhzdWJjb21tYW5kKTtcbn1cblxuLyoqXG4gKiBgcHJvY2Vzcy5lbnZgIHBsdXMgdGhlIHJ1bnRpbWUgZXhlY3V0YWJsZSBkaXJlY3RvcnkgYW5kIHJlZ2lzdHJ5IGFsaWFzZXMuXG4gKlxuICogVGhlIGV4ZWN1dGFibGUgZGlyZWN0b3J5IG1hdHRlcnMgd2hlbiB0aGlzIENMSSB3YXMgbGF1bmNoZWQgYnkgYWJzb2x1dGUgcGF0aDpcbiAqIGJ1biBydW5zLCBidXQgYSBsaWZlY3ljbGUgc2NyaXB0IHRoYXQgaW52b2tlcyBgYnVuYC9gbm9kZWAgYnkgYmFyZSBuYW1lIHdvdWxkXG4gKiBvdGhlcndpc2UgZmFpbCB3aXRoIGBjb21tYW5kIG5vdCBmb3VuZGAuIFByZXBlbmRpbmcgYGRpcm5hbWUocHJvY2Vzcy5leGVjUGF0aClgXG4gKiAodGhlIHJ1bm5pbmcgYnVuIGJpbmFyeSdzIGRpcikgcHV0cyB0aGUgcnVudGltZSBiYWNrIG9uIFBBVEguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGlsZEVudihleHRyYT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBOb2RlSlMuUHJvY2Vzc0VudiB7XG4gIGNvbnN0IGVudjogTm9kZUpTLlByb2Nlc3NFbnYgPSB7IC4uLnByb2Nlc3MuZW52LCAuLi5leHRyYSB9O1xuICBjb25zdCBydW50aW1lQmluID0gZGlybmFtZShwcm9jZXNzLmV4ZWNQYXRoKTtcbiAgY29uc3QgcGF0aEVudHJpZXMgPSAoZW52LlBBVEggPz8gXCJcIikuc3BsaXQoZGVsaW1pdGVyKS5maWx0ZXIoQm9vbGVhbik7XG4gIGlmICghcGF0aEVudHJpZXMuaW5jbHVkZXMocnVudGltZUJpbikpIHtcbiAgICBlbnYuUEFUSCA9IFtydW50aW1lQmluLCAuLi5wYXRoRW50cmllc10uam9pbihkZWxpbWl0ZXIpO1xuICB9XG4gIGNvbnN0IHVybCA9IHJlZ2lzdHJ5T3ZlcnJpZGUoKTtcbiAgaWYgKHVybCkge1xuICAgIC8vIEJvdGggY2FzZXM6IGVudiBpcyBjYXNlLXNlbnNpdGl2ZSBvbiBQT1NJWCwgYW5kIG5wbSBsb3dlcmNhc2VzIHdoZW4gcmVhZGluZy5cbiAgICBlbnYubnBtX2NvbmZpZ19yZWdpc3RyeSA9IHVybDtcbiAgICBlbnYuTlBNX0NPTkZJR19SRUdJU1RSWSA9IHVybDtcbiAgfVxuICByZXR1cm4gZW52O1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGFyZ3YgcHJlZml4IHRvIHJ1biBidW46IHRoZSBgYnVuYCBwYWNrYWdlJ3Mgb3duIGJpbiB3aGVuIHRoaXMgQ0xJXG4gKiBpcyBpdHNlbGYgcnVubmluZyB1bmRlciBidW4gKGBwcm9jZXNzLmV4ZWNQYXRoYCBpcyB0aGUgYnVuIGJpbmFyeSksIGVsc2UgYSBiYXJlXG4gKiBgYnVuYCBvbiBQQVRILiBObyBjb3JlcGFjay9ucHggZmFsbGJhY2sgLSBidW4gaXMgdGhlIGFtYmllbnQgcnVudGltZSB0aGlzXG4gKiB0b29sY2hhaW4gcmVxdWlyZXMuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVCdW5Bcmd2SW1wbCgpOiBzdHJpbmdbXSB7XG4gIC8vIFRoZSBydW5uaW5nIHByb2Nlc3MgSVMgYnVuIGluIGV2ZXJ5IHN1cHBvcnRlZCBwYXRoICh0aGUgYmluIGlzIGBidW4gPGZpbGU+YCksXG4gIC8vIHNvIHJldXNlIGl0IGRpcmVjdGx5IC0gbm8gUEFUSCBsb29rdXAsIG5vIHBhY2thZ2UtbWFuYWdlciBzaGltLlxuICBpZiAoL1xcYmJ1blxcYi8udGVzdChwcm9jZXNzLmV4ZWNQYXRoKSkgcmV0dXJuIFtwcm9jZXNzLmV4ZWNQYXRoXTtcbiAgcmV0dXJuIFtcImJ1blwiXTtcbn1cblxuLyoqIE1lbW9pemVkIGBbY29tbWFuZCwgLi4ucHJlZml4XWAgYXJndiBwcmVmaXggdG8gcnVuIGJ1bi4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlQnVuQXJndiA9IGZ1bmN0aW9uVXRpbHMubWVtb2l6ZShyZXNvbHZlQnVuQXJndkltcGwpO1xuXG4vKiogUnVuIGJ1biB3aXRoIGluaGVyaXRlZCBzdGRpbyBmcm9tIGBjd2RgLCBmb3JjaW5nIHRoZSByZXNvbHZlZCByZWdpc3RyeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CdW4oYXJnczogc3RyaW5nW10sIGN3ZDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IFtjb21tYW5kLCAuLi5wcmVmaXhdID0gcmVzb2x2ZUJ1bkFyZ3YoKTtcbiAgY29uc3QgcmVnaXN0cnlBcmdzID0gYnVuUmVnaXN0cnlBcmdzKGFyZ3MpO1xuICBpZiAocmVnaXN0cnlBcmdzLmxlbmd0aCA+IDApIHtcbiAgICBsb2dnZXIuaW5mbyhgcnVubmluZyBidW4gd2l0aCByZWdpc3RyeTogJHtyZWdpc3RyeUFyZ3NbMV19YCk7XG4gIH1cbiAgZXhlYy5zcGF3blN5bmMoY29tbWFuZCwgWy4uLnByZWZpeCwgLi4uYXJncywgLi4ucmVnaXN0cnlBcmdzXSwge1xuICAgIGN3ZCxcbiAgICBjaGVjazogdHJ1ZSxcbiAgICBlbnY6IGNoaWxkRW52KCksXG4gIH0pO1xufVxuXG4vKiogSW5zdGFsbCB3b3Jrc3BhY2UgZGVwZW5kZW5jaWVzIHdoZW4gYG5vZGVfbW9kdWxlc2Agb3IgcHJvamVuIGlzIG1pc3NpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlV29ya3NwYWNlUmVhZHkocm9vdDogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChuZWVkc0luc3RhbGwocm9vdCkpIHtcbiAgICBydW5CdW4oW1wiaW5zdGFsbFwiXSwgcm9vdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW4gcHJvamVuIHdpdGggdGhlIGdpdmVuIGFyZ3MgZnJvbSBgcm9vdGAuIFByZWZlcnMgdGhlIGluc3RhbGxlZCBgcHJvamVuYCBiaW5cbiAqIHZpYSBgYnVuIHJ1bmAsIHNvIHRoZSB3b3Jrc3BhY2UncyBvd24gZW5naW5lICsgdGFza3MgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5Qcm9qZW4oYXJnczogc3RyaW5nW10sIHJvb3Q6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBwcm9qZW5CaW4gPSBqb2luKHJvb3QsIFwibm9kZV9tb2R1bGVzXCIsIFwiLmJpblwiLCBcInByb2plblwiKTtcbiAgaWYgKGV4aXN0c1N5bmMocHJvamVuQmluKSkge1xuICAgIHJ1bkJ1bihbcHJvamVuQmluLCAuLi5hcmdzXSwgcm9vdCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIEZhbGxiYWNrOiByZXNvbHZlIHByb2plbiB0aHJvdWdoIGJ1bidzIHBhY2thZ2UgcnVubmVyLlxuICBydW5CdW4oW1wieFwiLCBcInByb2plblwiLCAuLi5hcmdzXSwgcm9vdCk7XG59XG4iXX0=
|
package/lib/src/cli.js
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* @module
|
|
13
13
|
*/
|
|
14
14
|
import { basename } from "node:path";
|
|
15
|
+
import { runReleaseBinary, releaseBinaryCommands, } from "@dbx-tools/rust-binary";
|
|
15
16
|
import { Command } from "commander";
|
|
16
17
|
import { bootstrapWorkspace, ensureEngineCurrent, runInitialSynth, seedToolchain, } from "./bootstrap.js";
|
|
17
18
|
import { ensureWorkspaceReady, runBun, runProjen } from "./bun.js";
|
|
18
19
|
import { findWorkspaceRoot, needsBootstrap, needsToolchain } from "./root.js";
|
|
19
|
-
import { runRustReleaseBinary, rustReleaseBinaryCommands, } from "./rust-binary.js";
|
|
20
20
|
/** Commands the bin exposes, and the names help is rendered under. */
|
|
21
21
|
const PROGRAM_NAMES = ["dbx", "dbx-tools"];
|
|
22
22
|
/**
|
|
@@ -68,7 +68,7 @@ function addForwardedCommand(program, name, description, load) {
|
|
|
68
68
|
await buildProgram(`${program.name()} ${name}`).parseAsync(args, { from: "user" });
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function addReleaseCommand(program, command) {
|
|
72
72
|
program
|
|
73
73
|
.command(command.command)
|
|
74
74
|
.description(command.description)
|
|
@@ -77,7 +77,7 @@ function addRustReleaseCommand(program, command) {
|
|
|
77
77
|
.allowExcessArguments()
|
|
78
78
|
.helpOption(false)
|
|
79
79
|
.action(async (args) => {
|
|
80
|
-
process.exitCode = await
|
|
80
|
+
process.exitCode = await runReleaseBinary(command, args);
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
/** Build the `dbx` commander program (no side effects until parsed). */
|
|
@@ -100,8 +100,8 @@ export function buildProgram(name = PROGRAM_NAMES[0]) {
|
|
|
100
100
|
addForwardedCommand(program, "appkit", "AppKit helpers (env: print the environment an AppKit app resolves)", async () => (await import("@dbx-tools/cli-appkit-env/cli")).buildProgram);
|
|
101
101
|
addForwardedCommand(program, "auth", "Authenticate to Databricks and manage OAuth tokens", async () => (await import("@dbx-tools/cli-auth/cli")).buildProgram);
|
|
102
102
|
addForwardedCommand(program, "tunnel", "Run a public portr tunnel with an email-OTP gate", async () => (await import("@dbx-tools/cli-tunnel/cli")).buildProgram);
|
|
103
|
-
for (const command of
|
|
104
|
-
|
|
103
|
+
for (const command of releaseBinaryCommands()) {
|
|
104
|
+
addReleaseCommand(program, command);
|
|
105
105
|
}
|
|
106
106
|
return program;
|
|
107
107
|
}
|
|
@@ -117,4 +117,4 @@ function programName(argv) {
|
|
|
117
117
|
export async function runCli(argv) {
|
|
118
118
|
await buildProgram(programName(argv)).parseAsync(argv);
|
|
119
119
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIseUJBQXlCLEdBRTFCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsc0VBQXNFO0FBQ3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBRXBEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQW9CLEVBQUUsUUFBaUI7SUFDL0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FB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a0QsRUFDbEQsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQ3JFLENBQUM7SUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLHlCQUF5QixFQUFFLEVBQUUsQ0FBQztRQUNsRCxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFjO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLElBQWM7SUFDekMsTUFBTSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbW1hbmRlciBlbnRyeSBmb3IgYGRieGAgYW5kIGl0cyBgZGJ4LXRvb2xzYCBhbGlhcy5cbiAqXG4gKiBgZGV2YCBib290c3RyYXBzIG9yIHJlcGFpcnMgYSB3b3Jrc3BhY2UgYW5kIGZvcndhcmRzIHRvIHByb2plbi5cbiAqIGBhcHBraXRgIHByb3ZpZGVzIEFwcEtpdCBlbnZpcm9ubWVudCBoZWxwZXJzLlxuICogYGF1dGhgIG1hbmFnZXMgRGF0YWJyaWNrcyBPQXV0aCBhbmQgYWNjZXNzIHRva2Vucy5cbiAqIGB0dW5uZWxgIHJ1bnMgYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggcGFzc3dvcmRsZXNzIGFjY2VzcyBnYXRpbmcuXG4gKlxuICogRmVhdHVyZSBjb21tYW5kcyBsb2FkIHRoZWlyIHNpYmxpbmcgcGFja2FnZXMgb25seSB3aGVuIHNlbGVjdGVkIGFuZCBmb3J3YXJkXG4gKiB0aGVpciBjb21wbGV0ZSBhcmd1bWVudCBsaXN0LCBpbmNsdWRpbmcgYC0taGVscGAuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQge1xuICBib290c3RyYXBXb3Jrc3BhY2UsXG4gIGVuc3VyZUVuZ2luZUN1cnJlbnQsXG4gIHJ1bkluaXRpYWxTeW50aCxcbiAgc2VlZFRvb2xjaGFpbixcbn0gZnJvbSBcIi4vYm9vdHN0cmFwLnRzXCI7XG5pbXBvcnQgeyBlbnN1cmVXb3Jrc3BhY2VSZWFkeSwgcnVuQnVuLCBydW5Qcm9qZW4gfSBmcm9tIFwiLi9idW4udHNcIjtcbmltcG9ydCB7IGZpbmRXb3Jrc3BhY2VSb290LCBuZWVkc0Jvb3RzdHJhcCwgbmVlZHNUb29sY2hhaW4gfSBmcm9tIFwiLi9yb290LnRzXCI7XG5pbXBvcnQge1xuICBydW5SdXN0UmVsZWFzZUJpbmFyeSxcbiAgcnVzdFJlbGVhc2VCaW5hcnlDb21tYW5kcyxcbiAgdHlwZSBSdXN0UmVsZWFzZUJpbmFyeUNvbW1hbmQsXG59IGZyb20gXCIuL3J1c3QtYmluYXJ5LnRzXCI7XG5cbi8qKiBDb21tYW5kcyB0aGUgYmluIGV4cG9zZXMsIGFuZCB0aGUgbmFtZXMgaGVscCBpcyByZW5kZXJlZCB1bmRlci4gKi9cbmNvbnN0IFBST0dSQU1fTkFNRVMgPSBbXCJkYnhcIiwgXCJkYngtdG9vbHNcIl0gYXMgY29uc3Q7XG5cbi8qKlxuICogUHJlcGFyZSB0aGUgd29ya3NwYWNlIGF0IGByb290YCwgdGhlbiBydW4gcHJvamVuICh2aWEgYnVuKSB3aXRoIGBwcm9qZW5BcmdzYC5cbiAqXG4gKiBUaHJlZSBjYXNlcywgaW4gb3JkZXI6XG4gKiAgIC0gbm8gYC5wcm9qZW5yYy50c2AgYXQgYWxsIC0+IGZ1bGwgYm9vdHN0cmFwIChzY2FmZm9sZCArIGluc3RhbGwgKyBzeW50aCksXG4gKiAgICAgd2hpY2ggYWxyZWFkeSBydW5zIHRoZSBpbml0aWFsIHN5bnRoOyBub3RoaW5nIG1vcmUgdG8gZm9yd2FyZC5cbiAqICAgLSBhIGAucHJvamVucmMudHNgIGJ1dCB0aGUgZW5naW5lL3Rvb2xjaGFpbiBpc24ndCBpbnN0YWxsZWQgKGUuZy4gYSBmcmVzaGx5XG4gKiAgICAgY29waWVkIHByb2plY3Qgd2hvc2UgZ2VuZXJhdGVkIGZpbGVzICsgbWFuaWZlc3RzIGFyZSBnaXRpZ25vcmVkKSAtPiBzZWVkXG4gKiAgICAgdGhlIHRvb2xjaGFpbiwgdGhlbiBydW4gdGhlIElOSVRJQUwgc3ludGggZGlyZWN0bHkgKHRoZSBwcm9qZW4gdGFza3MgdGhlXG4gKiAgICAgYXJncyB3b3VsZCBuYW1lLCBsaWtlIGBzeW5jYCwgZG9uJ3QgZXhpc3QgdW50aWwgYC5wcm9qZW5yYy50c2AgaGFzIHJ1blxuICogICAgIG9uY2UpLCBhbmQgaW5zdGFsbC4gRG9uJ3QgZm9yd2FyZCBgcHJvamVuQXJnc2AgLSB0aGUgc3ludGggaXMgdGhlIHdvcmsuXG4gKiAgIC0gb3RoZXJ3aXNlIChlc3RhYmxpc2hlZCB3b3Jrc3BhY2UpIC0+IGVuc3VyZSBkZXBzLCBicmluZyB0aGUgZW5naW5lIHVwIHRvXG4gKiAgICAgdGhpcyBDTEkncyB2ZXJzaW9uLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzOiBzdHJpbmdbXSwgc3RhcnREaXI/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgcm9vdCA9IGF3YWl0IGZpbmRXb3Jrc3BhY2VSb290KHN0YXJ0RGlyKTtcbiAgaWYgKG5lZWRzQm9vdHN0cmFwKHJvb3QpKSB7XG4gICAgYm9vdHN0cmFwV29ya3NwYWNlKHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobmVlZHNUb29sY2hhaW4ocm9vdCkpIHtcbiAgICBzZWVkVG9vbGNoYWluKHJvb3QpO1xuICAgIHJ1bkluaXRpYWxTeW50aChyb290KTtcbiAgICBydW5CdW4oW1wiaW5zdGFsbFwiXSwgcm9vdCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVuc3VyZVdvcmtzcGFjZVJlYWR5KHJvb3QpO1xuICBlbnN1cmVFbmdpbmVDdXJyZW50KHJvb3QpO1xuICBydW5Qcm9qZW4ocHJvamVuQXJncywgcm9vdCk7XG59XG5cbi8qKlxuICogTW91bnQgYG5hbWVgIGFzIGEgY29tbWFuZCB0aGF0IGNhcHR1cmVzIGV2ZXJ5IGZvbGxvd2luZyB0b2tlbiB2ZXJiYXRpbSBhbmRcbiAqIGhhbmRzIGl0IHRvIHRoZSBwcm9ncmFtIGBsb2FkKClgIHJlc29sdmVzLiBgaGVscE9wdGlvbihmYWxzZSlgIGlzIHdoYXQgbGV0c1xuICogYC0taGVscGAgdGhyb3VnaCB0byB0aGUgY2hpbGQgaW5zdGVhZCBvZiBiZWluZyBhbnN3ZXJlZCBoZXJlLCBhbmQgdGhlIGNoaWxkXG4gKiBwcm9ncmFtIG93bnMgaXRzIG93biBmbGFncywgc28gdGhpcyB3cmFwcGVyIG5ldmVyIGhhcyB0byByZXN0YXRlIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gIHByb2dyYW06IENvbW1hbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwobmFtZTogc3RyaW5nKSA9PiBDb21tYW5kPixcbik6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQobmFtZSlcbiAgICAuZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pXG4gICAgLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIGBhcmd1bWVudHMgZm9yd2FyZGVkIHRvICR7bmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkUHJvZ3JhbSA9IGF3YWl0IGxvYWQoKTtcbiAgICAgIGF3YWl0IGJ1aWxkUHJvZ3JhbShgJHtwcm9ncmFtLm5hbWUoKX0gJHtuYW1lfWApLnBhcnNlQXN5bmMoYXJncywgeyBmcm9tOiBcInVzZXJcIiB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkUnVzdFJlbGVhc2VDb21tYW5kKHByb2dyYW06IENvbW1hbmQsIGNvbW1hbmQ6IFJ1c3RSZWxlYXNlQmluYXJ5Q29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoY29tbWFuZC5jb21tYW5kKVxuICAgIC5kZXNjcmlwdGlvbihjb21tYW5kLmRlc2NyaXB0aW9uKVxuICAgIC5hcmd1bWVudChcIlthcmdzLi4uXVwiLCBgYXJndW1lbnRzIGZvcndhcmRlZCB0byAke2NvbW1hbmQuYmluYXJ5TmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSBhd2FpdCBydW5SdXN0UmVsZWFzZUJpbmFyeShjb21tYW5kLCBhcmdzKTtcbiAgICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiRGF0YWJyaWNrcyBkZXZlbG9wZXIgdG9vbHM6IHdvcmtzcGFjZSBsaWZlY3ljbGUsIEFwcEtpdCBlbnYsIGF1dGgsIHR1bm5lbHMsIGFuZCBuYXRpdmUgcHJveGllc1wiLFxuICAgIClcbiAgICAuc2hvd0hlbHBBZnRlckVycm9yKClcbiAgICAuaGVscE9wdGlvbihcIi1oLCAtLWhlbHBcIiwgYFNob3cgJHtuYW1lfSBoZWxwYCk7XG5cbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKFwiZGV2XCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiQm9vdHN0cmFwIG9yIHJlcGFpciBhIGRieC10b29scyB3b3Jrc3BhY2UsIHRoZW4gZm9yd2FyZCB0byBwcm9qZW5cIilcbiAgICAuYXJndW1lbnQoXCJbcHJvamVuQXJncy4uLl1cIiwgXCJwcm9qZW4gdGFzayBhbmQgYXJndW1lbnRzIChlLmcuIHN5bmMgLS13YXRjaClcIilcbiAgICAuYWxsb3dVbmtub3duT3B0aW9uKClcbiAgICAuYWxsb3dFeGNlc3NBcmd1bWVudHMoKVxuICAgIC5oZWxwT3B0aW9uKGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKHByb2plbkFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBhd2FpdCBwcmVwYXJlQW5kUnVuUHJvamVuKHByb2plbkFyZ3MpO1xuICAgIH0pO1xuXG4gIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gICAgcHJvZ3JhbSxcbiAgICBcImFwcGtpdFwiLFxuICAgIFwiQXBwS2l0IGhlbHBlcnMgKGVudjogcHJpbnQgdGhlIGVudmlyb25tZW50IGFuIEFwcEtpdCBhcHAgcmVzb2x2ZXMpXCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIkBkYngtdG9vbHMvY2xpLWFwcGtpdC1lbnYvY2xpXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiYXV0aFwiLFxuICAgIFwiQXV0aGVudGljYXRlIHRvIERhdGFicmlja3MgYW5kIG1hbmFnZSBPQXV0aCB0b2tlbnNcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiQGRieC10b29scy9jbGktYXV0aC9jbGlcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJ0dW5uZWxcIixcbiAgICBcIlJ1biBhIHB1YmxpYyBwb3J0ciB0dW5uZWwgd2l0aCBhbiBlbWFpbC1PVFAgZ2F0ZVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCJAZGJ4LXRvb2xzL2NsaS10dW5uZWwvY2xpXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgZm9yIChjb25zdCBjb21tYW5kIG9mIHJ1c3RSZWxlYXNlQmluYXJ5Q29tbWFuZHMoKSkge1xuICAgIGFkZFJ1c3RSZWxlYXNlQ29tbWFuZChwcm9ncmFtLCBjb21tYW5kKTtcbiAgfVxuXG4gIHJldHVybiBwcm9ncmFtO1xufVxuXG4vKipcbiAqIFByb2dyYW0gbmFtZSBmb3IgaGVscCBvdXRwdXQ6IHdoaWNoZXZlciBiaW4gdGhlIHVzZXIgYWN0dWFsbHkgdHlwZWQsIHNvXG4gKiBgZGJ4LXRvb2xzIC0taGVscGAgZG9lc24ndCBkb2N1bWVudCBpdHNlbGYgYXMgYGRieGAuIEZhbGxzIGJhY2sgdG8gYGRieGAuXG4gKi9cbmZ1bmN0aW9uIHByb2dyYW1OYW1lKGFyZ3Y6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgaW52b2tlZCA9IGFyZ3ZbMV0gPyBiYXNlbmFtZShhcmd2WzFdKS5yZXBsYWNlKC9cXC4oPzpbY21dP1tqdF1zKSQvLCBcIlwiKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIFBST0dSQU1fTkFNRVMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUgPT09IGludm9rZWQpID8/IFBST0dSQU1fTkFNRVNbMF07XG59XG5cbi8qKiBQYXJzZSBgYXJndmAgKGEgYHByb2Nlc3MuYXJndmApIGFuZCBydW4gdGhlIG1hdGNoaW5nIGNvbW1hbmQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ2xpKGFyZ3Y6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGJ1aWxkUHJvZ3JhbShwcm9ncmFtTmFtZShhcmd2KSkucGFyc2VBc3luYyhhcmd2KTtcbn1cbiJdfQ==
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEdBRXRCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUUsc0VBQXNFO0FBQ3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBRXBEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQW9CLEVBQUUsUUFBaUI7SUFDL0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FB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a0QsRUFDbEQsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQ3JFLENBQUM7SUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztRQUM5QyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFjO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLElBQWM7SUFDekMsTUFBTSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbW1hbmRlciBlbnRyeSBmb3IgYGRieGAgYW5kIGl0cyBgZGJ4LXRvb2xzYCBhbGlhcy5cbiAqXG4gKiBgZGV2YCBib290c3RyYXBzIG9yIHJlcGFpcnMgYSB3b3Jrc3BhY2UgYW5kIGZvcndhcmRzIHRvIHByb2plbi5cbiAqIGBhcHBraXRgIHByb3ZpZGVzIEFwcEtpdCBlbnZpcm9ubWVudCBoZWxwZXJzLlxuICogYGF1dGhgIG1hbmFnZXMgRGF0YWJyaWNrcyBPQXV0aCBhbmQgYWNjZXNzIHRva2Vucy5cbiAqIGB0dW5uZWxgIHJ1bnMgYSBwdWJsaWMgcG9ydHIgdHVubmVsIHdpdGggcGFzc3dvcmRsZXNzIGFjY2VzcyBnYXRpbmcuXG4gKlxuICogRmVhdHVyZSBjb21tYW5kcyBsb2FkIHRoZWlyIHNpYmxpbmcgcGFja2FnZXMgb25seSB3aGVuIHNlbGVjdGVkIGFuZCBmb3J3YXJkXG4gKiB0aGVpciBjb21wbGV0ZSBhcmd1bWVudCBsaXN0LCBpbmNsdWRpbmcgYC0taGVscGAuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7XG4gIHJ1blJlbGVhc2VCaW5hcnksXG4gIHJlbGVhc2VCaW5hcnlDb21tYW5kcyxcbiAgdHlwZSBSZWxlYXNlQmluYXJ5Q29tbWFuZCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvcnVzdC1iaW5hcnlcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQge1xuICBib290c3RyYXBXb3Jrc3BhY2UsXG4gIGVuc3VyZUVuZ2luZUN1cnJlbnQsXG4gIHJ1bkluaXRpYWxTeW50aCxcbiAgc2VlZFRvb2xjaGFpbixcbn0gZnJvbSBcIi4vYm9vdHN0cmFwLnRzXCI7XG5pbXBvcnQgeyBlbnN1cmVXb3Jrc3BhY2VSZWFkeSwgcnVuQnVuLCBydW5Qcm9qZW4gfSBmcm9tIFwiLi9idW4udHNcIjtcbmltcG9ydCB7IGZpbmRXb3Jrc3BhY2VSb290LCBuZWVkc0Jvb3RzdHJhcCwgbmVlZHNUb29sY2hhaW4gfSBmcm9tIFwiLi9yb290LnRzXCI7XG5cbi8qKiBDb21tYW5kcyB0aGUgYmluIGV4cG9zZXMsIGFuZCB0aGUgbmFtZXMgaGVscCBpcyByZW5kZXJlZCB1bmRlci4gKi9cbmNvbnN0IFBST0dSQU1fTkFNRVMgPSBbXCJkYnhcIiwgXCJkYngtdG9vbHNcIl0gYXMgY29uc3Q7XG5cbi8qKlxuICogUHJlcGFyZSB0aGUgd29ya3NwYWNlIGF0IGByb290YCwgdGhlbiBydW4gcHJvamVuICh2aWEgYnVuKSB3aXRoIGBwcm9qZW5BcmdzYC5cbiAqXG4gKiBUaHJlZSBjYXNlcywgaW4gb3JkZXI6XG4gKiAgIC0gbm8gYC5wcm9qZW5yYy50c2AgYXQgYWxsIC0+IGZ1bGwgYm9vdHN0cmFwIChzY2FmZm9sZCArIGluc3RhbGwgKyBzeW50aCksXG4gKiAgICAgd2hpY2ggYWxyZWFkeSBydW5zIHRoZSBpbml0aWFsIHN5bnRoOyBub3RoaW5nIG1vcmUgdG8gZm9yd2FyZC5cbiAqICAgLSBhIGAucHJvamVucmMudHNgIGJ1dCB0aGUgZW5naW5lL3Rvb2xjaGFpbiBpc24ndCBpbnN0YWxsZWQgKGUuZy4gYSBmcmVzaGx5XG4gKiAgICAgY29waWVkIHByb2plY3Qgd2hvc2UgZ2VuZXJhdGVkIGZpbGVzICsgbWFuaWZlc3RzIGFyZSBnaXRpZ25vcmVkKSAtPiBzZWVkXG4gKiAgICAgdGhlIHRvb2xjaGFpbiwgdGhlbiBydW4gdGhlIElOSVRJQUwgc3ludGggZGlyZWN0bHkgKHRoZSBwcm9qZW4gdGFza3MgdGhlXG4gKiAgICAgYXJncyB3b3VsZCBuYW1lLCBsaWtlIGBzeW5jYCwgZG9uJ3QgZXhpc3QgdW50aWwgYC5wcm9qZW5yYy50c2AgaGFzIHJ1blxuICogICAgIG9uY2UpLCBhbmQgaW5zdGFsbC4gRG9uJ3QgZm9yd2FyZCBgcHJvamVuQXJnc2AgLSB0aGUgc3ludGggaXMgdGhlIHdvcmsuXG4gKiAgIC0gb3RoZXJ3aXNlIChlc3RhYmxpc2hlZCB3b3Jrc3BhY2UpIC0+IGVuc3VyZSBkZXBzLCBicmluZyB0aGUgZW5naW5lIHVwIHRvXG4gKiAgICAgdGhpcyBDTEkncyB2ZXJzaW9uLCB0aGVuIGZvcndhcmQgdG8gcHJvamVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUFuZFJ1blByb2plbihwcm9qZW5BcmdzOiBzdHJpbmdbXSwgc3RhcnREaXI/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgcm9vdCA9IGF3YWl0IGZpbmRXb3Jrc3BhY2VSb290KHN0YXJ0RGlyKTtcbiAgaWYgKG5lZWRzQm9vdHN0cmFwKHJvb3QpKSB7XG4gICAgYm9vdHN0cmFwV29ya3NwYWNlKHJvb3QpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobmVlZHNUb29sY2hhaW4ocm9vdCkpIHtcbiAgICBzZWVkVG9vbGNoYWluKHJvb3QpO1xuICAgIHJ1bkluaXRpYWxTeW50aChyb290KTtcbiAgICBydW5CdW4oW1wiaW5zdGFsbFwiXSwgcm9vdCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVuc3VyZVdvcmtzcGFjZVJlYWR5KHJvb3QpO1xuICBlbnN1cmVFbmdpbmVDdXJyZW50KHJvb3QpO1xuICBydW5Qcm9qZW4ocHJvamVuQXJncywgcm9vdCk7XG59XG5cbi8qKlxuICogTW91bnQgYG5hbWVgIGFzIGEgY29tbWFuZCB0aGF0IGNhcHR1cmVzIGV2ZXJ5IGZvbGxvd2luZyB0b2tlbiB2ZXJiYXRpbSBhbmRcbiAqIGhhbmRzIGl0IHRvIHRoZSBwcm9ncmFtIGBsb2FkKClgIHJlc29sdmVzLiBgaGVscE9wdGlvbihmYWxzZSlgIGlzIHdoYXQgbGV0c1xuICogYC0taGVscGAgdGhyb3VnaCB0byB0aGUgY2hpbGQgaW5zdGVhZCBvZiBiZWluZyBhbnN3ZXJlZCBoZXJlLCBhbmQgdGhlIGNoaWxkXG4gKiBwcm9ncmFtIG93bnMgaXRzIG93biBmbGFncywgc28gdGhpcyB3cmFwcGVyIG5ldmVyIGhhcyB0byByZXN0YXRlIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gIHByb2dyYW06IENvbW1hbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwobmFtZTogc3RyaW5nKSA9PiBDb21tYW5kPixcbik6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQobmFtZSlcbiAgICAuZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pXG4gICAgLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIGBhcmd1bWVudHMgZm9yd2FyZGVkIHRvICR7bmFtZX1gKVxuICAgIC5hbGxvd1Vua25vd25PcHRpb24oKVxuICAgIC5hbGxvd0V4Y2Vzc0FyZ3VtZW50cygpXG4gICAgLmhlbHBPcHRpb24oZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAoYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkUHJvZ3JhbSA9IGF3YWl0IGxvYWQoKTtcbiAgICAgIGF3YWl0IGJ1aWxkUHJvZ3JhbShgJHtwcm9ncmFtLm5hbWUoKX0gJHtuYW1lfWApLnBhcnNlQXN5bmMoYXJncywgeyBmcm9tOiBcInVzZXJcIiB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkUmVsZWFzZUNvbW1hbmQocHJvZ3JhbTogQ29tbWFuZCwgY29tbWFuZDogUmVsZWFzZUJpbmFyeUNvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKGNvbW1hbmQuY29tbWFuZClcbiAgICAuZGVzY3JpcHRpb24oY29tbWFuZC5kZXNjcmlwdGlvbilcbiAgICAuYXJndW1lbnQoXCJbYXJncy4uLl1cIiwgYGFyZ3VtZW50cyBmb3J3YXJkZWQgdG8gJHtjb21tYW5kLmJpbmFyeU5hbWV9YClcbiAgICAuYWxsb3dVbmtub3duT3B0aW9uKClcbiAgICAuYWxsb3dFeGNlc3NBcmd1bWVudHMoKVxuICAgIC5oZWxwT3B0aW9uKGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKGFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBwcm9jZXNzLmV4aXRDb2RlID0gYXdhaXQgcnVuUmVsZWFzZUJpbmFyeShjb21tYW5kLCBhcmdzKTtcbiAgICB9KTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBgZGJ4YCBjb21tYW5kZXIgcHJvZ3JhbSAobm8gc2lkZSBlZmZlY3RzIHVudGlsIHBhcnNlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWU6IHN0cmluZyA9IFBST0dSQU1fTkFNRVNbMF0pOiBDb21tYW5kIHtcbiAgY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgIFwiRGF0YWJyaWNrcyBkZXZlbG9wZXIgdG9vbHM6IHdvcmtzcGFjZSBsaWZlY3ljbGUsIEFwcEtpdCBlbnYsIGF1dGgsIHR1bm5lbHMsIGFuZCBuYXRpdmUgcHJveGllc1wiLFxuICAgIClcbiAgICAuc2hvd0hlbHBBZnRlckVycm9yKClcbiAgICAuaGVscE9wdGlvbihcIi1oLCAtLWhlbHBcIiwgYFNob3cgJHtuYW1lfSBoZWxwYCk7XG5cbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKFwiZGV2XCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiQm9vdHN0cmFwIG9yIHJlcGFpciBhIGRieC10b29scyB3b3Jrc3BhY2UsIHRoZW4gZm9yd2FyZCB0byBwcm9qZW5cIilcbiAgICAuYXJndW1lbnQoXCJbcHJvamVuQXJncy4uLl1cIiwgXCJwcm9qZW4gdGFzayBhbmQgYXJndW1lbnRzIChlLmcuIHN5bmMgLS13YXRjaClcIilcbiAgICAuYWxsb3dVbmtub3duT3B0aW9uKClcbiAgICAuYWxsb3dFeGNlc3NBcmd1bWVudHMoKVxuICAgIC5oZWxwT3B0aW9uKGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKHByb2plbkFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBhd2FpdCBwcmVwYXJlQW5kUnVuUHJvamVuKHByb2plbkFyZ3MpO1xuICAgIH0pO1xuXG4gIGFkZEZvcndhcmRlZENvbW1hbmQoXG4gICAgcHJvZ3JhbSxcbiAgICBcImFwcGtpdFwiLFxuICAgIFwiQXBwS2l0IGhlbHBlcnMgKGVudjogcHJpbnQgdGhlIGVudmlyb25tZW50IGFuIEFwcEtpdCBhcHAgcmVzb2x2ZXMpXCIsXG4gICAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIkBkYngtdG9vbHMvY2xpLWFwcGtpdC1lbnYvY2xpXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgYWRkRm9yd2FyZGVkQ29tbWFuZChcbiAgICBwcm9ncmFtLFxuICAgIFwiYXV0aFwiLFxuICAgIFwiQXV0aGVudGljYXRlIHRvIERhdGFicmlja3MgYW5kIG1hbmFnZSBPQXV0aCB0b2tlbnNcIixcbiAgICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiQGRieC10b29scy9jbGktYXV0aC9jbGlcIikpLmJ1aWxkUHJvZ3JhbSxcbiAgKTtcblxuICBhZGRGb3J3YXJkZWRDb21tYW5kKFxuICAgIHByb2dyYW0sXG4gICAgXCJ0dW5uZWxcIixcbiAgICBcIlJ1biBhIHB1YmxpYyBwb3J0ciB0dW5uZWwgd2l0aCBhbiBlbWFpbC1PVFAgZ2F0ZVwiLFxuICAgIGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCJAZGJ4LXRvb2xzL2NsaS10dW5uZWwvY2xpXCIpKS5idWlsZFByb2dyYW0sXG4gICk7XG5cbiAgZm9yIChjb25zdCBjb21tYW5kIG9mIHJlbGVhc2VCaW5hcnlDb21tYW5kcygpKSB7XG4gICAgYWRkUmVsZWFzZUNvbW1hbmQocHJvZ3JhbSwgY29tbWFuZCk7XG4gIH1cblxuICByZXR1cm4gcHJvZ3JhbTtcbn1cblxuLyoqXG4gKiBQcm9ncmFtIG5hbWUgZm9yIGhlbHAgb3V0cHV0OiB3aGljaGV2ZXIgYmluIHRoZSB1c2VyIGFjdHVhbGx5IHR5cGVkLCBzb1xuICogYGRieC10b29scyAtLWhlbHBgIGRvZXNuJ3QgZG9jdW1lbnQgaXRzZWxmIGFzIGBkYnhgLiBGYWxscyBiYWNrIHRvIGBkYnhgLlxuICovXG5mdW5jdGlvbiBwcm9ncmFtTmFtZShhcmd2OiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGludm9rZWQgPSBhcmd2WzFdID8gYmFzZW5hbWUoYXJndlsxXSkucmVwbGFjZSgvXFwuKD86W2NtXT9banRdcykkLywgXCJcIikgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBQUk9HUkFNX05BTUVTLmZpbmQoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlID09PSBpbnZva2VkKSA/PyBQUk9HUkFNX05BTUVTWzBdO1xufVxuXG4vKiogUGFyc2UgYGFyZ3ZgIChhIGBwcm9jZXNzLmFyZ3ZgKSBhbmQgcnVuIHRoZSBtYXRjaGluZyBjb21tYW5kLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNsaShhcmd2OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBidWlsZFByb2dyYW0ocHJvZ3JhbU5hbWUoYXJndikpLnBhcnNlQXN5bmMoYXJndik7XG59XG4iXX0=
|
package/lib/src/root.js
CHANGED
|
@@ -4,37 +4,18 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
|
-
import { basename,
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
async function gitToplevel() {
|
|
11
|
-
const { exitCode, stdout } = await exec.spawn("git", ["rev-parse", "--show-toplevel"], {
|
|
12
|
-
stdout: "capture",
|
|
13
|
-
stderr: "ignore",
|
|
14
|
-
stdin: "ignore",
|
|
15
|
-
});
|
|
16
|
-
if (exitCode !== 0)
|
|
17
|
-
return undefined;
|
|
18
|
-
return stdout || undefined;
|
|
19
|
-
}
|
|
7
|
+
import { basename, join, resolve } from "node:path";
|
|
8
|
+
import { projectUtils } from "@dbx-tools/core";
|
|
9
|
+
import { functionUtils } from "@dbx-tools/shared-core";
|
|
20
10
|
/**
|
|
21
11
|
* Walk upward from `startDir` for `.projenrc.ts`. If none is found, try git
|
|
22
12
|
* top-level only when that directory also contains `.projenrc.ts`; otherwise return
|
|
23
13
|
* `resolve(startDir)` (which may not be a workspace root).
|
|
24
14
|
*/
|
|
25
15
|
export async function findWorkspaceRoot(startDir = process.cwd()) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return dir;
|
|
30
|
-
const parent = dirname(dir);
|
|
31
|
-
if (parent === dir)
|
|
32
|
-
break;
|
|
33
|
-
dir = parent;
|
|
34
|
-
}
|
|
35
|
-
const fromGit = await gitToplevel();
|
|
36
|
-
if (fromGit && existsSync(join(fromGit, ".projenrc.ts")))
|
|
37
|
-
return fromGit;
|
|
16
|
+
const discovered = projectUtils.root(startDir);
|
|
17
|
+
if (discovered && existsSync(join(discovered, ".projenrc.ts")))
|
|
18
|
+
return discovered;
|
|
38
19
|
return resolve(startDir);
|
|
39
20
|
}
|
|
40
21
|
/**
|
|
@@ -69,9 +50,9 @@ export function needsToolchain(root) {
|
|
|
69
50
|
return !existsSync(join(modules, "projen")) || !existsSync(join(modules, "@dbx-tools", "projen"));
|
|
70
51
|
}
|
|
71
52
|
/** Async, memoized root lookup from the process cwd at first use. */
|
|
72
|
-
export const workspaceRoot =
|
|
53
|
+
export const workspaceRoot = functionUtils.memoize(() => findWorkspaceRoot());
|
|
73
54
|
/** Short label for log output (`basename` of the resolved root). */
|
|
74
55
|
export function rootLabel(root) {
|
|
75
56
|
return basename(root) || root;
|
|
76
57
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLFdBQW1CLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDdEUsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ2xGLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pELElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEcsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUU5RSxvRUFBb0U7QUFDcEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBQ3BDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXb3Jrc3BhY2Ugcm9vdCBkZXRlY3Rpb24gZm9yIHRoZSBgZGJ4LXRvb2xzYCBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGJhc2VuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcHJvamVjdFV0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsgZnVuY3Rpb25VdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5cbi8qKlxuICogV2FsayB1cHdhcmQgZnJvbSBgc3RhcnREaXJgIGZvciBgLnByb2plbnJjLnRzYC4gSWYgbm9uZSBpcyBmb3VuZCwgdHJ5IGdpdFxuICogdG9wLWxldmVsIG9ubHkgd2hlbiB0aGF0IGRpcmVjdG9yeSBhbHNvIGNvbnRhaW5zIGAucHJvamVucmMudHNgOyBvdGhlcndpc2UgcmV0dXJuXG4gKiBgcmVzb2x2ZShzdGFydERpcilgICh3aGljaCBtYXkgbm90IGJlIGEgd29ya3NwYWNlIHJvb3QpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZFdvcmtzcGFjZVJvb3Qoc3RhcnREaXI6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCkpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBkaXNjb3ZlcmVkID0gcHJvamVjdFV0aWxzLnJvb3Qoc3RhcnREaXIpO1xuICBpZiAoZGlzY292ZXJlZCAmJiBleGlzdHNTeW5jKGpvaW4oZGlzY292ZXJlZCwgXCIucHJvamVucmMudHNcIikpKSByZXR1cm4gZGlzY292ZXJlZDtcbiAgcmV0dXJuIHJlc29sdmUoc3RhcnREaXIpO1xufVxuXG4vKipcbiAqIFRydWUgd2hlbiB0aGUgZm9sZGVyIGhhcyBubyBgLnByb2plbnJjLnRzYCB5ZXQgYW5kIG5lZWRzIGZ1bGwgYm9vdHN0cmFwcGluZy5cbiAqIEtleWluZyBvZmYgYC5wcm9qZW5yYy50c2AgKG5vdCBgcGFja2FnZS5qc29uYCkgYXZvaWRzIGNsb2JiZXJpbmcgYSBjbGVhbmVkXG4gKiB3b3Jrc3BhY2UgdGhhdCBzdGlsbCBoYXMgYSBoYW5kLWF1dGhvcmVkIHByb2plbnJjLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmVlZHNCb290c3RyYXAocm9vdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAhZXhpc3RzU3luYyhqb2luKHJvb3QsIFwiLnByb2plbnJjLnRzXCIpKTtcbn1cblxuLyoqIFRydWUgd2hlbiBgbm9kZV9tb2R1bGVzYCBvciBwcm9qZW4gaXRzZWxmIGlzIG1pc3NpbmcgdW5kZXIgYHJvb3RgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5lZWRzSW5zdGFsbChyb290OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFleGlzdHNTeW5jKGpvaW4ocm9vdCwgXCJub2RlX21vZHVsZXNcIikpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGV4aXN0c1N5bmMoam9pbihyb290LCBcIi5wcm9qZW5yYy50c1wiKSkgJiYgIWV4aXN0c1N5bmMoam9pbihyb290LCBcIm5vZGVfbW9kdWxlc1wiLCBcInByb2plblwiKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVHJ1ZSB3aGVuIHRoZSBzeW50aCBUT09MQ0hBSU4gaXNuJ3QgaW5zdGFsbGVkIHlldDogbm8gYG5vZGVfbW9kdWxlc2AsIG9yIHRoZVxuICogZGJ4LXRvb2xzIGVuZ2luZSAvIGBwcm9qZW5gIGFyZW4ndCByZXNvbHZhYmxlIHVuZGVyIGl0LiBEaXN0aW5jdCBmcm9tIGEgZnVsbFxuICogYm9vdHN0cmFwICh3aGljaCBrZXlzIG9mZiBhIE1JU1NJTkcgYC5wcm9qZW5yYy50c2ApOiBoZXJlIHRoZSBwcm9qZW5yYyBleGlzdHNcbiAqIGJ1dCBpdHMgZGVwZW5kZW5jaWVzIGRvbid0IC0gZS5nLiBhIGNvcGllZCBwcm9qZWN0IHdob3NlIGdlbmVyYXRlZCBtYW5pZmVzdHNcbiAqIGFuZCBgbm9kZV9tb2R1bGVzYCBhcmUgZ2l0aWdub3JlZC4gU2VlZGluZyB0aGUgdG9vbGNoYWluIChub3Qgc2NhZmZvbGRpbmcpXG4gKiBtYWtlcyBpdCBzeW50aC1yZWFkeSB3aXRob3V0IHRvdWNoaW5nIHRoZSBoYW5kLWF1dGhvcmVkIGAucHJvamVucmMudHNgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmVlZHNUb29sY2hhaW4ocm9vdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vZHVsZXMgPSBqb2luKHJvb3QsIFwibm9kZV9tb2R1bGVzXCIpO1xuICBpZiAoIWV4aXN0c1N5bmMobW9kdWxlcykpIHJldHVybiB0cnVlO1xuICByZXR1cm4gIWV4aXN0c1N5bmMoam9pbihtb2R1bGVzLCBcInByb2plblwiKSkgfHwgIWV4aXN0c1N5bmMoam9pbihtb2R1bGVzLCBcIkBkYngtdG9vbHNcIiwgXCJwcm9qZW5cIikpO1xufVxuXG4vKiogQXN5bmMsIG1lbW9pemVkIHJvb3QgbG9va3VwIGZyb20gdGhlIHByb2Nlc3MgY3dkIGF0IGZpcnN0IHVzZS4gKi9cbmV4cG9ydCBjb25zdCB3b3Jrc3BhY2VSb290ID0gZnVuY3Rpb25VdGlscy5tZW1vaXplKCgpID0+IGZpbmRXb3Jrc3BhY2VSb290KCkpO1xuXG4vKiogU2hvcnQgbGFiZWwgZm9yIGxvZyBvdXRwdXQgKGBiYXNlbmFtZWAgb2YgdGhlIHJlc29sdmVkIHJvb3QpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3RMYWJlbChyb290OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYmFzZW5hbWUocm9vdCkgfHwgcm9vdDtcbn1cbiJdfQ==
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/bootstrap.ts","../src/bun.ts","../src/cli.ts","../src/root.ts","../
|
|
1
|
+
{"root":["../src/bootstrap.ts","../src/bun.ts","../src/cli.ts","../src/root.ts","../index.ts","../bin/dbx-tools.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@clack/prompts": "^1.7.0",
|
|
32
|
-
"@dbx-tools/cli-appkit-env": "^0.9.
|
|
33
|
-
"@dbx-tools/cli-auth": "^0.9.
|
|
34
|
-
"@dbx-tools/cli-tunnel": "^0.9.
|
|
35
|
-
"@dbx-tools/core": "^0.9.
|
|
36
|
-
"@dbx-tools/rust-binary": "^0.9.
|
|
37
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
32
|
+
"@dbx-tools/cli-appkit-env": "^0.9.6",
|
|
33
|
+
"@dbx-tools/cli-auth": "^0.9.6",
|
|
34
|
+
"@dbx-tools/cli-tunnel": "^0.9.6",
|
|
35
|
+
"@dbx-tools/core": "^0.9.6",
|
|
36
|
+
"@dbx-tools/rust-binary": "^0.9.6",
|
|
37
|
+
"@dbx-tools/shared-core": "^0.9.6",
|
|
38
38
|
"commander": "^15.0.0"
|
|
39
39
|
},
|
|
40
40
|
"main": "./lib/index.js",
|
|
@@ -68,14 +68,10 @@
|
|
|
68
68
|
"types": "./lib/src/root.d.ts",
|
|
69
69
|
"default": "./lib/src/root.js"
|
|
70
70
|
},
|
|
71
|
-
"./rust-binary": {
|
|
72
|
-
"types": "./lib/src/rust-binary.d.ts",
|
|
73
|
-
"default": "./lib/src/rust-binary.js"
|
|
74
|
-
},
|
|
75
71
|
"./package.json": "./package.json"
|
|
76
72
|
}
|
|
77
73
|
},
|
|
78
|
-
"version": "0.9.
|
|
74
|
+
"version": "0.9.6",
|
|
79
75
|
"types": "./lib/index.d.ts",
|
|
80
76
|
"type": "module",
|
|
81
77
|
"exports": {
|
|
@@ -99,10 +95,6 @@
|
|
|
99
95
|
"types": "./lib/src/root.d.ts",
|
|
100
96
|
"default": "./lib/src/root.js"
|
|
101
97
|
},
|
|
102
|
-
"./rust-binary": {
|
|
103
|
-
"types": "./lib/src/rust-binary.d.ts",
|
|
104
|
-
"default": "./lib/src/rust-binary.js"
|
|
105
|
-
},
|
|
106
98
|
"./package.json": "./package.json"
|
|
107
99
|
},
|
|
108
100
|
"files": [
|
package/src/bootstrap.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
7
7
|
import { createRequire } from "node:module";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { intro, outro } from "@clack/prompts";
|
|
10
|
-
import { exec,
|
|
10
|
+
import { exec, projectUtils } from "@dbx-tools/core";
|
|
11
11
|
import { json, log } from "@dbx-tools/shared-core";
|
|
12
12
|
import { childEnv, resolveBunArgv, runBun } from "./bun.ts";
|
|
13
13
|
import { rootLabel } from "./root.ts";
|
|
@@ -93,10 +93,10 @@ export function ensureEngineCurrent(root: string): void {
|
|
|
93
93
|
// flat, but every engine ever published exports the namespace, and this template
|
|
94
94
|
// is resolved against `@latest` - a flat import dies on an older one with
|
|
95
95
|
// "does not provide an export named 'DBXToolsNodeProject'".
|
|
96
|
-
const PROJENRC_TEMPLATE = `import { project
|
|
96
|
+
const PROJENRC_TEMPLATE = `import { project } from "@dbx-tools/projen";
|
|
97
97
|
|
|
98
|
-
const
|
|
99
|
-
|
|
98
|
+
const rootProject = new project.DBXToolsNodeProject();
|
|
99
|
+
rootProject.synth();
|
|
100
100
|
`;
|
|
101
101
|
|
|
102
102
|
/**
|
|
@@ -185,7 +185,9 @@ export function seedToolchain(
|
|
|
185
185
|
* and never overwrites an existing `.npmrc` (the developer's own wins).
|
|
186
186
|
*/
|
|
187
187
|
function seedRegistry(root: string): void {
|
|
188
|
-
const registry =
|
|
188
|
+
const registry = projectUtils
|
|
189
|
+
.npmRegistry(null, { overrideOnly: true, envVars: true })
|
|
190
|
+
?.toString();
|
|
189
191
|
if (!registry) return;
|
|
190
192
|
const npmrc = join(root, ".npmrc");
|
|
191
193
|
if (existsSync(npmrc)) return;
|
package/src/bun.ts
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { existsSync } from "node:fs";
|
|
24
24
|
import { delimiter, dirname, join } from "node:path";
|
|
25
|
-
import { exec,
|
|
26
|
-
import {
|
|
25
|
+
import { exec, projectUtils } from "@dbx-tools/core";
|
|
26
|
+
import { functionUtils, log } from "@dbx-tools/shared-core";
|
|
27
27
|
import { needsInstall } from "./root.ts";
|
|
28
28
|
|
|
29
29
|
const logger = log.logger("dbx-tools:bun");
|
|
@@ -43,8 +43,8 @@ const REGISTRY_SUBCOMMANDS = new Set(["add", "install", "i", "update", "up"]);
|
|
|
43
43
|
* container may export it without any `.npmrc` for lookup. Memoized: resolution
|
|
44
44
|
* shells out.
|
|
45
45
|
*/
|
|
46
|
-
const registryOverride =
|
|
47
|
-
|
|
46
|
+
const registryOverride = functionUtils.memoize((): string | undefined =>
|
|
47
|
+
projectUtils.npmRegistry(null, { overrideOnly: true, envVars: true })?.toString(),
|
|
48
48
|
);
|
|
49
49
|
|
|
50
50
|
/** `--registry <url>` for a bun invocation, or `[]` when the subcommand doesn't resolve. */
|
|
@@ -98,7 +98,7 @@ function resolveBunArgvImpl(): string[] {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/** Memoized `[command, ...prefix]` argv prefix to run bun. */
|
|
101
|
-
export const resolveBunArgv =
|
|
101
|
+
export const resolveBunArgv = functionUtils.memoize(resolveBunArgvImpl);
|
|
102
102
|
|
|
103
103
|
/** Run bun with inherited stdio from `cwd`, forcing the resolved registry. */
|
|
104
104
|
export function runBun(args: string[], cwd: string): void {
|
package/src/cli.ts
CHANGED
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
* @module
|
|
13
13
|
*/
|
|
14
14
|
import { basename } from "node:path";
|
|
15
|
+
import {
|
|
16
|
+
runReleaseBinary,
|
|
17
|
+
releaseBinaryCommands,
|
|
18
|
+
type ReleaseBinaryCommand,
|
|
19
|
+
} from "@dbx-tools/rust-binary";
|
|
15
20
|
import { Command } from "commander";
|
|
16
21
|
import {
|
|
17
22
|
bootstrapWorkspace,
|
|
@@ -21,11 +26,6 @@ import {
|
|
|
21
26
|
} from "./bootstrap.ts";
|
|
22
27
|
import { ensureWorkspaceReady, runBun, runProjen } from "./bun.ts";
|
|
23
28
|
import { findWorkspaceRoot, needsBootstrap, needsToolchain } from "./root.ts";
|
|
24
|
-
import {
|
|
25
|
-
runRustReleaseBinary,
|
|
26
|
-
rustReleaseBinaryCommands,
|
|
27
|
-
type RustReleaseBinaryCommand,
|
|
28
|
-
} from "./rust-binary.ts";
|
|
29
29
|
|
|
30
30
|
/** Commands the bin exposes, and the names help is rendered under. */
|
|
31
31
|
const PROGRAM_NAMES = ["dbx", "dbx-tools"] as const;
|
|
@@ -86,7 +86,7 @@ function addForwardedCommand(
|
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
function
|
|
89
|
+
function addReleaseCommand(program: Command, command: ReleaseBinaryCommand): void {
|
|
90
90
|
program
|
|
91
91
|
.command(command.command)
|
|
92
92
|
.description(command.description)
|
|
@@ -95,7 +95,7 @@ function addRustReleaseCommand(program: Command, command: RustReleaseBinaryComma
|
|
|
95
95
|
.allowExcessArguments()
|
|
96
96
|
.helpOption(false)
|
|
97
97
|
.action(async (args: string[]) => {
|
|
98
|
-
process.exitCode = await
|
|
98
|
+
process.exitCode = await runReleaseBinary(command, args);
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -141,8 +141,8 @@ export function buildProgram(name: string = PROGRAM_NAMES[0]): Command {
|
|
|
141
141
|
async () => (await import("@dbx-tools/cli-tunnel/cli")).buildProgram,
|
|
142
142
|
);
|
|
143
143
|
|
|
144
|
-
for (const command of
|
|
145
|
-
|
|
144
|
+
for (const command of releaseBinaryCommands()) {
|
|
145
|
+
addReleaseCommand(program, command);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
return program;
|
package/src/root.ts
CHANGED
|
@@ -4,19 +4,9 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
|
-
import { basename,
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
async function gitToplevel(): Promise<string | undefined> {
|
|
12
|
-
const { exitCode, stdout } = await exec.spawn("git", ["rev-parse", "--show-toplevel"], {
|
|
13
|
-
stdout: "capture",
|
|
14
|
-
stderr: "ignore",
|
|
15
|
-
stdin: "ignore",
|
|
16
|
-
});
|
|
17
|
-
if (exitCode !== 0) return undefined;
|
|
18
|
-
return stdout || undefined;
|
|
19
|
-
}
|
|
7
|
+
import { basename, join, resolve } from "node:path";
|
|
8
|
+
import { projectUtils } from "@dbx-tools/core";
|
|
9
|
+
import { functionUtils } from "@dbx-tools/shared-core";
|
|
20
10
|
|
|
21
11
|
/**
|
|
22
12
|
* Walk upward from `startDir` for `.projenrc.ts`. If none is found, try git
|
|
@@ -24,17 +14,8 @@ async function gitToplevel(): Promise<string | undefined> {
|
|
|
24
14
|
* `resolve(startDir)` (which may not be a workspace root).
|
|
25
15
|
*/
|
|
26
16
|
export async function findWorkspaceRoot(startDir: string = process.cwd()): Promise<string> {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (existsSync(join(dir, ".projenrc.ts"))) return dir;
|
|
30
|
-
const parent = dirname(dir);
|
|
31
|
-
if (parent === dir) break;
|
|
32
|
-
dir = parent;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const fromGit = await gitToplevel();
|
|
36
|
-
if (fromGit && existsSync(join(fromGit, ".projenrc.ts"))) return fromGit;
|
|
37
|
-
|
|
17
|
+
const discovered = projectUtils.root(startDir);
|
|
18
|
+
if (discovered && existsSync(join(discovered, ".projenrc.ts"))) return discovered;
|
|
38
19
|
return resolve(startDir);
|
|
39
20
|
}
|
|
40
21
|
|
|
@@ -71,7 +52,7 @@ export function needsToolchain(root: string): boolean {
|
|
|
71
52
|
}
|
|
72
53
|
|
|
73
54
|
/** Async, memoized root lookup from the process cwd at first use. */
|
|
74
|
-
export const workspaceRoot =
|
|
55
|
+
export const workspaceRoot = functionUtils.memoize(() => findWorkspaceRoot());
|
|
75
56
|
|
|
76
57
|
/** Short label for log output (`basename` of the resolved root). */
|
|
77
58
|
export function rootLabel(root: string): string {
|
package/lib/src/rust-binary.d.ts
DELETED
package/lib/src/rust-binary.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compatibility export for Rust release binary helpers.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
export * from "@dbx-tools/rust-binary";
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC1iaW5hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVzdC1iaW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBhdGliaWxpdHkgZXhwb3J0IGZvciBSdXN0IHJlbGVhc2UgYmluYXJ5IGhlbHBlcnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5leHBvcnQgKiBmcm9tIFwiQGRieC10b29scy9ydXN0LWJpbmFyeVwiO1xuIl19
|