@decohere/create 0.0.1-dev.23 → 0.0.1-dev.24
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/compose.model.js +56 -4
- package/commonjs/src/models/dev-container.model.js +29 -2
- package/commonjs/src/models/package-json.model.js +11 -6
- package/commonjs/src/runner.js +18 -2
- package/commonjs/src/webapi/create-api.js +65 -5
- package/commonjs/src/webapi/features/auth.feature.js +287 -7
- package/commonjs/src/webapi/features/auth0-cli.js +140 -9
- package/commonjs/src/webapi/features/database.feature.js +56 -24
- package/commonjs/src/webapi/features/postman.feature.js +335 -46
- package/commonjs/src/webapi/models/api-package-json.model.js +4 -1
- package/commonjs/src/webapi/models/auth-config.model.js +4 -1
- package/commonjs/src/webapi/models/controller-source-file.model.js +15 -7
- package/commonjs/src/webapi/models/main-source-file.model.js +28 -4
- package/es6/src/models/compose.model.js +57 -6
- package/es6/src/models/dev-container.model.js +30 -8
- package/es6/src/models/package-json.model.js +11 -6
- package/es6/src/runner.js +19 -3
- package/es6/src/webapi/create-api.js +65 -5
- package/es6/src/webapi/features/auth.feature.js +287 -7
- package/es6/src/webapi/features/auth0-cli.js +122 -9
- package/es6/src/webapi/features/database.feature.js +56 -24
- package/es6/src/webapi/features/postman.feature.js +322 -43
- package/es6/src/webapi/models/api-package-json.model.js +4 -1
- package/es6/src/webapi/models/auth-config.model.js +4 -1
- package/es6/src/webapi/models/controller-source-file.model.js +15 -7
- package/es6/src/webapi/models/main-source-file.model.js +28 -4
- package/package.json +2 -2
- package/types/src/models/compose.model.d.ts +27 -2
- package/types/src/models/dev-container.model.d.ts +12 -0
- package/types/src/models/package-json.model.d.ts +2 -0
- package/types/src/webapi/features/auth.feature.d.ts +3 -0
- package/types/src/webapi/features/auth0-cli.d.ts +25 -3
- package/types/src/webapi/features/postman.feature.d.ts +5 -0
- package/types/src/webapi/models/auth-config.model.d.ts +8 -0
- package/types/src/webapi/models/controller-source-file.model.d.ts +6 -3
- package/types/src/webapi/models/main-source-file.model.d.ts +12 -0
|
@@ -11,8 +11,14 @@ Object.defineProperty(exports, "DockerCompose", {
|
|
|
11
11
|
const _const = require("./const.js");
|
|
12
12
|
class DockerCompose {
|
|
13
13
|
key = _const.WELL_KNOWN_FILES.DOCKER_COMPOSE;
|
|
14
|
+
_projectName;
|
|
14
15
|
_services = new Map();
|
|
15
16
|
_volumes = new Set();
|
|
17
|
+
_networks = new Map();
|
|
18
|
+
/** Compose project name (`name:` top-level) — isolates containers/volumes. */ setProjectName(name) {
|
|
19
|
+
this._projectName = name;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
16
22
|
addService(name, config) {
|
|
17
23
|
this._services.set(name, config);
|
|
18
24
|
return this;
|
|
@@ -29,6 +35,10 @@ class DockerCompose {
|
|
|
29
35
|
this._volumes.add(name);
|
|
30
36
|
return this;
|
|
31
37
|
}
|
|
38
|
+
addNetwork(key, network) {
|
|
39
|
+
this._networks.set(key, network);
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
32
42
|
/** Append an env_file path to an existing service. */ addEnvFile(serviceName, filePath) {
|
|
33
43
|
const svc = this._services.get(serviceName);
|
|
34
44
|
if (svc) svc.env_file = [
|
|
@@ -38,13 +48,16 @@ class DockerCompose {
|
|
|
38
48
|
return this;
|
|
39
49
|
}
|
|
40
50
|
getContent() {
|
|
41
|
-
const lines = [
|
|
42
|
-
|
|
43
|
-
|
|
51
|
+
const lines = [];
|
|
52
|
+
if (this._projectName) {
|
|
53
|
+
lines.push(`name: ${this._projectName}`, "");
|
|
54
|
+
}
|
|
55
|
+
lines.push("services:");
|
|
44
56
|
for (const [name, svc] of this._services){
|
|
45
57
|
lines.push(` ${name}:`);
|
|
46
58
|
if (svc.build) lines.push(` build: ${svc.build}`);
|
|
47
59
|
if (svc.image) lines.push(` image: ${svc.image}`);
|
|
60
|
+
if (svc.container_name) lines.push(` container_name: ${svc.container_name}`);
|
|
48
61
|
if (svc.command) lines.push(` command: ${svc.command}`);
|
|
49
62
|
if (svc.restart) lines.push(` restart: ${svc.restart}`);
|
|
50
63
|
if (svc.env_file && svc.env_file.length > 0) {
|
|
@@ -65,10 +78,49 @@ class DockerCompose {
|
|
|
65
78
|
lines.push(" volumes:");
|
|
66
79
|
for (const v of svc.volumes)lines.push(` - ${v}`);
|
|
67
80
|
}
|
|
81
|
+
if (svc.networks && svc.networks.length > 0) {
|
|
82
|
+
const onlyStrings = svc.networks.every((n)=>typeof n === "string");
|
|
83
|
+
if (onlyStrings) {
|
|
84
|
+
lines.push(" networks:");
|
|
85
|
+
for (const n of svc.networks)lines.push(` - ${n}`);
|
|
86
|
+
} else {
|
|
87
|
+
lines.push(" networks:");
|
|
88
|
+
for (const n of svc.networks){
|
|
89
|
+
if (typeof n === "string") {
|
|
90
|
+
lines.push(` ${n}:`);
|
|
91
|
+
} else {
|
|
92
|
+
for (const [netKey, cfg] of Object.entries(n)){
|
|
93
|
+
lines.push(` ${netKey}:`);
|
|
94
|
+
if (cfg.aliases && cfg.aliases.length > 0) {
|
|
95
|
+
lines.push(" aliases:");
|
|
96
|
+
for (const a of cfg.aliases)lines.push(` - ${a}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
68
103
|
if (svc.depends_on && svc.depends_on.length > 0) {
|
|
69
104
|
lines.push(" depends_on:");
|
|
70
105
|
for (const d of svc.depends_on)lines.push(` - ${d}`);
|
|
71
106
|
}
|
|
107
|
+
if (svc.healthcheck) {
|
|
108
|
+
const hc = svc.healthcheck;
|
|
109
|
+
lines.push(" healthcheck:");
|
|
110
|
+
lines.push(` test: ${JSON.stringify(hc.test)}`);
|
|
111
|
+
if (hc.interval) lines.push(` interval: ${hc.interval}`);
|
|
112
|
+
if (hc.timeout) lines.push(` timeout: ${hc.timeout}`);
|
|
113
|
+
if (hc.retries != null) lines.push(` retries: ${hc.retries}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (this._networks.size > 0) {
|
|
117
|
+
lines.push("");
|
|
118
|
+
lines.push("networks:");
|
|
119
|
+
for (const [key, net] of this._networks){
|
|
120
|
+
lines.push(` ${key}:`);
|
|
121
|
+
lines.push(` name: ${net.name}`);
|
|
122
|
+
if (net.external) lines.push(" external: true");
|
|
123
|
+
}
|
|
72
124
|
}
|
|
73
125
|
if (this._volumes.size > 0) {
|
|
74
126
|
lines.push("");
|
|
@@ -79,4 +131,4 @@ class DockerCompose {
|
|
|
79
131
|
}
|
|
80
132
|
}
|
|
81
133
|
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2NvbXBvc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwgfSBmcm9tIFwiLi9zb3VyY2UtZmlsZS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2VTZXJ2aWNlIHtcblx0YnVpbGQ/OiBzdHJpbmc7XG5cdGltYWdlPzogc3RyaW5nO1xuXHRlbnZfZmlsZT86IHN0cmluZ1tdO1xuXHRlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHBvcnRzPzogc3RyaW5nW107XG5cdHZvbHVtZXM/OiBzdHJpbmdbXTtcblx0Y29tbWFuZD86IHN0cmluZztcblx0cmVzdGFydD86IHN0cmluZztcblx0ZGVwZW5kc19vbj86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIExpdmUgYnVpbGRlciBmb3IgYGRvY2tlci1jb21wb3NlLnltbGAuXG4gKlxuICogRmVhdHVyZXMgY2FsbCBgYWRkU2VydmljZWAgLyBgYWRkVm9sdW1lYCBpbiB0aGVpciBgY29uZmlndXJlYCBwaGFzZXMuXG4gKiBUaGUgZGV2Y29udGFpbmVyIGByZW5kZXJgIHBoYXNlIGNhbGxzIGByZW5kZXIoKWAgYW5kIHdyaXRlcyB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlckNvbXBvc2UgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuRE9DS0VSX0NPTVBPU0U7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2VzOiBNYXA8c3RyaW5nLCBDb21wb3NlU2VydmljZT4gPSBuZXcgTWFwKCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3ZvbHVtZXM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG5cdHB1YmxpYyBhZGRTZXJ2aWNlKG5hbWU6IHN0cmluZywgY29uZmlnOiBDb21wb3NlU2VydmljZSk6IHRoaXMge1xuXHRcdHRoaXMuX3NlcnZpY2VzLnNldChuYW1lLCBjb25maWcpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCkge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IHRoaXMuZ2V0Q29udGVudCgpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG5cblx0cHVibGljIGFkZFZvbHVtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl92b2x1bWVzLmFkZChuYW1lKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBBcHBlbmQgYW4gZW52X2ZpbGUgcGF0aCB0byBhbiBleGlzdGluZyBzZXJ2aWNlLiAqL1xuXHRwdWJsaWMgYWRkRW52RmlsZShzZXJ2aWNlTmFtZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogdGhpcyB7XG5cdFx0Y29uc3Qgc3ZjID0gdGhpcy5fc2VydmljZXMuZ2V0KHNlcnZpY2VOYW1lKTtcblx0XHRpZiAoc3ZjKSBzdmMuZW52X2ZpbGUgPSBbLi4uKHN2Yy5lbnZfZmlsZSA/PyBbXSksIGZpbGVQYXRoXTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBnZXRDb250ZW50KCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgbGluZXM6IHN0cmluZ1tdID0gW1wic2VydmljZXM6XCJdO1xuXG5cdFx0Zm9yIChjb25zdCBbbmFtZSwgc3ZjXSBvZiB0aGlzLl9zZXJ2aWNlcykge1xuXHRcdFx0bGluZXMucHVzaChgICAke25hbWV9OmApO1xuXHRcdFx0aWYgKHN2Yy5idWlsZCkgbGluZXMucHVzaChgICAgIGJ1aWxkOiAke3N2Yy5idWlsZH1gKTtcblx0XHRcdGlmIChzdmMuaW1hZ2UpIGxpbmVzLnB1c2goYCAgICBpbWFnZTogJHtzdmMuaW1hZ2V9YCk7XG5cdFx0XHRpZiAoc3ZjLmNvbW1hbmQpIGxpbmVzLnB1c2goYCAgICBjb21tYW5kOiAke3N2Yy5jb21tYW5kfWApO1xuXHRcdFx0aWYgKHN2Yy5yZXN0YXJ0KSBsaW5lcy5wdXNoKGAgICAgcmVzdGFydDogJHtzdmMucmVzdGFydH1gKTtcblxuXHRcdFx0aWYgKHN2Yy5lbnZfZmlsZSAmJiBzdmMuZW52X2ZpbGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIGVudl9maWxlOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBmIG9mIHN2Yy5lbnZfZmlsZSkgbGluZXMucHVzaChgICAgICAgLSAke2Z9YCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMuZW52aXJvbm1lbnQgJiYgT2JqZWN0LmtleXMoc3ZjLmVudmlyb25tZW50KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgZW52aXJvbm1lbnQ6XCIpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhzdmMuZW52aXJvbm1lbnQpKSB7XG5cdFx0XHRcdFx0bGluZXMucHVzaChgICAgICAgJHtrfTogJHt2fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMucG9ydHMgJiYgc3ZjLnBvcnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBwb3J0czpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgcCBvZiBzdmMucG9ydHMpIGxpbmVzLnB1c2goYCAgICAgIC0gXCIke3B9XCJgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy52b2x1bWVzICYmIHN2Yy52b2x1bWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICB2b2x1bWVzOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCB2IG9mIHN2Yy52b2x1bWVzKSBsaW5lcy5wdXNoKGAgICAgICAtICR7dn1gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5kZXBlbmRzX29uICYmIHN2Yy5kZXBlbmRzX29uLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBkZXBlbmRzX29uOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBkIG9mIHN2Yy5kZXBlbmRzX29uKSBsaW5lcy5wdXNoKGAgICAgICAtICR7ZH1gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5fdm9sdW1lcy5zaXplID4gMCkge1xuXHRcdFx0bGluZXMucHVzaChcIlwiKTtcblx0XHRcdGxpbmVzLnB1c2goXCJ2b2x1bWVzOlwiKTtcblx0XHRcdGZvciAoY29uc3QgdiBvZiB0aGlzLl92b2x1bWVzKSBsaW5lcy5wdXNoKGAgICR7dn06YCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGAke2xpbmVzLmpvaW4oXCJcXG5cIil9XFxuYDtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRvY2tlckNvbXBvc2UiLCJrZXkiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiRE9DS0VSX0NPTVBPU0UiLCJfc2VydmljZXMiLCJNYXAiLCJfdm9sdW1lcyIsIlNldCIsImFkZFNlcnZpY2UiLCJuYW1lIiwiY29uZmlnIiwic2V0IiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiYWRkVm9sdW1lIiwiYWRkIiwiYWRkRW52RmlsZSIsInNlcnZpY2VOYW1lIiwic3ZjIiwiZ2V0IiwiZW52X2ZpbGUiLCJsaW5lcyIsInB1c2giLCJidWlsZCIsImltYWdlIiwiY29tbWFuZCIsInJlc3RhcnQiLCJsZW5ndGgiLCJmIiwiZW52aXJvbm1lbnQiLCJPYmplY3QiLCJrZXlzIiwiayIsInYiLCJlbnRyaWVzIiwicG9ydHMiLCJwIiwidm9sdW1lcyIsImRlcGVuZHNfb24iLCJkIiwic2l6ZSIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUJhQTs7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
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2NvbXBvc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwgfSBmcm9tIFwiLi9zb3VyY2UtZmlsZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBDb21wb3NlTmV0d29ya1JlZiA9XG5cdHwgc3RyaW5nXG5cdHwge1xuXHRcdFx0LyoqIE5ldHdvcmsga2V5IHVuZGVyIGBuZXR3b3JrczpgIG9uIHRoaXMgc2VydmljZSAqL1xuXHRcdFx0W25ldHdvcmtLZXk6IHN0cmluZ106IHsgYWxpYXNlcz86IHN0cmluZ1tdIH07XG5cdCAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb3NlSGVhbHRoY2hlY2sge1xuXHR0ZXN0OiBzdHJpbmdbXTtcblx0aW50ZXJ2YWw/OiBzdHJpbmc7XG5cdHRpbWVvdXQ/OiBzdHJpbmc7XG5cdHJldHJpZXM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9zZVNlcnZpY2Uge1xuXHRidWlsZD86IHN0cmluZztcblx0aW1hZ2U/OiBzdHJpbmc7XG5cdGNvbnRhaW5lcl9uYW1lPzogc3RyaW5nO1xuXHRlbnZfZmlsZT86IHN0cmluZ1tdO1xuXHRlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHBvcnRzPzogc3RyaW5nW107XG5cdHZvbHVtZXM/OiBzdHJpbmdbXTtcblx0Y29tbWFuZD86IHN0cmluZztcblx0cmVzdGFydD86IHN0cmluZztcblx0ZGVwZW5kc19vbj86IHN0cmluZ1tdO1xuXHQvKiogQXR0YWNoIHRvIGNvbXBvc2UgbmV0d29ya3MgKHN0cmluZyBuYW1lIG9yIG1hcCB3aXRoIGFsaWFzZXMpLiAqL1xuXHRuZXR3b3Jrcz86IENvbXBvc2VOZXR3b3JrUmVmW107XG5cdGhlYWx0aGNoZWNrPzogQ29tcG9zZUhlYWx0aGNoZWNrO1xufVxuXG5leHBvcnQgdHlwZSBDb21wb3NlTmV0d29yayA9IHtcblx0LyoqIEZpeGVkIERvY2tlciBuZXR3b3JrIG5hbWUgKHNoYXJlYWJsZSBhY3Jvc3MgY29tcG9zZSBwcm9qZWN0cykuICovXG5cdG5hbWU6IHN0cmluZztcblx0ZXh0ZXJuYWw/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBMaXZlIGJ1aWxkZXIgZm9yIGBkb2NrZXItY29tcG9zZS55bWxgLlxuICpcbiAqIEZlYXR1cmVzIGNhbGwgYGFkZFNlcnZpY2VgIC8gYGFkZFZvbHVtZWAgLyBgYWRkTmV0d29ya2AgaW4gdGhlaXIgc2NhZmZvbGQgcGhhc2VzLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VyQ29tcG9zZSBpbXBsZW1lbnRzIEtleWVkTW9kZWwge1xuXHRwdWJsaWMgcmVhZG9ubHkga2V5ID0gV0VMTF9LTk9XTl9GSUxFUy5ET0NLRVJfQ09NUE9TRTtcblx0cHJpdmF0ZSBfcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VydmljZXM6IE1hcDxzdHJpbmcsIENvbXBvc2VTZXJ2aWNlPiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdm9sdW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX25ldHdvcmtzOiBNYXA8c3RyaW5nLCBDb21wb3NlTmV0d29yaz4gPSBuZXcgTWFwKCk7XG5cblx0LyoqIENvbXBvc2UgcHJvamVjdCBuYW1lIChgbmFtZTpgIHRvcC1sZXZlbCkg4oCUIGlzb2xhdGVzIGNvbnRhaW5lcnMvdm9sdW1lcy4gKi9cblx0cHVibGljIHNldFByb2plY3ROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3Byb2plY3ROYW1lID0gbmFtZTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGRTZXJ2aWNlKG5hbWU6IHN0cmluZywgY29uZmlnOiBDb21wb3NlU2VydmljZSk6IHRoaXMge1xuXHRcdHRoaXMuX3NlcnZpY2VzLnNldChuYW1lLCBjb25maWcpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCkge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IHRoaXMuZ2V0Q29udGVudCgpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG5cblx0cHVibGljIGFkZFZvbHVtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl92b2x1bWVzLmFkZChuYW1lKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGROZXR3b3JrKGtleTogc3RyaW5nLCBuZXR3b3JrOiBDb21wb3NlTmV0d29yayk6IHRoaXMge1xuXHRcdHRoaXMuX25ldHdvcmtzLnNldChrZXksIG5ldHdvcmspO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFwcGVuZCBhbiBlbnZfZmlsZSBwYXRoIHRvIGFuIGV4aXN0aW5nIHNlcnZpY2UuICovXG5cdHB1YmxpYyBhZGRFbnZGaWxlKHNlcnZpY2VOYW1lOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiB0aGlzIHtcblx0XHRjb25zdCBzdmMgPSB0aGlzLl9zZXJ2aWNlcy5nZXQoc2VydmljZU5hbWUpO1xuXHRcdGlmIChzdmMpIHN2Yy5lbnZfZmlsZSA9IFsuLi4oc3ZjLmVudl9maWxlID8/IFtdKSwgZmlsZVBhdGhdO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGdldENvbnRlbnQoKTogc3RyaW5nIHtcblx0XHRjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcblx0XHRpZiAodGhpcy5fcHJvamVjdE5hbWUpIHtcblx0XHRcdGxpbmVzLnB1c2goYG5hbWU6ICR7dGhpcy5fcHJvamVjdE5hbWV9YCwgXCJcIik7XG5cdFx0fVxuXHRcdGxpbmVzLnB1c2goXCJzZXJ2aWNlczpcIik7XG5cblx0XHRmb3IgKGNvbnN0IFtuYW1lLCBzdmNdIG9mIHRoaXMuX3NlcnZpY2VzKSB7XG5cdFx0XHRsaW5lcy5wdXNoKGAgICR7bmFtZX06YCk7XG5cdFx0XHRpZiAoc3ZjLmJ1aWxkKSBsaW5lcy5wdXNoKGAgICAgYnVpbGQ6ICR7c3ZjLmJ1aWxkfWApO1xuXHRcdFx0aWYgKHN2Yy5pbWFnZSkgbGluZXMucHVzaChgICAgIGltYWdlOiAke3N2Yy5pbWFnZX1gKTtcblx0XHRcdGlmIChzdmMuY29udGFpbmVyX25hbWUpIGxpbmVzLnB1c2goYCAgICBjb250YWluZXJfbmFtZTogJHtzdmMuY29udGFpbmVyX25hbWV9YCk7XG5cdFx0XHRpZiAoc3ZjLmNvbW1hbmQpIGxpbmVzLnB1c2goYCAgICBjb21tYW5kOiAke3N2Yy5jb21tYW5kfWApO1xuXHRcdFx0aWYgKHN2Yy5yZXN0YXJ0KSBsaW5lcy5wdXNoKGAgICAgcmVzdGFydDogJHtzdmMucmVzdGFydH1gKTtcblxuXHRcdFx0aWYgKHN2Yy5lbnZfZmlsZSAmJiBzdmMuZW52X2ZpbGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIGVudl9maWxlOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBmIG9mIHN2Yy5lbnZfZmlsZSkgbGluZXMucHVzaChgICAgICAgLSAke2Z9YCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMuZW52aXJvbm1lbnQgJiYgT2JqZWN0LmtleXMoc3ZjLmVudmlyb25tZW50KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgZW52aXJvbm1lbnQ6XCIpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhzdmMuZW52aXJvbm1lbnQpKSB7XG5cdFx0XHRcdFx0bGluZXMucHVzaChgICAgICAgJHtrfTogJHt2fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMucG9ydHMgJiYgc3ZjLnBvcnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBwb3J0czpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgcCBvZiBzdmMucG9ydHMpIGxpbmVzLnB1c2goYCAgICAgIC0gXCIke3B9XCJgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy52b2x1bWVzICYmIHN2Yy52b2x1bWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICB2b2x1bWVzOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCB2IG9mIHN2Yy52b2x1bWVzKSBsaW5lcy5wdXNoKGAgICAgICAtICR7dn1gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5uZXR3b3JrcyAmJiBzdmMubmV0d29ya3MubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRjb25zdCBvbmx5U3RyaW5ncyA9IHN2Yy5uZXR3b3Jrcy5ldmVyeSgobikgPT4gdHlwZW9mIG4gPT09IFwic3RyaW5nXCIpO1xuXHRcdFx0XHRpZiAob25seVN0cmluZ3MpIHtcblx0XHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIG5ldHdvcmtzOlwiKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IG4gb2Ygc3ZjLm5ldHdvcmtzKSBsaW5lcy5wdXNoKGAgICAgICAtICR7biBhcyBzdHJpbmd9YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGluZXMucHVzaChcIiAgICBuZXR3b3JrczpcIik7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBuIG9mIHN2Yy5uZXR3b3Jrcykge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBuID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0XHRcdGxpbmVzLnB1c2goYCAgICAgICR7bn06YCk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IFtuZXRLZXksIGNmZ10gb2YgT2JqZWN0LmVudHJpZXMobikpIHtcblx0XHRcdFx0XHRcdFx0XHRsaW5lcy5wdXNoKGAgICAgICAke25ldEtleX06YCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNmZy5hbGlhc2VzICYmIGNmZy5hbGlhc2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgICAgIGFsaWFzZXM6XCIpO1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBhIG9mIGNmZy5hbGlhc2VzKSBsaW5lcy5wdXNoKGAgICAgICAgICAgLSAke2F9YCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMuZGVwZW5kc19vbiAmJiBzdmMuZGVwZW5kc19vbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgZGVwZW5kc19vbjpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgZCBvZiBzdmMuZGVwZW5kc19vbikgbGluZXMucHVzaChgICAgICAgLSAke2R9YCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMuaGVhbHRoY2hlY2spIHtcblx0XHRcdFx0Y29uc3QgaGMgPSBzdmMuaGVhbHRoY2hlY2s7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgaGVhbHRoY2hlY2s6XCIpO1xuXHRcdFx0XHRsaW5lcy5wdXNoKGAgICAgICB0ZXN0OiAke0pTT04uc3RyaW5naWZ5KGhjLnRlc3QpfWApO1xuXHRcdFx0XHRpZiAoaGMuaW50ZXJ2YWwpIGxpbmVzLnB1c2goYCAgICAgIGludGVydmFsOiAke2hjLmludGVydmFsfWApO1xuXHRcdFx0XHRpZiAoaGMudGltZW91dCkgbGluZXMucHVzaChgICAgICAgdGltZW91dDogJHtoYy50aW1lb3V0fWApO1xuXHRcdFx0XHRpZiAoaGMucmV0cmllcyAhPSBudWxsKSBsaW5lcy5wdXNoKGAgICAgICByZXRyaWVzOiAke2hjLnJldHJpZXN9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX25ldHdvcmtzLnNpemUgPiAwKSB7XG5cdFx0XHRsaW5lcy5wdXNoKFwiXCIpO1xuXHRcdFx0bGluZXMucHVzaChcIm5ldHdvcmtzOlwiKTtcblx0XHRcdGZvciAoY29uc3QgW2tleSwgbmV0XSBvZiB0aGlzLl9uZXR3b3Jrcykge1xuXHRcdFx0XHRsaW5lcy5wdXNoKGAgICR7a2V5fTpgKTtcblx0XHRcdFx0bGluZXMucHVzaChgICAgIG5hbWU6ICR7bmV0Lm5hbWV9YCk7XG5cdFx0XHRcdGlmIChuZXQuZXh0ZXJuYWwpIGxpbmVzLnB1c2goXCIgICAgZXh0ZXJuYWw6IHRydWVcIik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3ZvbHVtZXMuc2l6ZSA+IDApIHtcblx0XHRcdGxpbmVzLnB1c2goXCJcIik7XG5cdFx0XHRsaW5lcy5wdXNoKFwidm9sdW1lczpcIik7XG5cdFx0XHRmb3IgKGNvbnN0IHYgb2YgdGhpcy5fdm9sdW1lcykgbGluZXMucHVzaChgICAke3Z9OmApO1xuXHRcdH1cblxuXHRcdHJldHVybiBgJHtsaW5lcy5qb2luKFwiXFxuXCIpfVxcbmA7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJEb2NrZXJDb21wb3NlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIkRPQ0tFUl9DT01QT1NFIiwiX3Byb2plY3ROYW1lIiwiX3NlcnZpY2VzIiwiTWFwIiwiX3ZvbHVtZXMiLCJTZXQiLCJfbmV0d29ya3MiLCJzZXRQcm9qZWN0TmFtZSIsIm5hbWUiLCJhZGRTZXJ2aWNlIiwiY29uZmlnIiwic2V0IiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiYWRkVm9sdW1lIiwiYWRkIiwiYWRkTmV0d29yayIsIm5ldHdvcmsiLCJhZGRFbnZGaWxlIiwic2VydmljZU5hbWUiLCJzdmMiLCJnZXQiLCJlbnZfZmlsZSIsImxpbmVzIiwicHVzaCIsImJ1aWxkIiwiaW1hZ2UiLCJjb250YWluZXJfbmFtZSIsImNvbW1hbmQiLCJyZXN0YXJ0IiwibGVuZ3RoIiwiZiIsImVudmlyb25tZW50IiwiT2JqZWN0Iiwia2V5cyIsImsiLCJ2IiwiZW50cmllcyIsInBvcnRzIiwicCIsInZvbHVtZXMiLCJuZXR3b3JrcyIsIm9ubHlTdHJpbmdzIiwiZXZlcnkiLCJuIiwibmV0S2V5IiwiY2ZnIiwiYWxpYXNlcyIsImEiLCJkZXBlbmRzX29uIiwiZCIsImhlYWx0aGNoZWNrIiwiaGMiLCJKU09OIiwic3RyaW5naWZ5IiwidGVzdCIsImludGVydmFsIiwidGltZW91dCIsInJldHJpZXMiLCJzaXplIiwibmV0IiwiZXh0ZXJuYWwiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7OytCQTRDYUE7OztlQUFBQTs7O3VCQTVDb0I7QUE0QzFCLE1BQU1BO0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxjQUFjLENBQUM7SUFDOUNDLGFBQWlDO0lBQ3hCQyxZQUF5QyxJQUFJQyxNQUFNO0lBQ25EQyxXQUF3QixJQUFJQyxNQUFNO0lBQ2xDQyxZQUF5QyxJQUFJSCxNQUFNO0lBRXBFLDRFQUE0RSxHQUM1RSxBQUFPSSxlQUFlQyxJQUFZLEVBQVE7UUFDekMsSUFBSSxDQUFDUCxZQUFZLEdBQUdPO1FBQ3BCLE9BQU8sSUFBSTtJQUNaO0lBRU9DLFdBQVdELElBQVksRUFBRUUsTUFBc0IsRUFBUTtRQUM3RCxJQUFJLENBQUNSLFNBQVMsQ0FBQ1MsR0FBRyxDQUFDSCxNQUFNRTtRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFRO1FBQ2QsT0FBTztZQUNOO2dCQUNDQyxVQUFVO2dCQUNWQyxTQUFTLElBQUksQ0FBQ0MsVUFBVTtZQUN6QjtTQUNBO0lBQ0Y7SUFFT0MsVUFBVVIsSUFBWSxFQUFRO1FBQ3BDLElBQUksQ0FBQ0osUUFBUSxDQUFDYSxHQUFHLENBQUNUO1FBQ2xCLE9BQU8sSUFBSTtJQUNaO0lBRU9VLFdBQVdwQixHQUFXLEVBQUVxQixPQUF1QixFQUFRO1FBQzdELElBQUksQ0FBQ2IsU0FBUyxD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
|
|
@@ -13,14 +13,16 @@ class DevContainer {
|
|
|
13
13
|
key = _const.WELL_KNOWN_FILES.DEVCONTAINER_JSON;
|
|
14
14
|
_extensions = [];
|
|
15
15
|
_ports = [];
|
|
16
|
+
_portAttributes = new Map();
|
|
16
17
|
_mounts;
|
|
17
18
|
_postStartCommand;
|
|
19
|
+
_initializeCommand;
|
|
20
|
+
_remoteUser = "node";
|
|
18
21
|
_useCompose = false;
|
|
19
22
|
constructor(){
|
|
20
23
|
this._mounts = [
|
|
21
24
|
"source=..,target=/workspace,type=bind,consistency=cached"
|
|
22
25
|
];
|
|
23
|
-
this.forwardPort(3000);
|
|
24
26
|
}
|
|
25
27
|
addExtension(...ids) {
|
|
26
28
|
this._extensions.push(...ids);
|
|
@@ -30,10 +32,22 @@ class DevContainer {
|
|
|
30
32
|
this._ports.push(...ports);
|
|
31
33
|
return this;
|
|
32
34
|
}
|
|
35
|
+
setPortAttributes(port, attrs) {
|
|
36
|
+
this._portAttributes.set(port, attrs);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
33
39
|
setPostStartCommand(cmd) {
|
|
34
40
|
this._postStartCommand = cmd;
|
|
35
41
|
return this;
|
|
36
42
|
}
|
|
43
|
+
setInitializeCommand(cmd) {
|
|
44
|
+
this._initializeCommand = cmd;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
setRemoteUser(user) {
|
|
48
|
+
this._remoteUser = user;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
37
51
|
useCompose() {
|
|
38
52
|
this._useCompose = true;
|
|
39
53
|
return this;
|
|
@@ -45,6 +59,9 @@ class DevContainer {
|
|
|
45
59
|
config.service = "devcontainer";
|
|
46
60
|
config.workspaceFolder = "/workspace";
|
|
47
61
|
}
|
|
62
|
+
if (this._initializeCommand) {
|
|
63
|
+
config.initializeCommand = this._initializeCommand;
|
|
64
|
+
}
|
|
48
65
|
if (this._mounts) {
|
|
49
66
|
config.mounts = this._mounts;
|
|
50
67
|
}
|
|
@@ -58,9 +75,19 @@ class DevContainer {
|
|
|
58
75
|
if (this._ports.length > 0) {
|
|
59
76
|
config.forwardPorts = this._ports;
|
|
60
77
|
}
|
|
78
|
+
if (this._portAttributes.size > 0) {
|
|
79
|
+
const portsAttributes = {};
|
|
80
|
+
for (const [port, attrs] of this._portAttributes){
|
|
81
|
+
portsAttributes[String(port)] = attrs;
|
|
82
|
+
}
|
|
83
|
+
config.portsAttributes = portsAttributes;
|
|
84
|
+
}
|
|
61
85
|
if (this._postStartCommand) {
|
|
62
86
|
config.postStartCommand = this._postStartCommand;
|
|
63
87
|
}
|
|
88
|
+
if (this._remoteUser) {
|
|
89
|
+
config.remoteUser = this._remoteUser;
|
|
90
|
+
}
|
|
64
91
|
return [
|
|
65
92
|
{
|
|
66
93
|
filePath: ".devcontainer/devcontainer.json",
|
|
@@ -70,4 +97,4 @@ class DevContainer {
|
|
|
70
97
|
}
|
|
71
98
|
}
|
|
72
99
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2Rldi1jb250YWluZXIubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi9zb3VyY2UtZmlsZS5qc1wiO1xuXG4vKipcbiAqIE1vZGVsIGZvciBgLmRldmNvbnRhaW5lci9kZXZjb250YWluZXIuanNvbmAuXG4gKlxuICogRmVhdHVyZXMgY2FsbCBidWlsZGVyIG1ldGhvZHMgKGBhZGRFeHRlbnNpb25gLCBgZm9yd2FyZFBvcnRgLCBldGMuKSBkdXJpbmdcbiAqIHRoZWlyIGNvbmZpZ3VyZSBwaGFzZS4gYE1vbm9SZXBvU2NhZmZvbGRgIGNhbGxzIGBmaWxlcygpYCBhdCByZW5kZXIgdGltZS5cbiAqL1xuXG5leHBvcnQgdHlwZSBQb3J0QXR0cmlidXRlcyA9IHtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdC8qKiBXaGVuIHRydWUsIGhvc3QgcG9ydCBtdXN0IG1hdGNoIHRoZSBjb250YWluZXIgcG9ydCAobm8gcmFuZG9tIHJlbWFwKS4gKi9cblx0cmVxdWlyZUxvY2FsUG9ydD86IGJvb2xlYW47XG5cdG9uQXV0b0ZvcndhcmQ/OiBcIm5vdGlmeVwiIHwgXCJvcGVuQnJvd3NlclwiIHwgXCJvcGVuUHJldmlld1wiIHwgXCJzaWxlbnRcIiB8IFwiaWdub3JlXCI7XG59O1xuXG5leHBvcnQgY2xhc3MgRGV2Q29udGFpbmVyIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkRFVkNPTlRBSU5FUl9KU09OO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9leHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wb3J0czogbnVtYmVyW10gPSBbXTtcblx0cHJpdmF0ZSByZWFkb25seSBfcG9ydEF0dHJpYnV0ZXMgPSBuZXcgTWFwPG51bWJlciwgUG9ydEF0dHJpYnV0ZXM+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX21vdW50czogc3RyaW5nW107XG5cdHByaXZhdGUgX3Bvc3RTdGFydENvbW1hbmQ/OiBzdHJpbmc7XG5cdHByaXZhdGUgX2luaXRpYWxpemVDb21tYW5kPzogc3RyaW5nO1xuXHRwcml2YXRlIF9yZW1vdGVVc2VyID0gXCJub2RlXCI7XG5cdHByaXZhdGUgX3VzZUNvbXBvc2UgPSBmYWxzZTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fbW91bnRzID0gW1wic291cmNlPS4uLHRhcmdldD0vd29ya3NwYWNlLHR5cGU9YmluZCxjb25zaXN0ZW5jeT1jYWNoZWRcIl07XG5cdH1cblxuXHRwdWJsaWMgYWRkRXh0ZW5zaW9uKC4uLmlkczogc3RyaW5nW10pOiB0aGlzIHtcblx0XHR0aGlzLl9leHRlbnNpb25zLnB1c2goLi4uaWRzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmb3J3YXJkUG9ydCguLi5wb3J0czogbnVtYmVyW10pOiB0aGlzIHtcblx0XHR0aGlzLl9wb3J0cy5wdXNoKC4uLnBvcnRzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBzZXRQb3J0QXR0cmlidXRlcyhwb3J0OiBudW1iZXIsIGF0dHJzOiBQb3J0QXR0cmlidXRlcyk6IHRoaXMge1xuXHRcdHRoaXMuX3BvcnRBdHRyaWJ1dGVzLnNldChwb3J0LCBhdHRycyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0UG9zdFN0YXJ0Q29tbWFuZChjbWQ6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3Bvc3RTdGFydENvbW1hbmQgPSBjbWQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0SW5pdGlhbGl6ZUNvbW1hbmQoY21kOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9pbml0aWFsaXplQ29tbWFuZCA9IGNtZDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBzZXRSZW1vdGVVc2VyKHVzZXI6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3JlbW90ZVVzZXIgPSB1c2VyO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHVzZUNvbXBvc2UoKTogdGhpcyB7XG5cdFx0dGhpcy5fdXNlQ29tcG9zZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRjb25zdCBjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cblx0XHRpZiAodGhpcy5fdXNlQ29tcG9zZSkge1xuXHRcdFx0Y29uZmlnLmRvY2tlckNvbXBvc2VGaWxlID0gXCJkb2NrZXItY29tcG9zZS55bWxcIjtcblx0XHRcdGNvbmZpZy5zZXJ2aWNlID0gXCJkZXZjb250YWluZXJcIjtcblx0XHRcdGNvbmZpZy53b3Jrc3BhY2VGb2xkZXIgPSBcIi93b3Jrc3BhY2VcIjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5faW5pdGlhbGl6ZUNvbW1hbmQpIHtcblx0XHRcdGNvbmZpZy5pbml0aWFsaXplQ29tbWFuZCA9IHRoaXMuX2luaXRpYWxpemVDb21tYW5kO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9tb3VudHMpIHtcblx0XHRcdGNvbmZpZy5tb3VudHMgPSB0aGlzLl9tb3VudHM7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2V4dGVuc2lvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uZmlnLmN1c3RvbWl6YXRpb25zID0geyB2c2NvZGU6IHsgZXh0ZW5zaW9uczogdGhpcy5fZXh0ZW5zaW9ucyB9IH07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3BvcnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbmZpZy5mb3J3YXJkUG9ydHMgPSB0aGlzLl9wb3J0cztcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fcG9ydEF0dHJpYnV0ZXMuc2l6ZSA+IDApIHtcblx0XHRcdGNvbnN0IHBvcnRzQXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgUG9ydEF0dHJpYnV0ZXM+ID0ge307XG5cdFx0XHRmb3IgKGNvbnN0IFtwb3J0LCBhdHRyc10gb2YgdGhpcy5fcG9ydEF0dHJpYnV0ZXMpIHtcblx0XHRcdFx0cG9ydHNBdHRyaWJ1dGVzW1N0cmluZyhwb3J0KV0gPSBhdHRycztcblx0XHRcdH1cblx0XHRcdGNvbmZpZy5wb3J0c0F0dHJpYnV0ZXMgPSBwb3J0c0F0dHJpYnV0ZXM7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3Bvc3RTdGFydENvbW1hbmQpIHtcblx0XHRcdGNvbmZpZy5wb3N0U3RhcnRDb21tYW5kID0gdGhpcy5fcG9zdFN0YXJ0Q29tbWFuZDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fcmVtb3RlVXNlcikge1xuXHRcdFx0Y29uZmlnLnJlbW90ZVVzZXIgPSB0aGlzLl9yZW1vdGVVc2VyO1xuXHRcdH1cblxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvZGV2Y29udGFpbmVyLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRldkNvbnRhaW5lciIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJERVZDT05UQUlORVJfSlNPTiIsIl9leHRlbnNpb25zIiwiX3BvcnRzIiwiX3BvcnRBdHRyaWJ1dGVzIiwiTWFwIiwiX21vdW50cyIsIl9wb3N0U3RhcnRDb21tYW5kIiwiX2luaXRpYWxpemVDb21tYW5kIiwiX3JlbW90ZVVzZXIiLCJfdXNlQ29tcG9zZSIsImFkZEV4dGVuc2lvbiIsImlkcyIsInB1c2giLCJmb3J3YXJkUG9ydCIsInBvcnRzIiwic2V0UG9ydEF0dHJpYnV0ZXMiLCJwb3J0IiwiYXR0cnMiLCJzZXQiLCJzZXRQb3N0U3RhcnRDb21tYW5kIiwiY21kIiwic2V0SW5pdGlhbGl6ZUNvbW1hbmQiLCJzZXRSZW1vdGVVc2VyIiwidXNlciIsInVzZUNvbXBvc2UiLCJmaWxlcyIsImNvbmZpZyIsImRvY2tlckNvbXBvc2VGaWxlIiwic2VydmljZSIsIndvcmtzcGFjZUZvbGRlciIsImluaXRpYWxpemVDb21tYW5kIiwibW91bnRzIiwibGVuZ3RoIiwiY3VzdG9taXphdGlvbnMiLCJ2c2NvZGUiLCJleHRlbnNpb25zIiwiZm9yd2FyZFBvcnRzIiwic2l6ZSIsInBvcnRzQXR0cmlidXRlcyIsIlN0cmluZyIsInBvc3RTdGFydENvbW1hbmQiLCJyZW1vdGVVc2VyIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFpQmFBOzs7ZUFBQUE7Ozt1QkFqQm9CO0FBaUIxQixNQUFNQTtJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsaUJBQWlCLENBQUM7SUFDeENDLGNBQXdCLEVBQUUsQ0FBQztJQUMzQkMsU0FBbUIsRUFBRSxDQUFDO0lBQ3RCQyxrQkFBa0IsSUFBSUMsTUFBOEI7SUFDcERDLFFBQWtCO0lBQzNCQyxrQkFBMkI7SUFDM0JDLG1CQUE0QjtJQUM1QkMsY0FBYyxPQUFPO0lBQ3JCQyxjQUFjLE1BQU07SUFFNUIsYUFBcUI7UUFDcEIsSUFBSSxDQUFDSixPQUFPLEdBQUc7WUFBQztTQUEyRDtJQUM1RTtJQUVPSyxhQUFhLEdBQUdDLEdBQWEsRUFBUTtRQUMzQyxJQUFJLENBQUNWLFdBQVcsQ0FBQ1csSUFBSSxJQUFJRDtRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPRSxZQUFZLEdBQUdDLEtBQWUsRUFBUTtRQUM1QyxJQUFJLENBQUNaLE1BQU0sQ0FBQ1UsSUFBSSxJQUFJRTtRQUNwQixPQUFPLElBQUk7SUFDWjtJQUVPQyxrQkFBa0JDLElBQVksRUFBRUMsS0FBcUIsRUFBUTtRQUNuRSxJQUFJLENBQUNkLGVBQWUsQ0FBQ2UsR0FBRyxDQUFDRixNQUFNQztRQUMvQixPQUFPLElBQUk7SUFDWjtJQUVPRSxvQkFBb0JDLEdBQVcsRUFBUTtRQUM3QyxJQUFJLENBQUNkLGlCQUFpQixHQUFHYztRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPQyxxQkFBcUJELEdBQVcsRUFBUTtRQUM5QyxJQUFJLENBQUNiLGtCQUFrQixHQUFHYTtRQUMxQixPQUFPLElBQUk7SUFDWjtJQUVPRSxjQUFjQyxJQUFZLEVBQVE7UUFDeEMsSUFBSSxDQUFDZixXQUFXLEdBQUdlO1FBQ25CLE9BQU8sSUFBSTtJQUNaO0lBRU9DLGFBQW1CO1FBQ3pCLElBQUksQ0FBQ2YsV0FBVyxHQUFHO1FBQ25CLE9BQU8sSUFBSTtJQUNaO0lBRU9nQixRQUFzQjtRQUM1QixNQUFNQyxTQUFrQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDakIsV0FBVyxFQUFFO1lBQ3JCaUIsT0FBT0MsaUJBQWlCLEdBQUc7WUFDM0JELE9BQU9FLE9BQU8sR0FBRztZQUNqQkYsT0FBT0csZUFBZSxHQUFHO1FBQzFCO1FBRUEsSUFBSSxJQUFJLENBQUN0QixrQkFBa0IsRUFBRTtZQUM1Qm1CLE9BQU9JLGlCQUFpQixHQUFHLElBQUksQ0FBQ3ZCLGtCQUFrQjtRQUNuRDtRQUVBLElBQUksSUFBSSxDQUFDRixPQUFPLEVBQUU7WUFDakJxQixPQUFPSyxNQUFNLEdBQUcsSUFBSSxDQUFDMUIsT0FBTztRQUM3QjtRQUVBLElBQUksSUFBSSxDQUFDSixXQUFXLENBQUMrQixNQUFNLEdBQUcsR0FBRztZQUNoQ04sT0FBT08sY0FBYyxHQUFHO2dCQUFFQyxRQUFRO29CQUFFQyxZQUFZLElBQUksQ0FBQ2xDLFdBQVc7Z0JBQUM7WUFBRTtRQUNwRTtRQUVBLElBQUksSUFBSSxDQUFDQyxNQUFNLENBQUM4QixNQUFNLEdBQUcsR0FBRztZQUMzQk4sT0FBT1UsWUFBWSxHQUFHLElBQUksQ0FBQ2xDLE1BQU07UUFDbEM7UUFFQSxJQUFJLElBQUksQ0FBQ0MsZUFBZSxDQUFDa0MsSUFBSSxHQUFHLEdBQUc7WUFDbEMsTUFBTUMsa0JBQWtELENBQUM7WUFDekQsS0FBSyxNQUFNLENBQUN0QixNQUFNQyxNQUFNLElBQUksSUFBSSxDQUFDZCxlQUFlLENBQUU7Z0JBQ2pEbUMsZUFBZSxDQUFDQyxPQUFPdkIsTUFBTSxHQUFHQztZQUNqQztZQUNBUyxPQUFPWSxlQUFlLEdBQUdBO1FBQzFCO1FBRUEsSUFBSSxJQUFJLENBQUNoQyxpQkFBaUIsRUFBRTtZQUMzQm9CLE9BQU9jLGdCQUFnQixHQUFHLElBQUksQ0FBQ2xDLGlCQUFpQjtRQUNqRDtRQUVBLElBQUksSUFBSSxDQUFDRSxXQUFXLEVBQUU7WUFDckJrQixPQUFPZSxVQUFVLEdBQUcsSUFBSSxDQUFDakMsV0FBVztRQUNyQztRQUVBLE9BQU87WUFDTjtnQkFDQ2tDLFVBQVU7Z0JBQ1ZDLFNBQVNDLEtBQUtDLFNBQVMsQ0FBQ25CLFFBQVEsTUFBTTtZQUN2QztTQUNBO0lBQ0Y7QUFDRCJ9
|
|
@@ -15,6 +15,11 @@ class PackageJson {
|
|
|
15
15
|
key = _const.WELL_KNOWN_FILES.PACKAGE_JSON;
|
|
16
16
|
_dependencies;
|
|
17
17
|
_devDependencies;
|
|
18
|
+
_scripts = {
|
|
19
|
+
build: "forge build",
|
|
20
|
+
"build:watch": "forge build --watch",
|
|
21
|
+
dev: "flux serve"
|
|
22
|
+
};
|
|
18
23
|
constructor(name){
|
|
19
24
|
this.name = name;
|
|
20
25
|
this._dependencies = {
|
|
@@ -40,6 +45,10 @@ class PackageJson {
|
|
|
40
45
|
this._devDependencies[name] = version;
|
|
41
46
|
return this;
|
|
42
47
|
}
|
|
48
|
+
addScript(name, command) {
|
|
49
|
+
this._scripts[name] = command;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
43
52
|
files() {
|
|
44
53
|
return [
|
|
45
54
|
{
|
|
@@ -48,11 +57,7 @@ class PackageJson {
|
|
|
48
57
|
name: this.name,
|
|
49
58
|
version: "0.0.1",
|
|
50
59
|
type: "module",
|
|
51
|
-
scripts:
|
|
52
|
-
build: "forge build",
|
|
53
|
-
"build:watch": "forge build --watch",
|
|
54
|
-
dev: "flux serve"
|
|
55
|
-
},
|
|
60
|
+
scripts: this._scripts,
|
|
56
61
|
dependencies: this._dependencies,
|
|
57
62
|
devDependencies: this._devDependencies
|
|
58
63
|
}, null, 2)
|
|
@@ -61,4 +66,4 @@ class PackageJson {
|
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zY3JpcHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcdGJ1aWxkOiBcImZvcmdlIGJ1aWxkXCIsXG5cdFx0XCJidWlsZDp3YXRjaFwiOiBcImZvcmdlIGJ1aWxkIC0td2F0Y2hcIixcblx0XHRkZXY6IFwiZmx1eCBzZXJ2ZVwiLFxuXHR9O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZykge1xuXHRcdHRoaXMuX2RlcGVuZGVuY2llcyA9IHtcblx0XHRcdFwiQGRlY29oZXJlL2NvcnRleFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL2NydWNpYmxlXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJAZGVjb2hlcmUvbmV4dXNcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9wcm90b2NvbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL3NjcmliZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL3NjcmliZS1waW5vXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJwaW5vLXByZXR0eVwiOiBcIl4xMy4wLjBcIixcblx0XHR9O1xuXHRcdHRoaXMuX2RldkRlcGVuZGVuY2llcyA9IHtcblx0XHRcdFwiQGRlY29oZXJlL3Rlcm1pbmFsXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0dHlwZXNjcmlwdDogXCJeNi4wLjNcIixcblx0XHRcdFwiQGJpb21lanMvYmlvbWVcIjogXCJeMi4wLjBcIixcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFkZERlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZERldkRlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZFNjcmlwdChuYW1lOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3NjcmlwdHNbbmFtZV0gPSBjb21tYW5kO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwicGFja2FnZS5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG5hbWU6IHRoaXMubmFtZSxcblx0XHRcdFx0XHRcdHZlcnNpb246IFwiMC4wLjFcIixcblx0XHRcdFx0XHRcdHR5cGU6IFwibW9kdWxlXCIsXG5cdFx0XHRcdFx0XHRzY3JpcHRzOiB0aGlzLl9zY3JpcHRzLFxuXHRcdFx0XHRcdFx0ZGVwZW5kZW5jaWVzOiB0aGlzLl9kZXBlbmRlbmNpZXMsXG5cdFx0XHRcdFx0XHRkZXZEZXBlbmRlbmNpZXM6IHRoaXMuX2RldkRlcGVuZGVuY2llcyxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0Mixcblx0XHRcdFx0KSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlBhY2thZ2VKc29uIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIlBBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwiX3NjcmlwdHMiLCJidWlsZCIsImRldiIsIm5hbWUiLCJDUkVBVEVfVkVSU0lPTiIsInR5cGVzY3JpcHQiLCJhZGREZXBlbmRlbmN5IiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJhZGRTY3JpcHQiLCJjb21tYW5kIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwidHlwZSIsInNjcmlwdHMiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBV2FBOzs7ZUFBQUE7Ozt5QkFYa0I7dUJBQ0U7QUFVMUIsTUFBTUE7O0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxZQUFZLENBQUM7SUFFbkNDLGNBQXNDO0lBQ3RDQyxpQkFBeUM7SUFDekNDLFdBQW1DO1FBQ25EQyxPQUFPO1FBQ1AsZUFBZTtRQUNmQyxLQUFLO0lBQ04sRUFBRTtJQUVGLFlBQW1CLEFBQWlCQyxJQUFZLENBQUU7YUFBZEEsT0FBQUE7UUFDbkMsSUFBSSxDQUFDTCxhQUFhLEdBQUc7WUFDcEIsb0JBQW9CTSx1QkFBYztZQUNsQyxzQkFBc0JBLHVCQUFjO1lBQ3BDLG1CQUFtQkEsdUJBQWM7WUFDakMsc0JBQXNCQSx1QkFBYztZQUNwQyxvQkFBb0JBLHVCQUFjO1lBQ2xDLHlCQUF5QkEsdUJBQWM7WUFDdkMsZUFBZTtRQUNoQjtRQUNBLElBQUksQ0FBQ0wsZ0JBQWdCLEdBQUc7WUFDdkIsc0JBQXNCSyx1QkFBYztZQUNwQ0MsWUFBWTtZQUNaLGtCQUFrQjtRQUNuQjtJQUNEO0lBRU9DLGNBQWNILElBQVksRUFBRUksT0FBZSxFQUFRO1FBQ3pELElBQUksQ0FBQ1QsYUFBYSxDQUFDSyxLQUFLLEdBQUdJO1FBQzNCLE9BQU8sSUFBSTtJQUNaO0lBRU9DLGlCQUFpQkwsSUFBWSxFQUFFSSxPQUFlLEVBQVE7UUFDNUQsSUFBSSxDQUFDUixnQkFBZ0IsQ0FBQ0ksS0FBSyxHQUFHSTtRQUM5QixPQUFPLElBQUk7SUFDWjtJQUVPRSxVQUFVTixJQUFZLEVBQUVPLE9BQWUsRUFBUTtRQUNyRCxJQUFJLENBQUNWLFFBQVEsQ0FBQ0csS0FBSyxHQUFHTztRQUN0QixPQUFPLElBQUk7SUFDWjtJQUVPQyxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVNDLEtBQUtDLFNBQVMsQ0FDdEI7b0JBQ0NaLE1BQU0sSUFBSSxDQUFDQSxJQUFJO29CQUNmSSxTQUFTO29CQUNUUyxNQUFNO29CQUNOQyxTQUFTLElBQUksQ0FBQ2pCLFFBQVE7b0JBQ3RCa0IsY0FBYyxJQUFJLENBQUNwQixhQUFhO29CQUNoQ3FCLGlCQUFpQixJQUFJLENBQUNwQixnQkFBZ0I7Z0JBQ3ZDLEdBQ0EsTUFDQTtZQUVGO1NBQ0E7SUFDRjtBQUNEIn0=
|
package/commonjs/src/runner.js
CHANGED
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "runInBuilder", {
|
|
|
10
10
|
});
|
|
11
11
|
const _nodechild_process = require("node:child_process");
|
|
12
12
|
const _nodefs = require("node:fs");
|
|
13
|
+
const _nodeos = require("node:os");
|
|
13
14
|
const _nodepath = require("node:path");
|
|
14
15
|
const _version = require("./version.js");
|
|
15
16
|
const BUILDER_IMAGE = `${_version.CREATE_IMAGE_REPOSITORY}:${_version.CREATE_VERSION}`;
|
|
@@ -35,6 +36,11 @@ function runInBuilder(opts) {
|
|
|
35
36
|
"-v",
|
|
36
37
|
"/npm-cache"
|
|
37
38
|
];
|
|
39
|
+
// Mount host .npmrc for private registry credentials, if present.
|
|
40
|
+
const npmrcPath = (0, _nodepath.resolve)((0, _nodeos.homedir)(), ".npmrc");
|
|
41
|
+
if ((0, _nodefs.existsSync)(npmrcPath)) {
|
|
42
|
+
volumes.push("-v", `${npmrcPath}:/root/.npmrc:ro`);
|
|
43
|
+
}
|
|
38
44
|
const commandArgs = [
|
|
39
45
|
"webapi",
|
|
40
46
|
"-d",
|
|
@@ -53,10 +59,17 @@ function runInBuilder(opts) {
|
|
|
53
59
|
commandArgs.push("--install", opts.installDependencies);
|
|
54
60
|
}
|
|
55
61
|
console.log(" Running scaffolding in a sandboxed container...\n");
|
|
62
|
+
// Only allocate a TTY when stdin is itself a TTY — avoids a hung process
|
|
63
|
+
// in non-interactive environments (pipes, CI, scripts).
|
|
64
|
+
const ttyFlags = process.stdin.isTTY ? [
|
|
65
|
+
"-it"
|
|
66
|
+
] : [
|
|
67
|
+
"-i"
|
|
68
|
+
];
|
|
56
69
|
const result = (0, _nodechild_process.spawnSync)("docker", [
|
|
57
70
|
"run",
|
|
58
71
|
"--rm",
|
|
59
|
-
|
|
72
|
+
...ttyFlags,
|
|
60
73
|
...volumes,
|
|
61
74
|
"-e",
|
|
62
75
|
"DECOHERE_BUILDER=1",
|
|
@@ -71,7 +84,10 @@ function runInBuilder(opts) {
|
|
|
71
84
|
], {
|
|
72
85
|
stdio: "inherit"
|
|
73
86
|
});
|
|
87
|
+
if (result.status === 0) {
|
|
88
|
+
console.log(`\n Scaffold complete!\n\n Open your project:\n\n code ${targetDir}\n`);
|
|
89
|
+
}
|
|
74
90
|
process.exit(result.status ?? 0);
|
|
75
91
|
}
|
|
76
92
|
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENSRUFURV9JTUFHRV9SRVBPU0lUT1JZLCBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb24uanNcIjtcbmltcG9ydCB0eXBlIHsgQXBpT3B0aW9ucyB9IGZyb20gXCIuL3dlYmFwaS9jcmVhdGUtYXBpLmpzXCI7XG5cbmNvbnN0IEJVSUxERVJfSU1BR0UgPSBgJHtDUkVBVEVfSU1BR0VfUkVQT1NJVE9SWX06JHtDUkVBVEVfVkVSU0lPTn1gO1xuXG4vKipcbiAqIFJ1biB0aGUgc2NhZmZvbGQgaW5zaWRlIGEgcHJlLWJ1aWx0IERvY2tlciBidWlsZGVyIGltYWdlLlxuICpcbiAqIENhbGxlZCB3aGVuIGBERUNPSEVSRV9CVUlMREVSYCBpcyBub3Qgc2V0IOKAlCBpLmUuIHRoZSBDTEkgaXMgcnVubmluZyBvbiB0aGVcbiAqIGhvc3QsIG91dHNpZGUgdGhlIGNvbnRhaW5lci4gTW91bnRzIHRoZSB0YXJnZXQgZGlyZWN0b3J5IGFzIGAvd29ya3NwYWNlYCBzb1xuICogdGhlIHNjYWZmb2xkZWQgZmlsZXMgYXJlIHdyaXR0ZW4gYmFjayB0byB0aGUgaG9zdCBmaWxlc3lzdGVtLlxuICpcbiAqIElmIGB+Ly5jb25maWcvYXV0aDBgIGV4aXN0cyBvbiB0aGUgaG9zdCB0aGUgZGlyZWN0b3J5IGlzIGFsc28gbW91bnRlZCBzb1xuICogdGhlIGF1dGgwIENMSSBpbnNpZGUgdGhlIGNvbnRhaW5lciBjYW4gcmV1c2UgZXhpc3RpbmcgY3JlZGVudGlhbHMgc2lsZW50bHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JbkJ1aWxkZXIob3B0czogQXBpT3B0aW9ucyk6IG5ldmVyIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShvcHRzLmQgPz8gXCIuXCIpO1xuXHRta2RpclN5bmModGFyZ2V0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuXHQvLyBFbnN1cmUgRG9ja2VyIGlzIGF2YWlsYWJsZS5cblx0dHJ5IHtcblx0XHRleGVjRmlsZVN5bmMoXCJkb2NrZXJcIiwgW1wiaW5mb1wiXSwgeyBzdGRpbzogXCJwaXBlXCIgfSk7XG5cdH0gY2F0Y2gge1xuXHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcIlxcbiAgRG9ja2VyIGlzIHJlcXVpcmVkIHRvIHNjYWZmb2xkIGEgRGVjb2hlcmUgcHJvamVjdC5cXG5cIiArXG5cdFx0XHRcdFwiICBJbnN0YWxsIERvY2tlciBEZXNrdG9wOiBodHRwczovL3d3dy5kb2NrZXIuY29tL3Byb2R1Y3RzL2RvY2tlci1kZXNrdG9wXFxuXCIsXG5cdFx0KTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblxuXHRjb25zdCB2b2x1bWVzOiBzdHJpbmdbXSA9IFtcIi12XCIsIGAke3RhcmdldERpcn06L3dvcmtzcGFjZWAsIFwiLXZcIiwgXCIvbnBtLWNhY2hlXCJdO1xuXG5cdC8vIE1vdW50IGhvc3QgLm5wbXJjIGZvciBwcml2YXRlIHJlZ2lzdHJ5IGNyZWRlbnRpYWxzLCBpZiBwcmVzZW50LlxuXHRjb25zdCBucG1yY1BhdGggPSByZXNvbHZlKGhvbWVkaXIoKSwgXCIubnBtcmNcIik7XG5cdGlmIChleGlzdHNTeW5jKG5wbXJjUGF0aCkpIHtcblx0XHR2b2x1bWVzLnB1c2goXCItdlwiLCBgJHtucG1yY1BhdGh9Oi9yb290Ly5ucG1yYzpyb2ApO1xuXHR9XG5cblx0Y29uc3QgY29tbWFuZEFyZ3M6IHN0cmluZ1tdID0gW1wid2ViYXBpXCIsIFwiLWRcIiwgXCIuXCJdO1xuXHRpZiAob3B0cy5kYXRhYmFzZVByb3ZpZGVyICE9IG51bGwpIHtcblx0XHRjb21tYW5kQXJncy5wdXNoKFwiLS1kYXRhYmFzZVwiLCBvcHRzLmRhdGFiYXNlUHJvdmlkZXIpO1xuXHR9XG5cdGlmIChvcHRzLmF1dGhQcm92aWRlciAhPSBudWxsKSB7XG5cdFx0Y29tbWFuZEFyZ3MucHVzaChcIi0tYXV0aFwiLCBvcHRzLmF1dGhQcm92aWRlcik7XG5cdH1cblx0aWYgKG9wdHMucG9zdG1hblByb3ZpZGVyICE9IG51bGwpIHtcblx0XHRjb21tYW5kQXJncy5wdXNoKFwiLS1wb3N0bWFuXCIsIG9wdHMucG9zdG1hblByb3ZpZGVyKTtcblx0fVxuXHRpZiAob3B0cy5pbnN0YWxsRGVwZW5kZW5jaWVzICE9IG51bGwpIHtcblx0XHRjb21tYW5kQXJncy5wdXNoKFwiLS1pbnN0YWxsXCIsIG9wdHMuaW5zdGFsbERlcGVuZGVuY2llcyk7XG5cdH1cblxuXHRjb25zb2xlLmxvZyhcIiAgUnVubmluZyBzY2FmZm9sZGluZyBpbiBhIHNhbmRib3hlZCBjb250YWluZXIuLi5cXG5cIik7XG5cblx0Ly8gT25seSBhbGxvY2F0ZSBhIFRUWSB3aGVuIHN0ZGluIGlzIGl0c2VsZiBhIFRUWSDigJQgYXZvaWRzIGEgaHVuZyBwcm9jZXNzXG5cdC8vIGluIG5vbi1pbnRlcmFjdGl2ZSBlbnZpcm9ubWVudHMgKHBpcGVzLCBDSSwgc2NyaXB0cykuXG5cdGNvbnN0IHR0eUZsYWdzID0gcHJvY2Vzcy5zdGRpbi5pc1RUWSA/IFtcIi1pdFwiXSA6IFtcIi1pXCJdO1xuXG5cdGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhcblx0XHRcImRvY2tlclwiLFxuXHRcdFtcblx0XHRcdFwicnVuXCIsXG5cdFx0XHRcIi0tcm1cIixcblx0XHRcdC4uLnR0eUZsYWdzLFxuXHRcdFx0Li4udm9sdW1lcyxcblx0XHRcdFwiLWVcIixcblx0XHRcdFwiREVDT0hFUkVfQlVJTERFUj0xXCIsXG5cdFx0XHRcIi1lXCIsXG5cdFx0XHRcIk5QTV9DT05GSUdfQ0FDSEU9L25wbS1jYWNoZVwiLFxuXHRcdFx0XCItZVwiLFxuXHRcdFx0XCJOUE1fQ09ORklHX1BSRUZFUl9PRkZMSU5FPXRydWVcIixcblx0XHRcdFwiLXdcIixcblx0XHRcdFwiL3dvcmtzcGFjZVwiLFxuXHRcdFx0QlVJTERFUl9JTUFHRSxcblx0XHRcdC4uLmNvbW1hbmRBcmdzLFxuXHRcdF0sXG5cdFx0eyBzdGRpbzogXCJpbmhlcml0XCIgfSxcblx0KTtcblxuXHRpZiAocmVzdWx0LnN0YXR1cyA9PT0gMCkge1xuXHRcdGNvbnNvbGUubG9nKGBcXG4gIFNjYWZmb2xkIGNvbXBsZXRlIVxcblxcbiAgT3BlbiB5b3VyIHByb2plY3Q6XFxuXFxuICAgIGNvZGUgJHt0YXJnZXREaXJ9XFxuYCk7XG5cdH1cblxuXHRwcm9jZXNzLmV4aXQocmVzdWx0LnN0YXR1cyA/PyAwKTtcbn1cbiJdLCJuYW1lcyI6WyJydW5JbkJ1aWxkZXIiLCJCVUlMREVSX0lNQUdFIiwiQ1JFQVRFX0lNQUdFX1JFUE9TSVRPUlkiLCJDUkVBVEVfVkVSU0lPTiIsIm9wdHMiLCJ0YXJnZXREaXIiLCJyZXNvbHZlIiwiZCIsIm1rZGlyU3luYyIsInJlY3Vyc2l2ZSIsImV4ZWNGaWxlU3luYyIsInN0ZGlvIiwiY29uc29sZSIsImVycm9yIiwicHJvY2VzcyIsImV4aXQiLCJ2b2x1bWVzIiwibnBtcmNQYXRoIiwiaG9tZWRpciIsImV4aXN0c1N5bmMiLCJwdXNoIiwiY29tbWFuZEFyZ3MiLCJkYXRhYmFzZVByb3ZpZGVyIiwiYXV0aFByb3ZpZGVyIiwicG9zdG1hblByb3ZpZGVyIiwiaW5zdGFsbERlcGVuZGVuY2llcyIsImxvZyIsInR0eUZsYWdzIiwic3RkaW4iLCJpc1RUWSIsInJlc3VsdCIsInNwYXduU3luYyIsInN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFtQmdCQTs7O2VBQUFBOzs7bUNBbkJ3Qjt3QkFDRjt3QkFDZDswQkFDQTt5QkFDZ0M7QUFHeEQsTUFBTUMsZ0JBQWdCLEdBQUdDLGdDQUF1QixDQUFDLENBQUMsRUFBRUMsdUJBQWMsRUFBRTtBQVk3RCxTQUFTSCxhQUFhSSxJQUFnQjtJQUM1QyxNQUFNQyxZQUFZQyxJQUFBQSxpQkFBTyxFQUFDRixLQUFLRyxDQUFDLElBQUk7SUFDcENDLElBQUFBLGlCQUFTLEVBQUNILFdBQVc7UUFBRUksV0FBVztJQUFLO0lBRXZDLDhCQUE4QjtJQUM5QixJQUFJO1FBQ0hDLElBQUFBLCtCQUFZLEVBQUMsVUFBVTtZQUFDO1NBQU8sRUFBRTtZQUFFQyxPQUFPO1FBQU87SUFDbEQsRUFBRSxPQUFNO1FBQ1BDLFFBQVFDLEtBQUssQ0FDWiw2REFDQztRQUVGQyxRQUFRQyxJQUFJLENBQUM7SUFDZDtJQUVBLE1BQU1DLFVBQW9CO1FBQUM7UUFBTSxHQUFHWCxVQUFVLFdBQVcsQ0FBQztRQUFFO1FBQU07S0FBYTtJQUUvRSxrRUFBa0U7SUFDbEUsTUFBTVksWUFBWVgsSUFBQUEsaUJBQU8sRUFBQ1ksSUFBQUEsZUFBTyxLQUFJO0lBQ3JDLElBQUlDLElBQUFBLGtCQUFVLEVBQUNGLFlBQVk7UUFDMUJELFFBQVFJLElBQUksQ0FBQyxNQUFNLEdBQUdILFVBQVUsZ0JBQWdCLENBQUM7SUFDbEQ7SUFFQSxNQUFNSSxjQUF3QjtRQUFDO1FBQVU7UUFBTTtLQUFJO0lBQ25ELElBQUlqQixLQUFLa0IsZ0JBQWdCLElBQUksTUFBTTtRQUNsQ0QsWUFBWUQsSUFBSSxDQUFDLGNBQWNoQixLQUFLa0IsZ0JBQWdCO0lBQ3JEO0lBQ0EsSUFBSWxCLEtBQUttQixZQUFZLElBQUksTUFBTTtRQUM5QkYsWUFBWUQsSUFBSSxDQUFDLFVBQVVoQixLQUFLbUIsWUFBWTtJQUM3QztJQUNBLElBQUluQixLQUFLb0IsZUFBZSxJQUFJLE1BQU07UUFDakNILFlBQVlELElBQUksQ0FBQyxhQUFhaEIsS0FBS29CLGVBQWU7SUFDbkQ7SUFDQSxJQUFJcEIsS0FBS3FCLG1CQUFtQixJQUFJLE1BQU07UUFDckNKLFlBQVlELElBQUksQ0FBQyxhQUFhaEIsS0FBS3FCLG1CQUFtQjtJQUN2RDtJQUVBYixRQUFRYyxHQUFHLENBQUM7SUFFWix5RUFBeUU7SUFDekUsd0RBQXdEO0lBQ3hELE1BQU1DLFdBQVdiLFFBQVFjLEtBQUssQ0FBQ0MsS0FBSyxHQUFHO1FBQUM7S0FBTSxHQUFHO1FBQUM7S0FBSztJQUV2RCxNQUFNQyxTQUFTQyxJQUFBQSw0QkFBUyxFQUN2QixVQUNBO1FBQ0M7UUFDQTtXQUNHSjtXQUNBWDtRQUNIO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQWY7V0FDR29CO0tBQ0gsRUFDRDtRQUFFVixPQUFPO0lBQVU7SUFHcEIsSUFBSW1CLE9BQU9FLE1BQU0sS0FBSyxHQUFHO1FBQ3hCcEIsUUFBUWMsR0FBRyxDQUFDLENBQUMsMkRBQTJELEVBQUVyQixVQUFVLEVBQUUsQ0FBQztJQUN4RjtJQUVBUyxRQUFRQyxJQUFJLENBQUNlLE9BQU9FLE1BQU0sSUFBSTtBQUMvQiJ9
|
|
@@ -54,18 +54,28 @@ function createWorkspace(targetDir) {
|
|
|
54
54
|
const monoRepo = new _projectmodel.MonoRepoScaffold();
|
|
55
55
|
monoRepo.targetDir = targetDir;
|
|
56
56
|
const name = monoRepo.name;
|
|
57
|
-
const compose = new _composemodel.DockerCompose().
|
|
57
|
+
const compose = new _composemodel.DockerCompose().setProjectName(name).addNetwork(name, {
|
|
58
|
+
name: `samples-${name}`
|
|
59
|
+
}).addService("devcontainer", {
|
|
58
60
|
build: ".",
|
|
59
61
|
volumes: [
|
|
60
|
-
|
|
62
|
+
// Workspace-local (created by initialize.sh as the host user).
|
|
63
|
+
// Do NOT bind ${HOME}/.npm/... — Docker creates missing host paths as root.
|
|
64
|
+
"./npm-auth:/home/node/.npm-config",
|
|
61
65
|
"webapi-node-modules:/workspace/node_modules"
|
|
62
66
|
],
|
|
63
67
|
environment: {
|
|
64
68
|
NPM_CONFIG_USERCONFIG: "/home/node/.npm-config/.npmrc"
|
|
65
69
|
},
|
|
66
|
-
command: "sleep infinity"
|
|
70
|
+
command: "sleep infinity",
|
|
71
|
+
networks: [
|
|
72
|
+
name
|
|
73
|
+
]
|
|
67
74
|
}).addVolume("webapi-node-modules");
|
|
68
|
-
const devContainer = new _devcontainermodel.DevContainer().addExtension("biomejs.biome", "vitest.explorer").
|
|
75
|
+
const devContainer = new _devcontainermodel.DevContainer().addExtension("biomejs.biome", "vitest.explorer").forwardPort(3000).setPortAttributes(3000, {
|
|
76
|
+
label: "API",
|
|
77
|
+
requireLocalPort: true
|
|
78
|
+
}).setInitializeCommand("bash .devcontainer/initialize.sh").setPostStartCommand("bash .devcontainer/post-start.sh").useCompose();
|
|
69
79
|
// Workspace-level models (repo root)
|
|
70
80
|
monoRepo.addModel(compose);
|
|
71
81
|
monoRepo.addModel(devContainer);
|
|
@@ -150,6 +160,56 @@ function createWorkspace(targetDir) {
|
|
|
150
160
|
{
|
|
151
161
|
filePath: ".env.local",
|
|
152
162
|
content: "# Set your npm access token here (created with: npm token create)\nNPM_TOKEN=\n"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
filePath: ".devcontainer/initialize.sh",
|
|
166
|
+
content: [
|
|
167
|
+
"#!/usr/bin/env bash",
|
|
168
|
+
"# Runs on the host before the container is created (devcontainer initializeCommand).",
|
|
169
|
+
"# Creates npm-auth as the host user so the bind mount is not root-owned.",
|
|
170
|
+
"set -euo pipefail",
|
|
171
|
+
"",
|
|
172
|
+
'root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"',
|
|
173
|
+
'npm_dir="$root/.devcontainer/npm-auth"',
|
|
174
|
+
'mkdir -p "$npm_dir"',
|
|
175
|
+
"",
|
|
176
|
+
'if [[ ! -f "$npm_dir/.npmrc" ]]; then',
|
|
177
|
+
'\tif [[ -f "${HOME}/.npmrc" ]]; then',
|
|
178
|
+
'\t\tcp -a "${HOME}/.npmrc" "$npm_dir/.npmrc"',
|
|
179
|
+
"\tfi",
|
|
180
|
+
"fi",
|
|
181
|
+
""
|
|
182
|
+
].join("\n")
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
filePath: ".devcontainer/post-start.sh",
|
|
186
|
+
content: [
|
|
187
|
+
"#!/usr/bin/env bash",
|
|
188
|
+
"# Runs on every container start (devcontainer postStartCommand).",
|
|
189
|
+
"set -euo pipefail",
|
|
190
|
+
"",
|
|
191
|
+
'AUTH_REGISTRY="https://registry.npmjs.org"',
|
|
192
|
+
"",
|
|
193
|
+
'if npm whoami --registry "$AUTH_REGISTRY" >/dev/null 2>&1; then',
|
|
194
|
+
'\techo "npm: logged in as $(npm whoami --registry "$AUTH_REGISTRY")"',
|
|
195
|
+
"\texit 0",
|
|
196
|
+
"fi",
|
|
197
|
+
"",
|
|
198
|
+
"if [[ -t 0 && -t 1 ]]; then",
|
|
199
|
+
'\techo "npm: not authenticated — starting login..."',
|
|
200
|
+
'\tnpm login --registry "$AUTH_REGISTRY"',
|
|
201
|
+
"\texit 0",
|
|
202
|
+
"fi",
|
|
203
|
+
"",
|
|
204
|
+
'echo "npm: not authenticated. Open a terminal and run: npm login" >&2',
|
|
205
|
+
'echo " (creds persist in .devcontainer/npm-auth/)" >&2',
|
|
206
|
+
"exit 1",
|
|
207
|
+
""
|
|
208
|
+
].join("\n")
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
filePath: ".devcontainer/npm-auth/.gitignore",
|
|
212
|
+
content: "*\n!.gitignore\n"
|
|
153
213
|
}
|
|
154
214
|
]
|
|
155
215
|
});
|
|
@@ -166,4 +226,4 @@ function createWorkspace(targetDir) {
|
|
|
166
226
|
return monoRepo;
|
|
167
227
|
}
|
|
168
228
|
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NyZWF0ZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERvY2tlckNvbXBvc2UgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB7IENvbmZpZ1lhbWwgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy15YW1sLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHsgRGV2Q29udGFpbmVyIH0gZnJvbSBcIi4uL21vZGVscy9kZXYtY29udGFpbmVyLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBFbnZGaWxlIH0gZnJvbSBcIi4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgR2l0aWdub3JlIH0gZnJvbSBcIi4uL21vZGVscy9naXRpZ25vcmUubW9kZWwuanNcIjtcbmltcG9ydCB7IExhdW5jaEpzb24gfSBmcm9tIFwiLi4vbW9kZWxzL2xhdW5jaC1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi9tb2RlbHMvcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBNb25vUmVwb1NjYWZmb2xkLCBQcm9qZWN0U2NhZmZvbGQgfSBmcm9tIFwiLi4vbW9kZWxzL3Byb2plY3QubW9kZWwuanNcIjtcbmltcG9ydCB7IFRzQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy90c2NvbmZpZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgVlNDb2RlU2V0dGluZ3MgfSBmcm9tIFwiLi4vbW9kZWxzL3ZzY29kZS1zZXR0aW5ncy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgU2NhZmZvbGRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEF1dGhGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvYXV0aC5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBEYXRhYmFzZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhYmFzZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBGaW5hbGl6ZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9maW5hbGl6ZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb3N0bWFuRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL3Bvc3RtYW4uZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgQXBpUGFja2FnZUpzb24gfSBmcm9tIFwiLi9tb2RlbHMvYXBpLXBhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQ29udHJvbGxlclNvdXJjZUZpbGUgfSBmcm9tIFwiLi9tb2RlbHMvY29udHJvbGxlci1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgTWFpblNvdXJjZUZpbGUgfSBmcm9tIFwiLi9tb2RlbHMvbWFpbi1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgU2FtcGxlQ29uZmlnTW9kZWwsIFNhbXBsZVNlcnZpY2VNb2RlbCB9IGZyb20gXCIuL21vZGVscy9zYW1wbGUtZmlsZXMubW9kZWwuanNcIjtcbmltcG9ydCB7IFdlYmFwaURldkNvbnRhaW5lciB9IGZyb20gXCIuL21vZGVscy93ZWJhcGktaW1hZ2UubW9kZWwuanNcIjtcblxuZXhwb3J0IGNvbnN0IFdFQkFQSV9QUk9KRUNUX0RJUiA9IFwicHJvamVjdHMvYXBpXCI7XG5cbmV4cG9ydCB0eXBlIEFwaU9wdGlvbnMgPSB7XG5cdGQ/OiBzdHJpbmc7XG5cdGF1dGhQcm92aWRlcj86IFwiYXV0aDBcIiB8IFwibm9uZVwiO1xuXHRkYXRhYmFzZVByb3ZpZGVyPzogXCJub25lXCIgfCBcInBvc3RncmVzL3R5cGVvcm1cIjtcblx0cG9zdG1hblByb3ZpZGVyPzogXCJhcGlcIiB8IFwibG9jYWxcIiB8IFwibm9uZVwiO1xuXHRpbnN0YWxsRGVwZW5kZW5jaWVzPzogXCJ5ZXNcIiB8IFwibm9cIjtcbn07XG5cbmNvbnN0IGZlYXR1cmVzID0gW0RhdGFiYXNlRmVhdHVyZSwgQXV0aEZlYXR1cmUsIFBvc3RtYW5GZWF0dXJlLCBGaW5hbGl6ZUZlYXR1cmVdO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2NhZmZvbGRBcGkoY2xpT3B0aW9uczogQXBpT3B0aW9ucykge1xuXHRjb25zdCB0YXJnZXREaXIgPSByZXNvbHZlKGNsaU9wdGlvbnMuZCA/PyBcIi5cIik7XG5cdGNvbnN0IHdvcmtzcGFjZSA9IGNyZWF0ZVdvcmtzcGFjZSh0YXJnZXREaXIpO1xuXHRhd2FpdCBTY2FmZm9sZFNlcnZpY2Uuc2NhZmZvbGQod29ya3NwYWNlLCBjbGlPcHRpb25zLCBmZWF0dXJlcyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZSh0YXJnZXREaXI6IHN0cmluZyk6IE1vbm9SZXBvU2NhZmZvbGQge1xuXHRjb25zdCBtb25vUmVwbyA9IG5ldyBNb25vUmVwb1NjYWZmb2xkKCk7XG5cdG1vbm9SZXBvLnRhcmdldERpciA9IHRhcmdldERpcjtcblx0Y29uc3QgbmFtZSA9IG1vbm9SZXBvLm5hbWU7XG5cblx0Y29uc3QgY29tcG9zZSA9IG5ldyBEb2NrZXJDb21wb3NlKClcblx0XHQuYWRkU2VydmljZShcImRldmNvbnRhaW5lclwiLCB7XG5cdFx0XHRidWlsZDogXCIuXCIsXG5cdFx0XHR2b2x1bWVzOiBbXG5cdFx0XHRcdGBcXCR7SE9NRX0vLm5wbS8ke25hbWV9Oi9ob21lL25vZGUvLm5wbS1jb25maWdgLFxuXHRcdFx0XHRcIndlYmFwaS1ub2RlLW1vZHVsZXM6L3dvcmtzcGFjZS9ub2RlX21vZHVsZXNcIixcblx0XHRcdF0sXG5cdFx0XHRlbnZpcm9ubWVudDogeyBOUE1fQ09ORklHX1VTRVJDT05GSUc6IFwiL2hvbWUvbm9kZS8ubnBtLWNvbmZpZy8ubnBtcmNcIiB9LFxuXHRcdFx0Y29tbWFuZDogXCJzbGVlcCBpbmZpbml0eVwiLFxuXHRcdH0pXG5cdFx0LmFkZFZvbHVtZShcIndlYmFwaS1ub2RlLW1vZHVsZXNcIik7XG5cblx0Y29uc3QgZGV2Q29udGFpbmVyID0gbmV3IERldkNvbnRhaW5lcigpXG5cdFx0LmFkZEV4dGVuc2lvbihcImJpb21lanMuYmlvbWVcIiwgXCJ2aXRlc3QuZXhwbG9yZXJcIilcblx0XHQuc2V0UG9zdFN0YXJ0Q29tbWFuZChcIm5wbSB3aG9hbWkgMj4vZGV2L251bGwgfHwgbnBtIGxvZ2luXCIpXG5cdFx0LnVzZUNvbXBvc2UoKTtcblxuXHQvLyBXb3Jrc3BhY2UtbGV2ZWwgbW9kZWxzIChyZXBvIHJvb3QpXG5cdG1vbm9SZXBvLmFkZE1vZGVsKGNvbXBvc2UpO1xuXHRtb25vUmVwby5hZGRNb2RlbChkZXZDb250YWluZXIpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgV2ViYXBpRGV2Q29udGFpbmVyKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgVlNDb2RlU2V0dGluZ3MobmFtZSkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgTGF1bmNoSnNvbigpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFRzQ29uZmlnKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgUGFja2FnZUpzb24oYCR7bmFtZX0uYXBpYCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgQ29uZmlnWWFtbChXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ZQU1MLCBcImNvbmZpZy9jb25maWcueWFtbFwiLCBcIlwiKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKFxuXHRcdG5ldyBDb25maWdZYW1sKFdFTExfS05PV05fRklMRVMuQ09ORklHX0RFVl9ZQU1MLCBcImNvbmZpZy9jb25maWcuZGV2LnlhbWxcIiwgXCJcIiksXG5cdCk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBHaXRpZ25vcmUoKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBFbnZGaWxlKCkpO1xuXG5cdC8vIEJpb21lIGZvcm1hdHRlci9saW50ZXIgY29uZmlnXG5cdG1vbm9SZXBvLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcImJpb21lLmpzb25cIixcblx0XHRcdFx0Y29udGVudDogSlNPTi5zdHJpbmdpZnkoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0JHNjaGVtYTogXCJodHRwczovL2Jpb21lanMuZGV2L3NjaGVtYXMvMi4wLjAvc2NoZW1hLmpzb25cIixcblx0XHRcdFx0XHRcdGZpbGVzOiB7XG5cdFx0XHRcdFx0XHRcdGluY2x1ZGVzOiBbXCIqKi8qLnRzXCIsIFwiKiovKi5qc1wiLCBcIioqLyouanNvblwiLCBcIioqLyoueW1sXCIsIFwiKiovKi55YW1sXCJdLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGFzc2lzdDogeyBhY3Rpb25zOiB7IHNvdXJjZTogeyBvcmdhbml6ZUltcG9ydHM6IFwib25cIiB9IH0gfSxcblx0XHRcdFx0XHRcdHZjczogeyBlbmFibGVkOiB0cnVlLCBjbGllbnRLaW5kOiBcImdpdFwiLCB1c2VJZ25vcmVGaWxlOiB0cnVlIH0sXG5cdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IHtcblx0XHRcdFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0Zm9ybWF0V2l0aEVycm9yczogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0aW5kZW50U3R5bGU6IFwidGFiXCIsXG5cdFx0XHRcdFx0XHRcdGxpbmVXaWR0aDogOTUsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0amF2YXNjcmlwdDogeyBwYXJzZXI6IHsgdW5zYWZlUGFyYW1ldGVyRGVjb3JhdG9yc0VuYWJsZWQ6IHRydWUgfSB9LFxuXHRcdFx0XHRcdFx0bGludGVyOiB7XG5cdFx0XHRcdFx0XHRcdHJ1bGVzOiB7XG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHVzZUNvbnNpc3RlbnRNZW1iZXJBY2Nlc3NpYmlsaXR5OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxldmVsOiBcImVycm9yXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnM6IHsgYWNjZXNzaWJpbGl0eTogXCJleHBsaWNpdFwiIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b3ZlcnJpZGVzOiBbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpbmNsdWRlczogW1wiKiovKi5qc29uXCJdLFxuXHRcdFx0XHRcdFx0XHRcdGZvcm1hdHRlcjogeyBpbmRlbnRTdHlsZTogXCJzcGFjZVwiLCBpbmRlbnRXaWR0aDogMiB9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0Mixcblx0XHRcdFx0KSxcblx0XHRcdH0sXG5cdFx0XSxcblx0fSk7XG5cblx0Ly8gTlBNIHRva2VuIHBsYWNlaG9sZGVyIOKAlCBnaXRpZ25vcmVkLCBzZXQgbWFudWFsbHkgYWZ0ZXIgc2NhZmZvbGRcblx0bW9ub1JlcG8uYWRkRmlsZSh7XG5cdFx0ZmlsZXM6ICgpID0+IFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiLmVudi5sb2NhbFwiLFxuXHRcdFx0XHRjb250ZW50OlxuXHRcdFx0XHRcdFwiIyBTZXQgeW91ciBucG0gYWNjZXNzIHRva2VuIGhlcmUgKGNyZWF0ZWQgd2l0aDogbnBtIHRva2VuIGNyZWF0ZSlcXG5OUE1fVE9LRU49XFxuXCIsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdC8vIFByb2plY3QtbGV2ZWwgbW9kZWxzIChwYXRocyByZWxhdGl2ZSB0byBwcm9qZWN0cy9hcGkpXG5cdGNvbnN0IGFwaVByb2plY3QgPSBuZXcgUHJvamVjdFNjYWZmb2xkKFdFQkFQSV9QUk9KRUNUX0RJUik7XG5cdGFwaVByb2plY3QuYWRkTW9kZWwobmV3IEFwaVBhY2thZ2VKc29uKG5hbWUpKTtcblx0YXBpUHJvamVjdC5hZGRNb2RlbChuZXcgTWFpblNvdXJjZUZpbGUoYCR7bmFtZX0uYXBpYCkpO1xuXHRhcGlQcm9qZWN0LmFkZE1vZGVsKG5ldyBDb250cm9sbGVyU291cmNlRmlsZSgpKTtcblxuXHQvLyBTYW1wbGVTZXJ2aWNlICsgU2FtcGxlQ29uZmlnIGFyZSBwYXJ0IG9mIHRoZSBjb3JlIHNjYWZmb2xkIOKAlCBIZWxsb0NvbnRyb2xsZXJcblx0Ly8gaW5qZWN0cyBTYW1wbGVTZXJ2aWNlIHRvIGRlbW9uc3RyYXRlIGNvbmZpZy1kcml2ZW4gYmVoYXZpb3VyIG91dCBvZiB0aGUgYm94LlxuXHRhcGlQcm9qZWN0LmFkZEZpbGUobmV3IFNhbXBsZUNvbmZpZ01vZGVsKCkpO1xuXHRhcGlQcm9qZWN0LmFkZEZpbGUobmV3IFNhbXBsZVNlcnZpY2VNb2RlbCgpKTtcblxuXHRtb25vUmVwby5hZGRQcm9qZWN0KGFwaVByb2plY3QpO1xuXG5cdHJldHVybiBtb25vUmVwbztcbn1cbiJdLCJuYW1lcyI6WyJXRUJBUElfUFJPSkVDVF9ESVIiLCJzY2FmZm9sZEFwaSIsImZlYXR1cmVzIiwiRGF0YWJhc2VGZWF0dXJlIiwiQXV0aEZlYXR1cmUiLCJQb3N0bWFuRmVhdHVyZSIsIkZpbmFsaXplRmVhdHVyZSIsImNsaU9wdGlvbnMiLCJ0YXJnZXREaXIiLCJyZXNvbHZlIiwiZCIsIndvcmtzcGFjZSIsImNyZWF0ZVdvcmtzcGFjZSIsIlNjYWZmb2xkU2VydmljZSIsInNjYWZmb2xkIiwibW9ub1JlcG8iLCJNb25vUmVwb1NjYWZmb2xkIiwibmFtZSIsImNvbXBvc2UiLCJEb2NrZXJDb21wb3NlIiwiYWRkU2VydmljZSIsImJ1aWxkIiwidm9sdW1lcyIsImVudmlyb25tZW50IiwiTlBNX0NPTkZJR19VU0VSQ09ORklHIiwiY29tbWFuZCIsImFkZFZvbHVtZSIsImRldkNvbnRhaW5lciIsIkRldkNvbnRhaW5lciIsImFkZEV4dGVuc2lvbiIsInNldFBvc3RTdGFydENvbW1hbmQiLCJ1c2VDb21wb3NlIiwiYWRkTW9kZWwiLCJXZWJhcGlEZXZDb250YWluZXIiLCJWU0NvZGVTZXR0aW5ncyIsIkxhdW5jaEpzb24iLCJUc0NvbmZpZyIsIlBhY2thZ2VKc29uIiwiQ29uZmlnWWFtbCIsIldFTExfS05PV05fRklMRVMiLCJDT05GSUdfWUFNTCIsIkNPTkZJR19ERVZfWUFNTCIsIkdpdGlnbm9yZSIsIkVudkZpbGUiLCJhZGRGaWxlIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwiJHNjaGVtYSIsImluY2x1ZGVzIiwiYXNzaXN0IiwiYWN0aW9ucyIsInNvdXJjZSIsIm9yZ2FuaXplSW1wb3J0cyIsInZjcyIsImVuYWJsZWQiLCJjbGllbnRLaW5kIiwidXNlSWdub3JlRmlsZSIsImZvcm1hdHRlciIsImZvcm1hdFdpdGhFcnJvcnMiLCJpbmRlbnRTdHlsZSIsImxpbmVXaWR0aCIsImphdmFzY3JpcHQiLCJwYXJzZXIiLCJ1bnNhZmVQYXJhbWV0ZXJEZWNvcmF0b3JzRW5hYmxlZCIsImxpbnRlciIsInJ1bGVzIiwic3R5bGUiLCJ1c2VDb25zaXN0ZW50TWVtYmVyQWNjZXNzaWJpbGl0eSIsImxldmVsIiwib3B0aW9ucyIsImFjY2Vzc2liaWxpdHkiLCJvdmVycmlkZXMiLCJpbmRlbnRXaWR0aCIsImFwaVByb2plY3QiLCJQcm9qZWN0U2NhZmZvbGQiLCJBcGlQYWNrYWdlSnNvbiIsIk1haW5Tb3VyY2VGaWxlIiwiQ29udHJvbGxlclNvdXJjZUZpbGUiLCJTYW1wbGVDb25maWdNb2RlbCIsIlNhbXBsZVNlcnZpY2VNb2RlbCIsImFkZFByb2plY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBdUJhQTtlQUFBQTs7UUFZU0M7ZUFBQUE7OzswQkFuQ0U7OEJBQ007aUNBQ0g7dUJBQ007bUNBQ0o7OEJBQ0w7Z0NBQ0U7aUNBQ0M7a0NB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
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NyZWF0ZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERvY2tlckNvbXBvc2UgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB7IENvbmZpZ1lhbWwgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy15YW1sLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHsgRGV2Q29udGFpbmVyIH0gZnJvbSBcIi4uL21vZGVscy9kZXYtY29udGFpbmVyLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBFbnZGaWxlIH0gZnJvbSBcIi4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgR2l0aWdub3JlIH0gZnJvbSBcIi4uL21vZGVscy9naXRpZ25vcmUubW9kZWwuanNcIjtcbmltcG9ydCB7IExhdW5jaEpzb24gfSBmcm9tIFwiLi4vbW9kZWxzL2xhdW5jaC1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi9tb2RlbHMvcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBNb25vUmVwb1NjYWZmb2xkLCBQcm9qZWN0U2NhZmZvbGQgfSBmcm9tIFwiLi4vbW9kZWxzL3Byb2plY3QubW9kZWwuanNcIjtcbmltcG9ydCB7IFRzQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy90c2NvbmZpZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgVlNDb2RlU2V0dGluZ3MgfSBmcm9tIFwiLi4vbW9kZWxzL3ZzY29kZS1zZXR0aW5ncy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgU2NhZmZvbGRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEF1dGhGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvYXV0aC5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBEYXRhYmFzZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhYmFzZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBGaW5hbGl6ZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9maW5hbGl6ZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb3N0bWFuRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL3Bvc3RtYW4uZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgQXBpUGFja2FnZUpzb24gfSBmcm9tIFwiLi9tb2RlbHMvYXBpLXBhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQ29udHJvbGxlclNvdXJjZUZpbGUgfSBmcm9tIFwiLi9tb2RlbHMvY29udHJvbGxlci1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgTWFpblNvdXJjZUZpbGUgfSBmcm9tIFwiLi9tb2RlbHMvbWFpbi1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgU2FtcGxlQ29uZmlnTW9kZWwsIFNhbXBsZVNlcnZpY2VNb2RlbCB9IGZyb20gXCIuL21vZGVscy9zYW1wbGUtZmlsZXMubW9kZWwuanNcIjtcbmltcG9ydCB7IFdlYmFwaURldkNvbnRhaW5lciB9IGZyb20gXCIuL21vZGVscy93ZWJhcGktaW1hZ2UubW9kZWwuanNcIjtcblxuZXhwb3J0IGNvbnN0IFdFQkFQSV9QUk9KRUNUX0RJUiA9IFwicHJvamVjdHMvYXBpXCI7XG5cbmV4cG9ydCB0eXBlIEFwaU9wdGlvbnMgPSB7XG5cdGQ/OiBzdHJpbmc7XG5cdGF1dGhQcm92aWRlcj86IFwiYXV0aDBcIiB8IFwibm9uZVwiO1xuXHRkYXRhYmFzZVByb3ZpZGVyPzogXCJub25lXCIgfCBcInBvc3RncmVzL3R5cGVvcm1cIjtcblx0cG9zdG1hblByb3ZpZGVyPzogXCJhcGlcIiB8IFwibG9jYWxcIiB8IFwibm9uZVwiO1xuXHRpbnN0YWxsRGVwZW5kZW5jaWVzPzogXCJ5ZXNcIiB8IFwibm9cIjtcbn07XG5cbmNvbnN0IGZlYXR1cmVzID0gW0RhdGFiYXNlRmVhdHVyZSwgQXV0aEZlYXR1cmUsIFBvc3RtYW5GZWF0dXJlLCBGaW5hbGl6ZUZlYXR1cmVdO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2NhZmZvbGRBcGkoY2xpT3B0aW9uczogQXBpT3B0aW9ucykge1xuXHRjb25zdCB0YXJnZXREaXIgPSByZXNvbHZlKGNsaU9wdGlvbnMuZCA/PyBcIi5cIik7XG5cdGNvbnN0IHdvcmtzcGFjZSA9IGNyZWF0ZVdvcmtzcGFjZSh0YXJnZXREaXIpO1xuXHRhd2FpdCBTY2FmZm9sZFNlcnZpY2Uuc2NhZmZvbGQod29ya3NwYWNlLCBjbGlPcHRpb25zLCBmZWF0dXJlcyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZSh0YXJnZXREaXI6IHN0cmluZyk6IE1vbm9SZXBvU2NhZmZvbGQge1xuXHRjb25zdCBtb25vUmVwbyA9IG5ldyBNb25vUmVwb1NjYWZmb2xkKCk7XG5cdG1vbm9SZXBvLnRhcmdldERpciA9IHRhcmdldERpcjtcblx0Y29uc3QgbmFtZSA9IG1vbm9SZXBvLm5hbWU7XG5cblx0Y29uc3QgY29tcG9zZSA9IG5ldyBEb2NrZXJDb21wb3NlKClcblx0XHQuc2V0UHJvamVjdE5hbWUobmFtZSlcblx0XHQuYWRkTmV0d29yayhuYW1lLCB7IG5hbWU6IGBzYW1wbGVzLSR7bmFtZX1gIH0pXG5cdFx0LmFkZFNlcnZpY2UoXCJkZXZjb250YWluZXJcIiwge1xuXHRcdFx0YnVpbGQ6IFwiLlwiLFxuXHRcdFx0dm9sdW1lczogW1xuXHRcdFx0XHQvLyBXb3Jrc3BhY2UtbG9jYWwgKGNyZWF0ZWQgYnkgaW5pdGlhbGl6ZS5zaCBhcyB0aGUgaG9zdCB1c2VyKS5cblx0XHRcdFx0Ly8gRG8gTk9UIGJpbmQgJHtIT01FfS8ubnBtLy4uLiDigJQgRG9ja2VyIGNyZWF0ZXMgbWlzc2luZyBob3N0IHBhdGhzIGFzIHJvb3QuXG5cdFx0XHRcdFwiLi9ucG0tYXV0aDovaG9tZS9ub2RlLy5ucG0tY29uZmlnXCIsXG5cdFx0XHRcdFwid2ViYXBpLW5vZGUtbW9kdWxlczovd29ya3NwYWNlL25vZGVfbW9kdWxlc1wiLFxuXHRcdFx0XSxcblx0XHRcdGVudmlyb25tZW50OiB7IE5QTV9DT05GSUdfVVNFUkNPTkZJRzogXCIvaG9tZS9ub2RlLy5ucG0tY29uZmlnLy5ucG1yY1wiIH0sXG5cdFx0XHRjb21tYW5kOiBcInNsZWVwIGluZmluaXR5XCIsXG5cdFx0XHRuZXR3b3JrczogW25hbWVdLFxuXHRcdH0pXG5cdFx0LmFkZFZvbHVtZShcIndlYmFwaS1ub2RlLW1vZHVsZXNcIik7XG5cblx0Y29uc3QgZGV2Q29udGFpbmVyID0gbmV3IERldkNvbnRhaW5lcigpXG5cdFx0LmFkZEV4dGVuc2lvbihcImJpb21lanMuYmlvbWVcIiwgXCJ2aXRlc3QuZXhwbG9yZXJcIilcblx0XHQuZm9yd2FyZFBvcnQoMzAwMClcblx0XHQuc2V0UG9ydEF0dHJpYnV0ZXMoMzAwMCwgeyBsYWJlbDogXCJBUElcIiwgcmVxdWlyZUxvY2FsUG9ydDogdHJ1ZSB9KVxuXHRcdC5zZXRJbml0aWFsaXplQ29tbWFuZChcImJhc2ggLmRldmNvbnRhaW5lci9pbml0aWFsaXplLnNoXCIpXG5cdFx0LnNldFBvc3RTdGFydENvbW1hbmQoXCJiYXNoIC5kZXZjb250YWluZXIvcG9zdC1zdGFydC5zaFwiKVxuXHRcdC51c2VDb21wb3NlKCk7XG5cblx0Ly8gV29ya3NwYWNlLWxldmVsIG1vZGVscyAocmVwbyByb290KVxuXHRtb25vUmVwby5hZGRNb2RlbChjb21wb3NlKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwoZGV2Q29udGFpbmVyKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFdlYmFwaURldkNvbnRhaW5lcigpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFZTQ29kZVNldHRpbmdzKG5hbWUpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IExhdW5jaEpzb24oKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBUc0NvbmZpZygpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFBhY2thZ2VKc29uKGAke25hbWV9LmFwaWApKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IENvbmZpZ1lhbWwoV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTCwgXCJjb25maWcvY29uZmlnLnlhbWxcIiwgXCJcIikpO1xuXHRtb25vUmVwby5hZGRNb2RlbChcblx0XHRuZXcgQ29uZmlnWWFtbChXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ERVZfWUFNTCwgXCJjb25maWcvY29uZmlnLmRldi55YW1sXCIsIFwiXCIpLFxuXHQpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgR2l0aWdub3JlKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgRW52RmlsZSgpKTtcblxuXHQvLyBCaW9tZSBmb3JtYXR0ZXIvbGludGVyIGNvbmZpZ1xuXHRtb25vUmVwby5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJiaW9tZS5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdCRzY2hlbWE6IFwiaHR0cHM6Ly9iaW9tZWpzLmRldi9zY2hlbWFzLzIuMC4wL3NjaGVtYS5qc29uXCIsXG5cdFx0XHRcdFx0XHRmaWxlczoge1xuXHRcdFx0XHRcdFx0XHRpbmNsdWRlczogW1wiKiovKi50c1wiLCBcIioqLyouanNcIiwgXCIqKi8qLmpzb25cIiwgXCIqKi8qLnltbFwiLCBcIioqLyoueWFtbFwiXSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRhc3Npc3Q6IHsgYWN0aW9uczogeyBzb3VyY2U6IHsgb3JnYW5pemVJbXBvcnRzOiBcIm9uXCIgfSB9IH0sXG5cdFx0XHRcdFx0XHR2Y3M6IHsgZW5hYmxlZDogdHJ1ZSwgY2xpZW50S2luZDogXCJnaXRcIiwgdXNlSWdub3JlRmlsZTogdHJ1ZSB9LFxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiB7XG5cdFx0XHRcdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGZvcm1hdFdpdGhFcnJvcnM6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGluZGVudFN0eWxlOiBcInRhYlwiLFxuXHRcdFx0XHRcdFx0XHRsaW5lV2lkdGg6IDk1LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGphdmFzY3JpcHQ6IHsgcGFyc2VyOiB7IHVuc2FmZVBhcmFtZXRlckRlY29yYXRvcnNFbmFibGVkOiB0cnVlIH0gfSxcblx0XHRcdFx0XHRcdGxpbnRlcjoge1xuXHRcdFx0XHRcdFx0XHRydWxlczoge1xuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1c2VDb25zaXN0ZW50TWVtYmVyQWNjZXNzaWJpbGl0eToge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsZXZlbDogXCJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7IGFjY2Vzc2liaWxpdHk6IFwiZXhwbGljaXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG92ZXJyaWRlczogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0aW5jbHVkZXM6IFtcIioqLyouanNvblwiXSxcblx0XHRcdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IHsgaW5kZW50U3R5bGU6IFwic3BhY2VcIiwgaW5kZW50V2lkdGg6IDIgfSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdC8vIE5QTSB0b2tlbiBwbGFjZWhvbGRlciDigJQgZ2l0aWdub3JlZCwgc2V0IG1hbnVhbGx5IGFmdGVyIHNjYWZmb2xkXG5cdG1vbm9SZXBvLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5lbnYubG9jYWxcIixcblx0XHRcdFx0Y29udGVudDpcblx0XHRcdFx0XHRcIiMgU2V0IHlvdXIgbnBtIGFjY2VzcyB0b2tlbiBoZXJlIChjcmVhdGVkIHdpdGg6IG5wbSB0b2tlbiBjcmVhdGUpXFxuTlBNX1RPS0VOPVxcblwiLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiLmRldmNvbnRhaW5lci9pbml0aWFsaXplLnNoXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFtcblx0XHRcdFx0XHRcIiMhL3Vzci9iaW4vZW52IGJhc2hcIixcblx0XHRcdFx0XHRcIiMgUnVucyBvbiB0aGUgaG9zdCBiZWZvcmUgdGhlIGNvbnRhaW5lciBpcyBjcmVhdGVkIChkZXZjb250YWluZXIgaW5pdGlhbGl6ZUNvbW1hbmQpLlwiLFxuXHRcdFx0XHRcdFwiIyBDcmVhdGVzIG5wbS1hdXRoIGFzIHRoZSBob3N0IHVzZXIgc28gdGhlIGJpbmQgbW91bnQgaXMgbm90IHJvb3Qtb3duZWQuXCIsXG5cdFx0XHRcdFx0XCJzZXQgLWV1byBwaXBlZmFpbFwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J3Jvb3Q9XCIkKGNkIFwiJChkaXJuYW1lIFwiJHtCQVNIX1NPVVJDRVswXX1cIikvLi5cIiAmJiBwd2QpXCInLFxuXHRcdFx0XHRcdCducG1fZGlyPVwiJHJvb3QvLmRldmNvbnRhaW5lci9ucG0tYXV0aFwiJyxcblx0XHRcdFx0XHQnbWtkaXIgLXAgXCIkbnBtX2RpclwiJyxcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdCdpZiBbWyAhIC1mIFwiJG5wbV9kaXIvLm5wbXJjXCIgXV07IHRoZW4nLFxuXHRcdFx0XHRcdCdcXHRpZiBbWyAtZiBcIiR7SE9NRX0vLm5wbXJjXCIgXV07IHRoZW4nLFxuXHRcdFx0XHRcdCdcXHRcXHRjcCAtYSBcIiR7SE9NRX0vLm5wbXJjXCIgXCIkbnBtX2Rpci8ubnBtcmNcIicsXG5cdFx0XHRcdFx0XCJcXHRmaVwiLFxuXHRcdFx0XHRcdFwiZmlcIixcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRdLmpvaW4oXCJcXG5cIiksXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZGV2Y29udGFpbmVyL3Bvc3Qtc3RhcnQuc2hcIixcblx0XHRcdFx0Y29udGVudDogW1xuXHRcdFx0XHRcdFwiIyEvdXNyL2Jpbi9lbnYgYmFzaFwiLFxuXHRcdFx0XHRcdFwiIyBSdW5zIG9uIGV2ZXJ5IGNvbnRhaW5lciBzdGFydCAoZGV2Y29udGFpbmVyIHBvc3RTdGFydENvbW1hbmQpLlwiLFxuXHRcdFx0XHRcdFwic2V0IC1ldW8gcGlwZWZhaWxcIixcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdCdBVVRIX1JFR0lTVFJZPVwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmdcIicsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XHQnaWYgbnBtIHdob2FtaSAtLXJlZ2lzdHJ5IFwiJEFVVEhfUkVHSVNUUllcIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4nLFxuXHRcdFx0XHRcdCdcXHRlY2hvIFwibnBtOiBsb2dnZWQgaW4gYXMgJChucG0gd2hvYW1pIC0tcmVnaXN0cnkgXCIkQVVUSF9SRUdJU1RSWVwiKVwiJyxcblx0XHRcdFx0XHRcIlxcdGV4aXQgMFwiLFxuXHRcdFx0XHRcdFwiZmlcIixcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdFwiaWYgW1sgLXQgMCAmJiAtdCAxIF1dOyB0aGVuXCIsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCJucG06IG5vdCBhdXRoZW50aWNhdGVkIOKAlCBzdGFydGluZyBsb2dpbi4uLlwiJyxcblx0XHRcdFx0XHQnXFx0bnBtIGxvZ2luIC0tcmVnaXN0cnkgXCIkQVVUSF9SRUdJU1RSWVwiJyxcblx0XHRcdFx0XHRcIlxcdGV4aXQgMFwiLFxuXHRcdFx0XHRcdFwiZmlcIixcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdCdlY2hvIFwibnBtOiBub3QgYXV0aGVudGljYXRlZC4gT3BlbiBhIHRlcm1pbmFsIGFuZCBydW46IG5wbSBsb2dpblwiID4mMicsXG5cdFx0XHRcdFx0J2VjaG8gXCIgICAgKGNyZWRzIHBlcnNpc3QgaW4gLmRldmNvbnRhaW5lci9ucG0tYXV0aC8pXCIgPiYyJyxcblx0XHRcdFx0XHRcImV4aXQgMVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdF0uam9pbihcIlxcblwiKSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvbnBtLWF1dGgvLmdpdGlnbm9yZVwiLFxuXHRcdFx0XHRjb250ZW50OiBcIipcXG4hLmdpdGlnbm9yZVxcblwiLFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcblxuXHQvLyBQcm9qZWN0LWxldmVsIG1vZGVscyAocGF0aHMgcmVsYXRpdmUgdG8gcHJvamVjdHMvYXBpKVxuXHRjb25zdCBhcGlQcm9qZWN0ID0gbmV3IFByb2plY3RTY2FmZm9sZChXRUJBUElfUFJPSkVDVF9ESVIpO1xuXHRhcGlQcm9qZWN0LmFkZE1vZGVsKG5ldyBBcGlQYWNrYWdlSnNvbihuYW1lKSk7XG5cdGFwaVByb2plY3QuYWRkTW9kZWwobmV3IE1haW5Tb3VyY2VGaWxlKGAke25hbWV9LmFwaWApKTtcblx0YXBpUHJvamVjdC5hZGRNb2RlbChuZXcgQ29udHJvbGxlclNvdXJjZUZpbGUoKSk7XG5cblx0Ly8gU2FtcGxlU2VydmljZSArIFNhbXBsZUNvbmZpZyBhcmUgcGFydCBvZiB0aGUgY29yZSBzY2FmZm9sZCDigJQgSGVsbG9Db250cm9sbGVyXG5cdC8vIGluamVjdHMgU2FtcGxlU2VydmljZSB0byBkZW1vbnN0cmF0ZSBjb25maWctZHJpdmVuIGJlaGF2aW91ciBvdXQgb2YgdGhlIGJveC5cblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVDb25maWdNb2RlbCgpKTtcblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVTZXJ2aWNlTW9kZWwoKSk7XG5cblx0bW9ub1JlcG8uYWRkUHJvamVjdChhcGlQcm9qZWN0KTtcblxuXHRyZXR1cm4gbW9ub1JlcG87XG59XG4iXSwibmFtZXMiOlsiV0VCQVBJX1BST0pFQ1RfRElSIiwic2NhZmZvbGRBcGkiLCJmZWF0dXJlcyIsIkRhdGFiYXNlRmVhdHVyZSIsIkF1dGhGZWF0dXJlIiwiUG9zdG1hbkZlYXR1cmUiLCJGaW5hbGl6ZUZlYXR1cmUiLCJjbGlPcHRpb25zIiwidGFyZ2V0RGlyIiwicmVzb2x2ZSIsImQiLCJ3b3Jrc3BhY2UiLCJjcmVhdGVXb3Jrc3BhY2UiLCJTY2FmZm9sZFNlcnZpY2UiLCJzY2FmZm9sZCIsIm1vbm9SZXBvIiwiTW9ub1JlcG9TY2FmZm9sZCIsIm5hbWUiLCJjb21wb3NlIiwiRG9ja2VyQ29tcG9zZSIsInNldFByb2plY3ROYW1lIiwiYWRkTmV0d29yayIsImFkZFNlcnZpY2UiLCJidWlsZCIsInZvbHVtZXMiLCJlbnZpcm9ubWVudCIsIk5QTV9DT05GSUdfVVNFUkNPTkZJRyIsImNvbW1hbmQiLCJuZXR3b3JrcyIsImFkZFZvbHVtZSIsImRldkNvbnRhaW5lciIsIkRldkNvbnRhaW5lciIsImFkZEV4dGVuc2lvbiIsImZvcndhcmRQb3J0Iiwic2V0UG9ydEF0dHJpYnV0ZXMiLCJsYWJlbCIsInJlcXVpcmVMb2NhbFBvcnQiLCJzZXRJbml0aWFsaXplQ29tbWFuZCIsInNldFBvc3RTdGFydENvbW1hbmQiLCJ1c2VDb21wb3NlIiwiYWRkTW9kZWwiLCJXZWJhcGlEZXZDb250YWluZXIiLCJWU0NvZGVTZXR0aW5ncyIsIkxhdW5jaEpzb24iLCJUc0NvbmZpZyIsIlBhY2thZ2VKc29uIiwiQ29uZmlnWWFtbCIsIldFTExfS05PV05fRklMRVMiLCJDT05GSUdfWUFNTCIsIkNPTkZJR19ERVZfWUFNTCIsIkdpdGlnbm9yZSIsIkVudkZpbGUiLCJhZGRGaWxlIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwiJHNjaGVtYSIsImluY2x1ZGVzIiwiYXNzaXN0IiwiYWN0aW9ucyIsInNvdXJjZSIsIm9yZ2FuaXplSW1wb3J0cyIsInZjcyIsImVuYWJsZWQiLCJjbGllbnRLaW5kIiwidXNlSWdub3JlRmlsZSIsImZvcm1hdHRlciIsImZvcm1hdFdpdGhFcnJvcnMiLCJpbmRlbnRTdHlsZSIsImxpbmVXaWR0aCIsImphdmFzY3JpcHQiLCJwYXJzZXIiLCJ1bnNhZmVQYXJhbWV0ZXJEZWNvcmF0b3JzRW5hYmxlZCIsImxpbnRlciIsInJ1bGVzIiwic3R5bGUiLCJ1c2VDb25zaXN0ZW50TWVtYmVyQWNjZXNzaWJpbGl0eSIsImxldmVsIiwib3B0aW9ucyIsImFjY2Vzc2liaWxpdHkiLCJvdmVycmlkZXMiLCJpbmRlbnRXaWR0aCIsImpvaW4iLCJhcGlQcm9qZWN0IiwiUHJvamVjdFNjYWZmb2xkIiwiQXBpUGFja2FnZUpzb24iLCJNYWluU291cmNlRmlsZSIsIkNvbnRyb2xsZXJTb3VyY2VGaWxlIiwiU2FtcGxlQ29uZmlnTW9kZWwiLCJTYW1wbGVTZXJ2aWNlTW9kZWwiLCJhZGRQcm9qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXVCYUE7ZUFBQUE7O1FBWVNDO2VBQUFBOzs7MEJBbkNFOzhCQUNNO2lDQUNIO3VCQUNNO21DQUNKOzhCQUNMO2dDQUNFO2lDQUNDO2tDQUNDOzhCQUNzQjsrQkFDekI7cUNBQ007aUNBQ0M7NkJBQ0o7aUNBQ0k7aUNBQ0E7Z0NBQ0Q7cUNBQ0E7MkNBQ007cUNBQ047a0NBQ3VCO2tDQUNuQjtBQUU1QixNQUFNRCxxQkFBcUI7QUFVbEMsTUFBTUUsV0FBVztJQUFDQyxnQ0FBZTtJQUFFQyx3QkFBVztJQUFFQyw4QkFBYztJQUFFQyxnQ0FBZTtDQUFDO0FBRXpFLGVBQWVMLFlBQVlNLFVBQXNCO0lB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
|