@decohere/create 0.0.1-dev.43 → 0.0.1-dev.44
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/commonjs/src/models/config-yaml.model.js +58 -4
- package/commonjs/src/models/env-file.model.js +14 -1
- package/commonjs/src/models/launch-json.model.js +49 -27
- package/commonjs/src/models/package-json.model.js +64 -7
- package/commonjs/src/models/project.model.js +4 -1
- package/commonjs/src/program.js +52 -21
- package/commonjs/src/runner.js +13 -2
- package/commonjs/src/webapi/api-name.js +95 -0
- package/commonjs/src/webapi/const.js +32 -4
- package/commonjs/src/webapi/create-api.js +62 -18
- package/commonjs/src/webapi/features/auth.feature.js +56 -51
- package/commonjs/src/webapi/features/biome-format.js +6 -4
- package/commonjs/src/webapi/features/database.feature.js +125 -98
- package/commonjs/src/webapi/features/finalize.feature.js +19 -7
- package/commonjs/src/webapi/models/api-package-json.model.js +7 -5
- package/commonjs/src/webapi/models/main-source-file.model.js +12 -3
- package/commonjs/src/webapi/models/production-dockerfile.model.js +76 -36
- package/es6/src/models/config-yaml.model.js +47 -1
- package/es6/src/models/env-file.model.js +14 -1
- package/es6/src/models/launch-json.model.js +49 -27
- package/es6/src/models/package-json.model.js +62 -5
- package/es6/src/models/project.model.js +4 -1
- package/es6/src/program.js +52 -21
- package/es6/src/runner.js +13 -2
- package/es6/src/webapi/api-name.js +59 -0
- package/es6/src/webapi/const.js +18 -5
- package/es6/src/webapi/create-api.js +64 -20
- package/es6/src/webapi/features/auth.feature.js +56 -51
- package/es6/src/webapi/features/biome-format.js +6 -4
- package/es6/src/webapi/features/database.feature.js +125 -98
- package/es6/src/webapi/features/finalize.feature.js +19 -7
- package/es6/src/webapi/models/api-package-json.model.js +8 -6
- package/es6/src/webapi/models/main-source-file.model.js +12 -3
- package/es6/src/webapi/models/production-dockerfile.model.js +71 -36
- package/package.json +2 -2
- package/types/src/models/config-yaml.model.d.ts +11 -0
- package/types/src/models/env-file.model.d.ts +1 -0
- package/types/src/models/launch-json.model.d.ts +2 -0
- package/types/src/models/package-json.model.d.ts +16 -6
- package/types/src/models/project.model.d.ts +3 -0
- package/types/src/webapi/api-name.d.ts +14 -0
- package/types/src/webapi/const.d.ts +15 -5
- package/types/src/webapi/create-api.d.ts +4 -0
- package/types/src/webapi/features/biome-format.d.ts +1 -1
- package/types/src/webapi/models/api-package-json.model.d.ts +4 -3
- package/types/src/webapi/models/main-source-file.model.d.ts +6 -0
- package/types/src/webapi/models/production-dockerfile.model.d.ts +13 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
1
2
|
import { CREATE_VERSION } from "../version.js";
|
|
3
|
+
import { DEFAULT_WEBAPI_NAME, webapiPackageName, webapiPort, webapiReleaseEntry } from "../webapi/const.js";
|
|
2
4
|
import { WELL_KNOWN_FILES } from "./const.js";
|
|
3
5
|
/**
|
|
4
6
|
* Builder for the root `package.json`.
|
|
@@ -12,18 +14,31 @@ import { WELL_KNOWN_FILES } from "./const.js";
|
|
|
12
14
|
_dependencies;
|
|
13
15
|
_devDependencies;
|
|
14
16
|
_scripts;
|
|
17
|
+
_version = "0.0.1";
|
|
18
|
+
_type = "module";
|
|
19
|
+
_rest = {};
|
|
15
20
|
constructor(name, options){
|
|
16
21
|
this.name = name;
|
|
17
|
-
const
|
|
22
|
+
const apiNames = options?.apiNames ?? [
|
|
23
|
+
DEFAULT_WEBAPI_NAME
|
|
24
|
+
];
|
|
25
|
+
const first = apiNames[0] ?? DEFAULT_WEBAPI_NAME;
|
|
26
|
+
const startEntry = options?.startEntry ?? webapiReleaseEntry(first);
|
|
27
|
+
const workspaceName = options?.workspaceName ?? stripApiSuffix(name);
|
|
28
|
+
const namedOrMany = apiNames.length > 1 || first !== DEFAULT_WEBAPI_NAME;
|
|
18
29
|
this._scripts = {
|
|
19
30
|
build: "forge build --configuration release",
|
|
20
31
|
"build:watch": "forge build --watch",
|
|
21
32
|
start: `node ${startEntry}`,
|
|
22
|
-
dev: "flux serve",
|
|
33
|
+
dev: namedOrMany ? fluxDevScript(workspaceName, first, webapiPort(0)) : "flux serve",
|
|
23
34
|
"lint:check": "biome check .",
|
|
24
35
|
typecheck: "tsc --noEmit",
|
|
25
36
|
test: "vitest run --passWithNoTests"
|
|
26
37
|
};
|
|
38
|
+
for (const [index, apiName] of apiNames.entries()){
|
|
39
|
+
this._scripts[`start:${apiName}`] = `node ${webapiReleaseEntry(apiName)}`;
|
|
40
|
+
this._scripts[`dev:${apiName}`] = fluxDevScript(workspaceName, apiName, webapiPort(index));
|
|
41
|
+
}
|
|
27
42
|
this._dependencies = {
|
|
28
43
|
"@decohere/cortex": CREATE_VERSION,
|
|
29
44
|
"@decohere/crucible": CREATE_VERSION,
|
|
@@ -40,6 +55,33 @@ import { WELL_KNOWN_FILES } from "./const.js";
|
|
|
40
55
|
vitest: "^3.2.4"
|
|
41
56
|
};
|
|
42
57
|
}
|
|
58
|
+
/** Load an existing root package.json so `webapi add` can merge scripts/deps. */ static fromFile(filePath) {
|
|
59
|
+
const raw = JSON.parse(readFileSync(filePath, "utf8"));
|
|
60
|
+
const pkg = new PackageJson(typeof raw.name === "string" ? raw.name : "app", {
|
|
61
|
+
apiNames: []
|
|
62
|
+
});
|
|
63
|
+
pkg._version = typeof raw.version === "string" ? raw.version : "0.0.1";
|
|
64
|
+
pkg._type = typeof raw.type === "string" ? raw.type : "module";
|
|
65
|
+
pkg._scripts = {
|
|
66
|
+
...asStringMap(raw.scripts)
|
|
67
|
+
};
|
|
68
|
+
pkg._dependencies = {
|
|
69
|
+
...asStringMap(raw.dependencies)
|
|
70
|
+
};
|
|
71
|
+
pkg._devDependencies = {
|
|
72
|
+
...asStringMap(raw.devDependencies)
|
|
73
|
+
};
|
|
74
|
+
const reserved = new Set([
|
|
75
|
+
"name",
|
|
76
|
+
"version",
|
|
77
|
+
"type",
|
|
78
|
+
"scripts",
|
|
79
|
+
"dependencies",
|
|
80
|
+
"devDependencies"
|
|
81
|
+
]);
|
|
82
|
+
pkg._rest = Object.fromEntries(Object.entries(raw).filter(([key])=>!reserved.has(key)));
|
|
83
|
+
return pkg;
|
|
84
|
+
}
|
|
43
85
|
addDependency(name, version) {
|
|
44
86
|
this._dependencies[name] = version;
|
|
45
87
|
return this;
|
|
@@ -58,8 +100,9 @@ import { WELL_KNOWN_FILES } from "./const.js";
|
|
|
58
100
|
filePath: "package.json",
|
|
59
101
|
content: JSON.stringify({
|
|
60
102
|
name: this.name,
|
|
61
|
-
version:
|
|
62
|
-
type:
|
|
103
|
+
version: this._version,
|
|
104
|
+
type: this._type,
|
|
105
|
+
...this._rest,
|
|
63
106
|
scripts: this._scripts,
|
|
64
107
|
dependencies: this._dependencies,
|
|
65
108
|
devDependencies: this._devDependencies
|
|
@@ -68,5 +111,19 @@ import { WELL_KNOWN_FILES } from "./const.js";
|
|
|
68
111
|
];
|
|
69
112
|
}
|
|
70
113
|
}
|
|
114
|
+
function stripApiSuffix(name) {
|
|
115
|
+
return name.endsWith(".api") ? name.slice(0, -".api".length) : name;
|
|
116
|
+
}
|
|
117
|
+
function asStringMap(value) {
|
|
118
|
+
if (value == null || typeof value !== "object") return {};
|
|
119
|
+
const result = {};
|
|
120
|
+
for (const [key, entry] of Object.entries(value)){
|
|
121
|
+
if (typeof entry === "string") result[key] = entry;
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
function fluxDevScript(workspaceName, apiName, port) {
|
|
126
|
+
return `PORT=${port} flux serve --project ${webapiPackageName(workspaceName, apiName)}`;
|
|
127
|
+
}
|
|
71
128
|
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zY3JpcHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcblx0XHRvcHRpb25zPzogeyBzdGFydEVudHJ5Pzogc3RyaW5nIH0sXG5cdCkge1xuXHRcdGNvbnN0IHN0YXJ0RW50cnkgPSBvcHRpb25zPy5zdGFydEVudHJ5ID8/IFwiZGlzdC9yZWxlYXNlL3Byb2plY3RzL2FwaS9lczYvc3JjL21haW4uanNcIjtcblx0XHR0aGlzLl9zY3JpcHRzID0ge1xuXHRcdFx0YnVpbGQ6IFwiZm9yZ2UgYnVpbGQgLS1jb25maWd1cmF0aW9uIHJlbGVhc2VcIixcblx0XHRcdFwiYnVpbGQ6d2F0Y2hcIjogXCJmb3JnZSBidWlsZCAtLXdhdGNoXCIsXG5cdFx0XHRzdGFydDogYG5vZGUgJHtzdGFydEVudHJ5fWAsXG5cdFx0XHRkZXY6IFwiZmx1eCBzZXJ2ZVwiLFxuXHRcdFx0XCJsaW50OmNoZWNrXCI6IFwiYmlvbWUgY2hlY2sgLlwiLFxuXHRcdFx0dHlwZWNoZWNrOiBcInRzYyAtLW5vRW1pdFwiLFxuXHRcdFx0dGVzdDogXCJ2aXRlc3QgcnVuIC0tcGFzc1dpdGhOb1Rlc3RzXCIsXG5cdFx0fTtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL25leHVzXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJAZGVjb2hlcmUvcHJvdG9jb2xcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmVcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmUtcGlub1wiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwicGluby1wcmV0dHlcIjogXCJeMTMuMC4wXCIsXG5cdFx0fTtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS90ZXJtaW5hbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdHR5cGVzY3JpcHQ6IFwiXjYuMC4zXCIsXG5cdFx0XHRcIkBiaW9tZWpzL2Jpb21lXCI6IFwiXjIuMC4wXCIsXG5cdFx0XHR2aXRlc3Q6IFwiXjMuMi40XCIsXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyBhZGREZXBlbmRlbmN5KG5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZGVwZW5kZW5jaWVzW25hbWVdID0gdmVyc2lvbjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGREZXZEZXBlbmRlbmN5KG5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZGV2RGVwZW5kZW5jaWVzW25hbWVdID0gdmVyc2lvbjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGRTY3JpcHQobmFtZTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9zY3JpcHRzW25hbWVdID0gY29tbWFuZDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInBhY2thZ2UuanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRuYW1lOiB0aGlzLm5hbWUsXG5cdFx0XHRcdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0XHRcdFx0c2NyaXB0czogdGhpcy5fc2NyaXB0cyxcblx0XHRcdFx0XHRcdGRlcGVuZGVuY2llczogdGhpcy5fZGVwZW5kZW5jaWVzLFxuXHRcdFx0XHRcdFx0ZGV2RGVwZW5kZW5jaWVzOiB0aGlzLl9kZXZEZXBlbmRlbmNpZXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDUkVBVEVfVkVSU0lPTiIsIldFTExfS05PV05fRklMRVMiLCJQYWNrYWdlSnNvbiIsImtleSIsIlBBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwiX3NjcmlwdHMiLCJuYW1lIiwib3B0aW9ucyIsInN0YXJ0RW50cnkiLCJidWlsZCIsInN0YXJ0IiwiZGV2IiwidHlwZWNoZWNrIiwidGVzdCIsInR5cGVzY3JpcHQiLCJ2aXRlc3QiLCJhZGREZXBlbmRlbmN5IiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJhZGRTY3JpcHQiLCJjb21tYW5kIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwidHlwZSIsInNjcmlwdHMiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGNBQWMsUUFBUSxnQkFBZ0I7QUFDL0MsU0FBU0MsZ0JBQWdCLFFBQVEsYUFBYTtBQUc5Qzs7Ozs7O0NBTUMsR0FDRCxPQUFPLE1BQU1DOztJQUNJQyxNQUFNRixpQkFBaUJHLFlBQVksQ0FBQztJQUVuQ0MsY0FBc0M7SUFDdENDLGlCQUF5QztJQUN6Q0MsU0FBaUM7SUFFbEQsWUFDQyxBQUFpQkMsSUFBWSxFQUM3QkMsT0FBaUMsQ0FDaEM7YUFGZ0JELE9BQUFBO1FBR2pCLE1BQU1FLGFBQWFELFNBQVNDLGNBQWM7UUFDMUMsSUFBSSxDQUFDSCxRQUFRLEdBQUc7WUFDZkksT0FBTztZQUNQLGVBQWU7WUFDZkMsT0FBTyxDQUFDLEtBQUssRUFBRUYsWUFBWTtZQUMzQkcsS0FBSztZQUNMLGNBQWM7WUFDZEMsV0FBVztZQUNYQyxNQUFNO1FBQ1A7UUFDQSxJQUFJLENBQUNWLGFBQWEsR0FBRztZQUNwQixvQkFBb0JMO1lBQ3BCLHNCQUFzQkE7WUFDdEIsbUJBQW1CQTtZQUNuQixzQkFBc0JBO1lBQ3RCLG9CQUFvQkE7WUFDcEIseUJBQXlCQTtZQUN6QixlQUFlO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDTSxnQkFBZ0IsR0FBRztZQUN2QixzQkFBc0JOO1lBQ3RCZ0IsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQkMsUUFBUTtRQUNUO0lBQ0Q7SUFFT0MsY0FBY1YsSUFBWSxFQUFFVyxPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDZCxhQUFhLENBQUNHLEtBQUssR0FBR1c7UUFDM0IsT0FBTyxJQUFJO0lBQ1o7SUFFT0MsaUJBQWlCWixJQUFZLEVBQUVXLE9BQWUsRUFBUTtRQUM1RCxJQUFJLENBQUNiLGdCQUFnQixDQUFDRSxLQUFLLEdBQUdXO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFVBQVViLElBQVksRUFBRWMsT0FBZSxFQUFRO1FBQ3JELElBQUksQ0FBQ2YsUUFBUSxDQUFDQyxLQUFLLEdBQUdjO1FBQ3RCLE9BQU8sSUFBSTtJQUNaO0lBRU9DLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUN0QjtvQkFDQ25CLE1BQU0sSUFBSSxDQUFDQSxJQUFJO29CQUNmVyxTQUFTO29CQUNUUyxNQUFNO29CQUNOQyxTQUFTLElBQUksQ0FBQ3RCLFFBQVE7b0JBQ3RCdUIsY0FBYyxJQUFJLENBQUN6QixhQUFhO29CQUNoQzBCLGlCQUFpQixJQUFJLENBQUN6QixnQkFBZ0I7Z0JBQ3ZDLEdBQ0EsTUFDQTtZQUVGO1NBQ0E7SUFDRjtBQUNEIn0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi4vdmVyc2lvbi5qc1wiO1xuaW1wb3J0IHtcblx0REVGQVVMVF9XRUJBUElfTkFNRSxcblx0d2ViYXBpUGFja2FnZU5hbWUsXG5cdHdlYmFwaVBvcnQsXG5cdHdlYmFwaVJlbGVhc2VFbnRyeSxcbn0gZnJvbSBcIi4uL3dlYmFwaS9jb25zdC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi9zb3VyY2UtZmlsZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBQYWNrYWdlSnNvbk9wdGlvbnMgPSB7XG5cdHN0YXJ0RW50cnk/OiBzdHJpbmc7XG5cdC8qKiBBUEkgc2x1Z3MgaW4gdGhpcyB3b3Jrc3BhY2UuIERyaXZlcyBgc3RhcnQ6PG5hbWU+YCAvIGBkZXY6PG5hbWU+YC4gKi9cblx0YXBpTmFtZXM/OiByZWFkb25seSBzdHJpbmdbXTtcblx0LyoqIEhvc3Qgd29ya3NwYWNlIG5hbWUgdXNlZCBpbiBgQDx3b3Jrc3BhY2U+LzxhcGk+YCBmb3IgZmx1eCBgLS1wcm9qZWN0YC4gKi9cblx0d29ya3NwYWNlTmFtZT86IHN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIF9zY3JpcHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIF92ZXJzaW9uID0gXCIwLjAuMVwiO1xuXHRwcml2YXRlIF90eXBlID0gXCJtb2R1bGVcIjtcblx0cHJpdmF0ZSBfcmVzdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBuYW1lOiBzdHJpbmcsXG5cdFx0b3B0aW9ucz86IFBhY2thZ2VKc29uT3B0aW9ucyxcblx0KSB7XG5cdFx0Y29uc3QgYXBpTmFtZXMgPSBvcHRpb25zPy5hcGlOYW1lcyA/PyBbREVGQVVMVF9XRUJBUElfTkFNRV07XG5cdFx0Y29uc3QgZmlyc3QgPSBhcGlOYW1lc1swXSA/PyBERUZBVUxUX1dFQkFQSV9OQU1FO1xuXHRcdGNvbnN0IHN0YXJ0RW50cnkgPSBvcHRpb25zPy5zdGFydEVudHJ5ID8/IHdlYmFwaVJlbGVhc2VFbnRyeShmaXJzdCk7XG5cdFx0Y29uc3Qgd29ya3NwYWNlTmFtZSA9IG9wdGlvbnM/LndvcmtzcGFjZU5hbWUgPz8gc3RyaXBBcGlTdWZmaXgobmFtZSk7XG5cdFx0Y29uc3QgbmFtZWRPck1hbnkgPSBhcGlOYW1lcy5sZW5ndGggPiAxIHx8IGZpcnN0ICE9PSBERUZBVUxUX1dFQkFQSV9OQU1FO1xuXG5cdFx0dGhpcy5fc2NyaXB0cyA9IHtcblx0XHRcdGJ1aWxkOiBcImZvcmdlIGJ1aWxkIC0tY29uZmlndXJhdGlvbiByZWxlYXNlXCIsXG5cdFx0XHRcImJ1aWxkOndhdGNoXCI6IFwiZm9yZ2UgYnVpbGQgLS13YXRjaFwiLFxuXHRcdFx0c3RhcnQ6IGBub2RlICR7c3RhcnRFbnRyeX1gLFxuXHRcdFx0ZGV2OiBuYW1lZE9yTWFueSA/IGZsdXhEZXZTY3JpcHQod29ya3NwYWNlTmFtZSwgZmlyc3QsIHdlYmFwaVBvcnQoMCkpIDogXCJmbHV4IHNlcnZlXCIsXG5cdFx0XHRcImxpbnQ6Y2hlY2tcIjogXCJiaW9tZSBjaGVjayAuXCIsXG5cdFx0XHR0eXBlY2hlY2s6IFwidHNjIC0tbm9FbWl0XCIsXG5cdFx0XHR0ZXN0OiBcInZpdGVzdCBydW4gLS1wYXNzV2l0aE5vVGVzdHNcIixcblx0XHR9O1xuXHRcdGZvciAoY29uc3QgW2luZGV4LCBhcGlOYW1lXSBvZiBhcGlOYW1lcy5lbnRyaWVzKCkpIHtcblx0XHRcdHRoaXMuX3NjcmlwdHNbYHN0YXJ0OiR7YXBpTmFtZX1gXSA9IGBub2RlICR7d2ViYXBpUmVsZWFzZUVudHJ5KGFwaU5hbWUpfWA7XG5cdFx0XHR0aGlzLl9zY3JpcHRzW2BkZXY6JHthcGlOYW1lfWBdID0gZmx1eERldlNjcmlwdChcblx0XHRcdFx0d29ya3NwYWNlTmFtZSxcblx0XHRcdFx0YXBpTmFtZSxcblx0XHRcdFx0d2ViYXBpUG9ydChpbmRleCksXG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL25leHVzXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJAZGVjb2hlcmUvcHJvdG9jb2xcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmVcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmUtcGlub1wiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwicGluby1wcmV0dHlcIjogXCJeMTMuMC4wXCIsXG5cdFx0fTtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS90ZXJtaW5hbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdHR5cGVzY3JpcHQ6IFwiXjYuMC4zXCIsXG5cdFx0XHRcIkBiaW9tZWpzL2Jpb21lXCI6IFwiXjIuMC4wXCIsXG5cdFx0XHR2aXRlc3Q6IFwiXjMuMi40XCIsXG5cdFx0fTtcblx0fVxuXG5cdC8qKiBMb2FkIGFuIGV4aXN0aW5nIHJvb3QgcGFja2FnZS5qc29uIHNvIGB3ZWJhcGkgYWRkYCBjYW4gbWVyZ2Ugc2NyaXB0cy9kZXBzLiAqL1xuXHRwdWJsaWMgc3RhdGljIGZyb21GaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQYWNrYWdlSnNvbiB7XG5cdFx0Y29uc3QgcmF3ID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMoZmlsZVBhdGgsIFwidXRmOFwiKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0Y29uc3QgcGtnID0gbmV3IFBhY2thZ2VKc29uKHR5cGVvZiByYXcubmFtZSA9PT0gXCJzdHJpbmdcIiA/IHJhdy5uYW1lIDogXCJhcHBcIiwge1xuXHRcdFx0YXBpTmFtZXM6IFtdLFxuXHRcdH0pO1xuXHRcdHBrZy5fdmVyc2lvbiA9IHR5cGVvZiByYXcudmVyc2lvbiA9PT0gXCJzdHJpbmdcIiA/IHJhdy52ZXJzaW9uIDogXCIwLjAuMVwiO1xuXHRcdHBrZy5fdHlwZSA9IHR5cGVvZiByYXcudHlwZSA9PT0gXCJzdHJpbmdcIiA/IHJhdy50eXBlIDogXCJtb2R1bGVcIjtcblx0XHRwa2cuX3NjcmlwdHMgPSB7IC4uLmFzU3RyaW5nTWFwKHJhdy5zY3JpcHRzKSB9O1xuXHRcdHBrZy5fZGVwZW5kZW5jaWVzID0geyAuLi5hc1N0cmluZ01hcChyYXcuZGVwZW5kZW5jaWVzKSB9O1xuXHRcdHBrZy5fZGV2RGVwZW5kZW5jaWVzID0geyAuLi5hc1N0cmluZ01hcChyYXcuZGV2RGVwZW5kZW5jaWVzKSB9O1xuXHRcdGNvbnN0IHJlc2VydmVkID0gbmV3IFNldChbXG5cdFx0XHRcIm5hbWVcIixcblx0XHRcdFwidmVyc2lvblwiLFxuXHRcdFx0XCJ0eXBlXCIsXG5cdFx0XHRcInNjcmlwdHNcIixcblx0XHRcdFwiZGVwZW5kZW5jaWVzXCIsXG5cdFx0XHRcImRldkRlcGVuZGVuY2llc1wiLFxuXHRcdF0pO1xuXHRcdHBrZy5fcmVzdCA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhyYXcpLmZpbHRlcigoW2tleV0pID0+ICFyZXNlcnZlZC5oYXMoa2V5KSkpO1xuXHRcdHJldHVybiBwa2c7XG5cdH1cblxuXHRwdWJsaWMgYWRkRGVwZW5kZW5jeShuYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2RlcGVuZGVuY2llc1tuYW1lXSA9IHZlcnNpb247XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWRkRGV2RGVwZW5kZW5jeShuYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2RldkRlcGVuZGVuY2llc1tuYW1lXSA9IHZlcnNpb247XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWRkU2NyaXB0KG5hbWU6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fc2NyaXB0c1tuYW1lXSA9IGNvbW1hbmQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJwYWNrYWdlLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogdGhpcy5uYW1lLFxuXHRcdFx0XHRcdFx0dmVyc2lvbjogdGhpcy5fdmVyc2lvbixcblx0XHRcdFx0XHRcdHR5cGU6IHRoaXMuX3R5cGUsXG5cdFx0XHRcdFx0XHQuLi50aGlzLl9yZXN0LFxuXHRcdFx0XHRcdFx0c2NyaXB0czogdGhpcy5fc2NyaXB0cyxcblx0XHRcdFx0XHRcdGRlcGVuZGVuY2llczogdGhpcy5fZGVwZW5kZW5jaWVzLFxuXHRcdFx0XHRcdFx0ZGV2RGVwZW5kZW5jaWVzOiB0aGlzLl9kZXZEZXBlbmRlbmNpZXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cblxuZnVuY3Rpb24gc3RyaXBBcGlTdWZmaXgobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIG5hbWUuZW5kc1dpdGgoXCIuYXBpXCIpID8gbmFtZS5zbGljZSgwLCAtXCIuYXBpXCIubGVuZ3RoKSA6IG5hbWU7XG59XG5cbmZ1bmN0aW9uIGFzU3RyaW5nTWFwKHZhbHVlOiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdGlmICh2YWx1ZSA9PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikgcmV0dXJuIHt9O1xuXHRjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0Zm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG5cdFx0aWYgKHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIikgcmVzdWx0W2tleV0gPSBlbnRyeTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBmbHV4RGV2U2NyaXB0KHdvcmtzcGFjZU5hbWU6IHN0cmluZywgYXBpTmFtZTogc3RyaW5nLCBwb3J0OiBudW1iZXIpOiBzdHJpbmcge1xuXHRyZXR1cm4gYFBPUlQ9JHtwb3J0fSBmbHV4IHNlcnZlIC0tcHJvamVjdCAke3dlYmFwaVBhY2thZ2VOYW1lKHdvcmtzcGFjZU5hbWUsIGFwaU5hbWUpfWA7XG59XG4iXSwibmFtZXMiOlsicmVhZEZpbGVTeW5jIiwiQ1JFQVRFX1ZFUlNJT04iLCJERUZBVUxUX1dFQkFQSV9OQU1FIiwid2ViYXBpUGFja2FnZU5hbWUiLCJ3ZWJhcGlQb3J0Iiwid2ViYXBpUmVsZWFzZUVudHJ5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIlBhY2thZ2VKc29uIiwia2V5IiwiUEFDS0FHRV9KU09OIiwiX2RlcGVuZGVuY2llcyIsIl9kZXZEZXBlbmRlbmNpZXMiLCJfc2NyaXB0cyIsIl92ZXJzaW9uIiwiX3R5cGUiLCJfcmVzdCIsIm5hbWUiLCJvcHRpb25zIiwiYXBpTmFtZXMiLCJmaXJzdCIsInN0YXJ0RW50cnkiLCJ3b3Jrc3BhY2VOYW1lIiwic3RyaXBBcGlTdWZmaXgiLCJuYW1lZE9yTWFueSIsImxlbmd0aCIsImJ1aWxkIiwic3RhcnQiLCJkZXYiLCJmbHV4RGV2U2NyaXB0IiwidHlwZWNoZWNrIiwidGVzdCIsImluZGV4IiwiYXBpTmFtZSIsImVudHJpZXMiLCJ0eXBlc2NyaXB0Iiwidml0ZXN0IiwiZnJvbUZpbGUiLCJmaWxlUGF0aCIsInJhdyIsIkpTT04iLCJwYXJzZSIsInBrZyIsInZlcnNpb24iLCJ0eXBlIiwiYXNTdHJpbmdNYXAiLCJzY3JpcHRzIiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwicmVzZXJ2ZWQiLCJTZXQiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImZpbHRlciIsImhhcyIsImFkZERlcGVuZGVuY3kiLCJhZGREZXZEZXBlbmRlbmN5IiwiYWRkU2NyaXB0IiwiY29tbWFuZCIsImZpbGVzIiwiY29udGVudCIsInN0cmluZ2lmeSIsImVuZHNXaXRoIiwic2xpY2UiLCJ2YWx1ZSIsInJlc3VsdCIsImVudHJ5IiwicG9ydCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxRQUFRLFVBQVU7QUFDdkMsU0FBU0MsY0FBYyxRQUFRLGdCQUFnQjtBQUMvQyxTQUNDQyxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsVUFBVSxFQUNWQyxrQkFBa0IsUUFDWixxQkFBcUI7QUFDNUIsU0FBU0MsZ0JBQWdCLFFBQVEsYUFBYTtBQVc5Qzs7Ozs7O0NBTUMsR0FDRCxPQUFPLE1BQU1DOztJQUNJQyxNQUFNRixpQkFBaUJHLFlBQVksQ0FBQztJQUU1Q0MsY0FBc0M7SUFDdENDLGlCQUF5QztJQUN6Q0MsU0FBaUM7SUFDakNDLFdBQVcsUUFBUTtJQUNuQkMsUUFBUSxTQUFTO0lBQ2pCQyxRQUFpQyxDQUFDLEVBQUU7SUFFNUMsWUFDQyxBQUFpQkMsSUFBWSxFQUM3QkMsT0FBNEIsQ0FDM0I7YUFGZ0JELE9BQUFBO1FBR2pCLE1BQU1FLFdBQVdELFNBQVNDLFlBQVk7WUFBQ2hCO1NBQW9CO1FBQzNELE1BQU1pQixRQUFRRCxRQUFRLENBQUMsRUFBRSxJQUFJaEI7UUFDN0IsTUFBTWtCLGFBQWFILFNBQVNHLGNBQWNmLG1CQUFtQmM7UUFDN0QsTUFBTUUsZ0JBQWdCSixTQUFTSSxpQkFBaUJDLGVBQWVOO1FBQy9ELE1BQU1PLGNBQWNMLFNBQVNNLE1BQU0sR0FBRyxLQUFLTCxVQUFVakI7UUFFckQsSUFBSSxDQUFDVSxRQUFRLEdBQUc7WUFDZmEsT0FBTztZQUNQLGVBQWU7WUFDZkMsT0FBTyxDQUFDLEtBQUssRUFBRU4sWUFBWTtZQUMzQk8sS0FBS0osY0FBY0ssY0FBY1AsZUFBZUYsT0FBT2YsV0FBVyxNQUFNO1lBQ3hFLGNBQWM7WUFDZHlCLFdBQVc7WUFDWEMsTUFBTTtRQUNQO1FBQ0EsS0FBSyxNQUFNLENBQUNDLE9BQU9DLFFBQVEsSUFBSWQsU0FBU2UsT0FBTyxHQUFJO1lBQ2xELElBQUksQ0FBQ3JCLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRW9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFM0IsbUJBQW1CMkIsVUFBVTtZQUN6RSxJQUFJLENBQUNwQixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUVvQixTQUFTLENBQUMsR0FBR0osY0FDakNQLGVBQ0FXLFNBQ0E1QixXQUFXMkI7UUFFYjtRQUNBLElBQUksQ0FBQ3JCLGFBQWEsR0FBRztZQUNwQixvQkFBb0JUO1lBQ3BCLHNCQUFzQkE7WUFDdEIsbUJBQW1CQTtZQUNuQixzQkFBc0JBO1lBQ3RCLG9CQUFvQkE7WUFDcEIseUJBQXlCQTtZQUN6QixlQUFlO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDVSxnQkFBZ0IsR0FBRztZQUN2QixzQkFBc0JWO1lBQ3RCaUMsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQkMsUUFBUTtRQUNUO0lBQ0Q7SUFFQSwrRUFBK0UsR0FDL0UsT0FBY0MsU0FBU0MsUUFBZ0IsRUFBZTtRQUNyRCxNQUFNQyxNQUFNQyxLQUFLQyxLQUFLLENBQUN4QyxhQUFhcUMsVUFBVTtRQUM5QyxNQUFNSSxNQUFNLElBQUlsQyxZQUFZLE9BQU8rQixJQUFJdEIsSUFBSSxLQUFLLFdBQVdzQixJQUFJdEIsSUFBSSxHQUFHLE9BQU87WUFDNUVFLFVBQVUsRUFBRTtRQUNiO1FBQ0F1QixJQUFJNUIsUUFBUSxHQUFHLE9BQU95QixJQUFJSSxPQUFPLEtBQUssV0FBV0osSUFBSUksT0FBTyxHQUFHO1FBQy9ERCxJQUFJM0IsS0FBSyxHQUFHLE9BQU93QixJQUFJSyxJQUFJLEtBQUssV0FBV0wsSUFBSUssSUFBSSxHQUFHO1FBQ3RERixJQUFJN0IsUUFBUSxHQUFHO1lBQUUsR0FBR2dDLFlBQVlOLElBQUlPLE9BQU8sQ0FBQztRQUFDO1FBQzdDSixJQUFJL0IsYUFBYSxHQUFHO1lBQUUsR0FBR2tDLFlBQVlOLElBQUlRLFlBQVksQ0FBQztRQUFDO1FBQ3ZETCxJQUFJOUIsZ0JBQWdCLEdBQUc7WUFBRSxHQUFHaUMsWUFBWU4sSUFBSVMsZUFBZSxDQUFDO1FBQUM7UUFDN0QsTUFBTUMsV0FBVyxJQUFJQyxJQUFJO1lBQ3hCO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtTQUNBO1FBQ0RSLElBQUkxQixLQUFLLEdBQUdtQyxPQUFPQyxXQUFXLENBQUNELE9BQU9qQixPQUFPLENBQUNLLEtBQUtjLE1BQU0sQ0FBQyxDQUFDLENBQUM1QyxJQUFJLEdBQUssQ0FBQ3dDLFNBQVNLLEdBQUcsQ0FBQzdDO1FBQ25GLE9BQU9pQztJQUNSO0lBRU9hLGNBQWN0QyxJQUFZLEVBQUUwQixPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDaEMsYUFBYSxDQUFDTSxLQUFLLEdBQUcwQjtRQUMzQixPQUFPLElBQUk7SUFDWjtJQUVPYSxpQkFBaUJ2QyxJQUFZLEVBQUUwQixPQUFlLEVBQVE7UUFDNUQsSUFBSSxDQUFDL0IsZ0JBQWdCLENBQUNLLEtBQUssR0FBRzBCO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9jLFVBQVV4QyxJQUFZLEVBQUV5QyxPQUFlLEVBQVE7UUFDckQsSUFBSSxDQUFDN0MsUUFBUSxDQUFDSSxLQUFLLEdBQUd5QztRQUN0QixPQUFPLElBQUk7SUFDWjtJQUVPQyxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NyQixVQUFVO2dCQUNWc0IsU0FBU3BCLEtBQUtxQixTQUFTLENBQ3RCO29CQUNDNUMsTUFBTSxJQUFJLENBQUNBLElBQUk7b0JBQ2YwQixTQUFTLElBQUksQ0FBQzdCLFFBQVE7b0JBQ3RCOEIsTUFBTSxJQUFJLENBQUM3QixLQUFLO29CQUNoQixHQUFHLElBQUksQ0FBQ0MsS0FBSztvQkFDYjhCLFNBQVMsSUFBSSxDQUFDakMsUUFBUTtvQkFDdEJrQyxjQUFjLElBQUksQ0FBQ3BDLGFBQWE7b0JBQ2hDcUMsaUJBQWlCLElBQUksQ0FBQ3BDLGdCQUFnQjtnQkFDdkMsR0FDQSxNQUNBO1lBRUY7U0FDQTtJQUNGO0FBQ0Q7QUFFQSxTQUFTVyxlQUFlTixJQUFZO0lBQ25DLE9BQU9BLEtBQUs2QyxRQUFRLENBQUMsVUFBVTdDLEtBQUs4QyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU90QyxNQUFNLElBQUlSO0FBQ2hFO0FBRUEsU0FBUzRCLFlBQVltQixLQUFjO0lBQ2xDLElBQUlBLFNBQVMsUUFBUSxPQUFPQSxVQUFVLFVBQVUsT0FBTyxDQUFDO0lBQ3hELE1BQU1DLFNBQWlDLENBQUM7SUFDeEMsS0FBSyxNQUFNLENBQUN4RCxLQUFLeUQsTUFBTSxJQUFJZixPQUFPakIsT0FBTyxDQUFDOEIsT0FBUTtRQUNqRCxJQUFJLE9BQU9FLFVBQVUsVUFBVUQsTUFBTSxDQUFDeEQsSUFBSSxHQUFHeUQ7SUFDOUM7SUFDQSxPQUFPRDtBQUNSO0FBRUEsU0FBU3BDLGNBQWNQLGFBQXFCLEVBQUVXLE9BQWUsRUFBRWtDLElBQVk7SUFDMUUsT0FBTyxDQUFDLEtBQUssRUFBRUEsS0FBSyxzQkFBc0IsRUFBRS9ELGtCQUFrQmtCLGVBQWVXLFVBQVU7QUFDeEYifQ==
|
|
@@ -68,6 +68,9 @@ export class MonoRepoScaffold extends WorkspaceScaffold {
|
|
|
68
68
|
/** Retrieve a previously-registered project by its directory path. */ getProject(dir) {
|
|
69
69
|
return this._projects.find((p)=>p.dir === dir);
|
|
70
70
|
}
|
|
71
|
+
/** All registered projects, in registration order. */ getProjects() {
|
|
72
|
+
return this._projects;
|
|
73
|
+
}
|
|
71
74
|
/** Register a named model at workspace level. */ addModel(model) {
|
|
72
75
|
this._models.set(model.key, model);
|
|
73
76
|
return model;
|
|
@@ -113,4 +116,4 @@ export class MonoRepoScaffold extends WorkspaceScaffold {
|
|
|
113
116
|
}
|
|
114
117
|
}
|
|
115
118
|
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3Byb2plY3QubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXIsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSwgU291cmNlRmlsZVByb3ZpZGVyIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBIHN1Yi11bml0IG9mIHRoZSBtb25vcmVwbyAoZS5nLiBgcHJvamVjdHMvYXBpYCkuXG4gKlxuICogTW9kZWxzIGFuZCBmaWxlcyByZWdpc3RlcmVkIGhlcmUgcHJvZHVjZSBwYXRocyByZWxhdGl2ZSB0byBgZGlyYC4gVGhlIHBhcmVudFxuICogYE1vbm9SZXBvU2NhZmZvbGRgIGNhbGxzIGBmaWxlcygpYCBhbmQgcHJlcGVuZHMgYGRpci9gIHRvIGV2ZXJ5IHBhdGgsIHNvXG4gKiBtb2RlbHMgcmVtYWluIHVuYXdhcmUgb2Ygd2hlcmUgdGhleSBsaXZlIGluIHRoZSByZXBvLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdFNjYWZmb2xkIHtcblx0cHJpdmF0ZSByZWFkb25seSBfbW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFNvdXJjZUZpbGVQcm92aWRlcj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cblx0cHVibGljIGFkZE1vZGVsPFQgZXh0ZW5kcyBLZXllZE1vZGVsPihtb2RlbDogVCk6IFQge1xuXHRcdHRoaXMuX21vZGVscy5zZXQobW9kZWwua2V5LCBtb2RlbCk7XG5cdFx0cmV0dXJuIG1vZGVsO1xuXHR9XG5cblx0cHVibGljIGFkZEZpbGUocHJvdmlkZXI6IFNvdXJjZUZpbGVQcm92aWRlcik6IHRoaXMge1xuXHRcdHRoaXMuX2ZpbGVzLnB1c2goLi4ucHJvdmlkZXIuZmlsZXMoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWw8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fbW9kZWxzLmdldChrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWxzPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGN0b3I6IG5ldyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gVCk6IFRbXSB7XG5cdFx0cmV0dXJuIFsuLi50aGlzLl9tb2RlbHMudmFsdWVzKCldLmZpbHRlcigobSk6IG0gaXMgVCA9PiBtIGluc3RhbmNlb2YgY3Rvcik7XG5cdH1cblxuXHQvKiogUmV0dXJucyBhbGwgZmlsZXMgd2l0aCBgZGlyL2AgcHJlcGVuZGVkIHRvIGVhY2ggcGF0aC4gKi9cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgYWxsID0gWy4uLnRoaXMuX2ZpbGVzLCAuLi5bLi4udGhpcy5fbW9kZWxzLnZhbHVlcygpXS5mbGF0TWFwKChtKSA9PiBtLmZpbGVzKCkpXTtcblx0XHRyZXR1cm4gYWxsLm1hcCgoZikgPT4gKHsgZmlsZVBhdGg6IGAke3RoaXMuZGlyfS8ke2YuZmlsZVBhdGh9YCwgY29udGVudDogZi5jb250ZW50IH0pKTtcblx0fVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya3NwYWNlU2NhZmZvbGQge1xuXHRwdWJsaWMgcmVhZG9ubHkgZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXHRwdWJsaWMgdGFyZ2V0RGlyOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXHRwcml2YXRlIF9uYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqIFByb2plY3QgbmFtZSDigJQgaG9zdCBkaXJlY3RvcnkgYmFzZW5hbWUsIG5vdCB0aGUgaW4tY29udGFpbmVyIG1vdW50IHBhdGguICovXG5cdHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9uYW1lID8/IGJhc2VuYW1lKHRoaXMudGFyZ2V0RGlyKTtcblx0fVxuXG5cdHB1YmxpYyBzZXROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX25hbWUgPSBuYW1lO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZCBhbiBhZC1ob2MgZmlsZSBwcm92aWRlciB3aG9zZSBvdXRwdXQgaXMgaW5jbHVkZWQgYXQgcmVuZGVyIHRpbWUuICovXG5cdHB1YmxpYyBhZGRGaWxlKHByb3ZpZGVyOiBTb3VyY2VGaWxlUHJvdmlkZXIpOiB0aGlzIHtcblx0XHR0aGlzLmZpbGVzLnB1c2goLi4ucHJvdmlkZXIuZmlsZXMoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWJzdHJhY3QgYWRkTW9kZWw8VCBleHRlbmRzIEtleWVkTW9kZWw+KG1vZGVsOiBUKTogVDtcblx0cHVibGljIGFic3RyYWN0IGdldE1vZGVsPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZDtcblx0cHVibGljIGFic3RyYWN0IGdldE1vZGVsczxUIGV4dGVuZHMgU291cmNlRmlsZVByb3ZpZGVyPihcblx0XHRjdG9yOiBuZXcgKC4uLmFyZ3M6IG5ldmVyW10pID0+IFQsXG5cdCk6IFRbXTtcblx0cHVibGljIGFic3RyYWN0IGdldFByb2plY3QoZGlyOiBzdHJpbmcpOiBQcm9qZWN0U2NhZmZvbGQgfCB1bmRlZmluZWQ7XG5cdHB1YmxpYyBhYnN0cmFjdCBzY2FmZm9sZCgpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIE1vbm9SZXBvU2NhZmZvbGQgZXh0ZW5kcyBXb3Jrc3BhY2VTY2FmZm9sZCB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX21vZGVscyA9IG5ldyBNYXA8c3RyaW5nLCBTb3VyY2VGaWxlUHJvdmlkZXI+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RzOiBQcm9qZWN0U2NhZmZvbGRbXSA9IFtdO1xuXG5cdC8qKiBSZWdpc3RlciBhIG5hbWVkIHByb2plY3QuICovXG5cdHB1YmxpYyBhZGRQcm9qZWN0KHByb2plY3Q6IFByb2plY3RTY2FmZm9sZCk6IFByb2plY3RTY2FmZm9sZCB7XG5cdFx0dGhpcy5fcHJvamVjdHMucHVzaChwcm9qZWN0KTtcblx0XHRyZXR1cm4gcHJvamVjdDtcblx0fVxuXG5cdC8qKiBSZXRyaWV2ZSBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBwcm9qZWN0IGJ5IGl0cyBkaXJlY3RvcnkgcGF0aC4gKi9cblx0cHVibGljIGdldFByb2plY3QoZGlyOiBzdHJpbmcpOiBQcm9qZWN0U2NhZmZvbGQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9wcm9qZWN0cy5maW5kKChwKSA9PiBwLmRpciA9PT0gZGlyKTtcblx0fVxuXG5cdC8qKiBSZWdpc3RlciBhIG5hbWVkIG1vZGVsIGF0IHdvcmtzcGFjZSBsZXZlbC4gKi9cblx0cHVibGljIGFkZE1vZGVsPFQgZXh0ZW5kcyBLZXllZE1vZGVsPihtb2RlbDogVCk6IFQge1xuXHRcdHRoaXMuX21vZGVscy5zZXQobW9kZWwua2V5LCBtb2RlbCk7XG5cdFx0cmV0dXJuIG1vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgbW9kZWwgYnkga2V5LiBTZWFyY2hlcyB3b3Jrc3BhY2UgbW9kZWxzIGZpcnN0LCB0aGVuIGFsbFxuXHQgKiByZWdpc3RlcmVkIHByb2plY3RzIGluIG9yZGVyLlxuXHQgKi9cblx0cHVibGljIGdldE1vZGVsPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgbSA9IHRoaXMuX21vZGVscy5nZXQoa2V5KSBhcyBUIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChtICE9PSB1bmRlZmluZWQpIHJldHVybiBtO1xuXHRcdGZvciAoY29uc3QgcHJvamVjdCBvZiB0aGlzLl9wcm9qZWN0cykge1xuXHRcdFx0Y29uc3QgcG0gPSBwcm9qZWN0LmdldE1vZGVsPFQ+KGtleSk7XG5cdFx0XHRpZiAocG0gIT09IHVuZGVmaW5lZCkgcmV0dXJuIHBtO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGFsbCBtb2RlbHMgb2YgYSBnaXZlbiB0eXBlLiBTZWFyY2hlcyB3b3Jrc3BhY2UgbW9kZWxzIGFuZCBhbGxcblx0ICogcHJvamVjdHMsIHNvIGZlYXR1cmVzIGNhbiBkaXNjb3ZlciBjb250cm9sbGVycyBhY3Jvc3MgbXVsdGlwbGUgcHJvamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0TW9kZWxzPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGN0b3I6IG5ldyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gVCk6IFRbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdC4uLlsuLi50aGlzLl9tb2RlbHMudmFsdWVzKCldLmZpbHRlcigobSk6IG0gaXMgVCA9PiBtIGluc3RhbmNlb2YgY3RvciksXG5cdFx0XHQuLi50aGlzLl9wcm9qZWN0cy5mbGF0TWFwKChwKSA9PiBwLmdldE1vZGVscyhjdG9yKSksXG5cdFx0XTtcblx0fVxuXG5cdC8qKiBSZW5kZXIgYWxsIG1vZGVscyBhbmQgcHJvamVjdHMgaW50byBmaWxlcywgdGhlbiB3cml0ZSBldmVyeXRoaW5nIHRvIGRpc2suICovXG5cdHB1YmxpYyBhc3luYyBzY2FmZm9sZCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBhbGxGaWxlcyA9IFtcblx0XHRcdC4uLnRoaXMuZmlsZXMsXG5cdFx0XHQuLi5bLi4udGhpcy5fbW9kZWxzLnZhbHVlcygpXS5mbGF0TWFwKChtKSA9PiBtLmZpbGVzKCkpLFxuXHRcdFx0Li4udGhpcy5fcHJvamVjdHMuZmxhdE1hcCgocCkgPT4gcC5maWxlcygpKSxcblx0XHRdO1xuXG5cdFx0YXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRhbGxGaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcblx0XHRcdFx0Y29uc3QgZnVsbFBhdGggPSBqb2luKHRoaXMudGFyZ2V0RGlyLCBmaWxlLmZpbGVQYXRoKTtcblx0XHRcdFx0YXdhaXQgbWtkaXIoZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0XHRhd2FpdCB3cml0ZUZpbGUoZnVsbFBhdGgsIGZpbGUuY29udGVudCk7XG5cdFx0XHR9KSxcblx0XHQpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsibWtkaXIiLCJ3cml0ZUZpbGUiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJqb2luIiwiUHJvamVjdFNjYWZmb2xkIiwiX21vZGVscyIsIk1hcCIsIl9maWxlcyIsImRpciIsImFkZE1vZGVsIiwibW9kZWwiLCJzZXQiLCJrZXkiLCJhZGRGaWxlIiwicHJvdmlkZXIiLCJwdXNoIiwiZmlsZXMiLCJnZXRNb2RlbCIsImdldCIsImdldE1vZGVscyIsImN0b3IiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJtIiwiYWxsIiwiZmxhdE1hcCIsIm1hcCIsImYiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJXb3Jrc3BhY2VTY2FmZm9sZCIsInRhcmdldERpciIsInByb2Nlc3MiLCJjd2QiLCJfbmFtZSIsIm5hbWUiLCJzZXROYW1lIiwiTW9ub1JlcG9TY2FmZm9sZCIsIl9wcm9qZWN0cyIsImFkZFByb2plY3QiLCJwcm9qZWN0IiwiZ2V0UHJvamVjdCIsImZpbmQiLCJwIiwidW5kZWZpbmVkIiwicG0iLCJzY2FmZm9sZCIsImFsbEZpbGVzIiwiUHJvbWlzZSIsImZpbGUiLCJmdWxsUGF0aCIsInJlY3Vyc2l2ZSJd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
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3Byb2plY3QubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXIsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSwgU291cmNlRmlsZVByb3ZpZGVyIH0gZnJvbSBcIi4vc291cmNlLWZpbGUuanNcIjtcblxuLyoqXG4gKiBBIHN1Yi11bml0IG9mIHRoZSBtb25vcmVwbyAoZS5nLiBgcHJvamVjdHMvYXBpYCkuXG4gKlxuICogTW9kZWxzIGFuZCBmaWxlcyByZWdpc3RlcmVkIGhlcmUgcHJvZHVjZSBwYXRocyByZWxhdGl2ZSB0byBgZGlyYC4gVGhlIHBhcmVudFxuICogYE1vbm9SZXBvU2NhZmZvbGRgIGNhbGxzIGBmaWxlcygpYCBhbmQgcHJlcGVuZHMgYGRpci9gIHRvIGV2ZXJ5IHBhdGgsIHNvXG4gKiBtb2RlbHMgcmVtYWluIHVuYXdhcmUgb2Ygd2hlcmUgdGhleSBsaXZlIGluIHRoZSByZXBvLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdFNjYWZmb2xkIHtcblx0cHJpdmF0ZSByZWFkb25seSBfbW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFNvdXJjZUZpbGVQcm92aWRlcj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cblx0cHVibGljIGFkZE1vZGVsPFQgZXh0ZW5kcyBLZXllZE1vZGVsPihtb2RlbDogVCk6IFQge1xuXHRcdHRoaXMuX21vZGVscy5zZXQobW9kZWwua2V5LCBtb2RlbCk7XG5cdFx0cmV0dXJuIG1vZGVsO1xuXHR9XG5cblx0cHVibGljIGFkZEZpbGUocHJvdmlkZXI6IFNvdXJjZUZpbGVQcm92aWRlcik6IHRoaXMge1xuXHRcdHRoaXMuX2ZpbGVzLnB1c2goLi4ucHJvdmlkZXIuZmlsZXMoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWw8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fbW9kZWxzLmdldChrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TW9kZWxzPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGN0b3I6IG5ldyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gVCk6IFRbXSB7XG5cdFx0cmV0dXJuIFsuLi50aGlzLl9tb2RlbHMudmFsdWVzKCldLmZpbHRlcigobSk6IG0gaXMgVCA9PiBtIGluc3RhbmNlb2YgY3Rvcik7XG5cdH1cblxuXHQvKiogUmV0dXJucyBhbGwgZmlsZXMgd2l0aCBgZGlyL2AgcHJlcGVuZGVkIHRvIGVhY2ggcGF0aC4gKi9cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgYWxsID0gWy4uLnRoaXMuX2ZpbGVzLCAuLi5bLi4udGhpcy5fbW9kZWxzLnZhbHVlcygpXS5mbGF0TWFwKChtKSA9PiBtLmZpbGVzKCkpXTtcblx0XHRyZXR1cm4gYWxsLm1hcCgoZikgPT4gKHsgZmlsZVBhdGg6IGAke3RoaXMuZGlyfS8ke2YuZmlsZVBhdGh9YCwgY29udGVudDogZi5jb250ZW50IH0pKTtcblx0fVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya3NwYWNlU2NhZmZvbGQge1xuXHRwdWJsaWMgcmVhZG9ubHkgZmlsZXM6IFNvdXJjZUZpbGVbXSA9IFtdO1xuXHRwdWJsaWMgdGFyZ2V0RGlyOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXHRwcml2YXRlIF9uYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqIFByb2plY3QgbmFtZSDigJQgaG9zdCBkaXJlY3RvcnkgYmFzZW5hbWUsIG5vdCB0aGUgaW4tY29udGFpbmVyIG1vdW50IHBhdGguICovXG5cdHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9uYW1lID8/IGJhc2VuYW1lKHRoaXMudGFyZ2V0RGlyKTtcblx0fVxuXG5cdHB1YmxpYyBzZXROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX25hbWUgPSBuYW1lO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZCBhbiBhZC1ob2MgZmlsZSBwcm92aWRlciB3aG9zZSBvdXRwdXQgaXMgaW5jbHVkZWQgYXQgcmVuZGVyIHRpbWUuICovXG5cdHB1YmxpYyBhZGRGaWxlKHByb3ZpZGVyOiBTb3VyY2VGaWxlUHJvdmlkZXIpOiB0aGlzIHtcblx0XHR0aGlzLmZpbGVzLnB1c2goLi4ucHJvdmlkZXIuZmlsZXMoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWJzdHJhY3QgYWRkTW9kZWw8VCBleHRlbmRzIEtleWVkTW9kZWw+KG1vZGVsOiBUKTogVDtcblx0cHVibGljIGFic3RyYWN0IGdldE1vZGVsPFQgZXh0ZW5kcyBTb3VyY2VGaWxlUHJvdmlkZXI+KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZDtcblx0cHVibGljIGFic3RyYWN0IGdldE1vZGVsczxUIGV4dGVuZHMgU291cmNlRmlsZVByb3ZpZGVyPihcblx0XHRjdG9yOiBuZXcgKC4uLmFyZ3M6IG5ldmVyW10pID0+IFQsXG5cdCk6IFRbXTtcblx0cHVibGljIGFic3RyYWN0IGdldFByb2plY3QoZGlyOiBzdHJpbmcpOiBQcm9qZWN0U2NhZmZvbGQgfCB1bmRlZmluZWQ7XG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRQcm9qZWN0cygpOiByZWFkb25seSBQcm9qZWN0U2NhZmZvbGRbXTtcblx0cHVibGljIGFic3RyYWN0IHNjYWZmb2xkKCk6IFByb21pc2U8dm9pZD4gfCB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ub1JlcG9TY2FmZm9sZCBleHRlbmRzIFdvcmtzcGFjZVNjYWZmb2xkIHtcblx0cHJpdmF0ZSByZWFkb25seSBfbW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFNvdXJjZUZpbGVQcm92aWRlcj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcHJvamVjdHM6IFByb2plY3RTY2FmZm9sZFtdID0gW107XG5cblx0LyoqIFJlZ2lzdGVyIGEgbmFtZWQgcHJvamVjdC4gKi9cblx0cHVibGljIGFkZFByb2plY3QocHJvamVjdDogUHJvamVjdFNjYWZmb2xkKTogUHJvamVjdFNjYWZmb2xkIHtcblx0XHR0aGlzLl9wcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuXHRcdHJldHVybiBwcm9qZWN0O1xuXHR9XG5cblx0LyoqIFJldHJpZXZlIGEgcHJldmlvdXNseS1yZWdpc3RlcmVkIHByb2plY3QgYnkgaXRzIGRpcmVjdG9yeSBwYXRoLiAqL1xuXHRwdWJsaWMgZ2V0UHJvamVjdChkaXI6IHN0cmluZyk6IFByb2plY3RTY2FmZm9sZCB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2plY3RzLmZpbmQoKHApID0+IHAuZGlyID09PSBkaXIpO1xuXHR9XG5cblx0LyoqIEFsbCByZWdpc3RlcmVkIHByb2plY3RzLCBpbiByZWdpc3RyYXRpb24gb3JkZXIuICovXG5cdHB1YmxpYyBnZXRQcm9qZWN0cygpOiByZWFkb25seSBQcm9qZWN0U2NhZmZvbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2plY3RzO1xuXHR9XG5cblx0LyoqIFJlZ2lzdGVyIGEgbmFtZWQgbW9kZWwgYXQgd29ya3NwYWNlIGxldmVsLiAqL1xuXHRwdWJsaWMgYWRkTW9kZWw8VCBleHRlbmRzIEtleWVkTW9kZWw+KG1vZGVsOiBUKTogVCB7XG5cdFx0dGhpcy5fbW9kZWxzLnNldChtb2RlbC5rZXksIG1vZGVsKTtcblx0XHRyZXR1cm4gbW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgYSBtb2RlbCBieSBrZXkuIFNlYXJjaGVzIHdvcmtzcGFjZSBtb2RlbHMgZmlyc3QsIHRoZW4gYWxsXG5cdCAqIHJlZ2lzdGVyZWQgcHJvamVjdHMgaW4gb3JkZXIuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0TW9kZWw8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBtID0gdGhpcy5fbW9kZWxzLmdldChrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKG0gIT09IHVuZGVmaW5lZCkgcmV0dXJuIG07XG5cdFx0Zm9yIChjb25zdCBwcm9qZWN0IG9mIHRoaXMuX3Byb2plY3RzKSB7XG5cdFx0XHRjb25zdCBwbSA9IHByb2plY3QuZ2V0TW9kZWw8VD4oa2V5KTtcblx0XHRcdGlmIChwbSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcG07XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgYWxsIG1vZGVscyBvZiBhIGdpdmVuIHR5cGUuIFNlYXJjaGVzIHdvcmtzcGFjZSBtb2RlbHMgYW5kIGFsbFxuXHQgKiBwcm9qZWN0cywgc28gZmVhdHVyZXMgY2FuIGRpc2NvdmVyIGNvbnRyb2xsZXJzIGFjcm9zcyBtdWx0aXBsZSBwcm9qZWN0cy5cblx0ICovXG5cdHB1YmxpYyBnZXRNb2RlbHM8VCBleHRlbmRzIFNvdXJjZUZpbGVQcm92aWRlcj4oY3RvcjogbmV3ICguLi5hcmdzOiBuZXZlcltdKSA9PiBUKTogVFtdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0Li4uWy4uLnRoaXMuX21vZGVscy52YWx1ZXMoKV0uZmlsdGVyKChtKTogbSBpcyBUID0+IG0gaW5zdGFuY2VvZiBjdG9yKSxcblx0XHRcdC4uLnRoaXMuX3Byb2plY3RzLmZsYXRNYXAoKHApID0+IHAuZ2V0TW9kZWxzKGN0b3IpKSxcblx0XHRdO1xuXHR9XG5cblx0LyoqIFJlbmRlciBhbGwgbW9kZWxzIGFuZCBwcm9qZWN0cyBpbnRvIGZpbGVzLCB0aGVuIHdyaXRlIGV2ZXJ5dGhpbmcgdG8gZGlzay4gKi9cblx0cHVibGljIGFzeW5jIHNjYWZmb2xkKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGFsbEZpbGVzID0gW1xuXHRcdFx0Li4udGhpcy5maWxlcyxcblx0XHRcdC4uLlsuLi50aGlzLl9tb2RlbHMudmFsdWVzKCldLmZsYXRNYXAoKG0pID0+IG0uZmlsZXMoKSksXG5cdFx0XHQuLi50aGlzLl9wcm9qZWN0cy5mbGF0TWFwKChwKSA9PiBwLmZpbGVzKCkpLFxuXHRcdF07XG5cblx0XHRhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdGFsbEZpbGVzLm1hcChhc3luYyAoZmlsZSkgPT4ge1xuXHRcdFx0XHRjb25zdCBmdWxsUGF0aCA9IGpvaW4odGhpcy50YXJnZXREaXIsIGZpbGUuZmlsZVBhdGgpO1xuXHRcdFx0XHRhd2FpdCBta2RpcihkaXJuYW1lKGZ1bGxQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRcdGF3YWl0IHdyaXRlRmlsZShmdWxsUGF0aCwgZmlsZS5jb250ZW50KTtcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJta2RpciIsIndyaXRlRmlsZSIsImJhc2VuYW1lIiwiZGlybmFtZSIsImpvaW4iLCJQcm9qZWN0U2NhZmZvbGQiLCJfbW9kZWxzIiwiTWFwIiwiX2ZpbGVzIiwiZGlyIiwiYWRkTW9kZWwiLCJtb2RlbCIsInNldCIsImtleSIsImFkZEZpbGUiLCJwcm92aWRlciIsInB1c2giLCJmaWxlcyIsImdldE1vZGVsIiwiZ2V0IiwiZ2V0TW9kZWxzIiwiY3RvciIsInZhbHVlcyIsImZpbHRlciIsIm0iLCJhbGwiLCJmbGF0TWFwIiwibWFwIiwiZiIsImZpbGVQYXRoIiwiY29udGVudCIsIldvcmtzcGFjZVNjYWZmb2xkIiwidGFyZ2V0RGlyIiwicHJvY2VzcyIsImN3ZCIsIl9uYW1lIiwibmFtZSIsInNldE5hbWUiLCJNb25vUmVwb1NjYWZmb2xkIiwiX3Byb2plY3RzIiwiYWRkUHJvamVjdCIsInByb2plY3QiLCJnZXRQcm9qZWN0IiwiZmluZCIsInAiLCJnZXRQcm9qZWN0cyIsInVuZGVmaW5lZCIsInBtIiwic2NhZmZvbGQiLCJhbGxGaWxlcyIsIlByb21pc2UiLCJmaWxlIiwiZnVsbFBhdGgiLCJyZWN1cnNpdmUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEtBQUssRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUNwRCxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxRQUFRLFlBQVk7QUFHcEQ7Ozs7OztDQU1DLEdBQ0QsT0FBTyxNQUFNQzs7SUFDS0MsVUFBVSxJQUFJQyxNQUFrQztJQUNoREMsU0FBdUIsRUFBRSxDQUFDO0lBRTNDLFlBQW1CLEFBQWdCQyxHQUFXLENBQUU7YUFBYkEsTUFBQUE7SUFBYztJQUUxQ0MsU0FBK0JDLEtBQVEsRUFBSztRQUNsRCxJQUFJLENBQUNMLE9BQU8sQ0FBQ00sR0FBRyxDQUFDRCxNQUFNRSxHQUFHLEVBQUVGO1FBQzVCLE9BQU9BO0lBQ1I7SUFFT0csUUFBUUMsUUFBNEIsRUFBUTtRQUNsRCxJQUFJLENBQUNQLE1BQU0sQ0FBQ1EsSUFBSSxJQUFJRCxTQUFTRSxLQUFLO1FBQ2xDLE9BQU8sSUFBSTtJQUNaO0lBRU9DLFNBQXVDTCxHQUFXLEVBQWlCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDUCxPQUFPLENBQUNhLEdBQUcsQ0FBQ047SUFDekI7SUFFT08sVUFBd0NDLElBQWlDLEVBQU87UUFDdEYsT0FBTztlQUFJLElBQUksQ0FBQ2YsT0FBTyxDQUFDZ0IsTUFBTTtTQUFHLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxJQUFjQSxhQUFhSDtJQUN0RTtJQUVBLDBEQUEwRCxHQUMxRCxBQUFPSixRQUFzQjtRQUM1QixNQUFNUSxNQUFNO2VBQUksSUFBSSxDQUFDakIsTUFBTTtlQUFL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
|
package/es6/src/program.js
CHANGED
|
@@ -1,31 +1,58 @@
|
|
|
1
1
|
import { Command, CommanderError } from "commander";
|
|
2
2
|
import { resolveTargetDir } from "./resolve-target-dir.js";
|
|
3
3
|
import { runInBuilder } from "./runner.js";
|
|
4
|
+
import { CreateCliError, parseApiNames } from "./webapi/api-name.js";
|
|
4
5
|
import { scaffoldApi } from "./webapi/create-api.js";
|
|
6
|
+
function collectName(value, previous) {
|
|
7
|
+
previous.push(value);
|
|
8
|
+
return previous;
|
|
9
|
+
}
|
|
10
|
+
function addWebapiFeatureOptions(cmd) {
|
|
11
|
+
return cmd.option("--database <provider>", "Database provider: none | postgres/typeorm").option("--auth <provider>", "Auth provider: none | auth0").option("--postman <provider>", "Postman provider: none | local | api").option("-y, --yes", "Install dependencies without prompting").option("--install <mode>", "Dependency install mode: ask | yes | no", "ask");
|
|
12
|
+
}
|
|
13
|
+
function toApiOptions(directory, opts, extra = {}) {
|
|
14
|
+
const installMode = String(opts.install ?? "ask").toLowerCase();
|
|
15
|
+
const names = Array.isArray(opts.name) ? opts.name : typeof opts.name === "string" ? [
|
|
16
|
+
opts.name
|
|
17
|
+
] : extra.names;
|
|
18
|
+
return {
|
|
19
|
+
d: resolveTargetDir(directory, typeof opts.d === "string" ? opts.d : undefined),
|
|
20
|
+
databaseProvider: opts.database,
|
|
21
|
+
authProvider: opts.auth,
|
|
22
|
+
postmanProvider: opts.postman,
|
|
23
|
+
installDependencies: opts.yes === true ? "yes" : installMode === "yes" || installMode === "no" ? installMode : undefined,
|
|
24
|
+
names,
|
|
25
|
+
...extra
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async function runWebapi(normalized) {
|
|
29
|
+
parseApiNames(normalized.names);
|
|
30
|
+
if (process.env.DECOHERE_BUILDER !== "1") {
|
|
31
|
+
runInBuilder(normalized);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const { closePrompt } = await import("./domain/prompt.js");
|
|
35
|
+
try {
|
|
36
|
+
await scaffoldApi(normalized);
|
|
37
|
+
} finally{
|
|
38
|
+
closePrompt();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
5
41
|
export function createProgram() {
|
|
6
42
|
const program = new Command();
|
|
7
43
|
program.exitOverride();
|
|
8
44
|
program.name("decohere").description("Scaffold a new Decohere project").option("-d <directory>", "Target directory (default: current directory)", ".");
|
|
9
|
-
program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
runInBuilder(normalized);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const { closePrompt } = await import("./domain/prompt.js");
|
|
24
|
-
try {
|
|
25
|
-
await scaffoldApi(normalized);
|
|
26
|
-
} finally{
|
|
27
|
-
closePrompt();
|
|
28
|
-
}
|
|
45
|
+
const webapi = addWebapiFeatureOptions(program.command("webapi").argument("[directory]", "Target directory (default: -d or current directory)").option("--name <slug>", "API name under projects/ (repeatable; default: api)", collectName, []));
|
|
46
|
+
webapi.action(async (directory, _opts, cmd)=>{
|
|
47
|
+
await runWebapi(toApiOptions(directory, cmd.optsWithGlobals()));
|
|
48
|
+
});
|
|
49
|
+
addWebapiFeatureOptions(webapi.command("add").argument("<name>", "API name under projects/")).action(async (name, _opts, cmd)=>{
|
|
50
|
+
await runWebapi(toApiOptions(undefined, cmd.optsWithGlobals(), {
|
|
51
|
+
names: [
|
|
52
|
+
name
|
|
53
|
+
],
|
|
54
|
+
add: true
|
|
55
|
+
}));
|
|
29
56
|
});
|
|
30
57
|
return program;
|
|
31
58
|
}
|
|
@@ -36,10 +63,14 @@ export async function runCli(argv = process.argv) {
|
|
|
36
63
|
if (err instanceof CommanderError) {
|
|
37
64
|
process.exit(err.exitCode);
|
|
38
65
|
}
|
|
66
|
+
if (err instanceof CreateCliError) {
|
|
67
|
+
console.error(`\n ${err.message}\n`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
39
70
|
console.error(err);
|
|
40
71
|
process.exit(1);
|
|
41
72
|
}
|
|
42
73
|
process.exit(process.exitCode ?? 0);
|
|
43
74
|
}
|
|
44
75
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcHJvZ3JhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kZXJFcnJvciB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IHJlc29sdmVUYXJnZXREaXIgfSBmcm9tIFwiLi9yZXNvbHZlLXRhcmdldC1kaXIuanNcIjtcbmltcG9ydCB7IHJ1bkluQnVpbGRlciB9IGZyb20gXCIuL3J1bm5lci5qc1wiO1xuaW1wb3J0IHsgQ3JlYXRlQ2xpRXJyb3IsIHBhcnNlQXBpTmFtZXMgfSBmcm9tIFwiLi93ZWJhcGkvYXBpLW5hbWUuanNcIjtcbmltcG9ydCB0eXBlIHsgQXBpT3B0aW9ucyB9IGZyb20gXCIuL3dlYmFwaS9jcmVhdGUtYXBpLmpzXCI7XG5pbXBvcnQgeyBzY2FmZm9sZEFwaSB9IGZyb20gXCIuL3dlYmFwaS9jcmVhdGUtYXBpLmpzXCI7XG5cbmZ1bmN0aW9uIGNvbGxlY3ROYW1lKHZhbHVlOiBzdHJpbmcsIHByZXZpb3VzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0cHJldmlvdXMucHVzaCh2YWx1ZSk7XG5cdHJldHVybiBwcmV2aW91cztcbn1cblxuZnVuY3Rpb24gYWRkV2ViYXBpRmVhdHVyZU9wdGlvbnMoY21kOiBDb21tYW5kKTogQ29tbWFuZCB7XG5cdHJldHVybiBjbWRcblx0XHQub3B0aW9uKFwiLS1kYXRhYmFzZSA8cHJvdmlkZXI+XCIsIFwiRGF0YWJhc2UgcHJvdmlkZXI6IG5vbmUgfCBwb3N0Z3Jlcy90eXBlb3JtXCIpXG5cdFx0Lm9wdGlvbihcIi0tYXV0aCA8cHJvdmlkZXI+XCIsIFwiQXV0aCBwcm92aWRlcjogbm9uZSB8IGF1dGgwXCIpXG5cdFx0Lm9wdGlvbihcIi0tcG9zdG1hbiA8cHJvdmlkZXI+XCIsIFwiUG9zdG1hbiBwcm92aWRlcjogbm9uZSB8IGxvY2FsIHwgYXBpXCIpXG5cdFx0Lm9wdGlvbihcIi15LCAtLXllc1wiLCBcIkluc3RhbGwgZGVwZW5kZW5jaWVzIHdpdGhvdXQgcHJvbXB0aW5nXCIpXG5cdFx0Lm9wdGlvbihcIi0taW5zdGFsbCA8bW9kZT5cIiwgXCJEZXBlbmRlbmN5IGluc3RhbGwgbW9kZTogYXNrIHwgeWVzIHwgbm9cIiwgXCJhc2tcIik7XG59XG5cbmZ1bmN0aW9uIHRvQXBpT3B0aW9ucyhcblx0ZGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdG9wdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRleHRyYTogUGFydGlhbDxBcGlPcHRpb25zPiA9IHt9LFxuKTogQXBpT3B0aW9ucyB7XG5cdGNvbnN0IGluc3RhbGxNb2RlID0gU3RyaW5nKG9wdHMuaW5zdGFsbCA/PyBcImFza1wiKS50b0xvd2VyQ2FzZSgpO1xuXHRjb25zdCBuYW1lcyA9IEFycmF5LmlzQXJyYXkob3B0cy5uYW1lKVxuXHRcdD8gKG9wdHMubmFtZSBhcyBzdHJpbmdbXSlcblx0XHQ6IHR5cGVvZiBvcHRzLm5hbWUgPT09IFwic3RyaW5nXCJcblx0XHRcdD8gW29wdHMubmFtZV1cblx0XHRcdDogZXh0cmEubmFtZXM7XG5cdHJldHVybiB7XG5cdFx0ZDogcmVzb2x2ZVRhcmdldERpcihkaXJlY3RvcnksIHR5cGVvZiBvcHRzLmQgPT09IFwic3RyaW5nXCIgPyBvcHRzLmQgOiB1bmRlZmluZWQpLFxuXHRcdGRhdGFiYXNlUHJvdmlkZXI6IG9wdHMuZGF0YWJhc2UgYXMgQXBpT3B0aW9uc1tcImRhdGFiYXNlUHJvdmlkZXJcIl0sXG5cdFx0YXV0aFByb3ZpZGVyOiBvcHRzLmF1dGggYXMgQXBpT3B0aW9uc1tcImF1dGhQcm92aWRlclwiXSxcblx0XHRwb3N0bWFuUHJvdmlkZXI6IG9wdHMucG9zdG1hbiBhcyBBcGlPcHRpb25zW1wicG9zdG1hblByb3ZpZGVyXCJdLFxuXHRcdGluc3RhbGxEZXBlbmRlbmNpZXM6XG5cdFx0XHRvcHRzLnllcyA9PT0gdHJ1ZVxuXHRcdFx0XHQ/IFwieWVzXCJcblx0XHRcdFx0OiBpbnN0YWxsTW9kZSA9PT0gXCJ5ZXNcIiB8fCBpbnN0YWxsTW9kZSA9PT0gXCJub1wiXG5cdFx0XHRcdFx0PyBpbnN0YWxsTW9kZVxuXHRcdFx0XHRcdDogdW5kZWZpbmVkLFxuXHRcdG5hbWVzLFxuXHRcdC4uLmV4dHJhLFxuXHR9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5XZWJhcGkobm9ybWFsaXplZDogQXBpT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuXHRwYXJzZUFwaU5hbWVzKG5vcm1hbGl6ZWQubmFtZXMpO1xuXHRpZiAocHJvY2Vzcy5lbnYuREVDT0hFUkVfQlVJTERFUiAhPT0gXCIxXCIpIHtcblx0XHRydW5JbkJ1aWxkZXIobm9ybWFsaXplZCk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgeyBjbG9zZVByb21wdCB9ID0gYXdhaXQgaW1wb3J0KFwiLi9kb21haW4vcHJvbXB0LmpzXCIpO1xuXHR0cnkge1xuXHRcdGF3YWl0IHNjYWZmb2xkQXBpKG5vcm1hbGl6ZWQpO1xuXHR9IGZpbmFsbHkge1xuXHRcdGNsb3NlUHJvbXB0KCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oKTogQ29tbWFuZCB7XG5cdGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXHRwcm9ncmFtLmV4aXRPdmVycmlkZSgpO1xuXHRwcm9ncmFtXG5cdFx0Lm5hbWUoXCJkZWNvaGVyZVwiKVxuXHRcdC5kZXNjcmlwdGlvbihcIlNjYWZmb2xkIGEgbmV3IERlY29oZXJlIHByb2plY3RcIilcblx0XHQub3B0aW9uKFwiLWQgPGRpcmVjdG9yeT5cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiBjdXJyZW50IGRpcmVjdG9yeSlcIiwgXCIuXCIpO1xuXG5cdGNvbnN0IHdlYmFwaSA9IGFkZFdlYmFwaUZlYXR1cmVPcHRpb25zKFxuXHRcdHByb2dyYW1cblx0XHRcdC5jb21tYW5kKFwid2ViYXBpXCIpXG5cdFx0XHQuYXJndW1lbnQoXCJbZGlyZWN0b3J5XVwiLCBcIlRhcmdldCBkaXJlY3RvcnkgKGRlZmF1bHQ6IC1kIG9yIGN1cnJlbnQgZGlyZWN0b3J5KVwiKVxuXHRcdFx0Lm9wdGlvbihcblx0XHRcdFx0XCItLW5hbWUgPHNsdWc+XCIsXG5cdFx0XHRcdFwiQVBJIG5hbWUgdW5kZXIgcHJvamVjdHMvIChyZXBlYXRhYmxlOyBkZWZhdWx0OiBhcGkpXCIsXG5cdFx0XHRcdGNvbGxlY3ROYW1lLFxuXHRcdFx0XHRbXSBhcyBzdHJpbmdbXSxcblx0XHRcdCksXG5cdCk7XG5cdHdlYmFwaS5hY3Rpb24oYXN5bmMgKGRpcmVjdG9yeTogc3RyaW5nIHwgdW5kZWZpbmVkLCBfb3B0czogdW5rbm93biwgY21kOiBDb21tYW5kKSA9PiB7XG5cdFx0YXdhaXQgcnVuV2ViYXBpKHRvQXBpT3B0aW9ucyhkaXJlY3RvcnksIGNtZC5vcHRzV2l0aEdsb2JhbHMoKSkpO1xuXHR9KTtcblxuXHRhZGRXZWJhcGlGZWF0dXJlT3B0aW9ucyhcblx0XHR3ZWJhcGkuY29tbWFuZChcImFkZFwiKS5hcmd1bWVudChcIjxuYW1lPlwiLCBcIkFQSSBuYW1lIHVuZGVyIHByb2plY3RzL1wiKSxcblx0KS5hY3Rpb24oYXN5bmMgKG5hbWU6IHN0cmluZywgX29wdHM6IHVua25vd24sIGNtZDogQ29tbWFuZCkgPT4ge1xuXHRcdGF3YWl0IHJ1bldlYmFwaShcblx0XHRcdHRvQXBpT3B0aW9ucyh1bmRlZmluZWQsIGNtZC5vcHRzV2l0aEdsb2JhbHMoKSwgeyBuYW1lczogW25hbWVdLCBhZGQ6IHRydWUgfSksXG5cdFx0KTtcblx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5DbGkoYXJndjogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3YpOiBQcm9taXNlPHZvaWQ+IHtcblx0dHJ5IHtcblx0XHRhd2FpdCBjcmVhdGVQcm9ncmFtKCkucGFyc2VBc3luYyhhcmd2KTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKGVyciBpbnN0YW5jZW9mIENvbW1hbmRlckVycm9yKSB7XG5cdFx0XHRwcm9jZXNzLmV4aXQoZXJyLmV4aXRDb2RlKTtcblx0XHR9XG5cdFx0aWYgKGVyciBpbnN0YW5jZW9mIENyZWF0ZUNsaUVycm9yKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGBcXG4gICR7ZXJyLm1lc3NhZ2V9XFxuYCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXHRcdGNvbnNvbGUuZXJyb3IoZXJyKTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblx0cHJvY2Vzcy5leGl0KHByb2Nlc3MuZXhpdENvZGUgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsiQ29tbWFuZCIsIkNvbW1hbmRlckVycm9yIiwicmVzb2x2ZVRhcmdldERpciIsInJ1bkluQnVpbGRlciIsIkNyZWF0ZUNsaUVycm9yIiwicGFyc2VBcGlOYW1lcyIsInNjYWZmb2xkQXBpIiwiY29sbGVjdE5hbWUiLCJ2YWx1ZSIsInByZXZpb3VzIiwicHVzaCIsImFkZFdlYmFwaUZlYXR1cmVPcHRpb25zIiwiY21kIiwib3B0aW9uIiwidG9BcGlPcHRpb25zIiwiZGlyZWN0b3J5Iiwib3B0cyIsImV4dHJhIiwiaW5zdGFsbE1vZGUiLCJTdHJpbmciLCJpbnN0YWxsIiwidG9Mb3dlckNhc2UiLCJuYW1lcyIsIkFycmF5IiwiaXNBcnJheSIsIm5hbWUiLCJkIiwidW5kZWZpbmVkIiwiZGF0YWJhc2VQcm92aWRlciIsImRhdGFiYXNlIiwiYXV0aFByb3ZpZGVyIiwiYXV0aCIsInBvc3RtYW5Qcm92aWRlciIsInBvc3RtYW4iLCJpbnN0YWxsRGVwZW5kZW5jaWVzIiwieWVzIiwicnVuV2ViYXBpIiwibm9ybWFsaXplZCIsInByb2Nlc3MiLCJlbnYiLCJERUNPSEVSRV9CVUlMREVSIiwiY2xvc2VQcm9tcHQiLCJjcmVhdGVQcm9ncmFtIiwicHJvZ3JhbSIsImV4aXRPdmVycmlkZSIsImRlc2NyaXB0aW9uIiwid2ViYXBpIiwiY29tbWFuZCIsImFyZ3VtZW50IiwiYWN0aW9uIiwiX29wdHMiLCJvcHRzV2l0aEdsb2JhbHMiLCJhZGQiLCJydW5DbGkiLCJhcmd2IiwicGFyc2VBc3luYyIsImVyciIsImV4aXQiLCJleGl0Q29kZSIsImNvbnNvbGUiLCJlcnJvciIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sRUFBRUMsY0FBYyxRQUFRLFlBQVk7QUFDcEQsU0FBU0MsZ0JBQWdCLFFBQVEsMEJBQTBCO0FBQzNELFNBQVNDLFlBQVksUUFBUSxjQUFjO0FBQzNDLFNBQVNDLGNBQWMsRUFBRUMsYUFBYSxRQUFRLHVCQUF1QjtBQUVyRSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBRXJELFNBQVNDLFlBQVlDLEtBQWEsRUFBRUMsUUFBa0I7SUFDckRBLFNBQVNDLElBQUksQ0FBQ0Y7SUFDZCxPQUFPQztBQUNSO0FBRUEsU0FBU0Usd0JBQXdCQyxHQUFZO0lBQzVDLE9BQU9BLElBQ0xDLE1BQU0sQ0FBQyx5QkFBeUIsOENBQ2hDQSxNQUFNLENBQUMscUJBQXFCLCtCQUM1QkEsTUFBTSxDQUFDLHdCQUF3Qix3Q0FDL0JBLE1BQU0sQ0FBQyxhQUFhLDBDQUNwQkEsTUFBTSxDQUFDLG9CQUFvQiwyQ0FBMkM7QUFDekU7QUFFQSxTQUFTQyxhQUNSQyxTQUE2QixFQUM3QkMsSUFBNkIsRUFDN0JDLFFBQTZCLENBQUMsQ0FBQztJQUUvQixNQUFNQyxjQUFjQyxPQUFPSCxLQUFLSSxPQUFPLElBQUksT0FBT0MsV0FBVztJQUM3RCxNQUFNQyxRQUFRQyxNQUFNQyxPQUFPLENBQUNSLEtBQUtTLElBQUksSUFDakNULEtBQUtTLElBQUksR0FDVixPQUFPVCxLQUFLUyxJQUFJLEtBQUssV0FDcEI7UUFBQ1QsS0FBS1MsSUFBSTtLQUFDLEdBQ1hSLE1BQU1LLEtBQUs7SUFDZixPQUFPO1FBQ05JLEdBQUd4QixpQkFBaUJhLFdBQVcsT0FBT0MsS0FBS1UsQ0FBQyxLQUFLLFdBQVdWLEtBQUtVLENBQUMsR0FBR0M7UUFDckVDLGtCQUFrQlosS0FBS2EsUUFBUTtRQUMvQkMsY0FBY2QsS0FBS2UsSUFBSTtRQUN2QkMsaUJBQWlCaEIsS0FBS2lCLE9BQU87UUFDN0JDLHFCQUNDbEIsS0FBS21CLEdBQUcsS0FBSyxPQUNWLFFBQ0FqQixnQkFBZ0IsU0FBU0EsZ0JBQWdCLE9BQ3hDQSxjQUNBUztRQUNMTDtRQUNBLEdBQUdMLEtBQUs7SUFDVDtBQUNEO0FBRUEsZUFBZW1CLFVBQVVDLFVBQXNCO0lBQzlDaEMsY0FBY2dDLFdBQVdmLEtBQUs7SUFDOUIsSUFBSWdCLFFBQVFDLEdBQUcsQ0FBQ0MsZ0JBQWdCLEtBQUssS0FBSztRQUN6Q3JDLGFBQWFrQztRQUNiO0lBQ0Q7SUFFQSxNQUFNLEVBQUVJLFdBQVcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDO0lBQ3JDLElBQUk7UUFDSCxNQUFNbkMsWUFBWStCO0lBQ25CLFNBQVU7UUFDVEk7SUFDRDtBQUNEO0FBRUEsT0FBTyxTQUFTQztJQUNmLE1BQU1DLFVBQVUsSUFBSTNDO0lBQ3BCMkMsUUFBUUMsWUFBWTtJQUNwQkQsUUFDRWxCLElBQUksQ0FBQyxZQUNMb0IsV0FBVyxDQUFDLG1DQUNaaEMsTUFBTSxDQUFDLGtCQUFrQixpREFBaUQ7SUFFNUUsTUFBTWlDLFNBQVNuQyx3QkFDZGdDLFFBQ0VJLE9BQU8sQ0FBQyxVQUNSQyxRQUFRLENBQUMsZUFBZSx1REFDeEJuQyxNQUFNLENBQ04saUJBQ0EsdURBQ0FOLGFBQ0EsRUFBRTtJQUdMdUMsT0FBT0csTUFBTSxDQUFDLE9BQU9sQyxXQUErQm1DLE9BQWdCdEM7UUFDbkUsTUFBTXdCLFVBQVV0QixhQUFhQyxXQUFXSCxJQUFJdUMsZUFBZTtJQUM1RDtJQUVBeEMsd0JBQ0NtQyxPQUFPQyxPQUFPLENBQUMsT0FBT0MsUUFBUSxDQUFDLFVBQVUsNkJBQ3hDQyxNQUFNLENBQUMsT0FBT3hCLE1BQWN5QixPQUFnQnRDO1FBQzdDLE1BQU13QixVQUNMdEIsYUFBYWEsV0FBV2YsSUFBSXVDLGVBQWUsSUFBSTtZQUFFN0IsT0FBTztnQkFBQ0c7YUFBSztZQUFFMkIsS0FBSztRQUFLO0lBRTVFO0lBRUEsT0FBT1Q7QUFDUjtBQUVBLE9BQU8sZUFBZVUsT0FBT0MsT0FBaUJoQixRQUFRZ0IsSUFBSTtJQUN6RCxJQUFJO1FBQ0gsTUFBTVosZ0JBQWdCYSxVQUFVLENBQUNEO0lBQ2xDLEVBQUUsT0FBT0UsS0FBSztRQUNiLElBQUlBLGVBQWV2RCxnQkFBZ0I7WUFDbENxQyxRQUFRbUIsSUFBSSxDQUFDRCxJQUFJRSxRQUFRO1FBQzFCO1FBQ0EsSUFBSUYsZUFBZXBELGdCQUFnQjtZQUNsQ3VELFFBQVFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRUosSUFBSUssT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNwQ3ZCLFFBQVFtQixJQUFJLENBQUM7UUFDZDtRQUNBRSxRQUFRQyxLQUFLLENBQUNKO1FBQ2RsQixRQUFRbUIsSUFBSSxDQUFDO0lBQ2Q7SUFDQW5CLFFBQVFtQixJQUFJLENBQUNuQixRQUFRb0IsUUFBUSxJQUFJO0FBQ2xDIn0=
|
package/es6/src/runner.js
CHANGED
|
@@ -87,11 +87,22 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
|
|
|
87
87
|
envArgs.push("-e", `HOST_UID=${hostUid}`);
|
|
88
88
|
if (hostGid != null) envArgs.push("-e", `HOST_GID=${hostGid}`);
|
|
89
89
|
}
|
|
90
|
-
const commandArgs = [
|
|
90
|
+
const commandArgs = opts.add ? [
|
|
91
|
+
"webapi",
|
|
92
|
+
"add",
|
|
93
|
+
opts.names?.[0] ?? "",
|
|
94
|
+
"-d",
|
|
95
|
+
"."
|
|
96
|
+
] : [
|
|
91
97
|
"webapi",
|
|
92
98
|
"-d",
|
|
93
99
|
"."
|
|
94
100
|
];
|
|
101
|
+
if (!opts.add) {
|
|
102
|
+
for (const name of opts.names ?? []){
|
|
103
|
+
commandArgs.push("--name", name);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
95
106
|
if (opts.databaseProvider != null) {
|
|
96
107
|
commandArgs.push("--database", opts.databaseProvider);
|
|
97
108
|
}
|
|
@@ -132,4 +143,4 @@ const BUILDER_IMAGE = `${CREATE_IMAGE_REPOSITORY}:${CREATE_VERSION}`;
|
|
|
132
143
|
process.exit(result.status ?? 0);
|
|
133
144
|
}
|
|
134
145
|
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSwgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaU9wdGlvbnMgfSBmcm9tIFwiLi93ZWJhcGkvY3JlYXRlLWFwaS5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBSdW4gdGhlIHNjYWZmb2xkIGluc2lkZSBhIHByZS1idWlsdCBEb2NrZXIgYnVpbGRlciBpbWFnZS5cbiAqXG4gKiBDYWxsZWQgd2hlbiBgREVDT0hFUkVfQlVJTERFUmAgaXMgbm90IHNldCDigJQgaS5lLiB0aGUgQ0xJIGlzIHJ1bm5pbmcgb24gdGhlXG4gKiBob3N0LCBvdXRzaWRlIHRoZSBjb250YWluZXIuIE1vdW50cyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcyBgL3dvcmtzcGFjZWAgc29cbiAqIHRoZSBzY2FmZm9sZGVkIGZpbGVzIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIGhvc3QgZmlsZXN5c3RlbS5cbiAqXG4gKiBUaGUgY29udGFpbmVyIHJ1bnMgYXMgdGhlIGhvc3QgdWlkL2dpZCB3aGVuZXZlciBwb3NzaWJsZSBzbyBzY2FmZm9sZGVkIGZpbGVzXG4gKiBhcmUgbmV2ZXIgcm9vdC1vd25lZCAocG9zdC1ob2MgYGNob3duYCBpcyB1bnJlbGlhYmxlIGFjcm9zcyBEb2NrZXIgc2V0dXBzKS5cbiAqXG4gKiBIb3N0IGB+Ly5jb25maWcvYXV0aDBgIGlzIG1vdW50ZWQgd2hlbiBwcmVzZW50IHNvIHRoZSBBdXRoMCBDTEkgY2FuIHJldXNlXG4gKiBjcmVkZW50aWFscyAocmVxdWlyZWQgZm9yIFBvc3RtYW4gU1BBIC8gYXV0aDBDbGllbnRJZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JbkJ1aWxkZXIob3B0czogQXBpT3B0aW9ucyk6IG5ldmVyIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShvcHRzLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9IGJhc2VuYW1lKHRhcmdldERpcik7XG5cdG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHQvLyBIb3N0LW93bmVkIHNvIGluaXRpYWxpemVDb21tYW5kIGNhbiBhbHdheXMgd3JpdGUgaGVyZSBldmVuIGlmIHNvbWV0aGluZ1xuXHQvLyBlbHNlIGluIC5kZXZjb250YWluZXIgZW5kcyB1cCBvZGRseSBvd25lZC5cblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gRW5zdXJlIERvY2tlciBpcyBhdmFpbGFibGUuXG5cdHRyeSB7XG5cdFx0ZXhlY0ZpbGVTeW5jKFwiZG9ja2VyXCIsIFtcImluZm9cIl0sIHsgc3RkaW86IFwicGlwZVwiIH0pO1xuXHR9IGNhdGNoIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XCJcXG4gIERvY2tlciBpcyByZXF1aXJlZCB0byBzY2FmZm9sZCBhIERlY29oZXJlIHByb2plY3QuXFxuXCIgK1xuXHRcdFx0XHRcIiAgSW5zdGFsbCBEb2NrZXIgRGVza3RvcDogaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcFxcblwiLFxuXHRcdCk7XG5cdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHR9XG5cblx0Y29uc3QgaG9zdFVpZCA9IHByb2Nlc3MuZ2V0dWlkPy4oKTtcblx0Y29uc3QgaG9zdEdpZCA9IHByb2Nlc3MuZ2V0Z2lkPy4oKSA/PyBob3N0VWlkO1xuXHRjb25zdCBydW5Bc0hvc3RVc2VyID0gaG9zdFVpZCAhPSBudWxsICYmIGhvc3RHaWQgIT0gbnVsbDtcblxuXHQvLyBBbm9ueW1vdXMgcm9vdC1vd25lZCB2b2x1bWVzIGFyZSBub3Qgd3JpdGFibGUgd2hlbiB3ZSBkcm9wIHByaXZpbGVnZXMuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gSXNvbGF0ZWQgSE9NRSBzbyAtLXVzZXIgaG9zdC11aWQgY2FuIHdyaXRlIHdpdGhvdXQgYSBtYXRjaGluZyAvZXRjL3Bhc3N3ZCBlbnRyeS5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdC8vIEhvc3QgZGlyIGJhc2VuYW1lIOKAlCBjb250YWluZXIgY3dkIGlzIC93b3Jrc3BhY2Ugc28gYmFzZW5hbWUgd291bGQgYmUgd3JvbmcuXG5cdFx0XCItZVwiLFxuXHRcdGBERUNPSEVSRV9QUk9KRUNUX05BTUU9JHtwcm9qZWN0TmFtZX1gLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfQ0FDSEU9L25wbS1jYWNoZVwiLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfUFJFRkVSX09GRkxJTkU9dHJ1ZVwiLFxuXHRcdFwiLWVcIixcblx0XHRgSE9NRT0ke2J1aWxkZXJIb21lfWAsXG5cdF07XG5cblx0Ly8gTW91bnQgaG9zdCAubnBtcmMgd2hlcmUgdGhlIG5vbi1yb290IHByb2Nlc3MgY2FuIHJlYWQgaXQuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Ly8gQXV0aDAgQ0xJIHJlYWRzIGNyZWRlbnRpYWxzIGZyb20gJEhPTUUvLmNvbmZpZy9hdXRoMCDigJQgd2l0aG91dCB0aGlzIG1vdW50LFxuXHQvLyBlbnN1cmVTcGFBcHAgZmFpbHMgYW5kIFBvc3RtYW4gZ2V0cyBhbiBlbXB0eSBhdXRoMENsaWVudElkLlxuXHRjb25zdCBhdXRoMENvbmZpZ0RpciA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5jb25maWcvYXV0aDBcIik7XG5cdGlmIChleGlzdHNTeW5jKGF1dGgwQ29uZmlnRGlyKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke2F1dGgwQ29uZmlnRGlyfToke2J1aWxkZXJIb21lfS8uY29uZmlnL2F1dGgwYCk7XG5cdH1cblxuXHRjb25zdCB1c2VyQXJnczogc3RyaW5nW10gPSBbXTtcblx0aWYgKHJ1bkFzSG9zdFVzZXIpIHtcblx0XHR1c2VyQXJncy5wdXNoKFwiLS11c2VyXCIsIGAke2hvc3RVaWR9OiR7aG9zdEdpZH1gKTtcblx0fSBlbHNlIGlmIChob3N0VWlkICE9IG51bGwpIHtcblx0XHQvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgZ2V0Z2lkOiBrZWVwIGxlZ2FjeSBjaG93biBwYXRoLlxuXHRcdGVudkFyZ3MucHVzaChcIi1lXCIsIGBIT1NUX1VJRD0ke2hvc3RVaWR9YCk7XG5cdFx0aWYgKGhvc3RHaWQgIT0gbnVsbCkgZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfR0lEPSR7aG9zdEdpZH1gKTtcblx0fVxuXG5cdGNvbnN0IGNvbW1hbmRBcmdzOiBzdHJpbmdbXSA9IFtcIndlYmFwaVwiLCBcIi1kXCIsIFwiLlwiXTtcblx0aWYgKG9wdHMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tZGF0YWJhc2VcIiwgb3B0cy5kYXRhYmFzZVByb3ZpZGVyKTtcblx0fVxuXHRpZiAob3B0cy5hdXRoUHJvdmlkZXIgIT0gbnVsbCkge1xuXHRcdGNvbW1hbmRBcmdzLnB1c2goXCItLWF1dGhcIiwgb3B0cy5hdXRoUHJvdmlkZXIpO1xuXHR9XG5cdGlmIChvcHRzLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tcG9zdG1hblwiLCBvcHRzLnBvc3RtYW5Qcm92aWRlcik7XG5cdH1cblx0aWYgKG9wdHMuaW5zdGFsbERlcGVuZGVuY2llcyAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0taW5zdGFsbFwiLCBvcHRzLmluc3RhbGxEZXBlbmRlbmNpZXMpO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdC8vIE9ubHkgYWxsb2NhdGUgYSBUVFkgd2hlbiBzdGRpbiBpcyBpdHNlbGYgYSBUVFkg4oCUIGF2b2lkcyBhIGh1bmcgcHJvY2Vzc1xuXHQvLyBpbiBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnRzIChwaXBlcywgQ0ksIHNjcmlwdHMpLlxuXHRjb25zdCB0dHlGbGFncyA9IHByb2Nlc3Muc3RkaW4uaXNUVFkgPyBbXCItaXRcIl0gOiBbXCItaVwiXTtcblxuXHRjb25zdCByZXN1bHQgPSBzcGF3blN5bmMoXG5cdFx0XCJkb2NrZXJcIixcblx0XHRbXG5cdFx0XHRcInJ1blwiLFxuXHRcdFx0XCItLXJtXCIsXG5cdFx0XHQuLi50dHlGbGFncyxcblx0XHRcdC4uLnVzZXJBcmdzLFxuXHRcdFx0Li4udm9sdW1lcyxcblx0XHRcdC4uLmVudkFyZ3MsXG5cdFx0XHRcIi13XCIsXG5cdFx0XHRcIi93b3Jrc3BhY2VcIixcblx0XHRcdEJVSUxERVJfSU1BR0UsXG5cdFx0XHQuLi5jb21tYW5kQXJncyxcblx0XHRdLFxuXHRcdHsgc3RkaW86IFwiaW5oZXJpdFwiIH0sXG5cdCk7XG5cblx0aWYgKHJlc3VsdC5zdGF0dXMgPT09IDApIHtcblx0XHRjb25zb2xlLmxvZyhgXFxuICBTY2FmZm9sZCBjb21wbGV0ZSFcXG5cXG4gIE9wZW4geW91ciBwcm9qZWN0OlxcblxcbiAgICBjb2RlICR7dGFyZ2V0RGlyfVxcbmApO1xuXHR9XG5cblx0cHJvY2Vzcy5leGl0KHJlc3VsdC5zdGF0dXMgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsiZXhlY0ZpbGVTeW5jIiwic3Bhd25TeW5jIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImhvbWVkaXIiLCJiYXNlbmFtZSIsInJlc29sdmUiLCJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiQlVJTERFUl9JTUFHRSIsInJ1bkluQnVpbGRlciIsIm9wdHMiLCJ0YXJnZXREaXIiLCJkIiwicHJvamVjdE5hbWUiLCJyZWN1cnNpdmUiLCJzdGRpbyIsImNvbnNvbGUiLCJlcnJvciIsInByb2Nlc3MiLCJleGl0IiwiaG9zdFVpZCIsImdldHVpZCIsImhvc3RHaWQiLCJnZXRnaWQiLCJydW5Bc0hvc3RVc2VyIiwibnBtQ2FjaGVEaXIiLCJidWlsZGVySG9tZSIsInZvbHVtZXMiLCJlbnZBcmdzIiwibnBtcmNQYXRoIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJjb21tYW5kQXJncyIsImRhdGFiYXNlUHJvdmlkZXIiLCJhdXRoUHJvdmlkZXIiLCJwb3N0bWFuUHJvdmlkZXIiLCJpbnN0YWxsRGVwZW5kZW5jaWVzIiwibG9nIiwidHR5RmxhZ3MiLCJzdGRpbiIsImlzVFRZIiwicmVzdWx0Iiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLEVBQUVDLFNBQVMsUUFBUSxxQkFBcUI7QUFDN0QsU0FBU0MsVUFBVSxFQUFFQyxTQUFTLFFBQVEsVUFBVTtBQUNoRCxTQUFTQyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sUUFBUSxZQUFZO0FBQzlDLFNBQVNDLHVCQUF1QixFQUFFQyxjQUFjLFFBQVEsZUFBZTtBQUd2RSxNQUFNQyxnQkFBZ0IsR0FBR0Ysd0JBQXdCLENBQUMsRUFBRUMsZ0JBQWdCO0FBRXBFOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE9BQU8sU0FBU0UsYUFBYUMsSUFBZ0I7SUFDNUMsTUFBTUMsWUFBWU4sUUFBUUssS0FBS0UsQ0FBQyxJQUFJO0lBQ3BDLE1BQU1DLGNBQWNULFNBQVNPO0lBQzdCVCxVQUFVUyxXQUFXO1FBQUVHLFdBQVc7SUFBSztJQUN2QywwRUFBMEU7SUFDMUUsNkNBQTZDO0lBQzdDWixVQUFVRyxRQUFRTSxXQUFXLGlCQUFpQixhQUFhO1FBQUVHLFdBQVc7SUFBSztJQUU3RSw4QkFBOEI7SUFDOUIsSUFBSTtRQUNIZixhQUFhLFVBQVU7WUFBQztTQUFPLEVBQUU7WUFBRWdCLE9BQU87UUFBTztJQUNsRCxFQUFFLE9BQU07UUFDUEMsUUFBUUMsS0FBSyxDQUNaLDZEQUNDO1FBRUZDLFFBQVFDLElBQUksQ0FBQztJQUNkO0lBRUEsTUFBTUMsVUFBVUYsUUFBUUcsTUFBTTtJQUM5QixNQUFNQyxVQUFV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
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSwgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaU9wdGlvbnMgfSBmcm9tIFwiLi93ZWJhcGkvY3JlYXRlLWFwaS5qc1wiO1xuXG5jb25zdCBCVUlMREVSX0lNQUdFID0gYCR7Q1JFQVRFX0lNQUdFX1JFUE9TSVRPUll9OiR7Q1JFQVRFX1ZFUlNJT059YDtcblxuLyoqXG4gKiBSdW4gdGhlIHNjYWZmb2xkIGluc2lkZSBhIHByZS1idWlsdCBEb2NrZXIgYnVpbGRlciBpbWFnZS5cbiAqXG4gKiBDYWxsZWQgd2hlbiBgREVDT0hFUkVfQlVJTERFUmAgaXMgbm90IHNldCDigJQgaS5lLiB0aGUgQ0xJIGlzIHJ1bm5pbmcgb24gdGhlXG4gKiBob3N0LCBvdXRzaWRlIHRoZSBjb250YWluZXIuIE1vdW50cyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcyBgL3dvcmtzcGFjZWAgc29cbiAqIHRoZSBzY2FmZm9sZGVkIGZpbGVzIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIGhvc3QgZmlsZXN5c3RlbS5cbiAqXG4gKiBUaGUgY29udGFpbmVyIHJ1bnMgYXMgdGhlIGhvc3QgdWlkL2dpZCB3aGVuZXZlciBwb3NzaWJsZSBzbyBzY2FmZm9sZGVkIGZpbGVzXG4gKiBhcmUgbmV2ZXIgcm9vdC1vd25lZCAocG9zdC1ob2MgYGNob3duYCBpcyB1bnJlbGlhYmxlIGFjcm9zcyBEb2NrZXIgc2V0dXBzKS5cbiAqXG4gKiBIb3N0IGB+Ly5jb25maWcvYXV0aDBgIGlzIG1vdW50ZWQgd2hlbiBwcmVzZW50IHNvIHRoZSBBdXRoMCBDTEkgY2FuIHJldXNlXG4gKiBjcmVkZW50aWFscyAocmVxdWlyZWQgZm9yIFBvc3RtYW4gU1BBIC8gYXV0aDBDbGllbnRJZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JbkJ1aWxkZXIob3B0czogQXBpT3B0aW9ucyk6IG5ldmVyIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShvcHRzLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9IGJhc2VuYW1lKHRhcmdldERpcik7XG5cdG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHQvLyBIb3N0LW93bmVkIHNvIGluaXRpYWxpemVDb21tYW5kIGNhbiBhbHdheXMgd3JpdGUgaGVyZSBldmVuIGlmIHNvbWV0aGluZ1xuXHQvLyBlbHNlIGluIC5kZXZjb250YWluZXIgZW5kcyB1cCBvZGRseSBvd25lZC5cblx0bWtkaXJTeW5jKHJlc29sdmUodGFyZ2V0RGlyLCBcIi5kZXZjb250YWluZXJcIiwgXCJucG0tYXV0aFwiKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gRW5zdXJlIERvY2tlciBpcyBhdmFpbGFibGUuXG5cdHRyeSB7XG5cdFx0ZXhlY0ZpbGVTeW5jKFwiZG9ja2VyXCIsIFtcImluZm9cIl0sIHsgc3RkaW86IFwicGlwZVwiIH0pO1xuXHR9IGNhdGNoIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XCJcXG4gIERvY2tlciBpcyByZXF1aXJlZCB0byBzY2FmZm9sZCBhIERlY29oZXJlIHByb2plY3QuXFxuXCIgK1xuXHRcdFx0XHRcIiAgSW5zdGFsbCBEb2NrZXIgRGVza3RvcDogaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcFxcblwiLFxuXHRcdCk7XG5cdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHR9XG5cblx0Y29uc3QgaG9zdFVpZCA9IHByb2Nlc3MuZ2V0dWlkPy4oKTtcblx0Y29uc3QgaG9zdEdpZCA9IHByb2Nlc3MuZ2V0Z2lkPy4oKSA/PyBob3N0VWlkO1xuXHRjb25zdCBydW5Bc0hvc3RVc2VyID0gaG9zdFVpZCAhPSBudWxsICYmIGhvc3RHaWQgIT0gbnVsbDtcblxuXHQvLyBBbm9ueW1vdXMgcm9vdC1vd25lZCB2b2x1bWVzIGFyZSBub3Qgd3JpdGFibGUgd2hlbiB3ZSBkcm9wIHByaXZpbGVnZXMuXG5cdGNvbnN0IG5wbUNhY2hlRGlyID0gcmVzb2x2ZShob21lZGlyKCksIFwiLmNhY2hlL2RlY29oZXJlLWNyZWF0ZS9ucG1cIik7XG5cdG1rZGlyU3luYyhucG1DYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0Ly8gSXNvbGF0ZWQgSE9NRSBzbyAtLXVzZXIgaG9zdC11aWQgY2FuIHdyaXRlIHdpdGhvdXQgYSBtYXRjaGluZyAvZXRjL3Bhc3N3ZCBlbnRyeS5cblx0Y29uc3QgYnVpbGRlckhvbWUgPSBcIi90bXAvZGVjb2hlcmUtY3JlYXRlLWhvbWVcIjtcblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIi12XCIsXG5cdFx0YCR7dGFyZ2V0RGlyfTovd29ya3NwYWNlYCxcblx0XHRcIi12XCIsXG5cdFx0YCR7bnBtQ2FjaGVEaXJ9Oi9ucG0tY2FjaGVgLFxuXHRdO1xuXG5cdGNvbnN0IGVudkFyZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiLWVcIixcblx0XHRcIkRFQ09IRVJFX0JVSUxERVI9MVwiLFxuXHRcdC8vIEhvc3QgZGlyIGJhc2VuYW1lIOKAlCBjb250YWluZXIgY3dkIGlzIC93b3Jrc3BhY2Ugc28gYmFzZW5hbWUgd291bGQgYmUgd3JvbmcuXG5cdFx0XCItZVwiLFxuXHRcdGBERUNPSEVSRV9QUk9KRUNUX05BTUU9JHtwcm9qZWN0TmFtZX1gLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfQ0FDSEU9L25wbS1jYWNoZVwiLFxuXHRcdFwiLWVcIixcblx0XHRcIk5QTV9DT05GSUdfUFJFRkVSX09GRkxJTkU9dHJ1ZVwiLFxuXHRcdFwiLWVcIixcblx0XHRgSE9NRT0ke2J1aWxkZXJIb21lfWAsXG5cdF07XG5cblx0Ly8gTW91bnQgaG9zdCAubnBtcmMgd2hlcmUgdGhlIG5vbi1yb290IHByb2Nlc3MgY2FuIHJlYWQgaXQuXG5cdGNvbnN0IG5wbXJjUGF0aCA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5ucG1yY1wiKTtcblx0aWYgKGV4aXN0c1N5bmMobnBtcmNQYXRoKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke25wbXJjUGF0aH06L3RtcC9ob3N0LW5wbXJjOnJvYCk7XG5cdFx0ZW52QXJncy5wdXNoKFwiLWVcIiwgXCJOUE1fQ09ORklHX1VTRVJDT05GSUc9L3RtcC9ob3N0LW5wbXJjXCIpO1xuXHR9XG5cblx0Ly8gQXV0aDAgQ0xJIHJlYWRzIGNyZWRlbnRpYWxzIGZyb20gJEhPTUUvLmNvbmZpZy9hdXRoMCDigJQgd2l0aG91dCB0aGlzIG1vdW50LFxuXHQvLyBlbnN1cmVTcGFBcHAgZmFpbHMgYW5kIFBvc3RtYW4gZ2V0cyBhbiBlbXB0eSBhdXRoMENsaWVudElkLlxuXHRjb25zdCBhdXRoMENvbmZpZ0RpciA9IHJlc29sdmUoaG9tZWRpcigpLCBcIi5jb25maWcvYXV0aDBcIik7XG5cdGlmIChleGlzdHNTeW5jKGF1dGgwQ29uZmlnRGlyKSkge1xuXHRcdHZvbHVtZXMucHVzaChcIi12XCIsIGAke2F1dGgwQ29uZmlnRGlyfToke2J1aWxkZXJIb21lfS8uY29uZmlnL2F1dGgwYCk7XG5cdH1cblxuXHRjb25zdCB1c2VyQXJnczogc3RyaW5nW10gPSBbXTtcblx0aWYgKHJ1bkFzSG9zdFVzZXIpIHtcblx0XHR1c2VyQXJncy5wdXNoKFwiLS11c2VyXCIsIGAke2hvc3RVaWR9OiR7aG9zdEdpZH1gKTtcblx0fSBlbHNlIGlmIChob3N0VWlkICE9IG51bGwpIHtcblx0XHQvLyBGYWxsYmFjayBmb3IgZW52aXJvbm1lbnRzIHdpdGhvdXQgZ2V0Z2lkOiBrZWVwIGxlZ2FjeSBjaG93biBwYXRoLlxuXHRcdGVudkFyZ3MucHVzaChcIi1lXCIsIGBIT1NUX1VJRD0ke2hvc3RVaWR9YCk7XG5cdFx0aWYgKGhvc3RHaWQgIT0gbnVsbCkgZW52QXJncy5wdXNoKFwiLWVcIiwgYEhPU1RfR0lEPSR7aG9zdEdpZH1gKTtcblx0fVxuXG5cdGNvbnN0IGNvbW1hbmRBcmdzOiBzdHJpbmdbXSA9IG9wdHMuYWRkXG5cdFx0PyBbXCJ3ZWJhcGlcIiwgXCJhZGRcIiwgb3B0cy5uYW1lcz8uWzBdID8/IFwiXCIsIFwiLWRcIiwgXCIuXCJdXG5cdFx0OiBbXCJ3ZWJhcGlcIiwgXCItZFwiLCBcIi5cIl07XG5cdGlmICghb3B0cy5hZGQpIHtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2Ygb3B0cy5uYW1lcyA/PyBbXSkge1xuXHRcdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tbmFtZVwiLCBuYW1lKTtcblx0XHR9XG5cdH1cblx0aWYgKG9wdHMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tZGF0YWJhc2VcIiwgb3B0cy5kYXRhYmFzZVByb3ZpZGVyKTtcblx0fVxuXHRpZiAob3B0cy5hdXRoUHJvdmlkZXIgIT0gbnVsbCkge1xuXHRcdGNvbW1hbmRBcmdzLnB1c2goXCItLWF1dGhcIiwgb3B0cy5hdXRoUHJvdmlkZXIpO1xuXHR9XG5cdGlmIChvcHRzLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tcG9zdG1hblwiLCBvcHRzLnBvc3RtYW5Qcm92aWRlcik7XG5cdH1cblx0aWYgKG9wdHMuaW5zdGFsbERlcGVuZGVuY2llcyAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0taW5zdGFsbFwiLCBvcHRzLmluc3RhbGxEZXBlbmRlbmNpZXMpO1xuXHR9XG5cblx0Y29uc29sZS5sb2coXCIgIFJ1bm5pbmcgc2NhZmZvbGRpbmcgaW4gYSBzYW5kYm94ZWQgY29udGFpbmVyLi4uXFxuXCIpO1xuXG5cdC8vIE9ubHkgYWxsb2NhdGUgYSBUVFkgd2hlbiBzdGRpbiBpcyBpdHNlbGYgYSBUVFkg4oCUIGF2b2lkcyBhIGh1bmcgcHJvY2Vzc1xuXHQvLyBpbiBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnRzIChwaXBlcywgQ0ksIHNjcmlwdHMpLlxuXHRjb25zdCB0dHlGbGFncyA9IHByb2Nlc3Muc3RkaW4uaXNUVFkgPyBbXCItaXRcIl0gOiBbXCItaVwiXTtcblxuXHRjb25zdCByZXN1bHQgPSBzcGF3blN5bmMoXG5cdFx0XCJkb2NrZXJcIixcblx0XHRbXG5cdFx0XHRcInJ1blwiLFxuXHRcdFx0XCItLXJtXCIsXG5cdFx0XHQuLi50dHlGbGFncyxcblx0XHRcdC4uLnVzZXJBcmdzLFxuXHRcdFx0Li4udm9sdW1lcyxcblx0XHRcdC4uLmVudkFyZ3MsXG5cdFx0XHRcIi13XCIsXG5cdFx0XHRcIi93b3Jrc3BhY2VcIixcblx0XHRcdEJVSUxERVJfSU1BR0UsXG5cdFx0XHQuLi5jb21tYW5kQXJncyxcblx0XHRdLFxuXHRcdHsgc3RkaW86IFwiaW5oZXJpdFwiIH0sXG5cdCk7XG5cblx0aWYgKHJlc3VsdC5zdGF0dXMgPT09IDApIHtcblx0XHRjb25zb2xlLmxvZyhgXFxuICBTY2FmZm9sZCBjb21wbGV0ZSFcXG5cXG4gIE9wZW4geW91ciBwcm9qZWN0OlxcblxcbiAgICBjb2RlICR7dGFyZ2V0RGlyfVxcbmApO1xuXHR9XG5cblx0cHJvY2Vzcy5leGl0KHJlc3VsdC5zdGF0dXMgPz8gMCk7XG59XG4iXSwibmFtZXMiOlsiZXhlY0ZpbGVTeW5jIiwic3Bhd25TeW5jIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImhvbWVkaXIiLCJiYXNlbmFtZSIsInJlc29sdmUiLCJDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWSIsIkNSRUFURV9WRVJTSU9OIiwiQlVJTERFUl9JTUFHRSIsInJ1bkluQnVpbGRlciIsIm9wdHMiLCJ0YXJnZXREaXIiLCJkIiwicHJvamVjdE5hbWUiLCJyZWN1cnNpdmUiLCJzdGRpbyIsImNvbnNvbGUiLCJlcnJvciIsInByb2Nlc3MiLCJleGl0IiwiaG9zdFVpZCIsImdldHVpZCIsImhvc3RHaWQiLCJnZXRnaWQiLCJydW5Bc0hvc3RVc2VyIiwibnBtQ2FjaGVEaXIiLCJidWlsZGVySG9tZSIsInZvbHVtZXMiLCJlbnZBcmdzIiwibnBtcmNQYXRoIiwicHVzaCIsImF1dGgwQ29uZmlnRGlyIiwidXNlckFyZ3MiLCJjb21tYW5kQXJncyIsImFkZCIsIm5hbWVzIiwibmFtZSIsImRhdGFiYXNlUHJvdmlkZXIiLCJhdXRoUHJvdmlkZXIiLCJwb3N0bWFuUHJvdmlkZXIiLCJpbnN0YWxsRGVwZW5kZW5jaWVzIiwibG9nIiwidHR5RmxhZ3MiLCJzdGRpbiIsImlzVFRZIiwicmVzdWx0Iiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLEVBQUVDLFNBQVMsUUFBUSxxQkFBcUI7QUFDN0QsU0FBU0MsVUFBVSxFQUFFQyxTQUFTLFFBQVEsVUFBVTtBQUNoRCxTQUFTQyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sUUFBUSxZQUFZO0FBQzlDLFNBQVNDLHVCQUF1QixFQUFFQyxjQUFjLFFBQVEsZUFBZTtBQUd2RSxNQUFNQyxnQkFBZ0IsR0FBR0Ysd0JBQXdCLENBQUMsRUFBRUMsZ0JBQWdCO0FBRXBFOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE9BQU8sU0FBU0UsYUFBYUMsSUFBZ0I7SUFDNUMsTUFBTUMsWUFBWU4sUUFBUUssS0FBS0UsQ0FBQyxJQUFJO0lBQ3BDLE1BQU1DLGNBQWNULFNBQVNPO0lBQzdCVCxVQUFVUyxXQUFXO1FBQUVHLFdBQVc7SUFBSztJQUN2QywwRUFBMEU7SUFDMUUsNkNBQTZDO0lBQzdDWixVQUFVRyxR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
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DEFAULT_WEBAPI_NAME } from "./const.js";
|
|
4
|
+
/** Lowercase npm-safe directory slug: `billing`, `admin-api`. */ export const API_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
|
|
5
|
+
export class CreateCliError extends Error {
|
|
6
|
+
constructor(message){
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "CreateCliError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function assertValidApiName(name) {
|
|
12
|
+
if (!API_NAME_PATTERN.test(name)) {
|
|
13
|
+
throw new CreateCliError(`Invalid API name "${name}". Use a lowercase slug starting with a letter, then letters, digits, or hyphens (e.g. billing).`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Default `["api"]` when the caller omitted `--name`. Rejects duplicates and invalid slugs. */ export function parseApiNames(raw) {
|
|
17
|
+
const names = raw != null && raw.length > 0 ? [
|
|
18
|
+
...raw
|
|
19
|
+
] : [
|
|
20
|
+
DEFAULT_WEBAPI_NAME
|
|
21
|
+
];
|
|
22
|
+
const seen = new Set();
|
|
23
|
+
for (const name of names){
|
|
24
|
+
assertValidApiName(name);
|
|
25
|
+
if (seen.has(name)) {
|
|
26
|
+
throw new CreateCliError(`Duplicate API name "${name}".`);
|
|
27
|
+
}
|
|
28
|
+
seen.add(name);
|
|
29
|
+
}
|
|
30
|
+
return names;
|
|
31
|
+
}
|
|
32
|
+
export function isDecohereWorkspace(dir) {
|
|
33
|
+
try {
|
|
34
|
+
const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
35
|
+
const build = pkg.scripts?.build;
|
|
36
|
+
return typeof build === "string" && build.includes("forge");
|
|
37
|
+
} catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Directory names under `projects/` that already have a `package.json`. */ export function listExistingApiNames(dir) {
|
|
42
|
+
const projectsDir = join(dir, "projects");
|
|
43
|
+
try {
|
|
44
|
+
return readdirSync(projectsDir, {
|
|
45
|
+
withFileTypes: true
|
|
46
|
+
}).filter((entry)=>entry.isDirectory() && existsSync(join(projectsDir, entry.name, "package.json"))).map((entry)=>entry.name).sort();
|
|
47
|
+
} catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** `billing` → `BILLING`, `admin-api` → `ADMIN_API` — prefix for `{PREFIX}_DB_HOST`. */ export function apiEnvPrefix(apiName) {
|
|
52
|
+
return apiName.replace(/-/g, "_").toUpperCase();
|
|
53
|
+
}
|
|
54
|
+
export function apiNameFromProjectDir(dir) {
|
|
55
|
+
const slash = dir.lastIndexOf("/");
|
|
56
|
+
return slash >= 0 ? dir.slice(slash + 1) : dir;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2FwaS1uYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRkaXJTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERFRkFVTFRfV0VCQVBJX05BTUUgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuXG4vKiogTG93ZXJjYXNlIG5wbS1zYWZlIGRpcmVjdG9yeSBzbHVnOiBgYmlsbGluZ2AsIGBhZG1pbi1hcGlgLiAqL1xuZXhwb3J0IGNvbnN0IEFQSV9OQU1FX1BBVFRFUk4gPSAvXlthLXpdW2EtejAtOS1dKiQvO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlQ2xpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKTtcblx0XHR0aGlzLm5hbWUgPSBcIkNyZWF0ZUNsaUVycm9yXCI7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkQXBpTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcblx0aWYgKCFBUElfTkFNRV9QQVRURVJOLnRlc3QobmFtZSkpIHtcblx0XHR0aHJvdyBuZXcgQ3JlYXRlQ2xpRXJyb3IoXG5cdFx0XHRgSW52YWxpZCBBUEkgbmFtZSBcIiR7bmFtZX1cIi4gVXNlIGEgbG93ZXJjYXNlIHNsdWcgc3RhcnRpbmcgd2l0aCBhIGxldHRlciwgdGhlbiBsZXR0ZXJzLCBkaWdpdHMsIG9yIGh5cGhlbnMgKGUuZy4gYmlsbGluZykuYCxcblx0XHQpO1xuXHR9XG59XG5cbi8qKiBEZWZhdWx0IGBbXCJhcGlcIl1gIHdoZW4gdGhlIGNhbGxlciBvbWl0dGVkIGAtLW5hbWVgLiBSZWplY3RzIGR1cGxpY2F0ZXMgYW5kIGludmFsaWQgc2x1Z3MuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBcGlOYW1lcyhyYXc6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogc3RyaW5nW10ge1xuXHRjb25zdCBuYW1lcyA9IHJhdyAhPSBudWxsICYmIHJhdy5sZW5ndGggPiAwID8gWy4uLnJhd10gOiBbREVGQVVMVF9XRUJBUElfTkFNRV07XG5cdGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0Zm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG5cdFx0YXNzZXJ0VmFsaWRBcGlOYW1lKG5hbWUpO1xuXHRcdGlmIChzZWVuLmhhcyhuYW1lKSkge1xuXHRcdFx0dGhyb3cgbmV3IENyZWF0ZUNsaUVycm9yKGBEdXBsaWNhdGUgQVBJIG5hbWUgXCIke25hbWV9XCIuYCk7XG5cdFx0fVxuXHRcdHNlZW4uYWRkKG5hbWUpO1xuXHR9XG5cdHJldHVybiBuYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVjb2hlcmVXb3Jrc3BhY2UoZGlyOiBzdHJpbmcpOiBib29sZWFuIHtcblx0dHJ5IHtcblx0XHRjb25zdCBwa2cgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhqb2luKGRpciwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSkgYXMge1xuXHRcdFx0c2NyaXB0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdFx0fTtcblx0XHRjb25zdCBidWlsZCA9IHBrZy5zY3JpcHRzPy5idWlsZDtcblx0XHRyZXR1cm4gdHlwZW9mIGJ1aWxkID09PSBcInN0cmluZ1wiICYmIGJ1aWxkLmluY2x1ZGVzKFwiZm9yZ2VcIik7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG4vKiogRGlyZWN0b3J5IG5hbWVzIHVuZGVyIGBwcm9qZWN0cy9gIHRoYXQgYWxyZWFkeSBoYXZlIGEgYHBhY2thZ2UuanNvbmAuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdEV4aXN0aW5nQXBpTmFtZXMoZGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG5cdGNvbnN0IHByb2plY3RzRGlyID0gam9pbihkaXIsIFwicHJvamVjdHNcIik7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHJlYWRkaXJTeW5jKHByb2plY3RzRGlyLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSlcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChlbnRyeSkgPT5cblx0XHRcdFx0XHRlbnRyeS5pc0RpcmVjdG9yeSgpICYmIGV4aXN0c1N5bmMoam9pbihwcm9qZWN0c0RpciwgZW50cnkubmFtZSwgXCJwYWNrYWdlLmpzb25cIikpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgoZW50cnkpID0+IGVudHJ5Lm5hbWUpXG5cdFx0XHQuc29ydCgpO1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gW107XG5cdH1cbn1cblxuLyoqIGBiaWxsaW5nYCDihpIgYEJJTExJTkdgLCBgYWRtaW4tYXBpYCDihpIgYEFETUlOX0FQSWAg4oCUIHByZWZpeCBmb3IgYHtQUkVGSVh9X0RCX0hPU1RgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwaUVudlByZWZpeChhcGlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYXBpTmFtZS5yZXBsYWNlKC8tL2csIFwiX1wiKS50b1VwcGVyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBpTmFtZUZyb21Qcm9qZWN0RGlyKGRpcjogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc2xhc2ggPSBkaXIubGFzdEluZGV4T2YoXCIvXCIpO1xuXHRyZXR1cm4gc2xhc2ggPj0gMCA/IGRpci5zbGljZShzbGFzaCArIDEpIDogZGlyO1xufVxuIl0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJyZWFkZGlyU3luYyIsInJlYWRGaWxlU3luYyIsImpvaW4iLCJERUZBVUxUX1dFQkFQSV9OQU1FIiwiQVBJX05BTUVfUEFUVEVSTiIsIkNyZWF0ZUNsaUVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwibmFtZSIsImFzc2VydFZhbGlkQXBpTmFtZSIsInRlc3QiLCJwYXJzZUFwaU5hbWVzIiwicmF3IiwibmFtZXMiLCJsZW5ndGgiLCJzZWVuIiwiU2V0IiwiaGFzIiwiYWRkIiwiaXNEZWNvaGVyZVdvcmtzcGFjZSIsImRpciIsInBrZyIsIkpTT04iLCJwYXJzZSIsImJ1aWxkIiwic2NyaXB0cyIsImluY2x1ZGVzIiwibGlzdEV4aXN0aW5nQXBpTmFtZXMiLCJwcm9qZWN0c0RpciIsIndpdGhGaWxlVHlwZXMiLCJmaWx0ZXIiLCJlbnRyeSIsImlzRGlyZWN0b3J5IiwibWFwIiwic29ydCIsImFwaUVudlByZWZpeCIsImFwaU5hbWUiLCJyZXBsYWNlIiwidG9VcHBlckNhc2UiLCJhcGlOYW1lRnJvbVByb2plY3REaXIiLCJzbGFzaCIsImxhc3RJbmRleE9mIiwic2xpY2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLFFBQVEsVUFBVTtBQUNoRSxTQUFTQyxJQUFJLFFBQVEsWUFBWTtBQUNqQyxTQUFTQyxtQkFBbUIsUUFBUSxhQUFhO0FBRWpELCtEQUErRCxHQUMvRCxPQUFPLE1BQU1DLG1CQUFtQixvQkFBb0I7QUFFcEQsT0FBTyxNQUFNQyx1QkFBdUJDO0lBQ25DLFlBQW1CQyxPQUFlLENBQUU7UUFDbkMsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2I7QUFDRDtBQUVBLE9BQU8sU0FBU0MsbUJBQW1CRCxJQUFZO0lBQzlDLElBQUksQ0FBQ0osaUJBQWlCTSxJQUFJLENBQUNGLE9BQU87UUFDakMsTUFBTSxJQUFJSCxlQUNULENBQUMsa0JBQWtCLEVBQUVHLEtBQUssZ0dBQWdHLENBQUM7SUFFN0g7QUFDRDtBQUVBLDhGQUE4RixHQUM5RixPQUFPLFNBQVNHLGNBQWNDLEdBQWtDO0lBQy9ELE1BQU1DLFFBQVFELE9BQU8sUUFBUUEsSUFBSUUsTUFBTSxHQUFHLElBQUk7V0FBSUY7S0FBSSxHQUFHO1FBQUNUO0tBQW9CO0lBQzlFLE1BQU1ZLE9BQU8sSUFBSUM7SUFDakIsS0FBSyxNQUFNUixRQUFRSyxNQUFPO1FBQ3pCSixtQkFBbUJEO1FBQ25CLElBQUlPLEtBQUtFLEdBQUcsQ0FBQ1QsT0FBTztZQUNuQixNQUFNLElBQUlILGVBQWUsQ0FBQyxvQkFBb0IsRUFBRUcsS0FBSyxFQUFFLENBQUM7UUFDekQ7UUFDQU8sS0FBS0csR0FBRyxDQUFDVjtJQUNWO0lBQ0EsT0FBT0s7QUFDUjtBQUVBLE9BQU8sU0FBU00sb0JBQW9CQyxHQUFXO0lBQzlDLElBQUk7UUFDSCxNQUFNQyxNQUFNQyxLQUFLQyxLQUFLLENBQUN0QixhQUFhQyxLQUFLa0IsS0FBSyxpQkFBaUI7UUFHL0QsTUFBTUksUUFBUUgsSUFBSUksT0FBTyxFQUFFRDtRQUMzQixPQUFPLE9BQU9BLFVBQVUsWUFBWUEsTUFBTUUsUUFBUSxDQUFDO0lBQ3BELEVBQUUsT0FBTTtRQUNQLE9BQU87SUFDUjtBQUNEO0FBRUEsMEVBQTBFLEdBQzFFLE9BQU8sU0FBU0MscUJBQXFCUCxHQUFXO0lBQy9DLE1BQU1RLGNBQWMxQixLQUFLa0IsS0FBSztJQUM5QixJQUFJO1FBQ0gsT0FBT3BCLFlBQVk0QixhQUFhO1lBQUVDLGVBQWU7UUFBSyxHQUNwREMsTUFBTSxDQUNOLENBQUNDLFFBQ0FBLE1BQU1DLFdBQVcsTUFBTWpDLFdBQVdHLEtBQUswQixhQUFhRyxNQUFNdkIsSUFBSSxFQUFFLGtCQUVqRXlCLEdBQUcsQ0FBQyxDQUFDRixRQUFVQSxNQUFNdkIsSUFBSSxFQUN6QjBCLElBQUk7SUFDUCxFQUFFLE9BQU07UUFDUCxPQUFPLEVBQUU7SUFDVjtBQUNEO0FBRUEsc0ZBQXNGLEdBQ3RGLE9BQU8sU0FBU0MsYUFBYUMsT0FBZTtJQUMzQyxPQUFPQSxRQUFRQyxPQUFPLENBQUMsTUFBTSxLQUFLQyxXQUFXO0FBQzlDO0FBRUEsT0FBTyxTQUFTQyxzQkFBc0JuQixHQUFXO0lBQ2hELE1BQU1vQixRQUFRcEIsSUFBSXFCLFdBQVcsQ0FBQztJQUM5QixPQUFPRCxTQUFTLElBQUlwQixJQUFJc0IsS0FBSyxDQUFDRixRQUFRLEtBQUtwQjtBQUM1QyJ9
|
package/es6/src/webapi/const.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Default API project slug when `--name` is omitted. */ export const DEFAULT_WEBAPI_NAME = "api";
|
|
2
|
+
/** Relative path of an API project inside the monorepo. */ export function webapiProjectDir(name) {
|
|
3
|
+
return `projects/${name}`;
|
|
4
|
+
}
|
|
2
5
|
/**
|
|
3
|
-
* Forge release entry for
|
|
4
|
-
* Keep in sync with root `package.json` `"start"`
|
|
5
|
-
*/ export
|
|
6
|
+
* Forge release entry for a scaffolded API (`pack: true` → per-target outDir).
|
|
7
|
+
* Keep in sync with root `package.json` `"start"` / `"start:<name>"` and Dockerfiles.
|
|
8
|
+
*/ export function webapiReleaseEntry(name) {
|
|
9
|
+
return `dist/release/${webapiProjectDir(name)}/es6/src/main.js`;
|
|
10
|
+
}
|
|
11
|
+
/** npm package name for a scaffolded API (`flux serve --project`). */ export function webapiPackageName(workspaceName, apiName) {
|
|
12
|
+
return `@${workspaceName}/${apiName}`;
|
|
13
|
+
}
|
|
14
|
+
/** Local listen port for the nth API (0-based). Production uses `PORT`. */ export function webapiPort(index) {
|
|
15
|
+
return 3000 + index;
|
|
16
|
+
}
|
|
17
|
+
/** @deprecated Use `webapiProjectDir(name)`. Default path for the first API. */ export const WEBAPI_PROJECT_DIR = webapiProjectDir(DEFAULT_WEBAPI_NAME);
|
|
18
|
+
/** @deprecated Use `webapiReleaseEntry(name)`. Default start entry for the first API. */ export const WEBAPI_RELEASE_ENTRY = webapiReleaseEntry(DEFAULT_WEBAPI_NAME);
|
|
6
19
|
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NvbnN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZWZhdWx0IEFQSSBwcm9qZWN0IHNsdWcgd2hlbiBgLS1uYW1lYCBpcyBvbWl0dGVkLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0VCQVBJX05BTUUgPSBcImFwaVwiO1xuXG4vKiogUmVsYXRpdmUgcGF0aCBvZiBhbiBBUEkgcHJvamVjdCBpbnNpZGUgdGhlIG1vbm9yZXBvLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdlYmFwaVByb2plY3REaXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBwcm9qZWN0cy8ke25hbWV9YDtcbn1cblxuLyoqXG4gKiBGb3JnZSByZWxlYXNlIGVudHJ5IGZvciBhIHNjYWZmb2xkZWQgQVBJIChgcGFjazogdHJ1ZWAg4oaSIHBlci10YXJnZXQgb3V0RGlyKS5cbiAqIEtlZXAgaW4gc3luYyB3aXRoIHJvb3QgYHBhY2thZ2UuanNvbmAgYFwic3RhcnRcImAgLyBgXCJzdGFydDo8bmFtZT5cImAgYW5kIERvY2tlcmZpbGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2ViYXBpUmVsZWFzZUVudHJ5KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBgZGlzdC9yZWxlYXNlLyR7d2ViYXBpUHJvamVjdERpcihuYW1lKX0vZXM2L3NyYy9tYWluLmpzYDtcbn1cblxuLyoqIG5wbSBwYWNrYWdlIG5hbWUgZm9yIGEgc2NhZmZvbGRlZCBBUEkgKGBmbHV4IHNlcnZlIC0tcHJvamVjdGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdlYmFwaVBhY2thZ2VOYW1lKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgYXBpTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBAJHt3b3Jrc3BhY2VOYW1lfS8ke2FwaU5hbWV9YDtcbn1cblxuLyoqIExvY2FsIGxpc3RlbiBwb3J0IGZvciB0aGUgbnRoIEFQSSAoMC1iYXNlZCkuIFByb2R1Y3Rpb24gdXNlcyBgUE9SVGAuICovXG5leHBvcnQgZnVuY3Rpb24gd2ViYXBpUG9ydChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIDMwMDAgKyBpbmRleDtcbn1cblxuLyoqIEBkZXByZWNhdGVkIFVzZSBgd2ViYXBpUHJvamVjdERpcihuYW1lKWAuIERlZmF1bHQgcGF0aCBmb3IgdGhlIGZpcnN0IEFQSS4gKi9cbmV4cG9ydCBjb25zdCBXRUJBUElfUFJPSkVDVF9ESVIgPSB3ZWJhcGlQcm9qZWN0RGlyKERFRkFVTFRfV0VCQVBJX05BTUUpO1xuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIGB3ZWJhcGlSZWxlYXNlRW50cnkobmFtZSlgLiBEZWZhdWx0IHN0YXJ0IGVudHJ5IGZvciB0aGUgZmlyc3QgQVBJLiAqL1xuZXhwb3J0IGNvbnN0IFdFQkFQSV9SRUxFQVNFX0VOVFJZID0gd2ViYXBpUmVsZWFzZUVudHJ5KERFRkFVTFRfV0VCQVBJX05BTUUpO1xuIl0sIm5hbWVzIjpbIkRFRkFVTFRfV0VCQVBJX05BTUUiLCJ3ZWJhcGlQcm9qZWN0RGlyIiwibmFtZSIsIndlYmFwaVJlbGVhc2VFbnRyeSIsIndlYmFwaVBhY2thZ2VOYW1lIiwid29ya3NwYWNlTmFtZSIsImFwaU5hbWUiLCJ3ZWJhcGlQb3J0IiwiaW5kZXgiLCJXRUJBUElfUFJPSkVDVF9ESVIiLCJXRUJBUElfUkVMRUFTRV9FTlRSWSJdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVELEdBQ3ZELE9BQU8sTUFBTUEsc0JBQXNCLE1BQU07QUFFekMseURBQXlELEdBQ3pELE9BQU8sU0FBU0MsaUJBQWlCQyxJQUFZO0lBQzVDLE9BQU8sQ0FBQyxTQUFTLEVBQUVBLE1BQU07QUFDMUI7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNDLG1CQUFtQkQsSUFBWTtJQUM5QyxPQUFPLENBQUMsYUFBYSxFQUFFRCxpQkFBaUJDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEU7QUFFQSxvRUFBb0UsR0FDcEUsT0FBTyxTQUFTRSxrQkFBa0JDLGFBQXFCLEVBQUVDLE9BQWU7SUFDdkUsT0FBTyxDQUFDLENBQUMsRUFBRUQsY0FBYyxDQUFDLEVBQUVDLFNBQVM7QUFDdEM7QUFFQSx5RUFBeUUsR0FDekUsT0FBTyxTQUFTQyxXQUFXQyxLQUFhO0lBQ3ZDLE9BQU8sT0FBT0E7QUFDZjtBQUVBLDhFQUE4RSxHQUM5RSxPQUFPLE1BQU1DLHFCQUFxQlIsaUJBQWlCRCxxQkFBcUI7QUFFeEUsdUZBQXVGLEdBQ3ZGLE9BQU8sTUFBTVUsdUJBQXVCUCxtQkFBbUJILHFCQUFxQiJ9
|