@01/launcher 1.0.15 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +102 -303
- package/package.json +21 -15
- package/dist/index.d.ts +0 -1
- package/dist/launch-base.d.ts +0 -14
- package/dist/terminal.d.ts +0 -4
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,310 +1,109 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/***/ "minimist":
|
|
30
|
-
/***/ ((module) => {
|
|
31
|
-
|
|
32
|
-
module.exports = require("minimist");
|
|
33
|
-
|
|
34
|
-
/***/ })
|
|
35
|
-
|
|
36
|
-
/******/ });
|
|
37
|
-
/************************************************************************/
|
|
38
|
-
/******/ // The module cache
|
|
39
|
-
/******/ var __webpack_module_cache__ = {};
|
|
40
|
-
/******/
|
|
41
|
-
/******/ // The require function
|
|
42
|
-
/******/ function __webpack_require__(moduleId) {
|
|
43
|
-
/******/ // Check if module is in cache
|
|
44
|
-
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
45
|
-
/******/ if (cachedModule !== undefined) {
|
|
46
|
-
/******/ return cachedModule.exports;
|
|
47
|
-
/******/ }
|
|
48
|
-
/******/ // Create a new module (and put it into the cache)
|
|
49
|
-
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
50
|
-
/******/ // no module.id needed
|
|
51
|
-
/******/ // no module.loaded needed
|
|
52
|
-
/******/ exports: {}
|
|
53
|
-
/******/ };
|
|
54
|
-
/******/
|
|
55
|
-
/******/ // Execute the module function
|
|
56
|
-
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
57
|
-
/******/
|
|
58
|
-
/******/ // Return the exports of the module
|
|
59
|
-
/******/ return module.exports;
|
|
60
|
-
/******/ }
|
|
61
|
-
/******/
|
|
62
|
-
/************************************************************************/
|
|
63
|
-
/******/ /* webpack/runtime/define property getters */
|
|
64
|
-
/******/ (() => {
|
|
65
|
-
/******/ // define getter functions for harmony exports
|
|
66
|
-
/******/ __webpack_require__.d = (exports, definition) => {
|
|
67
|
-
/******/ for(var key in definition) {
|
|
68
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
69
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
70
|
-
/******/ }
|
|
71
|
-
/******/ }
|
|
72
|
-
/******/ };
|
|
73
|
-
/******/ })();
|
|
74
|
-
/******/
|
|
75
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
76
|
-
/******/ (() => {
|
|
77
|
-
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
78
|
-
/******/ })();
|
|
79
|
-
/******/
|
|
80
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
81
|
-
/******/ (() => {
|
|
82
|
-
/******/ // define __esModule on exports
|
|
83
|
-
/******/ __webpack_require__.r = (exports) => {
|
|
84
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
85
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
86
|
-
/******/ }
|
|
87
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
88
|
-
/******/ };
|
|
89
|
-
/******/ })();
|
|
90
|
-
/******/
|
|
91
|
-
/************************************************************************/
|
|
92
|
-
var __webpack_exports__ = {};
|
|
93
|
-
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
94
|
-
(() => {
|
|
95
|
-
// ESM COMPAT FLAG
|
|
96
|
-
__webpack_require__.r(__webpack_exports__);
|
|
97
|
-
|
|
98
|
-
// EXPORTS
|
|
99
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
100
|
-
launch: () => (/* reexport */ launch)
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
;// CONCATENATED MODULE: external "tslib"
|
|
104
|
-
const external_tslib_namespaceObject = require("tslib");
|
|
105
|
-
;// CONCATENATED MODULE: external "child_process"
|
|
106
|
-
const external_child_process_namespaceObject = require("child_process");
|
|
107
|
-
;// CONCATENATED MODULE: external "readline"
|
|
108
|
-
const external_readline_namespaceObject = require("readline");
|
|
109
|
-
;// CONCATENATED MODULE: external "fs"
|
|
110
|
-
const external_fs_namespaceObject = require("fs");
|
|
111
|
-
;// CONCATENATED MODULE: external "path"
|
|
112
|
-
const external_path_namespaceObject = require("path");
|
|
113
|
-
;// CONCATENATED MODULE: ./src/terminal.ts
|
|
114
|
-
var terminal = {
|
|
115
|
-
log: function () {
|
|
116
|
-
var args = [];
|
|
117
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
118
|
-
args[_i] = arguments[_i];
|
|
119
|
-
}
|
|
120
|
-
process.stdout.write(args.reduce(function (acc, item) { return "".concat(acc, " ").concat(item); }) + "\n", "utf-8");
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
/* harmony default export */ const src_terminal = (terminal);
|
|
124
|
-
|
|
125
|
-
;// CONCATENATED MODULE: ./src/launch-base.ts
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Author : Nidin Vinayakan <01@01alchemist.com>
|
|
129
|
-
*/
|
|
130
|
-
var minimist = __webpack_require__("minimist");
|
|
131
|
-
var chalk = __webpack_require__("chalk");
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
var cursorTo = external_readline_namespaceObject.cursorTo;
|
|
138
|
-
var spawn = external_child_process_namespaceObject.spawn;
|
|
139
|
-
var w = chalk.white, r = chalk.red, bgR = chalk.bgRed;
|
|
140
|
-
var defaultOptions = {
|
|
141
|
-
mode: "program",
|
|
142
|
-
stdio: "inherit",
|
|
143
|
-
exitProcessOnClose: false,
|
|
144
|
-
};
|
|
145
|
-
var baseDir = process.cwd();
|
|
146
|
-
var envPath = "".concat(baseDir, "/env/").concat(process.env.USER, ".env");
|
|
147
|
-
if (!external_fs_namespaceObject.existsSync(envPath)) {
|
|
148
|
-
envPath = "".concat(baseDir, "/.env");
|
|
1
|
+
import * as S from "child_process";
|
|
2
|
+
import * as E from "readline";
|
|
3
|
+
import * as O from "fs";
|
|
4
|
+
import * as j from "path";
|
|
5
|
+
const l = {
|
|
6
|
+
log: (...t) => {
|
|
7
|
+
process.stdout.write(
|
|
8
|
+
t.reduce((o, e) => `${o} ${e}`) + `
|
|
9
|
+
`,
|
|
10
|
+
"utf-8"
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
}, k = require("minimist"), A = require("chalk"), { cursorTo: P } = E, { spawn: R } = S, { white: w, red: y, bgRed: v } = A, $ = {
|
|
14
|
+
mode: "program",
|
|
15
|
+
stdio: "inherit",
|
|
16
|
+
exitProcessOnClose: !1
|
|
17
|
+
}, g = process.cwd();
|
|
18
|
+
let p = `${g}/env/${process.env.USER}.env`;
|
|
19
|
+
O.existsSync(p) || (p = `${g}/.env`);
|
|
20
|
+
O.existsSync(p) && (l.log(`Loading env vars from: ${p}`), require("dotenv").config({
|
|
21
|
+
path: p
|
|
22
|
+
}));
|
|
23
|
+
function x(t, o) {
|
|
24
|
+
return Array.isArray(t) && Array.isArray(o) ? [...t, ...o] : typeof t == "object" && typeof o == "object" ? {
|
|
25
|
+
...t,
|
|
26
|
+
...o
|
|
27
|
+
} : o;
|
|
149
28
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
29
|
+
function C(t, o, e, c) {
|
|
30
|
+
let n;
|
|
31
|
+
return o && (n = o), e && (n = x(n, e)), c && (n = x(n, c)), {
|
|
32
|
+
name: t,
|
|
33
|
+
value: n
|
|
34
|
+
};
|
|
155
35
|
}
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
36
|
+
function D(t = {}, o = []) {
|
|
37
|
+
const e = k(o);
|
|
38
|
+
return Object.keys($).concat(Object.keys(t)).concat(Object.keys(e)).map((i) => C(
|
|
39
|
+
i,
|
|
40
|
+
$[i],
|
|
41
|
+
t[i],
|
|
42
|
+
e[i]
|
|
43
|
+
)).reduce(
|
|
44
|
+
(i, s) => (i[s.name] = s.value, i),
|
|
45
|
+
{}
|
|
46
|
+
);
|
|
164
47
|
}
|
|
165
|
-
function
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
48
|
+
async function q(t = {}) {
|
|
49
|
+
const o = t.mode === "cli" ? process.argv.slice(2) : [], e = D(t, o);
|
|
50
|
+
e.env && (e.env instanceof Array ? e.env : e.env.split(",")).forEach((d) => {
|
|
51
|
+
const [f, m] = d.split("="), r = m.indexOf("process.env.") > -1;
|
|
52
|
+
process.env[f] = r ? process.env[m.slice(12)] : m;
|
|
53
|
+
});
|
|
54
|
+
const c = e.cmds || process.argv.slice(2).filter((a) => a.indexOf("--cwd") === -1);
|
|
55
|
+
let n = g;
|
|
56
|
+
if (e.cwd && (n = e.cwd[0] === "/" ? e.cwd : j.resolve(g, e.cwd)), !c || c.length === 0) {
|
|
57
|
+
const a = e.mode === "cli", d = "Oops 😬, Did you forgot to pass";
|
|
58
|
+
if (a) {
|
|
59
|
+
const f = y(
|
|
60
|
+
`
|
|
61
|
+
${d} ${v(
|
|
62
|
+
w(" program ")
|
|
63
|
+
)}?. Please tell me, which program you want to launch!
|
|
64
|
+
`
|
|
65
|
+
) + `
|
|
66
|
+
Example: launch echo "Hello World"
|
|
67
|
+
`;
|
|
68
|
+
l.log(f), process.exit(1);
|
|
69
|
+
} else {
|
|
70
|
+
const f = y(
|
|
71
|
+
`${d} option ${v(
|
|
72
|
+
w(" cmds ")
|
|
73
|
+
)}?. Please tell me, which program you want to launch!
|
|
74
|
+
`
|
|
75
|
+
) + `
|
|
76
|
+
Example: launch({cmds:["echo", "Hello World"]});
|
|
77
|
+
`;
|
|
78
|
+
throw new Error(f);
|
|
169
79
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
80
|
+
}
|
|
81
|
+
e.silent || (l.log(
|
|
82
|
+
"###############################################################################################################"
|
|
83
|
+
), l.log("# 🚀 Launching : " + c.join(" ")), l.log("# 📂 CWD : " + n), l.log(
|
|
84
|
+
"###############################################################################################################"
|
|
85
|
+
));
|
|
86
|
+
const { stdio: u, shell: i } = e, s = R(c[0], c.slice(1), {
|
|
87
|
+
stdio: u,
|
|
88
|
+
cwd: n,
|
|
89
|
+
shell: i
|
|
90
|
+
});
|
|
91
|
+
s.name = c[0];
|
|
92
|
+
function b(a) {
|
|
93
|
+
s && (P(process.stdout, 0), l.log(`Killing [${s.name}] instance.pid: ${s.pid}`), s.kill(a || "SIGTERM"));
|
|
94
|
+
}
|
|
95
|
+
return process.on("SIGINT", b), new Promise(function(a, d) {
|
|
96
|
+
let f = "", m = "";
|
|
97
|
+
u !== "inherit" && (s.stdout && s.stdout.on("data", function(r) {
|
|
98
|
+
const h = r.toString();
|
|
99
|
+
h && (f += h);
|
|
100
|
+
}), s.stderr && s.stderr.on("data", function(r) {
|
|
101
|
+
m = r.toString();
|
|
102
|
+
})), s.on("close", async (r) => {
|
|
103
|
+
e.exitProcessOnClose ? (l.log(`[${s.name}] exit code:${r}`), process.exit(r || void 0)) : (l.log(`[${s.name}] exit code:${r}`), r === 0 ? a(f) : d(m));
|
|
190
104
|
});
|
|
191
|
-
|
|
192
|
-
acc[option.name] = option.value;
|
|
193
|
-
return acc;
|
|
194
|
-
}, {});
|
|
195
|
-
return flattenOptions;
|
|
105
|
+
});
|
|
196
106
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
terminateAll: function (signal) {
|
|
200
|
-
launcher.instances.forEach(function (_instance) {
|
|
201
|
-
src_terminal.log("Terminating [".concat(_instance.name, "] instance.pid: ").concat(_instance.pid));
|
|
202
|
-
_instance.kill(signal || "SIGTERM");
|
|
203
|
-
});
|
|
204
|
-
},
|
|
107
|
+
export {
|
|
108
|
+
q as launch
|
|
205
109
|
};
|
|
206
|
-
function launch(_options) {
|
|
207
|
-
if (_options === void 0) { _options = {}; }
|
|
208
|
-
return (0,external_tslib_namespaceObject.__awaiter)(this, void 0, void 0, function () {
|
|
209
|
-
function exit(signal) {
|
|
210
|
-
if (instance) {
|
|
211
|
-
cursorTo(process.stdout, 0);
|
|
212
|
-
src_terminal.log("Killing [".concat(instance.name, "] instance.pid: ").concat(instance.pid));
|
|
213
|
-
instance.kill(signal || "SIGTERM");
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
var args, options, env, cmds, cwd, isCli, title, message, message, stdio, shell, instance;
|
|
217
|
-
return (0,external_tslib_namespaceObject.__generator)(this, function (_a) {
|
|
218
|
-
args = _options.mode === "cli" ? process.argv.slice(2) : [];
|
|
219
|
-
options = getOptions(_options, args);
|
|
220
|
-
if (options.env) {
|
|
221
|
-
env = options.env instanceof Array ? options.env : options.env.split(",");
|
|
222
|
-
env.forEach(function (element) {
|
|
223
|
-
var _a = element.split("="), key = _a[0], value = _a[1];
|
|
224
|
-
var isReference = value.indexOf("process.env.") > -1;
|
|
225
|
-
process.env[key] = isReference ? process.env[value.slice(12)] : value;
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
cmds = options.cmds ||
|
|
229
|
-
process.argv.slice(2).filter(function (arg) { return arg.indexOf("--cwd") === -1; });
|
|
230
|
-
cwd = baseDir;
|
|
231
|
-
if (options.cwd) {
|
|
232
|
-
cwd =
|
|
233
|
-
options.cwd[0] === "/" ? options.cwd : external_path_namespaceObject.resolve(baseDir, options.cwd);
|
|
234
|
-
}
|
|
235
|
-
if (!cmds || cmds.length === 0) {
|
|
236
|
-
isCli = options.mode === "cli";
|
|
237
|
-
title = "Oops 😬, Did you forgot to pass";
|
|
238
|
-
if (isCli) {
|
|
239
|
-
message = r("\n ".concat(title, " ").concat(bgR(w(" program ")), "?. Please tell me, which program you want to launch!\n")) + "\n Example: launch echo \"Hello World\"\n";
|
|
240
|
-
src_terminal.log(message);
|
|
241
|
-
process.exit(1);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
message = r("".concat(title, " option ").concat(bgR(w(" cmds ")), "?. Please tell me, which program you want to launch!\n")) + "\n Example: launch({cmds:[\"echo\", \"Hello World\"]});\n";
|
|
245
|
-
throw new Error(message);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (!options.silent) {
|
|
249
|
-
src_terminal.log("###############################################################################################################");
|
|
250
|
-
src_terminal.log("# 🚀 Launching : " + cmds.join(" "));
|
|
251
|
-
src_terminal.log("# 📂 CWD : " + cwd);
|
|
252
|
-
src_terminal.log("###############################################################################################################");
|
|
253
|
-
}
|
|
254
|
-
stdio = options.stdio, shell = options.shell;
|
|
255
|
-
instance = spawn(cmds[0], cmds.slice(1), {
|
|
256
|
-
stdio: stdio,
|
|
257
|
-
cwd: cwd,
|
|
258
|
-
shell: shell,
|
|
259
|
-
});
|
|
260
|
-
instance.name = cmds[0];
|
|
261
|
-
launcher.instances.push(instance);
|
|
262
|
-
process.on("SIGINT", exit);
|
|
263
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
264
|
-
var _this = this;
|
|
265
|
-
var output = "";
|
|
266
|
-
var lastErrorData = "";
|
|
267
|
-
if (stdio !== "inherit") {
|
|
268
|
-
if (instance.stdout) {
|
|
269
|
-
instance.stdout.on("data", function (data) {
|
|
270
|
-
var dataStr = data.toString();
|
|
271
|
-
if (dataStr) {
|
|
272
|
-
output += dataStr;
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
if (instance.stderr) {
|
|
277
|
-
instance.stderr.on("data", function (data) {
|
|
278
|
-
lastErrorData = data.toString();
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
instance.on("close", function (code) { return (0,external_tslib_namespaceObject.__awaiter)(_this, void 0, void 0, function () {
|
|
283
|
-
return (0,external_tslib_namespaceObject.__generator)(this, function (_a) {
|
|
284
|
-
if (options.exitProcessOnClose) {
|
|
285
|
-
src_terminal.log("[".concat(instance.name, "] exit code:").concat(code));
|
|
286
|
-
process.exit(code ? code : undefined);
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
src_terminal.log("[".concat(instance.name, "] exit code:").concat(code));
|
|
290
|
-
code === 0 ? resolve(output) : reject(lastErrorData);
|
|
291
|
-
}
|
|
292
|
-
return [2 /*return*/];
|
|
293
|
-
});
|
|
294
|
-
}); });
|
|
295
|
-
})];
|
|
296
|
-
});
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
/* harmony default export */ const launch_base = ((/* unused pure expression or super */ null && (launch)));
|
|
300
|
-
|
|
301
|
-
;// CONCATENATED MODULE: ./src/index.ts
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
})();
|
|
305
|
-
|
|
306
|
-
/******/ return __webpack_exports__;
|
|
307
|
-
/******/ })()
|
|
308
|
-
;
|
|
309
|
-
});
|
|
310
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFRLENBQUMsSUFBSSx5QkFBZSxJQUFJLENBQUUsQ0FBQyxDQUFDO2dDQUNyRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQzs2QkFDdEQ7Ozt5QkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUM7OztDQUNKO0FBRUQsa0RBQWUsc0RBQU0sSUFBQzs7O0FDMU9RIiwic291cmNlcyI6WyIvVXNlcnMvbmlkaW4vd29ya3NwYWNlL3ByaXZhdGUvbGF1bmNoZXIvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwiL1VzZXJzL25pZGluL3dvcmtzcGFjZS9wcml2YXRlL2xhdW5jaGVyL2V4dGVybmFsJTIwY29tbW9uanMlMjAlMjJjaGFsayUyMiIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9leHRlcm5hbCUyMGNvbW1vbmpzJTIwJTIyZG90ZW52JTIyIiwiL1VzZXJzL25pZGluL3dvcmtzcGFjZS9wcml2YXRlL2xhdW5jaGVyL2V4dGVybmFsJTIwY29tbW9uanMlMjAlMjJtaW5pbWlzdCUyMiIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci93ZWJwYWNrL2Jvb3RzdHJhcCIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lJTIwcHJvcGVydHklMjBnZXR0ZXJzIiwiL1VzZXJzL25pZGluL3dvcmtzcGFjZS9wcml2YXRlL2xhdW5jaGVyL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSUyMHNob3J0aGFuZCIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci93ZWJwYWNrL3J1bnRpbWUvbWFrZSUyMG5hbWVzcGFjZSUyMG9iamVjdCIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9leHRlcm5hbCUyMGNvbW1vbmpzJTIwJTIydHNsaWIlMjIiLCIvVXNlcnMvbmlkaW4vd29ya3NwYWNlL3ByaXZhdGUvbGF1bmNoZXIvZXh0ZXJuYWwlMjBub2RlLWNvbW1vbmpzJTIwJTIyY2hpbGRfcHJvY2VzcyUyMiIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9leHRlcm5hbCUyMG5vZGUtY29tbW9uanMlMjAlMjJyZWFkbGluZSUyMiIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9leHRlcm5hbCUyMG5vZGUtY29tbW9uanMlMjAlMjJmcyUyMiIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9leHRlcm5hbCUyMG5vZGUtY29tbW9uanMlMjAlMjJwYXRoJTIyIiwiL1VzZXJzL25pZGluL3dvcmtzcGFjZS9wcml2YXRlL2xhdW5jaGVyL3NyYy90ZXJtaW5hbC50cyIsIi9Vc2Vycy9uaWRpbi93b3Jrc3BhY2UvcHJpdmF0ZS9sYXVuY2hlci9zcmMvbGF1bmNoLWJhc2UudHMiLCIvVXNlcnMvbmlkaW4vd29ya3NwYWNlL3ByaXZhdGUvbGF1bmNoZXIvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcImluZGV4XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcImluZGV4XCJdID0gZmFjdG9yeSgpO1xufSkoZ2xvYmFsLCAoKSA9PiB7XG5yZXR1cm4gIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2hhbGtcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiZG90ZW52XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1pbmltaXN0XCIpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJ0c2xpYlwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImNoaWxkX3Byb2Nlc3NcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFkbGluZVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImZzXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicGF0aFwiKTsiLCJleHBvcnQgY29uc3QgdGVybWluYWwgPSB7XG4gIGxvZzogKC4uLmFyZ3M6IGFueSkgPT4ge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFxuICAgICAgYXJncy5yZWR1Y2UoKGFjYzogc3RyaW5nLCBpdGVtOiBhbnkpID0+IGAke2FjY30gJHtpdGVtfWApICsgXCJcXG5cIixcbiAgICAgIFwidXRmLThcIlxuICAgICk7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCB0ZXJtaW5hbDtcbiIsIi8qKlxuICogQXV0aG9yIDogTmlkaW4gVmluYXlha2FuIDwwMUAwMWFsY2hlbWlzdC5jb20+XG4gKi9cbmNvbnN0IG1pbmltaXN0ID0gcmVxdWlyZShcIm1pbmltaXN0XCIpO1xuY29uc3QgY2hhbGsgPSByZXF1aXJlKFwiY2hhbGtcIik7XG5pbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tIFwicmVhZGxpbmVcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHRlcm1pbmFsIGZyb20gXCIuL3Rlcm1pbmFsXCI7XG5cbmNvbnN0IHsgY3Vyc29yVG8gfSA9IHJlYWRsaW5lO1xuY29uc3QgeyBzcGF3biB9ID0gY2hpbGRfcHJvY2VzcztcbmNvbnN0IHsgd2hpdGU6IHcsIHJlZDogciwgYmdSZWQ6IGJnUiB9ID0gY2hhbGs7XG5cbnR5cGUgU3Bhd25PcHRpb25zID0gY2hpbGRfcHJvY2Vzcy5TcGF3bk9wdGlvbnM7XG5cbmludGVyZmFjZSBJbnN0YW5jZSBleHRlbmRzIGNoaWxkX3Byb2Nlc3MuQ2hpbGRQcm9jZXNzIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG50eXBlIE9iamVjdE1hcCA9IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYW55IH07XG5cbnR5cGUgTGF1bmNoTW9kZSA9IFwicHJvZ3JhbVwiIHwgXCJjbGlcIjtcblxudHlwZSBPcHRpb25zID0ge1xuICBlbnY/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgY21kcz86IHN0cmluZ1tdO1xuICBjd2Q/OiBzdHJpbmc7XG4gIG1vZGU/OiBMYXVuY2hNb2RlO1xuICBleGl0UHJvY2Vzc09uQ2xvc2U/OiBib29sZWFuO1xuICBzaWxlbnQ/OiBib29sZWFuO1xufSAmIFNwYXduT3B0aW9ucztcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9iamVjdE1hcCA9IHtcbiAgbW9kZTogXCJwcm9ncmFtXCIsXG4gIHN0ZGlvOiBcImluaGVyaXRcIixcbiAgZXhpdFByb2Nlc3NPbkNsb3NlOiBmYWxzZSxcbn07XG5cbmNvbnN0IGJhc2VEaXIgPSBwcm9jZXNzLmN3ZCgpO1xubGV0IGVudlBhdGggPSBgJHtiYXNlRGlyfS9lbnYvJHtwcm9jZXNzLmVudi5VU0VSfS5lbnZgO1xuaWYgKCFmcy5leGlzdHNTeW5jKGVudlBhdGgpKSB7XG4gIGVudlBhdGggPSBgJHtiYXNlRGlyfS8uZW52YDtcbn1cbmlmIChmcy5leGlzdHNTeW5jKGVudlBhdGgpKSB7XG4gIHRlcm1pbmFsLmxvZyhgTG9hZGluZyBlbnYgdmFycyBmcm9tOiAke2VudlBhdGh9YCk7XG5cbiAgcmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoe1xuICAgIHBhdGg6IGVudlBhdGgsXG4gIH0pO1xufVxuXG50eXBlIE1lcmdlZE9wdGlvbiA9IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH07XG50eXBlIE1lcmdlZE9wdGlvbnMgPSBNZXJnZWRPcHRpb25bXTtcblxuZnVuY3Rpb24gbWVyZ2VWYWx1ZSh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUxKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlMikpIHtcbiAgICByZXR1cm4gWy4uLnZhbHVlMSwgLi4udmFsdWUyXTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZTIgPT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmFsdWUxLFxuICAgICAgLi4udmFsdWUyLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHZhbHVlMjtcbn1cbmZ1bmN0aW9uIG1lcmdlT3B0aW9ucyhcbiAgbmFtZTogc3RyaW5nLFxuICBkZWZhdWx0T3B0aW9uOiBPYmplY3RNYXAsXG4gIG9wdGlvbjogT2JqZWN0TWFwLFxuICBjbGlPcHRpb246IE9iamVjdE1hcFxuKTogTWVyZ2VkT3B0aW9uIHtcbiAgbGV0IHZhbHVlO1xuXG4gIGlmIChkZWZhdWx0T3B0aW9uKSB7XG4gICAgdmFsdWUgPSBkZWZhdWx0T3B0aW9uO1xuICB9XG5cbiAgaWYgKG9wdGlvbikge1xuICAgIHZhbHVlID0gbWVyZ2VWYWx1ZSh2YWx1ZSwgb3B0aW9uKTtcbiAgfVxuXG4gIGlmIChjbGlPcHRpb24pIHtcbiAgICB2YWx1ZSA9IG1lcmdlVmFsdWUodmFsdWUsIGNsaU9wdGlvbik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdmFsdWUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMoX29wdGlvbnM6IE9iamVjdE1hcCA9IHt9LCBhcmdzOiBzdHJpbmdbXSA9IFtdKSB7XG4gIGNvbnN0IGNsaUFyZ3MgPSBtaW5pbWlzdChhcmdzKTtcbiAgY29uc3Qgb3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhkZWZhdWx0T3B0aW9ucylcbiAgICAuY29uY2F0KE9iamVjdC5rZXlzKF9vcHRpb25zKSlcbiAgICAuY29uY2F0KE9iamVjdC5rZXlzKGNsaUFyZ3MpKTtcblxuICBjb25zdCBtZXJnZWRPcHRpb25zOiBNZXJnZWRPcHRpb25zID0gb3B0aW9uTmFtZXMubWFwKChvcHRpb25OYW1lKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlT3B0aW9ucyhcbiAgICAgIG9wdGlvbk5hbWUsXG4gICAgICBkZWZhdWx0T3B0aW9uc1tvcHRpb25OYW1lXSxcbiAgICAgIF9vcHRpb25zW29wdGlvbk5hbWVdLFxuICAgICAgY2xpQXJnc1tvcHRpb25OYW1lXVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBmbGF0dGVuT3B0aW9uczogT3B0aW9ucyA9IG1lcmdlZE9wdGlvbnMucmVkdWNlKFxuICAgIChhY2M6IE9iamVjdE1hcCwgb3B0aW9uKSA9PiB7XG4gICAgICBhY2Nbb3B0aW9uLm5hbWVdID0gb3B0aW9uLnZhbHVlO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9XG4gICk7XG4gIHJldHVybiBmbGF0dGVuT3B0aW9ucztcbn1cblxuY29uc3QgbGF1bmNoZXIgPSB7XG4gIGluc3RhbmNlczogW10gYXMgSW5zdGFuY2VbXSxcbiAgdGVybWluYXRlQWxsOiAoc2lnbmFsOiBOb2RlSlMuU2lnbmFscykgPT4ge1xuICAgIGxhdW5jaGVyLmluc3RhbmNlcy5mb3JFYWNoKChfaW5zdGFuY2U6IEluc3RhbmNlKSA9PiB7XG4gICAgICB0ZXJtaW5hbC5sb2coXG4gICAgICAgIGBUZXJtaW5hdGluZyBbJHtfaW5zdGFuY2UubmFtZX1dIGluc3RhbmNlLnBpZDogJHtfaW5zdGFuY2UucGlkfWBcbiAgICAgICk7XG4gICAgICBfaW5zdGFuY2Uua2lsbChzaWduYWwgfHwgXCJTSUdURVJNXCIpO1xuICAgIH0pO1xuICB9LFxufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaChfb3B0aW9uczogT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgYXJncyA9IF9vcHRpb25zLm1vZGUgPT09IFwiY2xpXCIgPyBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikgOiBbXTtcbiAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoX29wdGlvbnMsIGFyZ3MpO1xuICBpZiAob3B0aW9ucy5lbnYpIHtcbiAgICBjb25zdCBlbnYgPVxuICAgICAgb3B0aW9ucy5lbnYgaW5zdGFuY2VvZiBBcnJheSA/IG9wdGlvbnMuZW52IDogb3B0aW9ucy5lbnYuc3BsaXQoXCIsXCIpO1xuICAgIGVudi5mb3JFYWNoKChlbGVtZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGVsZW1lbnQuc3BsaXQoXCI9XCIpO1xuICAgICAgY29uc3QgaXNSZWZlcmVuY2UgPSB2YWx1ZS5pbmRleE9mKFwicHJvY2Vzcy5lbnYuXCIpID4gLTE7XG4gICAgICBwcm9jZXNzLmVudltrZXldID0gaXNSZWZlcmVuY2UgPyBwcm9jZXNzLmVudlt2YWx1ZS5zbGljZSgxMildIDogdmFsdWU7XG4gICAgfSk7XG4gIH1cbiAgY29uc3QgY21kcyA9XG4gICAgb3B0aW9ucy5jbWRzIHx8XG4gICAgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpLmZpbHRlcigoYXJnKSA9PiBhcmcuaW5kZXhPZihcIi0tY3dkXCIpID09PSAtMSk7XG4gIGxldCBjd2QgPSBiYXNlRGlyO1xuICBpZiAob3B0aW9ucy5jd2QpIHtcbiAgICBjd2QgPVxuICAgICAgb3B0aW9ucy5jd2RbMF0gPT09IFwiL1wiID8gb3B0aW9ucy5jd2QgOiBwYXRoLnJlc29sdmUoYmFzZURpciwgb3B0aW9ucy5jd2QpO1xuICB9XG5cbiAgaWYgKCFjbWRzIHx8IGNtZHMubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc3QgaXNDbGkgPSBvcHRpb25zLm1vZGUgPT09IFwiY2xpXCI7XG4gICAgY29uc3QgdGl0bGUgPSBcIk9vcHMg8J+YrCwgRGlkIHlvdSBmb3Jnb3QgdG8gcGFzc1wiO1xuICAgIGlmIChpc0NsaSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIHIoXG4gICAgICAgICAgYFxcbiAke3RpdGxlfSAke2JnUihcbiAgICAgICAgICAgIHcoXCIgcHJvZ3JhbSBcIilcbiAgICAgICAgICApfT8uIFBsZWFzZSB0ZWxsIG1lLCB3aGljaCBwcm9ncmFtIHlvdSB3YW50IHRvIGxhdW5jaCFcXG5gXG4gICAgICAgICkgKyBgXFxuICAgRXhhbXBsZTogbGF1bmNoIGVjaG8gXCJIZWxsbyBXb3JsZFwiXFxuYDtcbiAgICAgIHRlcm1pbmFsLmxvZyhtZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIHIoXG4gICAgICAgICAgYCR7dGl0bGV9IG9wdGlvbiAke2JnUihcbiAgICAgICAgICAgIHcoXCIgY21kcyBcIilcbiAgICAgICAgICApfT8uIFBsZWFzZSB0ZWxsIG1lLCB3aGljaCBwcm9ncmFtIHlvdSB3YW50IHRvIGxhdW5jaCFcXG5gXG4gICAgICAgICkgKyBgXFxuICAgRXhhbXBsZTogbGF1bmNoKHtjbWRzOltcImVjaG9cIiwgXCJIZWxsbyBXb3JsZFwiXX0pO1xcbmA7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgIHRlcm1pbmFsLmxvZyhcbiAgICAgIFwiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXCJcbiAgICApO1xuICAgIHRlcm1pbmFsLmxvZyhcIiMgIPCfmoAgIExhdW5jaGluZyAgIDogXCIgKyBjbWRzLmpvaW4oXCIgXCIpKTtcbiAgICB0ZXJtaW5hbC5sb2coXCIjICDwn5OCICBDV0QgICAgICAgICA6IFwiICsgY3dkKTtcbiAgICB0ZXJtaW5hbC5sb2coXG4gICAgICBcIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1wiXG4gICAgKTtcbiAgfVxuICBjb25zdCB7IHN0ZGlvLCBzaGVsbCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBpbnN0YW5jZSA9IDxJbnN0YW5jZT5zcGF3bihjbWRzWzBdLCBjbWRzLnNsaWNlKDEpLCB7XG4gICAgc3RkaW8sXG4gICAgY3dkLFxuICAgIHNoZWxsLFxuICB9KTtcbiAgaW5zdGFuY2UubmFtZSA9IGNtZHNbMF07XG5cbiAgbGF1bmNoZXIuaW5zdGFuY2VzLnB1c2goaW5zdGFuY2UpO1xuXG4gIGZ1bmN0aW9uIGV4aXQoc2lnbmFsOiBOb2RlSlMuU2lnbmFscykge1xuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgY3Vyc29yVG8ocHJvY2Vzcy5zdGRvdXQsIDApO1xuICAgICAgdGVybWluYWwubG9nKGBLaWxsaW5nIFske2luc3RhbmNlLm5hbWV9XSBpbnN0YW5jZS5waWQ6ICR7aW5zdGFuY2UucGlkfWApO1xuICAgICAgaW5zdGFuY2Uua2lsbChzaWduYWwgfHwgXCJTSUdURVJNXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3Mub24oXCJTSUdJTlRcIiwgPGFueT5leGl0KTtcblxuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGxldCBvdXRwdXQgPSBcIlwiO1xuICAgIGxldCBsYXN0RXJyb3JEYXRhID0gXCJcIjtcbiAgICBpZiAoc3RkaW8gIT09IFwiaW5oZXJpdFwiKSB7XG4gICAgICBpZiAoaW5zdGFuY2Uuc3Rkb3V0KSB7XG4gICAgICAgIGluc3RhbmNlLnN0ZG91dC5vbihcImRhdGFcIiwgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkYXRhU3RyID0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICAgIGlmIChkYXRhU3RyKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gZGF0YVN0cjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGluc3RhbmNlLnN0ZGVycikge1xuICAgICAgICBpbnN0YW5jZS5zdGRlcnIub24oXCJkYXRhXCIsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgbGFzdEVycm9yRGF0YSA9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGluc3RhbmNlLm9uKFwiY2xvc2VcIiwgYXN5bmMgKGNvZGUpID0+IHtcbiAgICAgIGlmIChvcHRpb25zLmV4aXRQcm9jZXNzT25DbG9zZSkge1xuICAgICAgICB0ZXJtaW5hbC5sb2coYFske2luc3RhbmNlLm5hbWV9XSBleGl0IGNvZGU6JHtjb2RlfWApO1xuICAgICAgICBwcm9jZXNzLmV4aXQoY29kZSA/IGNvZGUgOiB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGVybWluYWwubG9nKGBbJHtpbnN0YW5jZS5uYW1lfV0gZXhpdCBjb2RlOiR7Y29kZX1gKTtcbiAgICAgICAgY29kZSA9PT0gMCA/IHJlc29sdmUob3V0cHV0KSA6IHJlamVjdChsYXN0RXJyb3JEYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxhdW5jaDtcbiIsImV4cG9ydCAqIGZyb20gXCIuL2xhdW5jaC1iYXNlXCI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
package/package.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@01/launcher",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"author": "
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"author": "01 Alchemist <01@01alchemist.com>",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"registry": "https://registry.npmjs.org"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/01alchemist/web-service-lib.git",
|
|
11
|
+
"directory": "packages/launcher"
|
|
12
|
+
},
|
|
13
|
+
"license": "UNLICENSED",
|
|
8
14
|
"keywords": [
|
|
9
15
|
"process",
|
|
10
16
|
"launcher",
|
|
@@ -25,9 +31,14 @@
|
|
|
25
31
|
"launch": "./cli/index"
|
|
26
32
|
},
|
|
27
33
|
"scripts": {
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"build": "
|
|
34
|
+
"yalc:publish": "yalc publish --push --sig",
|
|
35
|
+
"start": "vite",
|
|
36
|
+
"build.dev": "vite build",
|
|
37
|
+
"dev.build": "NODE_ENV=production vite build && yalc push",
|
|
38
|
+
"build": "NODE_ENV=production vite build",
|
|
39
|
+
"yalc.retreat": "yalc retreat --all",
|
|
40
|
+
"publish-pkg2": "../../scripts/publish-package.js $PWD",
|
|
41
|
+
"publish-pkg": "../../scripts/publish-package.js $PWD",
|
|
31
42
|
"precommit": "lint-staged",
|
|
32
43
|
"test": "echo no tests",
|
|
33
44
|
"prettier": "prettier --write '**/*.{js,json,ts,gql,graphql}'",
|
|
@@ -46,20 +57,15 @@
|
|
|
46
57
|
"tslib": "^2.6.2"
|
|
47
58
|
},
|
|
48
59
|
"devDependencies": {
|
|
60
|
+
"@01/core-tools": "^1.1.0",
|
|
49
61
|
"@types/jest": "^29.5.1",
|
|
50
62
|
"@types/minimist": "^1.2.2",
|
|
51
63
|
"@types/node": "^20.1.7",
|
|
52
|
-
"clean-webpack-plugin": "^4.0.0",
|
|
53
|
-
"fs-extra": "8.1.0",
|
|
54
64
|
"jest": "^29.5.0",
|
|
55
65
|
"jest-cli": "^29.5.0",
|
|
56
66
|
"prettier": "^2.8.8",
|
|
57
67
|
"terser": "^5.17.4",
|
|
58
68
|
"ts-jest": "^29.1.0",
|
|
59
|
-
"
|
|
60
|
-
"typescript": "^5.0.4",
|
|
61
|
-
"webpack": "^5.83.1",
|
|
62
|
-
"webpack-cli": "^5.1.1",
|
|
63
|
-
"webpack-node-externals": "^3.0.0"
|
|
69
|
+
"typescript": "^5.0.4"
|
|
64
70
|
}
|
|
65
71
|
}
|
package/dist/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./launch-base";
|
package/dist/launch-base.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import * as child_process from "child_process";
|
|
3
|
-
type SpawnOptions = child_process.SpawnOptions;
|
|
4
|
-
type LaunchMode = "program" | "cli";
|
|
5
|
-
type Options = {
|
|
6
|
-
env?: string | string[];
|
|
7
|
-
cmds?: string[];
|
|
8
|
-
cwd?: string;
|
|
9
|
-
mode?: LaunchMode;
|
|
10
|
-
exitProcessOnClose?: boolean;
|
|
11
|
-
silent?: boolean;
|
|
12
|
-
} & SpawnOptions;
|
|
13
|
-
export declare function launch(_options?: Options): Promise<string>;
|
|
14
|
-
export default launch;
|
package/dist/terminal.d.ts
DELETED