@socketsecurity/lib 1.3.2 → 1.3.4

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.
Files changed (338) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/abort.js +1 -60
  3. package/dist/abort.js.map +2 -2
  4. package/dist/agent.js +1 -289
  5. package/dist/agent.js.map +2 -2
  6. package/dist/ansi.js +1 -60
  7. package/dist/ansi.js.map +2 -2
  8. package/dist/argv/flags.js +1 -282
  9. package/dist/argv/flags.js.map +2 -2
  10. package/dist/argv/parse.js +1 -171
  11. package/dist/argv/parse.js.map +2 -2
  12. package/dist/arrays.js +1 -85
  13. package/dist/arrays.js.map +2 -2
  14. package/dist/bin.js +1 -402
  15. package/dist/bin.js.map +2 -2
  16. package/dist/cacache.js +1 -137
  17. package/dist/cacache.js.map +2 -2
  18. package/dist/cache-with-ttl.js +1 -223
  19. package/dist/cache-with-ttl.js.map +2 -2
  20. package/dist/constants/agents.js +1 -126
  21. package/dist/constants/agents.js.map +2 -2
  22. package/dist/constants/core.js +2 -57
  23. package/dist/constants/core.js.map +2 -2
  24. package/dist/constants/encoding.js +1 -48
  25. package/dist/constants/encoding.js.map +2 -2
  26. package/dist/constants/github.js +1 -30
  27. package/dist/constants/github.js.map +2 -2
  28. package/dist/constants/licenses.js +1 -66
  29. package/dist/constants/licenses.js.map +2 -2
  30. package/dist/constants/node.d.ts +2 -3
  31. package/dist/constants/node.js +1 -171
  32. package/dist/constants/node.js.map +3 -3
  33. package/dist/constants/packages.js +1 -128
  34. package/dist/constants/packages.js.map +2 -2
  35. package/dist/constants/paths.js +1 -150
  36. package/dist/constants/paths.js.map +2 -2
  37. package/dist/constants/platform.js +1 -41
  38. package/dist/constants/platform.js.map +2 -2
  39. package/dist/constants/process.js +1 -52
  40. package/dist/constants/process.js.map +2 -2
  41. package/dist/constants/socket.js +1 -81
  42. package/dist/constants/socket.js.map +2 -2
  43. package/dist/constants/testing.js +1 -36
  44. package/dist/constants/testing.js.map +2 -2
  45. package/dist/constants/time.js +1 -39
  46. package/dist/constants/time.js.map +2 -2
  47. package/dist/constants/typescript.js +1 -54
  48. package/dist/constants/typescript.js.map +2 -2
  49. package/dist/cover/code.js +1 -135
  50. package/dist/cover/code.js.map +2 -2
  51. package/dist/cover/formatters.js +11 -101
  52. package/dist/cover/formatters.js.map +2 -2
  53. package/dist/cover/type.js +1 -63
  54. package/dist/cover/type.js.map +2 -2
  55. package/dist/cover/types.js +1 -15
  56. package/dist/cover/types.js.map +2 -2
  57. package/dist/debug.js +2 -343
  58. package/dist/debug.js.map +2 -2
  59. package/dist/dlx-binary.js +1 -259
  60. package/dist/dlx-binary.js.map +2 -2
  61. package/dist/dlx-package.js +1 -149
  62. package/dist/dlx-package.js.map +2 -2
  63. package/dist/dlx.js +1 -166
  64. package/dist/dlx.js.map +2 -2
  65. package/dist/download-lock.js +1 -137
  66. package/dist/download-lock.js.map +2 -2
  67. package/dist/effects/pulse-frames.js +1 -64
  68. package/dist/effects/pulse-frames.js.map +2 -2
  69. package/dist/effects/text-shimmer.js +1 -174
  70. package/dist/effects/text-shimmer.js.map +2 -2
  71. package/dist/effects/types.js +1 -15
  72. package/dist/effects/types.js.map +2 -2
  73. package/dist/effects/ultra.js +1 -61
  74. package/dist/effects/ultra.js.map +2 -2
  75. package/dist/env/appdata.js +1 -28
  76. package/dist/env/appdata.js.map +2 -2
  77. package/dist/env/ci.js +1 -29
  78. package/dist/env/ci.js.map +2 -2
  79. package/dist/env/comspec.js +1 -28
  80. package/dist/env/comspec.js.map +2 -2
  81. package/dist/env/debug.js +1 -28
  82. package/dist/env/debug.js.map +2 -2
  83. package/dist/env/getters.js +1 -281
  84. package/dist/env/getters.js.map +2 -2
  85. package/dist/env/github-api-url.js +1 -28
  86. package/dist/env/github-api-url.js.map +2 -2
  87. package/dist/env/github-base-ref.js +1 -28
  88. package/dist/env/github-base-ref.js.map +2 -2
  89. package/dist/env/github-ref-name.js +1 -28
  90. package/dist/env/github-ref-name.js.map +2 -2
  91. package/dist/env/github-ref-type.js +1 -28
  92. package/dist/env/github-ref-type.js.map +2 -2
  93. package/dist/env/github-repository.js +1 -28
  94. package/dist/env/github-repository.js.map +2 -2
  95. package/dist/env/github-server-url.js +1 -28
  96. package/dist/env/github-server-url.js.map +2 -2
  97. package/dist/env/github-token.js +1 -28
  98. package/dist/env/github-token.js.map +2 -2
  99. package/dist/env/helpers.js +1 -47
  100. package/dist/env/helpers.js.map +2 -2
  101. package/dist/env/home.js +1 -28
  102. package/dist/env/home.js.map +2 -2
  103. package/dist/env/jest-worker-id.js +1 -28
  104. package/dist/env/jest-worker-id.js.map +2 -2
  105. package/dist/env/lang.js +1 -28
  106. package/dist/env/lang.js.map +2 -2
  107. package/dist/env/lc-all.js +1 -28
  108. package/dist/env/lc-all.js.map +2 -2
  109. package/dist/env/lc-messages.js +1 -28
  110. package/dist/env/lc-messages.js.map +2 -2
  111. package/dist/env/localappdata.js +1 -28
  112. package/dist/env/localappdata.js.map +2 -2
  113. package/dist/env/node-auth-token.js +1 -28
  114. package/dist/env/node-auth-token.js.map +2 -2
  115. package/dist/env/node-env.js +1 -28
  116. package/dist/env/node-env.js.map +2 -2
  117. package/dist/env/npm-config-registry.js +1 -28
  118. package/dist/env/npm-config-registry.js.map +2 -2
  119. package/dist/env/npm-config-user-agent.js +1 -28
  120. package/dist/env/npm-config-user-agent.js.map +2 -2
  121. package/dist/env/npm-lifecycle-event.js +1 -28
  122. package/dist/env/npm-lifecycle-event.js.map +2 -2
  123. package/dist/env/npm-registry.js +1 -28
  124. package/dist/env/npm-registry.js.map +2 -2
  125. package/dist/env/npm-token.js +1 -28
  126. package/dist/env/npm-token.js.map +2 -2
  127. package/dist/env/path.js +1 -28
  128. package/dist/env/path.js.map +2 -2
  129. package/dist/env/pre-commit.js +1 -29
  130. package/dist/env/pre-commit.js.map +2 -2
  131. package/dist/env/shell.js +1 -28
  132. package/dist/env/shell.js.map +2 -2
  133. package/dist/env/socket-accept-risks.js +1 -29
  134. package/dist/env/socket-accept-risks.js.map +2 -2
  135. package/dist/env/socket-api-base-url.js +1 -28
  136. package/dist/env/socket-api-base-url.js.map +2 -2
  137. package/dist/env/socket-api-proxy.js +1 -28
  138. package/dist/env/socket-api-proxy.js.map +2 -2
  139. package/dist/env/socket-api-timeout.js +1 -29
  140. package/dist/env/socket-api-timeout.js.map +2 -2
  141. package/dist/env/socket-api-token.js +1 -28
  142. package/dist/env/socket-api-token.js.map +2 -2
  143. package/dist/env/socket-cacache-dir.js +1 -28
  144. package/dist/env/socket-cacache-dir.js.map +2 -2
  145. package/dist/env/socket-cli-accept-risks.js +1 -31
  146. package/dist/env/socket-cli-accept-risks.js.map +2 -2
  147. package/dist/env/socket-cli-api-base-url.js +1 -28
  148. package/dist/env/socket-cli-api-base-url.js.map +2 -2
  149. package/dist/env/socket-cli-api-proxy.js +1 -28
  150. package/dist/env/socket-cli-api-proxy.js.map +2 -2
  151. package/dist/env/socket-cli-api-timeout.js +1 -29
  152. package/dist/env/socket-cli-api-timeout.js.map +2 -2
  153. package/dist/env/socket-cli-api-token.js +1 -28
  154. package/dist/env/socket-cli-api-token.js.map +2 -2
  155. package/dist/env/socket-cli-config.js +1 -28
  156. package/dist/env/socket-cli-config.js.map +2 -2
  157. package/dist/env/socket-cli-fix.js +1 -28
  158. package/dist/env/socket-cli-fix.js.map +2 -2
  159. package/dist/env/socket-cli-no-api-token.js +1 -31
  160. package/dist/env/socket-cli-no-api-token.js.map +2 -2
  161. package/dist/env/socket-cli-optimize.js +1 -29
  162. package/dist/env/socket-cli-optimize.js.map +2 -2
  163. package/dist/env/socket-cli-org-slug.js +1 -28
  164. package/dist/env/socket-cli-org-slug.js.map +2 -2
  165. package/dist/env/socket-cli-shadow-accept-risks.js +1 -31
  166. package/dist/env/socket-cli-shadow-accept-risks.js.map +2 -2
  167. package/dist/env/socket-cli-shadow-api-token.js +1 -28
  168. package/dist/env/socket-cli-shadow-api-token.js.map +2 -2
  169. package/dist/env/socket-cli-shadow-bin.js +1 -28
  170. package/dist/env/socket-cli-shadow-bin.js.map +2 -2
  171. package/dist/env/socket-cli-shadow-progress.js +1 -31
  172. package/dist/env/socket-cli-shadow-progress.js.map +2 -2
  173. package/dist/env/socket-cli-shadow-silent.js +1 -31
  174. package/dist/env/socket-cli-shadow-silent.js.map +2 -2
  175. package/dist/env/socket-cli-view-all-risks.js +1 -31
  176. package/dist/env/socket-cli-view-all-risks.js.map +2 -2
  177. package/dist/env/socket-config.js +1 -28
  178. package/dist/env/socket-config.js.map +2 -2
  179. package/dist/env/socket-debug.js +1 -28
  180. package/dist/env/socket-debug.js.map +2 -2
  181. package/dist/env/socket-home.js +1 -28
  182. package/dist/env/socket-home.js.map +2 -2
  183. package/dist/env/socket-no-api-token.js +1 -29
  184. package/dist/env/socket-no-api-token.js.map +2 -2
  185. package/dist/env/socket-npm-registry.js +1 -28
  186. package/dist/env/socket-npm-registry.js.map +2 -2
  187. package/dist/env/socket-org-slug.js +1 -28
  188. package/dist/env/socket-org-slug.js.map +2 -2
  189. package/dist/env/socket-registry-url.js +1 -28
  190. package/dist/env/socket-registry-url.js.map +2 -2
  191. package/dist/env/socket-view-all-risks.js +1 -29
  192. package/dist/env/socket-view-all-risks.js.map +2 -2
  193. package/dist/env/temp.js +1 -28
  194. package/dist/env/temp.js.map +2 -2
  195. package/dist/env/term.js +1 -28
  196. package/dist/env/term.js.map +2 -2
  197. package/dist/env/tmp.js +1 -28
  198. package/dist/env/tmp.js.map +2 -2
  199. package/dist/env/tmpdir.js +1 -28
  200. package/dist/env/tmpdir.js.map +2 -2
  201. package/dist/env/userprofile.js +1 -28
  202. package/dist/env/userprofile.js.map +2 -2
  203. package/dist/env/vitest.js +1 -29
  204. package/dist/env/vitest.js.map +2 -2
  205. package/dist/env/xdg-cache-home.js +1 -28
  206. package/dist/env/xdg-cache-home.js.map +2 -2
  207. package/dist/env/xdg-config-home.js +1 -28
  208. package/dist/env/xdg-config-home.js.map +2 -2
  209. package/dist/env/xdg-data-home.js +1 -28
  210. package/dist/env/xdg-data-home.js.map +2 -2
  211. package/dist/env.js +1 -61
  212. package/dist/env.js.map +2 -2
  213. package/dist/fs.js +3 -626
  214. package/dist/fs.js.map +2 -2
  215. package/dist/functions.js +1 -68
  216. package/dist/functions.js.map +2 -2
  217. package/dist/git.js +2 -320
  218. package/dist/git.js.map +2 -2
  219. package/dist/github.js +1 -201
  220. package/dist/github.js.map +2 -2
  221. package/dist/globs.js +1 -152
  222. package/dist/globs.js.map +2 -2
  223. package/dist/http-request.js +1 -313
  224. package/dist/http-request.js.map +2 -2
  225. package/dist/index.js +1 -62
  226. package/dist/index.js.map +2 -2
  227. package/dist/ipc.js +1 -232
  228. package/dist/ipc.js.map +2 -2
  229. package/dist/json.js +1 -73
  230. package/dist/json.js.map +2 -2
  231. package/dist/logger.js +1 -1254
  232. package/dist/logger.js.map +2 -2
  233. package/dist/maintained-node-versions.js +1 -35
  234. package/dist/maintained-node-versions.js.map +2 -2
  235. package/dist/memoization.js +1 -210
  236. package/dist/memoization.js.map +2 -2
  237. package/dist/objects.d.ts +0 -3
  238. package/dist/objects.js +1 -319
  239. package/dist/objects.js.map +3 -3
  240. package/dist/packages/editable.js +9 -356
  241. package/dist/packages/editable.js.map +2 -2
  242. package/dist/packages/exports.js +1 -162
  243. package/dist/packages/exports.js.map +2 -2
  244. package/dist/packages/isolation.js +1 -195
  245. package/dist/packages/isolation.js.map +2 -2
  246. package/dist/packages/licenses.js +1 -214
  247. package/dist/packages/licenses.js.map +2 -2
  248. package/dist/packages/manifest.js +1 -190
  249. package/dist/packages/manifest.js.map +2 -2
  250. package/dist/packages/normalize.js +1 -120
  251. package/dist/packages/normalize.js.map +2 -2
  252. package/dist/packages/operations.js +1 -304
  253. package/dist/packages/operations.js.map +2 -2
  254. package/dist/packages/paths.js +1 -53
  255. package/dist/packages/paths.js.map +2 -2
  256. package/dist/packages/provenance.js +1 -178
  257. package/dist/packages/provenance.js.map +2 -2
  258. package/dist/packages/registry.js +1 -28
  259. package/dist/packages/registry.js.map +2 -2
  260. package/dist/packages/specs.js +1 -83
  261. package/dist/packages/specs.js.map +2 -2
  262. package/dist/packages/validation.js +1 -51
  263. package/dist/packages/validation.js.map +2 -2
  264. package/dist/packages.js +1 -129
  265. package/dist/packages.js.map +2 -2
  266. package/dist/path.js +1 -448
  267. package/dist/path.js.map +2 -2
  268. package/dist/paths.js +1 -143
  269. package/dist/paths.js.map +2 -2
  270. package/dist/performance.js +15 -216
  271. package/dist/performance.js.map +2 -2
  272. package/dist/promise-queue.js +1 -109
  273. package/dist/promise-queue.js.map +2 -2
  274. package/dist/promises.js +1 -269
  275. package/dist/promises.js.map +2 -2
  276. package/dist/prompts.js +1 -58
  277. package/dist/prompts.js.map +2 -2
  278. package/dist/regexps.js +1 -30
  279. package/dist/regexps.js.map +2 -2
  280. package/dist/sea.js +1 -44
  281. package/dist/sea.js.map +2 -2
  282. package/dist/shadow.js +1 -58
  283. package/dist/shadow.js.map +2 -2
  284. package/dist/signal-exit.js +1 -248
  285. package/dist/signal-exit.js.map +2 -2
  286. package/dist/sorts.js +1 -94
  287. package/dist/sorts.js.map +2 -2
  288. package/dist/spawn.js +1 -199
  289. package/dist/spawn.js.map +2 -2
  290. package/dist/spinner.js +1 -865
  291. package/dist/spinner.js.map +2 -2
  292. package/dist/ssri.js +1 -71
  293. package/dist/ssri.js.map +2 -2
  294. package/dist/stdio/clear.js +1 -82
  295. package/dist/stdio/clear.js.map +2 -2
  296. package/dist/stdio/divider.js +3 -89
  297. package/dist/stdio/divider.js.map +2 -2
  298. package/dist/stdio/footer.js +2 -94
  299. package/dist/stdio/footer.js.map +2 -2
  300. package/dist/stdio/header.js +2 -100
  301. package/dist/stdio/header.js.map +2 -2
  302. package/dist/stdio/mask.js +5 -206
  303. package/dist/stdio/mask.js.map +2 -2
  304. package/dist/stdio/progress.js +2 -209
  305. package/dist/stdio/progress.js.map +2 -2
  306. package/dist/stdio/prompts.js +1 -88
  307. package/dist/stdio/prompts.js.map +2 -2
  308. package/dist/stdio/stderr.js +2 -89
  309. package/dist/stdio/stderr.js.map +2 -2
  310. package/dist/stdio/stdout.js +2 -103
  311. package/dist/stdio/stdout.js.map +2 -2
  312. package/dist/streams.js +1 -78
  313. package/dist/streams.js.map +2 -2
  314. package/dist/strings.js +3 -251
  315. package/dist/strings.js.map +2 -2
  316. package/dist/suppress-warnings.js +1 -98
  317. package/dist/suppress-warnings.js.map +2 -2
  318. package/dist/tables.js +3 -128
  319. package/dist/tables.js.map +2 -2
  320. package/dist/temporary-executor.js +1 -53
  321. package/dist/temporary-executor.js.map +2 -2
  322. package/dist/types.js +1 -72
  323. package/dist/types.js.map +2 -2
  324. package/dist/url.js +1 -142
  325. package/dist/url.js.map +2 -2
  326. package/dist/utils/get-ipc.js +1 -58
  327. package/dist/utils/get-ipc.js.map +2 -2
  328. package/dist/validation/json-parser.js +1 -127
  329. package/dist/validation/json-parser.js.map +2 -2
  330. package/dist/validation/types.js +1 -15
  331. package/dist/validation/types.js.map +2 -2
  332. package/dist/versions.js +1 -153
  333. package/dist/versions.js.map +2 -2
  334. package/dist/words.js +1 -50
  335. package/dist/words.js.map +2 -2
  336. package/dist/zod.js +1 -27
  337. package/dist/zod.js.map +2 -2
  338. package/package.json +4 -4
