@socketsecurity/lib 6.0.3 → 6.0.5

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 (542) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.js +94 -65
  6. package/dist/ai/spawn.js +172 -194
  7. package/dist/ai/types.js +1 -17
  8. package/dist/ai/worktree.js +160 -183
  9. package/dist/ansi/constants.js +16 -38
  10. package/dist/ansi/strip.js +44 -41
  11. package/dist/archives/_internal.js +64 -73
  12. package/dist/archives/detect.js +30 -43
  13. package/dist/archives/extract.js +43 -50
  14. package/dist/archives/tar.js +197 -228
  15. package/dist/archives/types.js +1 -17
  16. package/dist/archives/zip.js +85 -121
  17. package/dist/argv/flag-predicates.js +203 -101
  18. package/dist/argv/flag-types.js +96 -113
  19. package/dist/argv/parse-args-string.d.ts +16 -14
  20. package/dist/argv/parse-args-string.js +42 -39
  21. package/dist/argv/parse.js +145 -163
  22. package/dist/arrays/_internal.js +65 -48
  23. package/dist/arrays/chunk.js +51 -40
  24. package/dist/arrays/join.js +87 -35
  25. package/dist/arrays/predicates.js +46 -28
  26. package/dist/arrays/unique.js +45 -31
  27. package/dist/bin/_internal.js +34 -42
  28. package/dist/bin/check-primordials.js +175 -233
  29. package/dist/bin/check.js +51 -72
  30. package/dist/bin/exec.js +70 -74
  31. package/dist/bin/find.js +151 -134
  32. package/dist/bin/resolve.js +180 -246
  33. package/dist/bin/shadow.js +24 -33
  34. package/dist/bin/socket-lib.js +51 -73
  35. package/dist/bin/types.js +1 -17
  36. package/dist/bin/which.js +211 -146
  37. package/dist/cacache/_internal.js +25 -40
  38. package/dist/cacache/clear.js +79 -72
  39. package/dist/cacache/read.js +48 -46
  40. package/dist/cacache/tmp.js +29 -36
  41. package/dist/cacache/types.js +1 -17
  42. package/dist/cacache/write.js +43 -48
  43. package/dist/cache/ttl/store.js +232 -288
  44. package/dist/cache/ttl/types.js +1 -17
  45. package/dist/checks/primordials-defaults.js +83 -89
  46. package/dist/checks/primordials.js +225 -277
  47. package/dist/colors/convert.js +45 -37
  48. package/dist/colors/palette.js +88 -45
  49. package/dist/colors/socket-palette.js +74 -84
  50. package/dist/colors/types.js +1 -17
  51. package/dist/compression/_internal.js +57 -72
  52. package/dist/compression/brotli.js +94 -127
  53. package/dist/compression/gzip.js +95 -121
  54. package/dist/compression/types.js +1 -17
  55. package/dist/constants/agents.js +61 -113
  56. package/dist/constants/encoding.js +19 -42
  57. package/dist/constants/github.js +12 -30
  58. package/dist/constants/licenses.js +48 -63
  59. package/dist/constants/lifecycle-script-names.js +31 -45
  60. package/dist/constants/maintained-node-versions.js +22 -37
  61. package/dist/constants/node.js +226 -167
  62. package/dist/constants/package-default-node-range.js +16 -41
  63. package/dist/constants/package-default-socket-categories.js +12 -30
  64. package/dist/constants/packages.js +77 -126
  65. package/dist/constants/platform.js +27 -49
  66. package/dist/constants/sentinels.js +23 -48
  67. package/dist/constants/socket.js +42 -87
  68. package/dist/constants/testing.js +15 -34
  69. package/dist/constants/time.js +16 -36
  70. package/dist/constants/typescript.js +32 -52
  71. package/dist/cover/code.js +111 -142
  72. package/dist/cover/formatters.js +118 -101
  73. package/dist/cover/type.js +50 -76
  74. package/dist/cover/types.js +1 -17
  75. package/dist/crypto/hash.js +54 -46
  76. package/dist/debug/_internal.js +62 -71
  77. package/dist/debug/caller-info.js +53 -64
  78. package/dist/debug/namespace.js +80 -90
  79. package/dist/debug/output.js +172 -188
  80. package/dist/debug/types.js +1 -17
  81. package/dist/dlx/_internal.js +24 -43
  82. package/dist/dlx/arborist.js +162 -160
  83. package/dist/dlx/binary-cache.js +228 -200
  84. package/dist/dlx/binary-download.js +172 -211
  85. package/dist/dlx/binary-resolution.js +165 -157
  86. package/dist/dlx/binary-types.js +1 -17
  87. package/dist/dlx/binary.js +149 -189
  88. package/dist/dlx/cache.js +45 -30
  89. package/dist/dlx/detect.js +245 -159
  90. package/dist/dlx/dir.js +67 -51
  91. package/dist/dlx/firewall.js +62 -100
  92. package/dist/dlx/lockfile.js +122 -127
  93. package/dist/dlx/manifest.js +264 -274
  94. package/dist/dlx/package.js +241 -244
  95. package/dist/dlx/packages.js +99 -96
  96. package/dist/dlx/paths.js +73 -59
  97. package/dist/dlx/spec.js +52 -60
  98. package/dist/dlx/types.js +1 -17
  99. package/dist/eco/cargo/lockfile-format.js +19 -36
  100. package/dist/eco/cargo/manifest-format.js +17 -35
  101. package/dist/eco/cargo/parse-lockfile.js +210 -237
  102. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  103. package/dist/eco/manifest/detect-format.js +66 -90
  104. package/dist/eco/manifest/find-packages.js +39 -64
  105. package/dist/eco/manifest/get-package-versions.js +27 -48
  106. package/dist/eco/manifest/get-package.js +21 -40
  107. package/dist/eco/manifest/manifest-error.js +14 -35
  108. package/dist/eco/manifest/parse-lockfile.js +40 -86
  109. package/dist/eco/manifest/parse-manifest.js +26 -43
  110. package/dist/eco/manifest/parse.js +26 -47
  111. package/dist/eco/manifest/types.js +1 -17
  112. package/dist/eco/npm/bun/exec.js +23 -32
  113. package/dist/eco/npm/manifest-format.js +21 -35
  114. package/dist/eco/npm/npm/exec.js +51 -61
  115. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  116. package/dist/eco/npm/npm/flags.js +80 -52
  117. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  118. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  119. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  120. package/dist/eco/npm/parse-package-json.js +71 -102
  121. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  122. package/dist/eco/npm/pnpm/exec.js +51 -62
  123. package/dist/eco/npm/pnpm/flags.js +75 -68
  124. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  125. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  126. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  127. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  128. package/dist/eco/npm/script.js +82 -90
  129. package/dist/eco/npm/vlt/exec.js +24 -32
  130. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  131. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  132. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  133. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  134. package/dist/eco/purl.js +50 -60
  135. package/dist/eco/types.js +1 -17
  136. package/dist/effects/pulse-frames.js +64 -65
  137. package/dist/effects/shimmer-keyframes.js +71 -52
  138. package/dist/effects/shimmer-terminal.js +81 -50
  139. package/dist/effects/shimmer.js +290 -153
  140. package/dist/env/boolean.js +42 -43
  141. package/dist/env/case-insensitive.js +54 -39
  142. package/dist/env/ci.js +29 -31
  143. package/dist/env/debug.js +28 -31
  144. package/dist/env/github.js +144 -59
  145. package/dist/env/home.js +38 -31
  146. package/dist/env/locale.js +59 -39
  147. package/dist/env/node-auth-token.js +28 -31
  148. package/dist/env/node-env.js +28 -31
  149. package/dist/env/npm.js +94 -47
  150. package/dist/env/number.js +50 -51
  151. package/dist/env/package-manager.js +95 -83
  152. package/dist/env/path.js +28 -31
  153. package/dist/env/pre-commit.js +30 -32
  154. package/dist/env/proxy.js +121 -122
  155. package/dist/env/rewire.js +204 -96
  156. package/dist/env/shell.js +28 -31
  157. package/dist/env/socket-cli.js +233 -81
  158. package/dist/env/socket.js +521 -156
  159. package/dist/env/string.js +43 -44
  160. package/dist/env/temp-dir.js +59 -39
  161. package/dist/env/term.js +28 -31
  162. package/dist/env/test.js +65 -43
  163. package/dist/env/types.js +1 -17
  164. package/dist/env/windows.js +78 -43
  165. package/dist/env/xdg.js +62 -39
  166. package/dist/errors/message.js +40 -46
  167. package/dist/errors/predicates.js +61 -49
  168. package/dist/errors/stack.js +24 -36
  169. package/dist/events/exit/_internal.js +86 -103
  170. package/dist/events/exit/handler.js +48 -55
  171. package/dist/events/exit/intercept.js +49 -70
  172. package/dist/events/exit/lifecycle.js +92 -101
  173. package/dist/events/exit/signals.js +25 -31
  174. package/dist/events/exit/types.js +1 -17
  175. package/dist/events/warning/handler.js +43 -40
  176. package/dist/events/warning/suppress.js +111 -90
  177. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  178. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  179. package/dist/external/@npmcli/package-json.js +12705 -15140
  180. package/dist/external/@npmcli/promise-spawn.js +451 -472
  181. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  182. package/dist/external/@sinclair/typebox.js +7516 -7885
  183. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  184. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  185. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  186. package/dist/external/@yarnpkg/extensions.js +435 -1022
  187. package/dist/external/adm-zip.js +2313 -2673
  188. package/dist/external/debug.js +700 -687
  189. package/dist/external/external-pack.js +2658 -3171
  190. package/dist/external/fast-sort.js +124 -138
  191. package/dist/external/get-east-asian-width.js +70 -64
  192. package/dist/external/libnpmexec.js +28 -31
  193. package/dist/external/npm-pack.js +43617 -50137
  194. package/dist/external/p-map.js +198 -222
  195. package/dist/external/pico-pack.js +6735 -7304
  196. package/dist/external/pony-cause.js +143 -139
  197. package/dist/external/shell-quote.js +226 -0
  198. package/dist/external/spdx-pack.js +1283 -1403
  199. package/dist/external/streaming-iterables.js +835 -1052
  200. package/dist/external/tar-fs.js +2769 -3048
  201. package/dist/external/which.js +267 -251
  202. package/dist/external/yargs-parser.js +851 -1074
  203. package/dist/external-tools/bazel/asset-names.js +98 -90
  204. package/dist/external-tools/bazel/from-download.js +52 -46
  205. package/dist/external-tools/bazel/from-path.js +27 -38
  206. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  207. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  208. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  209. package/dist/external-tools/bazel/resolve.js +44 -58
  210. package/dist/external-tools/bazel/types.js +1 -17
  211. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  212. package/dist/external-tools/cdxgen/from-download.js +52 -80
  213. package/dist/external-tools/cdxgen/from-path.js +19 -37
  214. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  215. package/dist/external-tools/cdxgen/resolve.js +48 -63
  216. package/dist/external-tools/cdxgen/types.js +1 -17
  217. package/dist/external-tools/from-download.js +107 -67
  218. package/dist/external-tools/janus/asset-names.js +44 -51
  219. package/dist/external-tools/janus/from-download.js +45 -70
  220. package/dist/external-tools/janus/from-path.js +19 -37
  221. package/dist/external-tools/janus/from-vfs.js +22 -43
  222. package/dist/external-tools/janus/resolve.js +45 -63
  223. package/dist/external-tools/janus/types.js +1 -17
  224. package/dist/external-tools/jre/asset-names.js +109 -82
  225. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  226. package/dist/external-tools/jre/from-download.js +71 -67
  227. package/dist/external-tools/jre/from-java-home.js +27 -54
  228. package/dist/external-tools/jre/from-path.js +27 -49
  229. package/dist/external-tools/jre/from-vfs.js +39 -60
  230. package/dist/external-tools/jre/resolve.js +55 -68
  231. package/dist/external-tools/jre/types.js +1 -17
  232. package/dist/external-tools/manifest.js +130 -150
  233. package/dist/external-tools/opengrep/asset-names.js +60 -72
  234. package/dist/external-tools/opengrep/from-download.js +58 -80
  235. package/dist/external-tools/opengrep/from-path.js +19 -37
  236. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  237. package/dist/external-tools/opengrep/resolve.js +43 -63
  238. package/dist/external-tools/opengrep/types.js +1 -17
  239. package/dist/external-tools/sbt/asset-names.js +21 -30
  240. package/dist/external-tools/sbt/from-download.js +50 -61
  241. package/dist/external-tools/sbt/from-path.js +23 -38
  242. package/dist/external-tools/sbt/from-vfs.js +30 -44
  243. package/dist/external-tools/sbt/resolve.js +45 -63
  244. package/dist/external-tools/sbt/types.js +1 -17
  245. package/dist/external-tools/synp/asset-names.js +11 -29
  246. package/dist/external-tools/synp/from-download.js +24 -41
  247. package/dist/external-tools/synp/from-path.js +19 -37
  248. package/dist/external-tools/synp/from-vfs.js +22 -43
  249. package/dist/external-tools/synp/resolve.js +43 -62
  250. package/dist/external-tools/synp/types.js +1 -17
  251. package/dist/external-tools/trivy/asset-names.js +51 -62
  252. package/dist/external-tools/trivy/from-download.js +42 -64
  253. package/dist/external-tools/trivy/from-path.js +19 -37
  254. package/dist/external-tools/trivy/from-vfs.js +22 -43
  255. package/dist/external-tools/trivy/resolve.js +43 -63
  256. package/dist/external-tools/trivy/types.js +1 -17
  257. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  258. package/dist/external-tools/trufflehog/from-download.js +44 -62
  259. package/dist/external-tools/trufflehog/from-path.js +21 -37
  260. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  261. package/dist/external-tools/trufflehog/resolve.js +43 -63
  262. package/dist/external-tools/trufflehog/types.js +1 -17
  263. package/dist/external-tools/uv/asset-names.js +64 -74
  264. package/dist/external-tools/uv/from-download.js +44 -65
  265. package/dist/external-tools/uv/from-path.js +19 -37
  266. package/dist/external-tools/uv/from-vfs.js +22 -43
  267. package/dist/external-tools/uv/resolve.js +42 -63
  268. package/dist/external-tools/uv/types.js +1 -17
  269. package/dist/fs/_internal.js +40 -42
  270. package/dist/fs/access.js +57 -54
  271. package/dist/fs/encoding.js +80 -97
  272. package/dist/fs/find-up.js +126 -125
  273. package/dist/fs/inspect.js +168 -99
  274. package/dist/fs/path-cache.js +31 -32
  275. package/dist/fs/read-dir.js +102 -79
  276. package/dist/fs/read-file.js +177 -118
  277. package/dist/fs/read-json-cache.js +150 -134
  278. package/dist/fs/read-json.js +172 -187
  279. package/dist/fs/resolve-module.js +35 -58
  280. package/dist/fs/safe.js +278 -169
  281. package/dist/fs/types.js +1 -17
  282. package/dist/fs/unique.js +52 -48
  283. package/dist/fs/validate.js +56 -40
  284. package/dist/fs/write-json.js +109 -75
  285. package/dist/git/_internal.js +251 -216
  286. package/dist/git/changed.js +191 -74
  287. package/dist/git/repo.js +118 -104
  288. package/dist/git/staged.js +172 -62
  289. package/dist/git/types.js +1 -17
  290. package/dist/git/unstaged.js +175 -62
  291. package/dist/github/constants.js +25 -33
  292. package/dist/github/errors.js +46 -38
  293. package/dist/github/fetch.js +137 -82
  294. package/dist/github/ghsa.js +217 -151
  295. package/dist/github/refs-cache.js +54 -43
  296. package/dist/github/refs-graphql.js +97 -89
  297. package/dist/github/refs-rest.js +70 -101
  298. package/dist/github/refs.js +105 -64
  299. package/dist/github/token.js +96 -48
  300. package/dist/github/types.js +1 -17
  301. package/dist/globs/_internal.js +73 -82
  302. package/dist/globs/defaults.js +40 -59
  303. package/dist/globs/match.js +93 -77
  304. package/dist/globs/matcher.js +104 -92
  305. package/dist/globs/stream.js +43 -55
  306. package/dist/globs/types.js +1 -17
  307. package/dist/http-request/_internal.js +11 -38
  308. package/dist/http-request/browser-fetch.js +19 -29
  309. package/dist/http-request/browser.js +188 -206
  310. package/dist/http-request/checksums.js +101 -65
  311. package/dist/http-request/download-types.js +1 -17
  312. package/dist/http-request/download.js +195 -196
  313. package/dist/http-request/errors.js +39 -47
  314. package/dist/http-request/headers.js +95 -80
  315. package/dist/http-request/http-request.js +10 -35
  316. package/dist/http-request/node.js +71 -97
  317. package/dist/http-request/request-attempt.js +232 -285
  318. package/dist/http-request/request-types.js +1 -17
  319. package/dist/http-request/request.js +106 -108
  320. package/dist/http-request/response-reader.js +47 -51
  321. package/dist/http-request/response-types.js +22 -38
  322. package/dist/http-request/user-agent.js +73 -55
  323. package/dist/integrity.js +105 -106
  324. package/dist/ipc/_internal.js +34 -48
  325. package/dist/ipc/directory.js +55 -63
  326. package/dist/ipc/paths.js +52 -45
  327. package/dist/ipc/types.js +1 -17
  328. package/dist/ipc/write.js +81 -74
  329. package/dist/ipc-cli/get.js +29 -56
  330. package/dist/ipc-cli/types.js +1 -17
  331. package/dist/json/edit.js +182 -242
  332. package/dist/json/format.js +202 -103
  333. package/dist/json/parse.js +206 -109
  334. package/dist/json/types.js +1 -17
  335. package/dist/links/create.js +93 -60
  336. package/dist/links/types.js +1 -17
  337. package/dist/logger/_internal.js +109 -73
  338. package/dist/logger/browser.js +45 -56
  339. package/dist/logger/colors.js +31 -49
  340. package/dist/logger/console.js +89 -112
  341. package/dist/logger/default.js +19 -33
  342. package/dist/logger/logger.js +5 -29
  343. package/dist/logger/node.js +793 -854
  344. package/dist/logger/symbols-builder.js +54 -56
  345. package/dist/logger/symbols.js +135 -118
  346. package/dist/logger/types.js +1 -17
  347. package/dist/memo/_internal.js +39 -49
  348. package/dist/memo/async.js +133 -117
  349. package/dist/memo/clear.js +25 -34
  350. package/dist/memo/decorator.js +43 -37
  351. package/dist/memo/memoize.js +97 -88
  352. package/dist/memo/once.js +42 -41
  353. package/dist/memo/types.js +1 -17
  354. package/dist/memo/weak.js +45 -41
  355. package/dist/node/async-hooks.js +9 -30
  356. package/dist/node/child-process.js +9 -30
  357. package/dist/node/crypto.js +9 -30
  358. package/dist/node/events.js +9 -30
  359. package/dist/node/fs-promises.js +9 -30
  360. package/dist/node/fs.js +9 -30
  361. package/dist/node/http.js +9 -30
  362. package/dist/node/https.js +9 -30
  363. package/dist/node/module.js +20 -34
  364. package/dist/node/os.js +9 -30
  365. package/dist/node/path.js +9 -30
  366. package/dist/node/timers-promises.js +9 -30
  367. package/dist/node/url.js +9 -30
  368. package/dist/node/util.js +9 -30
  369. package/dist/objects/getters.js +185 -126
  370. package/dist/objects/inspect.js +85 -52
  371. package/dist/objects/mutate.js +96 -76
  372. package/dist/objects/predicates.js +112 -59
  373. package/dist/objects/sort.js +120 -76
  374. package/dist/objects/types.js +1 -17
  375. package/dist/packages/edit-class.js +198 -265
  376. package/dist/packages/edit.js +79 -86
  377. package/dist/packages/exports.js +146 -157
  378. package/dist/packages/isolation.js +159 -209
  379. package/dist/packages/licenses.js +207 -189
  380. package/dist/packages/manifest.js +134 -172
  381. package/dist/packages/normalize.js +91 -102
  382. package/dist/packages/operations.d.ts +2 -0
  383. package/dist/packages/operations.js +283 -254
  384. package/dist/packages/provenance.js +195 -245
  385. package/dist/packages/specs.js +94 -84
  386. package/dist/packages/types.js +1 -17
  387. package/dist/packages/validation.js +49 -50
  388. package/dist/paths/_internal.js +82 -86
  389. package/dist/paths/conversion.js +112 -65
  390. package/dist/paths/dirnames.js +17 -42
  391. package/dist/paths/exts.js +23 -54
  392. package/dist/paths/filenames.js +21 -50
  393. package/dist/paths/globs.js +15 -38
  394. package/dist/paths/normalize.js +215 -236
  395. package/dist/paths/packages.js +34 -49
  396. package/dist/paths/predicates.js +184 -106
  397. package/dist/paths/resolve.js +146 -128
  398. package/dist/paths/rewire.js +108 -72
  399. package/dist/paths/socket.js +252 -132
  400. package/dist/paths/walk.js +55 -60
  401. package/dist/perf/_internal.js +10 -28
  402. package/dist/perf/enabled.js +21 -30
  403. package/dist/perf/metrics.js +81 -67
  404. package/dist/perf/report.js +79 -80
  405. package/dist/perf/timer.js +180 -126
  406. package/dist/perf/types.js +1 -17
  407. package/dist/pkg-ext/data.js +29 -82
  408. package/dist/pkg-ext/types.js +1 -17
  409. package/dist/primordials/array.js +120 -198
  410. package/dist/primordials/buffer.js +28 -51
  411. package/dist/primordials/date.js +26 -51
  412. package/dist/primordials/error.js +33 -59
  413. package/dist/primordials/function.js +21 -41
  414. package/dist/primordials/globals.js +25 -48
  415. package/dist/primordials/json.js +14 -30
  416. package/dist/primordials/map-set.js +88 -152
  417. package/dist/primordials/math.js +59 -116
  418. package/dist/primordials/number.js +41 -76
  419. package/dist/primordials/object.js +56 -116
  420. package/dist/primordials/promise.js +28 -52
  421. package/dist/primordials/reflect.js +24 -52
  422. package/dist/primordials/regexp.js +25 -47
  423. package/dist/primordials/string.js +114 -167
  424. package/dist/primordials/symbol.js +40 -72
  425. package/dist/primordials/uncurry.js +38 -55
  426. package/dist/primordials/url.js +27 -66
  427. package/dist/process/_internal.js +7 -32
  428. package/dist/process/abort.js +29 -35
  429. package/dist/process/lock-instance.js +26 -30
  430. package/dist/process/lock-manager.js +279 -307
  431. package/dist/process/lock-types.js +1 -17
  432. package/dist/process/spawn/_internal.js +43 -55
  433. package/dist/process/spawn/child.js +172 -211
  434. package/dist/process/spawn/errors.js +116 -113
  435. package/dist/process/spawn/stdio.js +51 -35
  436. package/dist/process/spawn/types.js +1 -17
  437. package/dist/process/transient.js +49 -66
  438. package/dist/promises/_internal.js +31 -34
  439. package/dist/promises/iterate.js +238 -102
  440. package/dist/promises/options.js +123 -101
  441. package/dist/promises/queue.js +115 -136
  442. package/dist/promises/resolvers.js +77 -46
  443. package/dist/promises/retry.js +156 -101
  444. package/dist/promises/types.js +1 -17
  445. package/dist/regexps/escape.js +32 -30
  446. package/dist/regexps/hex.js +16 -33
  447. package/dist/regexps/spec.js +53 -81
  448. package/dist/releases/github-archives.js +127 -118
  449. package/dist/releases/github-asset-url.js +162 -146
  450. package/dist/releases/github-assets.js +37 -49
  451. package/dist/releases/github-auth.js +32 -48
  452. package/dist/releases/github-downloads.js +118 -138
  453. package/dist/releases/github-listing.js +175 -145
  454. package/dist/releases/github-retry-config.js +41 -47
  455. package/dist/releases/github-types.js +1 -17
  456. package/dist/releases/socket-btm.js +273 -192
  457. package/dist/schema/parse.js +35 -36
  458. package/dist/schema/types.js +1 -17
  459. package/dist/schema/validate.js +118 -99
  460. package/dist/sea/detect.js +57 -52
  461. package/dist/secrets/_internal.js +86 -67
  462. package/dist/secrets/find.js +96 -77
  463. package/dist/secrets/keychain.js +315 -309
  464. package/dist/secrets/linux.js +133 -135
  465. package/dist/secrets/macos.js +151 -147
  466. package/dist/secrets/rc.js +182 -181
  467. package/dist/secrets/socket-api-token.js +28 -43
  468. package/dist/secrets/types.js +1 -17
  469. package/dist/secrets/windows.js +184 -242
  470. package/dist/shadow/skip.js +51 -70
  471. package/dist/shadow/types.js +1 -17
  472. package/dist/shell/parse.d.ts +26 -0
  473. package/dist/shell/parse.js +35 -0
  474. package/dist/shell/quote.d.ts +19 -0
  475. package/dist/shell/quote.js +30 -0
  476. package/dist/smol/detect.js +67 -43
  477. package/dist/smol/http.js +33 -37
  478. package/dist/smol/https.js +31 -37
  479. package/dist/smol/manifest.js +33 -37
  480. package/dist/smol/path.js +33 -37
  481. package/dist/smol/primordial.js +35 -37
  482. package/dist/smol/purl.js +34 -37
  483. package/dist/smol/versions.js +31 -37
  484. package/dist/smol/vfs.js +46 -38
  485. package/dist/sorts/_internal.js +14 -40
  486. package/dist/sorts/natural.js +57 -64
  487. package/dist/sorts/semver.js +33 -43
  488. package/dist/sorts/strings.js +24 -30
  489. package/dist/sorts/types.js +1 -17
  490. package/dist/spinner/default.js +72 -63
  491. package/dist/spinner/format.js +86 -71
  492. package/dist/spinner/spinner.js +749 -797
  493. package/dist/spinner/types.js +1 -17
  494. package/dist/spinner/with.js +193 -137
  495. package/dist/ssri/convert.js +64 -47
  496. package/dist/ssri/parse.js +38 -37
  497. package/dist/ssri/validate.js +51 -34
  498. package/dist/stdio/_internal.js +50 -46
  499. package/dist/stdio/clear.js +208 -86
  500. package/dist/stdio/divider.js +170 -97
  501. package/dist/stdio/footer.js +116 -110
  502. package/dist/stdio/header.js +117 -90
  503. package/dist/stdio/progress.js +189 -218
  504. package/dist/stdio/prompts.js +244 -168
  505. package/dist/stdio/stderr.js +173 -78
  506. package/dist/stdio/stdout.js +177 -94
  507. package/dist/streams/parallel.js +58 -50
  508. package/dist/streams/transform.js +36 -45
  509. package/dist/strings/format.js +145 -63
  510. package/dist/strings/predicates.js +56 -34
  511. package/dist/strings/search.js +52 -42
  512. package/dist/strings/transform.js +113 -72
  513. package/dist/strings/types.js +1 -17
  514. package/dist/strings/width.js +89 -82
  515. package/dist/tables/bordered.js +81 -81
  516. package/dist/tables/padding.js +36 -46
  517. package/dist/tables/simple.js +62 -70
  518. package/dist/tables/types.js +1 -17
  519. package/dist/temporal/instant.js +72 -81
  520. package/dist/temporal/now.js +40 -31
  521. package/dist/temporal/slots.js +42 -36
  522. package/dist/temporal/system.js +36 -36
  523. package/dist/temporal/temporal.js +11 -41
  524. package/dist/themes/context.js +131 -69
  525. package/dist/themes/resolve.js +207 -132
  526. package/dist/themes/themes.js +225 -194
  527. package/dist/themes/types.js +1 -17
  528. package/dist/url/parse.js +48 -51
  529. package/dist/url/predicates.js +24 -31
  530. package/dist/url/search-params.js +133 -101
  531. package/dist/url/types.js +1 -17
  532. package/dist/versions/_internal.js +31 -33
  533. package/dist/versions/compare.js +80 -58
  534. package/dist/versions/modify.js +41 -39
  535. package/dist/versions/parse.js +88 -64
  536. package/dist/versions/range.js +58 -41
  537. package/dist/versions/types.js +1 -17
  538. package/dist/words/article.js +22 -30
  539. package/dist/words/capitalize.js +25 -34
  540. package/dist/words/pluralize.js +23 -31
  541. package/dist/words/types.js +1 -17
  542. package/package.json +17 -5
