cross-spawn-cb 3.1.1 → 3.2.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/dist/cjs/compat.d.cts +0 -1
- package/dist/cjs/compat.d.ts +0 -1
- package/dist/cjs/compat.js +3 -25
- package/dist/cjs/compat.js.map +1 -1
- package/dist/cjs/shim/parse.js +39 -17
- package/dist/cjs/shim/parse.js.map +1 -1
- package/dist/cjs/shim/spawnSync.d.cts +2 -2
- package/dist/cjs/shim/spawnSync.d.ts +2 -2
- package/dist/cjs/shim/spawnSync.js.map +1 -1
- package/dist/cjs/spawn.js +2 -5
- package/dist/cjs/spawn.js.map +1 -1
- package/dist/cjs/spawnSync.js.map +1 -1
- package/dist/cjs/workers/async.js +2 -5
- package/dist/cjs/workers/async.js.map +1 -1
- package/dist/esm/compat.d.ts +0 -1
- package/dist/esm/compat.js +0 -14
- package/dist/esm/compat.js.map +1 -1
- package/dist/esm/shim/parse.js +9 -17
- package/dist/esm/shim/parse.js.map +1 -1
- package/dist/esm/shim/spawnSync.d.ts +2 -2
- package/dist/esm/shim/spawnSync.js.map +1 -1
- package/dist/esm/spawn.js +2 -5
- package/dist/esm/spawn.js.map +1 -1
- package/dist/esm/spawnSync.js.map +1 -1
- package/dist/esm/workers/async.js +2 -5
- package/dist/esm/workers/async.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/compat.d.cts
CHANGED
package/dist/cjs/compat.d.ts
CHANGED
package/dist/cjs/compat.js
CHANGED
|
@@ -2,18 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get allocBuffer () {
|
|
5
|
+
Object.defineProperty(exports, "allocBuffer", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
13
8
|
return allocBuffer;
|
|
14
|
-
},
|
|
15
|
-
get objectAssign () {
|
|
16
|
-
return objectAssign;
|
|
17
9
|
}
|
|
18
10
|
});
|
|
19
11
|
/**
|
|
@@ -30,18 +22,4 @@ function allocBuffer(size) {
|
|
|
30
22
|
buffer.fill(0);
|
|
31
23
|
return buffer;
|
|
32
24
|
}
|
|
33
|
-
// Object.assign (ES2015 / Node 4.0+)
|
|
34
|
-
var hasObjectAssign = typeof Object.assign === 'function';
|
|
35
|
-
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
36
|
-
function objectAssign(target, source) {
|
|
37
|
-
if (hasObjectAssign) {
|
|
38
|
-
return Object.assign(target, source);
|
|
39
|
-
}
|
|
40
|
-
for(var key in source){
|
|
41
|
-
if (_hasOwnProperty.call(source, key)) {
|
|
42
|
-
target[key] = source[key];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return target;
|
|
46
|
-
}
|
|
47
25
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
package/dist/cjs/compat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Provides polyfills for features not available in older Node versions.\n */\n\n// Buffer.alloc (Node 4.5+)\nconst hasBufferAlloc = typeof Buffer.alloc === 'function';\n\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Node < 4.5 fallback\n const buffer = new (Buffer as unknown as new (size: number) => Buffer)(size);\n buffer.fill(0);\n return buffer;\n}\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Provides polyfills for features not available in older Node versions.\n */\n\n// Buffer.alloc (Node 4.5+)\nconst hasBufferAlloc = typeof Buffer.alloc === 'function';\n\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Node < 4.5 fallback\n const buffer = new (Buffer as unknown as new (size: number) => Buffer)(size);\n buffer.fill(0);\n return buffer;\n}\n"],"names":["allocBuffer","hasBufferAlloc","Buffer","alloc","size","buffer","fill"],"mappings":";;;;+BAQgBA;;;eAAAA;;;AARhB;;;CAGC,GAED,2BAA2B;AAC3B,IAAMC,iBAAiB,OAAOC,OAAOC,KAAK,KAAK;AAExC,SAASH,YAAYI,IAAY;IACtC,IAAIH,gBAAgB;QAClB,OAAOC,OAAOC,KAAK,CAACC;IACtB;IACA,sBAAsB;IACtB,IAAMC,SAAS,IAAKH,OAAmDE;IACvEC,OAAOC,IAAI,CAAC;IACZ,OAAOD;AACT"}
|
package/dist/cjs/shim/parse.js
CHANGED
|
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "parse", {
|
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
15
|
-
var _compatts = require("../compat.js");
|
|
16
15
|
var _constantsts = require("../constants.js");
|
|
17
16
|
var _escapets = require("./escape.js");
|
|
18
17
|
var _resolvets = require("./resolve.js");
|
|
@@ -25,6 +24,19 @@ function _array_like_to_array(arr, len) {
|
|
|
25
24
|
function _array_with_holes(arr) {
|
|
26
25
|
if (Array.isArray(arr)) return arr;
|
|
27
26
|
}
|
|
27
|
+
function _define_property(obj, key, value) {
|
|
28
|
+
if (key in obj) {
|
|
29
|
+
Object.defineProperty(obj, key, {
|
|
30
|
+
value: value,
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true
|
|
34
|
+
});
|
|
35
|
+
} else {
|
|
36
|
+
obj[key] = value;
|
|
37
|
+
}
|
|
38
|
+
return obj;
|
|
39
|
+
}
|
|
28
40
|
function _interop_require_default(obj) {
|
|
29
41
|
return obj && obj.__esModule ? obj : {
|
|
30
42
|
default: obj
|
|
@@ -57,9 +69,28 @@ function _iterable_to_array_limit(arr, i) {
|
|
|
57
69
|
function _non_iterable_rest() {
|
|
58
70
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
59
71
|
}
|
|
72
|
+
function _object_spread(target) {
|
|
73
|
+
for(var i = 1; i < arguments.length; i++){
|
|
74
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
75
|
+
var ownKeys = Object.keys(source);
|
|
76
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
77
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
78
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
ownKeys.forEach(function(key) {
|
|
82
|
+
_define_property(target, key, source[key]);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return target;
|
|
86
|
+
}
|
|
60
87
|
function _sliced_to_array(arr, i) {
|
|
61
88
|
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
62
89
|
}
|
|
90
|
+
function _type_of(obj) {
|
|
91
|
+
"@swc/helpers - typeof";
|
|
92
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
93
|
+
}
|
|
63
94
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
64
95
|
if (!o) return;
|
|
65
96
|
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
@@ -154,33 +185,24 @@ var NODES = [
|
|
|
154
185
|
'node.cmd'
|
|
155
186
|
];
|
|
156
187
|
function parse(command, args, options) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
var opts;
|
|
160
|
-
if (args && !Array.isArray(args)) {
|
|
161
|
-
// args is actually options
|
|
162
|
-
argsArray = [];
|
|
163
|
-
opts = (0, _compatts.objectAssign)({}, args);
|
|
164
|
-
} else {
|
|
165
|
-
argsArray = args ? args.slice(0) : [];
|
|
166
|
-
opts = (0, _compatts.objectAssign)({}, options || {});
|
|
167
|
-
}
|
|
188
|
+
options = (typeof args === "undefined" ? "undefined" : _type_of(args)) && !Array.isArray(args) ? {} : _object_spread({}, options || {});
|
|
189
|
+
args = (typeof args === "undefined" ? "undefined" : _type_of(args)) && !Array.isArray(args) ? [] : args.slice(0) || [];
|
|
168
190
|
// Build parsed object with original command/args BEFORE any substitution
|
|
169
191
|
var parsed = {
|
|
170
192
|
command: command,
|
|
171
|
-
args:
|
|
172
|
-
options:
|
|
193
|
+
args: args,
|
|
194
|
+
options: options,
|
|
173
195
|
file: undefined,
|
|
174
196
|
original: {
|
|
175
197
|
command: command,
|
|
176
|
-
args:
|
|
198
|
+
args: args
|
|
177
199
|
}
|
|
178
200
|
};
|
|
179
201
|
// Substitute node command with NODE env var if set
|
|
180
202
|
if (NODES.indexOf(_path.default.basename(parsed.command).toLowerCase()) >= 0) {
|
|
181
|
-
var env =
|
|
203
|
+
var env = options.env || process.env;
|
|
182
204
|
parsed.command = env.NODE || env.npm_node_execpath || parsed.command;
|
|
183
205
|
}
|
|
184
|
-
return
|
|
206
|
+
return options.shell ? parseShell(parsed) : parseNonShell(parsed);
|
|
185
207
|
}
|
|
186
208
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/parse.ts"],"sourcesContent":["/**\n * Command parsing for cross-platform spawn\n * Simplified from cross-spawn v6.0.5\n */\n\nimport path from 'path';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/parse.ts"],"sourcesContent":["/**\n * Command parsing for cross-platform spawn\n * Simplified from cross-spawn v6.0.5\n */\n\nimport path from 'path';\nimport { isWindows } from '../constants.ts';\nimport { escapeArgument, escapeCommand } from './escape.ts';\nimport { resolveCommand } from './resolve.ts';\nimport { readShebang } from './shebang.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\n// Node ^4.8.0 || ^5.7.0 || >= 6.0.0 supports shell option natively\n// See: https://github.com/nodejs/node/pull/4598\nconst [major, minor] = process.versions.node.split('.').map(Number);\nconst supportsShellOption = major >= 6 || (major === 5 && minor >= 7) || (major === 4 && minor >= 8);\n\nfunction detectShebang(parsed: Parsed): string | null {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed: Parsed): Parsed {\n if (!isWindows) return parsed;\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile || '');\n\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile || '');\n\n // Normalize posix paths into OS compatible paths\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escapeCommand(parsed.command);\n parsed.args = parsed.args.map((arg) => escapeArgument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true;\n }\n\n return parsed;\n}\n\nfunction parseShell(parsed: Parsed): Parsed {\n // If node supports the shell option, there's no need to mimic its behavior\n if (supportsShellOption) {\n return parsed;\n }\n\n // Mimic node shell option for older Node versions\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n if (isWindows) {\n parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe';\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.options.windowsVerbatimArguments = true;\n } else {\n if (typeof parsed.options.shell === 'string') {\n parsed.command = parsed.options.shell;\n } else if (process.platform === 'android') {\n parsed.command = '/system/bin/sh';\n } else {\n parsed.command = '/bin/sh';\n }\n parsed.args = ['-c', shellCommand];\n }\n\n return parsed;\n}\n\n// Handle NODE/npm_node_execpath env vars for node commands\nconst NODES = ['node', 'node.exe', 'node.cmd'];\n\nexport function parse(command: string, args?: string[] | ShimSpawnOptions | null, options?: ShimSpawnOptions): Parsed {\n options = typeof args && !Array.isArray(args) ? {} : ({ ...(options || {}) } as ShimSpawnOptions);\n args = typeof args && !Array.isArray(args) ? [] : (((args as string[]).slice(0) || []) as string[]);\n\n // Build parsed object with original command/args BEFORE any substitution\n const parsed: Parsed = {\n command: command,\n args,\n options,\n file: undefined,\n original: {\n command: command,\n args,\n },\n };\n\n // Substitute node command with NODE env var if set\n if (NODES.indexOf(path.basename(parsed.command).toLowerCase()) >= 0) {\n const env = options.env || process.env;\n parsed.command = env.NODE || env.npm_node_execpath || parsed.command;\n }\n\n return options.shell ? parseShell(parsed) : parseNonShell(parsed);\n}\n"],"names":["parse","isExecutableRegExp","isCmdShimRegExp","process","versions","node","split","map","Number","major","minor","supportsShellOption","detectShebang","parsed","file","resolveCommand","shebang","readShebang","args","unshift","command","parseNonShell","isWindows","commandFile","needsShell","test","options","forceShell","needsDoubleEscapeMetaChars","path","normalize","escapeCommand","arg","escapeArgument","shellCommand","concat","join","env","comspec","windowsVerbatimArguments","parseShell","shell","platform","NODES","Array","isArray","slice","undefined","original","indexOf","basename","toLowerCase","NODE","npm_node_execpath"],"mappings":"AAAA;;;CAGC;;;;+BA0FeA;;;eAAAA;;;2DAxFC;2BACS;wBACoB;yBACf;yBACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG5B,IAAMC,qBAAqB;AAC3B,IAAMC,kBAAkB;AAExB,mEAAmE;AACnE,gDAAgD;AAChD,IAAuBC,oDAAAA,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,aAArDC,QAAgBN,qCAATO,QAASP;AACvB,IAAMQ,sBAAsBF,SAAS,KAAMA,UAAU,KAAKC,SAAS,KAAOD,UAAU,KAAKC,SAAS;AAElG,SAASE,cAAcC,MAAc;IACnCA,OAAOC,IAAI,GAAGC,IAAAA,yBAAc,EAACF;IAE7B,IAAMG,UAAUH,OAAOC,IAAI,IAAIG,IAAAA,sBAAW,EAACJ,OAAOC,IAAI;IACtD,IAAIE,SAAS;QACXH,OAAOK,IAAI,CAACC,OAAO,CAACN,OAAOC,IAAI;QAC/BD,OAAOO,OAAO,GAAGJ;QACjB,OAAOD,IAAAA,yBAAc,EAACF;IACxB;IAEA,OAAOA,OAAOC,IAAI;AACpB;AAEA,SAASO,cAAcR,MAAc;IACnC,IAAI,CAACS,sBAAS,EAAE,OAAOT;IAEvB,oCAAoC;IACpC,IAAMU,cAAcX,cAAcC;IAElC,iEAAiE;IACjE,IAAMW,aAAa,CAACvB,mBAAmBwB,IAAI,CAACF,eAAe;IAE3D,IAAIV,OAAOa,OAAO,CAACC,UAAU,IAAIH,YAAY;QAC3C,gEAAgE;QAChE,IAAMI,6BAA6B1B,gBAAgBuB,IAAI,CAACF,eAAe;QAEvE,iDAAiD;QACjDV,OAAOO,OAAO,GAAGS,aAAI,CAACC,SAAS,CAACjB,OAAOO,OAAO;QAE9C,6BAA6B;QAC7BP,OAAOO,OAAO,GAAGW,IAAAA,uBAAa,EAAClB,OAAOO,OAAO;QAC7CP,OAAOK,IAAI,GAAGL,OAAOK,IAAI,CAACX,GAAG,CAAC,SAACyB;mBAAQC,IAAAA,wBAAc,EAACD,KAAKJ;;QAE3D,IAAMM,eAAe;YAACrB,OAAOO,OAAO;SAAC,CAACe,MAAM,CAACtB,OAAOK,IAAI,EAAEkB,IAAI,CAAC;QAE/DvB,OAAOK,IAAI,GAAG;YAAC;YAAM;YAAM;YAAO,IAAgB,OAAbgB,cAAa;SAAG;QACrDrB,OAAOO,OAAO,GAAGjB,QAAQkC,GAAG,CAACC,OAAO,IAAI;QACxCzB,OAAOa,OAAO,CAACa,wBAAwB,GAAG;IAC5C;IAEA,OAAO1B;AACT;AAEA,SAAS2B,WAAW3B,MAAc;IAChC,2EAA2E;IAC3E,IAAIF,qBAAqB;QACvB,OAAOE;IACT;IAEA,kDAAkD;IAClD,IAAMqB,eAAe;QAACrB,OAAOO,OAAO;KAAC,CAACe,MAAM,CAACtB,OAAOK,IAAI,EAAEkB,IAAI,CAAC;IAE/D,IAAId,sBAAS,EAAE;QACbT,OAAOO,OAAO,GAAG,OAAOP,OAAOa,OAAO,CAACe,KAAK,KAAK,WAAW5B,OAAOa,OAAO,CAACe,KAAK,GAAGtC,QAAQkC,GAAG,CAACC,OAAO,IAAI;QAC1GzB,OAAOK,IAAI,GAAG;YAAC;YAAM;YAAM;YAAO,IAAgB,OAAbgB,cAAa;SAAG;QACrDrB,OAAOa,OAAO,CAACa,wBAAwB,GAAG;IAC5C,OAAO;QACL,IAAI,OAAO1B,OAAOa,OAAO,CAACe,KAAK,KAAK,UAAU;YAC5C5B,OAAOO,OAAO,GAAGP,OAAOa,OAAO,CAACe,KAAK;QACvC,OAAO,IAAItC,QAAQuC,QAAQ,KAAK,WAAW;YACzC7B,OAAOO,OAAO,GAAG;QACnB,OAAO;YACLP,OAAOO,OAAO,GAAG;QACnB;QACAP,OAAOK,IAAI,GAAG;YAAC;YAAMgB;SAAa;IACpC;IAEA,OAAOrB;AACT;AAEA,2DAA2D;AAC3D,IAAM8B,QAAQ;IAAC;IAAQ;IAAY;CAAW;AAEvC,SAAS3C,MAAMoB,OAAe,EAAEF,IAAyC,EAAEQ,OAA0B;IAC1GA,UAAU,CAAA,OAAOR,qCAAP,SAAOA,KAAG,KAAK,CAAC0B,MAAMC,OAAO,CAAC3B,QAAQ,CAAC,IAAK,mBAAMQ,WAAW,CAAC;IACxER,OAAO,CAAA,OAAOA,qCAAP,SAAOA,KAAG,KAAK,CAAC0B,MAAMC,OAAO,CAAC3B,QAAQ,EAAE,GAAK,AAACA,KAAkB4B,KAAK,CAAC,MAAM,EAAE;IAErF,yEAAyE;IACzE,IAAMjC,SAAiB;QACrBO,SAASA;QACTF,MAAAA;QACAQ,SAAAA;QACAZ,MAAMiC;QACNC,UAAU;YACR5B,SAASA;YACTF,MAAAA;QACF;IACF;IAEA,mDAAmD;IACnD,IAAIyB,MAAMM,OAAO,CAACpB,aAAI,CAACqB,QAAQ,CAACrC,OAAOO,OAAO,EAAE+B,WAAW,OAAO,GAAG;QACnE,IAAMd,MAAMX,QAAQW,GAAG,IAAIlC,QAAQkC,GAAG;QACtCxB,OAAOO,OAAO,GAAGiB,IAAIe,IAAI,IAAIf,IAAIgB,iBAAiB,IAAIxC,OAAOO,OAAO;IACtE;IAEA,OAAOM,QAAQe,KAAK,GAAGD,WAAW3B,UAAUQ,cAAcR;AAC5D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SpawnResult } from '../types.js';
|
|
2
|
-
export default function spawnSync(cmd: string, args: string[], options?:
|
|
1
|
+
import type { SpawnOptions, SpawnResult } from '../types.js';
|
|
2
|
+
export default function spawnSync(cmd: string, args: string[], options?: SpawnOptions): SpawnResult;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SpawnResult } from '../types.js';
|
|
2
|
-
export default function spawnSync(cmd: string, args: string[], options?:
|
|
1
|
+
import type { SpawnOptions, SpawnResult } from '../types.js';
|
|
2
|
+
export default function spawnSync(cmd: string, args: string[], options?: SpawnOptions): SpawnResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/spawnSync.ts"],"sourcesContent":["import cp from 'child_process';\nimport { bindSync } from 'node-version-call-local';\nimport path from 'path';\nimport url from 'url';\nimport type { SpawnResult } from '../types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'spawn.js');\n\nfunction run(cmd: string, args: string[], options?: object): SpawnResult {\n return cp.spawnSync(cmd, args, options) as SpawnResult;\n}\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/spawnSync.ts"],"sourcesContent":["import cp from 'child_process';\nimport { bindSync } from 'node-version-call-local';\nimport path from 'path';\nimport url from 'url';\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'spawn.js');\n\nfunction run(cmd: string, args: string[], options?: object): SpawnResult {\n return cp.spawnSync(cmd, args, options) as SpawnResult;\n}\nconst worker = typeof cp.spawnSync === 'function' ? run : bindSync(process.version, workerPath, { callbacks: true });\n\nexport default function spawnSync(cmd: string, args: string[], options?: SpawnOptions): SpawnResult {\n return worker(cmd, args, options || {}) as SpawnResult;\n}\n"],"names":["spawnSync","__dirname","path","dirname","__filename","url","fileURLToPath","workerPath","join","run","cmd","args","options","cp","worker","bindSync","process","version","callbacks"],"mappings":";;;;+BAcA;;;eAAwBA;;;oEAdT;oCACU;2DACR;0DACD;;;;;;AAGhB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,aAAaL,aAAI,CAACM,IAAI,CAACP,WAAW,MAAM,MAAM,OAAO;AAE3D,SAASQ,IAAIC,GAAW,EAAEC,IAAc,EAAEC,OAAgB;IACxD,OAAOC,sBAAE,CAACb,SAAS,CAACU,KAAKC,MAAMC;AACjC;AACA,IAAME,SAAS,OAAOD,sBAAE,CAACb,SAAS,KAAK,aAAaS,MAAMM,IAAAA,8BAAQ,EAACC,QAAQC,OAAO,EAAEV,YAAY;IAAEW,WAAW;AAAK;AAEnG,SAASlB,UAAUU,GAAW,EAAEC,IAAc,EAAEC,OAAsB;IACnF,OAAOE,OAAOJ,KAAKC,MAAMC,WAAW,CAAC;AACvC"}
|
package/dist/cjs/spawn.js
CHANGED
|
@@ -17,11 +17,8 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
function spawn(command, args, options, callback) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
options = {};
|
|
23
|
-
}
|
|
24
|
-
options = options || {};
|
|
20
|
+
callback = typeof options === 'function' ? options : callback;
|
|
21
|
+
options = typeof options === 'function' ? {} : options || {};
|
|
25
22
|
var cp = (0, _crossSpawnts.default)(command, args, options);
|
|
26
23
|
if (typeof callback === 'function') return (0, _asyncts.default)(cp, options, callback);
|
|
27
24
|
return new Promise(function(resolve, reject) {
|
package/dist/cjs/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawn.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport spawnSync from './spawnSync.ts';\nimport type { SpawnCallback, SpawnOptions, SpawnResult } from './types.ts';\nimport worker from './workers/async.ts';\n\nfunction spawn(command: string, args: string[], callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options: SpawnOptions, callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options?: SpawnOptions): Promise<SpawnResult>;\nfunction spawn(command: string, args: string[], options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void | Promise<SpawnResult> {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawn.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport spawnSync from './spawnSync.ts';\nimport type { SpawnCallback, SpawnOptions, SpawnResult } from './types.ts';\nimport worker from './workers/async.ts';\n\nfunction spawn(command: string, args: string[], callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options: SpawnOptions, callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options?: SpawnOptions): Promise<SpawnResult>;\nfunction spawn(command: string, args: string[], options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void | Promise<SpawnResult> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as SpawnOptions);\n const cp = crossSpawn(command, args, options);\n\n if (typeof callback === 'function') return worker(cp, options, callback);\n return new Promise((resolve, reject) => worker(cp, options, (err, res) => (err ? reject(err) : resolve(res))));\n}\nspawn.worker = worker;\nspawn.sync = spawnSync;\nspawn.crossSpawn = crossSpawn;\n\nexport default spawn;\n"],"names":["spawn","command","args","options","callback","cp","crossSpawn","worker","Promise","resolve","reject","err","res","sync","spawnSync"],"mappings":";;;;+BAoBA;;;eAAA;;;mEApBuB;kEACD;8DAEH;;;;;;AAKnB,SAASA,MAAMC,OAAe,EAAEC,IAAc,EAAEC,OAAsC,EAAEC,QAAwB;IAC9GA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAC7D,IAAME,KAAKC,IAAAA,qBAAU,EAACL,SAASC,MAAMC;IAErC,IAAI,OAAOC,aAAa,YAAY,OAAOG,IAAAA,gBAAM,EAACF,IAAIF,SAASC;IAC/D,OAAO,IAAII,QAAQ,SAACC,SAASC;eAAWH,IAAAA,gBAAM,EAACF,IAAIF,SAAS,SAACQ,KAAKC;mBAASD,MAAMD,OAAOC,OAAOF,QAAQG;;;AACzG;AACAZ,MAAMO,MAAM,GAAGA,gBAAM;AACrBP,MAAMa,IAAI,GAAGC,oBAAS;AACtBd,MAAMM,UAAU,GAAGA,qBAAU;IAE7B,WAAeN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawnSync.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport type {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawnSync.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport type { SpawnResult, SpawnSyncOptions } from './types.ts';\nimport worker from './workers/sync.ts';\n\nexport default function spawnSync(command: string, args: string[], options?: SpawnSyncOptions): SpawnResult {\n options = options || ({} as SpawnSyncOptions);\n const syncOptions = { ...options, env: options.env || process.env, stdio: 'pipe', encoding: options.encoding || 'utf8' };\n const res = crossSpawn.sync(command, args, syncOptions as SpawnSyncOptions);\n return worker(res, options);\n}\nspawnSync.worker = worker;\n"],"names":["spawnSync","command","args","options","syncOptions","env","process","stdio","encoding","res","crossSpawn","sync","worker"],"mappings":";;;;+BAIA;;;eAAwBA;;;mEAJD;6DAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEJ,SAASA,UAAUC,OAAe,EAAEC,IAAc,EAAEC,OAA0B;IAC3FA,UAAUA,WAAY,CAAC;IACvB,IAAMC,cAAc,wCAAKD;QAASE,KAAKF,QAAQE,GAAG,IAAIC,QAAQD,GAAG;QAAEE,OAAO;QAAQC,UAAUL,QAAQK,QAAQ,IAAI;;IAChH,IAAMC,MAAMC,qBAAU,CAACC,IAAI,CAACV,SAASC,MAAME;IAC3C,OAAOQ,IAAAA,eAAM,EAACH,KAAKN;AACrB;AACAH,UAAUY,MAAM,GAAGA,eAAM"}
|
|
@@ -16,11 +16,8 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function worker(cp, options, callback) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
options = {};
|
|
22
|
-
}
|
|
23
|
-
options = options || {};
|
|
19
|
+
callback = typeof options === 'function' ? options : callback;
|
|
20
|
+
options = typeof options === 'function' ? {} : options || {};
|
|
24
21
|
// collect output
|
|
25
22
|
var res = {
|
|
26
23
|
pid: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/async.ts"],"sourcesContent":["import oo from 'on-one';\nimport { spawnKeys } from '../constants.ts';\n\nimport type { ChildProcess, SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(cp: ChildProcess, options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/async.ts"],"sourcesContent":["import oo from 'on-one';\nimport { spawnKeys } from '../constants.ts';\n\nimport type { ChildProcess, SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(cp: ChildProcess, options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as SpawnOptions);\n\n // collect output\n const res = { pid: 0, output: [], stdout: null, stderr: null, status: null, signal: null } as SpawnResult;\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n if (options.encoding && cp.stdout) cp.stdout.on('data', stdout.push.bind(stdout));\n if (options.encoding && cp.stderr) cp.stderr.on('data', stderr.push.bind(stderr));\n\n // some versions of node emit both an error and close\n oo(cp, ['error', 'close'], (err: Error | null, status: number | null, signal: NodeJS.Signals | null) => {\n if (err) {\n if ((err as SpawnError).code === 'OK') return; // ignore\n return callback(err as SpawnError);\n }\n\n // prepare result\n res.pid = cp.pid;\n res.status = status;\n res.signal = signal;\n if (options.encoding && cp.stdout) {\n res.stdout = Buffer.concat(stdout);\n if (options.encoding !== 'binary') res.stdout = res.stdout.toString(options.encoding);\n }\n if (options.encoding && cp.stderr) {\n res.stderr = Buffer.concat(stderr);\n if (options.encoding !== 'binary') res.stderr = res.stderr.toString(options.encoding);\n }\n res.output = [null, res.stdout, res.stderr];\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const exitErr = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (exitErr) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n exitErr[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];\n }\n }\n exitErr ? callback(exitErr as SpawnError) : callback(null, res);\n });\n\n // pipe input\n if (options.input && (typeof options.input === 'string' || Buffer.isBuffer(options.input))) {\n cp.stdin.end(options.input);\n }\n}\n"],"names":["worker","cp","options","callback","res","pid","output","stdout","stderr","status","signal","encoding","on","push","bind","oo","err","code","Buffer","concat","toString","exitErr","Error","key","spawnKeys","indexOf","isBuffer","input","stdin","end"],"mappings":";;;;+BAKA;;;eAAwBA;;;4DALT;2BACW;;;;;;AAIX,SAASA,OAAOC,EAAgB,EAAEC,OAAsC,EAAEC,QAAwB;IAC/GA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7D,iBAAiB;IACjB,IAAME,MAAM;QAAEC,KAAK;QAAGC,QAAQ,EAAE;QAAEC,QAAQ;QAAMC,QAAQ;QAAMC,QAAQ;QAAMC,QAAQ;IAAK;IACzF,IAAMH,SAAmB,EAAE;IAC3B,IAAMC,SAAmB,EAAE;IAC3B,IAAIN,QAAQS,QAAQ,IAAIV,GAAGM,MAAM,EAAEN,GAAGM,MAAM,CAACK,EAAE,CAAC,QAAQL,OAAOM,IAAI,CAACC,IAAI,CAACP;IACzE,IAAIL,QAAQS,QAAQ,IAAIV,GAAGO,MAAM,EAAEP,GAAGO,MAAM,CAACI,EAAE,CAAC,QAAQJ,OAAOK,IAAI,CAACC,IAAI,CAACN;IAEzE,qDAAqD;IACrDO,IAAAA,cAAE,EAACd,IAAI;QAAC;QAAS;KAAQ,EAAE,SAACe,KAAmBP,QAAuBC;QACpE,IAAIM,KAAK;YACP,IAAI,AAACA,IAAmBC,IAAI,KAAK,MAAM,QAAQ,SAAS;YACxD,OAAOd,SAASa;QAClB;QAEA,iBAAiB;QACjBZ,IAAIC,GAAG,GAAGJ,GAAGI,GAAG;QAChBD,IAAIK,MAAM,GAAGA;QACbL,IAAIM,MAAM,GAAGA;QACb,IAAIR,QAAQS,QAAQ,IAAIV,GAAGM,MAAM,EAAE;YACjCH,IAAIG,MAAM,GAAGW,OAAOC,MAAM,CAACZ;YAC3B,IAAIL,QAAQS,QAAQ,KAAK,UAAUP,IAAIG,MAAM,GAAGH,IAAIG,MAAM,CAACa,QAAQ,CAAClB,QAAQS,QAAQ;QACtF;QACA,IAAIT,QAAQS,QAAQ,IAAIV,GAAGO,MAAM,EAAE;YACjCJ,IAAII,MAAM,GAAGU,OAAOC,MAAM,CAACX;YAC3B,IAAIN,QAAQS,QAAQ,KAAK,UAAUP,IAAII,MAAM,GAAGJ,IAAII,MAAM,CAACY,QAAQ,CAAClB,QAAQS,QAAQ;QACtF;QACAP,IAAIE,MAAM,GAAG;YAAC;YAAMF,IAAIG,MAAM;YAAEH,IAAII,MAAM;SAAC;QAC3C,IAAIJ,IAAIK,MAAM,KAAK,MAAML,IAAIK,MAAM,GAAG,GAAG,iDAAiD;QAE1F,iBAAiB;QACjB,IAAMY,UAAUjB,IAAIK,MAAM,KAAK,IAAI,IAAIa,MAAM,AAAC,uBAAiC,OAAXlB,IAAIK,MAAM,KAAM;QACpF,IAAIY,SAAS;YACX,IAAK,IAAME,OAAOnB,IAAK;gBACrB,IAAIoB,sBAAS,CAACC,OAAO,CAACF,OAAO,GAAG;gBAChCF,OAAO,CAACE,IAAI,GAAGL,OAAOQ,QAAQ,CAACtB,GAAG,CAACmB,IAAI,IAAInB,GAAG,CAACmB,IAAI,CAACH,QAAQ,CAAClB,QAAQS,QAAQ,IAAI,UAAUP,GAAG,CAACmB,IAAI;YACrG;QACF;QACAF,UAAUlB,SAASkB,WAAyBlB,SAAS,MAAMC;IAC7D;IAEA,aAAa;IACb,IAAIF,QAAQyB,KAAK,IAAK,CAAA,OAAOzB,QAAQyB,KAAK,KAAK,YAAYT,OAAOQ,QAAQ,CAACxB,QAAQyB,KAAK,CAAA,GAAI;QAC1F1B,GAAG2B,KAAK,CAACC,GAAG,CAAC3B,QAAQyB,KAAK;IAC5B;AACF"}
|
package/dist/esm/compat.d.ts
CHANGED
package/dist/esm/compat.js
CHANGED
|
@@ -12,17 +12,3 @@ export function allocBuffer(size) {
|
|
|
12
12
|
buffer.fill(0);
|
|
13
13
|
return buffer;
|
|
14
14
|
}
|
|
15
|
-
// Object.assign (ES2015 / Node 4.0+)
|
|
16
|
-
const hasObjectAssign = typeof Object.assign === 'function';
|
|
17
|
-
const _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
18
|
-
export function objectAssign(target, source) {
|
|
19
|
-
if (hasObjectAssign) {
|
|
20
|
-
return Object.assign(target, source);
|
|
21
|
-
}
|
|
22
|
-
for(const key in source){
|
|
23
|
-
if (_hasOwnProperty.call(source, key)) {
|
|
24
|
-
target[key] = source[key];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return target;
|
|
28
|
-
}
|
package/dist/esm/compat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Provides polyfills for features not available in older Node versions.\n */\n\n// Buffer.alloc (Node 4.5+)\nconst hasBufferAlloc = typeof Buffer.alloc === 'function';\n\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Node < 4.5 fallback\n const buffer = new (Buffer as unknown as new (size: number) => Buffer)(size);\n buffer.fill(0);\n return buffer;\n}\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Provides polyfills for features not available in older Node versions.\n */\n\n// Buffer.alloc (Node 4.5+)\nconst hasBufferAlloc = typeof Buffer.alloc === 'function';\n\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Node < 4.5 fallback\n const buffer = new (Buffer as unknown as new (size: number) => Buffer)(size);\n buffer.fill(0);\n return buffer;\n}\n"],"names":["hasBufferAlloc","Buffer","alloc","allocBuffer","size","buffer","fill"],"mappings":"AAAA;;;CAGC,GAED,2BAA2B;AAC3B,MAAMA,iBAAiB,OAAOC,OAAOC,KAAK,KAAK;AAE/C,OAAO,SAASC,YAAYC,IAAY;IACtC,IAAIJ,gBAAgB;QAClB,OAAOC,OAAOC,KAAK,CAACE;IACtB;IACA,sBAAsB;IACtB,MAAMC,SAAS,IAAKJ,OAAmDG;IACvEC,OAAOC,IAAI,CAAC;IACZ,OAAOD;AACT"}
|
package/dist/esm/shim/parse.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Command parsing for cross-platform spawn
|
|
3
3
|
* Simplified from cross-spawn v6.0.5
|
|
4
4
|
*/ import path from 'path';
|
|
5
|
-
import { objectAssign } from '../compat.js';
|
|
6
5
|
import { isWindows } from '../constants.js';
|
|
7
6
|
import { escapeArgument, escapeCommand } from './escape.js';
|
|
8
7
|
import { resolveCommand } from './resolve.js';
|
|
@@ -91,32 +90,25 @@ const NODES = [
|
|
|
91
90
|
'node.cmd'
|
|
92
91
|
];
|
|
93
92
|
export function parse(command, args, options) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
// args is actually options
|
|
99
|
-
argsArray = [];
|
|
100
|
-
opts = objectAssign({}, args);
|
|
101
|
-
} else {
|
|
102
|
-
argsArray = args ? args.slice(0) : [];
|
|
103
|
-
opts = objectAssign({}, options || {});
|
|
104
|
-
}
|
|
93
|
+
options = typeof args && !Array.isArray(args) ? {} : {
|
|
94
|
+
...options || {}
|
|
95
|
+
};
|
|
96
|
+
args = typeof args && !Array.isArray(args) ? [] : args.slice(0) || [];
|
|
105
97
|
// Build parsed object with original command/args BEFORE any substitution
|
|
106
98
|
const parsed = {
|
|
107
99
|
command: command,
|
|
108
|
-
args
|
|
109
|
-
options
|
|
100
|
+
args,
|
|
101
|
+
options,
|
|
110
102
|
file: undefined,
|
|
111
103
|
original: {
|
|
112
104
|
command: command,
|
|
113
|
-
args
|
|
105
|
+
args
|
|
114
106
|
}
|
|
115
107
|
};
|
|
116
108
|
// Substitute node command with NODE env var if set
|
|
117
109
|
if (NODES.indexOf(path.basename(parsed.command).toLowerCase()) >= 0) {
|
|
118
|
-
const env =
|
|
110
|
+
const env = options.env || process.env;
|
|
119
111
|
parsed.command = env.NODE || env.npm_node_execpath || parsed.command;
|
|
120
112
|
}
|
|
121
|
-
return
|
|
113
|
+
return options.shell ? parseShell(parsed) : parseNonShell(parsed);
|
|
122
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/parse.ts"],"sourcesContent":["/**\n * Command parsing for cross-platform spawn\n * Simplified from cross-spawn v6.0.5\n */\n\nimport path from 'path';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/parse.ts"],"sourcesContent":["/**\n * Command parsing for cross-platform spawn\n * Simplified from cross-spawn v6.0.5\n */\n\nimport path from 'path';\nimport { isWindows } from '../constants.ts';\nimport { escapeArgument, escapeCommand } from './escape.ts';\nimport { resolveCommand } from './resolve.ts';\nimport { readShebang } from './shebang.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\n// Node ^4.8.0 || ^5.7.0 || >= 6.0.0 supports shell option natively\n// See: https://github.com/nodejs/node/pull/4598\nconst [major, minor] = process.versions.node.split('.').map(Number);\nconst supportsShellOption = major >= 6 || (major === 5 && minor >= 7) || (major === 4 && minor >= 8);\n\nfunction detectShebang(parsed: Parsed): string | null {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed: Parsed): Parsed {\n if (!isWindows) return parsed;\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile || '');\n\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile || '');\n\n // Normalize posix paths into OS compatible paths\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escapeCommand(parsed.command);\n parsed.args = parsed.args.map((arg) => escapeArgument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true;\n }\n\n return parsed;\n}\n\nfunction parseShell(parsed: Parsed): Parsed {\n // If node supports the shell option, there's no need to mimic its behavior\n if (supportsShellOption) {\n return parsed;\n }\n\n // Mimic node shell option for older Node versions\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n if (isWindows) {\n parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe';\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.options.windowsVerbatimArguments = true;\n } else {\n if (typeof parsed.options.shell === 'string') {\n parsed.command = parsed.options.shell;\n } else if (process.platform === 'android') {\n parsed.command = '/system/bin/sh';\n } else {\n parsed.command = '/bin/sh';\n }\n parsed.args = ['-c', shellCommand];\n }\n\n return parsed;\n}\n\n// Handle NODE/npm_node_execpath env vars for node commands\nconst NODES = ['node', 'node.exe', 'node.cmd'];\n\nexport function parse(command: string, args?: string[] | ShimSpawnOptions | null, options?: ShimSpawnOptions): Parsed {\n options = typeof args && !Array.isArray(args) ? {} : ({ ...(options || {}) } as ShimSpawnOptions);\n args = typeof args && !Array.isArray(args) ? [] : (((args as string[]).slice(0) || []) as string[]);\n\n // Build parsed object with original command/args BEFORE any substitution\n const parsed: Parsed = {\n command: command,\n args,\n options,\n file: undefined,\n original: {\n command: command,\n args,\n },\n };\n\n // Substitute node command with NODE env var if set\n if (NODES.indexOf(path.basename(parsed.command).toLowerCase()) >= 0) {\n const env = options.env || process.env;\n parsed.command = env.NODE || env.npm_node_execpath || parsed.command;\n }\n\n return options.shell ? parseShell(parsed) : parseNonShell(parsed);\n}\n"],"names":["path","isWindows","escapeArgument","escapeCommand","resolveCommand","readShebang","isExecutableRegExp","isCmdShimRegExp","major","minor","process","versions","node","split","map","Number","supportsShellOption","detectShebang","parsed","file","shebang","args","unshift","command","parseNonShell","commandFile","needsShell","test","options","forceShell","needsDoubleEscapeMetaChars","normalize","arg","shellCommand","concat","join","env","comspec","windowsVerbatimArguments","parseShell","shell","platform","NODES","parse","Array","isArray","slice","undefined","original","indexOf","basename","toLowerCase","NODE","npm_node_execpath"],"mappings":"AAAA;;;CAGC,GAED,OAAOA,UAAU,OAAO;AACxB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,cAAc,EAAEC,aAAa,QAAQ,cAAc;AAC5D,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,WAAW,QAAQ,eAAe;AAG3C,MAAMC,qBAAqB;AAC3B,MAAMC,kBAAkB;AAExB,mEAAmE;AACnE,gDAAgD;AAChD,MAAM,CAACC,OAAOC,MAAM,GAAGC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC;AAC5D,MAAMC,sBAAsBR,SAAS,KAAMA,UAAU,KAAKC,SAAS,KAAOD,UAAU,KAAKC,SAAS;AAElG,SAASQ,cAAcC,MAAc;IACnCA,OAAOC,IAAI,GAAGf,eAAec;IAE7B,MAAME,UAAUF,OAAOC,IAAI,IAAId,YAAYa,OAAOC,IAAI;IACtD,IAAIC,SAAS;QACXF,OAAOG,IAAI,CAACC,OAAO,CAACJ,OAAOC,IAAI;QAC/BD,OAAOK,OAAO,GAAGH;QACjB,OAAOhB,eAAec;IACxB;IAEA,OAAOA,OAAOC,IAAI;AACpB;AAEA,SAASK,cAAcN,MAAc;IACnC,IAAI,CAACjB,WAAW,OAAOiB;IAEvB,oCAAoC;IACpC,MAAMO,cAAcR,cAAcC;IAElC,iEAAiE;IACjE,MAAMQ,aAAa,CAACpB,mBAAmBqB,IAAI,CAACF,eAAe;IAE3D,IAAIP,OAAOU,OAAO,CAACC,UAAU,IAAIH,YAAY;QAC3C,gEAAgE;QAChE,MAAMI,6BAA6BvB,gBAAgBoB,IAAI,CAACF,eAAe;QAEvE,iDAAiD;QACjDP,OAAOK,OAAO,GAAGvB,KAAK+B,SAAS,CAACb,OAAOK,OAAO;QAE9C,6BAA6B;QAC7BL,OAAOK,OAAO,GAAGpB,cAAce,OAAOK,OAAO;QAC7CL,OAAOG,IAAI,GAAGH,OAAOG,IAAI,CAACP,GAAG,CAAC,CAACkB,MAAQ9B,eAAe8B,KAAKF;QAE3D,MAAMG,eAAe;YAACf,OAAOK,OAAO;SAAC,CAACW,MAAM,CAAChB,OAAOG,IAAI,EAAEc,IAAI,CAAC;QAE/DjB,OAAOG,IAAI,GAAG;YAAC;YAAM;YAAM;YAAM,CAAC,CAAC,EAAEY,aAAa,CAAC,CAAC;SAAC;QACrDf,OAAOK,OAAO,GAAGb,QAAQ0B,GAAG,CAACC,OAAO,IAAI;QACxCnB,OAAOU,OAAO,CAACU,wBAAwB,GAAG;IAC5C;IAEA,OAAOpB;AACT;AAEA,SAASqB,WAAWrB,MAAc;IAChC,2EAA2E;IAC3E,IAAIF,qBAAqB;QACvB,OAAOE;IACT;IAEA,kDAAkD;IAClD,MAAMe,eAAe;QAACf,OAAOK,OAAO;KAAC,CAACW,MAAM,CAAChB,OAAOG,IAAI,EAAEc,IAAI,CAAC;IAE/D,IAAIlC,WAAW;QACbiB,OAAOK,OAAO,GAAG,OAAOL,OAAOU,OAAO,CAACY,KAAK,KAAK,WAAWtB,OAAOU,OAAO,CAACY,KAAK,GAAG9B,QAAQ0B,GAAG,CAACC,OAAO,IAAI;QAC1GnB,OAAOG,IAAI,GAAG;YAAC;YAAM;YAAM;YAAM,CAAC,CAAC,EAAEY,aAAa,CAAC,CAAC;SAAC;QACrDf,OAAOU,OAAO,CAACU,wBAAwB,GAAG;IAC5C,OAAO;QACL,IAAI,OAAOpB,OAAOU,OAAO,CAACY,KAAK,KAAK,UAAU;YAC5CtB,OAAOK,OAAO,GAAGL,OAAOU,OAAO,CAACY,KAAK;QACvC,OAAO,IAAI9B,QAAQ+B,QAAQ,KAAK,WAAW;YACzCvB,OAAOK,OAAO,GAAG;QACnB,OAAO;YACLL,OAAOK,OAAO,GAAG;QACnB;QACAL,OAAOG,IAAI,GAAG;YAAC;YAAMY;SAAa;IACpC;IAEA,OAAOf;AACT;AAEA,2DAA2D;AAC3D,MAAMwB,QAAQ;IAAC;IAAQ;IAAY;CAAW;AAE9C,OAAO,SAASC,MAAMpB,OAAe,EAAEF,IAAyC,EAAEO,OAA0B;IAC1GA,UAAU,OAAOP,QAAQ,CAACuB,MAAMC,OAAO,CAACxB,QAAQ,CAAC,IAAK;QAAE,GAAIO,WAAW,CAAC,CAAC;IAAE;IAC3EP,OAAO,OAAOA,QAAQ,CAACuB,MAAMC,OAAO,CAACxB,QAAQ,EAAE,GAAK,AAACA,KAAkByB,KAAK,CAAC,MAAM,EAAE;IAErF,yEAAyE;IACzE,MAAM5B,SAAiB;QACrBK,SAASA;QACTF;QACAO;QACAT,MAAM4B;QACNC,UAAU;YACRzB,SAASA;YACTF;QACF;IACF;IAEA,mDAAmD;IACnD,IAAIqB,MAAMO,OAAO,CAACjD,KAAKkD,QAAQ,CAAChC,OAAOK,OAAO,EAAE4B,WAAW,OAAO,GAAG;QACnE,MAAMf,MAAMR,QAAQQ,GAAG,IAAI1B,QAAQ0B,GAAG;QACtClB,OAAOK,OAAO,GAAGa,IAAIgB,IAAI,IAAIhB,IAAIiB,iBAAiB,IAAInC,OAAOK,OAAO;IACtE;IAEA,OAAOK,QAAQY,KAAK,GAAGD,WAAWrB,UAAUM,cAAcN;AAC5D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SpawnResult } from '../types.js';
|
|
2
|
-
export default function spawnSync(cmd: string, args: string[], options?:
|
|
1
|
+
import type { SpawnOptions, SpawnResult } from '../types.js';
|
|
2
|
+
export default function spawnSync(cmd: string, args: string[], options?: SpawnOptions): SpawnResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/spawnSync.ts"],"sourcesContent":["import cp from 'child_process';\nimport { bindSync } from 'node-version-call-local';\nimport path from 'path';\nimport url from 'url';\nimport type { SpawnResult } from '../types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'spawn.js');\n\nfunction run(cmd: string, args: string[], options?: object): SpawnResult {\n return cp.spawnSync(cmd, args, options) as SpawnResult;\n}\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/spawnSync.ts"],"sourcesContent":["import cp from 'child_process';\nimport { bindSync } from 'node-version-call-local';\nimport path from 'path';\nimport url from 'url';\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'spawn.js');\n\nfunction run(cmd: string, args: string[], options?: object): SpawnResult {\n return cp.spawnSync(cmd, args, options) as SpawnResult;\n}\nconst worker = typeof cp.spawnSync === 'function' ? run : bindSync(process.version, workerPath, { callbacks: true });\n\nexport default function spawnSync(cmd: string, args: string[], options?: SpawnOptions): SpawnResult {\n return worker(cmd, args, options || {}) as SpawnResult;\n}\n"],"names":["cp","bindSync","path","url","__dirname","dirname","__filename","fileURLToPath","workerPath","join","run","cmd","args","options","spawnSync","worker","process","version","callbacks"],"mappings":"AAAA,OAAOA,QAAQ,gBAAgB;AAC/B,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAGtB,MAAMC,YAAYF,KAAKG,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaH,IAAII,aAAa,CAAC,YAAYJ,GAAG;AACjH,MAAMK,aAAaN,KAAKO,IAAI,CAACL,WAAW,MAAM,MAAM,OAAO;AAE3D,SAASM,IAAIC,GAAW,EAAEC,IAAc,EAAEC,OAAgB;IACxD,OAAOb,GAAGc,SAAS,CAACH,KAAKC,MAAMC;AACjC;AACA,MAAME,SAAS,OAAOf,GAAGc,SAAS,KAAK,aAAaJ,MAAMT,SAASe,QAAQC,OAAO,EAAET,YAAY;IAAEU,WAAW;AAAK;AAElH,eAAe,SAASJ,UAAUH,GAAW,EAAEC,IAAc,EAAEC,OAAsB;IACnF,OAAOE,OAAOJ,KAAKC,MAAMC,WAAW,CAAC;AACvC"}
|
package/dist/esm/spawn.js
CHANGED
|
@@ -2,11 +2,8 @@ import crossSpawn from './crossSpawn.js';
|
|
|
2
2
|
import spawnSync from './spawnSync.js';
|
|
3
3
|
import worker from './workers/async.js';
|
|
4
4
|
function spawn(command, args, options, callback) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
options = {};
|
|
8
|
-
}
|
|
9
|
-
options = options || {};
|
|
5
|
+
callback = typeof options === 'function' ? options : callback;
|
|
6
|
+
options = typeof options === 'function' ? {} : options || {};
|
|
10
7
|
const cp = crossSpawn(command, args, options);
|
|
11
8
|
if (typeof callback === 'function') return worker(cp, options, callback);
|
|
12
9
|
return new Promise((resolve, reject)=>worker(cp, options, (err, res)=>err ? reject(err) : resolve(res)));
|
package/dist/esm/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawn.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport spawnSync from './spawnSync.ts';\nimport type { SpawnCallback, SpawnOptions, SpawnResult } from './types.ts';\nimport worker from './workers/async.ts';\n\nfunction spawn(command: string, args: string[], callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options: SpawnOptions, callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options?: SpawnOptions): Promise<SpawnResult>;\nfunction spawn(command: string, args: string[], options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void | Promise<SpawnResult> {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawn.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport spawnSync from './spawnSync.ts';\nimport type { SpawnCallback, SpawnOptions, SpawnResult } from './types.ts';\nimport worker from './workers/async.ts';\n\nfunction spawn(command: string, args: string[], callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options: SpawnOptions, callback: SpawnCallback): void;\nfunction spawn(command: string, args: string[], options?: SpawnOptions): Promise<SpawnResult>;\nfunction spawn(command: string, args: string[], options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void | Promise<SpawnResult> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as SpawnOptions);\n const cp = crossSpawn(command, args, options);\n\n if (typeof callback === 'function') return worker(cp, options, callback);\n return new Promise((resolve, reject) => worker(cp, options, (err, res) => (err ? reject(err) : resolve(res))));\n}\nspawn.worker = worker;\nspawn.sync = spawnSync;\nspawn.crossSpawn = crossSpawn;\n\nexport default spawn;\n"],"names":["crossSpawn","spawnSync","worker","spawn","command","args","options","callback","cp","Promise","resolve","reject","err","res","sync"],"mappings":"AAAA,OAAOA,gBAAgB,kBAAkB;AACzC,OAAOC,eAAe,iBAAiB;AAEvC,OAAOC,YAAY,qBAAqB;AAKxC,SAASC,MAAMC,OAAe,EAAEC,IAAc,EAAEC,OAAsC,EAAEC,QAAwB;IAC9GA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAC7D,MAAME,KAAKR,WAAWI,SAASC,MAAMC;IAErC,IAAI,OAAOC,aAAa,YAAY,OAAOL,OAAOM,IAAIF,SAASC;IAC/D,OAAO,IAAIE,QAAQ,CAACC,SAASC,SAAWT,OAAOM,IAAIF,SAAS,CAACM,KAAKC,MAASD,MAAMD,OAAOC,OAAOF,QAAQG;AACzG;AACAV,MAAMD,MAAM,GAAGA;AACfC,MAAMW,IAAI,GAAGb;AACbE,MAAMH,UAAU,GAAGA;AAEnB,eAAeG,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawnSync.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport type {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/spawnSync.ts"],"sourcesContent":["import crossSpawn from './crossSpawn.ts';\nimport type { SpawnResult, SpawnSyncOptions } from './types.ts';\nimport worker from './workers/sync.ts';\n\nexport default function spawnSync(command: string, args: string[], options?: SpawnSyncOptions): SpawnResult {\n options = options || ({} as SpawnSyncOptions);\n const syncOptions = { ...options, env: options.env || process.env, stdio: 'pipe', encoding: options.encoding || 'utf8' };\n const res = crossSpawn.sync(command, args, syncOptions as SpawnSyncOptions);\n return worker(res, options);\n}\nspawnSync.worker = worker;\n"],"names":["crossSpawn","worker","spawnSync","command","args","options","syncOptions","env","process","stdio","encoding","res","sync"],"mappings":"AAAA,OAAOA,gBAAgB,kBAAkB;AAEzC,OAAOC,YAAY,oBAAoB;AAEvC,eAAe,SAASC,UAAUC,OAAe,EAAEC,IAAc,EAAEC,OAA0B;IAC3FA,UAAUA,WAAY,CAAC;IACvB,MAAMC,cAAc;QAAE,GAAGD,OAAO;QAAEE,KAAKF,QAAQE,GAAG,IAAIC,QAAQD,GAAG;QAAEE,OAAO;QAAQC,UAAUL,QAAQK,QAAQ,IAAI;IAAO;IACvH,MAAMC,MAAMX,WAAWY,IAAI,CAACT,SAASC,MAAME;IAC3C,OAAOL,OAAOU,KAAKN;AACrB;AACAH,UAAUD,MAAM,GAAGA"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import oo from 'on-one';
|
|
2
2
|
import { spawnKeys } from '../constants.js';
|
|
3
3
|
export default function worker(cp, options, callback) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
options = {};
|
|
7
|
-
}
|
|
8
|
-
options = options || {};
|
|
4
|
+
callback = typeof options === 'function' ? options : callback;
|
|
5
|
+
options = typeof options === 'function' ? {} : options || {};
|
|
9
6
|
// collect output
|
|
10
7
|
const res = {
|
|
11
8
|
pid: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/async.ts"],"sourcesContent":["import oo from 'on-one';\nimport { spawnKeys } from '../constants.ts';\n\nimport type { ChildProcess, SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(cp: ChildProcess, options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/async.ts"],"sourcesContent":["import oo from 'on-one';\nimport { spawnKeys } from '../constants.ts';\n\nimport type { ChildProcess, SpawnCallback, SpawnError, SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(cp: ChildProcess, options?: SpawnOptions | SpawnCallback, callback?: SpawnCallback): void {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as SpawnOptions);\n\n // collect output\n const res = { pid: 0, output: [], stdout: null, stderr: null, status: null, signal: null } as SpawnResult;\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n if (options.encoding && cp.stdout) cp.stdout.on('data', stdout.push.bind(stdout));\n if (options.encoding && cp.stderr) cp.stderr.on('data', stderr.push.bind(stderr));\n\n // some versions of node emit both an error and close\n oo(cp, ['error', 'close'], (err: Error | null, status: number | null, signal: NodeJS.Signals | null) => {\n if (err) {\n if ((err as SpawnError).code === 'OK') return; // ignore\n return callback(err as SpawnError);\n }\n\n // prepare result\n res.pid = cp.pid;\n res.status = status;\n res.signal = signal;\n if (options.encoding && cp.stdout) {\n res.stdout = Buffer.concat(stdout);\n if (options.encoding !== 'binary') res.stdout = res.stdout.toString(options.encoding);\n }\n if (options.encoding && cp.stderr) {\n res.stderr = Buffer.concat(stderr);\n if (options.encoding !== 'binary') res.stderr = res.stderr.toString(options.encoding);\n }\n res.output = [null, res.stdout, res.stderr];\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const exitErr = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (exitErr) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n exitErr[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];\n }\n }\n exitErr ? callback(exitErr as SpawnError) : callback(null, res);\n });\n\n // pipe input\n if (options.input && (typeof options.input === 'string' || Buffer.isBuffer(options.input))) {\n cp.stdin.end(options.input);\n }\n}\n"],"names":["oo","spawnKeys","worker","cp","options","callback","res","pid","output","stdout","stderr","status","signal","encoding","on","push","bind","err","code","Buffer","concat","toString","exitErr","Error","key","indexOf","isBuffer","input","stdin","end"],"mappings":"AAAA,OAAOA,QAAQ,SAAS;AACxB,SAASC,SAAS,QAAQ,kBAAkB;AAI5C,eAAe,SAASC,OAAOC,EAAgB,EAAEC,OAAsC,EAAEC,QAAwB;IAC/GA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7D,iBAAiB;IACjB,MAAME,MAAM;QAAEC,KAAK;QAAGC,QAAQ,EAAE;QAAEC,QAAQ;QAAMC,QAAQ;QAAMC,QAAQ;QAAMC,QAAQ;IAAK;IACzF,MAAMH,SAAmB,EAAE;IAC3B,MAAMC,SAAmB,EAAE;IAC3B,IAAIN,QAAQS,QAAQ,IAAIV,GAAGM,MAAM,EAAEN,GAAGM,MAAM,CAACK,EAAE,CAAC,QAAQL,OAAOM,IAAI,CAACC,IAAI,CAACP;IACzE,IAAIL,QAAQS,QAAQ,IAAIV,GAAGO,MAAM,EAAEP,GAAGO,MAAM,CAACI,EAAE,CAAC,QAAQJ,OAAOK,IAAI,CAACC,IAAI,CAACN;IAEzE,qDAAqD;IACrDV,GAAGG,IAAI;QAAC;QAAS;KAAQ,EAAE,CAACc,KAAmBN,QAAuBC;QACpE,IAAIK,KAAK;YACP,IAAI,AAACA,IAAmBC,IAAI,KAAK,MAAM,QAAQ,SAAS;YACxD,OAAOb,SAASY;QAClB;QAEA,iBAAiB;QACjBX,IAAIC,GAAG,GAAGJ,GAAGI,GAAG;QAChBD,IAAIK,MAAM,GAAGA;QACbL,IAAIM,MAAM,GAAGA;QACb,IAAIR,QAAQS,QAAQ,IAAIV,GAAGM,MAAM,EAAE;YACjCH,IAAIG,MAAM,GAAGU,OAAOC,MAAM,CAACX;YAC3B,IAAIL,QAAQS,QAAQ,KAAK,UAAUP,IAAIG,MAAM,GAAGH,IAAIG,MAAM,CAACY,QAAQ,CAACjB,QAAQS,QAAQ;QACtF;QACA,IAAIT,QAAQS,QAAQ,IAAIV,GAAGO,MAAM,EAAE;YACjCJ,IAAII,MAAM,GAAGS,OAAOC,MAAM,CAACV;YAC3B,IAAIN,QAAQS,QAAQ,KAAK,UAAUP,IAAII,MAAM,GAAGJ,IAAII,MAAM,CAACW,QAAQ,CAACjB,QAAQS,QAAQ;QACtF;QACAP,IAAIE,MAAM,GAAG;YAAC;YAAMF,IAAIG,MAAM;YAAEH,IAAII,MAAM;SAAC;QAC3C,IAAIJ,IAAIK,MAAM,KAAK,MAAML,IAAIK,MAAM,GAAG,GAAG,iDAAiD;QAE1F,iBAAiB;QACjB,MAAMW,UAAUhB,IAAIK,MAAM,KAAK,IAAI,IAAIY,MAAM,CAAC,oBAAoB,EAAEjB,IAAIK,MAAM,EAAE,IAAI;QACpF,IAAIW,SAAS;YACX,IAAK,MAAME,OAAOlB,IAAK;gBACrB,IAAIL,UAAUwB,OAAO,CAACD,OAAO,GAAG;gBAChCF,OAAO,CAACE,IAAI,GAAGL,OAAOO,QAAQ,CAACpB,GAAG,CAACkB,IAAI,IAAIlB,GAAG,CAACkB,IAAI,CAACH,QAAQ,CAACjB,QAAQS,QAAQ,IAAI,UAAUP,GAAG,CAACkB,IAAI;YACrG;QACF;QACAF,UAAUjB,SAASiB,WAAyBjB,SAAS,MAAMC;IAC7D;IAEA,aAAa;IACb,IAAIF,QAAQuB,KAAK,IAAK,CAAA,OAAOvB,QAAQuB,KAAK,KAAK,YAAYR,OAAOO,QAAQ,CAACtB,QAAQuB,KAAK,CAAA,GAAI;QAC1FxB,GAAGyB,KAAK,CAACC,GAAG,CAACzB,QAAQuB,KAAK;IAC5B;AACF"}
|