@socketsecurity/lib 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/abort.js +60 -1
  3. package/dist/abort.js.map +2 -2
  4. package/dist/agent.js +289 -1
  5. package/dist/agent.js.map +2 -2
  6. package/dist/ansi.js +60 -1
  7. package/dist/ansi.js.map +2 -2
  8. package/dist/argv/flags.js +282 -1
  9. package/dist/argv/flags.js.map +2 -2
  10. package/dist/argv/parse.js +171 -1
  11. package/dist/argv/parse.js.map +2 -2
  12. package/dist/arrays.js +85 -1
  13. package/dist/arrays.js.map +2 -2
  14. package/dist/bin.js +419 -5
  15. package/dist/bin.js.map +2 -2
  16. package/dist/cacache.js +139 -1
  17. package/dist/cacache.js.map +2 -2
  18. package/dist/cache-with-ttl.js +223 -1
  19. package/dist/cache-with-ttl.js.map +2 -2
  20. package/dist/constants/agents.js +126 -1
  21. package/dist/constants/agents.js.map +2 -2
  22. package/dist/constants/core.d.ts +1 -1
  23. package/dist/constants/core.js +57 -2
  24. package/dist/constants/core.js.map +3 -3
  25. package/dist/constants/encoding.js +48 -1
  26. package/dist/constants/encoding.js.map +2 -2
  27. package/dist/constants/github.js +30 -1
  28. package/dist/constants/github.js.map +2 -2
  29. package/dist/constants/licenses.js +66 -1
  30. package/dist/constants/licenses.js.map +2 -2
  31. package/dist/constants/node.js +185 -1
  32. package/dist/constants/node.js.map +2 -2
  33. package/dist/constants/packages.js +128 -1
  34. package/dist/constants/packages.js.map +2 -2
  35. package/dist/constants/paths.js +150 -1
  36. package/dist/constants/paths.js.map +2 -2
  37. package/dist/constants/platform.js +41 -1
  38. package/dist/constants/platform.js.map +2 -2
  39. package/dist/constants/process.js +52 -1
  40. package/dist/constants/process.js.map +2 -2
  41. package/dist/constants/socket.js +102 -1
  42. package/dist/constants/socket.js.map +2 -2
  43. package/dist/constants/testing.js +36 -1
  44. package/dist/constants/testing.js.map +2 -2
  45. package/dist/constants/time.js +39 -1
  46. package/dist/constants/time.js.map +2 -2
  47. package/dist/constants/typescript.js +54 -1
  48. package/dist/constants/typescript.js.map +2 -2
  49. package/dist/cover/code.js +135 -1
  50. package/dist/cover/code.js.map +2 -2
  51. package/dist/cover/formatters.js +101 -11
  52. package/dist/cover/formatters.js.map +2 -2
  53. package/dist/cover/type.js +63 -1
  54. package/dist/cover/type.js.map +2 -2
  55. package/dist/cover/types.js +15 -1
  56. package/dist/cover/types.js.map +2 -2
  57. package/dist/debug.js +337 -2
  58. package/dist/debug.js.map +2 -2
  59. package/dist/dlx-binary.js +408 -7
  60. package/dist/dlx-binary.js.map +2 -2
  61. package/dist/dlx-package.js +278 -7
  62. package/dist/dlx-package.js.map +2 -2
  63. package/dist/dlx.js +214 -7
  64. package/dist/dlx.js.map +3 -3
  65. package/dist/effects/pulse-frames.js +64 -1
  66. package/dist/effects/pulse-frames.js.map +2 -2
  67. package/dist/effects/text-shimmer.js +174 -1
  68. package/dist/effects/text-shimmer.js.map +2 -2
  69. package/dist/effects/types.js +15 -1
  70. package/dist/effects/types.js.map +2 -2
  71. package/dist/effects/ultra.js +61 -1
  72. package/dist/effects/ultra.js.map +2 -2
  73. package/dist/env/ci.js +31 -1
  74. package/dist/env/ci.js.map +2 -2
  75. package/dist/env/debug.js +30 -1
  76. package/dist/env/debug.js.map +2 -2
  77. package/dist/env/github.js +65 -1
  78. package/dist/env/github.js.map +2 -2
  79. package/dist/env/helpers.js +47 -1
  80. package/dist/env/helpers.js.map +2 -2
  81. package/dist/env/home.js +30 -1
  82. package/dist/env/home.js.map +2 -2
  83. package/dist/env/locale.js +40 -1
  84. package/dist/env/locale.js.map +2 -2
  85. package/dist/env/node-auth-token.js +30 -1
  86. package/dist/env/node-auth-token.js.map +2 -2
  87. package/dist/env/node-env.js +30 -1
  88. package/dist/env/node-env.js.map +2 -2
  89. package/dist/env/npm.js +50 -1
  90. package/dist/env/npm.js.map +2 -2
  91. package/dist/env/package-manager.js +73 -1
  92. package/dist/env/package-manager.js.map +2 -2
  93. package/dist/env/path.js +30 -1
  94. package/dist/env/path.js.map +2 -2
  95. package/dist/env/pre-commit.js +31 -1
  96. package/dist/env/pre-commit.js.map +2 -2
  97. package/dist/env/rewire.js +72 -1
  98. package/dist/env/rewire.js.map +2 -2
  99. package/dist/env/shell.js +30 -1
  100. package/dist/env/shell.js.map +2 -2
  101. package/dist/env/socket-cli-shadow.js +51 -1
  102. package/dist/env/socket-cli-shadow.js.map +2 -2
  103. package/dist/env/socket-cli.js +86 -1
  104. package/dist/env/socket-cli.js.map +2 -2
  105. package/dist/env/socket.js +101 -1
  106. package/dist/env/socket.js.map +2 -2
  107. package/dist/env/temp-dir.js +40 -1
  108. package/dist/env/temp-dir.js.map +2 -2
  109. package/dist/env/term.js +30 -1
  110. package/dist/env/term.js.map +2 -2
  111. package/dist/env/test.js +43 -1
  112. package/dist/env/test.js.map +2 -2
  113. package/dist/env/windows.js +45 -1
  114. package/dist/env/windows.js.map +2 -2
  115. package/dist/env/xdg.js +40 -1
  116. package/dist/env/xdg.js.map +2 -2
  117. package/dist/env.js +170 -1
  118. package/dist/env.js.map +2 -2
  119. package/dist/fs.js +670 -7
  120. package/dist/fs.js.map +2 -2
  121. package/dist/functions.js +68 -1
  122. package/dist/functions.js.map +2 -2
  123. package/dist/git.js +329 -2
  124. package/dist/git.js.map +2 -2
  125. package/dist/github.js +202 -1
  126. package/dist/github.js.map +2 -2
  127. package/dist/globs.js +149 -1
  128. package/dist/globs.js.map +3 -3
  129. package/dist/http-request.js +335 -3
  130. package/dist/http-request.js.map +2 -2
  131. package/dist/index.js +69 -1
  132. package/dist/index.js.map +2 -2
  133. package/dist/ipc.js +244 -1
  134. package/dist/ipc.js.map +2 -2
  135. package/dist/json.js +73 -1
  136. package/dist/json.js.map +2 -2
  137. package/dist/links/index.js +60 -1
  138. package/dist/links/index.js.map +2 -2
  139. package/dist/logger.js +1384 -1
  140. package/dist/logger.js.map +2 -2
  141. package/dist/maintained-node-versions.js +35 -1
  142. package/dist/maintained-node-versions.js.map +2 -2
  143. package/dist/memoization.js +210 -1
  144. package/dist/memoization.js.map +2 -2
  145. package/dist/objects.js +311 -1
  146. package/dist/objects.js.map +2 -2
  147. package/dist/packages/editable.js +356 -9
  148. package/dist/packages/editable.js.map +2 -2
  149. package/dist/packages/exports.js +162 -1
  150. package/dist/packages/exports.js.map +2 -2
  151. package/dist/packages/isolation.js +187 -1
  152. package/dist/packages/isolation.js.map +2 -2
  153. package/dist/packages/licenses.js +214 -1
  154. package/dist/packages/licenses.js.map +2 -2
  155. package/dist/packages/manifest.js +190 -1
  156. package/dist/packages/manifest.js.map +2 -2
  157. package/dist/packages/normalize.js +132 -1
  158. package/dist/packages/normalize.js.map +2 -2
  159. package/dist/packages/operations.js +320 -1
  160. package/dist/packages/operations.js.map +2 -2
  161. package/dist/packages/paths.js +53 -1
  162. package/dist/packages/paths.js.map +2 -2
  163. package/dist/packages/provenance.js +178 -1
  164. package/dist/packages/provenance.js.map +2 -2
  165. package/dist/packages/specs.js +83 -1
  166. package/dist/packages/specs.js.map +2 -2
  167. package/dist/packages/validation.js +51 -1
  168. package/dist/packages/validation.js.map +2 -2
  169. package/dist/packages.js +129 -1
  170. package/dist/packages.js.map +2 -2
  171. package/dist/path.js +446 -1
  172. package/dist/path.js.map +2 -2
  173. package/dist/paths/rewire.js +79 -1
  174. package/dist/paths/rewire.js.map +2 -2
  175. package/dist/paths.js +190 -1
  176. package/dist/paths.js.map +2 -2
  177. package/dist/performance.js +216 -15
  178. package/dist/performance.js.map +2 -2
  179. package/dist/process-lock.js +287 -8
  180. package/dist/process-lock.js.map +2 -2
  181. package/dist/promise-queue.js +109 -1
  182. package/dist/promise-queue.js.map +2 -2
  183. package/dist/promises.js +267 -1
  184. package/dist/promises.js.map +2 -2
  185. package/dist/prompts/index.js +45 -1
  186. package/dist/prompts/index.js.map +2 -2
  187. package/dist/prompts.js +58 -1
  188. package/dist/prompts.js.map +2 -2
  189. package/dist/regexps.js +30 -1
  190. package/dist/regexps.js.map +2 -2
  191. package/dist/sea.js +44 -1
  192. package/dist/sea.js.map +2 -2
  193. package/dist/shadow.js +58 -1
  194. package/dist/shadow.js.map +2 -2
  195. package/dist/signal-exit.js +248 -1
  196. package/dist/signal-exit.js.map +3 -3
  197. package/dist/sorts.js +94 -1
  198. package/dist/sorts.js.map +3 -3
  199. package/dist/spawn.js +200 -1
  200. package/dist/spawn.js.map +2 -2
  201. package/dist/spinner.js +961 -1
  202. package/dist/spinner.js.map +2 -2
  203. package/dist/ssri.js +71 -1
  204. package/dist/ssri.js.map +2 -2
  205. package/dist/stdio/clear.js +82 -1
  206. package/dist/stdio/clear.js.map +2 -2
  207. package/dist/stdio/divider.js +89 -3
  208. package/dist/stdio/divider.js.map +2 -2
  209. package/dist/stdio/footer.js +94 -2
  210. package/dist/stdio/footer.js.map +2 -2
  211. package/dist/stdio/header.js +100 -2
  212. package/dist/stdio/header.js.map +2 -2
  213. package/dist/stdio/mask.js +207 -5
  214. package/dist/stdio/mask.js.map +2 -2
  215. package/dist/stdio/progress.js +209 -2
  216. package/dist/stdio/progress.js.map +2 -2
  217. package/dist/stdio/prompts.js +88 -1
  218. package/dist/stdio/prompts.js.map +2 -2
  219. package/dist/stdio/stderr.js +89 -2
  220. package/dist/stdio/stderr.js.map +2 -2
  221. package/dist/stdio/stdout.js +103 -2
  222. package/dist/stdio/stdout.js.map +2 -2
  223. package/dist/streams.js +78 -1
  224. package/dist/streams.js.map +2 -2
  225. package/dist/strings.js +251 -3
  226. package/dist/strings.js.map +2 -2
  227. package/dist/suppress-warnings.js +98 -1
  228. package/dist/suppress-warnings.js.map +2 -2
  229. package/dist/tables.js +128 -3
  230. package/dist/tables.js.map +2 -2
  231. package/dist/temporary-executor.js +53 -1
  232. package/dist/temporary-executor.js.map +2 -2
  233. package/dist/themes/context.js +71 -1
  234. package/dist/themes/context.js.map +2 -2
  235. package/dist/themes/index.js +57 -1
  236. package/dist/themes/index.js.map +2 -2
  237. package/dist/themes/themes.js +195 -1
  238. package/dist/themes/themes.js.map +2 -2
  239. package/dist/themes/types.js +15 -1
  240. package/dist/themes/types.js.map +2 -2
  241. package/dist/themes/utils.js +116 -1
  242. package/dist/themes/utils.js.map +2 -2
  243. package/dist/types.js +59 -1
  244. package/dist/types.js.map +2 -2
  245. package/dist/url.js +142 -1
  246. package/dist/url.js.map +2 -2
  247. package/dist/utils/get-ipc.js +58 -1
  248. package/dist/utils/get-ipc.js.map +2 -2
  249. package/dist/validation/json-parser.js +127 -1
  250. package/dist/validation/json-parser.js.map +2 -2
  251. package/dist/validation/types.js +15 -1
  252. package/dist/validation/types.js.map +2 -2
  253. package/dist/versions.js +154 -1
  254. package/dist/versions.js.map +2 -2
  255. package/dist/words.js +50 -1
  256. package/dist/words.js.map +2 -2
  257. package/dist/zod.js +27 -1
  258. package/dist/zod.js.map +2 -2
  259. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.0.3](https://github.com/SocketDev/socket-lib/releases/tag/v3.0.3) - 2025-11-01
9
+
10
+ ### Fixed
11
+
12
+ - **Critical: Node.js ESM/CJS interop completely fixed**: Disabled minification to ensure proper ESM named import detection
13
+ - Root cause: esbuild minification was breaking Node.js ESM's CJS named export detection
14
+ - Solution: Disabled minification entirely (`minify: false` in esbuild config)
15
+ - Libraries should not be minified - consumers minify during their own build process
16
+ - Unminified esbuild output uses clear `__export` patterns that Node.js ESM natively understands
17
+ - Removed `fix-commonjs-exports.mjs` build script - no longer needed with unminified code
18
+ - ESM imports now work reliably: `import { getDefaultLogger } from '@socketsecurity/lib/logger'`
19
+ - Verified with real-world ESM module testing (`.mjs` files importing from CJS `.js` dist)
20
+
21
+ ## [3.0.2](https://github.com/SocketDev/socket-lib/releases/tag/v3.0.2) - 2025-11-01
22
+
23
+ ### Fixed
24
+
25
+ - **Critical: Node.js ESM named imports from CommonJS**: Fixed build output to ensure Node.js ESM can properly detect named exports from CommonJS modules
26
+ - Previously, esbuild's minified export pattern placed `module.exports` before variable definitions, causing "Cannot access before initialization" errors
27
+ - Build script now uses `@babel/parser` + `magic-string` for safe AST parsing and transformation
28
+ - Exports are now correctly placed at end of files after all variable definitions
29
+ - Enables proper ESM named imports: `import { getDefaultLogger, Logger } from '@socketsecurity/lib/logger'`
30
+ - Fixes socket-cli issue where named imports were failing with obscure initialization errors
31
+
8
32
  ## [3.0.1](https://github.com/SocketDev/socket-lib/releases/tag/v3.0.1) - 2025-11-01
9
33
 
10
34
  ### Added
package/dist/abort.js CHANGED
@@ -1,3 +1,62 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var i=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var b=(t,r)=>{for(var e in r)i(t,e,{get:r[e],enumerable:!0})},s=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of a(r))!u.call(t,o)&&o!==e&&i(t,o,{get:()=>r[o],enumerable:!(n=l(r,o))||n.enumerable});return t};var f=t=>s(i({},"__esModule",{value:!0}),t);var c={};b(c,{createCompositeAbortSignal:()=>g,createTimeoutSignal:()=>m});module.exports=f(c);function g(...t){const r=t.filter(n=>n!=null);if(r.length===0)return new AbortController().signal;if(r.length===1)return r[0];const e=new AbortController;for(const n of r){if(n.aborted)return e.abort(),e.signal;n.addEventListener("abort",()=>e.abort(),{once:!0})}return e.signal}function m(t){if(typeof t!="number"||Number.isNaN(t))throw new TypeError("timeout must be a number");if(!Number.isFinite(t))throw new TypeError("timeout must be a finite number");if(t<=0)throw new TypeError("timeout must be a positive number");const r=new AbortController;return setTimeout(()=>r.abort(),t),r.signal}0&&(module.exports={createCompositeAbortSignal,createTimeoutSignal});
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 abort_exports = {};
20
+ __export(abort_exports, {
21
+ createCompositeAbortSignal: () => createCompositeAbortSignal,
22
+ createTimeoutSignal: () => createTimeoutSignal
23
+ });
24
+ module.exports = __toCommonJS(abort_exports);
25
+ function createCompositeAbortSignal(...signals) {
26
+ const validSignals = signals.filter((s) => s != null);
27
+ if (validSignals.length === 0) {
28
+ return new AbortController().signal;
29
+ }
30
+ if (validSignals.length === 1) {
31
+ return validSignals[0];
32
+ }
33
+ const controller = new AbortController();
34
+ for (const signal of validSignals) {
35
+ if (signal.aborted) {
36
+ controller.abort();
37
+ return controller.signal;
38
+ }
39
+ signal.addEventListener("abort", () => controller.abort(), { once: true });
40
+ }
41
+ return controller.signal;
42
+ }
43
+ function createTimeoutSignal(ms) {
44
+ if (typeof ms !== "number" || Number.isNaN(ms)) {
45
+ throw new TypeError("timeout must be a number");
46
+ }
47
+ if (!Number.isFinite(ms)) {
48
+ throw new TypeError("timeout must be a finite number");
49
+ }
50
+ if (ms <= 0) {
51
+ throw new TypeError("timeout must be a positive number");
52
+ }
53
+ const controller = new AbortController();
54
+ setTimeout(() => controller.abort(), ms);
55
+ return controller.signal;
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ createCompositeAbortSignal,
60
+ createTimeoutSignal
61
+ });
3
62
  //# sourceMappingURL=abort.js.map
