@socketsecurity/lib 6.0.6 → 6.0.8

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 (619) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +1 -1
  3. package/dist/ai/agent-context.d.mts +103 -0
  4. package/dist/ai/agent-context.js +157 -0
  5. package/dist/ai/backends.d.mts +83 -0
  6. package/dist/ai/backends.js +173 -0
  7. package/dist/ai/credentials.d.mts +49 -0
  8. package/dist/ai/credentials.js +82 -0
  9. package/dist/ai/discover.d.mts +6 -2
  10. package/dist/ai/discover.js +4 -3
  11. package/dist/ai/exec.d.mts +52 -0
  12. package/dist/ai/exec.js +92 -0
  13. package/dist/ai/http.d.mts +132 -0
  14. package/dist/ai/http.js +130 -0
  15. package/dist/ai/profiles.d.mts +41 -6
  16. package/dist/ai/profiles.js +52 -10
  17. package/dist/ai/route.d.mts +69 -0
  18. package/dist/ai/route.js +156 -0
  19. package/dist/ai/spawn.d.mts +10 -2
  20. package/dist/ai/spawn.js +56 -31
  21. package/dist/ai/subagent-status.d.mts +48 -0
  22. package/dist/ai/subagent-status.js +57 -0
  23. package/dist/ai/tier.d.mts +60 -0
  24. package/dist/ai/tier.js +53 -0
  25. package/dist/ai/types.d.mts +31 -6
  26. package/dist/ai/worktree.d.mts +6 -6
  27. package/dist/ai/worktree.js +5 -1
  28. package/dist/ansi/strip.d.ts +1 -1
  29. package/dist/ansi/strip.js +0 -2
  30. package/dist/archives/_internal.js +7 -9
  31. package/dist/archives/extract.js +1 -1
  32. package/dist/archives/tar.js +7 -7
  33. package/dist/archives/zip.js +5 -7
  34. package/dist/argv/flag-predicates.d.ts +12 -12
  35. package/dist/argv/flag-predicates.js +17 -17
  36. package/dist/argv/flag-types.d.ts +18 -18
  37. package/dist/argv/flag-types.js +4 -4
  38. package/dist/argv/parse.d.ts +20 -3
  39. package/dist/argv/parse.js +1 -1
  40. package/dist/arrays/_internal.js +11 -12
  41. package/dist/arrays/chunk.js +0 -1
  42. package/dist/arrays/join.d.ts +37 -3
  43. package/dist/arrays/join.js +47 -7
  44. package/dist/arrays/unique.js +0 -1
  45. package/dist/bin/_internal.d.ts +1 -1
  46. package/dist/bin/_internal.js +1 -1
  47. package/dist/bin/exec.js +2 -3
  48. package/dist/bin/find.js +17 -17
  49. package/dist/bin/prim.cjs +36175 -35861
  50. package/dist/bin/resolve.js +13 -14
  51. package/dist/bin/which.js +8 -8
  52. package/dist/cache/ttl/store.js +6 -6
  53. package/dist/checks/primordials-defaults.d.ts +3 -3
  54. package/dist/checks/primordials-defaults.js +3 -3
  55. package/dist/checks/primordials.js +4 -3
  56. package/dist/{bin → cli}/check-primordials.d.ts +18 -13
  57. package/dist/{bin → cli}/check-primordials.js +58 -55
  58. package/dist/{bin → cli}/check.js +3 -3
  59. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  60. package/dist/{bin → cli}/socket-lib.js +4 -4
  61. package/dist/colors/socket-palette.js +7 -9
  62. package/dist/compression/_internal.d.ts +12 -12
  63. package/dist/compression/_internal.js +18 -18
  64. package/dist/compression/brotli.d.ts +26 -27
  65. package/dist/compression/brotli.js +39 -35
  66. package/dist/compression/gzip.d.ts +23 -23
  67. package/dist/compression/gzip.js +46 -42
  68. package/dist/constants/agents.d.ts +3 -1
  69. package/dist/constants/agents.js +15 -11
  70. package/dist/constants/licenses.js +3 -3
  71. package/dist/constants/node.d.ts +23 -0
  72. package/dist/constants/node.js +47 -15
  73. package/dist/constants/packages.d.ts +3 -0
  74. package/dist/constants/packages.js +24 -29
  75. package/dist/constants/platform.d.ts +30 -3
  76. package/dist/constants/platform.js +72 -12
  77. package/dist/constants/runtime.d.ts +22 -0
  78. package/dist/constants/runtime.js +32 -0
  79. package/dist/constants/socket.d.ts +2 -6
  80. package/dist/constants/socket.js +12 -14
  81. package/dist/cover/code.js +10 -10
  82. package/dist/cover/formatters.js +5 -5
  83. package/dist/crypto/hash.d.ts +30 -2
  84. package/dist/crypto/hash.js +47 -13
  85. package/dist/debug/_internal.js +4 -6
  86. package/dist/debug/caller-info.js +3 -4
  87. package/dist/debug/namespace.d.ts +7 -0
  88. package/dist/debug/namespace.js +21 -12
  89. package/dist/debug/output.js +21 -24
  90. package/dist/debug/types.d.ts +4 -4
  91. package/dist/dlx/arborist.js +18 -8
  92. package/dist/dlx/binary-cache.js +15 -15
  93. package/dist/dlx/binary-download.d.ts +1 -1
  94. package/dist/dlx/binary-download.js +11 -11
  95. package/dist/dlx/binary-resolution.js +17 -15
  96. package/dist/dlx/binary-types.d.ts +5 -5
  97. package/dist/dlx/binary.js +5 -5
  98. package/dist/dlx/cache.js +1 -1
  99. package/dist/dlx/detect.d.ts +42 -25
  100. package/dist/dlx/detect.js +86 -77
  101. package/dist/dlx/dir.js +2 -2
  102. package/dist/dlx/firewall.d.ts +9 -1
  103. package/dist/dlx/firewall.js +1 -1
  104. package/dist/dlx/lockfile.d.ts +19 -18
  105. package/dist/dlx/lockfile.js +19 -16
  106. package/dist/dlx/manifest.d.ts +6 -6
  107. package/dist/dlx/manifest.js +5 -5
  108. package/dist/dlx/package.d.ts +10 -10
  109. package/dist/dlx/package.js +20 -16
  110. package/dist/dlx/packages.js +4 -4
  111. package/dist/dlx/paths.js +7 -7
  112. package/dist/dlx/spec.js +1 -1
  113. package/dist/dlx/types.d.ts +28 -27
  114. package/dist/eco/cargo/parse-lockfile.d.ts +2 -3
  115. package/dist/eco/cargo/parse-lockfile.js +5 -5
  116. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  117. package/dist/eco/manifest/detect-format.js +5 -5
  118. package/dist/eco/manifest/find-packages.js +2 -2
  119. package/dist/eco/manifest/get-package-versions.js +2 -2
  120. package/dist/eco/manifest/get-package.js +2 -2
  121. package/dist/eco/manifest/parse-lockfile.js +2 -2
  122. package/dist/eco/manifest/parse-manifest.js +2 -2
  123. package/dist/eco/manifest/parse.js +2 -2
  124. package/dist/eco/npm/npm/exec.js +2 -2
  125. package/dist/eco/npm/npm/flags.js +7 -12
  126. package/dist/eco/npm/npm/parse-lockfile.d.ts +17 -18
  127. package/dist/eco/npm/npm/parse-lockfile.js +4 -4
  128. package/dist/eco/npm/parse-package-json.d.ts +11 -0
  129. package/dist/eco/npm/parse-package-json.js +3 -3
  130. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  131. package/dist/eco/npm/pnpm/exec.js +5 -5
  132. package/dist/eco/npm/pnpm/flags.js +0 -3
  133. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +6 -4
  134. package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
  135. package/dist/eco/npm/script.js +9 -6
  136. package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
  137. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
  138. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
  139. package/dist/effects/pulse-frames.d.ts +3 -1
  140. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  141. package/dist/effects/shimmer-terminal.d.ts +1 -1
  142. package/dist/env/boolean.js +0 -1
  143. package/dist/env/ci.js +0 -1
  144. package/dist/env/debug.js +0 -1
  145. package/dist/env/github-status.d.ts +51 -0
  146. package/dist/env/github-status.js +90 -0
  147. package/dist/env/github.js +0 -8
  148. package/dist/env/home.js +0 -1
  149. package/dist/env/locale.js +0 -3
  150. package/dist/env/node-auth-token.js +0 -1
  151. package/dist/env/node-env.js +0 -1
  152. package/dist/env/node-version-managers.d.ts +53 -0
  153. package/dist/env/node-version-managers.js +90 -0
  154. package/dist/env/npm.js +0 -5
  155. package/dist/env/number.js +0 -1
  156. package/dist/env/package-manager.js +3 -6
  157. package/dist/env/path.js +0 -1
  158. package/dist/env/pre-commit.js +1 -2
  159. package/dist/env/proxy.js +1 -1
  160. package/dist/env/rewire.d.ts +8 -6
  161. package/dist/env/rewire.js +16 -17
  162. package/dist/env/shell.js +0 -1
  163. package/dist/env/socket-cli.js +5 -18
  164. package/dist/env/socket-mcp.d.ts +114 -0
  165. package/dist/env/socket-mcp.js +146 -0
  166. package/dist/env/socket.d.ts +8 -109
  167. package/dist/env/socket.js +22 -167
  168. package/dist/env/string.js +0 -1
  169. package/dist/env/temp-dir.js +0 -3
  170. package/dist/env/term.js +0 -1
  171. package/dist/env/test.js +3 -6
  172. package/dist/env/windows.js +0 -4
  173. package/dist/env/xdg.js +0 -3
  174. package/dist/errors/predicates.js +1 -1
  175. package/dist/events/exit/_internal.d.ts +11 -9
  176. package/dist/events/exit/_internal.js +31 -35
  177. package/dist/events/exit/handler.js +3 -4
  178. package/dist/events/exit/intercept.js +4 -6
  179. package/dist/events/exit/lifecycle.js +16 -18
  180. package/dist/events/exit/signals.js +1 -2
  181. package/dist/events/exit/types.d.ts +6 -5
  182. package/dist/external/@npmcli/package-json.js +2 -2
  183. package/dist/external/@npmcli/promise-spawn.js +3 -1
  184. package/dist/external/npm-pack.js +2 -2
  185. package/dist/external/pico-pack.js +4 -2
  186. package/dist/external/which.js +3 -1
  187. package/dist/external-tools/bazel/asset-names.d.ts +1 -1
  188. package/dist/external-tools/bazel/asset-names.js +5 -2
  189. package/dist/external-tools/bazel/from-download.d.ts +1 -1
  190. package/dist/external-tools/bazel/from-download.js +5 -2
  191. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  192. package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
  193. package/dist/external-tools/bazel/resolve.d.ts +3 -3
  194. package/dist/external-tools/bazel/resolve.js +16 -8
  195. package/dist/external-tools/bazel/types.d.ts +1 -1
  196. package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
  197. package/dist/external-tools/cdxgen/asset-names.js +5 -2
  198. package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
  199. package/dist/external-tools/cdxgen/from-download.js +7 -4
  200. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  201. package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
  202. package/dist/external-tools/cdxgen/resolve.js +16 -8
  203. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  204. package/dist/external-tools/from-download.d.ts +3 -3
  205. package/dist/external-tools/from-download.js +12 -6
  206. package/dist/external-tools/from-pip-venv.d.ts +1 -1
  207. package/dist/external-tools/from-pip-venv.js +12 -5
  208. package/dist/external-tools/janus/asset-names.d.ts +1 -1
  209. package/dist/external-tools/janus/asset-names.js +5 -2
  210. package/dist/external-tools/janus/from-download.d.ts +1 -1
  211. package/dist/external-tools/janus/from-download.js +5 -2
  212. package/dist/external-tools/janus/from-vfs.js +1 -1
  213. package/dist/external-tools/janus/resolve.d.ts +3 -3
  214. package/dist/external-tools/janus/resolve.js +16 -8
  215. package/dist/external-tools/janus/types.d.ts +1 -1
  216. package/dist/external-tools/jre/asset-names.d.ts +1 -1
  217. package/dist/external-tools/jre/asset-names.js +5 -2
  218. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  219. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  220. package/dist/external-tools/jre/from-download.d.ts +1 -1
  221. package/dist/external-tools/jre/from-download.js +7 -4
  222. package/dist/external-tools/jre/from-java-home.js +2 -2
  223. package/dist/external-tools/jre/from-vfs.js +3 -3
  224. package/dist/external-tools/jre/resolve.d.ts +3 -3
  225. package/dist/external-tools/jre/resolve.js +16 -8
  226. package/dist/external-tools/jre/types.d.ts +1 -1
  227. package/dist/external-tools/manifest.d.ts +25 -7
  228. package/dist/external-tools/manifest.js +13 -13
  229. package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
  230. package/dist/external-tools/opengrep/asset-names.js +5 -2
  231. package/dist/external-tools/opengrep/from-download.d.ts +1 -1
  232. package/dist/external-tools/opengrep/from-download.js +5 -2
  233. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  234. package/dist/external-tools/opengrep/resolve.d.ts +3 -3
  235. package/dist/external-tools/opengrep/resolve.js +16 -8
  236. package/dist/external-tools/opengrep/types.d.ts +1 -1
  237. package/dist/external-tools/python/asset-names.d.ts +76 -0
  238. package/dist/external-tools/python/asset-names.js +111 -0
  239. package/dist/external-tools/python/dlx.d.ts +80 -0
  240. package/dist/external-tools/python/dlx.js +98 -0
  241. package/dist/external-tools/python/from-download.d.ts +53 -0
  242. package/dist/external-tools/python/from-download.js +75 -0
  243. package/dist/external-tools/python/from-path.d.ts +7 -0
  244. package/dist/external-tools/python/from-path.js +23 -0
  245. package/dist/external-tools/python/pin.d.ts +121 -0
  246. package/dist/external-tools/python/pin.js +176 -0
  247. package/dist/external-tools/python/pip-install.d.ts +75 -0
  248. package/dist/external-tools/python/pip-install.js +142 -0
  249. package/dist/external-tools/python/resolve.d.ts +42 -0
  250. package/dist/external-tools/python/resolve.js +66 -0
  251. package/dist/external-tools/python/types.d.ts +49 -0
  252. package/dist/external-tools/sbt/asset-names.d.ts +1 -1
  253. package/dist/external-tools/sbt/asset-names.js +5 -2
  254. package/dist/external-tools/sbt/from-download.d.ts +1 -1
  255. package/dist/external-tools/sbt/from-download.js +5 -2
  256. package/dist/external-tools/sbt/from-vfs.js +1 -1
  257. package/dist/external-tools/sbt/resolve.d.ts +3 -3
  258. package/dist/external-tools/sbt/resolve.js +16 -8
  259. package/dist/external-tools/sbt/types.d.ts +1 -1
  260. package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
  261. package/dist/external-tools/skillspector/from-dlx.js +10 -3
  262. package/dist/external-tools/skillspector/from-path.js +3 -5
  263. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  264. package/dist/external-tools/skillspector/resolve.d.ts +2 -2
  265. package/dist/external-tools/skillspector/resolve.js +14 -6
  266. package/dist/external-tools/synp/asset-names.d.ts +1 -1
  267. package/dist/external-tools/synp/asset-names.js +6 -2
  268. package/dist/external-tools/synp/from-download.d.ts +1 -1
  269. package/dist/external-tools/synp/from-download.js +7 -4
  270. package/dist/external-tools/synp/from-vfs.js +1 -1
  271. package/dist/external-tools/synp/resolve.d.ts +3 -3
  272. package/dist/external-tools/synp/resolve.js +16 -8
  273. package/dist/external-tools/trivy/asset-names.d.ts +1 -1
  274. package/dist/external-tools/trivy/asset-names.js +5 -2
  275. package/dist/external-tools/trivy/from-download.d.ts +1 -1
  276. package/dist/external-tools/trivy/from-download.js +7 -4
  277. package/dist/external-tools/trivy/from-vfs.js +1 -1
  278. package/dist/external-tools/trivy/resolve.d.ts +3 -3
  279. package/dist/external-tools/trivy/resolve.js +16 -8
  280. package/dist/external-tools/trivy/types.d.ts +1 -1
  281. package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
  282. package/dist/external-tools/trufflehog/asset-names.js +5 -2
  283. package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
  284. package/dist/external-tools/trufflehog/from-download.js +7 -4
  285. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  286. package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
  287. package/dist/external-tools/trufflehog/resolve.js +16 -8
  288. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  289. package/dist/fs/_internal.d.ts +1 -1
  290. package/dist/fs/_internal.js +7 -7
  291. package/dist/fs/access.js +5 -9
  292. package/dist/fs/allowed-dirs-cache.d.ts +47 -0
  293. package/dist/fs/allowed-dirs-cache.js +69 -0
  294. package/dist/fs/encoding.js +5 -7
  295. package/dist/fs/{find-up.js → find.js} +12 -14
  296. package/dist/fs/inspect.js +7 -13
  297. package/dist/fs/read-dir.js +7 -10
  298. package/dist/fs/read-file.js +8 -14
  299. package/dist/fs/read-json-cache.d.ts +13 -4
  300. package/dist/fs/read-json-cache.js +9 -6
  301. package/dist/fs/read-json.js +4 -6
  302. package/dist/fs/resolve-module.js +7 -3
  303. package/dist/fs/safe.d.ts +1 -1
  304. package/dist/fs/safe.js +13 -14
  305. package/dist/fs/unique.js +4 -5
  306. package/dist/fs/validate.js +1 -2
  307. package/dist/fs/write-json.js +4 -5
  308. package/dist/git/_internal.js +11 -11
  309. package/dist/git/changed.js +4 -4
  310. package/dist/git/repo.js +5 -7
  311. package/dist/git/staged.js +12 -4
  312. package/dist/git/tracked.d.ts +84 -0
  313. package/dist/git/tracked.js +163 -0
  314. package/dist/git/unstaged.js +12 -4
  315. package/dist/github/ghsa.js +2 -2
  316. package/dist/github/refs-cache.d.ts +1 -1
  317. package/dist/github/refs-cache.js +5 -5
  318. package/dist/github/refs-graphql.js +4 -0
  319. package/dist/github/refs-rest.js +9 -5
  320. package/dist/github/refs.js +15 -10
  321. package/dist/github/{fetch.js → request.js} +13 -2
  322. package/dist/github/token.js +1 -1
  323. package/dist/github/types.d.ts +1 -1
  324. package/dist/globs/_internal.js +8 -10
  325. package/dist/globs/match.js +13 -7
  326. package/dist/globs/matcher.d.ts +3 -3
  327. package/dist/globs/matcher.js +16 -14
  328. package/dist/globs/stream.js +1 -2
  329. package/dist/globs/types.d.ts +24 -24
  330. package/dist/http-request/_internal.d.ts +1 -1
  331. package/dist/http-request/browser.js +10 -4
  332. package/dist/http-request/checksum-file.d.ts +55 -0
  333. package/dist/http-request/checksum-file.js +95 -0
  334. package/dist/http-request/download-types.d.ts +15 -23
  335. package/dist/http-request/download.js +3 -3
  336. package/dist/http-request/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
  337. package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
  338. package/dist/http-request/headers.js +1 -2
  339. package/dist/http-request/request-attempt.js +38 -34
  340. package/dist/http-request/request-types.d.ts +2 -2
  341. package/dist/http-request/request.js +1 -1
  342. package/dist/http-request/user-agent.js +4 -5
  343. package/dist/integrity.d.ts +92 -18
  344. package/dist/integrity.js +125 -30
  345. package/dist/ipc/directory.js +2 -2
  346. package/dist/ipc/paths.js +1 -1
  347. package/dist/ipc/write.js +1 -1
  348. package/dist/ipc-cli/get.js +12 -12
  349. package/dist/json/edit.js +51 -44
  350. package/dist/json/format.js +1 -1
  351. package/dist/json/parse.d.ts +1 -1
  352. package/dist/json/parse.js +3 -7
  353. package/dist/logger/_internal.d.ts +4 -4
  354. package/dist/logger/_internal.js +3 -3
  355. package/dist/logger/colors.js +4 -3
  356. package/dist/logger/console-methods.d.ts +132 -0
  357. package/dist/logger/console-methods.js +169 -0
  358. package/dist/logger/console.d.ts +12 -0
  359. package/dist/logger/console.js +42 -11
  360. package/dist/logger/indentation-methods.d.ts +81 -0
  361. package/dist/logger/indentation-methods.js +121 -0
  362. package/dist/logger/node.d.ts +16 -338
  363. package/dist/logger/node.js +75 -608
  364. package/dist/logger/options.d.ts +39 -0
  365. package/dist/logger/options.js +47 -0
  366. package/dist/logger/semantic-methods.d.ts +63 -0
  367. package/dist/logger/semantic-methods.js +108 -0
  368. package/dist/logger/stream-methods.d.ts +63 -0
  369. package/dist/logger/stream-methods.js +101 -0
  370. package/dist/logger/stream.d.ts +37 -0
  371. package/dist/logger/stream.js +42 -0
  372. package/dist/logger/symbols-builder.js +9 -9
  373. package/dist/logger/symbols.d.ts +2 -25
  374. package/dist/logger/symbols.js +53 -74
  375. package/dist/logger/types.d.ts +1 -1
  376. package/dist/memo/types.d.ts +6 -6
  377. package/dist/native-messaging/host.d.ts +20 -0
  378. package/dist/native-messaging/host.js +120 -0
  379. package/dist/native-messaging/index.d.ts +5 -0
  380. package/dist/native-messaging/index.js +22 -0
  381. package/dist/native-messaging/install.d.ts +60 -0
  382. package/dist/native-messaging/install.js +144 -0
  383. package/dist/native-messaging/rate-limit.d.ts +69 -0
  384. package/dist/native-messaging/rate-limit.js +119 -0
  385. package/dist/native-messaging/run.d.ts +10 -0
  386. package/dist/native-messaging/run.js +17 -0
  387. package/dist/node/async-hooks.js +4 -3
  388. package/dist/node/child-process.js +4 -3
  389. package/dist/node/crypto.js +4 -3
  390. package/dist/node/events.js +4 -3
  391. package/dist/node/fs-promises.js +4 -3
  392. package/dist/node/fs.d.ts +22 -6
  393. package/dist/node/fs.js +17 -3
  394. package/dist/node/http.js +4 -3
  395. package/dist/node/https.js +4 -3
  396. package/dist/node/module.js +10 -6
  397. package/dist/node/os.d.ts +10 -2
  398. package/dist/node/os.js +12 -4
  399. package/dist/node/path.d.ts +11 -2
  400. package/dist/node/path.js +18 -4
  401. package/dist/node/timers-promises.js +4 -3
  402. package/dist/node/url.js +4 -3
  403. package/dist/node/util.js +4 -3
  404. package/dist/objects/getters.js +6 -8
  405. package/dist/objects/inspect.js +1 -4
  406. package/dist/objects/mutate.js +4 -5
  407. package/dist/objects/predicates.js +1 -5
  408. package/dist/objects/sort.js +3 -7
  409. package/dist/packages/edit-class.d.ts +2 -3
  410. package/dist/packages/edit-class.js +53 -48
  411. package/dist/packages/edit.js +12 -14
  412. package/dist/packages/exports.js +15 -21
  413. package/dist/packages/fetch.d.ts +16 -0
  414. package/dist/packages/fetch.js +81 -0
  415. package/dist/packages/find.d.ts +55 -0
  416. package/dist/packages/find.js +65 -0
  417. package/dist/packages/isolation.js +14 -14
  418. package/dist/packages/licenses.js +18 -18
  419. package/dist/packages/manifest.js +16 -19
  420. package/dist/packages/metadata-extensions.d.ts +14 -0
  421. package/dist/packages/metadata-extensions.js +43 -0
  422. package/dist/packages/normalize.js +6 -10
  423. package/dist/packages/provenance.js +17 -19
  424. package/dist/packages/read.d.ts +29 -0
  425. package/dist/packages/read.js +66 -0
  426. package/dist/packages/specs.d.ts +48 -1
  427. package/dist/packages/specs.js +75 -12
  428. package/dist/packages/tarball.d.ts +24 -0
  429. package/dist/packages/tarball.js +81 -0
  430. package/dist/packages/types.d.ts +22 -22
  431. package/dist/packages/validation.js +0 -3
  432. package/dist/paths/_internal.d.ts +2 -1
  433. package/dist/paths/_internal.js +7 -19
  434. package/dist/paths/conversion.js +5 -9
  435. package/dist/paths/dirnames.d.ts +1 -0
  436. package/dist/paths/dirnames.js +2 -0
  437. package/dist/paths/filenames.d.ts +0 -1
  438. package/dist/paths/filenames.js +0 -2
  439. package/dist/paths/normalize.js +4 -5
  440. package/dist/paths/packages.js +4 -7
  441. package/dist/paths/predicates.js +9 -16
  442. package/dist/paths/resolve.js +17 -25
  443. package/dist/paths/rewire.d.ts +5 -0
  444. package/dist/paths/rewire.js +3 -3
  445. package/dist/paths/socket.d.ts +74 -111
  446. package/dist/paths/socket.js +106 -139
  447. package/dist/paths/walk.d.ts +1 -1
  448. package/dist/paths/walk.js +4 -4
  449. package/dist/perf/report.js +2 -2
  450. package/dist/perf/types.d.ts +1 -1
  451. package/dist/pkg-ext/data.js +1 -1
  452. package/dist/primordials/array.js +9 -9
  453. package/dist/primordials/date.js +2 -2
  454. package/dist/primordials/error.js +3 -3
  455. package/dist/primordials/headers.d.ts +10 -0
  456. package/dist/primordials/headers.js +23 -0
  457. package/dist/primordials/intl.d.ts +13 -0
  458. package/dist/primordials/intl.js +26 -0
  459. package/dist/primordials/math.js +33 -33
  460. package/dist/primordials/number.js +9 -9
  461. package/dist/primordials/object.js +5 -5
  462. package/dist/primordials/process.d.ts +88 -0
  463. package/dist/primordials/process.js +132 -0
  464. package/dist/primordials/string.d.ts +2 -2
  465. package/dist/primordials/string.js +6 -6
  466. package/dist/primordials/symbol.js +3 -3
  467. package/dist/primordials/uncurry.d.ts +1 -2
  468. package/dist/primordials/uncurry.js +9 -9
  469. package/dist/process/abort.js +3 -3
  470. package/dist/process/lock-manager.js +8 -8
  471. package/dist/process/spawn/_internal.js +6 -8
  472. package/dist/process/spawn/child.js +20 -14
  473. package/dist/process/spawn/errors.js +3 -5
  474. package/dist/process/spawn/kill-tree.d.ts +53 -0
  475. package/dist/process/spawn/kill-tree.js +85 -0
  476. package/dist/process/spawn/stdio.js +0 -1
  477. package/dist/process/spawn/types.d.ts +5 -5
  478. package/dist/process/transient.js +2 -2
  479. package/dist/promises/_internal.d.ts +2 -1
  480. package/dist/promises/_internal.js +2 -6
  481. package/dist/promises/iterate.js +11 -15
  482. package/dist/promises/options.js +3 -6
  483. package/dist/promises/retry.js +4 -5
  484. package/dist/promises/timers.d.ts +30 -0
  485. package/dist/promises/timers.js +48 -0
  486. package/dist/regexps/spec.js +1 -1
  487. package/dist/releases/github-archives.d.ts +6 -6
  488. package/dist/releases/github-archives.js +3 -3
  489. package/dist/releases/github-asset-url.d.ts +1 -1
  490. package/dist/releases/github-asset-url.js +5 -5
  491. package/dist/releases/github-downloads.d.ts +1 -1
  492. package/dist/releases/github-downloads.js +3 -3
  493. package/dist/releases/github-listing.d.ts +12 -4
  494. package/dist/releases/github-listing.js +20 -7
  495. package/dist/releases/github-retry-config.js +1 -1
  496. package/dist/releases/github-types.d.ts +6 -6
  497. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  498. package/dist/releases/socket-btm-binary-naming.js +155 -0
  499. package/dist/releases/socket-btm.d.ts +8 -115
  500. package/dist/releases/socket-btm.js +16 -159
  501. package/dist/schema/types.d.ts +4 -5
  502. package/dist/schema/validate.js +1 -1
  503. package/dist/sea/detect.js +6 -6
  504. package/dist/secrets/_internal.d.ts +2 -2
  505. package/dist/secrets/_internal.js +2 -2
  506. package/dist/secrets/compare.d.ts +45 -0
  507. package/dist/secrets/compare.js +61 -0
  508. package/dist/secrets/find.d.ts +2 -2
  509. package/dist/secrets/find.js +10 -4
  510. package/dist/secrets/keychain.d.ts +1 -1
  511. package/dist/secrets/keychain.js +6 -4
  512. package/dist/secrets/linux.js +40 -52
  513. package/dist/secrets/macos.d.ts +2 -3
  514. package/dist/secrets/macos.js +24 -33
  515. package/dist/secrets/rc.d.ts +4 -4
  516. package/dist/secrets/rc.js +27 -17
  517. package/dist/secrets/socket-api-token.d.ts +4 -4
  518. package/dist/secrets/socket-api-token.js +26 -9
  519. package/dist/secrets/windows.js +32 -37
  520. package/dist/shadow/skip.js +2 -2
  521. package/dist/shell/parse.d.ts +32 -0
  522. package/dist/shell/parse.js +60 -0
  523. package/dist/smol/detect.js +9 -10
  524. package/dist/smol/http.js +6 -7
  525. package/dist/smol/https.js +6 -7
  526. package/dist/smol/manifest.d.ts +1 -1
  527. package/dist/smol/manifest.js +6 -7
  528. package/dist/smol/path.d.ts +1 -1
  529. package/dist/smol/path.js +7 -8
  530. package/dist/smol/primordial.d.ts +4 -0
  531. package/dist/smol/primordial.js +6 -7
  532. package/dist/smol/purl.d.ts +1 -1
  533. package/dist/smol/purl.js +7 -8
  534. package/dist/smol/versions.js +6 -7
  535. package/dist/smol/vfs.js +6 -7
  536. package/dist/sorts/_internal.js +6 -8
  537. package/dist/sorts/natural.js +10 -12
  538. package/dist/sorts/semver.js +1 -2
  539. package/dist/sorts/strings.js +0 -1
  540. package/dist/sorts/types.d.ts +1 -1
  541. package/dist/spinner/create-spinner-class.d.ts +38 -0
  542. package/dist/spinner/create-spinner-class.js +302 -0
  543. package/dist/spinner/default.js +8 -9
  544. package/dist/spinner/spinner-internals.d.ts +36 -0
  545. package/dist/spinner/spinner-internals.js +105 -0
  546. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  547. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  548. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  549. package/dist/spinner/spinner-status-methods.js +133 -0
  550. package/dist/spinner/spinner.d.ts +8 -5
  551. package/dist/spinner/spinner.js +19 -706
  552. package/dist/spinner/types.d.ts +3 -1
  553. package/dist/spinner/with.d.ts +10 -0
  554. package/dist/spinner/with.js +16 -2
  555. package/dist/stdio/divider.js +1 -1
  556. package/dist/stdio/footer.js +3 -3
  557. package/dist/stdio/header.js +4 -4
  558. package/dist/stdio/progress.js +10 -6
  559. package/dist/stdio/prompts.d.ts +7 -5
  560. package/dist/stdio/prompts.js +7 -8
  561. package/dist/stdio/stdout.js +3 -3
  562. package/dist/streams/parallel.js +3 -5
  563. package/dist/streams/transform.js +2 -3
  564. package/dist/strings/format.js +2 -6
  565. package/dist/strings/predicates.js +0 -2
  566. package/dist/strings/search.js +1 -2
  567. package/dist/strings/transform.js +0 -3
  568. package/dist/strings/width.js +9 -10
  569. package/dist/tables/bordered.js +4 -3
  570. package/dist/tables/padding.js +1 -1
  571. package/dist/tables/simple.js +8 -5
  572. package/dist/temporal/instant.js +1 -1
  573. package/dist/temporal/slots.js +6 -6
  574. package/dist/temporal/system.js +9 -9
  575. package/dist/themes/context.d.ts +3 -2
  576. package/dist/themes/context.js +4 -5
  577. package/dist/themes/themes.js +15 -15
  578. package/dist/themes/types.d.ts +3 -3
  579. package/dist/url/assert-safe.d.ts +29 -0
  580. package/dist/url/assert-safe.js +54 -0
  581. package/dist/url/parse.js +0 -2
  582. package/dist/url/predicates.d.ts +31 -1
  583. package/dist/url/predicates.js +43 -3
  584. package/dist/url/search-params.js +3 -9
  585. package/dist/url/types.d.ts +9 -5
  586. package/dist/versions/_internal.js +3 -3
  587. package/dist/words/article.js +0 -1
  588. package/dist/words/capitalize.js +0 -1
  589. package/dist/words/pluralize.js +15 -5
  590. package/package.json +419 -216
  591. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  592. package/dist/external-tools/uv/asset-names.js +0 -70
  593. package/dist/external-tools/uv/from-download.d.ts +0 -17
  594. package/dist/external-tools/uv/from-download.js +0 -47
  595. package/dist/external-tools/uv/from-path.d.ts +0 -5
  596. package/dist/external-tools/uv/from-path.js +0 -22
  597. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  598. package/dist/external-tools/uv/from-vfs.js +0 -26
  599. package/dist/external-tools/uv/resolve.d.ts +0 -25
  600. package/dist/external-tools/uv/resolve.js +0 -53
  601. package/dist/external-tools/uv/types.d.ts +0 -24
  602. package/dist/fs/path-cache.d.ts +0 -21
  603. package/dist/fs/path-cache.js +0 -34
  604. package/dist/http-request/checksums.d.ts +0 -69
  605. package/dist/http-request/checksums.js +0 -108
  606. package/dist/http-request/http-request.d.ts +0 -12
  607. package/dist/http-request/http-request.js +0 -11
  608. package/dist/packages/operations.d.ts +0 -113
  609. package/dist/packages/operations.js +0 -304
  610. package/dist/ssri/convert.d.ts +0 -48
  611. package/dist/ssri/convert.js +0 -69
  612. package/dist/ssri/parse.d.ts +0 -27
  613. package/dist/ssri/parse.js +0 -41
  614. package/dist/ssri/validate.d.ts +0 -41
  615. package/dist/ssri/validate.js +0 -56
  616. /package/dist/{bin → cli}/check.d.ts +0 -0
  617. /package/dist/external-tools/{uv → python}/types.js +0 -0
  618. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  619. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -68,5 +68,5 @@ export declare function fetchReleaseAssetsViaGraphQL(owner: string, repo: string
68
68
  * false.
69
69
  */
70
70
  export declare function getReleaseAssetUrl(tag: string, assetPattern: string | AssetPattern, repoConfig: RepoConfig, options?: {
71
- nothrow?: boolean;
71
+ nothrow?: boolean | undefined;
72
72
  }): Promise<string | undefined>;
@@ -123,10 +123,10 @@ async function getReleaseAssetUrl(tag, assetPattern, repoConfig, options = {}) {
123
123
  /* c8 ignore start */
124
124
  const isMatch = typeof assetPattern === "string" && !assetPattern.includes("*") && !assetPattern.includes("{") ? (input) => input === assetPattern : require_releases_github_assets.createAssetMatcher(assetPattern);
125
125
  /* c8 ignore stop */
126
- const assets = await /* @__PURE__ */ require_promises_retry.pRetry(async () => {
126
+ const assets = await require_promises_retry.pRetry(async () => {
127
127
  const response = await require_http_request_request.httpRequest(`https://api.github.com/repos/${owner}/${repo}/releases/tags/${tag}`, { headers: require_releases_github_auth.getAuthHeaders() });
128
128
  if (!response.ok) throw new require_primordials_error.ErrorCtor(`Failed to fetch ${owner}/${repo} release ${tag}: ${response.status}`);
129
- let assets;
129
+ let resolvedAssets;
130
130
  if (response.body.byteLength === 0) {
131
131
  let fallbackAssets;
132
132
  try {
@@ -142,7 +142,7 @@ async function getReleaseAssetUrl(tag, assetPattern, repoConfig, options = {}) {
142
142
  if (nothrow) return;
143
143
  throw new require_primordials_error.ErrorCtor(`Release ${tag} not found in ${owner}/${repo}`);
144
144
  }
145
- assets = fallbackAssets;
145
+ resolvedAssets = fallbackAssets;
146
146
  } else {
147
147
  let release;
148
148
  try {
@@ -151,9 +151,9 @@ async function getReleaseAssetUrl(tag, assetPattern, repoConfig, options = {}) {
151
151
  throw new require_primordials_error.ErrorCtor(`Failed to parse ${owner}/${repo} release ${tag} response`, { cause });
152
152
  }
153
153
  if (!require_primordials_array.ArrayIsArray(release.assets)) throw new require_primordials_error.ErrorCtor(`Release ${tag} has no assets in ${owner}/${repo}`);
154
- assets = release.assets;
154
+ resolvedAssets = release.assets;
155
155
  }
156
- return assets;
156
+ return resolvedAssets;
157
157
  }, require_releases_github_retry_config.GITHUB_RETRY_CONFIG);
158
158
  if (!assets) {
159
159
  if (nothrow) return;
@@ -43,5 +43,5 @@ export declare function downloadGitHubRelease(config: DownloadGitHubReleaseConfi
43
43
  * @param options - Additional options.
44
44
  */
45
45
  export declare function downloadReleaseAsset(tag: string, assetPattern: string | AssetPattern, outputPath: string, repoConfig: RepoConfig, options?: {
46
- quiet?: boolean;
46
+ quiet?: boolean | undefined;
47
47
  }): Promise<void>;
@@ -52,11 +52,11 @@ async function downloadGitHubRelease(config) {
52
52
  if (!latestTag) throw new require_primordials_error.ErrorCtor(`No ${toolPrefix} release found in ${owner}/${repo}`);
53
53
  tag = latestTag;
54
54
  } else throw new require_primordials_error.ErrorCtor("Either toolPrefix or tag must be provided");
55
- const path = /* @__PURE__ */ require_node_path.getNodePath();
55
+ const path = require_node_path.getNodePath();
56
56
  const binaryDir = path.isAbsolute(downloadDir) ? downloadDir : path.join(cwd, downloadDir);
57
57
  const binaryPath = path.join(binaryDir, binaryName);
58
58
  const versionPath = path.join(binaryDir, ".version");
59
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
59
+ const fs = require_node_fs.getNodeFs();
60
60
  if (fs.existsSync(versionPath) && fs.existsSync(binaryPath)) {
61
61
  if ((await fs.promises.readFile(versionPath, "utf8")).trim() === tag && fs.existsSync(binaryPath)) {
62
62
  if (!quiet) logger.info(`Using cached ${toolName} (${platformArch}): ${binaryPath}`);
@@ -109,7 +109,7 @@ async function downloadReleaseAsset(tag, assetPattern, outputPath, repoConfig, o
109
109
  repo
110
110
  });
111
111
  if (!downloadUrl) throw new require_primordials_error.ErrorCtor(`Asset ${typeof assetPattern === "string" ? assetPattern : "matching pattern"} not found in release ${tag}`);
112
- await require_fs_safe.safeMkdir((/* @__PURE__ */ require_node_path.getNodePath()).dirname(outputPath));
112
+ await require_fs_safe.safeMkdir(require_node_path.getNodePath().dirname(outputPath));
113
113
  await require_http_request_download.httpDownload(downloadUrl, outputPath, {
114
114
  logger: quiet ? void 0 : logger,
115
115
  progressInterval: 10,
@@ -17,7 +17,7 @@ import type { AssetPattern, RepoConfig } from './github-types';
17
17
  * output to this shape so downstream code is unaware of which transport
18
18
  * produced the data.
19
19
  */
20
- interface ReleaseRow {
20
+ export interface ReleaseRow {
21
21
  tag_name: string;
22
22
  published_at: string;
23
23
  assets: Array<{
@@ -99,7 +99,15 @@ export declare function fetchReleasesViaRest(owner: string, repo: string): Promi
99
99
  * false.
100
100
  */
101
101
  export declare function getLatestRelease(toolPrefix: string, repoConfig: RepoConfig, options?: {
102
- assetPattern?: AssetPattern;
103
- nothrow?: boolean;
102
+ assetPattern?: AssetPattern | undefined;
103
+ nothrow?: boolean | undefined;
104
104
  }): Promise<string | undefined>;
105
- export {};
105
+ /**
106
+ * Normalize an `httpRequest` response body to a parsed value. `body` may be a
107
+ * Buffer / string (older paths) OR — depending on the response's content-type
108
+ * handling — an already-parsed object/array. Calling `body.toString('utf8')` +
109
+ * JSON.parse on an already-parsed object yields `"[object Object]"` and throws
110
+ * (the "Failed to parse … releases response" build failure). Pass through
111
+ * non-string/Buffer bodies; parse the rest. Throws on genuine parse failure.
112
+ */
113
+ export declare function parseResponseBody(body: unknown): unknown;
@@ -75,7 +75,7 @@ async function fetchReleasesViaGraphQL(owner, repo) {
75
75
  if (!response.ok) throw new require_primordials_error.ErrorCtor(`Failed to fetch ${owner}/${repo} releases (GraphQL): ${response.status}`);
76
76
  let parsed;
77
77
  try {
78
- parsed = require_primordials_json.JSONParse(response.body.toString("utf8"));
78
+ parsed = parseResponseBody(response.body);
79
79
  } catch (cause) {
80
80
  throw new require_primordials_error.ErrorCtor(`Failed to parse GitHub GraphQL response for ${owner}/${repo} releases`, { cause });
81
81
  }
@@ -115,15 +115,15 @@ async function fetchReleasesViaGraphQL(owner, repo) {
115
115
  async function fetchReleasesViaRest(owner, repo) {
116
116
  const response = await require_http_request_request.httpRequest(`https://api.github.com/repos/${owner}/${repo}/releases?per_page=100`, { headers: require_releases_github_auth.getAuthHeaders() });
117
117
  if (!response.ok) throw new require_primordials_error.ErrorCtor(`Failed to fetch ${owner}/${repo} releases: ${response.status}`);
118
- const text = response.body.toString("utf8");
119
- if (text.length === 0) return [];
118
+ const body = response.body;
119
+ if (Buffer.isBuffer(body) && body.length === 0 || typeof body === "string" && body.length === 0) return [];
120
120
  let parsed;
121
121
  try {
122
- parsed = require_primordials_json.JSONParse(text);
122
+ parsed = parseResponseBody(body);
123
123
  } catch (cause) {
124
124
  throw new require_primordials_error.ErrorCtor(`Failed to parse ${owner}/${repo} releases response`, { cause });
125
125
  }
126
- /* c8 ignore start */
126
+ /* c8 ignore start - non-array fallback only reachable via the GraphQL path's shape, not REST */
127
127
  return require_primordials_array.ArrayIsArray(parsed) ? parsed : [];
128
128
  /* c8 ignore stop */
129
129
  }
@@ -157,7 +157,7 @@ async function getLatestRelease(toolPrefix, repoConfig, options = {}) {
157
157
  const { assetPattern, nothrow = false } = options;
158
158
  const { owner, repo } = repoConfig;
159
159
  const isMatch = assetPattern ? require_releases_github_assets.createAssetMatcher(assetPattern) : void 0;
160
- return await /* @__PURE__ */ require_promises_retry.pRetry(async () => {
160
+ return await require_promises_retry.pRetry(async () => {
161
161
  let releases = await fetchReleasesViaRest(owner, repo);
162
162
  if (releases.length === 0) {
163
163
  let graphqlReleases;
@@ -185,8 +185,21 @@ async function getLatestRelease(toolPrefix, repoConfig, options = {}) {
185
185
  return matchingReleases[0].tag_name;
186
186
  }, require_releases_github_retry_config.GITHUB_RETRY_CONFIG) ?? void 0;
187
187
  }
188
+ /**
189
+ * Normalize an `httpRequest` response body to a parsed value. `body` may be a
190
+ * Buffer / string (older paths) OR — depending on the response's content-type
191
+ * handling — an already-parsed object/array. Calling `body.toString('utf8')` +
192
+ * JSON.parse on an already-parsed object yields `"[object Object]"` and throws
193
+ * (the "Failed to parse … releases response" build failure). Pass through
194
+ * non-string/Buffer bodies; parse the rest. Throws on genuine parse failure.
195
+ */
196
+ function parseResponseBody(body) {
197
+ if (body !== null && typeof body === "object" && !Buffer.isBuffer(body)) return body;
198
+ return require_primordials_json.JSONParse(Buffer.isBuffer(body) ? body.toString("utf8") : typeof body === "string" ? body : String(body));
199
+ }
188
200
 
189
201
  //#endregion
190
202
  exports.fetchReleasesViaGraphQL = fetchReleasesViaGraphQL;
191
203
  exports.fetchReleasesViaRest = fetchReleasesViaRest;
192
- exports.getLatestRelease = getLatestRelease;
204
+ exports.getLatestRelease = getLatestRelease;
205
+ exports.parseResponseBody = parseResponseBody;
@@ -31,7 +31,7 @@ const DEFAULT_BASE_DELAY_MS = 5e3;
31
31
  * @returns The configured base delay in milliseconds.
32
32
  */
33
33
  function resolveBaseDelayMs() {
34
- return /* @__PURE__ */ require_env_number.envAsNumber(require_env_rewire.getEnvValue("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"), DEFAULT_BASE_DELAY_MS);
34
+ return require_env_number.envAsNumber(require_env_rewire.getEnvValue("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"), DEFAULT_BASE_DELAY_MS);
35
35
  }
36
36
  const GITHUB_RETRY_CONFIG = require_primordials_object.ObjectFreeze({
37
37
  __proto__: null,
@@ -39,11 +39,11 @@ export interface DownloadGitHubReleaseConfig {
39
39
  /**
40
40
  * Working directory (defaults to process.cwd()).
41
41
  */
42
- cwd?: string;
42
+ cwd?: string | undefined;
43
43
  /**
44
44
  * Download destination directory. @default 'build/downloaded'
45
45
  */
46
- downloadDir?: string;
46
+ downloadDir?: string | undefined;
47
47
  /**
48
48
  * GitHub repository owner/organization.
49
49
  */
@@ -55,11 +55,11 @@ export interface DownloadGitHubReleaseConfig {
55
55
  /**
56
56
  * Suppress log messages. @default false.
57
57
  */
58
- quiet?: boolean;
58
+ quiet?: boolean | undefined;
59
59
  /**
60
60
  * Remove macOS quarantine attribute after download. @default true.
61
61
  */
62
- removeMacOSQuarantine?: boolean;
62
+ removeMacOSQuarantine?: boolean | undefined;
63
63
  /**
64
64
  * GitHub repository name.
65
65
  */
@@ -67,7 +67,7 @@ export interface DownloadGitHubReleaseConfig {
67
67
  /**
68
68
  * Specific release tag to download.
69
69
  */
70
- tag?: string;
70
+ tag?: string | undefined;
71
71
  /**
72
72
  * Tool name for directory structure.
73
73
  */
@@ -75,7 +75,7 @@ export interface DownloadGitHubReleaseConfig {
75
75
  /**
76
76
  * Tool prefix for finding latest release.
77
77
  */
78
- toolPrefix?: string;
78
+ toolPrefix?: string | undefined;
79
79
  }
80
80
  /**
81
81
  * Configuration for repository access.
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @file Socket-btm binary asset/platform-arch naming helpers.
3
+ */
4
+ import type { Arch, Libc, Platform } from '../constants/platform';
5
+ /**
6
+ * Get asset name for a socket-btm binary.
7
+ *
8
+ * @example
9
+ * ;```typescript
10
+ * getBinaryAssetName('lief', 'linux', 'x64', 'musl')
11
+ * // 'lief-linux-x64-musl'
12
+ * ```
13
+ *
14
+ * @param binaryBaseName - Binary basename (e.g., 'binject', 'node')
15
+ * @param platform - Target platform.
16
+ * @param arch - Target architecture.
17
+ * @param libc - Linux libc variant (optional)
18
+ *
19
+ * @returns Asset name (e.g., 'binject-darwin-arm64', 'node-linux-x64-musl')
20
+ */
21
+ export declare function getBinaryAssetName(binaryBaseName: string, platform: Platform, arch: Arch, libc?: Libc | undefined): string;
22
+ /**
23
+ * Get binary filename for output.
24
+ *
25
+ * @example
26
+ * ;```typescript
27
+ * getBinaryName('node', 'win32') // 'node.exe'
28
+ * getBinaryName('node', 'linux') // 'node'
29
+ * ```
30
+ *
31
+ * @param binaryBaseName - Binary basename (e.g., 'node', 'binject')
32
+ * @param platform - Target platform.
33
+ *
34
+ * @returns Binary filename (e.g., 'node', 'node.exe')
35
+ */
36
+ export declare function getBinaryName(binaryBaseName: string, platform: Platform): string;
37
+ /**
38
+ * Get platform-arch identifier for directory structure and asset names.
39
+ *
40
+ * # Format: `<os>-<arch>[-<libc>]`
41
+ *
42
+ * The OS segment is `process.platform` verbatim: `darwin` / `linux` / `win32`.
43
+ * The arch segment is `process.arch` verbatim: `x64` / `arm64`. The optional
44
+ * libc suffix is `-musl` (Linux only; the glibc default is unsuffixed to match
45
+ * Node.js's own linuxstatic convention).
46
+ *
47
+ * # Why these specific conventions
48
+ *
49
+ * ## Why `win32`, not `win`
50
+ *
51
+ * `win32` is what `process.platform` returns on every Windows host. Every npm
52
+ * package whose install-time platform filter uses the standard `os` / `cpu` /
53
+ * `libc` manifest fields must match `process.platform` strings exactly (npm
54
+ * compares them verbatim — there's no shorthand layer). Using `win` internally
55
+ * here would have forced a translation every time we constructed an install
56
+ * filter or a target triple, and reviewers would have to remember "we
57
+ * abbreviate on disk but not in package filters." Since the two now match,
58
+ * there's no translation step to get wrong.
59
+ *
60
+ * Pnpm's pack-app (v11+) accepts `<os>-<arch>[-<libc>]` target strings and its
61
+ * shards are `@pnpm/exe.<os>-<arch>` (with `win32`, not `win` — see
62
+ * pnpm#11314). Our naming matches so asset names we emit can flow directly into
63
+ * pack-app's `--target` arg, `pnpm.app.targets` config, and
64
+ * sibling-package-name construction without a translation map.
65
+ *
66
+ * ## Why `-musl` is the suffix (and glibc is unsuffixed)
67
+ *
68
+ * Node.js's own linuxstatic tarballs historically used the unqualified `linux`
69
+ * for glibc and a separate download channel for musl. The pnpm ecosystem
70
+ * codified that as `linux-<arch>` (glibc, default) and `linux-<arch>-musl` (the
71
+ * libc outlier), matching the asymmetric reality of Linux distros — glibc is
72
+ * the majority case, musl is Alpine-and-similar. Adding `-glibc` for the
73
+ * default would be redundant noise in the name.
74
+ *
75
+ * ## Why libc is only appended for Linux
76
+ *
77
+ * MacOS and Windows have exactly one system libc each (Apple libSystem,
78
+ * Microsoft UCRT). A hypothetical `darwin-arm64-libsystem` conveys no
79
+ * information. Node.js, npm, and pnpm all treat libc as a Linux-only axis; we
80
+ * follow the same convention so callers don't have to special- case
81
+ * `'darwin-arm64'.startsWith('darwin-arm64')` style matches.
82
+ *
83
+ * ## Why this function exists at all (vs. inlining)
84
+ *
85
+ * Two upstream APIs that socket-btm consumers end up calling — the npm manifest
86
+ * filter (`os`/`cpu`/`libc`) and pnpm's pack-app `--target` — both need the
87
+ * exact same triple format. Centralizing the construction here means a future
88
+ * schema change (e.g. Node introducing `riscv64`) gets one edit, and the error
89
+ * message for an unsupported platform is uniform across downloaders, pack-app
90
+ * invocations, and the `@socketbin/*` resolver logic.
91
+ *
92
+ * @example
93
+ * ;```typescript
94
+ * getPlatformArch('linux', 'x64', 'musl') // 'linux-x64-musl'
95
+ * getPlatformArch('darwin', 'arm64') // 'darwin-arm64'
96
+ * getPlatformArch('win32', 'x64') // 'win32-x64'
97
+ * getPlatformArch('darwin', 'x64', 'musl') // 'darwin-x64' — libc ignored
98
+ * ```
99
+ *
100
+ * @param platform - Target platform.
101
+ * @param arch - Target architecture.
102
+ * @param libc - Linux libc variant (optional; non-linux platforms ignore)
103
+ *
104
+ * @returns Platform-arch identifier (e.g., 'darwin-arm64', 'linux-x64-musl',
105
+ * 'win32-x64')
106
+ */
107
+ export declare function getPlatformArch(platform: Platform, arch: Arch, libc?: Libc | undefined): string;
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+
6
+ //#region src/releases/socket-btm-binary-naming.ts
7
+ /**
8
+ * Map Node.js platform to socket-btm asset platform naming. Identity mapping:
9
+ * asset names use `process.platform` verbatim (`darwin`, `linux`, `win32`) to
10
+ * align with pnpm's pack-app, the `--os` / `supportedArchitectures.os` config
11
+ * keys, and the `@pnpm/exe.<os>-<arch>` package convention.
12
+ */
13
+ const PLATFORM_MAP = {
14
+ __proto__: null,
15
+ darwin: "darwin",
16
+ linux: "linux",
17
+ win32: "win32"
18
+ };
19
+ /**
20
+ * Map Node.js arch to socket-btm asset arch naming.
21
+ */
22
+ const ARCH_MAP = {
23
+ __proto__: null,
24
+ arm64: "arm64",
25
+ x64: "x64"
26
+ };
27
+ /**
28
+ * Get asset name for a socket-btm binary.
29
+ *
30
+ * @example
31
+ * ;```typescript
32
+ * getBinaryAssetName('lief', 'linux', 'x64', 'musl')
33
+ * // 'lief-linux-x64-musl'
34
+ * ```
35
+ *
36
+ * @param binaryBaseName - Binary basename (e.g., 'binject', 'node')
37
+ * @param platform - Target platform.
38
+ * @param arch - Target architecture.
39
+ * @param libc - Linux libc variant (optional)
40
+ *
41
+ * @returns Asset name (e.g., 'binject-darwin-arm64', 'node-linux-x64-musl')
42
+ */
43
+ function getBinaryAssetName(binaryBaseName, platform, arch, libc) {
44
+ const mappedArch = ARCH_MAP[arch];
45
+ if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
46
+ const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
47
+ const ext = platform === "win32" ? ".exe" : "";
48
+ if (platform === "darwin") return `${binaryBaseName}-darwin-${mappedArch}${ext}`;
49
+ if (platform === "linux") return `${binaryBaseName}-linux-${mappedArch}${muslSuffix}${ext}`;
50
+ if (platform === "win32") return `${binaryBaseName}-win32-${mappedArch}${ext}`;
51
+ throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
52
+ }
53
+ /**
54
+ * Get binary filename for output.
55
+ *
56
+ * @example
57
+ * ;```typescript
58
+ * getBinaryName('node', 'win32') // 'node.exe'
59
+ * getBinaryName('node', 'linux') // 'node'
60
+ * ```
61
+ *
62
+ * @param binaryBaseName - Binary basename (e.g., 'node', 'binject')
63
+ * @param platform - Target platform.
64
+ *
65
+ * @returns Binary filename (e.g., 'node', 'node.exe')
66
+ */
67
+ function getBinaryName(binaryBaseName, platform) {
68
+ return platform === "win32" ? `${binaryBaseName}.exe` : binaryBaseName;
69
+ }
70
+ /**
71
+ * Get platform-arch identifier for directory structure and asset names.
72
+ *
73
+ * # Format: `<os>-<arch>[-<libc>]`
74
+ *
75
+ * The OS segment is `process.platform` verbatim: `darwin` / `linux` / `win32`.
76
+ * The arch segment is `process.arch` verbatim: `x64` / `arm64`. The optional
77
+ * libc suffix is `-musl` (Linux only; the glibc default is unsuffixed to match
78
+ * Node.js's own linuxstatic convention).
79
+ *
80
+ * # Why these specific conventions
81
+ *
82
+ * ## Why `win32`, not `win`
83
+ *
84
+ * `win32` is what `process.platform` returns on every Windows host. Every npm
85
+ * package whose install-time platform filter uses the standard `os` / `cpu` /
86
+ * `libc` manifest fields must match `process.platform` strings exactly (npm
87
+ * compares them verbatim — there's no shorthand layer). Using `win` internally
88
+ * here would have forced a translation every time we constructed an install
89
+ * filter or a target triple, and reviewers would have to remember "we
90
+ * abbreviate on disk but not in package filters." Since the two now match,
91
+ * there's no translation step to get wrong.
92
+ *
93
+ * Pnpm's pack-app (v11+) accepts `<os>-<arch>[-<libc>]` target strings and its
94
+ * shards are `@pnpm/exe.<os>-<arch>` (with `win32`, not `win` — see
95
+ * pnpm#11314). Our naming matches so asset names we emit can flow directly into
96
+ * pack-app's `--target` arg, `pnpm.app.targets` config, and
97
+ * sibling-package-name construction without a translation map.
98
+ *
99
+ * ## Why `-musl` is the suffix (and glibc is unsuffixed)
100
+ *
101
+ * Node.js's own linuxstatic tarballs historically used the unqualified `linux`
102
+ * for glibc and a separate download channel for musl. The pnpm ecosystem
103
+ * codified that as `linux-<arch>` (glibc, default) and `linux-<arch>-musl` (the
104
+ * libc outlier), matching the asymmetric reality of Linux distros — glibc is
105
+ * the majority case, musl is Alpine-and-similar. Adding `-glibc` for the
106
+ * default would be redundant noise in the name.
107
+ *
108
+ * ## Why libc is only appended for Linux
109
+ *
110
+ * MacOS and Windows have exactly one system libc each (Apple libSystem,
111
+ * Microsoft UCRT). A hypothetical `darwin-arm64-libsystem` conveys no
112
+ * information. Node.js, npm, and pnpm all treat libc as a Linux-only axis; we
113
+ * follow the same convention so callers don't have to special- case
114
+ * `'darwin-arm64'.startsWith('darwin-arm64')` style matches.
115
+ *
116
+ * ## Why this function exists at all (vs. inlining)
117
+ *
118
+ * Two upstream APIs that socket-btm consumers end up calling — the npm manifest
119
+ * filter (`os`/`cpu`/`libc`) and pnpm's pack-app `--target` — both need the
120
+ * exact same triple format. Centralizing the construction here means a future
121
+ * schema change (e.g. Node introducing `riscv64`) gets one edit, and the error
122
+ * message for an unsupported platform is uniform across downloaders, pack-app
123
+ * invocations, and the `@socketbin/*` resolver logic.
124
+ *
125
+ * @example
126
+ * ;```typescript
127
+ * getPlatformArch('linux', 'x64', 'musl') // 'linux-x64-musl'
128
+ * getPlatformArch('darwin', 'arm64') // 'darwin-arm64'
129
+ * getPlatformArch('win32', 'x64') // 'win32-x64'
130
+ * getPlatformArch('darwin', 'x64', 'musl') // 'darwin-x64' — libc ignored
131
+ * ```
132
+ *
133
+ * @param platform - Target platform.
134
+ * @param arch - Target architecture.
135
+ * @param libc - Linux libc variant (optional; non-linux platforms ignore)
136
+ *
137
+ * @returns Platform-arch identifier (e.g., 'darwin-arm64', 'linux-x64-musl',
138
+ * 'win32-x64')
139
+ */
140
+ function getPlatformArch(platform, arch, libc) {
141
+ /* c8 ignore start - Unsupported-platform/arch arms fire only on inputs
142
+ outside the PLATFORM_MAP / ARCH_MAP keysets; the musl-suffix arm fires
143
+ only on linux+musl combos. */
144
+ const mappedPlatform = PLATFORM_MAP[platform];
145
+ if (!mappedPlatform) throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
146
+ const mappedArch = ARCH_MAP[arch];
147
+ if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
148
+ return `${mappedPlatform}-${mappedArch}${platform === "linux" && libc === "musl" ? "-musl" : ""}`;
149
+ /* c8 ignore stop */
150
+ }
151
+
152
+ //#endregion
153
+ exports.getBinaryAssetName = getBinaryAssetName;
154
+ exports.getBinaryName = getBinaryName;
155
+ exports.getPlatformArch = getPlatformArch;
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * @file Socket-btm release download utilities.
3
3
  */
4
- import { type Arch, type Libc, type Platform } from '../constants/platform';
4
+ import type { Arch, Libc, Platform } from '../constants/platform';
5
+ import { getBinaryAssetName, getBinaryName, getPlatformArch } from './socket-btm-binary-naming';
5
6
  import type { AssetPattern } from './github-types';
6
7
  export type { Arch, Libc, Platform };
8
+ export { getBinaryAssetName, getBinaryName, getPlatformArch };
7
9
  /**
8
10
  * Socket-btm GitHub repository configuration.
9
11
  */
@@ -22,7 +24,7 @@ export interface SocketBtmAssetConfig {
22
24
  /**
23
25
  * @internal Discriminator fields
24
26
  */
25
- bin?: never;
27
+ bin?: never | undefined;
26
28
  /**
27
29
  * Working directory (defaults to process.cwd()).
28
30
  */
@@ -34,7 +36,7 @@ export interface SocketBtmAssetConfig {
34
36
  /**
35
37
  * @internal Discriminator fields
36
38
  */
37
- libc?: never;
39
+ libc?: never | undefined;
38
40
  /**
39
41
  * Output filename. @default resolved asset name.
40
42
  */
@@ -54,11 +56,11 @@ export interface SocketBtmAssetConfig {
54
56
  /**
55
57
  * @internal Discriminator fields
56
58
  */
57
- targetArch?: never;
59
+ targetArch?: never | undefined;
58
60
  /**
59
61
  * @internal Discriminator fields
60
62
  */
61
- targetPlatform?: never;
63
+ targetPlatform?: never | undefined;
62
64
  }
63
65
  /**
64
66
  * Configuration for downloading socket-btm binary releases.
@@ -67,7 +69,7 @@ export interface SocketBtmBinaryConfig {
67
69
  /**
68
70
  * @internal Discriminator field
69
71
  */
70
- asset?: never;
72
+ asset?: never | undefined;
71
73
  /**
72
74
  * Binary/executable name (without extension). @default tool.
73
75
  */
@@ -138,112 +140,3 @@ export declare function detectLibc(): Libc | undefined;
138
140
  * @returns Path to the downloaded file
139
141
  */
140
142
  export declare function downloadSocketBtmRelease(tool: string, options: SocketBtmReleaseConfig | undefined): Promise<string>;
141
- /**
142
- * Get asset name for a socket-btm binary.
143
- *
144
- * @example
145
- * ;```typescript
146
- * getBinaryAssetName('lief', 'linux', 'x64', 'musl')
147
- * // 'lief-linux-x64-musl'
148
- * ```
149
- *
150
- * @param binaryBaseName - Binary basename (e.g., 'binject', 'node')
151
- * @param platform - Target platform.
152
- * @param arch - Target architecture.
153
- * @param libc - Linux libc variant (optional)
154
- *
155
- * @returns Asset name (e.g., 'binject-darwin-arm64', 'node-linux-x64-musl')
156
- */
157
- export declare function getBinaryAssetName(binaryBaseName: string, platform: Platform, arch: Arch, libc?: Libc | undefined): string;
158
- /**
159
- * Get binary filename for output.
160
- *
161
- * @example
162
- * ;```typescript
163
- * getBinaryName('node', 'win32') // 'node.exe'
164
- * getBinaryName('node', 'linux') // 'node'
165
- * ```
166
- *
167
- * @param binaryBaseName - Binary basename (e.g., 'node', 'binject')
168
- * @param platform - Target platform.
169
- *
170
- * @returns Binary filename (e.g., 'node', 'node.exe')
171
- */
172
- export declare function getBinaryName(binaryBaseName: string, platform: Platform): string;
173
- /**
174
- * Lazily load the fs module to avoid Webpack errors. Uses non-'node:' prefixed
175
- * require to prevent Webpack bundling issues.
176
- *
177
- * @private
178
- */
179
- /**
180
- * Get platform-arch identifier for directory structure and asset names.
181
- *
182
- * # Format: `<os>-<arch>[-<libc>]`
183
- *
184
- * The OS segment is `process.platform` verbatim: `darwin` / `linux` / `win32`.
185
- * The arch segment is `process.arch` verbatim: `x64` / `arm64`. The optional
186
- * libc suffix is `-musl` (Linux only; the glibc default is unsuffixed to match
187
- * Node.js's own linuxstatic convention).
188
- *
189
- * # Why these specific conventions
190
- *
191
- * ## Why `win32`, not `win`
192
- *
193
- * `win32` is what `process.platform` returns on every Windows host. Every npm
194
- * package whose install-time platform filter uses the standard `os` / `cpu` /
195
- * `libc` manifest fields must match `process.platform` strings exactly (npm
196
- * compares them verbatim — there's no shorthand layer). Using `win` internally
197
- * here would have forced a translation every time we constructed an install
198
- * filter or a target triple, and reviewers would have to remember "we
199
- * abbreviate on disk but not in package filters." Since the two now match,
200
- * there's no translation step to get wrong.
201
- *
202
- * Pnpm's pack-app (v11+) accepts `<os>-<arch>[-<libc>]` target strings and its
203
- * shards are `@pnpm/exe.<os>-<arch>` (with `win32`, not `win` — see
204
- * pnpm#11314). Our naming matches so asset names we emit can flow directly into
205
- * pack-app's `--target` arg, `pnpm.app.targets` config, and
206
- * sibling-package-name construction without a translation map.
207
- *
208
- * ## Why `-musl` is the suffix (and glibc is unsuffixed)
209
- *
210
- * Node.js's own linuxstatic tarballs historically used the unqualified `linux`
211
- * for glibc and a separate download channel for musl. The pnpm ecosystem
212
- * codified that as `linux-<arch>` (glibc, default) and `linux-<arch>-musl` (the
213
- * libc outlier), matching the asymmetric reality of Linux distros — glibc is
214
- * the majority case, musl is Alpine-and-similar. Adding `-glibc` for the
215
- * default would be redundant noise in the name.
216
- *
217
- * ## Why libc is only appended for Linux
218
- *
219
- * MacOS and Windows have exactly one system libc each (Apple libSystem,
220
- * Microsoft UCRT). A hypothetical `darwin-arm64-libsystem` conveys no
221
- * information. Node.js, npm, and pnpm all treat libc as a Linux-only axis; we
222
- * follow the same convention so callers don't have to special- case
223
- * `'darwin-arm64'.startsWith('darwin-arm64')` style matches.
224
- *
225
- * ## Why this function exists at all (vs. inlining)
226
- *
227
- * Two upstream APIs that socket-btm consumers end up calling — the npm manifest
228
- * filter (`os`/`cpu`/`libc`) and pnpm's pack-app `--target` — both need the
229
- * exact same triple format. Centralizing the construction here means a future
230
- * schema change (e.g. Node introducing `riscv64`) gets one edit, and the error
231
- * message for an unsupported platform is uniform across downloaders, pack-app
232
- * invocations, and the `@socketbin/*` resolver logic.
233
- *
234
- * @example
235
- * ;```typescript
236
- * getPlatformArch('linux', 'x64', 'musl') // 'linux-x64-musl'
237
- * getPlatformArch('darwin', 'arm64') // 'darwin-arm64'
238
- * getPlatformArch('win32', 'x64') // 'win32-x64'
239
- * getPlatformArch('darwin', 'x64', 'musl') // 'darwin-x64' — libc ignored
240
- * ```
241
- *
242
- * @param platform - Target platform.
243
- * @param arch - Target architecture.
244
- * @param libc - Linux libc variant (optional; non-linux platforms ignore)
245
- *
246
- * @returns Platform-arch identifier (e.g., 'darwin-arm64', 'linux-x64-musl',
247
- * 'win32-x64')
248
- */
249
- export declare function getPlatformArch(platform: Platform, arch: Arch, libc?: Libc | undefined): string;