cross-spawn-cb 3.2.1 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/shim/enoent.js +1 -3
- package/dist/cjs/shim/enoent.js.map +1 -1
- package/dist/cjs/shim/index.d.cts +1 -3
- package/dist/cjs/shim/index.d.ts +1 -3
- package/dist/cjs/shim/index.js.map +1 -1
- package/dist/cjs/shim/parse.js.map +1 -1
- package/dist/cjs/spawn.js.map +1 -1
- package/dist/cjs/workers/async.js +13 -7
- package/dist/cjs/workers/async.js.map +1 -1
- package/dist/cjs/workers/sync.js.map +1 -1
- package/dist/esm/constants.js +2 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/shim/enoent.js +1 -3
- package/dist/esm/shim/enoent.js.map +1 -1
- package/dist/esm/shim/index.d.ts +1 -3
- package/dist/esm/shim/index.js +1 -3
- package/dist/esm/shim/index.js.map +1 -1
- package/dist/esm/shim/parse.js.map +1 -1
- package/dist/esm/spawn.js.map +1 -1
- package/dist/esm/workers/async.js +10 -7
- package/dist/esm/workers/async.js.map +1 -1
- package/dist/esm/workers/sync.js.map +1 -1
- package/package.json +2 -1
package/dist/cjs/constants.js
CHANGED
|
@@ -16,6 +16,7 @@ _export(exports, {
|
|
|
16
16
|
return spawnKeys;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
var _process_env_OSTYPE;
|
|
19
20
|
var spawnKeys = [
|
|
20
21
|
'pid',
|
|
21
22
|
'status',
|
|
@@ -24,5 +25,5 @@ var spawnKeys = [
|
|
|
24
25
|
'stderr',
|
|
25
26
|
'output'
|
|
26
27
|
];
|
|
27
|
-
var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
|
|
28
|
+
var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test((_process_env_OSTYPE = process.env.OSTYPE) !== null && _process_env_OSTYPE !== void 0 ? _process_env_OSTYPE : '');
|
|
28
29
|
/* 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/constants.ts"],"sourcesContent":["export const spawnKeys = ['pid', 'status', 'signal', 'stdout', 'stderr', 'output'];\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n"],"names":["isWindows","spawnKeys","process","platform","test","env","OSTYPE"],"mappings":";;;;;;;;;;;QAEaA;eAAAA;;QAFAC;eAAAA;;;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/constants.ts"],"sourcesContent":["export const spawnKeys = ['pid', 'status', 'signal', 'stdout', 'stderr', 'output'];\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE ?? '');\n"],"names":["isWindows","spawnKeys","process","platform","test","env","OSTYPE"],"mappings":";;;;;;;;;;;QAEaA;eAAAA;;QAFAC;eAAAA;;;IAEmEC;AAFzE,IAAMD,YAAY;IAAC;IAAO;IAAU;IAAU;IAAU;IAAU;CAAS;AAE3E,IAAMD,YAAYE,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,EAACF,sBAAAA,QAAQG,GAAG,CAACC,MAAM,cAAlBJ,iCAAAA,sBAAsB"}
|
package/dist/cjs/shim/enoent.js
CHANGED
|
@@ -69,9 +69,7 @@ function hookChildProcess(cp, parsed) {
|
|
|
69
69
|
}
|
|
70
70
|
if (name === 'exit') {
|
|
71
71
|
var err = verifyENOENT(args[0], parsed);
|
|
72
|
-
if (err)
|
|
73
|
-
return originalEmit('error', err);
|
|
74
|
-
}
|
|
72
|
+
if (err) return originalEmit('error', err);
|
|
75
73
|
}
|
|
76
74
|
return originalEmit.apply(void 0, [
|
|
77
75
|
name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/enoent.ts"],"sourcesContent":["/**\n * ENOENT error handling for Windows\n * Extracted from cross-spawn v6.0.5\n */\n\nimport type { ChildProcess } from 'child_process';\nimport { isWindows } from '../constants.ts';\nimport type { ENOENTError, Parsed } from './types.ts';\n\nexport function notFoundError(original: Parsed['original'], syscall: string): ENOENTError {\n const err = new Error(`${syscall} ${original.command} ENOENT`) as ENOENTError;\n err.code = 'ENOENT';\n err.errno = 'ENOENT';\n err.syscall = `${syscall} ${original.command}`;\n err.path = original.command;\n err.spawnargs = original.args;\n return err;\n}\n\nexport function hookChildProcess(cp: ChildProcess, parsed: Parsed): void {\n if (!isWindows) return;\n\n const originalEmit = cp.emit.bind(cp);\n cp.emit = (name: string | symbol, ...args: unknown[]): boolean => {\n if (name === 'exit') {\n const err = verifyENOENT(args[0] as number, parsed);\n if (err)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/enoent.ts"],"sourcesContent":["/**\n * ENOENT error handling for Windows\n * Extracted from cross-spawn v6.0.5\n */\n\nimport type { ChildProcess } from 'child_process';\nimport { isWindows } from '../constants.ts';\nimport type { ENOENTError, Parsed } from './types.ts';\n\nexport function notFoundError(original: Parsed['original'], syscall: string): ENOENTError {\n const err = new Error(`${syscall} ${original.command} ENOENT`) as ENOENTError;\n err.code = 'ENOENT';\n err.errno = 'ENOENT';\n err.syscall = `${syscall} ${original.command}`;\n err.path = original.command;\n err.spawnargs = original.args;\n return err;\n}\n\nexport function hookChildProcess(cp: ChildProcess, parsed: Parsed): void {\n if (!isWindows) return;\n\n const originalEmit = cp.emit.bind(cp);\n cp.emit = (name: string | symbol, ...args: unknown[]): boolean => {\n if (name === 'exit') {\n const err = verifyENOENT(args[0] as number, parsed);\n if (err) return originalEmit('error', err);\n }\n return originalEmit(name, ...args);\n };\n}\n\nexport function verifyENOENT(status: number, parsed: Parsed): ENOENTError | null {\n if (isWindows && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n return null;\n}\n\nexport function verifyENOENTSync(status: number, parsed: Parsed): ENOENTError | null {\n if (isWindows && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n return null;\n}\n"],"names":["hookChildProcess","notFoundError","verifyENOENT","verifyENOENTSync","original","syscall","err","Error","command","code","errno","path","spawnargs","args","cp","parsed","isWindows","originalEmit","emit","bind","name","status","file"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;QAgBeA;eAAAA;;QAVAC;eAAAA;;QAuBAC;eAAAA;;QAOAC;eAAAA;;;2BAjCU;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnB,SAASF,cAAcG,QAA4B,EAAEC,OAAe;IACzE,IAAMC,MAAM,IAAIC,MAAM,AAAC,GAAaH,OAAXC,SAAQ,KAAoB,OAAjBD,SAASI,OAAO,EAAC;IACrDF,IAAIG,IAAI,GAAG;IACXH,IAAII,KAAK,GAAG;IACZJ,IAAID,OAAO,GAAG,AAAC,GAAaD,OAAXC,SAAQ,KAAoB,OAAjBD,SAASI,OAAO;IAC5CF,IAAIK,IAAI,GAAGP,SAASI,OAAO;IAC3BF,IAAIM,SAAS,GAAGR,SAASS,IAAI;IAC7B,OAAOP;AACT;AAEO,SAASN,iBAAiBc,EAAgB,EAAEC,MAAc;IAC/D,IAAI,CAACC,sBAAS,EAAE;IAEhB,IAAMC,eAAeH,GAAGI,IAAI,CAACC,IAAI,CAACL;IAClCA,GAAGI,IAAI,GAAG,SAACE;yCAA0BP;YAAAA;;QACnC,IAAIO,SAAS,QAAQ;YACnB,IAAMd,MAAMJ,aAAaW,IAAI,CAAC,EAAE,EAAYE;YAC5C,IAAIT,KAAK,OAAOW,aAAa,SAASX;QACxC;QACA,OAAOW,mBAAAA,KAAAA,GAAAA;YAAaG;SAAc,CAA3BH,OAAmB,qBAAGJ;IAC/B;AACF;AAEO,SAASX,aAAamB,MAAc,EAAEN,MAAc;IACzD,IAAIC,sBAAS,IAAIK,WAAW,KAAK,CAACN,OAAOO,IAAI,EAAE;QAC7C,OAAOrB,cAAcc,OAAOX,QAAQ,EAAE;IACxC;IACA,OAAO;AACT;AAEO,SAASD,iBAAiBkB,MAAc,EAAEN,MAAc;IAC7D,IAAIC,sBAAS,IAAIK,WAAW,KAAK,CAACN,OAAOO,IAAI,EAAE;QAC7C,OAAOrB,cAAcc,OAAOX,QAAQ,EAAE;IACxC;IACA,OAAO;AACT"}
|
|
@@ -13,9 +13,7 @@ import type { Parsed, ShimSpawnOptions } from './types.js';
|
|
|
13
13
|
declare function spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess;
|
|
14
14
|
declare function spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer>;
|
|
15
15
|
export default spawn;
|
|
16
|
-
export { spawn };
|
|
17
|
-
export { spawnSync as sync };
|
|
18
|
-
export { parse as _parse };
|
|
16
|
+
export { parse as _parse, spawn, spawnSync as sync };
|
|
19
17
|
export declare const _enoent: {
|
|
20
18
|
hookChildProcess: typeof hookChildProcess;
|
|
21
19
|
verifyENOENT: typeof verifyENOENT;
|
package/dist/cjs/shim/index.d.ts
CHANGED
|
@@ -13,9 +13,7 @@ import type { Parsed, ShimSpawnOptions } from './types.js';
|
|
|
13
13
|
declare function spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess;
|
|
14
14
|
declare function spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer>;
|
|
15
15
|
export default spawn;
|
|
16
|
-
export { spawn };
|
|
17
|
-
export { spawnSync as sync };
|
|
18
|
-
export { parse as _parse };
|
|
16
|
+
export { parse as _parse, spawn, spawnSync as sync };
|
|
19
17
|
export declare const _enoent: {
|
|
20
18
|
hookChildProcess: typeof hookChildProcess;
|
|
21
19
|
verifyENOENT: typeof verifyENOENT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/index.ts"],"sourcesContent":["/**\n * Minimal cross-spawn shim for Windows compatibility on legacy Node.js\n *\n * This replaces the bundled cross-spawn v6.0.5 (~1,950 lines) with a minimal\n * implementation (~200 lines) that uses external dependencies:\n * - which@^1.0.0 (command resolution)\n * - env-path-key@^1.0.0 (cross-platform PATH key detection)\n */\n\nimport type { ChildProcess, SpawnSyncReturns } from 'child_process';\nimport cp from 'child_process';\nimport { hookChildProcess, notFoundError, verifyENOENT, verifyENOENTSync } from './enoent.ts';\nimport { parse } from './parse.ts';\nimport spawnSyncCompat from './spawnSync.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nfunction spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess {\n const parsed = parse(command, args, options);\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n hookChildProcess(spawned, parsed);\n return spawned;\n}\n\nfunction spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer> {\n const parsed = parse(command, args, options);\n const result = spawnSyncCompat(parsed.command, parsed.args, parsed.options) as SpawnSyncReturns<Buffer> & { error?: Error };\n result.error = result.error || verifyENOENTSync(result.status as number, parsed);\n return result;\n}\n\n// Main export\nexport default spawn;\n\n// Named exports matching cross-spawn's API\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/index.ts"],"sourcesContent":["/**\n * Minimal cross-spawn shim for Windows compatibility on legacy Node.js\n *\n * This replaces the bundled cross-spawn v6.0.5 (~1,950 lines) with a minimal\n * implementation (~200 lines) that uses external dependencies:\n * - which@^1.0.0 (command resolution)\n * - env-path-key@^1.0.0 (cross-platform PATH key detection)\n */\n\nimport type { ChildProcess, SpawnSyncReturns } from 'child_process';\nimport cp from 'child_process';\nimport { hookChildProcess, notFoundError, verifyENOENT, verifyENOENTSync } from './enoent.ts';\nimport { parse } from './parse.ts';\nimport spawnSyncCompat from './spawnSync.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nfunction spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess {\n const parsed = parse(command, args, options);\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n hookChildProcess(spawned, parsed);\n return spawned;\n}\n\nfunction spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer> {\n const parsed = parse(command, args, options);\n const result = spawnSyncCompat(parsed.command, parsed.args, parsed.options) as SpawnSyncReturns<Buffer> & { error?: Error };\n result.error = (result.error || verifyENOENTSync(result.status as number, parsed)) as Error | undefined;\n return result;\n}\n\n// Main export\nexport default spawn;\n\n// Named exports matching cross-spawn's API\n// Internal APIs used by crossSpawn.ts\nexport { parse as _parse, spawn, spawnSync as sync };\nexport const _enoent = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n\n// Re-export types\nexport type { Parsed, ShimSpawnOptions };\n"],"names":["_enoent","_parse","parse","spawn","sync","spawnSync","command","args","options","parsed","spawned","cp","hookChildProcess","result","spawnSyncCompat","error","verifyENOENTSync","status","verifyENOENT","notFoundError"],"mappings":"AAAA;;;;;;;CAOC;;;;;;;;;;;QA6BYA;eAAAA;;QADKC;eAATC,cAAK;;QALd,cAAc;IACd;eAAA;;QAI0BC;eAAAA;;QAAoBC;eAAbC;;;oEAzBlB;wBACiE;uBAC1D;kEACM;;;;;;AAG5B,SAASF,MAAMG,OAAe,EAAEC,IAAkC,EAAEC,OAA0B;IAC5F,IAAMC,SAASP,IAAAA,cAAK,EAACI,SAASC,MAAMC;IACpC,IAAME,UAAUC,sBAAE,CAACR,KAAK,CAACM,OAAOH,OAAO,EAAEG,OAAOF,IAAI,EAAEE,OAAOD,OAAO;IACpEI,IAAAA,0BAAgB,EAACF,SAASD;IAC1B,OAAOC;AACT;AAEA,SAASL,UAAUC,OAAe,EAAEC,IAAkC,EAAEC,OAA0B;IAChG,IAAMC,SAASP,IAAAA,cAAK,EAACI,SAASC,MAAMC;IACpC,IAAMK,SAASC,IAAAA,oBAAe,EAACL,OAAOH,OAAO,EAAEG,OAAOF,IAAI,EAAEE,OAAOD,OAAO;IAC1EK,OAAOE,KAAK,GAAIF,OAAOE,KAAK,IAAIC,IAAAA,0BAAgB,EAACH,OAAOI,MAAM,EAAYR;IAC1E,OAAOI;AACT;IAGA,WAAeV;AAKR,IAAMH,UAAU;IACrBY,kBAAAA,0BAAgB;IAChBM,cAAAA,sBAAY;IACZF,kBAAAA,0BAAgB;IAChBG,eAAAA,uBAAa;AACf"}
|
|
@@ -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 { 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":"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"}
|
|
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":"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"}
|
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 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
|
+
{"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 as SpawnResult))));\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"}
|
|
@@ -35,15 +35,20 @@ function worker(cp, options, callback) {
|
|
|
35
35
|
(0, _onone.default)(cp, [
|
|
36
36
|
'error',
|
|
37
37
|
'close'
|
|
38
|
-
], function(
|
|
38
|
+
], function() {
|
|
39
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
40
|
+
args[_key] = arguments[_key];
|
|
41
|
+
}
|
|
42
|
+
var _cp_pid;
|
|
43
|
+
var err = args[0];
|
|
39
44
|
if (err) {
|
|
40
45
|
if (err.code === 'OK') return; // ignore
|
|
41
|
-
return callback(err);
|
|
46
|
+
return callback === null || callback === void 0 ? void 0 : callback(err);
|
|
42
47
|
}
|
|
43
48
|
// prepare result
|
|
44
|
-
res.pid = cp.pid;
|
|
45
|
-
res.status =
|
|
46
|
-
res.signal =
|
|
49
|
+
res.pid = (_cp_pid = cp.pid) !== null && _cp_pid !== void 0 ? _cp_pid : 0;
|
|
50
|
+
res.status = args[1];
|
|
51
|
+
res.signal = args[2];
|
|
47
52
|
if (options.encoding && cp.stdout) {
|
|
48
53
|
res.stdout = Buffer.concat(stdout);
|
|
49
54
|
if (options.encoding !== 'binary') res.stdout = res.stdout.toString(options.encoding);
|
|
@@ -66,11 +71,12 @@ function worker(cp, options, callback) {
|
|
|
66
71
|
exitErr[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
|
-
exitErr ? callback(exitErr) : callback(
|
|
74
|
+
exitErr ? callback === null || callback === void 0 ? void 0 : callback(exitErr) : callback === null || callback === void 0 ? void 0 : callback(undefined, res);
|
|
70
75
|
});
|
|
71
76
|
// pipe input
|
|
72
77
|
if (options.input && (typeof options.input === 'string' || Buffer.isBuffer(options.input))) {
|
|
73
|
-
|
|
78
|
+
var _cp_stdin;
|
|
79
|
+
(_cp_stdin = cp.stdin) === null || _cp_stdin === void 0 ? void 0 : _cp_stdin.end(options.input);
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
82
|
/* 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/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'], (
|
|
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 unknown 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'], function (this: unknown, ...args: unknown[]) {\n const err = args[0] as Error | 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 ?? 0;\n res.status = args[1] as number | null;\n res.signal = args[2] as NodeJS.Signals | null;\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 as unknown as Record<string, unknown>)[key] = Buffer.isBuffer((res as unknown as Record<string, unknown>)[key]) ? ((res as unknown as Record<string, unknown>)[key] as Buffer).toString(options.encoding || 'utf8') : (res as unknown as Record<string, unknown>)[key];\n }\n }\n exitErr ? callback?.(exitErr as SpawnError) : callback?.(undefined, 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","args","err","code","Buffer","concat","toString","exitErr","Error","key","spawnKeys","indexOf","isBuffer","undefined","input","stdin","end"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/sync.ts"],"sourcesContent":["import { spawnKeys } from '../constants.ts';\n\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(res: SpawnResult, options?: SpawnOptions): SpawnResult {\n options = options || {};\n\n // pipe if inherited\n if (res.stdout && options.stdio === 'inherit') {\n process.stdout.write(res.stdout);\n res.stdout = null;\n }\n if (res.stderr && options.stdio === 'inherit') {\n process.stderr.write(res.stderr);\n res.stderr = null;\n }\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const err = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (err) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n err[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];\n }\n throw err;\n }\n return res;\n}\n"],"names":["worker","res","options","stdout","stdio","process","write","stderr","status","err","Error","key","spawnKeys","indexOf","Buffer","isBuffer","toString","encoding"],"mappings":";;;;+BAIA;;;eAAwBA;;;2BAJE;AAIX,SAASA,OAAOC,GAAgB,EAAEC,OAAsB;IACrEA,UAAUA,WAAW,CAAC;IAEtB,oBAAoB;IACpB,IAAID,IAAIE,MAAM,IAAID,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQF,MAAM,CAACG,KAAK,CAACL,IAAIE,MAAM;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/sync.ts"],"sourcesContent":["import { spawnKeys } from '../constants.ts';\n\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(res: SpawnResult, options?: SpawnOptions): SpawnResult {\n options = options || {};\n\n // pipe if inherited\n if (res.stdout && options.stdio === 'inherit') {\n process.stdout.write(res.stdout);\n (res as unknown as Record<string, unknown>).stdout = null as unknown as string | Buffer;\n }\n if (res.stderr && options.stdio === 'inherit') {\n process.stderr.write(res.stderr);\n (res as unknown as Record<string, unknown>).stderr = null as unknown as string | Buffer;\n }\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const err = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (err) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n (err as unknown as Record<string, unknown>)[key] = Buffer.isBuffer((res as unknown as Record<string, unknown>)[key]) ? ((res as unknown as Record<string, unknown>)[key] as Buffer).toString(options.encoding || 'utf8') : (res as unknown as Record<string, unknown>)[key];\n }\n throw err;\n }\n return res;\n}\n"],"names":["worker","res","options","stdout","stdio","process","write","stderr","status","err","Error","key","spawnKeys","indexOf","Buffer","isBuffer","toString","encoding"],"mappings":";;;;+BAIA;;;eAAwBA;;;2BAJE;AAIX,SAASA,OAAOC,GAAgB,EAAEC,OAAsB;IACrEA,UAAUA,WAAW,CAAC;IAEtB,oBAAoB;IACpB,IAAID,IAAIE,MAAM,IAAID,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQF,MAAM,CAACG,KAAK,CAACL,IAAIE,MAAM;QAC9BF,IAA2CE,MAAM,GAAG;IACvD;IACA,IAAIF,IAAIM,MAAM,IAAIL,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQE,MAAM,CAACD,KAAK,CAACL,IAAIM,MAAM;QAC9BN,IAA2CM,MAAM,GAAG;IACvD;IACA,IAAIN,IAAIO,MAAM,KAAK,MAAMP,IAAIO,MAAM,GAAG,GAAG,iDAAiD;IAE1F,iBAAiB;IACjB,IAAMC,MAAMR,IAAIO,MAAM,KAAK,IAAI,IAAIE,MAAM,AAAC,uBAAiC,OAAXT,IAAIO,MAAM,KAAM;IAChF,IAAIC,KAAK;QACP,IAAK,IAAME,OAAOV,IAAK;YACrB,IAAIW,sBAAS,CAACC,OAAO,CAACF,OAAO,GAAG;YAC/BF,GAA0C,CAACE,IAAI,GAAGG,OAAOC,QAAQ,CAAC,AAACd,GAA0C,CAACU,IAAI,IAAI,AAAC,AAACV,GAA0C,CAACU,IAAI,CAAYK,QAAQ,CAACd,QAAQe,QAAQ,IAAI,UAAU,AAAChB,GAA0C,CAACU,IAAI;QAC7Q;QACA,MAAMF;IACR;IACA,OAAOR;AACT"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _process_env_OSTYPE;
|
|
1
2
|
export const spawnKeys = [
|
|
2
3
|
'pid',
|
|
3
4
|
'status',
|
|
@@ -6,4 +7,4 @@ export const spawnKeys = [
|
|
|
6
7
|
'stderr',
|
|
7
8
|
'output'
|
|
8
9
|
];
|
|
9
|
-
export const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
|
|
10
|
+
export const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test((_process_env_OSTYPE = process.env.OSTYPE) !== null && _process_env_OSTYPE !== void 0 ? _process_env_OSTYPE : '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/constants.ts"],"sourcesContent":["export const spawnKeys = ['pid', 'status', 'signal', 'stdout', 'stderr', 'output'];\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n"],"names":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/constants.ts"],"sourcesContent":["export const spawnKeys = ['pid', 'status', 'signal', 'stdout', 'stderr', 'output'];\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE ?? '');\n"],"names":["process","spawnKeys","isWindows","platform","test","env","OSTYPE"],"mappings":"IAEgFA;AAFhF,OAAO,MAAMC,YAAY;IAAC;IAAO;IAAU;IAAU;IAAU;IAAU;CAAS,CAAC;AAEnF,OAAO,MAAMC,YAAYF,QAAQG,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,EAACJ,sBAAAA,QAAQK,GAAG,CAACC,MAAM,cAAlBN,iCAAAA,sBAAsB,IAAI"}
|
package/dist/esm/shim/enoent.js
CHANGED
|
@@ -17,9 +17,7 @@ export function hookChildProcess(cp, parsed) {
|
|
|
17
17
|
cp.emit = (name, ...args)=>{
|
|
18
18
|
if (name === 'exit') {
|
|
19
19
|
const err = verifyENOENT(args[0], parsed);
|
|
20
|
-
if (err)
|
|
21
|
-
return originalEmit('error', err);
|
|
22
|
-
}
|
|
20
|
+
if (err) return originalEmit('error', err);
|
|
23
21
|
}
|
|
24
22
|
return originalEmit(name, ...args);
|
|
25
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/enoent.ts"],"sourcesContent":["/**\n * ENOENT error handling for Windows\n * Extracted from cross-spawn v6.0.5\n */\n\nimport type { ChildProcess } from 'child_process';\nimport { isWindows } from '../constants.ts';\nimport type { ENOENTError, Parsed } from './types.ts';\n\nexport function notFoundError(original: Parsed['original'], syscall: string): ENOENTError {\n const err = new Error(`${syscall} ${original.command} ENOENT`) as ENOENTError;\n err.code = 'ENOENT';\n err.errno = 'ENOENT';\n err.syscall = `${syscall} ${original.command}`;\n err.path = original.command;\n err.spawnargs = original.args;\n return err;\n}\n\nexport function hookChildProcess(cp: ChildProcess, parsed: Parsed): void {\n if (!isWindows) return;\n\n const originalEmit = cp.emit.bind(cp);\n cp.emit = (name: string | symbol, ...args: unknown[]): boolean => {\n if (name === 'exit') {\n const err = verifyENOENT(args[0] as number, parsed);\n if (err)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/enoent.ts"],"sourcesContent":["/**\n * ENOENT error handling for Windows\n * Extracted from cross-spawn v6.0.5\n */\n\nimport type { ChildProcess } from 'child_process';\nimport { isWindows } from '../constants.ts';\nimport type { ENOENTError, Parsed } from './types.ts';\n\nexport function notFoundError(original: Parsed['original'], syscall: string): ENOENTError {\n const err = new Error(`${syscall} ${original.command} ENOENT`) as ENOENTError;\n err.code = 'ENOENT';\n err.errno = 'ENOENT';\n err.syscall = `${syscall} ${original.command}`;\n err.path = original.command;\n err.spawnargs = original.args;\n return err;\n}\n\nexport function hookChildProcess(cp: ChildProcess, parsed: Parsed): void {\n if (!isWindows) return;\n\n const originalEmit = cp.emit.bind(cp);\n cp.emit = (name: string | symbol, ...args: unknown[]): boolean => {\n if (name === 'exit') {\n const err = verifyENOENT(args[0] as number, parsed);\n if (err) return originalEmit('error', err);\n }\n return originalEmit(name, ...args);\n };\n}\n\nexport function verifyENOENT(status: number, parsed: Parsed): ENOENTError | null {\n if (isWindows && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n return null;\n}\n\nexport function verifyENOENTSync(status: number, parsed: Parsed): ENOENTError | null {\n if (isWindows && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n return null;\n}\n"],"names":["isWindows","notFoundError","original","syscall","err","Error","command","code","errno","path","spawnargs","args","hookChildProcess","cp","parsed","originalEmit","emit","bind","name","verifyENOENT","status","file","verifyENOENTSync"],"mappings":"AAAA;;;CAGC,GAGD,SAASA,SAAS,QAAQ,kBAAkB;AAG5C,OAAO,SAASC,cAAcC,QAA4B,EAAEC,OAAe;IACzE,MAAMC,MAAM,IAAIC,MAAM,GAAGF,QAAQ,CAAC,EAAED,SAASI,OAAO,CAAC,OAAO,CAAC;IAC7DF,IAAIG,IAAI,GAAG;IACXH,IAAII,KAAK,GAAG;IACZJ,IAAID,OAAO,GAAG,GAAGA,QAAQ,CAAC,EAAED,SAASI,OAAO,EAAE;IAC9CF,IAAIK,IAAI,GAAGP,SAASI,OAAO;IAC3BF,IAAIM,SAAS,GAAGR,SAASS,IAAI;IAC7B,OAAOP;AACT;AAEA,OAAO,SAASQ,iBAAiBC,EAAgB,EAAEC,MAAc;IAC/D,IAAI,CAACd,WAAW;IAEhB,MAAMe,eAAeF,GAAGG,IAAI,CAACC,IAAI,CAACJ;IAClCA,GAAGG,IAAI,GAAG,CAACE,MAAuB,GAAGP;QACnC,IAAIO,SAAS,QAAQ;YACnB,MAAMd,MAAMe,aAAaR,IAAI,CAAC,EAAE,EAAYG;YAC5C,IAAIV,KAAK,OAAOW,aAAa,SAASX;QACxC;QACA,OAAOW,aAAaG,SAASP;IAC/B;AACF;AAEA,OAAO,SAASQ,aAAaC,MAAc,EAAEN,MAAc;IACzD,IAAId,aAAaoB,WAAW,KAAK,CAACN,OAAOO,IAAI,EAAE;QAC7C,OAAOpB,cAAca,OAAOZ,QAAQ,EAAE;IACxC;IACA,OAAO;AACT;AAEA,OAAO,SAASoB,iBAAiBF,MAAc,EAAEN,MAAc;IAC7D,IAAId,aAAaoB,WAAW,KAAK,CAACN,OAAOO,IAAI,EAAE;QAC7C,OAAOpB,cAAca,OAAOZ,QAAQ,EAAE;IACxC;IACA,OAAO;AACT"}
|
package/dist/esm/shim/index.d.ts
CHANGED
|
@@ -13,9 +13,7 @@ import type { Parsed, ShimSpawnOptions } from './types.js';
|
|
|
13
13
|
declare function spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess;
|
|
14
14
|
declare function spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer>;
|
|
15
15
|
export default spawn;
|
|
16
|
-
export { spawn };
|
|
17
|
-
export { spawnSync as sync };
|
|
18
|
-
export { parse as _parse };
|
|
16
|
+
export { parse as _parse, spawn, spawnSync as sync };
|
|
19
17
|
export declare const _enoent: {
|
|
20
18
|
hookChildProcess: typeof hookChildProcess;
|
|
21
19
|
verifyENOENT: typeof verifyENOENT;
|
package/dist/esm/shim/index.js
CHANGED
|
@@ -24,10 +24,8 @@ function spawnSync(command, args, options) {
|
|
|
24
24
|
// Main export
|
|
25
25
|
export default spawn;
|
|
26
26
|
// Named exports matching cross-spawn's API
|
|
27
|
-
export { spawn };
|
|
28
|
-
export { spawnSync as sync };
|
|
29
27
|
// Internal APIs used by crossSpawn.ts
|
|
30
|
-
export { parse as _parse };
|
|
28
|
+
export { parse as _parse, spawn, spawnSync as sync };
|
|
31
29
|
export const _enoent = {
|
|
32
30
|
hookChildProcess,
|
|
33
31
|
verifyENOENT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/index.ts"],"sourcesContent":["/**\n * Minimal cross-spawn shim for Windows compatibility on legacy Node.js\n *\n * This replaces the bundled cross-spawn v6.0.5 (~1,950 lines) with a minimal\n * implementation (~200 lines) that uses external dependencies:\n * - which@^1.0.0 (command resolution)\n * - env-path-key@^1.0.0 (cross-platform PATH key detection)\n */\n\nimport type { ChildProcess, SpawnSyncReturns } from 'child_process';\nimport cp from 'child_process';\nimport { hookChildProcess, notFoundError, verifyENOENT, verifyENOENTSync } from './enoent.ts';\nimport { parse } from './parse.ts';\nimport spawnSyncCompat from './spawnSync.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nfunction spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess {\n const parsed = parse(command, args, options);\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n hookChildProcess(spawned, parsed);\n return spawned;\n}\n\nfunction spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer> {\n const parsed = parse(command, args, options);\n const result = spawnSyncCompat(parsed.command, parsed.args, parsed.options) as SpawnSyncReturns<Buffer> & { error?: Error };\n result.error = result.error || verifyENOENTSync(result.status as number, parsed);\n return result;\n}\n\n// Main export\nexport default spawn;\n\n// Named exports matching cross-spawn's API\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/shim/index.ts"],"sourcesContent":["/**\n * Minimal cross-spawn shim for Windows compatibility on legacy Node.js\n *\n * This replaces the bundled cross-spawn v6.0.5 (~1,950 lines) with a minimal\n * implementation (~200 lines) that uses external dependencies:\n * - which@^1.0.0 (command resolution)\n * - env-path-key@^1.0.0 (cross-platform PATH key detection)\n */\n\nimport type { ChildProcess, SpawnSyncReturns } from 'child_process';\nimport cp from 'child_process';\nimport { hookChildProcess, notFoundError, verifyENOENT, verifyENOENTSync } from './enoent.ts';\nimport { parse } from './parse.ts';\nimport spawnSyncCompat from './spawnSync.ts';\nimport type { Parsed, ShimSpawnOptions } from './types.ts';\n\nfunction spawn(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): ChildProcess {\n const parsed = parse(command, args, options);\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n hookChildProcess(spawned, parsed);\n return spawned;\n}\n\nfunction spawnSync(command: string, args?: string[] | ShimSpawnOptions, options?: ShimSpawnOptions): SpawnSyncReturns<Buffer> {\n const parsed = parse(command, args, options);\n const result = spawnSyncCompat(parsed.command, parsed.args, parsed.options) as SpawnSyncReturns<Buffer> & { error?: Error };\n result.error = (result.error || verifyENOENTSync(result.status as number, parsed)) as Error | undefined;\n return result;\n}\n\n// Main export\nexport default spawn;\n\n// Named exports matching cross-spawn's API\n// Internal APIs used by crossSpawn.ts\nexport { parse as _parse, spawn, spawnSync as sync };\nexport const _enoent = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n\n// Re-export types\nexport type { Parsed, ShimSpawnOptions };\n"],"names":["cp","hookChildProcess","notFoundError","verifyENOENT","verifyENOENTSync","parse","spawnSyncCompat","spawn","command","args","options","parsed","spawned","spawnSync","result","error","status","_parse","sync","_enoent"],"mappings":"AAAA;;;;;;;CAOC,GAGD,OAAOA,QAAQ,gBAAgB;AAC/B,SAASC,gBAAgB,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,cAAc;AAC9F,SAASC,KAAK,QAAQ,aAAa;AACnC,OAAOC,qBAAqB,iBAAiB;AAG7C,SAASC,MAAMC,OAAe,EAAEC,IAAkC,EAAEC,OAA0B;IAC5F,MAAMC,SAASN,MAAMG,SAASC,MAAMC;IACpC,MAAME,UAAUZ,GAAGO,KAAK,CAACI,OAAOH,OAAO,EAAEG,OAAOF,IAAI,EAAEE,OAAOD,OAAO;IACpET,iBAAiBW,SAASD;IAC1B,OAAOC;AACT;AAEA,SAASC,UAAUL,OAAe,EAAEC,IAAkC,EAAEC,OAA0B;IAChG,MAAMC,SAASN,MAAMG,SAASC,MAAMC;IACpC,MAAMI,SAASR,gBAAgBK,OAAOH,OAAO,EAAEG,OAAOF,IAAI,EAAEE,OAAOD,OAAO;IAC1EI,OAAOC,KAAK,GAAID,OAAOC,KAAK,IAAIX,iBAAiBU,OAAOE,MAAM,EAAYL;IAC1E,OAAOG;AACT;AAEA,cAAc;AACd,eAAeP,MAAM;AAErB,2CAA2C;AAC3C,sCAAsC;AACtC,SAASF,SAASY,MAAM,EAAEV,KAAK,EAAEM,aAAaK,IAAI,GAAG;AACrD,OAAO,MAAMC,UAAU;IACrBlB;IACAE;IACAC;IACAF;AACF,EAAE"}
|
|
@@ -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 { 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":"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"}
|
|
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":"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"}
|
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 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
|
+
{"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 as SpawnResult))));\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"}
|
|
@@ -20,15 +20,17 @@ export default function worker(cp, options, callback) {
|
|
|
20
20
|
oo(cp, [
|
|
21
21
|
'error',
|
|
22
22
|
'close'
|
|
23
|
-
], (
|
|
23
|
+
], function(...args) {
|
|
24
|
+
var _cp_pid;
|
|
25
|
+
const err = args[0];
|
|
24
26
|
if (err) {
|
|
25
27
|
if (err.code === 'OK') return; // ignore
|
|
26
|
-
return callback(err);
|
|
28
|
+
return callback === null || callback === void 0 ? void 0 : callback(err);
|
|
27
29
|
}
|
|
28
30
|
// prepare result
|
|
29
|
-
res.pid = cp.pid;
|
|
30
|
-
res.status =
|
|
31
|
-
res.signal =
|
|
31
|
+
res.pid = (_cp_pid = cp.pid) !== null && _cp_pid !== void 0 ? _cp_pid : 0;
|
|
32
|
+
res.status = args[1];
|
|
33
|
+
res.signal = args[2];
|
|
32
34
|
if (options.encoding && cp.stdout) {
|
|
33
35
|
res.stdout = Buffer.concat(stdout);
|
|
34
36
|
if (options.encoding !== 'binary') res.stdout = res.stdout.toString(options.encoding);
|
|
@@ -51,10 +53,11 @@ export default function worker(cp, options, callback) {
|
|
|
51
53
|
exitErr[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
exitErr ? callback(exitErr) : callback(
|
|
56
|
+
exitErr ? callback === null || callback === void 0 ? void 0 : callback(exitErr) : callback === null || callback === void 0 ? void 0 : callback(undefined, res);
|
|
55
57
|
});
|
|
56
58
|
// pipe input
|
|
57
59
|
if (options.input && (typeof options.input === 'string' || Buffer.isBuffer(options.input))) {
|
|
58
|
-
|
|
60
|
+
var _cp_stdin;
|
|
61
|
+
(_cp_stdin = cp.stdin) === null || _cp_stdin === void 0 ? void 0 : _cp_stdin.end(options.input);
|
|
59
62
|
}
|
|
60
63
|
}
|
|
@@ -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 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'], (
|
|
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 unknown 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'], function (this: unknown, ...args: unknown[]) {\n const err = args[0] as Error | 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 ?? 0;\n res.status = args[1] as number | null;\n res.signal = args[2] as NodeJS.Signals | null;\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 as unknown as Record<string, unknown>)[key] = Buffer.isBuffer((res as unknown as Record<string, unknown>)[key]) ? ((res as unknown as Record<string, unknown>)[key] as Buffer).toString(options.encoding || 'utf8') : (res as unknown as Record<string, unknown>)[key];\n }\n }\n exitErr ? callback?.(exitErr as SpawnError) : callback?.(undefined, 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","args","err","code","Buffer","concat","toString","exitErr","Error","key","indexOf","isBuffer","undefined","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,SAAyB,GAAGc,IAAe;YAQ1Dd;QAPV,MAAMe,MAAMD,IAAI,CAAC,EAAE;QACnB,IAAIC,KAAK;YACP,IAAI,AAACA,IAAmBC,IAAI,KAAK,MAAM,QAAQ,SAAS;YACxD,OAAOd,qBAAAA,+BAAAA,SAAWa;QACpB;QAEA,iBAAiB;QACjBZ,IAAIC,GAAG,IAAGJ,UAAAA,GAAGI,GAAG,cAANJ,qBAAAA,UAAU;QACpBG,IAAIK,MAAM,GAAGM,IAAI,CAAC,EAAE;QACpBX,IAAIM,MAAM,GAAGK,IAAI,CAAC,EAAE;QACpB,IAAIb,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,MAAMY,UAAUjB,IAAIK,MAAM,KAAK,IAAI,IAAIa,MAAM,CAAC,oBAAoB,EAAElB,IAAIK,MAAM,EAAE,IAAI;QACpF,IAAIY,SAAS;YACX,IAAK,MAAME,OAAOnB,IAAK;gBACrB,IAAIL,UAAUyB,OAAO,CAACD,OAAO,GAAG;gBAC/BF,OAA8C,CAACE,IAAI,GAAGL,OAAOO,QAAQ,CAAC,AAACrB,GAA0C,CAACmB,IAAI,IAAI,AAAC,AAACnB,GAA0C,CAACmB,IAAI,CAAYH,QAAQ,CAAClB,QAAQS,QAAQ,IAAI,UAAU,AAACP,GAA0C,CAACmB,IAAI;YACjR;QACF;QACAF,UAAUlB,qBAAAA,+BAAAA,SAAWkB,WAAyBlB,qBAAAA,+BAAAA,SAAWuB,WAAWtB;IACtE;IAEA,aAAa;IACb,IAAIF,QAAQyB,KAAK,IAAK,CAAA,OAAOzB,QAAQyB,KAAK,KAAK,YAAYT,OAAOO,QAAQ,CAACvB,QAAQyB,KAAK,CAAA,GAAI;YAC1F1B;SAAAA,YAAAA,GAAG2B,KAAK,cAAR3B,gCAAAA,UAAU4B,GAAG,CAAC3B,QAAQyB,KAAK;IAC7B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/sync.ts"],"sourcesContent":["import { spawnKeys } from '../constants.ts';\n\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(res: SpawnResult, options?: SpawnOptions): SpawnResult {\n options = options || {};\n\n // pipe if inherited\n if (res.stdout && options.stdio === 'inherit') {\n process.stdout.write(res.stdout);\n res.stdout = null;\n }\n if (res.stderr && options.stdio === 'inherit') {\n process.stderr.write(res.stderr);\n res.stderr = null;\n }\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const err = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (err) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n err[key] = Buffer.isBuffer(res[key]) ? res[key].toString(options.encoding || 'utf8') : res[key];\n }\n throw err;\n }\n return res;\n}\n"],"names":["spawnKeys","worker","res","options","stdout","stdio","process","write","stderr","status","err","Error","key","indexOf","Buffer","isBuffer","toString","encoding"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAI5C,eAAe,SAASC,OAAOC,GAAgB,EAAEC,OAAsB;IACrEA,UAAUA,WAAW,CAAC;IAEtB,oBAAoB;IACpB,IAAID,IAAIE,MAAM,IAAID,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQF,MAAM,CAACG,KAAK,CAACL,IAAIE,MAAM;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/compat/cross-spawn-cb/src/workers/sync.ts"],"sourcesContent":["import { spawnKeys } from '../constants.ts';\n\nimport type { SpawnOptions, SpawnResult } from '../types.ts';\n\nexport default function worker(res: SpawnResult, options?: SpawnOptions): SpawnResult {\n options = options || {};\n\n // pipe if inherited\n if (res.stdout && options.stdio === 'inherit') {\n process.stdout.write(res.stdout);\n (res as unknown as Record<string, unknown>).stdout = null as unknown as string | Buffer;\n }\n if (res.stderr && options.stdio === 'inherit') {\n process.stderr.write(res.stderr);\n (res as unknown as Record<string, unknown>).stderr = null as unknown as string | Buffer;\n }\n if (res.status === null) res.status = 0; // patch: early node on windows could return null\n\n // process errors\n const err = res.status !== 0 ? new Error(`Non-zero exit code: ${res.status}`) : null;\n if (err) {\n for (const key in res) {\n if (spawnKeys.indexOf(key) < 0) continue;\n (err as unknown as Record<string, unknown>)[key] = Buffer.isBuffer((res as unknown as Record<string, unknown>)[key]) ? ((res as unknown as Record<string, unknown>)[key] as Buffer).toString(options.encoding || 'utf8') : (res as unknown as Record<string, unknown>)[key];\n }\n throw err;\n }\n return res;\n}\n"],"names":["spawnKeys","worker","res","options","stdout","stdio","process","write","stderr","status","err","Error","key","indexOf","Buffer","isBuffer","toString","encoding"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAI5C,eAAe,SAASC,OAAOC,GAAgB,EAAEC,OAAsB;IACrEA,UAAUA,WAAW,CAAC;IAEtB,oBAAoB;IACpB,IAAID,IAAIE,MAAM,IAAID,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQF,MAAM,CAACG,KAAK,CAACL,IAAIE,MAAM;QAC9BF,IAA2CE,MAAM,GAAG;IACvD;IACA,IAAIF,IAAIM,MAAM,IAAIL,QAAQE,KAAK,KAAK,WAAW;QAC7CC,QAAQE,MAAM,CAACD,KAAK,CAACL,IAAIM,MAAM;QAC9BN,IAA2CM,MAAM,GAAG;IACvD;IACA,IAAIN,IAAIO,MAAM,KAAK,MAAMP,IAAIO,MAAM,GAAG,GAAG,iDAAiD;IAE1F,iBAAiB;IACjB,MAAMC,MAAMR,IAAIO,MAAM,KAAK,IAAI,IAAIE,MAAM,CAAC,oBAAoB,EAAET,IAAIO,MAAM,EAAE,IAAI;IAChF,IAAIC,KAAK;QACP,IAAK,MAAME,OAAOV,IAAK;YACrB,IAAIF,UAAUa,OAAO,CAACD,OAAO,GAAG;YAC/BF,GAA0C,CAACE,IAAI,GAAGE,OAAOC,QAAQ,CAAC,AAACb,GAA0C,CAACU,IAAI,IAAI,AAAC,AAACV,GAA0C,CAACU,IAAI,CAAYI,QAAQ,CAACb,QAAQc,QAAQ,IAAI,UAAU,AAACf,GAA0C,CAACU,IAAI;QAC7Q;QACA,MAAMF;IACR;IACA,OAAOR;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cross-spawn-cb",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"description": "Cross spawn with a completion callback",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-spawn",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/mocha": "*",
|
|
46
46
|
"@types/node": "*",
|
|
47
|
+
"@types/which": "^3.0.4",
|
|
47
48
|
"cr": "^0.1.0",
|
|
48
49
|
"is-version": "^1.0.9",
|
|
49
50
|
"node-install-release": "^1.7.5",
|