package/dist/abort.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/abort.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Abort signal utilities.\n */\n\n/**\n * Create a composite AbortSignal from multiple signals.\n */\nexport function createCompositeAbortSignal(\n ...signals: Array<AbortSignal | null | undefined>\n): AbortSignal {\n const validSignals = signals.filter(s => s != null) as AbortSignal[]\n\n if (validSignals.length === 0) {\n return new AbortController().signal\n }\n\n if (validSignals.length === 1) {\n return validSignals[0]!\n }\n\n const controller = new AbortController()\n\n for (const signal of validSignals) {\n if (signal.aborted) {\n controller.abort()\n return controller.signal\n }\n signal.addEventListener('abort', () => controller.abort(), { once: true })\n }\n\n return controller.signal\n}\n\n/**\n * Create an AbortSignal that triggers after a timeout.\n */\nexport function createTimeoutSignal(ms: number): AbortSignal {\n if (typeof ms !== 'number' || Number.isNaN(ms)) {\n throw new TypeError('timeout must be a number')\n }\n if (!Number.isFinite(ms)) {\n throw new TypeError('timeout must be a finite number')\n }\n if (ms <= 0) {\n throw new TypeError('timeout must be a positive number')\n }\n const controller = new AbortController()\n setTimeout(() => controller.abort(), ms)\n return controller.signal\n}\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,wBAAAC,IAAA,eAAAC,EAAAJ,GAOO,SAASE,KACXG,EACU,CACb,MAAMC,EAAeD,EAAQ,OAAOE,GAAKA,GAAK,IAAI,EAElD,GAAID,EAAa,SAAW,EAC1B,OAAO,IAAI,gBAAgB,EAAE,OAG/B,GAAIA,EAAa,SAAW,EAC1B,OAAOA,EAAa,CAAC,EAGvB,MAAME,EAAa,IAAI,gBAEvB,UAAWC,KAAUH,EAAc,CACjC,GAAIG,EAAO,QACT,OAAAD,EAAW,MAAM,EACVA,EAAW,OAEpBC,EAAO,iBAAiB,QAAS,IAAMD,EAAW,MAAM,EAAG,CAAE,KAAM,EAAK,CAAC,CAC3E,CAEA,OAAOA,EAAW,MACpB,CAKO,SAASL,EAAoBO,EAAyB,CAC3D,GAAI,OAAOA,GAAO,UAAY,OAAO,MAAMA,CAAE,EAC3C,MAAM,IAAI,UAAU,0BAA0B,EAEhD,GAAI,CAAC,OAAO,SAASA,CAAE,EACrB,MAAM,IAAI,UAAU,iCAAiC,EAEvD,GAAIA,GAAM,EACR,MAAM,IAAI,UAAU,mCAAmC,EAEzD,MAAMF,EAAa,IAAI,gBACvB,kBAAW,IAAMA,EAAW,MAAM,EAAGE,CAAE,EAChCF,EAAW,MACpB",
6
- "names": ["abort_exports", "__export", "createCompositeAbortSignal", "createTimeoutSignal", "__toCommonJS", "signals", "validSignals", "s", "controller", "signal", "ms"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,SAAS,8BACX,SACU;AACb,QAAM,eAAe,QAAQ,OAAO,OAAK,KAAK,IAAI;AAElD,MAAI,aAAa,WAAW,GAAG;AAC7B,WAAO,IAAI,gBAAgB,EAAE;AAAA,EAC/B;AAEA,MAAI,aAAa,WAAW,GAAG;AAC7B,WAAO,aAAa,CAAC;AAAA,EACvB;AAEA,QAAM,aAAa,IAAI,gBAAgB;AAEvC,aAAW,UAAU,cAAc;AACjC,QAAI,OAAO,SAAS;AAClB,iBAAW,MAAM;AACjB,aAAO,WAAW;AAAA,IACpB;AACA,WAAO,iBAAiB,SAAS,MAAM,WAAW,MAAM,GAAG,EAAE,MAAM,KAAK,CAAC;AAAA,EAC3E;AAEA,SAAO,WAAW;AACpB;AAKO,SAAS,oBAAoB,IAAyB;AAC3D,MAAI,OAAO,OAAO,YAAY,OAAO,MAAM,EAAE,GAAG;AAC9C,UAAM,IAAI,UAAU,0BAA0B;AAAA,EAChD;AACA,MAAI,CAAC,OAAO,SAAS,EAAE,GAAG;AACxB,UAAM,IAAI,UAAU,iCAAiC;AAAA,EACvD;AACA,MAAI,MAAM,GAAG;AACX,UAAM,IAAI,UAAU,mCAAmC;AAAA,EACzD;AACA,QAAM,aAAa,IAAI,gBAAgB;AACvC,aAAW,MAAM,WAAW,MAAM,GAAG,EAAE;AACvC,SAAO,WAAW;AACpB;",
6
+ "names": []
7
7
  }