@@ -1,52 +1,46 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var github_retry_config_exports = {};
22
- __export(github_retry_config_exports, {
23
- DEFAULT_BASE_DELAY_MS: () => DEFAULT_BASE_DELAY_MS,
24
- GITHUB_RETRY_CONFIG: () => GITHUB_RETRY_CONFIG,
25
- resolveBaseDelayMs: () => resolveBaseDelayMs
26
- });
27
- module.exports = __toCommonJS(github_retry_config_exports);
28
- var import_number = require("../env/number");
29
- var import_rewire = require("../env/rewire");
30
- var import_object = require("../primordials/object");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_object = require('../primordials/object.js');
5
+ const require_env_rewire = require('../env/rewire.js');
6
+ const require_env_number = require('../env/number.js');
7
+
8
+ //#region src/releases/github-retry-config.ts
9
+ /**
10
+ * @file Shared retry configuration for the GitHub release helpers
11
+ * (`github-listing`, `github-asset-url`). Exponential backoff over the
12
+ * transient-failure / rate-limit surface. `baseDelayMs` is overridable via
13
+ * `SOCKET_GITHUB_RETRY_BASE_DELAY_MS` set it to `0` for near-instant
14
+ * retries. Tests set it so the backoff sleep (5s + 10s of real wallclock)
15
+ * doesn't run: pRetry's delay goes through `node:timers/promises`, which
16
+ * `vi.useFakeTimers()` doesn't reliably intercept, so a zero base delay is
17
+ * the robust, fake-timer-independent way to keep these tests fast. CI can
18
+ * also dial it down. Default stays 5000ms for production resilience.
19
+ */
20
+ /**
21
+ * Default base delay (ms) before the first retry when the env override is unset
22
+ * or non-numeric.
23
+ */
31
24
  const DEFAULT_BASE_DELAY_MS = 5e3;
