@alchemy.run/node-utils 0.0.3 → 0.0.5

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,57 @@
1
+ /**
2
+ * Run a child process in the foreground: proxy signals to it, forward stdio,
3
+ * bridge IPC, and exit with the child's code/signal. A watchdog process
4
+ * ensures the child is killed if the parent dies unexpectedly.
5
+ *
6
+ * Adapted from `foreground-child@4.0.3` (© Isaac Z. Schlueter et al.):
7
+ * https://github.com/tapjs/foreground-child
8
+ * Licensed under the Blue Oak Model License 1.0.0:
9
+ * https://blueoakcouncil.org/license/1.0.0
10
+ *
11
+ * The behavioral additions on top of upstream are:
12
+ * 1. Optional `stderrFilter` — upstream hardcodes `stdio = [0, 1, 2]`,
13
+ * which makes intercepting child stderr impossible without forking.
14
+ * When `stderrFilter` is provided, the child's stderr is piped,
15
+ * line-buffered, and each line is passed through the filter
16
+ * (return `false` to drop, `true` to forward).
17
+ * 2. Uses the in-tree {@link exitHook} instead of `signal-exit`, so this
18
+ * package has no external runtime dependencies.
19
+ *
20
+ * Everything else — signal proxying, the watchdog, IPC bridging, exit-code
21
+ * forwarding — is preserved verbatim from upstream.
22
+ */
23
+ import { type ChildProcess } from "node:child_process";
24
+ type SyncCleanupResult = void | undefined | null | boolean | number | string | NodeJS.Signals;
25
+ export type CleanupResult = SyncCleanupResult | Promise<SyncCleanupResult>;
26
+ export interface ForegroundChildOptions {
27
+ /**
28
+ * Line-level filter for the child's stderr. Return `true` to forward the
29
+ * line to the parent's stderr, `false` to drop it. When omitted, the
30
+ * child's stderr is inherited directly (no buffering, no filtering).
31
+ */
32
+ stderrFilter?: (line: string) => boolean;
33
+ /**
34
+ * Called when the child closes. May return:
35
+ * - `false` — suppress propagation of the child's exit
36
+ * - `number` — override the parent's exit code
37
+ * - `string` (a signal name) — kill the parent with that signal
38
+ * - `void` / `undefined` — propagate the child's code/signal verbatim
39
+ * Async (Promise-returning) cleanup is supported.
40
+ */
41
+ cleanup?: (code: number | null, signal: NodeJS.Signals | null, extra: {
42
+ watchdogPid: number | undefined;
43
+ }) => CleanupResult;
44
+ }
45
+ /**
46
+ * Run `program` with `args` as a foreground child of the current process.
47
+ *
48
+ * Signals received by the parent are proxied to the child, the child's stdio
49
+ * is connected to the parent's (with optional stderr filtering via
50
+ * {@link ForegroundChildOptions.stderrFilter}), IPC messages are bridged in
51
+ * both directions, and the parent exits with the child's exit code or
52
+ * signal. A watchdog subprocess ensures the child is force-killed if the
53
+ * parent dies unexpectedly.
54
+ */
55
+ export declare function foregroundChild(program: string, args: ReadonlyArray<string>, opts?: ForegroundChildOptions): ChildProcess;
56
+ export {};
57
+ //# sourceMappingURL=foreground-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foreground-child.d.ts","sourceRoot":"","sources":["../src/foreground-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAgF9D,KAAK,iBAAiB,GAClB,IAAI,GACJ,SAAS,GACT,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,CAAC,OAAO,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CACR,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAC7B,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KACvC,aAAa,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,IAAI,GAAE,sBAA2B,GAChC,YAAY,CA6Fd"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Run a child process in the foreground: proxy signals to it, forward stdio,
3
+ * bridge IPC, and exit with the child's code/signal. A watchdog process
4
+ * ensures the child is killed if the parent dies unexpectedly.
5
+ *
6
+ * Adapted from `foreground-child@4.0.3` (© Isaac Z. Schlueter et al.):
7
+ * https://github.com/tapjs/foreground-child
8
+ * Licensed under the Blue Oak Model License 1.0.0:
9
+ * https://blueoakcouncil.org/license/1.0.0
10
+ *
11
+ * The behavioral additions on top of upstream are:
12
+ * 1. Optional `stderrFilter` — upstream hardcodes `stdio = [0, 1, 2]`,
13
+ * which makes intercepting child stderr impossible without forking.
14
+ * When `stderrFilter` is provided, the child's stderr is piped,
15
+ * line-buffered, and each line is passed through the filter
16
+ * (return `false` to drop, `true` to forward).
17
+ * 2. Uses the in-tree {@link exitHook} instead of `signal-exit`, so this
18
+ * package has no external runtime dependencies.
19
+ *
20
+ * Everything else — signal proxying, the watchdog, IPC bridging, exit-code
21
+ * forwarding — is preserved verbatim from upstream.
22
+ */
23
+ import { spawn } from "node:child_process";
24
+ import constants from "node:constants";
25
+ import { exitHook } from "./exit-hook.js";
26
+ const allSignals = Object.keys(constants).filter((k) => k.startsWith("SIG") && k !== "SIGPROF" && k !== "SIGKILL");
27
+ function proxySignals(child) {
28
+ const listeners = new Map();
29
+ for (const sig of allSignals) {
30
+ const listener = () => {
31
+ try {
32
+ child.kill(sig);
33
+ }
34
+ catch (_) { }
35
+ };
36
+ try {
37
+ process.on(sig, listener);
38
+ listeners.set(sig, listener);
39
+ }
40
+ catch (_) { }
41
+ }
42
+ const unproxy = () => {
43
+ for (const [sig, listener] of listeners) {
44
+ process.removeListener(sig, listener);
45
+ }
46
+ };
47
+ child.on("exit", unproxy);
48
+ return unproxy;
49
+ }
50
+ const watchdogCode = String.raw `
51
+ const pid = parseInt(process.argv[1], 10)
52
+ process.title = 'node (foreground-child watchdog pid=' + pid + ')'
53
+ if (!isNaN(pid)) {
54
+ let barked = false
55
+ const interval = setInterval(() => {}, 60000)
56
+ const bark = () => {
57
+ clearInterval(interval)
58
+ if (barked) return
59
+ barked = true
60
+ process.removeListener('SIGHUP', bark)
61
+ setTimeout(() => {
62
+ try {
63
+ process.kill(pid, 'SIGKILL')
64
+ setTimeout(() => process.exit(), 200)
65
+ } catch (_) {}
66
+ }, 500)
67
+ }
68
+ process.on('SIGHUP', bark)
69
+ }
70
+ `;
71
+ function watchdog(child) {
72
+ let dogExited = false;
73
+ const dog = spawn(process.execPath, ["-e", watchdogCode, String(child.pid)], {
74
+ stdio: ["ignore", "ignore", "pipe"],
75
+ });
76
+ dog.on("exit", () => {
77
+ dogExited = true;
78
+ });
79
+ dog.stderr?.pipe(process.stderr, { end: false });
80
+ child.on("exit", () => {
81
+ if (!dogExited)
82
+ dog.kill("SIGKILL");
83
+ });
84
+ process.on("exit", () => {
85
+ if (!dogExited)
86
+ dog.kill("SIGKILL");
87
+ });
88
+ return dog;
89
+ }
90
+ function isPromise(o) {
91
+ return (!!o &&
92
+ typeof o === "object" &&
93
+ typeof o.then === "function");
94
+ }
95
+ /**
96
+ * Run `program` with `args` as a foreground child of the current process.
97
+ *
98
+ * Signals received by the parent are proxied to the child, the child's stdio
99
+ * is connected to the parent's (with optional stderr filtering via
100
+ * {@link ForegroundChildOptions.stderrFilter}), IPC messages are bridged in
101
+ * both directions, and the parent exits with the child's exit code or
102
+ * signal. A watchdog subprocess ensures the child is force-killed if the
103
+ * parent dies unexpectedly.
104
+ */
105
+ export function foregroundChild(program, args, opts = {}) {
106
+ const { stderrFilter, cleanup = () => { } } = opts;
107
+ const stdio = stderrFilter
108
+ ? [0, 1, "pipe"]
109
+ : [0, 1, 2];
110
+ if (process.send)
111
+ stdio.push("ipc");
112
+ const child = spawn(program, args, { stdio });
113
+ if (stderrFilter && child.stderr) {
114
+ let buf = "";
115
+ child.stderr.on("data", (chunk) => {
116
+ buf += chunk.toString();
117
+ let nl;
118
+ while ((nl = buf.search(/\r?\n/)) !== -1) {
119
+ const eol = buf.startsWith("\r\n", nl) ? 2 : 1;
120
+ const line = buf.slice(0, nl + eol);
121
+ buf = buf.slice(nl + eol);
122
+ if (stderrFilter(line))
123
+ process.stderr.write(line);
124
+ }
125
+ });
126
+ child.stderr.on("end", () => {
127
+ if (buf && stderrFilter(buf))
128
+ process.stderr.write(buf);
129
+ });
130
+ }
131
+ const childHangup = () => {
132
+ try {
133
+ child.kill("SIGHUP");
134
+ }
135
+ catch (_) {
136
+ child.kill("SIGTERM");
137
+ }
138
+ };
139
+ const removeOnExit = exitHook(childHangup);
140
+ proxySignals(child);
141
+ const dog = watchdog(child);
142
+ let done = false;
143
+ dog.on("close", (code, signal) => {
144
+ if (done)
145
+ return;
146
+ child.kill("SIGKILL");
147
+ throw new Error("foreground-child watchdog process died unexpectedly!", {
148
+ cause: {
149
+ pid: dog.pid,
150
+ code,
151
+ signal,
152
+ watchedProcess: { cmd: program, args, pid: child.pid },
153
+ },
154
+ });
155
+ });
156
+ child.on("close", async (code, signal) => {
157
+ if (done)
158
+ return;
159
+ done = true;
160
+ const result = cleanup(code, signal, { watchdogPid: dog.pid });
161
+ const res = isPromise(result) ? await result : result;
162
+ removeOnExit();
163
+ if (res === false)
164
+ return;
165
+ let finalCode = code;
166
+ let finalSignal = signal;
167
+ if (typeof res === "string") {
168
+ finalSignal = res;
169
+ finalCode = null;
170
+ }
171
+ else if (typeof res === "number") {
172
+ finalCode = res;
173
+ finalSignal = null;
174
+ }
175
+ if (finalSignal) {
176
+ setTimeout(() => { }, 2000);
177
+ try {
178
+ process.kill(process.pid, finalSignal);
179
+ }
180
+ catch (_) {
181
+ process.kill(process.pid, "SIGTERM");
182
+ }
183
+ }
184
+ else {
185
+ process.exit(finalCode ?? 0);
186
+ }
187
+ });
188
+ if (process.send) {
189
+ process.removeAllListeners("message");
190
+ child.on("message", (message, sendHandle) => {
191
+ process.send?.(message, sendHandle);
192
+ });
193
+ process.on("message", (message, sendHandle) => {
194
+ if (message === null)
195
+ return;
196
+ child.send(message, sendHandle);
197
+ });
198
+ }
199
+ return child;
200
+ }
201
+ //# sourceMappingURL=foreground-child.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foreground-child.js","sourceRoot":"","sources":["../src/foreground-child.ts"],"names":[],"mappings":"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"}
package/lib/ignore.d.ts CHANGED
@@ -1,7 +1,24 @@
1
+ declare class Ignore {
2
+ constructor({ ignorecase, ignoreCase, allowRelativePaths, }?: {
3
+ ignorecase?: boolean | undefined;
4
+ ignoreCase?: any;
5
+ allowRelativePaths?: boolean | undefined;
6
+ });
7
+ _initCache(): void;
8
+ add(pattern: any): this;
9
+ addPattern(pattern: any): this;
10
+ _test(originalPath: any, cache: any, checkUnignored: any, slices: any): any;
11
+ checkIgnore(path: any): any;
12
+ _t(path: any, cache: any, checkUnignored: any, slices: any): any;
13
+ ignores(path: any): any;
14
+ createFilter(): (path: any) => boolean;
15
+ filter(paths: any): any[];
16
+ test(path: any): any;
17
+ }
1
18
  declare const isPathValid: (path: any) => any;
