teen_process 4.1.2 → 4.1.3
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/CHANGELOG.md +6 -0
- package/build/lib/exec.d.ts.map +1 -1
- package/build/lib/exec.js +9 -7
- package/build/lib/exec.js.map +1 -1
- package/build/lib/subprocess.d.ts.map +1 -1
- package/build/lib/subprocess.js +14 -16
- package/build/lib/subprocess.js.map +1 -1
- package/lib/exec.ts +17 -4
- package/lib/subprocess.ts +19 -14
- package/package.json +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [4.1.3](https://github.com/appium/node-teen_process/compare/v4.1.2...v4.1.3) (2026-05-06)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* replace lodash with native utilities ([#476](https://github.com/appium/node-teen_process/issues/476)) ([2f976f4](https://github.com/appium/node-teen_process/commit/2f976f48c625acf58284f50c28cd17ce01bc2581))
|
|
6
|
+
|
|
1
7
|
## [4.1.2](https://github.com/appium/node-teen_process/compare/v4.1.1...v4.1.2) (2026-04-25)
|
|
2
8
|
|
|
3
9
|
### Bug Fixes
|
package/build/lib/exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../lib/exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../lib/exec.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EAGX,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,IAAI,CAAC,CAAC,SAAS,sBAAsB,GAAG,sBAAsB,EAClF,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAM,EAAO,EACnB,YAAY,GAAE,CAAW,GACxB,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAoH/C"}
|
package/build/lib/exec.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.exec = exec;
|
|
7
4
|
const node_child_process_1 = require("node:child_process");
|
|
8
5
|
const shell_quote_1 = require("shell-quote");
|
|
9
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
6
|
const helpers_1 = require("./helpers");
|
|
11
7
|
const circular_buffer_1 = require("./circular-buffer");
|
|
12
8
|
/**
|
|
@@ -56,7 +52,7 @@ async function exec(cmd, args = [], originalOpts = {}) {
|
|
|
56
52
|
maxStdoutBufferSize: circular_buffer_1.MAX_BUFFER_SIZE,
|
|
57
53
|
maxStderrBufferSize: circular_buffer_1.MAX_BUFFER_SIZE,
|
|
58
54
|
};
|
|
59
|
-
const opts =
|
|
55
|
+
const opts = applyDefaults(defaults, originalOpts);
|
|
60
56
|
const isBuffer = Boolean(opts.isBuffer);
|
|
61
57
|
const spawnOpts = buildSpawnOptions(opts, originalOpts);
|
|
62
58
|
return await new Promise((resolve, reject) => {
|
|
@@ -82,7 +78,8 @@ async function exec(cmd, args = [], originalOpts = {}) {
|
|
|
82
78
|
return;
|
|
83
79
|
}
|
|
84
80
|
stream.on('error', (err) => {
|
|
85
|
-
|
|
81
|
+
const capitalizedStreamType = streamType.charAt(0).toUpperCase() + streamType.slice(1).toLowerCase();
|
|
82
|
+
reject(new Error(`${capitalizedStreamType} '${err.syscall}' error: ${err.stack}`));
|
|
86
83
|
});
|
|
87
84
|
if (opts.ignoreOutput) {
|
|
88
85
|
// https://github.com/nodejs/node/issues/4236
|
|
@@ -91,7 +88,7 @@ async function exec(cmd, args = [], originalOpts = {}) {
|
|
|
91
88
|
}
|
|
92
89
|
stream.on('data', (chunk) => {
|
|
93
90
|
buffer.add(chunk);
|
|
94
|
-
if (opts.logger?.debug
|
|
91
|
+
if (typeof opts.logger?.debug === 'function') {
|
|
95
92
|
opts.logger.debug(chunk.toString());
|
|
96
93
|
}
|
|
97
94
|
});
|
|
@@ -138,6 +135,11 @@ async function exec(cmd, args = [], originalOpts = {}) {
|
|
|
138
135
|
}
|
|
139
136
|
});
|
|
140
137
|
}
|
|
138
|
+
function applyDefaults(defaults, originalOpts) {
|
|
139
|
+
const normalizedOriginalOpts = originalOpts !== null && typeof originalOpts === 'object' ? originalOpts : {};
|
|
140
|
+
const definedOriginalOpts = Object.fromEntries(Object.entries(normalizedOriginalOpts).filter(([, value]) => value !== undefined));
|
|
141
|
+
return { ...defaults, ...definedOriginalOpts };
|
|
142
|
+
}
|
|
141
143
|
function buildSpawnOptions(opts, originalOpts) {
|
|
142
144
|
return {
|
|
143
145
|
cwd: opts.cwd,
|
package/build/lib/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../lib/exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../lib/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subprocess.d.ts","sourceRoot":"","sources":["../../lib/subprocess.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"subprocess.d.ts","sourceRoot":"","sources":["../../lib/subprocess.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAKzC,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAA4B,MAAM,SAAS,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,UAAU,CACrB,kBAAkB,SAAS,iBAAiB,GAAG,iBAAiB,CAChE,SAAQ,YAAY;IACpB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,aAAa,CAAU;gBAEnB,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB;IAwBvE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,KAAK,CACT,aAAa,GAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,IAAW,EACjF,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,IAAW,EACzC,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAsJhB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9E;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CAAC,gBAAgB,GAAE,MAAM,EAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBpE;;;;;;;OAOG;IACH,aAAa,IAAI,IAAI;IASrB,OAAO,CAAC,SAAS;CAYlB"}
|
package/build/lib/subprocess.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.SubProcess = void 0;
|
|
7
4
|
const node_child_process_1 = require("node:child_process");
|
|
8
5
|
const node_events_1 = require("node:events");
|
|
9
6
|
const shell_quote_1 = require("shell-quote");
|
|
10
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
11
7
|
const helpers_1 = require("./helpers");
|
|
12
8
|
const node_readline_1 = require("node:readline");
|
|
13
9
|
/**
|
|
@@ -57,18 +53,18 @@ class SubProcess extends node_events_1.EventEmitter {
|
|
|
57
53
|
if (!cmd) {
|
|
58
54
|
throw new Error('Command is required');
|
|
59
55
|
}
|
|
60
|
-
if (!
|
|
56
|
+
if (typeof cmd !== 'string' && !(cmd instanceof String)) {
|
|
61
57
|
throw new Error('Command must be a string');
|
|
62
58
|
}
|
|
63
|
-
if (!
|
|
59
|
+
if (!Array.isArray(args)) {
|
|
64
60
|
throw new Error('Args must be an array');
|
|
65
61
|
}
|
|
66
|
-
this.cmd = cmd;
|
|
62
|
+
this.cmd = String(cmd);
|
|
67
63
|
this.args = args;
|
|
68
64
|
this.proc = null;
|
|
69
65
|
this.opts = opts ?? {};
|
|
70
66
|
this.expectingExit = false;
|
|
71
|
-
this.rep = (0, shell_quote_1.quote)([cmd, ...args]);
|
|
67
|
+
this.rep = (0, shell_quote_1.quote)([String(cmd), ...args]);
|
|
72
68
|
}
|
|
73
69
|
get isRunning() {
|
|
74
70
|
return !!this.proc;
|
|
@@ -108,21 +104,23 @@ class SubProcess extends node_events_1.EventEmitter {
|
|
|
108
104
|
if (startDetector === null) {
|
|
109
105
|
detector = genericStartDetector;
|
|
110
106
|
}
|
|
111
|
-
if (
|
|
112
|
-
startDelay = startDetector;
|
|
107
|
+
if (typeof startDetector === 'number' || startDetector instanceof Number) {
|
|
108
|
+
startDelay = Number(startDetector);
|
|
113
109
|
detector = null;
|
|
114
110
|
}
|
|
115
|
-
else if (
|
|
111
|
+
else if (typeof startDetector === 'function') {
|
|
116
112
|
detector = startDetector;
|
|
117
113
|
}
|
|
118
|
-
if (
|
|
114
|
+
if ((typeof startDetector === 'boolean' || startDetector instanceof Boolean) &&
|
|
115
|
+
Boolean(startDetector)) {
|
|
119
116
|
if (!this.opts.detached) {
|
|
120
117
|
throw new Error(`Unable to detach process that is not started with 'detached' option`);
|
|
121
118
|
}
|
|
122
119
|
detach = true;
|
|
123
120
|
detector = genericStartDetector;
|
|
124
121
|
}
|
|
125
|
-
else if (
|
|
122
|
+
else if ((typeof timeoutMs === 'boolean' || timeoutMs instanceof Boolean) &&
|
|
123
|
+
Boolean(timeoutMs)) {
|
|
126
124
|
if (!this.opts.detached) {
|
|
127
125
|
throw new Error(`Unable to detach process that is not started with 'detached' option`);
|
|
128
126
|
}
|
|
@@ -200,10 +198,10 @@ class SubProcess extends node_events_1.EventEmitter {
|
|
|
200
198
|
if (!detector) {
|
|
201
199
|
setTimeout(() => resolve(), startDelay);
|
|
202
200
|
}
|
|
203
|
-
if (
|
|
201
|
+
if (typeof timeoutMs === 'number' || timeoutMs instanceof Number) {
|
|
204
202
|
setTimeout(() => {
|
|
205
203
|
reject(new Error(`The process did not start within ${timeoutMs}ms (cmd: '${this.rep}')`));
|
|
206
|
-
}, timeoutMs);
|
|
204
|
+
}, Number(timeoutMs));
|
|
207
205
|
}
|
|
208
206
|
}).finally(() => {
|
|
209
207
|
if (detach && this.proc) {
|
|
@@ -294,7 +292,7 @@ class SubProcess extends node_events_1.EventEmitter {
|
|
|
294
292
|
}
|
|
295
293
|
emitLines(streamName, lines) {
|
|
296
294
|
const doEmit = (line) => this.emit('stream-line', `[${streamName.toUpperCase()}] ${line}`);
|
|
297
|
-
if (
|
|
295
|
+
if (typeof lines === 'string' || lines instanceof String) {
|
|
298
296
|
doEmit(lines);
|
|
299
297
|
}
|
|
300
298
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../lib/subprocess.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../lib/subprocess.ts"],"names":[],"mappings":"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"}
|
package/lib/exec.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {spawn} from 'node:child_process';
|
|
2
2
|
import {quote} from 'shell-quote';
|
|
3
|
-
import _ from 'lodash';
|
|
4
3
|
import {formatEnoent} from './helpers';
|
|
5
4
|
import {CircularBuffer, MAX_BUFFER_SIZE} from './circular-buffer';
|
|
6
5
|
import type {
|
|
@@ -64,7 +63,7 @@ export async function exec<T extends TeenProcessExecOptions = TeenProcessExecOpt
|
|
|
64
63
|
maxStderrBufferSize: MAX_BUFFER_SIZE,
|
|
65
64
|
};
|
|
66
65
|
|
|
67
|
-
const opts =
|
|
66
|
+
const opts = applyDefaults(defaults, originalOpts);
|
|
68
67
|
const isBuffer = Boolean(opts.isBuffer);
|
|
69
68
|
const spawnOpts = buildSpawnOptions(opts, originalOpts);
|
|
70
69
|
|
|
@@ -95,7 +94,9 @@ export async function exec<T extends TeenProcessExecOptions = TeenProcessExecOpt
|
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
stream.on('error', (err: NodeJS.ErrnoException) => {
|
|
98
|
-
|
|
97
|
+
const capitalizedStreamType =
|
|
98
|
+
streamType.charAt(0).toUpperCase() + streamType.slice(1).toLowerCase();
|
|
99
|
+
reject(new Error(`${capitalizedStreamType} '${err.syscall}' error: ${err.stack}`));
|
|
99
100
|
});
|
|
100
101
|
|
|
101
102
|
if (opts.ignoreOutput) {
|
|
@@ -106,7 +107,7 @@ export async function exec<T extends TeenProcessExecOptions = TeenProcessExecOpt
|
|
|
106
107
|
|
|
107
108
|
stream.on('data', (chunk: Buffer) => {
|
|
108
109
|
buffer.add(chunk);
|
|
109
|
-
if (opts.logger?.debug
|
|
110
|
+
if (typeof opts.logger?.debug === 'function') {
|
|
110
111
|
opts.logger.debug(chunk.toString());
|
|
111
112
|
}
|
|
112
113
|
});
|
|
@@ -161,6 +162,18 @@ export async function exec<T extends TeenProcessExecOptions = TeenProcessExecOpt
|
|
|
161
162
|
});
|
|
162
163
|
}
|
|
163
164
|
|
|
165
|
+
function applyDefaults<T extends TeenProcessExecOptions>(
|
|
166
|
+
defaults: TeenProcessExecOptions,
|
|
167
|
+
originalOpts: T,
|
|
168
|
+
): T {
|
|
169
|
+
const normalizedOriginalOpts =
|
|
170
|
+
originalOpts !== null && typeof originalOpts === 'object' ? originalOpts : ({} as T);
|
|
171
|
+
const definedOriginalOpts = Object.fromEntries(
|
|
172
|
+
Object.entries(normalizedOriginalOpts).filter(([, value]) => value !== undefined),
|
|
173
|
+
) as Partial<T>;
|
|
174
|
+
return {...defaults, ...definedOriginalOpts} as T;
|
|
175
|
+
}
|
|
176
|
+
|
|
164
177
|
function buildSpawnOptions<T extends TeenProcessExecOptions>(opts: T, originalOpts: T) {
|
|
165
178
|
return {
|
|
166
179
|
cwd: opts.cwd,
|
package/lib/subprocess.ts
CHANGED
|
@@ -2,7 +2,6 @@ import {spawn} from 'node:child_process';
|
|
|
2
2
|
import type {ChildProcess} from 'node:child_process';
|
|
3
3
|
import {EventEmitter} from 'node:events';
|
|
4
4
|
import {quote} from 'shell-quote';
|
|
5
|
-
import _ from 'lodash';
|
|
6
5
|
import {formatEnoent} from './helpers';
|
|
7
6
|
import {createInterface} from 'node:readline';
|
|
8
7
|
import type {Readable} from 'node:stream';
|
|
@@ -60,21 +59,21 @@ export class SubProcess<
|
|
|
60
59
|
throw new Error('Command is required');
|
|
61
60
|
}
|
|
62
61
|
|
|
63
|
-
if (!
|
|
62
|
+
if (typeof cmd !== 'string' && !((cmd as any) instanceof String)) {
|
|
64
63
|
throw new Error('Command must be a string');
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
if (!
|
|
66
|
+
if (!Array.isArray(args)) {
|
|
68
67
|
throw new Error('Args must be an array');
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
this.cmd = cmd;
|
|
70
|
+
this.cmd = String(cmd);
|
|
72
71
|
this.args = args;
|
|
73
72
|
this.proc = null;
|
|
74
73
|
this.opts = opts ?? ({} as TSubProcessOptions);
|
|
75
74
|
this.expectingExit = false;
|
|
76
75
|
|
|
77
|
-
this.rep = quote([cmd, ...args]);
|
|
76
|
+
this.rep = quote([String(cmd), ...args]);
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
get isRunning(): boolean {
|
|
@@ -125,20 +124,26 @@ export class SubProcess<
|
|
|
125
124
|
detector = genericStartDetector;
|
|
126
125
|
}
|
|
127
126
|
|
|
128
|
-
if (
|
|
129
|
-
startDelay = startDetector;
|
|
127
|
+
if (typeof startDetector === 'number' || (startDetector as any) instanceof Number) {
|
|
128
|
+
startDelay = Number(startDetector);
|
|
130
129
|
detector = null;
|
|
131
|
-
} else if (
|
|
130
|
+
} else if (typeof startDetector === 'function') {
|
|
132
131
|
detector = startDetector;
|
|
133
132
|
}
|
|
134
133
|
|
|
135
|
-
if (
|
|
134
|
+
if (
|
|
135
|
+
(typeof startDetector === 'boolean' || (startDetector as any) instanceof Boolean) &&
|
|
136
|
+
Boolean(startDetector)
|
|
137
|
+
) {
|
|
136
138
|
if (!this.opts.detached) {
|
|
137
139
|
throw new Error(`Unable to detach process that is not started with 'detached' option`);
|
|
138
140
|
}
|
|
139
141
|
detach = true;
|
|
140
142
|
detector = genericStartDetector;
|
|
141
|
-
} else if (
|
|
143
|
+
} else if (
|
|
144
|
+
(typeof timeoutMs === 'boolean' || (timeoutMs as any) instanceof Boolean) &&
|
|
145
|
+
Boolean(timeoutMs)
|
|
146
|
+
) {
|
|
142
147
|
if (!this.opts.detached) {
|
|
143
148
|
throw new Error(`Unable to detach process that is not started with 'detached' option`);
|
|
144
149
|
}
|
|
@@ -246,10 +251,10 @@ export class SubProcess<
|
|
|
246
251
|
setTimeout(() => resolve(), startDelay);
|
|
247
252
|
}
|
|
248
253
|
|
|
249
|
-
if (
|
|
254
|
+
if (typeof timeoutMs === 'number' || (timeoutMs as any) instanceof Number) {
|
|
250
255
|
setTimeout(() => {
|
|
251
256
|
reject(new Error(`The process did not start within ${timeoutMs}ms (cmd: '${this.rep}')`));
|
|
252
|
-
}, timeoutMs);
|
|
257
|
+
}, Number(timeoutMs));
|
|
253
258
|
}
|
|
254
259
|
}).finally(() => {
|
|
255
260
|
if (detach && this.proc) {
|
|
@@ -346,8 +351,8 @@ export class SubProcess<
|
|
|
346
351
|
const doEmit = (line: string) =>
|
|
347
352
|
this.emit('stream-line', `[${streamName.toUpperCase()}] ${line}`);
|
|
348
353
|
|
|
349
|
-
if (
|
|
350
|
-
doEmit(lines);
|
|
354
|
+
if (typeof lines === 'string' || (lines as any) instanceof String) {
|
|
355
|
+
doEmit(lines as string);
|
|
351
356
|
} else {
|
|
352
357
|
for (const line of lines) {
|
|
353
358
|
doEmit(line);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "teen_process",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.3",
|
|
4
4
|
"description": "A grown up version of Node's spawn/exec",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"child_process",
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
"singleQuote": true
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"lodash": "^4.17.21",
|
|
54
53
|
"shell-quote": "^1.8.1"
|
|
55
54
|
},
|
|
56
55
|
"devDependencies": {
|
|
@@ -59,7 +58,6 @@
|
|
|
59
58
|
"@appium/types": "^1.0.0-rc.1",
|
|
60
59
|
"@semantic-release/changelog": "^6.0.3",
|
|
61
60
|
"@semantic-release/git": "^10.0.1",
|
|
62
|
-
"@types/lodash": "^4.14.202",
|
|
63
61
|
"@types/mocha": "10.0.10",
|
|
64
62
|
"@types/node": "^25.0.0",
|
|
65
63
|
"@types/shell-quote": "^1.7.5",
|