25
+ /**
26
+ * Resolve the retry base delay from `SOCKET_GITHUB_RETRY_BASE_DELAY_MS`,
27
+ * falling back to {@link DEFAULT_BASE_DELAY_MS}. Read live (not memoized) so
28
+ * it's unit-testable by mutating the env — and so a long-lived process that has
29
+ * the env changed under it picks up the new value on next read.
30
+ *
31
+ * @returns The configured base delay in milliseconds.
32
+ */
32
33
  function resolveBaseDelayMs() {
33
- return (0, import_number.envAsNumber)(
34
- (0, import_rewire.getEnvValue)("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"),
35
- DEFAULT_BASE_DELAY_MS
36
- );
34
+ return /* @__PURE__ */ require_env_number.envAsNumber(require_env_rewire.getEnvValue("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"), DEFAULT_BASE_DELAY_MS);
37
35
  }
38
- const GITHUB_RETRY_CONFIG = (0, import_object.ObjectFreeze)({
39
- __proto__: null,
40
- // Exponential backoff: delay doubles with each retry (5s, 10s, 20s).
41
- backoffFactor: 2,
42
- // Initial delay before first retry. Overridable for tests / CI.
43
- baseDelayMs: resolveBaseDelayMs(),
44
- // Maximum number of retry attempts (excluding initial request).
45
- retries: 2
46
- });
47
- // Annotate the CommonJS export names for ESM import in node:
48
- 0 && (module.exports = {
49
- DEFAULT_BASE_DELAY_MS,
50
- GITHUB_RETRY_CONFIG,
51
- resolveBaseDelayMs
36
+ const GITHUB_RETRY_CONFIG = require_primordials_object.ObjectFreeze({
37
+ __proto__: null,
38
+ backoffFactor: 2,
39
+ baseDelayMs: resolveBaseDelayMs(),
40
+ retries: 2
52
41
  });
42
+
43
+ //#endregion
44
+ exports.DEFAULT_BASE_DELAY_MS = DEFAULT_BASE_DELAY_MS;
45
+ exports.GITHUB_RETRY_CONFIG = GITHUB_RETRY_CONFIG;
46
+ exports.resolveBaseDelayMs = resolveBaseDelayMs;
@@ -1,18 +1,2 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
17
- var github_types_exports = {};
18
- module.exports = __toCommonJS(github_types_exports);
2
+ /* Socket Lib - Built with rolldown */
@@ -1,209 +1,290 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var socket_btm_exports = {};
22
- __export(socket_btm_exports, {
23
- SOCKET_BTM_REPO: () => SOCKET_BTM_REPO,
24
- detectLibc: () => detectLibc,
25
- downloadSocketBtmRelease: () => downloadSocketBtmRelease,
26
- getBinaryAssetName: () => getBinaryAssetName,
27
- getBinaryName: () => getBinaryName,
28
- getPlatformArch: () => getPlatformArch
29
- });
30
- module.exports = __toCommonJS(socket_btm_exports);
31
- var import_platform = require("../constants/platform");
32
- var import_github_asset_url = require("./github-asset-url");
33
- var import_github_listing = require("./github-listing");
34
- var import_github_downloads = require("./github-downloads");
35
- var import_fs = require("../node/fs");
36
- var import_error = require("../primordials/error");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_constants_platform = require('../constants/platform.js');
6
+ const require_node_fs = require('../node/fs.js');
7
+ const require_releases_github_asset_url = require('./github-asset-url.js');
8
+ const require_releases_github_listing = require('./github-listing.js');
9
+ const require_releases_github_downloads = require('./github-downloads.js');
10
+
11
+ //#region src/releases/socket-btm.ts
12
+ /**
13
+ * @file Socket-btm release download utilities.
14
+ */
15
+ /**
16
+ * Socket-btm GitHub repository configuration.
17
+ */
37
18
  const SOCKET_BTM_REPO = {
38
- owner: "SocketDev",
39
- repo: "socket-btm"
19
+ owner: "SocketDev",
20
+ repo: "socket-btm"
40
21
  };
22
+ /**
23
+ * Map Node.js platform to socket-btm asset platform naming. Identity mapping:
24
+ * asset names use `process.platform` verbatim (`darwin`, `linux`, `win32`) to
25
+ * align with pnpm's pack-app, the `--os` / `supportedArchitectures.os` config
26
+ * keys, and the `@pnpm/exe.<os>-<arch>` package convention.
27
+ */
41
28
  const PLATFORM_MAP = {
42
- __proto__: null,
43
- darwin: "darwin",
44
- linux: "linux",
45
- win32: "win32"
29
+ __proto__: null,
30
+ darwin: "darwin",
31
+ linux: "linux",
32
+ win32: "win32"
46
33
  };
34
+ /**
35
+ * Map Node.js arch to socket-btm asset arch naming.
36
+ */
47
37
  const ARCH_MAP = {
48
- __proto__: null,
49
- arm64: "arm64",
50
- x64: "x64"
38
+ __proto__: null,
39
+ arm64: "arm64",
40
+ x64: "x64"
51
41
  };
42
+ /**
43
+ * Detect the libc variant (musl or glibc) on Linux systems. Returns undefined
44
+ * for non-Linux platforms.
45
+ *
46
+ * @example
47
+ * ;```typescript
48
+ * const libc = detectLibc()
49
+ * console.log(libc) // 'glibc', 'musl', or undefined
50
+ * ```
51
+ *
52
+ * @returns 'musl', 'glibc', or undefined (for non-Linux)
53
+ */
52
54
  function detectLibc() {
53
- if ((0, import_platform.getPlatform)() !== "linux") {
54
- return void 0;
55
- }
56
- try {
57
- const fs = (0, import_fs.getNodeFs)();
58
- const muslPaths = [
59
- "/lib/ld-musl-x86_64.so.1",
60
- "/lib/ld-musl-aarch64.so.1",
61
- "/usr/lib/ld-musl-x86_64.so.1",
62
- "/usr/lib/ld-musl-aarch64.so.1"
63
- ];
64
- for (const path of muslPaths) {
65
- if (fs.existsSync(path)) {
66
- return "musl";
67
- }
68
- }
69
- return "glibc";
70
- } catch {
71
- return "glibc";
72
- }
55
+ /* c8 ignore next 3 */
56
+ if (require_constants_platform.getPlatform() !== "linux") return;
57
+ /* c8 ignore start - Linux-only musl/glibc detection; tested on
58
+ Linux runners. macOS/Windows runners take the early-return above. */
59
+ try {
60
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
61
+ for (const path of [
62
+ "/lib/ld-musl-x86_64.so.1",
63
+ "/lib/ld-musl-aarch64.so.1",
64
+ "/usr/lib/ld-musl-x86_64.so.1",
65
+ "/usr/lib/ld-musl-aarch64.so.1"
66
+ ]) if (fs.existsSync(path)) return "musl";
67
+ return "glibc";
68
+ } catch {
69
+ return "glibc";
70
+ }
71
+ /* c8 ignore stop */
73
72
  }
73
+ /**
74
+ * Download a release from socket-btm.
75
+ *
76
+ * @example
77
+ * ;```typescript
78
+ * const binPath = await downloadSocketBtmRelease('lief', {
79
+ * downloadDir: '/tmp/build/downloaded',
80
+ * })
81
+ * ```
82
+ *
83
+ * @param tool - Tool/package name for release matching (e.g., 'lief', 'curl')
84
+ * @param options - Download configuration.
85
+ *
86
+ * @returns Path to the downloaded file
87
+ */
74
88
  async function downloadSocketBtmRelease(tool, options) {
75
- const config = { __proto__: null, ...options ?? {} };
76
- const { cwd, downloadDir, quiet = false, tag } = config;
77
- const toolPrefix = `${tool}-`;
78
- let downloadConfig;
79
- if (options && "asset" in options) {
80
- const assetConfig = {
81
- __proto__: null,
82
- ...options
83
- };
84
- const { asset, output, removeMacOSQuarantine = false } = assetConfig;
85
- let resolvedAsset;
86
- let resolvedTag = tag;
87
- const isExactMatch = typeof asset === "string" && !asset.includes("*");
88
- if (isExactMatch) {
89
- resolvedAsset = asset;
90
- } else {
91
- if (tag) {
92
- throw new import_error.ErrorCtor(
93
- "Cannot use asset pattern with explicit tag. Either provide exact asset name or omit tag."
94
- );
95
- }
96
- resolvedTag = await (0, import_github_listing.getLatestRelease)(toolPrefix, SOCKET_BTM_REPO, {
97
- assetPattern: asset
98
- }) ?? void 0;
99
- if (!resolvedTag) {
100
- throw new import_error.ErrorCtor(
101
- `No ${tool} release with matching asset pattern found`
102
- );
103
- }
104
- const assetUrl = await (0, import_github_asset_url.getReleaseAssetUrl)(
105
- resolvedTag,
106
- asset,
107
- SOCKET_BTM_REPO
108
- );
109
- if (!assetUrl) {
110
- throw new import_error.ErrorCtor(`No matching asset found in release ${resolvedTag}`);
111
- }
112
- resolvedAsset = assetUrl.split("/").pop() || asset.toString();
113
- }
114
- const outputName = output || resolvedAsset;
115
- const platformArch = "assets";
116
- downloadConfig = {
117
- owner: SOCKET_BTM_REPO.owner,
118
- repo: SOCKET_BTM_REPO.repo,
119
- ...cwd !== void 0 && { cwd },
120
- ...downloadDir !== void 0 && { downloadDir },
121
- toolName: tool,
122
- platformArch,
123
- binaryName: outputName,
124
- assetName: resolvedAsset,
125
- toolPrefix,
126
- ...resolvedTag !== void 0 && { tag: resolvedTag },
127
- quiet,
128
- removeMacOSQuarantine
129
- };
130
- } else {
131
- const binaryConfig = {
132
- __proto__: null,
133
- ...options
134
- };
135
- const {
136
- bin,
137
- libc = detectLibc(),
138
- removeMacOSQuarantine = true,
139
- targetArch = (0, import_platform.getArch)(),
140
- targetPlatform = (0, import_platform.getPlatform)()
141
- } = binaryConfig;
142
- const baseName = bin || tool;
143
- const assetName = getBinaryAssetName(
144
- baseName,
145
- targetPlatform,
146
- targetArch,
147
- libc
148
- );
149
- const platformArch = getPlatformArch(targetPlatform, targetArch, libc);
150
- const binaryName = getBinaryName(baseName, targetPlatform);
151
- downloadConfig = {
152
- owner: SOCKET_BTM_REPO.owner,
153
- repo: SOCKET_BTM_REPO.repo,
154
- ...cwd !== void 0 && { cwd },
155
- ...downloadDir !== void 0 && { downloadDir },
156
- toolName: tool,
157
- platformArch,
158
- binaryName,
159
- assetName,
160
- toolPrefix,
161
- ...tag !== void 0 && { tag },
162
- quiet,
163
- removeMacOSQuarantine
164
- };
165
- }
166
- return await (0, import_github_downloads.downloadGitHubRelease)(downloadConfig);
89
+ const { cwd, downloadDir, quiet = false, tag } = {
90
+ __proto__: null,
91
+ ...options ?? {}
92
+ };
93
+ const toolPrefix = `${tool}-`;
94
+ let downloadConfig;
95
+ if (options && "asset" in options) {
96
+ const { asset, output, removeMacOSQuarantine = false } = {
97
+ __proto__: null,
98
+ ...options
99
+ };
100
+ let resolvedAsset;
101
+ let resolvedTag = tag;
102
+ if (typeof asset === "string" && !asset.includes("*")) resolvedAsset = asset;
103
+ else {
104
+ if (tag) throw new require_primordials_error.ErrorCtor("Cannot use asset pattern with explicit tag. Either provide exact asset name or omit tag.");
105
+ resolvedTag = await require_releases_github_listing.getLatestRelease(toolPrefix, SOCKET_BTM_REPO, { assetPattern: asset }) ?? void 0;
106
+ if (!resolvedTag) throw new require_primordials_error.ErrorCtor(`No ${tool} release with matching asset pattern found`);
107
+ const assetUrl = await require_releases_github_asset_url.getReleaseAssetUrl(resolvedTag, asset, SOCKET_BTM_REPO);
108
+ /* c8 ignore start */
109
+ if (!assetUrl) throw new require_primordials_error.ErrorCtor(`No matching asset found in release ${resolvedTag}`);
110
+ resolvedAsset = assetUrl.split("/").pop() || asset.toString();
111
+ }
112
+ /* c8 ignore next */
113
+ const outputName = output || resolvedAsset;
114
+ const platformArch = "assets";
115
+ downloadConfig = {
116
+ owner: SOCKET_BTM_REPO.owner,
117
+ repo: SOCKET_BTM_REPO.repo,
118
+ ...cwd !== void 0 && { cwd },
119
+ ...downloadDir !== void 0 && { downloadDir },
120
+ toolName: tool,
121
+ platformArch,
122
+ binaryName: outputName,
123
+ assetName: resolvedAsset,
124
+ toolPrefix,
125
+ ...resolvedTag !== void 0 && { tag: resolvedTag },
126
+ quiet,
127
+ removeMacOSQuarantine
128
+ };
129
+ } else {
130
+ const { bin, libc = detectLibc(), removeMacOSQuarantine = true, targetArch = require_constants_platform.getArch(), targetPlatform = require_constants_platform.getPlatform() } = {
131
+ __proto__: null,
132
+ ...options
133
+ };
134
+ const baseName = bin || tool;
135
+ const assetName = getBinaryAssetName(baseName, targetPlatform, targetArch, libc);
136
+ const platformArch = getPlatformArch(targetPlatform, targetArch, libc);
137
+ const binaryName = getBinaryName(baseName, targetPlatform);
138
+ downloadConfig = {
139
+ owner: SOCKET_BTM_REPO.owner,
140
+ repo: SOCKET_BTM_REPO.repo,
141
+ ...cwd !== void 0 && { cwd },
142
+ ...downloadDir !== void 0 && { downloadDir },
143
+ toolName: tool,
144
+ platformArch,
145
+ binaryName,
146
+ assetName,
147
+ toolPrefix,
148
+ ...tag !== void 0 && { tag },
149
+ quiet,
150
+ removeMacOSQuarantine
151
+ };
152
+ }
153
+ return await require_releases_github_downloads.downloadGitHubRelease(downloadConfig);
167
154
  }
155
+ /**
156
+ * Get asset name for a socket-btm binary.
157
+ *
158
+ * @example
159
+ * ;```typescript
160
+ * getBinaryAssetName('lief', 'linux', 'x64', 'musl')
161
+ * // 'lief-linux-x64-musl'
162
+ * ```
163
+ *
164
+ * @param binaryBaseName - Binary basename (e.g., 'binject', 'node')
165
+ * @param platform - Target platform.
166
+ * @param arch - Target architecture.
167
+ * @param libc - Linux libc variant (optional)
168
+ *
169
+ * @returns Asset name (e.g., 'binject-darwin-arm64', 'node-linux-x64-musl')
170
+ */
168
171
  function getBinaryAssetName(binaryBaseName, platform, arch, libc) {
169
- const mappedArch = ARCH_MAP[arch];
170
- if (!mappedArch) {
171
- throw new import_error.ErrorCtor(`Unsupported architecture: ${arch}`);
172
- }
173
- const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
174
- const ext = platform === "win32" ? ".exe" : "";
175
- if (platform === "darwin") {
176
- return `${binaryBaseName}-darwin-${mappedArch}${ext}`;
177
- }
178
- if (platform === "linux") {
179
- return `${binaryBaseName}-linux-${mappedArch}${muslSuffix}${ext}`;
180
- }
181
- if (platform === "win32") {
182
- return `${binaryBaseName}-win32-${mappedArch}${ext}`;
183
- }
184
- throw new import_error.ErrorCtor(`Unsupported platform: ${platform}`);
172
+ const mappedArch = ARCH_MAP[arch];
173
+ if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
174
+ const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
175
+ const ext = platform === "win32" ? ".exe" : "";
176
+ if (platform === "darwin") return `${binaryBaseName}-darwin-${mappedArch}${ext}`;
177
+ if (platform === "linux") return `${binaryBaseName}-linux-${mappedArch}${muslSuffix}${ext}`;
178
+ if (platform === "win32") return `${binaryBaseName}-win32-${mappedArch}${ext}`;
179
+ throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
185
180
  }
181
+ /**
182
+ * Get binary filename for output.
183
+ *
184
+ * @example
185
+ * ;```typescript
186
+ * getBinaryName('node', 'win32') // 'node.exe'
187
+ * getBinaryName('node', 'linux') // 'node'
188
+ * ```
189
+ *
190
+ * @param binaryBaseName - Binary basename (e.g., 'node', 'binject')
191
+ * @param platform - Target platform.
192
+ *
193
+ * @returns Binary filename (e.g., 'node', 'node.exe')
194
+ */
186
195
  function getBinaryName(binaryBaseName, platform) {
187
- return platform === "win32" ? `${binaryBaseName}.exe` : binaryBaseName;
196
+ return platform === "win32" ? `${binaryBaseName}.exe` : binaryBaseName;
188
197
  }
198
+ /**
199
+ * Lazily load the fs module to avoid Webpack errors. Uses non-'node:' prefixed
200
+ * require to prevent Webpack bundling issues.
201
+ *
202
+ * @private
203
+ */
204
+ /**
205
+ * Get platform-arch identifier for directory structure and asset names.
206
+ *
207
+ * # Format: `<os>-<arch>[-<libc>]`
208
+ *
209
+ * The OS segment is `process.platform` verbatim: `darwin` / `linux` / `win32`.
210
+ * The arch segment is `process.arch` verbatim: `x64` / `arm64`. The optional
211
+ * libc suffix is `-musl` (Linux only; the glibc default is unsuffixed to match
212
+ * Node.js's own linuxstatic convention).
213
+ *
214
+ * # Why these specific conventions
215
+ *
216
+ * ## Why `win32`, not `win`
217
+ *
218
+ * `win32` is what `process.platform` returns on every Windows host. Every npm
219
+ * package whose install-time platform filter uses the standard `os` / `cpu` /
220
+ * `libc` manifest fields must match `process.platform` strings exactly (npm
221
+ * compares them verbatim — there's no shorthand layer). Using `win` internally
222
+ * here would have forced a translation every time we constructed an install
223
+ * filter or a target triple, and reviewers would have to remember "we
224
+ * abbreviate on disk but not in package filters." Since the two now match,
225
+ * there's no translation step to get wrong.
226
+ *
227
+ * Pnpm's pack-app (v11+) accepts `<os>-<arch>[-<libc>]` target strings and its
228
+ * shards are `@pnpm/exe.<os>-<arch>` (with `win32`, not `win` — see
229
+ * pnpm#11314). Our naming matches so asset names we emit can flow directly into
230
+ * pack-app's `--target` arg, `pnpm.app.targets` config, and
231
+ * sibling-package-name construction without a translation map.
232
+ *
233
+ * ## Why `-musl` is the suffix (and glibc is unsuffixed)
234
+ *
235
+ * Node.js's own linuxstatic tarballs historically used the unqualified `linux`
236
+ * for glibc and a separate download channel for musl. The pnpm ecosystem
237
+ * codified that as `linux-<arch>` (glibc, default) and `linux-<arch>-musl` (the
238
+ * libc outlier), matching the asymmetric reality of Linux distros — glibc is
239
+ * the majority case, musl is Alpine-and-similar. Adding `-glibc` for the
240
+ * default would be redundant noise in the name.
241
+ *
242
+ * ## Why libc is only appended for Linux
243
+ *
244
+ * MacOS and Windows have exactly one system libc each (Apple libSystem,
245
+ * Microsoft UCRT). A hypothetical `darwin-arm64-libsystem` conveys no
246
+ * information. Node.js, npm, and pnpm all treat libc as a Linux-only axis; we
247
+ * follow the same convention so callers don't have to special- case
248
+ * `'darwin-arm64'.startsWith('darwin-arm64')` style matches.
249
+ *
250
+ * ## Why this function exists at all (vs. inlining)
251
+ *
252
+ * Two upstream APIs that socket-btm consumers end up calling — the npm manifest
253
+ * filter (`os`/`cpu`/`libc`) and pnpm's pack-app `--target` — both need the
254
+ * exact same triple format. Centralizing the construction here means a future
255
+ * schema change (e.g. Node introducing `riscv64`) gets one edit, and the error
256
+ * message for an unsupported platform is uniform across downloaders, pack-app
257
+ * invocations, and the `@socketbin/*` resolver logic.
258
+ *
259
+ * @example
260
+ * ;```typescript
261
+ * getPlatformArch('linux', 'x64', 'musl') // 'linux-x64-musl'
262
+ * getPlatformArch('darwin', 'arm64') // 'darwin-arm64'
263
+ * getPlatformArch('win32', 'x64') // 'win32-x64'
264
+ * getPlatformArch('darwin', 'x64', 'musl') // 'darwin-x64' — libc ignored
265
+ * ```
266
+ *
267
+ * @param platform - Target platform.
268
+ * @param arch - Target architecture.
269
+ * @param libc - Linux libc variant (optional; non-linux platforms ignore)
270
+ *
271
+ * @returns Platform-arch identifier (e.g., 'darwin-arm64', 'linux-x64-musl',
272
+ * 'win32-x64')
273
+ */
189
274
  function getPlatformArch(platform, arch, libc) {
190
- const mappedPlatform = PLATFORM_MAP[platform];
191
- if (!mappedPlatform) {
192
- throw new import_error.ErrorCtor(`Unsupported platform: ${platform}`);
193
- }
194
- const mappedArch = ARCH_MAP[arch];
195
- if (!mappedArch) {
196
- throw new import_error.ErrorCtor(`Unsupported architecture: ${arch}`);
197
- }
198
- const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
199
- return `${mappedPlatform}-${mappedArch}${muslSuffix}`;
275
+ /* c8 ignore start */
276
+ const mappedPlatform = PLATFORM_MAP[platform];
277
+ if (!mappedPlatform) throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
278
+ const mappedArch = ARCH_MAP[arch];
279
+ if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
280
+ return `${mappedPlatform}-${mappedArch}${platform === "linux" && libc === "musl" ? "-musl" : ""}`;
281
+ /* c8 ignore stop */
200
282
  }
201
- // Annotate the CommonJS export names for ESM import in node:
202
- 0 && (module.exports = {
203
- SOCKET_BTM_REPO,
204
- detectLibc,
205
- downloadSocketBtmRelease,
206
- getBinaryAssetName,
207
- getBinaryName,
208
- getPlatformArch
209
- });
283
+
284
+ //#endregion
285
+ exports.SOCKET_BTM_REPO = SOCKET_BTM_REPO;
286
+ exports.detectLibc = detectLibc;
287
+ exports.downloadSocketBtmRelease = downloadSocketBtmRelease;
288
+ exports.getBinaryAssetName = getBinaryAssetName;
289
+ exports.getBinaryName = getBinaryName;
290
+ exports.getPlatformArch = getPlatformArch;