2
19
  declare const _default: (options?: IgnoreOptions) => IgnoreInstance;
3
20
  export default _default;
4
- export { isPathValid };
21
+ export { isPathValid, Ignore };
5
22
  type Pathname = string;
6
23
  interface PatternParams {
7
24
  pattern: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAguBA,QAAA,MAAM,WAAW,GAAI,SAAI,QACuC,CAAC;wBAkC5B,CACnC,OAAO,CAAC,EAAE,aAAa,KACpB,cAAc;AAFnB,wBAEoB;AACpB,OAAO,EAAE,WAAW,EAAE,CAAC;AAKvB,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CACD,QAAQ,EACJ,MAAM,GACN,cAAc,GACd,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,GACpC,aAAa,GAChB,IAAI,CAAC;IACR,MAAM,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACnD,YAAY,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9D,CAAC;IACF,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG;QAC/B,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9D,CAAC;CACH"}
1
+ {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AA4kBA,cAAM,MAAM;gBACE,EACV,UAAiB,EACjB,UAAuB,EACvB,kBAA0B,GAC3B;;;;KAAK;IAQN,UAAU;IAQV,GAAG,CAAC,OAAO,KAAA;IAYX,UAAU,CAAC,OAAO,KAAA;IAKlB,KAAK,CAAC,YAAY,KAAA,EAAE,KAAK,KAAA,EAAE,cAAc,KAAA,EAAE,MAAM,KAAA;IAejD,WAAW,CAAC,IAAI,KAAA;IA0BhB,EAAE,CAEA,IAAI,KAAA,EAGJ,KAAK,KAAA,EAGL,cAAc,KAAA,EAGd,MAAM,KAAA;IAsCR,OAAO,CAAC,IAAI,KAAA;IAIZ,YAAY,KACF,SAAI;IAGd,MAAM,CAAC,KAAK,KAAA;IAKZ,IAAI,CAAC,IAAI,KAAA;CAGV;AAID,QAAA,MAAM,WAAW,GAAI,SAAI,QACuC,CAAC;wBAkC5B,CACnC,OAAO,CAAC,EAAE,aAAa,KACpB,cAAc;AAFnB,wBAEoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAK/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CACD,QAAQ,EACJ,MAAM,GACN,cAAc,GACd,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,GACpC,aAAa,GAChB,IAAI,CAAC;IACR,MAAM,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACnD,YAAY,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9D,CAAC;IACF,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG;QAC/B,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9D,CAAC;CACH"}
package/lib/ignore.js CHANGED
@@ -587,5 +587,5 @@ typeof process !== "undefined" &&
587
587
  // `setupWindows` via `Symbol.for("setupWindows")` for its own test suite; we
588
588
  // drop that hook since it's unused.
589
589
  export default factory;
590
- export { isPathValid };
590
+ export { isPathValid, Ignore };
591
591
  //# sourceMappingURL=ignore.js.map
package/lib/ignore.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./exit-hook.ts";
2
+ export * from "./foreground-child.ts";
2
3
  export * from "./ignore.ts";
3
4
  export * from "./lockfile-async.ts";
4
5
  export * from "./retry.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
package/lib/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./exit-hook.js";
2
+ export * from "./foreground-child.js";
2
3
  export * from "./ignore.js";
3
4
  export * from "./lockfile-async.js";
4
5
  export * from "./retry.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alchemy.run/node-utils",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "author": "Sam Goodwin (sam@alchemy.run)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Run a child process in the foreground: proxy signals to it, forward stdio,
3
+ * bridge IPC, and exit with the child's code/signal. A watchdog process
4
+ * ensures the child is killed if the parent dies unexpectedly.
5
+ *
6
+ * Adapted from `foreground-child@4.0.3` (© Isaac Z. Schlueter et al.):
7
+ * https://github.com/tapjs/foreground-child
8
+ * Licensed under the Blue Oak Model License 1.0.0:
9
+ * https://blueoakcouncil.org/license/1.0.0
10
+ *
11
+ * The behavioral additions on top of upstream are:
12
+ * 1. Optional `stderrFilter` — upstream hardcodes `stdio = [0, 1, 2]`,
13
+ * which makes intercepting child stderr impossible without forking.
14
+ * When `stderrFilter` is provided, the child's stderr is piped,
15
+ * line-buffered, and each line is passed through the filter
16
+ * (return `false` to drop, `true` to forward).
17
+ * 2. Uses the in-tree {@link exitHook} instead of `signal-exit`, so this
18
+ * package has no external runtime dependencies.
19
+ *
20
+ * Everything else — signal proxying, the watchdog, IPC bridging, exit-code
21
+ * forwarding — is preserved verbatim from upstream.
22
+ */
23
+ import { type ChildProcess, spawn } from "node:child_process";
24
+ import constants from "node:constants";
25
+ import { exitHook } from "./exit-hook.ts";
26
+
27
+ type Signal = NodeJS.Signals;
28
+
29
+ const allSignals = Object.keys(constants).filter(
30
+ (k) => k.startsWith("SIG") && k !== "SIGPROF" && k !== "SIGKILL",
31
+ ) as Signal[];
32
+
33
+ function proxySignals(child: ChildProcess): () => void {
34
+ const listeners = new Map<Signal, () => void>();
35
+ for (const sig of allSignals) {
36
+ const listener = (): void => {
37
+ try {
38
+ child.kill(sig);
39
+ } catch (_) {}
40
+ };
41
+ try {
42
+ process.on(sig, listener);
43
+ listeners.set(sig, listener);
44
+ } catch (_) {}
45
+ }
46
+ const unproxy = (): void => {
47
+ for (const [sig, listener] of listeners) {
48
+ process.removeListener(sig, listener);
49
+ }
50
+ };
51
+ child.on("exit", unproxy);
52
+ return unproxy;
53
+ }
54
+
55
+ const watchdogCode = String.raw`
56
+ const pid = parseInt(process.argv[1], 10)
57
+ process.title = 'node (foreground-child watchdog pid=' + pid + ')'
58
+ if (!isNaN(pid)) {
59
+ let barked = false
60
+ const interval = setInterval(() => {}, 60000)
61
+ const bark = () => {
62
+ clearInterval(interval)
63
+ if (barked) return
64
+ barked = true
65
+ process.removeListener('SIGHUP', bark)
66
+ setTimeout(() => {
67
+ try {
68
+ process.kill(pid, 'SIGKILL')
69
+ setTimeout(() => process.exit(), 200)
70
+ } catch (_) {}
71
+ }, 500)
72
+ }
73
+ process.on('SIGHUP', bark)
74
+ }
75
+ `;
76
+
77
+ function watchdog(child: ChildProcess): ChildProcess {
78
+ let dogExited = false;
79
+ const dog = spawn(process.execPath, ["-e", watchdogCode, String(child.pid)], {
80
+ stdio: ["ignore", "ignore", "pipe"],
81
+ });
82
+ dog.on("exit", () => {
83
+ dogExited = true;
84
+ });
85
+ dog.stderr?.pipe(process.stderr, { end: false });
86
+ child.on("exit", () => {
87
+ if (!dogExited) dog.kill("SIGKILL");
88
+ });
89
+ process.on("exit", () => {
90
+ if (!dogExited) dog.kill("SIGKILL");
91
+ });
92
+ return dog;
93
+ }
94
+
95
+ function isPromise<T>(o: unknown): o is Promise<T> {
96
+ return (
97
+ !!o &&
98
+ typeof o === "object" &&
99
+ typeof (o as { then?: unknown }).then === "function"
100
+ );
101
+ }
102
+
103
+ type SyncCleanupResult =
104
+ | void
105
+ | undefined
106
+ | null
107
+ | boolean
108
+ | number
109
+ | string
110
+ | NodeJS.Signals;
111
+
112
+ export type CleanupResult = SyncCleanupResult | Promise<SyncCleanupResult>;
113
+
114
+ export interface ForegroundChildOptions {
115
+ /**
116
+ * Line-level filter for the child's stderr. Return `true` to forward the
117
+ * line to the parent's stderr, `false` to drop it. When omitted, the
118
+ * child's stderr is inherited directly (no buffering, no filtering).
119
+ */
120
+ stderrFilter?: (line: string) => boolean;
121
+ /**
122
+ * Called when the child closes. May return:
123
+ * - `false` — suppress propagation of the child's exit
124
+ * - `number` — override the parent's exit code
125
+ * - `string` (a signal name) — kill the parent with that signal
126
+ * - `void` / `undefined` — propagate the child's code/signal verbatim
127
+ * Async (Promise-returning) cleanup is supported.
128
+ */
129
+ cleanup?: (
130
+ code: number | null,
131
+ signal: NodeJS.Signals | null,
132
+ extra: { watchdogPid: number | undefined },
133
+ ) => CleanupResult;
134
+ }
135
+
136
+ /**
137
+ * Run `program` with `args` as a foreground child of the current process.
138
+ *
139
+ * Signals received by the parent are proxied to the child, the child's stdio
140
+ * is connected to the parent's (with optional stderr filtering via
141
+ * {@link ForegroundChildOptions.stderrFilter}), IPC messages are bridged in
142
+ * both directions, and the parent exits with the child's exit code or
143
+ * signal. A watchdog subprocess ensures the child is force-killed if the
144
+ * parent dies unexpectedly.
145
+ */
146
+ export function foregroundChild(
147
+ program: string,
148
+ args: ReadonlyArray<string>,
149
+ opts: ForegroundChildOptions = {},
150
+ ): ChildProcess {
151
+ const { stderrFilter, cleanup = (): void => {} } = opts;
152
+
153
+ const stdio: Array<"pipe" | "ignore" | "inherit" | number> = stderrFilter
154
+ ? [0, 1, "pipe"]
155
+ : [0, 1, 2];
156
+ if (process.send) stdio.push("ipc" as unknown as number);
157
+
158
+ const child = spawn(program, args as string[], { stdio });
159
+
160
+ if (stderrFilter && child.stderr) {
161
+ let buf = "";
162
+ child.stderr.on("data", (chunk: Buffer | string) => {
163
+ buf += chunk.toString();
164
+ let nl: number;
165
+ while ((nl = buf.search(/\r?\n/)) !== -1) {
166
+ const eol = buf.startsWith("\r\n", nl) ? 2 : 1;
167
+ const line = buf.slice(0, nl + eol);
168
+ buf = buf.slice(nl + eol);
169
+ if (stderrFilter(line)) process.stderr.write(line);
170
+ }
171
+ });
172
+ child.stderr.on("end", () => {
173
+ if (buf && stderrFilter(buf)) process.stderr.write(buf);
174
+ });
175
+ }
176
+
177
+ const childHangup = (): void => {
178
+ try {
179
+ child.kill("SIGHUP");
180
+ } catch (_) {
181
+ child.kill("SIGTERM");
182
+ }
183
+ };
184
+ const removeOnExit = exitHook(childHangup);
185
+
186
+ proxySignals(child);
187
+ const dog = watchdog(child);
188
+
189
+ let done = false;
190
+ dog.on("close", (code, signal) => {
191
+ if (done) return;
192
+ child.kill("SIGKILL");
193
+ throw new Error("foreground-child watchdog process died unexpectedly!", {
194
+ cause: {
195
+ pid: dog.pid,
196
+ code,
197
+ signal,
198
+ watchedProcess: { cmd: program, args, pid: child.pid },
199
+ },
200
+ });
201
+ });
202
+
203
+ child.on("close", async (code, signal) => {
204
+ if (done) return;
205
+ done = true;
206
+ const result = cleanup(code, signal, { watchdogPid: dog.pid });
207
+ const res = isPromise<SyncCleanupResult>(result) ? await result : result;
208
+ removeOnExit();
209
+ if (res === false) return;
210
+ let finalCode: number | null = code;
211
+ let finalSignal: NodeJS.Signals | null = signal;
212
+ if (typeof res === "string") {
213
+ finalSignal = res as NodeJS.Signals;
214
+ finalCode = null;
215
+ } else if (typeof res === "number") {
216
+ finalCode = res;
217
+ finalSignal = null;
218
+ }
219
+ if (finalSignal) {
220
+ setTimeout(() => {}, 2000);
221
+ try {
222
+ process.kill(process.pid, finalSignal);
223
+ } catch (_) {
224
+ process.kill(process.pid, "SIGTERM");
225
+ }
226
+ } else {
227
+ process.exit(finalCode ?? 0);
228
+ }
229
+ });
230
+
231
+ if (process.send) {
232
+ process.removeAllListeners("message");
233
+ child.on("message", (message, sendHandle) => {
234
+ process.send?.(message, sendHandle);
235
+ });
236
+ process.on("message", (message, sendHandle) => {
237
+ if (message === null) return;
238
+ child.send(message, sendHandle);
239
+ });
240
+ }
241
+
242
+ return child;
243
+ }
package/src/ignore.ts CHANGED
@@ -772,7 +772,7 @@ if (
772
772
  export default factory as unknown as (
773
773
  options?: IgnoreOptions,
774
774
  ) => IgnoreInstance;
775
- export { isPathValid };
775
+ export { isPathValid, Ignore };
776
776
 
777
777
  // --- Type declarations -----------------------------------------------------
778
778
  // (not part of the verbatim upstream source; mirrors upstream `index.d.ts`)
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./exit-hook.ts";
2
+ export * from "./foreground-child.ts";
2
3
  export * from "./ignore.ts";
3
4
  export * from "./lockfile-async.ts";
4
5
  export * from "./retry.ts";