package/dist/agent.js CHANGED
@@ -1,3 +1,291 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var S=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var B=(n,t)=>{for(var i in t)S(n,i,{get:t[i],enumerable:!0})},D=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of $(t))!z.call(n,e)&&e!==i&&S(n,e,{get:()=>t[e],enumerable:!(o=C(t,e))||o.enumerable});return n};var K=n=>D(S({},"__esModule",{value:!0}),n);var j={};B(j,{execNpm:()=>k,execPnpm:()=>h,execScript:()=>W,execYarn:()=>b,isNpmAuditFlag:()=>F,isNpmFundFlag:()=>v,isNpmLoglevelFlag:()=>m,isNpmNodeOptionsFlag:()=>T,isNpmProgressFlag:()=>x,isPnpmFrozenLockfileFlag:()=>N,isPnpmIgnoreScriptsFlag:()=>P,isPnpmInstallCommand:()=>I,isPnpmLoglevelFlag:()=>y});module.exports=K(j);var w=require("#env/ci"),A=require("#constants/platform"),O=require("./bin"),d=require("./debug"),g=require("./fs"),L=require("./objects"),f=require("./spawn");const M=new Set(["--ignore-scripts","--no-ignore-scripts"]),R=new Set(["--frozen-lockfile","--no-frozen-lockfile"]),U=new Set(["install","i"]),Y=new Set(["install","i","add","update","up","remove","rm","link","ln","unlink","import","rebuild","rb"]),H=new Set(["install","add","upgrade","remove","link","unlink","import"]);function k(n,t){const i=(0,d.isDebug)(),o=n.indexOf("--"),e=(o===-1?n:n.slice(0,o)).filter(s=>!F(s)&&!v(s)&&!x(s)),p=o===-1?[]:n.slice(o),r=i||e.some(m)?[]:["--loglevel","warn"],l=require("#constants/agents").NPM_BIN_PATH;return(0,f.spawn)(l,["--no-audit","--no-fund","--no-progress",...r,...e,...p],{__proto__:null,shell:A.WIN32,...t})}function h(n,t){const{allowLockfileUpdate:i,...o}={__proto__:null,...t},e=(0,d.isDebug)(),p=n.indexOf("--"),r=(p===-1?n:n.slice(0,p)).filter(q=>!x(q)),l=p===-1?[]:n.slice(p),s=r[0],c=s?Y.has(s):!1,u=e||r.some(y)?[]:["--loglevel","warn"],a=r.some(P),E=!c||a?[]:["--ignore-scripts"],_=[];return(0,w.getCI)()&&i&&s&&I(s)&&!r.some(N)&&_.push("--no-frozen-lockfile"),(0,O.execBin)("pnpm",[...u,...E,..._,...r,...l],o)}function b(n,t){const i=(0,d.isDebug)(),o=n.indexOf("--"),e=(o===-1?n:n.slice(0,o)).filter(a=>!x(a)),p=o===-1?[]:n.slice(o),r=e[0],l=r?H.has(r):!1,s=i||e.some(m)?[]:["--silent"],c=e.some(P),u=!l||c?[]:["--ignore-scripts"];return(0,O.execBin)("yarn",[...s,...u,...e,...p],{__proto__:null,...t})}function F(n){return/^--(no-)?audit(=.*)?$/.test(n)}function v(n){return/^--(no-)?fund(=.*)?$/.test(n)}function m(n){return/^--loglevel(=.*)?$/.test(n)||/^--(silent|verbose|info|warn|error|quiet)$/.test(n)?!0:/^-(s|q|d|dd|ddd|v)$/.test(n)}function T(n){return/^--node-options(=.*)?$/.test(n)}function x(n){return/^--(no-)?progress(=.*)?$/.test(n)}function P(n){return M.has(n)}function N(n){return R.has(n)}function I(n){return U.has(n)}const y=m;function W(n,t,i){let o,e;!Array.isArray(t)&&t!==null&&typeof t=="object"?(o=t,e=[]):(o=i,e=t||[]);const{prepost:p,...r}={__proto__:null,...o};if(r.shell===!0)return(0,f.spawn)(n,e,r);const l=!p&&require("#constants/node").supportsNodeRun(),s=(0,L.getOwn)(r,"cwd")??process.cwd();return(0,g.findUpSync)(require("#constants/agents").PNPM_LOCK_YAML,{cwd:s})?h(["run",n,...e],r):(0,g.findUpSync)(require("#constants/agents").PACKAGE_LOCK_JSON,{cwd:s})?k(["run",n,...e],r):(0,g.findUpSync)(require("#constants/agents").YARN_LOCK,{cwd:s})?b(["run",n,...e],r):(0,f.spawn)(require("#constants/node").getExecPath(),[...require("#constants/node").getNodeNoWarningsFlags(),...l?["--run"]:[require("#constants/agents").NPM_REAL_EXEC_PATH,"run"],n,...e],{...r})}0&&(module.exports={execNpm,execPnpm,execScript,execYarn,isNpmAuditFlag,isNpmFundFlag,isNpmLoglevelFlag,isNpmNodeOptionsFlag,isNpmProgressFlag,isPnpmFrozenLockfileFlag,isPnpmIgnoreScriptsFlag,isPnpmInstallCommand,isPnpmLoglevelFlag});
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 agent_exports = {};
20
+ __export(agent_exports, {
21
+ execNpm: () => execNpm,
22
+ execPnpm: () => execPnpm,
23
+ execScript: () => execScript,
24
+ execYarn: () => execYarn,
25
+ isNpmAuditFlag: () => isNpmAuditFlag,
26
+ isNpmFundFlag: () => isNpmFundFlag,
27
+ isNpmLoglevelFlag: () => isNpmLoglevelFlag,
28
+ isNpmNodeOptionsFlag: () => isNpmNodeOptionsFlag,
29
+ isNpmProgressFlag: () => isNpmProgressFlag,
30
+ isPnpmFrozenLockfileFlag: () => isPnpmFrozenLockfileFlag,
31
+ isPnpmIgnoreScriptsFlag: () => isPnpmIgnoreScriptsFlag,
32
+ isPnpmInstallCommand: () => isPnpmInstallCommand,
33
+ isPnpmLoglevelFlag: () => isPnpmLoglevelFlag
34
+ });
35
+ module.exports = __toCommonJS(agent_exports);
36
+ var import_ci = require("#env/ci");
37
+ var import_platform = require("#constants/platform");
38
+ var import_bin = require("./bin");
39
+ var import_debug = require("./debug");
40
+ var import_fs = require("./fs");
41
+ var import_objects = require("./objects");
42
+ var import_spawn = require("./spawn");
43
+ const pnpmIgnoreScriptsFlags = /* @__PURE__ */ new Set([
44
+ "--ignore-scripts",
45
+ "--no-ignore-scripts"
46
+ ]);
47
+ const pnpmFrozenLockfileFlags = /* @__PURE__ */ new Set([
48
+ "--frozen-lockfile",
49
+ "--no-frozen-lockfile"
50
+ ]);
51
+ const pnpmInstallCommands = /* @__PURE__ */ new Set(["install", "i"]);
52
+ const pnpmInstallLikeCommands = /* @__PURE__ */ new Set([
53
+ "install",
54
+ "i",
55
+ "add",
56
+ "update",
57
+ "up",
58
+ "remove",
59
+ "rm",
60
+ "link",
61
+ "ln",
62
+ "unlink",
63
+ "import",
64
+ "rebuild",
65
+ "rb"
66
+ ]);
67
+ const yarnInstallLikeCommands = /* @__PURE__ */ new Set([
68
+ "install",
69
+ "add",
70
+ "upgrade",
71
+ "remove",
72
+ "link",
73
+ "unlink",
74
+ "import"
75
+ ]);
76
+ // @__NO_SIDE_EFFECTS__
77
+ function execNpm(args, options) {
78
+ const useDebug = (0, import_debug.isDebug)();
79
+ const terminatorPos = args.indexOf("--");
80
+ const npmArgs = (terminatorPos === -1 ? args : args.slice(0, terminatorPos)).filter(
81
+ (a) => !/* @__PURE__ */ isNpmAuditFlag(a) && !/* @__PURE__ */ isNpmFundFlag(a) && !/* @__PURE__ */ isNpmProgressFlag(a)
82
+ );
83
+ const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos);
84
+ const logLevelArgs = (
85
+ // The default value of loglevel is "notice". We default to "warn" which is
86
+ // one level quieter.
87
+ useDebug || npmArgs.some(isNpmLoglevelFlag) ? [] : ["--loglevel", "warn"]
88
+ );
89
+ const npmBin = require("#constants/agents").NPM_BIN_PATH;
90
+ return (0, import_spawn.spawn)(
91
+ npmBin,
92
+ [
93
+ // Even though '--loglevel=error' is passed npm will still run through
94
+ // code paths for 'audit' and 'fund' unless '--no-audit' and '--no-fund'
95
+ // flags are passed.
96
+ "--no-audit",
97
+ "--no-fund",
98
+ // Add `--no-progress` and `--silent` flags to fix input being swallowed
99
+ // by the spinner when running the command with recent versions of npm.
100
+ "--no-progress",
101
+ // Add '--loglevel=error' if a loglevel flag is not provided and the
102
+ // SOCKET_DEBUG environment variable is not truthy.
103
+ ...logLevelArgs,
104
+ ...npmArgs,
105
+ ...otherArgs
106
+ ],
107
+ {
108
+ __proto__: null,
109
+ // On Windows, npm is a .cmd file that requires shell to execute.
110
+ shell: import_platform.WIN32,
111
+ ...options
112
+ }
113
+ );
114
+ }
115
+ // @__NO_SIDE_EFFECTS__
116
+ function execPnpm(args, options) {
117
+ const { allowLockfileUpdate, ...extBinOpts } = {
118
+ __proto__: null,
119
+ ...options
120
+ };
121
+ const useDebug = (0, import_debug.isDebug)();
122
+ const terminatorPos = args.indexOf("--");
123
+ const pnpmArgs = (terminatorPos === -1 ? args : args.slice(0, terminatorPos)).filter((a) => !/* @__PURE__ */ isNpmProgressFlag(a));
124
+ const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos);
125
+ const firstArg = pnpmArgs[0];
126
+ const supportsIgnoreScripts = firstArg ? pnpmInstallLikeCommands.has(firstArg) : false;
127
+ const logLevelArgs = useDebug || pnpmArgs.some(isPnpmLoglevelFlag) ? [] : ["--loglevel", "warn"];
128
+ const hasIgnoreScriptsFlag = pnpmArgs.some(isPnpmIgnoreScriptsFlag);
129
+ const ignoreScriptsArgs = !supportsIgnoreScripts || hasIgnoreScriptsFlag ? [] : ["--ignore-scripts"];
130
+ const frozenLockfileArgs = [];
131
+ if ((0, import_ci.getCI)() && allowLockfileUpdate && firstArg && /* @__PURE__ */ isPnpmInstallCommand(firstArg) && !pnpmArgs.some(isPnpmFrozenLockfileFlag)) {
132
+ frozenLockfileArgs.push("--no-frozen-lockfile");
133
+ }
134
+ return (0, import_bin.execBin)(
135
+ "pnpm",
136
+ [
137
+ // Add '--loglevel=warn' if a loglevel flag is not provided and debug is off.
138
+ ...logLevelArgs,
139
+ // Add '--ignore-scripts' by default for security (only for installation commands).
140
+ ...ignoreScriptsArgs,
141
+ // Add '--no-frozen-lockfile' in CI when lockfile updates are needed.
142
+ ...frozenLockfileArgs,
143
+ ...pnpmArgs,
144
+ ...otherArgs
145
+ ],
146
+ extBinOpts
147
+ );
148
+ }
149
+ // @__NO_SIDE_EFFECTS__
150
+ function execYarn(args, options) {
151
+ const useDebug = (0, import_debug.isDebug)();
152
+ const terminatorPos = args.indexOf("--");
153
+ const yarnArgs = (terminatorPos === -1 ? args : args.slice(0, terminatorPos)).filter((a) => !/* @__PURE__ */ isNpmProgressFlag(a));
154
+ const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos);
155
+ const firstArg = yarnArgs[0];
156
+ const supportsIgnoreScripts = firstArg ? yarnInstallLikeCommands.has(firstArg) : false;
157
+ const logLevelArgs = useDebug || yarnArgs.some(isNpmLoglevelFlag) ? [] : ["--silent"];
158
+ const hasIgnoreScriptsFlag = yarnArgs.some(isPnpmIgnoreScriptsFlag);
159
+ const ignoreScriptsArgs = !supportsIgnoreScripts || hasIgnoreScriptsFlag ? [] : ["--ignore-scripts"];
160
+ return (0, import_bin.execBin)(
161
+ "yarn",
162
+ [
163
+ // Add '--silent' if a loglevel flag is not provided and debug is off.
164
+ ...logLevelArgs,
165
+ // Add '--ignore-scripts' by default for security (only for installation commands).
166
+ ...ignoreScriptsArgs,
167
+ ...yarnArgs,
168
+ ...otherArgs
169
+ ],
170
+ {
171
+ __proto__: null,
172
+ ...options
173
+ }
174
+ );
175
+ }
176
+ // @__NO_SIDE_EFFECTS__
177
+ function isNpmAuditFlag(cmdArg) {
178
+ return /^--(no-)?audit(=.*)?$/.test(cmdArg);
179
+ }
180
+ // @__NO_SIDE_EFFECTS__
181
+ function isNpmFundFlag(cmdArg) {
182
+ return /^--(no-)?fund(=.*)?$/.test(cmdArg);
183
+ }
184
+ // @__NO_SIDE_EFFECTS__
185
+ function isNpmLoglevelFlag(cmdArg) {
186
+ if (/^--loglevel(=.*)?$/.test(cmdArg)) {
187
+ return true;
188
+ }
189
+ if (/^--(silent|verbose|info|warn|error|quiet)$/.test(cmdArg)) {
190
+ return true;
191
+ }
192
+ return /^-(s|q|d|dd|ddd|v)$/.test(cmdArg);
193
+ }
194
+ // @__NO_SIDE_EFFECTS__
195
+ function isNpmNodeOptionsFlag(cmdArg) {
196
+ return /^--node-options(=.*)?$/.test(cmdArg);
197
+ }
198
+ // @__NO_SIDE_EFFECTS__
199
+ function isNpmProgressFlag(cmdArg) {
200
+ return /^--(no-)?progress(=.*)?$/.test(cmdArg);
201
+ }
202
+ // @__NO_SIDE_EFFECTS__
203
+ function isPnpmIgnoreScriptsFlag(cmdArg) {
204
+ return pnpmIgnoreScriptsFlags.has(cmdArg);
205
+ }
206
+ // @__NO_SIDE_EFFECTS__
207
+ function isPnpmFrozenLockfileFlag(cmdArg) {
208
+ return pnpmFrozenLockfileFlags.has(cmdArg);
209
+ }
210
+ // @__NO_SIDE_EFFECTS__
211
+ function isPnpmInstallCommand(cmdArg) {
212
+ return pnpmInstallCommands.has(cmdArg);
213
+ }
214
+ const isPnpmLoglevelFlag = isNpmLoglevelFlag;
215
+ // @__NO_SIDE_EFFECTS__
216
+ function execScript(scriptName, args, options) {
217
+ let resolvedOptions;
218
+ let resolvedArgs;
219
+ if (!Array.isArray(args) && args !== null && typeof args === "object") {
220
+ resolvedOptions = args;
221
+ resolvedArgs = [];
222
+ } else {
223
+ resolvedOptions = options;
224
+ resolvedArgs = args || [];
225
+ }
226
+ const { prepost, ...spawnOptions } = {
227
+ __proto__: null,
228
+ ...resolvedOptions
229
+ };
230
+ if (spawnOptions.shell === true) {
231
+ return (0, import_spawn.spawn)(scriptName, resolvedArgs, spawnOptions);
232
+ }
233
+ const useNodeRun = !prepost && /* @__PURE__ */ require("#constants/node").supportsNodeRun();
234
+ const cwd = (0, import_objects.getOwn)(spawnOptions, "cwd") ?? process.cwd();
235
+ const pnpmLockPath = (0, import_fs.findUpSync)(
236
+ /*@__INLINE__*/
237
+ require("#constants/agents").PNPM_LOCK_YAML,
238
+ { cwd }
239
+ );
240
+ if (pnpmLockPath) {
241
+ return /* @__PURE__ */ execPnpm(["run", scriptName, ...resolvedArgs], spawnOptions);
242
+ }
243
+ const packageLockPath = (0, import_fs.findUpSync)(
244
+ /*@__INLINE__*/
245
+ require("#constants/agents").PACKAGE_LOCK_JSON,
246
+ { cwd }
247
+ );
248
+ if (packageLockPath) {
249
+ return /* @__PURE__ */ execNpm(["run", scriptName, ...resolvedArgs], spawnOptions);
250
+ }
251
+ const yarnLockPath = (0, import_fs.findUpSync)(
252
+ /*@__INLINE__*/
253
+ require("#constants/agents").YARN_LOCK,
254
+ { cwd }
255
+ );
256
+ if (yarnLockPath) {
257
+ return /* @__PURE__ */ execYarn(["run", scriptName, ...resolvedArgs], spawnOptions);
258
+ }
259
+ return (0, import_spawn.spawn)(
260
+ /* @__PURE__ */ require("#constants/node").getExecPath(),
261
+ [
262
+ .../* @__PURE__ */ require("#constants/node").getNodeNoWarningsFlags(),
263
+ ...useNodeRun ? ["--run"] : [
264
+ require("#constants/agents").NPM_REAL_EXEC_PATH,
265
+ "run"
266
+ ],
267
+ scriptName,
268
+ ...resolvedArgs
269
+ ],
270
+ {
271
+ ...spawnOptions
272
+ }
273
+ );
274
+ }
275
+ // Annotate the CommonJS export names for ESM import in node:
276
+ 0 && (module.exports = {
277
+ execNpm,
278
+ execPnpm,
279
+ execScript,
280
+ execYarn,
281
+ isNpmAuditFlag,
282
+ isNpmFundFlag,
283
+ isNpmLoglevelFlag,
284
+ isNpmNodeOptionsFlag,
285
+ isNpmProgressFlag,
286
+ isPnpmFrozenLockfileFlag,
287
+ isPnpmIgnoreScriptsFlag,
288
+ isPnpmInstallCommand,
289
+ isPnpmLoglevelFlag
290
+ });
3
291
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/agent.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Package manager agent for executing npm, pnpm, and yarn commands.\n * Provides cross-platform utilities with optimized flags and security defaults.\n *\n * SECURITY: Array-Based Arguments Prevent Command Injection\n *\n * All functions in this module (execNpm, execPnpm, execYarn) use array-based\n * arguments when calling spawn(). This is the PRIMARY DEFENSE against command\n * injection attacks.\n *\n * When arguments are passed as an array:\n * spawn(cmd, ['install', packageName, '--flag'], options)\n *\n * Node.js handles escaping automatically. Each argument is passed directly to\n * the OS without shell interpretation. Shell metacharacters like ; | & $ ( )\n * are treated as LITERAL STRINGS, not as commands.\n *\n * Example: If packageName = \"lodash; rm -rf /\", the package manager will try to\n * install a package literally named \"lodash; rm -rf /\" (which doesn't exist),\n * rather than executing the malicious command.\n *\n * This approach is secure even when shell: true is used on Windows for .cmd\n * file resolution, because Node.js properly escapes each array element.\n */\n\nimport { getCI } from '#env/ci'\n\nimport { WIN32 } from '#constants/platform'\nimport { execBin } from './bin'\nimport { isDebug } from './debug'\nimport { findUpSync } from './fs'\nimport { getOwn } from './objects'\nimport type { SpawnOptions } from './spawn'\nimport { spawn } from './spawn'\n\n// Note: npm flag checking is done with regex patterns in the is*Flag functions below.\n\nconst pnpmIgnoreScriptsFlags = new Set([\n '--ignore-scripts',\n '--no-ignore-scripts',\n])\n\nconst pnpmFrozenLockfileFlags = new Set([\n '--frozen-lockfile',\n '--no-frozen-lockfile',\n])\n\nconst pnpmInstallCommands = new Set(['install', 'i'])\n\n// Commands that support --ignore-scripts flag in pnpm:\n// Installation-related: install, add, update, remove, link, unlink, import, rebuild.\nconst pnpmInstallLikeCommands = new Set([\n 'install',\n 'i',\n 'add',\n 'update',\n 'up',\n 'remove',\n 'rm',\n 'link',\n 'ln',\n 'unlink',\n 'import',\n 'rebuild',\n 'rb',\n])\n\n// Commands that support --ignore-scripts flag in yarn:\n// Similar to npm/pnpm: installation-related commands.\nconst yarnInstallLikeCommands = new Set([\n 'install',\n 'add',\n 'upgrade',\n 'remove',\n 'link',\n 'unlink',\n 'import',\n])\n\n/**\n * Execute npm commands with optimized flags and settings.\n *\n * SECURITY: Uses array-based arguments to prevent command injection. All elements\n * in the args array are properly escaped by Node.js when passed to spawn().\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function execNpm(args: string[], options?: SpawnOptions | undefined) {\n const useDebug = isDebug()\n const terminatorPos = args.indexOf('--')\n const npmArgs = (\n terminatorPos === -1 ? args : args.slice(0, terminatorPos)\n ).filter(\n (a: string) =>\n !isNpmAuditFlag(a) && !isNpmFundFlag(a) && !isNpmProgressFlag(a),\n )\n const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos)\n const logLevelArgs =\n // The default value of loglevel is \"notice\". We default to \"warn\" which is\n // one level quieter.\n useDebug || npmArgs.some(isNpmLoglevelFlag) ? [] : ['--loglevel', 'warn']\n // SECURITY: Array-based arguments prevent command injection. Each element is\n // passed directly to the OS without shell interpretation.\n //\n // NOTE: We don't apply hardening flags to npm because:\n // 1. npm is a trusted system tool installed with Node.js\n // 2. npm requires full system access (filesystem, network, child processes)\n // 3. Hardening flags would prevent npm from functioning (even with --allow-* grants)\n // 4. The permission model is intended for untrusted user code, not package managers\n //\n // We also use the npm binary wrapper instead of calling cli.js directly because\n // cli.js exports a function that needs to be invoked with process as an argument.\n const npmBin = /*@__PURE__*/ require('#constants/agents').NPM_BIN_PATH\n return spawn(\n npmBin,\n [\n // Even though '--loglevel=error' is passed npm will still run through\n // code paths for 'audit' and 'fund' unless '--no-audit' and '--no-fund'\n // flags are passed.\n '--no-audit',\n '--no-fund',\n // Add `--no-progress` and `--silent` flags to fix input being swallowed\n // by the spinner when running the command with recent versions of npm.\n '--no-progress',\n // Add '--loglevel=error' if a loglevel flag is not provided and the\n // SOCKET_DEBUG environment variable is not truthy.\n ...logLevelArgs,\n ...npmArgs,\n ...otherArgs,\n ],\n {\n __proto__: null,\n // On Windows, npm is a .cmd file that requires shell to execute.\n shell: WIN32,\n ...options,\n } as SpawnOptions,\n )\n}\n\nexport interface PnpmOptions extends SpawnOptions {\n allowLockfileUpdate?: boolean\n}\n\n/**\n * Execute pnpm commands with optimized flags and settings.\n *\n * SECURITY: Uses array-based arguments to prevent command injection. All elements\n * in the args array are properly escaped by Node.js when passed to execBin().\n */\n/*@__NO_SIDE_EFFECTS__*/\n\nexport function execPnpm(args: string[], options?: PnpmOptions | undefined) {\n const { allowLockfileUpdate, ...extBinOpts } = {\n __proto__: null,\n ...options,\n } as PnpmOptions\n const useDebug = isDebug()\n const terminatorPos = args.indexOf('--')\n const pnpmArgs = (\n terminatorPos === -1 ? args : args.slice(0, terminatorPos)\n ).filter((a: string) => !isNpmProgressFlag(a))\n const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos)\n\n const firstArg = pnpmArgs[0]\n const supportsIgnoreScripts = firstArg\n ? pnpmInstallLikeCommands.has(firstArg)\n : false\n\n // pnpm uses --loglevel for all commands.\n const logLevelArgs =\n useDebug || pnpmArgs.some(isPnpmLoglevelFlag) ? [] : ['--loglevel', 'warn']\n\n // Only add --ignore-scripts for commands that support it.\n const hasIgnoreScriptsFlag = pnpmArgs.some(isPnpmIgnoreScriptsFlag)\n const ignoreScriptsArgs =\n !supportsIgnoreScripts || hasIgnoreScriptsFlag ? [] : ['--ignore-scripts']\n\n // In CI environments, pnpm uses --frozen-lockfile by default which prevents lockfile updates.\n // For commands that need to update the lockfile (like install with new packages/overrides),\n // we need to explicitly add --no-frozen-lockfile in CI mode if not already present.\n const frozenLockfileArgs = []\n if (\n getCI() &&\n allowLockfileUpdate &&\n firstArg &&\n isPnpmInstallCommand(firstArg) &&\n !pnpmArgs.some(isPnpmFrozenLockfileFlag)\n ) {\n frozenLockfileArgs.push('--no-frozen-lockfile')\n }\n\n // Note: pnpm doesn't have a --no-progress flag. It uses --reporter instead.\n // We removed --no-progress as it causes \"Unknown option\" errors with pnpm.\n\n // SECURITY: Array-based arguments prevent command injection. Each element is\n // passed directly to the OS without shell interpretation.\n return execBin(\n 'pnpm',\n [\n // Add '--loglevel=warn' if a loglevel flag is not provided and debug is off.\n ...logLevelArgs,\n // Add '--ignore-scripts' by default for security (only for installation commands).\n ...ignoreScriptsArgs,\n // Add '--no-frozen-lockfile' in CI when lockfile updates are needed.\n ...frozenLockfileArgs,\n ...pnpmArgs,\n ...otherArgs,\n ],\n extBinOpts,\n )\n}\n\n/**\n * Execute yarn commands with optimized flags and settings.\n *\n * SECURITY: Uses array-based arguments to prevent command injection. All elements\n * in the args array are properly escaped by Node.js when passed to execBin().\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function execYarn(\n args: string[],\n options?: import('./spawn').SpawnOptions,\n) {\n const useDebug = isDebug()\n const terminatorPos = args.indexOf('--')\n const yarnArgs = (\n terminatorPos === -1 ? args : args.slice(0, terminatorPos)\n ).filter((a: string) => !isNpmProgressFlag(a))\n const otherArgs = terminatorPos === -1 ? [] : args.slice(terminatorPos)\n\n const firstArg = yarnArgs[0]\n const supportsIgnoreScripts = firstArg\n ? yarnInstallLikeCommands.has(firstArg)\n : false\n\n // Yarn uses --silent flag for quieter output.\n const logLevelArgs =\n useDebug || yarnArgs.some(isNpmLoglevelFlag) ? [] : ['--silent']\n\n // Only add --ignore-scripts for commands that support it.\n const hasIgnoreScriptsFlag = yarnArgs.some(isPnpmIgnoreScriptsFlag)\n const ignoreScriptsArgs =\n !supportsIgnoreScripts || hasIgnoreScriptsFlag ? [] : ['--ignore-scripts']\n\n // SECURITY: Array-based arguments prevent command injection. Each element is\n // passed directly to the OS without shell interpretation.\n return execBin(\n 'yarn',\n [\n // Add '--silent' if a loglevel flag is not provided and debug is off.\n ...logLevelArgs,\n // Add '--ignore-scripts' by default for security (only for installation commands).\n ...ignoreScriptsArgs,\n ...yarnArgs,\n ...otherArgs,\n ],\n {\n __proto__: null,\n ...options,\n } as SpawnOptions,\n )\n}\n\n/**\n * Check if a command argument is an npm audit flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isNpmAuditFlag(cmdArg: string): boolean {\n return /^--(no-)?audit(=.*)?$/.test(cmdArg)\n}\n\n/**\n * Check if a command argument is an npm fund flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isNpmFundFlag(cmdArg: string): boolean {\n return /^--(no-)?fund(=.*)?$/.test(cmdArg)\n}\n\n/**\n * Check if a command argument is an npm loglevel flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isNpmLoglevelFlag(cmdArg: string): boolean {\n // https://docs.npmjs.com/cli/v11/using-npm/logging#setting-log-levels\n if (/^--loglevel(=.*)?$/.test(cmdArg)) {\n return true\n }\n // Check for long form flags\n if (/^--(silent|verbose|info|warn|error|quiet)$/.test(cmdArg)) {\n return true\n }\n // Check for shorthand flags\n return /^-(s|q|d|dd|ddd|v)$/.test(cmdArg)\n}\n\n/**\n * Check if a command argument is an npm node-options flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isNpmNodeOptionsFlag(cmdArg: string): boolean {\n // https://docs.npmjs.com/cli/v9/using-npm/config#node-options\n return /^--node-options(=.*)?$/.test(cmdArg)\n}\n\n/**\n * Check if a command argument is an npm progress flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isNpmProgressFlag(cmdArg: string): boolean {\n return /^--(no-)?progress(=.*)?$/.test(cmdArg)\n}\n\n/**\n * Check if a command argument is a pnpm ignore-scripts flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isPnpmIgnoreScriptsFlag(cmdArg: string): boolean {\n return pnpmIgnoreScriptsFlags.has(cmdArg)\n}\n\n/**\n * Check if a command argument is a pnpm frozen-lockfile flag.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isPnpmFrozenLockfileFlag(cmdArg: string): boolean {\n return pnpmFrozenLockfileFlags.has(cmdArg)\n}\n\n/**\n * Check if a command argument is a pnpm install command.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isPnpmInstallCommand(cmdArg: string): boolean {\n return pnpmInstallCommands.has(cmdArg)\n}\n\n/**\n * Alias for isNpmLoglevelFlag for pnpm usage.\n */\nexport const isPnpmLoglevelFlag = isNpmLoglevelFlag\n\n/**\n * Execute a package.json script using the appropriate package manager.\n * Automatically detects pnpm, yarn, or npm based on lockfiles.\n */\nexport interface ExecScriptOptions extends SpawnOptions {\n prepost?: boolean | undefined\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function execScript(\n scriptName: string,\n args?: string[] | readonly string[] | ExecScriptOptions | undefined,\n options?: ExecScriptOptions | undefined,\n) {\n // Handle overloaded signatures: execScript(name, options) or execScript(name, args, options).\n let resolvedOptions: ExecScriptOptions | undefined\n let resolvedArgs: string[]\n if (!Array.isArray(args) && args !== null && typeof args === 'object') {\n resolvedOptions = args as ExecScriptOptions\n resolvedArgs = []\n } else {\n resolvedOptions = options\n resolvedArgs = (args || []) as string[]\n }\n const { prepost, ...spawnOptions } = {\n __proto__: null,\n ...resolvedOptions,\n } as ExecScriptOptions\n\n // If shell: true is passed, run the command directly as a shell command.\n if (spawnOptions.shell === true) {\n return spawn(scriptName, resolvedArgs, spawnOptions)\n }\n\n const useNodeRun =\n !prepost && /*@__PURE__*/ require('#constants/node').supportsNodeRun()\n\n // Detect package manager based on lockfile by traversing up from current directory.\n const cwd =\n (getOwn(spawnOptions, 'cwd') as string | undefined) ?? process.cwd()\n\n // Check for pnpm-lock.yaml.\n const pnpmLockPath = findUpSync(\n /*@__INLINE__*/ require('#constants/agents').PNPM_LOCK_YAML,\n { cwd },\n ) as string | undefined\n if (pnpmLockPath) {\n return execPnpm(['run', scriptName, ...resolvedArgs], spawnOptions)\n }\n\n // Check for package-lock.json.\n // When in an npm workspace, use npm run to ensure workspace binaries are available.\n const packageLockPath = findUpSync(\n /*@__INLINE__*/ require('#constants/agents').PACKAGE_LOCK_JSON,\n { cwd },\n ) as string | undefined\n if (packageLockPath) {\n return execNpm(['run', scriptName, ...resolvedArgs], spawnOptions)\n }\n\n // Check for yarn.lock.\n const yarnLockPath = findUpSync(\n /*@__INLINE__*/ require('#constants/agents').YARN_LOCK,\n { cwd },\n ) as string | undefined\n if (yarnLockPath) {\n return execYarn(['run', scriptName, ...resolvedArgs], spawnOptions)\n }\n\n return spawn(\n /*@__PURE__*/ require('#constants/node').getExecPath(),\n [\n .../*@__PURE__*/ require('#constants/node').getNodeNoWarningsFlags(),\n ...(useNodeRun\n ? ['--run']\n : [\n /*@__PURE__*/ require('#constants/agents').NPM_REAL_EXEC_PATH,\n 'run',\n ]),\n scriptName,\n ...resolvedArgs,\n ],\n {\n ...spawnOptions,\n },\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["agent_exports", "__export", "execNpm", "execPnpm", "execScript", "execYarn", "isNpmAuditFlag", "isNpmFundFlag", "isNpmLoglevelFlag", "isNpmNodeOptionsFlag", "isNpmProgressFlag", "isPnpmFrozenLockfileFlag", "isPnpmIgnoreScriptsFlag", "isPnpmInstallCommand", "isPnpmLoglevelFlag", "__toCommonJS", "import_ci", "import_platform", "import_bin", "import_debug", "import_fs", "import_objects", "import_spawn", "pnpmIgnoreScriptsFlags", "pnpmFrozenLockfileFlags", "pnpmInstallCommands", "pnpmInstallLikeCommands", "yarnInstallLikeCommands", "args", "options", "useDebug", "terminatorPos", "npmArgs", "a", "otherArgs", "logLevelArgs", "npmBin", "allowLockfileUpdate", "extBinOpts", "pnpmArgs", "firstArg", "supportsIgnoreScripts", "hasIgnoreScriptsFlag", "ignoreScriptsArgs", "frozenLockfileArgs", "yarnArgs", "cmdArg", "scriptName", "resolvedOptions", "resolvedArgs", "prepost", "spawnOptions", "useNodeRun", "cwd"]
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
package/dist/ansi.js CHANGED
@@ -1,3 +1,62 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var c=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var i=(t,n)=>{for(var s in n)c(t,s,{get:n[s],enumerable:!0})},I=(t,n,s,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of p(n))!u.call(t,o)&&o!==s&&c(t,o,{get:()=>n[o],enumerable:!(e=x(n,o))||e.enumerable});return t};var S=t=>I(c({},"__esModule",{value:!0}),t);var d={};i(d,{ANSI_BOLD:()=>E,ANSI_DIM:()=>N,ANSI_ITALIC:()=>R,ANSI_RESET:()=>A,ANSI_STRIKETHROUGH:()=>g,ANSI_UNDERLINE:()=>b,ansiRegex:()=>T,stripAnsi:()=>_});module.exports=S(d);const A="\x1B[0m",E="\x1B[1m",N="\x1B[2m",R="\x1B[3m",b="\x1B[4m",g="\x1B[9m",m=/\x1b\[[0-9;]*m/g;function T(t){const{onlyFirst:n}=t??{},r="(?:\\u001B\\][\\s\\S]*?(?:\\u0007\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(r,n?void 0:"g")}function _(t){return t.replace(m,"")}0&&(module.exports={ANSI_BOLD,ANSI_DIM,ANSI_ITALIC,ANSI_RESET,ANSI_STRIKETHROUGH,ANSI_UNDERLINE,ansiRegex,stripAnsi});
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 ansi_exports = {};
20
+ __export(ansi_exports, {
21
+ ANSI_BOLD: () => ANSI_BOLD,
22
+ ANSI_DIM: () => ANSI_DIM,
23
+ ANSI_ITALIC: () => ANSI_ITALIC,
24
+ ANSI_RESET: () => ANSI_RESET,
25
+ ANSI_STRIKETHROUGH: () => ANSI_STRIKETHROUGH,
26
+ ANSI_UNDERLINE: () => ANSI_UNDERLINE,
27
+ ansiRegex: () => ansiRegex,
28
+ stripAnsi: () => stripAnsi
29
+ });
30
+ module.exports = __toCommonJS(ansi_exports);
31
+ const ANSI_RESET = "\x1B[0m";
32
+ const ANSI_BOLD = "\x1B[1m";
33
+ const ANSI_DIM = "\x1B[2m";
34
+ const ANSI_ITALIC = "\x1B[3m";
35
+ const ANSI_UNDERLINE = "\x1B[4m";
36
+ const ANSI_STRIKETHROUGH = "\x1B[9m";
37
+ const ANSI_REGEX = /\x1b\[[0-9;]*m/g;
38
+ // @__NO_SIDE_EFFECTS__
39
+ function ansiRegex(options) {
40
+ const { onlyFirst } = options ?? {};
41
+ const ST = "(?:\\u0007\\u001B\\u005C|\\u009C)";
42
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
43
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
44
+ const pattern = `${osc}|${csi}`;
45
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
46
+ }
47
+ // @__NO_SIDE_EFFECTS__
48
+ function stripAnsi(text) {
49
+ return text.replace(ANSI_REGEX, "");
50
+ }
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ ANSI_BOLD,
54
+ ANSI_DIM,
55
+ ANSI_ITALIC,
56
+ ANSI_RESET,
57
+ ANSI_STRIKETHROUGH,
58
+ ANSI_UNDERLINE,
59
+ ansiRegex,
60
+ stripAnsi
61
+ });
3
62
  //# sourceMappingURL=ansi.js.map
package/dist/ansi.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/ansi.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview ANSI escape code utilities.\n * Provides constants and helpers for terminal formatting.\n */\n\n// ANSI escape codes - commonly used sequences.\nexport const ANSI_RESET = '\\x1b[0m'\nexport const ANSI_BOLD = '\\x1b[1m'\nexport const ANSI_DIM = '\\x1b[2m'\nexport const ANSI_ITALIC = '\\x1b[3m'\nexport const ANSI_UNDERLINE = '\\x1b[4m'\nexport const ANSI_STRIKETHROUGH = '\\x1b[9m'\n\n// ANSI escape code regex to strip colors/formatting.\n// biome-ignore lint/suspicious/noControlCharactersInRegex: ANSI escape sequences use control characters.\nconst ANSI_REGEX = /\\x1b\\[[0-9;]*m/g\n\n/**\n * Create a regular expression for matching ANSI escape codes.\n *\n * Inlined ansi-regex:\n * https://socket.dev/npm/package/ansi-regexp/overview/6.2.2\n * MIT License\n * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function ansiRegex(options?: { onlyFirst?: boolean }): RegExp {\n const { onlyFirst } = options ?? {}\n // Valid string terminator sequences are BEL, ESC\\, and 0x9c.\n const ST = '(?:\\\\u0007\\\\u001B\\\\u005C|\\\\u009C)'\n // OSC sequences only: ESC ] ... ST (non-greedy until the first ST).\n const osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`\n // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte.\n const csi =\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]'\n const pattern = `${osc}|${csi}`\n return new RegExp(pattern, onlyFirst ? undefined : 'g')\n}\n\n/**\n * Strip ANSI escape codes from text.\n * Uses the inlined ansi-regex for matching.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function stripAnsi(text: string): string {\n return text.replace(ANSI_REGEX, '')\n}\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,aAAAC,EAAA,gBAAAC,EAAA,eAAAC,EAAA,uBAAAC,EAAA,mBAAAC,EAAA,cAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAV,GAMO,MAAMK,EAAa,UACbH,EAAY,UACZC,EAAW,UACXC,EAAc,UACdG,EAAiB,UACjBD,EAAqB,UAI5BK,EAAa,kBAWZ,SAASH,EAAUI,EAA2C,CACnE,KAAM,CAAE,UAAAC,CAAU,EAAID,GAAW,CAAC,EAQ5BE,EAAU,+IAChB,OAAO,IAAI,OAAOA,EAASD,EAAY,OAAY,GAAG,CACxD,CAOO,SAASJ,EAAUM,EAAsB,CAC9C,OAAOA,EAAK,QAAQJ,EAAY,EAAE,CACpC",
6
- "names": ["ansi_exports", "__export", "ANSI_BOLD", "ANSI_DIM", "ANSI_ITALIC", "ANSI_RESET", "ANSI_STRIKETHROUGH", "ANSI_UNDERLINE", "ansiRegex", "stripAnsi", "__toCommonJS", "ANSI_REGEX", "options", "onlyFirst", "pattern", "text"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,aAAa;AACnB,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,qBAAqB;AAIlC,MAAM,aAAa;AAAA;AAWZ,SAAS,UAAU,SAA2C;AACnE,QAAM,EAAE,UAAU,IAAI,WAAW,CAAC;AAElC,QAAM,KAAK;AAEX,QAAM,MAAM,0BAA0B,EAAE;AAExC,QAAM,MACJ;AACF,QAAM,UAAU,GAAG,GAAG,IAAI,GAAG;AAC7B,SAAO,IAAI,OAAO,SAAS,YAAY,SAAY,GAAG;AACxD;AAAA;AAOO,SAAS,UAAU,MAAsB;AAC9C,SAAO,KAAK,QAAQ,YAAY,EAAE;AACpC;",
6
+ "names": []
7
7
  }