package/dist/sorts.js CHANGED
@@ -1,96 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var sorts_exports = {};
20
- __export(sorts_exports, {
21
- compareSemver: () => compareSemver,
22
- compareStr: () => compareStr,
23
- localeCompare: () => localeCompare,
24
- naturalCompare: () => naturalCompare,
25
- naturalSorter: () => naturalSorter
26
- });
27
- module.exports = __toCommonJS(sorts_exports);
28
- let _localeCompare;
29
- // @__NO_SIDE_EFFECTS__
30
- function localeCompare(x, y) {
31
- if (_localeCompare === void 0) {
32
- _localeCompare = new Intl.Collator().compare;
33
- }
34
- return _localeCompare(x, y);
35
- }
36
- let _naturalCompare;
37
- // @__NO_SIDE_EFFECTS__
38
- function naturalCompare(x, y) {
39
- if (_naturalCompare === void 0) {
40
- _naturalCompare = new Intl.Collator(
41
- // The `undefined` locale means it uses the default locale of the user's
42
- // environment.
43
- void 0,
44
- {
45
- // Enables numeric sorting: numbers in strings are compared by value,
46
- // e.g. 'file2' comes before 'file10' as numbers and not 'file10' before
47
- // 'file2' as plain text.
48
- numeric: true,
49
- // Makes the comparison case-insensitive and ignores diacritics, e.g.
50
- // 'a', 'A', and 'á' are treated as equivalent.
51
- sensitivity: "base"
52
- }
53
- ).compare;
54
- }
55
- return _naturalCompare(x, y);
56
- }
57
- let _naturalSorter;
58
- // @__NO_SIDE_EFFECTS__
59
- function naturalSorter(arrayToSort) {
60
- if (_naturalSorter === void 0) {
61
- const fastSort = require("./external/fast-sort");
62
- _naturalSorter = fastSort.createNewSortInstance({
63
- comparer: naturalCompare
64
- });
65
- }
66
- return _naturalSorter?.(arrayToSort);
67
- }
68
- // @__NO_SIDE_EFFECTS__
69
- function compareStr(a, b) {
70
- return a < b ? -1 : a > b ? 1 : 0;
71
- }
72
- // @__NO_SIDE_EFFECTS__
73
- function compareSemver(a, b) {
74
- const semver = require("./external/semver");
75
- const validA = semver.valid(a);
76
- const validB = semver.valid(b);
77
- if (!validA && !validB) {
78
- return 0;
79
- }
80
- if (!validA) {
81
- return -1;
82
- }
83
- if (!validB) {
84
- return 1;
85
- }
86
- return semver.compare(a, b);
87
- }
88
- // Annotate the CommonJS export names for ESM import in node:
89
- 0 && (module.exports = {
90
- compareSemver,
91
- compareStr,
92
- localeCompare,
93
- naturalCompare,
94
- naturalSorter
95
- });
2
+ var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(e,r)=>{for(var n in r)i(e,n,{get:r[n],enumerable:!0})},d=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of l(r))!m.call(e,t)&&t!==n&&i(e,t,{get:()=>r[t],enumerable:!(o=f(r,t))||o.enumerable});return e};var g=e=>d(i({},"__esModule",{value:!0}),e);var C={};p(C,{compareSemver:()=>x,compareStr:()=>v,localeCompare:()=>S,naturalCompare:()=>c,naturalSorter:()=>y});module.exports=g(C);let a;function S(e,r){return a===void 0&&(a=new Intl.Collator().compare),a(e,r)}let u;function c(e,r){return u===void 0&&(u=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare),u(e,r)}let s;function y(e){return s===void 0&&(s=require("./external/fast-sort").createNewSortInstance({comparer:c})),s?.(e)}function v(e,r){return e<r?-1:e>r?1:0}function x(e,r){const n=require("./external/semver"),o=n.valid(e),t=n.valid(r);return!o&&!t?0:o?t?n.compare(e,r):1:-1}0&&(module.exports={compareSemver,compareStr,localeCompare,naturalCompare,naturalSorter});
96
3
  //# sourceMappingURL=sorts.js.map
