@highstate/cli 0.4.2

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.
@@ -0,0 +1,552 @@
1
+ import { createRequire } from 'node:module';
2
+ import { spawn } from 'child_process';
3
+ import { normalize, delimiter, resolve, dirname } from 'path';
4
+ import { cwd } from 'process';
5
+ import { PassThrough } from 'stream';
6
+ import me from 'readline';
7
+
8
+ const require = createRequire(import.meta.url);
9
+ var St = Object.create;
10
+ var $ = Object.defineProperty;
11
+ var kt = Object.getOwnPropertyDescriptor;
12
+ var Tt = Object.getOwnPropertyNames;
13
+ var At = Object.getPrototypeOf, Rt = Object.prototype.hasOwnProperty;
14
+ var h = /* @__PURE__ */ ((t) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(t, {
15
+ get: (e, n) => (typeof require < "u" ? require : e)[n]
16
+ }) : t)(function(t) {
17
+ if (typeof require < "u") return require.apply(this, arguments);
18
+ throw Error('Dynamic require of "' + t + '" is not supported');
19
+ });
20
+ var l = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports);
21
+ var $t = (t, e, n, r) => {
22
+ if (e && typeof e == "object" || typeof e == "function")
23
+ for (let s of Tt(e))
24
+ !Rt.call(t, s) && s !== n && $(t, s, { get: () => e[s], enumerable: !(r = kt(e, s)) || r.enumerable });
25
+ return t;
26
+ };
27
+ var Nt = (t, e, n) => (n = t != null ? St(At(t)) : {}, $t(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ $(n, "default", { value: t, enumerable: true }) ,
33
+ t
34
+ ));
35
+
36
+ // node_modules/isexe/windows.js
37
+ var W = l((Se, H) => {
38
+ H.exports = z;
39
+ z.sync = Wt;
40
+ var j = h("fs");
41
+ function Ht(t, e) {
42
+ var n = e.pathExt !== undefined ? e.pathExt : process.env.PATHEXT;
43
+ if (!n || (n = n.split(";"), n.indexOf("") !== -1))
44
+ return true;
45
+ for (var r = 0; r < n.length; r++) {
46
+ var s = n[r].toLowerCase();
47
+ if (s && t.substr(-s.length).toLowerCase() === s)
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ function F(t, e, n) {
53
+ return !t.isSymbolicLink() && !t.isFile() ? false : Ht(e, n);
54
+ }
55
+ function z(t, e, n) {
56
+ j.stat(t, function(r, s) {
57
+ n(r, r ? false : F(s, t, e));
58
+ });
59
+ }
60
+ function Wt(t, e) {
61
+ return F(j.statSync(t), t, e);
62
+ }
63
+ });
64
+
65
+ // node_modules/isexe/mode.js
66
+ var X = l((ke, B) => {
67
+ B.exports = K;
68
+ K.sync = Dt;
69
+ var D = h("fs");
70
+ function K(t, e, n) {
71
+ D.stat(t, function(r, s) {
72
+ n(r, r ? false : M(s, e));
73
+ });
74
+ }
75
+ function Dt(t, e) {
76
+ return M(D.statSync(t), e);
77
+ }
78
+ function M(t, e) {
79
+ return t.isFile() && Kt(t, e);
80
+ }
81
+ function Kt(t, e) {
82
+ var n = t.mode, r = t.uid, s = t.gid, o = e.uid !== undefined ? e.uid : process.getuid && process.getuid(), i = e.gid !== undefined ? e.gid : process.getgid && process.getgid(), a = parseInt("100", 8), c = parseInt("010", 8), u = parseInt("001", 8), f = a | c, p = n & u || n & c && s === i || n & a && r === o || n & f && o === 0;
83
+ return p;
84
+ }
85
+ });
86
+
87
+ // node_modules/isexe/index.js
88
+ var U = l((Ae, G) => {
89
+ h("fs"); var v;
90
+ process.platform === "win32" || global.TESTING_WINDOWS ? v = W() : v = X();
91
+ G.exports = y;
92
+ y.sync = Mt;
93
+ function y(t, e, n) {
94
+ if (typeof e == "function" && (n = e, e = {}), !n) {
95
+ if (typeof Promise != "function")
96
+ throw new TypeError("callback not provided");
97
+ return new Promise(function(r, s) {
98
+ y(t, e || {}, function(o, i) {
99
+ o ? s(o) : r(i);
100
+ });
101
+ });
102
+ }
103
+ v(t, e || {}, function(r, s) {
104
+ r && (r.code === "EACCES" || e && e.ignoreErrors) && (r = null, s = false), n(r, s);
105
+ });
106
+ }
107
+ function Mt(t, e) {
108
+ try {
109
+ return v.sync(t, e || {});
110
+ } catch (n) {
111
+ if (e && e.ignoreErrors || n.code === "EACCES")
112
+ return false;
113
+ throw n;
114
+ }
115
+ }
116
+ });
117
+
118
+ // node_modules/which/which.js
119
+ var et = l((Re, tt) => {
120
+ var g = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys", Y = h("path"), Bt = g ? ";" : ":", V = U(), J = (t) => Object.assign(new Error(`not found: ${t}`), { code: "ENOENT" }), Q = (t, e) => {
121
+ let n = e.colon || Bt, r = t.match(/\//) || g && t.match(/\\/) ? [""] : [
122
+ // windows always checks the cwd first
123
+ ...g ? [process.cwd()] : [],
124
+ ...(e.path || process.env.PATH || /* istanbul ignore next: very unusual */
125
+ "").split(n)
126
+ ], s = g ? e.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM" : "", o = g ? s.split(n) : [""];
127
+ return g && t.indexOf(".") !== -1 && o[0] !== "" && o.unshift(""), {
128
+ pathEnv: r,
129
+ pathExt: o,
130
+ pathExtExe: s
131
+ };
132
+ }, Z = (t, e, n) => {
133
+ typeof e == "function" && (n = e, e = {}), e || (e = {});
134
+ let { pathEnv: r, pathExt: s, pathExtExe: o } = Q(t, e), i = [], a = (u) => new Promise((f, p) => {
135
+ if (u === r.length)
136
+ return e.all && i.length ? f(i) : p(J(t));
137
+ let d = r[u], w = /^".*"$/.test(d) ? d.slice(1, -1) : d, m = Y.join(w, t), b = !w && /^\.[\\\/]/.test(t) ? t.slice(0, 2) + m : m;
138
+ f(c(b, u, 0));
139
+ }), c = (u, f, p) => new Promise((d, w) => {
140
+ if (p === s.length)
141
+ return d(a(f + 1));
142
+ let m = s[p];
143
+ V(u + m, { pathExt: o }, (b, Ot) => {
144
+ if (!b && Ot)
145
+ if (e.all)
146
+ i.push(u + m);
147
+ else
148
+ return d(u + m);
149
+ return d(c(u, f, p + 1));
150
+ });
151
+ });
152
+ return n ? a(0).then((u) => n(null, u), n) : a(0);
153
+ }, Xt = (t, e) => {
154
+ e = e || {};
155
+ let { pathEnv: n, pathExt: r, pathExtExe: s } = Q(t, e), o = [];
156
+ for (let i = 0; i < n.length; i++) {
157
+ let a = n[i], c = /^".*"$/.test(a) ? a.slice(1, -1) : a, u = Y.join(c, t), f = !c && /^\.[\\\/]/.test(t) ? t.slice(0, 2) + u : u;
158
+ for (let p = 0; p < r.length; p++) {
159
+ let d = f + r[p];
160
+ try {
161
+ if (V.sync(d, { pathExt: s }))
162
+ if (e.all)
163
+ o.push(d);
164
+ else
165
+ return d;
166
+ } catch {
167
+ }
168
+ }
169
+ }
170
+ if (e.all && o.length)
171
+ return o;
172
+ if (e.nothrow)
173
+ return null;
174
+ throw J(t);
175
+ };
176
+ tt.exports = Z;
177
+ Z.sync = Xt;
178
+ });
179
+
180
+ // node_modules/path-key/index.js
181
+ var rt = l(($e, _) => {
182
+ var nt = (t = {}) => {
183
+ let e = t.env || process.env;
184
+ return (t.platform || process.platform) !== "win32" ? "PATH" : Object.keys(e).reverse().find((r) => r.toUpperCase() === "PATH") || "Path";
185
+ };
186
+ _.exports = nt;
187
+ _.exports.default = nt;
188
+ });
189
+
190
+ // node_modules/cross-spawn/lib/util/resolveCommand.js
191
+ var ct = l((Ne, it) => {
192
+ var st = h("path"), Gt = et(), Ut = rt();
193
+ function ot(t, e) {
194
+ let n = t.options.env || process.env, r = process.cwd(), s = t.options.cwd != null, o = s && process.chdir !== undefined && !process.chdir.disabled;
195
+ if (o)
196
+ try {
197
+ process.chdir(t.options.cwd);
198
+ } catch {
199
+ }
200
+ let i;
201
+ try {
202
+ i = Gt.sync(t.command, {
203
+ path: n[Ut({ env: n })],
204
+ pathExt: e ? st.delimiter : void 0
205
+ });
206
+ } catch {
207
+ } finally {
208
+ o && process.chdir(r);
209
+ }
210
+ return i && (i = st.resolve(s ? t.options.cwd : "", i)), i;
211
+ }
212
+ function Yt(t) {
213
+ return ot(t) || ot(t, true);
214
+ }
215
+ it.exports = Yt;
216
+ });
217
+
218
+ // node_modules/cross-spawn/lib/util/escape.js
219
+ var ut = l((qe, P) => {
220
+ var C = /([()\][%!^"`<>&|;, *?])/g;
221
+ function Vt(t) {
222
+ return t = t.replace(C, "^$1"), t;
223
+ }
224
+ function Jt(t, e) {
225
+ return t = `${t}`, t = t.replace(/(\\*)"/g, '$1$1\\"'), t = t.replace(/(\\*)$/, "$1$1"), t = `"${t}"`, t = t.replace(C, "^$1"), e && (t = t.replace(C, "^$1")), t;
226
+ }
227
+ P.exports.command = Vt;
228
+ P.exports.argument = Jt;
229
+ });
230
+
231
+ // node_modules/shebang-regex/index.js
232
+ var lt = l((Ie, at) => {
233
+ at.exports = /^#!(.*)/;
234
+ });
235
+
236
+ // node_modules/shebang-command/index.js
237
+ var dt = l((Le, pt) => {
238
+ var Qt = lt();
239
+ pt.exports = (t = "") => {
240
+ let e = t.match(Qt);
241
+ if (!e)
242
+ return null;
243
+ let [n, r] = e[0].replace(/#! ?/, "").split(" "), s = n.split("/").pop();
244
+ return s === "env" ? r : r ? `${s} ${r}` : s;
245
+ };
246
+ });
247
+
248
+ // node_modules/cross-spawn/lib/util/readShebang.js
249
+ var ht = l((je, ft) => {
250
+ var O = h("fs"), Zt = dt();
251
+ function te(t) {
252
+ let n = Buffer.alloc(150), r;
253
+ try {
254
+ r = O.openSync(t, "r"), O.readSync(r, n, 0, 150, 0), O.closeSync(r);
255
+ } catch {
256
+ }
257
+ return Zt(n.toString());
258
+ }
259
+ ft.exports = te;
260
+ });
261
+
262
+ // node_modules/cross-spawn/lib/parse.js
263
+ var wt = l((Fe, Et) => {
264
+ var ee = h("path"), mt = ct(), gt = ut(), ne = ht(), re = process.platform === "win32", se = /\.(?:com|exe)$/i, oe = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;
265
+ function ie(t) {
266
+ t.file = mt(t);
267
+ let e = t.file && ne(t.file);
268
+ return e ? (t.args.unshift(t.file), t.command = e, mt(t)) : t.file;
269
+ }
270
+ function ce(t) {
271
+ if (!re)
272
+ return t;
273
+ let e = ie(t), n = !se.test(e);
274
+ if (t.options.forceShell || n) {
275
+ let r = oe.test(e);
276
+ t.command = ee.normalize(t.command), t.command = gt.command(t.command), t.args = t.args.map((o) => gt.argument(o, r));
277
+ let s = [t.command].concat(t.args).join(" ");
278
+ t.args = ["/d", "/s", "/c", `"${s}"`], t.command = process.env.comspec || "cmd.exe", t.options.windowsVerbatimArguments = true;
279
+ }
280
+ return t;
281
+ }
282
+ function ue(t, e, n) {
283
+ e && !Array.isArray(e) && (n = e, e = null), e = e ? e.slice(0) : [], n = Object.assign({}, n);
284
+ let r = {
285
+ command: t,
286
+ args: e,
287
+ options: n,
288
+ file: undefined,
289
+ original: {
290
+ command: t,
291
+ args: e
292
+ }
293
+ };
294
+ return n.shell ? r : ce(r);
295
+ }
296
+ Et.exports = ue;
297
+ });
298
+
299
+ // node_modules/cross-spawn/lib/enoent.js
300
+ var bt = l((ze, vt) => {
301
+ var S = process.platform === "win32";
302
+ function k(t, e) {
303
+ return Object.assign(new Error(`${e} ${t.command} ENOENT`), {
304
+ code: "ENOENT",
305
+ errno: "ENOENT",
306
+ syscall: `${e} ${t.command}`,
307
+ path: t.command,
308
+ spawnargs: t.args
309
+ });
310
+ }
311
+ function ae(t, e) {
312
+ if (!S)
313
+ return;
314
+ let n = t.emit;
315
+ t.emit = function(r, s) {
316
+ if (r === "exit") {
317
+ let o = xt(s, e);
318
+ if (o)
319
+ return n.call(t, "error", o);
320
+ }
321
+ return n.apply(t, arguments);
322
+ };
323
+ }
324
+ function xt(t, e) {
325
+ return S && t === 1 && !e.file ? k(e.original, "spawn") : null;
326
+ }
327
+ function le(t, e) {
328
+ return S && t === 1 && !e.file ? k(e.original, "spawnSync") : null;
329
+ }
330
+ vt.exports = {
331
+ hookChildProcess: ae,
332
+ verifyENOENT: xt,
333
+ verifyENOENTSync: le,
334
+ notFoundError: k
335
+ };
336
+ });
337
+
338
+ // node_modules/cross-spawn/index.js
339
+ var Ct = l((He, E) => {
340
+ var yt = h("child_process"), T = wt(), A = bt();
341
+ function _t(t, e, n) {
342
+ let r = T(t, e, n), s = yt.spawn(r.command, r.args, r.options);
343
+ return A.hookChildProcess(s, r), s;
344
+ }
345
+ function pe(t, e, n) {
346
+ let r = T(t, e, n), s = yt.spawnSync(r.command, r.args, r.options);
347
+ return s.error = s.error || A.verifyENOENTSync(s.status, r), s;
348
+ }
349
+ E.exports = _t;
350
+ E.exports.spawn = _t;
351
+ E.exports.sync = pe;
352
+ E.exports._parse = T;
353
+ E.exports._enoent = A;
354
+ });
355
+ var Lt = /^path$/i, q = { key: "PATH", value: "" };
356
+ function jt(t) {
357
+ for (let e in t) {
358
+ if (!Object.prototype.hasOwnProperty.call(t, e) || !Lt.test(e))
359
+ continue;
360
+ let n = t[e];
361
+ return n ? { key: e, value: n } : q;
362
+ }
363
+ return q;
364
+ }
365
+ function Ft(t, e) {
366
+ let n = e.value.split(delimiter), r = t, s;
367
+ do
368
+ n.push(resolve(r, "node_modules", ".bin")), s = r, r = dirname(r);
369
+ while (r !== s);
370
+ return { key: e.key, value: n.join(delimiter) };
371
+ }
372
+ function I(t, e) {
373
+ let n = {
374
+ ...process.env,
375
+ ...e
376
+ }, r = Ft(t, jt(n));
377
+ return n[r.key] = r.value, n;
378
+ }
379
+ var L = (t) => {
380
+ let e = t.length, n = new PassThrough(), r = () => {
381
+ --e === 0 && n.emit("end");
382
+ };
383
+ for (let s of t)
384
+ s.pipe(n, { end: false }), s.on("end", r);
385
+ return n;
386
+ };
387
+
388
+ // src/main.ts
389
+ var Pt = Nt(Ct());
390
+
391
+ // src/non-zero-exit-error.ts
392
+ var x = class extends Error {
393
+ result;
394
+ output;
395
+ get exitCode() {
396
+ if (this.result.exitCode !== null)
397
+ return this.result.exitCode;
398
+ }
399
+ constructor(e, n) {
400
+ super(`Process exited with non-zero status (${e.exitCode})`), this.result = e, this.output = n;
401
+ }
402
+ };
403
+
404
+ // src/main.ts
405
+ var ge = {
406
+ timeout: undefined,
407
+ persist: false
408
+ }, Ee = {
409
+ windowsHide: true
410
+ };
411
+ function we(t, e) {
412
+ return {
413
+ command: normalize(t),
414
+ args: e ?? []
415
+ };
416
+ }
417
+ function xe(t) {
418
+ let e = new AbortController();
419
+ for (let n of t) {
420
+ if (n.aborted)
421
+ return e.abort(), n;
422
+ let r = () => {
423
+ e.abort(n.reason);
424
+ };
425
+ n.addEventListener("abort", r, {
426
+ signal: e.signal
427
+ });
428
+ }
429
+ return e.signal;
430
+ }
431
+ var R = class {
432
+ _process;
433
+ _aborted = false;
434
+ _options;
435
+ _command;
436
+ _args;
437
+ _resolveClose;
438
+ _processClosed;
439
+ _thrownError;
440
+ get process() {
441
+ return this._process;
442
+ }
443
+ get pid() {
444
+ return this._process?.pid;
445
+ }
446
+ get exitCode() {
447
+ if (this._process && this._process.exitCode !== null)
448
+ return this._process.exitCode;
449
+ }
450
+ constructor(e, n, r) {
451
+ this._options = {
452
+ ...ge,
453
+ ...r
454
+ }, this._command = e, this._args = n ?? [], this._processClosed = new Promise((s) => {
455
+ this._resolveClose = s;
456
+ });
457
+ }
458
+ kill(e) {
459
+ return this._process?.kill(e) === true;
460
+ }
461
+ get aborted() {
462
+ return this._aborted;
463
+ }
464
+ get killed() {
465
+ return this._process?.killed === true;
466
+ }
467
+ pipe(e, n, r) {
468
+ return be(e, n, {
469
+ ...r,
470
+ stdin: this
471
+ });
472
+ }
473
+ async *[Symbol.asyncIterator]() {
474
+ let e = this._process;
475
+ if (!e)
476
+ return;
477
+ let n = [];
478
+ this._streamErr && n.push(this._streamErr), this._streamOut && n.push(this._streamOut);
479
+ let r = L(n), s = me.createInterface({
480
+ input: r
481
+ });
482
+ for await (let o of s)
483
+ yield o.toString();
484
+ if (await this._processClosed, e.removeAllListeners(), this._thrownError)
485
+ throw this._thrownError;
486
+ if (this._options?.throwOnError && this.exitCode !== 0 && this.exitCode !== undefined)
487
+ throw new x(this);
488
+ }
489
+ async _waitForOutput() {
490
+ let e = this._process;
491
+ if (!e)
492
+ throw new Error("No process was started");
493
+ let n = "", r = "";
494
+ if (this._streamOut)
495
+ for await (let o of this._streamOut)
496
+ r += o.toString();
497
+ if (this._streamErr)
498
+ for await (let o of this._streamErr)
499
+ n += o.toString();
500
+ if (await this._processClosed, this._options?.stdin && await this._options.stdin, e.removeAllListeners(), this._thrownError)
501
+ throw this._thrownError;
502
+ let s = {
503
+ stderr: n,
504
+ stdout: r,
505
+ exitCode: this.exitCode
506
+ };
507
+ if (this._options.throwOnError && this.exitCode !== 0 && this.exitCode !== undefined)
508
+ throw new x(this, s);
509
+ return s;
510
+ }
511
+ then(e, n) {
512
+ return this._waitForOutput().then(e, n);
513
+ }
514
+ _streamOut;
515
+ _streamErr;
516
+ spawn() {
517
+ let e = cwd(), n = this._options, r = {
518
+ ...Ee,
519
+ ...n.nodeOptions
520
+ }, s = [];
521
+ this._resetState(), n.timeout !== undefined && s.push(AbortSignal.timeout(n.timeout)), n.signal !== undefined && s.push(n.signal), n.persist === true && (r.detached = true), s.length > 0 && (r.signal = xe(s)), r.env = I(e, r.env);
522
+ let { command: o, args: i } = we(this._command, this._args), a = (0, Pt._parse)(o, i, r), c = spawn(
523
+ a.command,
524
+ a.args,
525
+ a.options
526
+ );
527
+ if (c.stderr && (this._streamErr = c.stderr), c.stdout && (this._streamOut = c.stdout), this._process = c, c.once("error", this._onError), c.once("close", this._onClose), n.stdin !== undefined && c.stdin && n.stdin.process) {
528
+ let { stdout: u } = n.stdin.process;
529
+ u && u.pipe(c.stdin);
530
+ }
531
+ }
532
+ _resetState() {
533
+ this._aborted = false, this._processClosed = new Promise((e) => {
534
+ this._resolveClose = e;
535
+ }), this._thrownError = undefined;
536
+ }
537
+ _onError = (e) => {
538
+ if (e.name === "AbortError" && (!(e.cause instanceof Error) || e.cause.name !== "TimeoutError")) {
539
+ this._aborted = true;
540
+ return;
541
+ }
542
+ this._thrownError = e;
543
+ };
544
+ _onClose = () => {
545
+ this._resolveClose && this._resolveClose();
546
+ };
547
+ }, ve = (t, e, n) => {
548
+ let r = new R(t, e, n);
549
+ return r.spawn(), r;
550
+ }, be = ve;
551
+
552
+ export { R as ExecProcess, x as NonZeroExitError, be as exec, ve as x };