package/dist/sorts.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/sorts.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Sorting comparison functions including locale-aware and natural sorting.\n * Provides various comparison utilities for arrays and collections.\n */\n\nlet _localeCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using locale-aware comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function localeCompare(x: string, y: string): number {\n if (_localeCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _localeCompare = new Intl.Collator().compare\n }\n return _localeCompare(x, y)\n}\n\nlet _naturalCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using natural sorting (numeric-aware, case-insensitive).\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalCompare(x: string, y: string): number {\n if (_naturalCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _naturalCompare = new Intl.Collator(\n // The `undefined` locale means it uses the default locale of the user's\n // environment.\n undefined,\n {\n // Enables numeric sorting: numbers in strings are compared by value,\n // e.g. 'file2' comes before 'file10' as numbers and not 'file10' before\n // 'file2' as plain text.\n numeric: true,\n // Makes the comparison case-insensitive and ignores diacritics, e.g.\n // 'a', 'A', and '\u00E1' are treated as equivalent.\n sensitivity: 'base',\n },\n ).compare\n }\n return _naturalCompare(x, y)\n}\n\n// Type for fast-sort sorter function.\ntype FastSortFunction = ReturnType<\n typeof import('fast-sort').createNewSortInstance\n>\n\nlet _naturalSorter: FastSortFunction | undefined\n/**\n * Sort an array using natural comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalSorter<T>(\n arrayToSort: T[],\n): ReturnType<FastSortFunction> {\n if (_naturalSorter === undefined) {\n const fastSort = /*@__PURE__*/ require('./external/fast-sort')\n _naturalSorter = (fastSort as any).createNewSortInstance({\n comparer: naturalCompare,\n })\n }\n return _naturalSorter?.(arrayToSort)\n}\n\n/**\n * Simple string comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareStr(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0\n}\n\n/**\n * Compare semantic versions.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareSemver(a: string, b: string): number {\n const semver = /*@__PURE__*/ require('./external/semver')\n const validA = semver.valid(a)\n const validB = semver.valid(b)\n\n if (!validA && !validB) {\n return 0\n }\n if (!validA) {\n return -1\n }\n if (!validB) {\n return 1\n }\n return (semver as any).compare(a, b)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAI;AAAA;AAKG,SAAS,cAAc,GAAW,GAAmB;AAC1D,MAAI,mBAAmB,QAAW;AAEhC,qBAAiB,IAAI,KAAK,SAAS,EAAE;AAAA,EACvC;AACA,SAAO,eAAe,GAAG,CAAC;AAC5B;AAEA,IAAI;AAAA;AAKG,SAAS,eAAe,GAAW,GAAmB;AAC3D,MAAI,oBAAoB,QAAW;AAEjC,sBAAkB,IAAI,KAAK;AAAA;AAAA;AAAA,MAGzB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA,QAIE,SAAS;AAAA;AAAA;AAAA,QAGT,aAAa;AAAA,MACf;AAAA,IACF,EAAE;AAAA,EACJ;AACA,SAAO,gBAAgB,GAAG,CAAC;AAC7B;AAOA,IAAI;AAAA;AAKG,SAAS,cACd,aAC8B;AAC9B,MAAI,mBAAmB,QAAW;AAChC,UAAM,WAAyB,QAAQ,sBAAsB;AAC7D,qBAAkB,SAAiB,sBAAsB;AAAA,MACvD,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAO,iBAAiB,WAAW;AACrC;AAAA;AAMO,SAAS,WAAW,GAAW,GAAmB;AACvD,SAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AAClC;AAAA;AAMO,SAAS,cAAc,GAAW,GAAmB;AAC1D,QAAM,SAAuB,QAAQ,mBAAmB;AACxD,QAAM,SAAS,OAAO,MAAM,CAAC;AAC7B,QAAM,SAAS,OAAO,MAAM,CAAC;AAE7B,MAAI,CAAC,UAAU,CAAC,QAAQ;AACtB,WAAO;AAAA,EACT;AACA,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,SAAQ,OAAe,QAAQ,GAAG,CAAC;AACrC;",
6
- "names": []
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,eAAAC,EAAA,kBAAAC,EAAA,mBAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAP,GAKA,IAAIQ,EAKG,SAASJ,EAAcK,EAAWC,EAAmB,CAC1D,OAAIF,IAAmB,SAErBA,EAAiB,IAAI,KAAK,SAAS,EAAE,SAEhCA,EAAeC,EAAGC,CAAC,CAC5B,CAEA,IAAIC,EAKG,SAASN,EAAeI,EAAWC,EAAmB,CAC3D,OAAIC,IAAoB,SAEtBA,EAAkB,IAAI,KAAK,SAGzB,OACA,CAIE,QAAS,GAGT,YAAa,MACf,CACF,EAAE,SAEGA,EAAgBF,EAAGC,CAAC,CAC7B,CAOA,IAAIE,EAKG,SAASN,EACdO,EAC8B,CAC9B,OAAID,IAAmB,SAErBA,EAD+B,QAAQ,sBAAsB,EAC1B,sBAAsB,CACvD,SAAUP,CACZ,CAAC,GAEIO,IAAiBC,CAAW,CACrC,CAMO,SAASV,EAAWW,EAAWC,EAAmB,CACvD,OAAOD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAI,CAClC,CAMO,SAASb,EAAcY,EAAWC,EAAmB,CAC1D,MAAMC,EAAuB,QAAQ,mBAAmB,EAClDC,EAASD,EAAO,MAAMF,CAAC,EACvBI,EAASF,EAAO,MAAMD,CAAC,EAE7B,MAAI,CAACE,GAAU,CAACC,EACP,EAEJD,EAGAC,EAGGF,EAAe,QAAQF,EAAGC,CAAC,EAF1B,EAHA,EAMX",
6
+ "names": ["sorts_exports", "__export", "compareSemver", "compareStr", "localeCompare", "naturalCompare", "naturalSorter", "__toCommonJS", "_localeCompare", "x", "y", "_naturalCompare", "_naturalSorter", "arrayToSort", "a", "b", "semver", "validA", "validB"]
7
7
  }
package/dist/spawn.js CHANGED
@@ -1,201 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var spawn_exports = {};
20
- __export(spawn_exports, {
21
- isSpawnError: () => isSpawnError,
22
- isStdioType: () => isStdioType,
23
- spawn: () => spawn,
24
- spawnSync: () => spawnSync
25
- });
26
- module.exports = __toCommonJS(spawn_exports);
27
- var import_process = require("#constants/process");
28
- var import_arrays = require("./arrays");
29
- var import_objects = require("./objects");
30
- var import_strings = require("./strings");
31
- const abortSignal = (0, import_process.getAbortSignal)();
32
- const spinner = (0, import_process.getSpinner)();
33
- const windowsScriptExtRegExp = /\.(?:cmd|bat|ps1)$/i;
34
- let _child_process;
35
- // @__NO_SIDE_EFFECTS__
36
- function getChildProcess() {
37
- if (_child_process === void 0) {
38
- _child_process = require("node:child_process");
39
- }
40
- return _child_process;
41
- }
42
- let _npmCliPromiseSpawn;
43
- // @__NO_SIDE_EFFECTS__
44
- function getNpmcliPromiseSpawn() {
45
- if (_npmCliPromiseSpawn === void 0) {
46
- _npmCliPromiseSpawn = require("./external/@npmcli/promise-spawn");
47
- }
48
- return _npmCliPromiseSpawn;
49
- }
50
- let _path;
51
- // @__NO_SIDE_EFFECTS__
52
- function getPath() {
53
- if (_path === void 0) {
54
- _path = require("node:path");
55
- }
56
- return _path;
57
- }
58
- // @__NO_SIDE_EFFECTS__
59
- function isSpawnError(value) {
60
- if (value === null || typeof value !== "object") {
61
- return false;
62
- }
63
- const err = value;
64
- return (0, import_objects.hasOwn)(err, "code") && typeof err["code"] !== "undefined" || (0, import_objects.hasOwn)(err, "errno") && typeof err["errno"] !== "undefined" || (0, import_objects.hasOwn)(err, "syscall") && typeof err["syscall"] === "string";
65
- }
66
- // @__NO_SIDE_EFFECTS__
67
- function isStdioType(stdio, type) {
68
- if (arguments.length === 1) {
69
- const validTypes = ["pipe", "ignore", "inherit", "overlapped"];
70
- return typeof stdio === "string" && validTypes.includes(stdio);
71
- }
72
- return stdio === type || (stdio === null || stdio === void 0) && type === "pipe" || (0, import_arrays.isArray)(stdio) && stdio.length > 2 && stdio[0] === type && stdio[1] === type && stdio[2] === type;
73
- }
74
- // @__NO_SIDE_EFFECTS__
75
- function stripAnsiFromSpawnResult(result) {
76
- const res = result;
77
- const { stderr, stdout } = res;
78
- if (typeof stdout === "string") {
79
- res.stdout = (0, import_strings.stripAnsi)(stdout);
80
- }
81
- if (typeof stderr === "string") {
82
- res.stderr = (0, import_strings.stripAnsi)(stderr);
83
- }
84
- return res;
85
- }
86
- function spawn(cmd, args, options, extra) {
87
- const shell = (0, import_objects.getOwn)(options, "shell");
88
- const WIN32 = process.platform === "win32";
89
- let actualCmd = cmd;
90
- if (WIN32 && shell && windowsScriptExtRegExp.test(actualCmd)) {
91
- const path = /* @__PURE__ */ getPath();
92
- actualCmd = path.basename(actualCmd, path.extname(actualCmd));
93
- }
94
- const {
95
- spinner: optionsSpinner = spinner,
96
- stripAnsi: shouldStripAnsi = true,
97
- ...spawnOptions
98
- } = { __proto__: null, ...options };
99
- const spinnerInstance = optionsSpinner;
100
- const { env, stdio, stdioString = true } = spawnOptions;
101
- const wasSpinning = !!spinnerInstance?.isSpinning;
102
- const shouldStopSpinner = wasSpinning && !/* @__PURE__ */ isStdioType(stdio, "ignore") && !/* @__PURE__ */ isStdioType(stdio, "pipe");
103
- const shouldRestartSpinner = shouldStopSpinner;
104
- if (shouldStopSpinner) {
105
- spinnerInstance.stop();
106
- }
107
- const npmCliPromiseSpawn = /* @__PURE__ */ getNpmcliPromiseSpawn();
108
- const promiseSpawnOpts = {
109
- __proto__: null,
110
- cwd: typeof spawnOptions.cwd === "string" ? spawnOptions.cwd : void 0,
111
- env: {
112
- __proto__: null,
113
- ...process.env,
114
- ...env
115
- },
116
- signal: abortSignal,
117
- stdio: spawnOptions.stdio,
118
- stdioString,
119
- shell: spawnOptions.shell,
120
- timeout: spawnOptions.timeout,
121
- uid: spawnOptions.uid,
122
- gid: spawnOptions.gid
123
- };
124
- const spawnPromise = npmCliPromiseSpawn(
125
- actualCmd,
126
- args ? [...args] : [],
127
- promiseSpawnOpts,
128
- extra
129
- );
130
- const oldSpawnPromise = spawnPromise;
131
- let newSpawnPromise;
132
- if (shouldStripAnsi && stdioString) {
133
- newSpawnPromise = spawnPromise.then((result) => {
134
- const strippedResult = /* @__PURE__ */ stripAnsiFromSpawnResult(result);
135
- if ("code" in strippedResult) {
136
- ;
137
- strippedResult.exitCode = strippedResult.code;
138
- }
139
- return strippedResult;
140
- }).catch((error) => {
141
- throw /* @__PURE__ */ stripAnsiFromSpawnResult(error);
142
- });
143
- } else {
144
- newSpawnPromise = spawnPromise.then((result) => {
145
- if ("code" in result) {
146
- const res = result;
147
- res.exitCode = result.code;
148
- return res;
149
- }
150
- return result;
151
- });
152
- }
153
- if (shouldRestartSpinner) {
154
- newSpawnPromise = newSpawnPromise.finally(() => {
155
- spinnerInstance.start();
156
- });
157
- }
158
- ;
159
- newSpawnPromise.process = oldSpawnPromise.process;
160
- newSpawnPromise.stdin = oldSpawnPromise.stdin;
161
- return newSpawnPromise;
162
- }
163
- function spawnSync(cmd, args, options) {
164
- const shell = (0, import_objects.getOwn)(options, "shell");
165
- const WIN32 = process.platform === "win32";
166
- let actualCmd = cmd;
167
- if (WIN32 && shell && windowsScriptExtRegExp.test(actualCmd)) {
168
- const path = /* @__PURE__ */ getPath();
169
- actualCmd = path.basename(actualCmd, path.extname(actualCmd));
170
- }
171
- const { stripAnsi: shouldStripAnsi = true, ...rawSpawnOptions } = {
172
- __proto__: null,
173
- ...options
174
- };
175
- const { stdioString: rawStdioString = true } = rawSpawnOptions;
176
- const rawEncoding = rawStdioString ? "utf8" : "buffer";
177
- const spawnOptions = {
178
- encoding: rawEncoding,
179
- ...rawSpawnOptions
180
- };
181
- const stdioString = spawnOptions.encoding !== "buffer";
182
- const result = (/* @__PURE__ */ getChildProcess()).spawnSync(actualCmd, args, spawnOptions);
183
- if (stdioString) {
184
- const { stderr, stdout } = result;
185
- if (stdout) {
186
- result.stdout = stdout.toString().trim();
187
- }
188
- if (stderr) {
189
- result.stderr = stderr.toString().trim();
190
- }
191
- }
192
- return shouldStripAnsi && stdioString ? /* @__PURE__ */ stripAnsiFromSpawnResult(result) : result;
193
- }
194
- // Annotate the CommonJS export names for ESM import in node:
195
- 0 && (module.exports = {
196
- isSpawnError,
197
- isStdioType,
198
- spawn,
199
- spawnSync
200
- });
2
+ var R=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var q=(e,n)=>{for(var r in n)R(e,r,{get:n[r],enumerable:!0})},F=(e,n,r,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of j(n))!H.call(e,o)&&o!==r&&R(e,o,{get:()=>n[o],enumerable:!(i=I(n,o))||i.enumerable});return e};var L=e=>F(R({},"__esModule",{value:!0}),e);var K={};q(K,{isSpawnError:()=>$,isStdioType:()=>v,spawn:()=>D,spawnSync:()=>G});module.exports=L(K);var w=require("#constants/process"),J=require("./arrays"),f=require("./objects"),k=require("./strings");const M=(0,w.getAbortSignal)(),z=(0,w.getSpinner)(),B=/\.(?:cmd|bat|ps1)$/i;let x;function U(){return x===void 0&&(x=require("node:child_process")),x}let E;function V(){return E===void 0&&(E=require("./external/@npmcli/promise-spawn")),E}let P;function T(){return P===void 0&&(P=require("node:path")),P}function $(e){if(e===null||typeof e!="object")return!1;const n=e;return(0,f.hasOwn)(n,"code")&&typeof n.code<"u"||(0,f.hasOwn)(n,"errno")&&typeof n.errno<"u"||(0,f.hasOwn)(n,"syscall")&&typeof n.syscall=="string"}function v(e,n){return arguments.length===1?typeof e=="string"&&["pipe","ignore","inherit","overlapped"].includes(e):e===n||e==null&&n==="pipe"||(0,J.isArray)(e)&&e.length>2&&e[0]===n&&e[1]===n&&e[2]===n}function N(e){const n=e,{stderr:r,stdout:i}=n;return typeof i=="string"&&(n.stdout=(0,k.stripAnsi)(i)),typeof r=="string"&&(n.stderr=(0,k.stripAnsi)(r)),n}function D(e,n,r,i){const o=(0,f.getOwn)(r,"shell"),l=process.platform==="win32";let u=e;if(l&&o&&B.test(u)){const t=T();u=t.basename(u,t.extname(u))}const{spinner:g=z,stripAnsi:b=!0,...s}={__proto__:null,...r},S=g,{env:m,stdio:d,stdioString:a=!0}=s,O=!!S?.isSpinning&&!v(d,"ignore")&&!v(d,"pipe"),C=O;O&&S.stop();const A=V(),W={__proto__:null,cwd:typeof s.cwd=="string"?s.cwd:void 0,env:{__proto__:null,...process.env,...m},signal:M,stdio:s.stdio,stdioString:a,shell:s.shell,timeout:s.timeout,uid:s.uid,gid:s.gid},h=A(u,n?[...n]:[],W,i),_=h;let p;return b&&a?p=h.then(t=>{const c=N(t);return"code"in c&&(c.exitCode=c.code),c}).catch(t=>{throw N(t)}):p=h.then(t=>{if("code"in t){const c=t;return c.exitCode=t.code,c}return t}),C&&(p=p.finally(()=>{S.start()})),p.process=_.process,p.stdin=_.stdin,p}function G(e,n,r){const i=(0,f.getOwn)(r,"shell"),o=process.platform==="win32";let l=e;if(o&&i&&B.test(l)){const a=T();l=a.basename(l,a.extname(l))}const{stripAnsi:u=!0,...g}={__proto__:null,...r},{stdioString:b=!0}=g,S={encoding:b?"utf8":"buffer",...g},m=S.encoding!=="buffer",d=U().spawnSync(l,n,S);if(m){const{stderr:a,stdout:y}=d;y&&(d.stdout=y.toString().trim()),a&&(d.stderr=a.toString().trim())}return u&&m?N(d):d}0&&(module.exports={isSpawnError,isStdioType,spawn,spawnSync});
201
3
  //# sourceMappingURL=spawn.js.map
package/dist/spawn.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/spawn.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Child process spawning utilities with cross-platform support.\n * Provides enhanced spawn functionality with stdio handling and error management.\n *\n * SECURITY: Array-Based Arguments Prevent Command Injection\n *\n * This module uses array-based arguments for all command execution, which is the\n * PRIMARY DEFENSE against command injection attacks. When you pass arguments as\n * an array to spawn():\n *\n * spawn('npx', ['sfw', tool, ...args], { shell: true })\n *\n * Node.js handles escaping automatically. Each argument is passed directly to the\n * OS without shell interpretation. Shell metacharacters like ; | & $ ( ) ` are\n * treated as LITERAL STRINGS, not as commands. This approach is secure even when\n * shell: true is used on Windows for .cmd/.bat file resolution.\n *\n * UNSAFE ALTERNATIVE (not used in this codebase):\n * spawn(`npx sfw ${tool} ${args.join(' ')}`, { shell: true }) // \u2716 VULNERABLE\n *\n * String concatenation allows injection. For example, if tool = \"foo; rm -rf /\",\n * the shell would execute both commands. Array-based arguments prevent this.\n *\n * References:\n * - https://nodejs.org/api/child_process.html#child_processspawncommand-args-options\n * - https://cheatsheetseries.owasp.org/cheatsheets/Nodejs_Security_Cheat_Sheet.html\n */\n\nimport { getAbortSignal, getSpinner } from '#constants/process'\n\nimport { isArray } from './arrays'\n\nconst abortSignal = getAbortSignal()\nconst spinner = getSpinner()\n\nimport { getOwn, hasOwn } from './objects'\nimport { stripAnsi } from './strings'\n\n// Define BufferEncoding type for TypeScript compatibility.\ntype BufferEncoding = globalThis.BufferEncoding\n\nconst windowsScriptExtRegExp = /\\.(?:cmd|bat|ps1)$/i\n\nlet _child_process: typeof import('node:child_process') | undefined\n/**\n * Lazily load the `child_process` module to avoid Webpack bundling issues.\n *\n * @returns The Node.js `child_process` module\n *\n * @example\n * const childProcess = getChildProcess()\n * childProcess.spawnSync('ls', ['-la'])\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getChildProcess() {\n if (_child_process === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _child_process = /*@__PURE__*/ require('node:child_process')\n }\n return _child_process as typeof import('node:child_process')\n}\n\n/**\n * Options for spawning a child process with promise-based completion.\n *\n * @property {string | undefined} cwd - Current working directory for the process\n * @property {boolean | undefined} stdioString - Convert stdio output to strings (default: `true`)\n * @property {StdioType | undefined} stdio - Stdio configuration (`'pipe'`, `'ignore'`, `'inherit'`, or array)\n * @property {NodeJS.ProcessEnv | undefined} env - Environment variables for the process\n * @property {boolean | string | undefined} shell - Whether to run command in shell, or path to shell\n * @property {AbortSignal | undefined} signal - Signal to abort the process\n * @property {number | undefined} timeout - Maximum time in milliseconds before killing the process\n * @property {number | undefined} uid - User identity of the process (POSIX only)\n * @property {number | undefined} gid - Group identity of the process (POSIX only)\n */\nexport type PromiseSpawnOptions = {\n cwd?: string | undefined\n stdioString?: boolean | undefined\n stdio?: StdioType | undefined\n env?: NodeJS.ProcessEnv | undefined\n shell?: boolean | string | undefined\n signal?: AbortSignal | undefined\n timeout?: number | undefined\n uid?: number | undefined\n gid?: number | undefined\n}\n\n/**\n * Result returned by {@link spawn} when the child process completes.\n * This is a Promise that resolves with process exit information and output,\n * with additional properties for accessing the running process and stdin stream.\n *\n * @property {ChildProcessType} process - The running child process instance\n * @property {WritableStreamType | null} stdin - Writable stream for process stdin, or `null` if not piped\n *\n * @example\n * const result = spawn('echo', ['hello'])\n * result.stdin?.write('additional input\\n')\n * const { code, stdout } = await result\n * console.log(stdout) // 'hello'\n */\nexport type PromiseSpawnResult = Promise<{\n cmd: string\n args: string[] | readonly string[]\n code: number\n signal: NodeJS.Signals | null\n stdout: string | Buffer\n stderr: string | Buffer\n}> & {\n process: ChildProcessType\n stdin: WritableStreamType | null\n}\n\nlet _npmCliPromiseSpawn:\n | ((\n cmd: string,\n args: string[],\n options?: PromiseSpawnOptions | undefined,\n extra?: SpawnExtra | undefined,\n ) => PromiseSpawnResult)\n | undefined\n/**\n * Lazily load the `@npmcli/promise-spawn` module for async process spawning.\n *\n * @returns The promise-spawn module that provides Promise-based spawn functionality\n *\n * @example\n * const promiseSpawn = getNpmcliPromiseSpawn()\n * await promiseSpawn('git', ['status'])\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNpmcliPromiseSpawn() {\n if (_npmCliPromiseSpawn === undefined) {\n _npmCliPromiseSpawn = /*@__PURE__*/ require('./external/@npmcli/promise-spawn')\n }\n return _npmCliPromiseSpawn as unknown as typeof import('@npmcli/promise-spawn')\n}\n\nlet _path: typeof import('node:path') | undefined\n/**\n * Lazily load the `path` module to avoid Webpack bundling issues.\n *\n * @returns The Node.js `path` module\n *\n * @example\n * const path = getPath()\n * const basename = path.basename('/foo/bar.txt')\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPath() {\n if (_path === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _path = /*@__PURE__*/ require('node:path')\n }\n return _path as typeof import('node:path')\n}\n\n/**\n * Error object thrown when a spawned process fails.\n * Extends the standard Error with process-specific information including exit code,\n * signal, command details, and captured output.\n *\n * @property {string[]} args - Arguments passed to the command\n * @property {string} cmd - Command that was executed\n * @property {number} code - Process exit code\n * @property {string} name - Error name (typically `'Error'`)\n * @property {string} message - Error message describing the failure\n * @property {NodeJS.Signals | null} signal - Signal that terminated the process, if any\n * @property {string} stack - Stack trace of the error\n * @property {string | Buffer} stderr - Standard error output from the process\n * @property {string | Buffer} stdout - Standard output from the process\n *\n * @example\n * try {\n * await spawn('exit', ['1'])\n * } catch (error) {\n * if (isSpawnError(error)) {\n * console.error(`Command failed with code ${error.code}`)\n * console.error(`stderr: ${error.stderr}`)\n * }\n * }\n */\nexport type SpawnError = {\n args: string[]\n cmd: string\n code: number\n name: string\n message: string\n signal: NodeJS.Signals | null\n stack: string\n stderr: string | Buffer\n stdout: string | Buffer\n}\n\n/**\n * Spawn error variant where stdout and stderr are guaranteed to be strings.\n * This type is used when `stdioString: true` is set in spawn options.\n *\n * @property {string} stdout - Standard output as a string\n * @property {string} stderr - Standard error as a string\n */\nexport type SpawnErrorWithOutputString = SpawnError & {\n stdout: string\n stderr: string\n}\n\n/**\n * Spawn error variant where stdout and stderr are guaranteed to be Buffers.\n * This type is used when `stdioString: false` is set in spawn options.\n *\n * @property {Buffer} stdout - Standard output as a Buffer\n * @property {Buffer} stderr - Standard error as a Buffer\n */\nexport type SpawnErrorWithOutputBuffer = SpawnError & {\n stdout: Buffer\n stderr: Buffer\n}\n\n/**\n * Extra options passed to the underlying promise-spawn implementation.\n * This is an open-ended object for passing additional metadata or configuration.\n */\nexport type SpawnExtra = Record<string, unknown>\n\n/**\n * Valid values for individual stdio streams.\n * - `'pipe'` - Creates a pipe between child and parent (default)\n * - `'ignore'` - Ignores the stream\n * - `'inherit'` - Uses parent's stream\n * - `'overlapped'` - Windows-specific overlapped I/O\n */\nexport type IOType = 'pipe' | 'ignore' | 'inherit' | 'overlapped'\n\n/**\n * Configuration for process stdio (stdin, stdout, stderr) streams.\n * Can be a single value applied to all streams, or an array specifying each stream individually.\n * - `'ipc'` - Creates an IPC channel for communication with the parent\n *\n * @example\n * // All streams piped\n * stdio: 'pipe'\n *\n * @example\n * // Custom configuration per stream: [stdin, stdout, stderr]\n * stdio: ['ignore', 'pipe', 'pipe']\n */\nexport type StdioType = IOType | 'ipc' | Array<IOType | 'ipc'>\n\n/**\n * Result object returned by {@link spawnSync} when the child process completes synchronously.\n *\n * @template T - Type of stdout/stderr (string or Buffer)\n * @property {number} pid - Process ID of the spawned child\n * @property {Array<T | null>} output - Array containing stdout/stderr values\n * @property {T} stdout - Standard output from the process\n * @property {T} stderr - Standard error from the process\n * @property {number | null} status - Exit code, or `null` if killed by signal\n * @property {NodeJS.Signals | null} signal - Signal that terminated the process, or `null`\n * @property {Error | undefined} error - Error object if the spawn failed\n */\nexport interface SpawnSyncReturns<T> {\n pid: number\n output: Array<T | null>\n stdout: T\n stderr: T\n status: number | null\n signal: NodeJS.Signals | null\n error?: Error | undefined\n}\n\n/**\n * Check if a value is a spawn error with expected error properties.\n * Tests for common error properties from child process failures.\n *\n * @param {unknown} value - Value to check\n * @returns {boolean} `true` if the value has spawn error properties\n *\n * @example\n * try {\n * await spawn('nonexistent-command')\n * } catch (error) {\n * if (isSpawnError(error)) {\n * console.error(`Spawn failed: ${error.code}`)\n * }\n * }\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isSpawnError(value: unknown): value is SpawnError {\n if (value === null || typeof value !== 'object') {\n return false\n }\n // Check for spawn-specific error properties.\n const err = value as Record<string, unknown>\n return (\n (hasOwn(err, 'code') && typeof err['code'] !== 'undefined') ||\n (hasOwn(err, 'errno') && typeof err['errno'] !== 'undefined') ||\n (hasOwn(err, 'syscall') && typeof err['syscall'] === 'string')\n )\n}\n\n/**\n * Check if stdio configuration matches a specific type.\n * When called with one argument, validates if it's a valid stdio type.\n * When called with two arguments, checks if the stdio config matches the specified type.\n *\n * @param {string | string[]} stdio - Stdio configuration to check\n * @param {StdioType | undefined} type - Expected stdio type (optional)\n * @returns {boolean} `true` if stdio matches the type or is valid\n *\n * @example\n * // Check if valid stdio type\n * isStdioType('pipe') // true\n * isStdioType('invalid') // false\n *\n * @example\n * // Check if stdio matches specific type\n * isStdioType('pipe', 'pipe') // true\n * isStdioType(['pipe', 'pipe', 'pipe'], 'pipe') // true\n * isStdioType('ignore', 'pipe') // false\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isStdioType(\n stdio: string | string[],\n type?: StdioType | undefined,\n): boolean {\n // If called with one argument, check if it's a valid stdio type.\n // biome-ignore lint/complexity/noArguments: Function overload detection for single vs two-arg calls.\n if (arguments.length === 1) {\n const validTypes = ['pipe', 'ignore', 'inherit', 'overlapped']\n return typeof stdio === 'string' && validTypes.includes(stdio)\n }\n // Original two-argument behavior.\n return (\n stdio === type ||\n ((stdio === null || stdio === undefined) && type === 'pipe') ||\n (isArray(stdio) &&\n stdio.length > 2 &&\n stdio[0] === type &&\n stdio[1] === type &&\n stdio[2] === type)\n )\n}\n\n/**\n * Strip ANSI escape codes from spawn result stdout and stderr.\n * Modifies the result object in place to remove color codes and formatting.\n *\n * @param {unknown} result - Spawn result object with stdout/stderr properties\n * @returns {unknown} The modified result object\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction stripAnsiFromSpawnResult(result: unknown): unknown {\n const res = result as {\n stdout?: string | Buffer\n stderr?: string | Buffer\n }\n const { stderr, stdout } = res\n if (typeof stdout === 'string') {\n res.stdout = stripAnsi(stdout)\n }\n if (typeof stderr === 'string') {\n res.stderr = stripAnsi(stderr)\n }\n return res\n}\n\n/*@__NO_SIDE_EFFECTS__*/\n// Duplicated from Node.js child_process.SpawnOptions\n// These are the options passed to child_process.spawn()\ninterface NodeSpawnOptions {\n cwd?: string | URL | undefined\n env?: NodeJS.ProcessEnv | undefined\n argv0?: string | undefined\n stdio?: any\n detached?: boolean | undefined\n uid?: number | undefined\n gid?: number | undefined\n serialization?: 'json' | 'advanced' | undefined\n shell?: boolean | string | undefined\n windowsVerbatimArguments?: boolean | undefined\n windowsHide?: boolean | undefined\n signal?: AbortSignal | undefined\n timeout?: number | undefined\n killSignal?: NodeJS.Signals | number | undefined\n}\n\n// Duplicated from Node.js child_process.ChildProcess\n// This represents a spawned child process\ninterface ChildProcessType {\n stdin: NodeJS.WritableStream | null\n stdout: NodeJS.ReadableStream | null\n stderr: NodeJS.ReadableStream | null\n readonly channel?: any\n readonly stdio: [\n NodeJS.WritableStream | null,\n NodeJS.ReadableStream | null,\n NodeJS.ReadableStream | null,\n NodeJS.ReadableStream | NodeJS.WritableStream | null | undefined,\n NodeJS.ReadableStream | NodeJS.WritableStream | null | undefined,\n ]\n readonly killed: boolean\n readonly pid?: number | undefined\n readonly connected: boolean\n readonly exitCode: number | null\n readonly signalCode: NodeJS.Signals | null\n readonly spawnargs: string[]\n readonly spawnfile: string\n kill(signal?: NodeJS.Signals | number): boolean\n send(message: any, callback?: (error: Error | null) => void): boolean\n send(\n message: any,\n sendHandle?: any | undefined,\n callback?: (error: Error | null) => void,\n ): boolean\n send(\n message: any,\n sendHandle?: any | undefined,\n options?: any | undefined,\n callback?: (error: Error | null) => void,\n ): boolean\n disconnect(): void\n unref(): void\n ref(): void\n}\n\n// Duplicated from Node.js stream.Writable\ninterface WritableStreamType {\n writable: boolean\n writableEnded: boolean\n writableFinished: boolean\n writableHighWaterMark: number\n writableLength: number\n writableObjectMode: boolean\n writableCorked: number\n destroyed: boolean\n write(\n chunk: any,\n encoding?: BufferEncoding | undefined,\n callback?: (error?: Error | null) => void,\n ): boolean\n write(chunk: any, callback?: (error?: Error | null) => void): boolean\n end(cb?: () => void): this\n end(chunk: any, cb?: () => void): this\n end(chunk: any, encoding?: BufferEncoding | undefined, cb?: () => void): this\n cork(): void\n uncork(): void\n destroy(error?: Error | undefined): this\n}\n\n/**\n * Options for spawning a child process with {@link spawn}.\n * Extends Node.js spawn options with additional Socket-specific functionality.\n *\n * @property {import('./spinner').Spinner | undefined} spinner - Spinner instance to pause during execution\n * @property {boolean | undefined} stdioString - Convert output to strings (default: `true`)\n * @property {boolean | undefined} stripAnsi - Remove ANSI codes from output (default: `true`)\n * @property {string | URL | undefined} cwd - Current working directory\n * @property {NodeJS.ProcessEnv | undefined} env - Environment variables\n * @property {StdioType | undefined} stdio - Stdio configuration\n * @property {boolean | string | undefined} shell - Run command in shell\n * @property {number | undefined} timeout - Timeout in milliseconds\n * @property {AbortSignal | undefined} signal - Abort signal\n * @property {number | undefined} uid - User identity (POSIX)\n * @property {number | undefined} gid - Group identity (POSIX)\n */\nexport type SpawnOptions = import('./objects').Remap<\n NodeSpawnOptions & {\n spinner?: import('./spinner').Spinner | undefined\n stdioString?: boolean\n stripAnsi?: boolean\n }\n>\nexport type SpawnResult = PromiseSpawnResult\n/**\n * Result object returned when a spawned process completes.\n *\n * @property {string} cmd - Command that was executed\n * @property {string[] | readonly string[]} args - Arguments passed to the command\n * @property {number} code - Process exit code\n * @property {NodeJS.Signals | null} signal - Signal that terminated the process, if any\n * @property {string | Buffer} stdout - Standard output (string if `stdioString: true`, Buffer otherwise)\n * @property {string | Buffer} stderr - Standard error (string if `stdioString: true`, Buffer otherwise)\n */\nexport type SpawnStdioResult = {\n cmd: string\n args: string[] | readonly string[]\n code: number\n signal: NodeJS.Signals | null\n stdout: string | Buffer\n stderr: string | Buffer\n}\n\n/**\n * Spawn a child process and return a promise that resolves when it completes.\n * Provides enhanced error handling, output capture, and cross-platform support.\n *\n * SECURITY: This function uses array-based arguments which prevent command injection.\n * Arguments in the `args` array are passed directly to the OS without shell\n * interpretation. Shell metacharacters (;|&$()`) are treated as literal strings,\n * not as commands or operators. This is the PRIMARY SECURITY DEFENSE.\n *\n * Even when shell: true is used (on Windows for .cmd/.bat execution), the array-based\n * approach remains secure because Node.js properly escapes each argument before passing\n * to the shell.\n *\n * @param {string} cmd - Command to execute (not user-controlled)\n * @param {string[] | readonly string[] | undefined} args - Array of arguments (safe even with user input)\n * @param {SpawnOptions | undefined} options - Spawn options for process configuration\n * @param {SpawnExtra | undefined} extra - Extra options for promise-spawn\n * @returns {SpawnResult} Promise that resolves with process exit information\n *\n * @throws {SpawnError} When the process exits with non-zero code or is terminated by signal\n *\n * @example\n * // Basic usage - spawn and wait for completion\n * const result = await spawn('git', ['status'])\n * console.log(result.stdout)\n *\n * @example\n * // With options - set working directory and environment\n * const result = await spawn('npm', ['install'], {\n * cwd: '/path/to/project',\n * env: { NODE_ENV: 'production' }\n * })\n *\n * @example\n * // \u2714 DO THIS - Array-based arguments (safe)\n * spawn('git', ['commit', '-m', userMessage])\n * // Each argument is properly escaped, even if userMessage = \"foo; rm -rf /\"\n *\n * @example\n * // \u2716 NEVER DO THIS - String concatenation (vulnerable)\n * spawn(`git commit -m \"${userMessage}\"`, { shell: true })\n * // Vulnerable to injection if userMessage = '\"; rm -rf / #'\n *\n * @example\n * // Access stdin for interactive processes\n * const result = spawn('cat', [])\n * result.stdin?.write('Hello\\n')\n * result.stdin?.end()\n * const { stdout } = await result\n * console.log(stdout) // 'Hello'\n *\n * @example\n * // Handle errors with exit codes\n * try {\n * await spawn('exit', ['1'])\n * } catch (error) {\n * if (isSpawnError(error)) {\n * console.error(`Failed with code ${error.code}`)\n * console.error(error.stderr)\n * }\n * }\n */\nexport function spawn(\n cmd: string,\n args?: string[] | readonly string[],\n options?: SpawnOptions | undefined,\n extra?: SpawnExtra | undefined,\n): SpawnResult {\n // Windows cmd.exe command resolution for .cmd/.bat/.ps1 files:\n //\n // When shell: true is used on Windows with script files (.cmd, .bat, .ps1),\n // cmd.exe can have issues executing full paths. The solution is to use just\n // the command basename without extension and let cmd.exe find it via PATH.\n //\n // How cmd.exe resolves commands:\n // 1. Searches current directory first\n // 2. Then searches each directory in PATH environment variable\n // 3. For each directory, tries extensions from PATHEXT (.COM, .EXE, .BAT, .CMD, etc.)\n // 4. Executes the first match found\n //\n // Example: Given 'C:\\pnpm\\pnpm.cmd' with shell: true\n // 1. Extract basename without extension: 'pnpm'\n // 2. cmd.exe searches PATH directories for 'pnpm'\n // 3. PATHEXT causes it to try 'pnpm.com', 'pnpm.exe', 'pnpm.bat', 'pnpm.cmd', etc.\n // 4. Finds and executes 'C:\\pnpm\\pnpm.cmd'\n //\n // This approach is consistent with how other tools handle Windows execution:\n // - npm's promise-spawn: uses which.sync() to find commands in PATH\n // - cross-spawn: spawns cmd.exe with escaped arguments\n // - execa: uses cross-spawn under the hood for Windows support\n //\n // See: https://github.com/nodejs/node/issues/3675\n const shell = getOwn(options, 'shell')\n // Inline WIN32 constant for coverage mode compatibility\n const WIN32 = process.platform === 'win32'\n let actualCmd = cmd\n if (WIN32 && shell && windowsScriptExtRegExp.test(actualCmd)) {\n const path = getPath()\n // Extract just the command name without path and extension.\n actualCmd = path.basename(actualCmd, path.extname(actualCmd))\n }\n const {\n spinner: optionsSpinner = spinner,\n stripAnsi: shouldStripAnsi = true,\n ...spawnOptions\n } = { __proto__: null, ...options } as SpawnOptions\n const spinnerInstance = optionsSpinner\n const { env, stdio, stdioString = true } = spawnOptions\n // The stdio option can be a string or an array.\n // https://nodejs.org/api/child_process.html#optionsstdio\n const wasSpinning = !!spinnerInstance?.isSpinning\n const shouldStopSpinner =\n wasSpinning && !isStdioType(stdio, 'ignore') && !isStdioType(stdio, 'pipe')\n const shouldRestartSpinner = shouldStopSpinner\n if (shouldStopSpinner) {\n spinnerInstance.stop()\n }\n const npmCliPromiseSpawn = getNpmcliPromiseSpawn()\n // Use __proto__: null to prevent prototype pollution when passing to\n // third-party code, Node.js built-ins, or JavaScript built-in methods.\n // https://github.com/npm/promise-spawn\n // https://github.com/nodejs/node/blob/v24.0.1/lib/child_process.js#L674-L678\n const promiseSpawnOpts = {\n __proto__: null,\n cwd: typeof spawnOptions.cwd === 'string' ? spawnOptions.cwd : undefined,\n env: {\n __proto__: null,\n ...process.env,\n ...env,\n } as unknown as NodeJS.ProcessEnv,\n signal: abortSignal,\n stdio: spawnOptions.stdio,\n stdioString,\n shell: spawnOptions.shell,\n timeout: spawnOptions.timeout,\n uid: spawnOptions.uid,\n gid: spawnOptions.gid,\n } as unknown as PromiseSpawnOptions\n const spawnPromise = npmCliPromiseSpawn(\n actualCmd,\n args ? [...args] : [],\n promiseSpawnOpts as Parameters<typeof npmCliPromiseSpawn>[2],\n extra,\n )\n const oldSpawnPromise = spawnPromise\n let newSpawnPromise: PromiseSpawnResult\n if (shouldStripAnsi && stdioString) {\n newSpawnPromise = spawnPromise\n .then(result => {\n const strippedResult = stripAnsiFromSpawnResult(result)\n // Add exitCode as an alias for code.\n if ('code' in (strippedResult as { code?: number })) {\n ;(strippedResult as { code: number; exitCode: number }).exitCode = (\n strippedResult as { code: number }\n ).code\n }\n return strippedResult\n })\n .catch(error => {\n throw stripAnsiFromSpawnResult(error)\n }) as PromiseSpawnResult\n } else {\n newSpawnPromise = spawnPromise.then(result => {\n // Add exitCode as an alias for code.\n if ('code' in result) {\n const res = result as typeof result & { exitCode: number }\n res.exitCode = result.code\n return res\n }\n return result\n }) as PromiseSpawnResult\n }\n if (shouldRestartSpinner) {\n newSpawnPromise = newSpawnPromise.finally(() => {\n spinnerInstance.start()\n }) as PromiseSpawnResult\n }\n // Copy process and stdin properties from original promise\n ;(newSpawnPromise as unknown as PromiseSpawnResult).process =\n oldSpawnPromise.process\n ;(newSpawnPromise as unknown as PromiseSpawnResult).stdin = (\n oldSpawnPromise as unknown as PromiseSpawnResult\n ).stdin\n return newSpawnPromise as SpawnResult\n}\n\n/*@__NO_SIDE_EFFECTS__*/\n/**\n * Options for synchronously spawning a child process with {@link spawnSync}.\n * Same as {@link SpawnOptions} but excludes the `spinner` property (not applicable for synchronous execution).\n */\nexport type SpawnSyncOptions = Omit<SpawnOptions, 'spinner'>\n\n/**\n * Synchronously spawn a child process and wait for it to complete.\n * Blocks execution until the process exits, returning all output and exit information.\n *\n * WARNING: This function blocks the event loop. Use {@link spawn} for async operations.\n *\n * @param {string} cmd - Command to execute\n * @param {string[] | readonly string[] | undefined} args - Array of arguments\n * @param {SpawnSyncOptions | undefined} options - Spawn options for process configuration\n * @returns {SpawnSyncReturns<string | Buffer>} Process result with exit code and captured output\n *\n * @example\n * // Basic synchronous spawn\n * const result = spawnSync('git', ['status'])\n * console.log(result.stdout)\n * console.log(result.status) // exit code\n *\n * @example\n * // With options\n * const result = spawnSync('npm', ['install'], {\n * cwd: '/path/to/project',\n * stdioString: true\n * })\n * if (result.status !== 0) {\n * console.error(result.stderr)\n * }\n *\n * @example\n * // Get raw buffer output\n * const result = spawnSync('cat', ['binary-file'], {\n * stdioString: false\n * })\n * console.log(result.stdout) // Buffer\n *\n * @example\n * // Handle process errors\n * const result = spawnSync('nonexistent-command')\n * if (result.error) {\n * console.error('Failed to spawn:', result.error)\n * }\n */\nexport function spawnSync(\n cmd: string,\n args?: string[] | readonly string[],\n options?: SpawnSyncOptions | undefined,\n): SpawnSyncReturns<string | Buffer> {\n // Windows cmd.exe command resolution for .cmd/.bat/.ps1 files:\n // See spawn() function above for detailed explanation of this approach.\n const shell = getOwn(options, 'shell')\n // Inline WIN32 constant for coverage mode compatibility\n const WIN32 = process.platform === 'win32'\n let actualCmd = cmd\n if (WIN32 && shell && windowsScriptExtRegExp.test(actualCmd)) {\n const path = getPath()\n // Extract just the command name without path and extension.\n actualCmd = path.basename(actualCmd, path.extname(actualCmd))\n }\n const { stripAnsi: shouldStripAnsi = true, ...rawSpawnOptions } = {\n __proto__: null,\n ...options,\n } as SpawnSyncOptions\n const { stdioString: rawStdioString = true } = rawSpawnOptions\n const rawEncoding = rawStdioString ? 'utf8' : 'buffer'\n const spawnOptions = {\n encoding: rawEncoding,\n ...rawSpawnOptions,\n } as NodeSpawnOptions & { encoding: BufferEncoding | 'buffer' }\n const stdioString = spawnOptions.encoding !== 'buffer'\n const result = getChildProcess().spawnSync(actualCmd, args, spawnOptions)\n if (stdioString) {\n const { stderr, stdout } = result\n if (stdout) {\n result.stdout = stdout.toString().trim()\n }\n if (stderr) {\n result.stderr = stderr.toString().trim()\n }\n }\n return (\n shouldStripAnsi && stdioString ? stripAnsiFromSpawnResult(result) : result\n ) as SpawnSyncReturns<string | Buffer>\n}\n"],
5
- "mappings": "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",
6
- "names": []
5
+ "mappings": "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",
6
+ "names": ["spawn_exports", "__export", "isSpawnError", "isStdioType", "spawn", "spawnSync", "__toCommonJS", "import_process", "import_arrays", "import_objects", "import_strings", "abortSignal", "spinner", "windowsScriptExtRegExp", "_child_process", "getChildProcess", "_npmCliPromiseSpawn", "getNpmcliPromiseSpawn", "_path", "getPath", "value", "err", "stdio", "type", "stripAnsiFromSpawnResult", "result", "res", "stderr", "stdout", "cmd", "args", "options", "extra", "shell", "WIN32", "actualCmd", "path", "optionsSpinner", "shouldStripAnsi", "spawnOptions", "spinnerInstance", "env", "stdioString", "shouldStopSpinner", "shouldRestartSpinner", "npmCliPromiseSpawn", "promiseSpawnOpts", "spawnPromise", "oldSpawnPromise", "newSpawnPromise", "strippedResult", "error", "rawSpawnOptions", "rawStdioString"]
7
7
  }