@socketsecurity/lib 6.0.2 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +34 -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.d.mts +48 -25
  6. package/dist/ai/profiles.js +95 -59
  7. package/dist/ai/spawn.d.mts +2 -2
  8. package/dist/ai/spawn.js +172 -194
  9. package/dist/ai/types.d.mts +3 -3
  10. package/dist/ai/types.js +1 -17
  11. package/dist/ai/worktree.d.mts +2 -2
  12. package/dist/ai/worktree.js +160 -183
  13. package/dist/ansi/constants.js +16 -38
  14. package/dist/ansi/strip.js +44 -41
  15. package/dist/archives/_internal.js +64 -73
  16. package/dist/archives/detect.js +30 -43
  17. package/dist/archives/extract.js +43 -50
  18. package/dist/archives/tar.js +197 -228
  19. package/dist/archives/types.js +1 -17
  20. package/dist/archives/zip.js +85 -121
  21. package/dist/argv/flag-predicates.js +203 -101
  22. package/dist/argv/flag-types.js +96 -113
  23. package/dist/argv/parse-args-string.d.ts +16 -14
  24. package/dist/argv/parse-args-string.js +42 -39
  25. package/dist/argv/parse.js +145 -163
  26. package/dist/arrays/_internal.js +65 -48
  27. package/dist/arrays/chunk.js +51 -40
  28. package/dist/arrays/join.js +87 -35
  29. package/dist/arrays/predicates.js +46 -28
  30. package/dist/arrays/unique.js +45 -31
  31. package/dist/bin/_internal.js +34 -42
  32. package/dist/bin/check-primordials.js +175 -233
  33. package/dist/bin/check.js +51 -72
  34. package/dist/bin/exec.js +70 -74
  35. package/dist/bin/find.js +151 -134
  36. package/dist/bin/resolve.js +180 -246
  37. package/dist/bin/shadow.js +24 -33
  38. package/dist/bin/socket-lib.js +51 -73
  39. package/dist/bin/types.js +1 -17
  40. package/dist/bin/which.js +211 -146
  41. package/dist/cacache/_internal.js +25 -40
  42. package/dist/cacache/clear.js +79 -72
  43. package/dist/cacache/read.js +48 -46
  44. package/dist/cacache/tmp.js +29 -36
  45. package/dist/cacache/types.js +1 -17
  46. package/dist/cacache/write.js +43 -48
  47. package/dist/cache/ttl/store.js +232 -288
  48. package/dist/cache/ttl/types.js +1 -17
  49. package/dist/checks/primordials-defaults.js +83 -89
  50. package/dist/checks/primordials.js +225 -277
  51. package/dist/colors/convert.js +45 -37
  52. package/dist/colors/palette.js +88 -45
  53. package/dist/colors/socket-palette.js +74 -84
  54. package/dist/colors/types.js +1 -17
  55. package/dist/compression/_internal.js +57 -72
  56. package/dist/compression/brotli.js +94 -127
  57. package/dist/compression/gzip.js +95 -121
  58. package/dist/compression/types.js +1 -17
  59. package/dist/constants/agents.js +61 -113
  60. package/dist/constants/encoding.js +19 -42
  61. package/dist/constants/github.js +12 -30
  62. package/dist/constants/licenses.js +48 -63
  63. package/dist/constants/lifecycle-script-names.js +31 -45
  64. package/dist/constants/maintained-node-versions.js +22 -37
  65. package/dist/constants/node.js +226 -167
  66. package/dist/constants/package-default-node-range.js +16 -41
  67. package/dist/constants/package-default-socket-categories.js +12 -30
  68. package/dist/constants/packages.js +77 -126
  69. package/dist/constants/platform.js +27 -49
  70. package/dist/constants/sentinels.js +23 -48
  71. package/dist/constants/socket.js +42 -87
  72. package/dist/constants/testing.js +15 -34
  73. package/dist/constants/time.js +16 -36
  74. package/dist/constants/typescript.js +32 -52
  75. package/dist/cover/code.js +111 -142
  76. package/dist/cover/formatters.js +118 -101
  77. package/dist/cover/type.js +50 -76
  78. package/dist/cover/types.js +1 -17
  79. package/dist/crypto/hash.js +54 -46
  80. package/dist/debug/_internal.js +62 -71
  81. package/dist/debug/caller-info.js +53 -64
  82. package/dist/debug/namespace.js +80 -90
  83. package/dist/debug/output.js +172 -188
  84. package/dist/debug/types.js +1 -17
  85. package/dist/dlx/_internal.js +24 -43
  86. package/dist/dlx/arborist.js +162 -160
  87. package/dist/dlx/binary-cache.js +228 -200
  88. package/dist/dlx/binary-download.js +172 -211
  89. package/dist/dlx/binary-resolution.js +165 -157
  90. package/dist/dlx/binary-types.js +1 -17
  91. package/dist/dlx/binary.js +149 -189
  92. package/dist/dlx/cache.js +45 -30
  93. package/dist/dlx/detect.js +245 -167
  94. package/dist/dlx/dir.js +67 -51
  95. package/dist/dlx/firewall.js +62 -100
  96. package/dist/dlx/lockfile.js +122 -127
  97. package/dist/dlx/manifest.js +264 -274
  98. package/dist/dlx/package.js +241 -244
  99. package/dist/dlx/packages.js +99 -96
  100. package/dist/dlx/paths.js +73 -59
  101. package/dist/dlx/spec.js +52 -60
  102. package/dist/dlx/types.js +1 -17
  103. package/dist/eco/cargo/lockfile-format.js +19 -36
  104. package/dist/eco/cargo/manifest-format.js +17 -35
  105. package/dist/eco/cargo/parse-lockfile.js +210 -237
  106. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  107. package/dist/eco/manifest/detect-format.js +66 -90
  108. package/dist/eco/manifest/find-packages.js +39 -64
  109. package/dist/eco/manifest/get-package-versions.js +27 -48
  110. package/dist/eco/manifest/get-package.js +21 -40
  111. package/dist/eco/manifest/manifest-error.js +14 -35
  112. package/dist/eco/manifest/parse-lockfile.js +40 -86
  113. package/dist/eco/manifest/parse-manifest.js +26 -43
  114. package/dist/eco/manifest/parse.js +26 -47
  115. package/dist/eco/manifest/types.js +1 -17
  116. package/dist/eco/npm/bun/exec.js +23 -32
  117. package/dist/eco/npm/manifest-format.js +21 -35
  118. package/dist/eco/npm/npm/exec.js +51 -61
  119. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  120. package/dist/eco/npm/npm/flags.js +80 -52
  121. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  122. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  123. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  124. package/dist/eco/npm/parse-package-json.js +71 -102
  125. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  126. package/dist/eco/npm/pnpm/exec.js +51 -62
  127. package/dist/eco/npm/pnpm/flags.js +75 -68
  128. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  129. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  130. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  131. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  132. package/dist/eco/npm/script.js +82 -90
  133. package/dist/eco/npm/vlt/exec.js +24 -32
  134. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  135. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  136. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  137. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  138. package/dist/eco/purl.js +50 -60
  139. package/dist/eco/types.js +1 -17
  140. package/dist/effects/pulse-frames.js +64 -65
  141. package/dist/effects/shimmer-keyframes.js +71 -52
  142. package/dist/effects/shimmer-terminal.js +81 -50
  143. package/dist/effects/shimmer.js +290 -153
  144. package/dist/env/boolean.js +42 -43
  145. package/dist/env/case-insensitive.js +54 -39
  146. package/dist/env/ci.js +29 -31
  147. package/dist/env/debug.js +28 -31
  148. package/dist/env/github.js +144 -59
  149. package/dist/env/home.js +38 -31
  150. package/dist/env/locale.js +59 -39
  151. package/dist/env/node-auth-token.js +28 -31
  152. package/dist/env/node-env.js +28 -31
  153. package/dist/env/npm.js +94 -47
  154. package/dist/env/number.js +50 -51
  155. package/dist/env/package-manager.js +95 -83
  156. package/dist/env/path.js +28 -31
  157. package/dist/env/pre-commit.js +30 -32
  158. package/dist/env/proxy.js +121 -122
  159. package/dist/env/rewire.js +204 -96
  160. package/dist/env/shell.js +28 -31
  161. package/dist/env/socket-cli.js +233 -81
  162. package/dist/env/socket.js +521 -156
  163. package/dist/env/string.js +43 -44
  164. package/dist/env/temp-dir.js +59 -39
  165. package/dist/env/term.js +28 -31
  166. package/dist/env/test.js +65 -43
  167. package/dist/env/types.js +1 -17
  168. package/dist/env/windows.js +78 -43
  169. package/dist/env/xdg.js +62 -39
  170. package/dist/errors/message.js +40 -46
  171. package/dist/errors/predicates.js +61 -49
  172. package/dist/errors/stack.js +24 -36
  173. package/dist/events/exit/_internal.js +86 -103
  174. package/dist/events/exit/handler.js +48 -55
  175. package/dist/events/exit/intercept.js +49 -70
  176. package/dist/events/exit/lifecycle.js +92 -101
  177. package/dist/events/exit/signals.js +25 -31
  178. package/dist/events/exit/types.js +1 -17
  179. package/dist/events/warning/handler.js +43 -40
  180. package/dist/events/warning/suppress.js +111 -90
  181. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  182. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  183. package/dist/external/@npmcli/package-json.js +12705 -15140
  184. package/dist/external/@npmcli/promise-spawn.js +451 -472
  185. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  186. package/dist/external/@sinclair/typebox.js +7516 -7885
  187. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  188. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  189. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  190. package/dist/external/@yarnpkg/extensions.js +435 -1022
  191. package/dist/external/adm-zip.js +2313 -2673
  192. package/dist/external/debug.js +700 -687
  193. package/dist/external/external-pack.js +2658 -3171
  194. package/dist/external/fast-sort.js +124 -138
  195. package/dist/external/get-east-asian-width.js +70 -64
  196. package/dist/external/libnpmexec.js +28 -31
  197. package/dist/external/npm-pack.js +43617 -50137
  198. package/dist/external/p-map.js +198 -222
  199. package/dist/external/pico-pack.js +6735 -7304
  200. package/dist/external/pony-cause.js +143 -139
  201. package/dist/external/shell-quote.js +226 -0
  202. package/dist/external/spdx-pack.js +1283 -1403
  203. package/dist/external/streaming-iterables.js +835 -1052
  204. package/dist/external/tar-fs.js +2769 -3048
  205. package/dist/external/which.js +267 -251
  206. package/dist/external/yargs-parser.js +851 -1074
  207. package/dist/external-tools/bazel/asset-names.js +98 -90
  208. package/dist/external-tools/bazel/from-download.js +52 -46
  209. package/dist/external-tools/bazel/from-path.js +27 -38
  210. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  211. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  212. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  213. package/dist/external-tools/bazel/resolve.js +44 -58
  214. package/dist/external-tools/bazel/types.js +1 -17
  215. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  216. package/dist/external-tools/cdxgen/from-download.js +52 -80
  217. package/dist/external-tools/cdxgen/from-path.js +19 -37
  218. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  219. package/dist/external-tools/cdxgen/resolve.js +48 -63
  220. package/dist/external-tools/cdxgen/types.js +1 -17
  221. package/dist/external-tools/from-download.js +107 -67
  222. package/dist/external-tools/janus/asset-names.js +44 -51
  223. package/dist/external-tools/janus/from-download.js +45 -70
  224. package/dist/external-tools/janus/from-path.js +19 -37
  225. package/dist/external-tools/janus/from-vfs.js +22 -43
  226. package/dist/external-tools/janus/resolve.js +45 -63
  227. package/dist/external-tools/janus/types.js +1 -17
  228. package/dist/external-tools/jre/asset-names.js +109 -82
  229. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  230. package/dist/external-tools/jre/from-download.js +71 -67
  231. package/dist/external-tools/jre/from-java-home.js +27 -54
  232. package/dist/external-tools/jre/from-path.js +27 -49
  233. package/dist/external-tools/jre/from-vfs.js +39 -60
  234. package/dist/external-tools/jre/resolve.js +55 -68
  235. package/dist/external-tools/jre/types.js +1 -17
  236. package/dist/external-tools/manifest.js +130 -150
  237. package/dist/external-tools/opengrep/asset-names.js +60 -72
  238. package/dist/external-tools/opengrep/from-download.js +58 -80
  239. package/dist/external-tools/opengrep/from-path.js +19 -37
  240. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  241. package/dist/external-tools/opengrep/resolve.js +43 -63
  242. package/dist/external-tools/opengrep/types.js +1 -17
  243. package/dist/external-tools/sbt/asset-names.js +21 -30
  244. package/dist/external-tools/sbt/from-download.js +50 -61
  245. package/dist/external-tools/sbt/from-path.js +23 -38
  246. package/dist/external-tools/sbt/from-vfs.js +30 -44
  247. package/dist/external-tools/sbt/resolve.js +45 -63
  248. package/dist/external-tools/sbt/types.js +1 -17
  249. package/dist/external-tools/synp/asset-names.js +11 -29
  250. package/dist/external-tools/synp/from-download.js +24 -41
  251. package/dist/external-tools/synp/from-path.js +19 -37
  252. package/dist/external-tools/synp/from-vfs.js +22 -43
  253. package/dist/external-tools/synp/resolve.js +43 -62
  254. package/dist/external-tools/synp/types.js +1 -17
  255. package/dist/external-tools/trivy/asset-names.js +51 -62
  256. package/dist/external-tools/trivy/from-download.js +42 -64
  257. package/dist/external-tools/trivy/from-path.js +19 -37
  258. package/dist/external-tools/trivy/from-vfs.js +22 -43
  259. package/dist/external-tools/trivy/resolve.js +43 -63
  260. package/dist/external-tools/trivy/types.js +1 -17
  261. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  262. package/dist/external-tools/trufflehog/from-download.js +44 -62
  263. package/dist/external-tools/trufflehog/from-path.js +21 -37
  264. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  265. package/dist/external-tools/trufflehog/resolve.js +43 -63
  266. package/dist/external-tools/trufflehog/types.js +1 -17
  267. package/dist/external-tools/uv/asset-names.js +64 -74
  268. package/dist/external-tools/uv/from-download.js +44 -65
  269. package/dist/external-tools/uv/from-path.js +19 -37
  270. package/dist/external-tools/uv/from-vfs.js +22 -43
  271. package/dist/external-tools/uv/resolve.js +42 -63
  272. package/dist/external-tools/uv/types.js +1 -17
  273. package/dist/fs/_internal.js +40 -42
  274. package/dist/fs/access.d.ts +32 -0
  275. package/dist/fs/access.js +66 -0
  276. package/dist/fs/encoding.js +80 -97
  277. package/dist/fs/find-up.js +126 -147
  278. package/dist/fs/inspect.js +168 -99
  279. package/dist/fs/path-cache.js +31 -32
  280. package/dist/fs/read-dir.js +102 -79
  281. package/dist/fs/read-file.js +177 -118
  282. package/dist/fs/read-json-cache.js +150 -134
  283. package/dist/fs/read-json.js +172 -187
  284. package/dist/fs/resolve-module.d.ts +57 -0
  285. package/dist/fs/resolve-module.js +40 -0
  286. package/dist/fs/safe.js +278 -169
  287. package/dist/fs/types.js +1 -17
  288. package/dist/fs/unique.js +52 -48
  289. package/dist/fs/validate.js +56 -43
  290. package/dist/fs/write-json.js +109 -75
  291. package/dist/git/_internal.js +251 -216
  292. package/dist/git/changed.js +191 -74
  293. package/dist/git/repo.js +118 -104
  294. package/dist/git/staged.js +172 -62
  295. package/dist/git/types.js +1 -17
  296. package/dist/git/unstaged.js +175 -62
  297. package/dist/github/constants.js +25 -33
  298. package/dist/github/errors.js +46 -38
  299. package/dist/github/fetch.js +137 -82
  300. package/dist/github/ghsa.js +217 -151
  301. package/dist/github/refs-cache.js +54 -43
  302. package/dist/github/refs-graphql.js +97 -89
  303. package/dist/github/refs-rest.js +70 -101
  304. package/dist/github/refs.js +105 -64
  305. package/dist/github/token.js +96 -48
  306. package/dist/github/types.js +1 -17
  307. package/dist/globs/_internal.js +73 -82
  308. package/dist/globs/defaults.js +40 -59
  309. package/dist/globs/match.js +93 -77
  310. package/dist/globs/matcher.js +104 -92
  311. package/dist/globs/stream.js +43 -55
  312. package/dist/globs/types.js +1 -17
  313. package/dist/http-request/_internal.js +11 -38
  314. package/dist/http-request/browser-fetch.js +19 -29
  315. package/dist/http-request/browser.js +188 -206
  316. package/dist/http-request/checksums.js +101 -65
  317. package/dist/http-request/download-types.js +1 -17
  318. package/dist/http-request/download.js +195 -196
  319. package/dist/http-request/errors.js +39 -47
  320. package/dist/http-request/headers.js +95 -80
  321. package/dist/http-request/http-request.js +10 -35
  322. package/dist/http-request/node.js +71 -97
  323. package/dist/http-request/request-attempt.js +232 -285
  324. package/dist/http-request/request-types.js +1 -17
  325. package/dist/http-request/request.js +106 -108
  326. package/dist/http-request/response-reader.js +47 -51
  327. package/dist/http-request/response-types.js +22 -38
  328. package/dist/http-request/user-agent.js +73 -55
  329. package/dist/integrity.js +105 -106
  330. package/dist/ipc/_internal.js +34 -48
  331. package/dist/ipc/directory.js +55 -63
  332. package/dist/ipc/paths.js +52 -45
  333. package/dist/ipc/types.js +1 -17
  334. package/dist/ipc/write.js +81 -74
  335. package/dist/ipc-cli/get.js +29 -56
  336. package/dist/ipc-cli/types.js +1 -17
  337. package/dist/json/edit.js +182 -242
  338. package/dist/json/format.js +202 -103
  339. package/dist/json/parse.js +206 -109
  340. package/dist/json/types.js +1 -17
  341. package/dist/links/create.js +93 -60
  342. package/dist/links/types.js +1 -17
  343. package/dist/logger/_internal.js +109 -73
  344. package/dist/logger/browser.js +45 -56
  345. package/dist/logger/colors.js +31 -49
  346. package/dist/logger/console.js +89 -112
  347. package/dist/logger/default.js +19 -33
  348. package/dist/logger/logger.js +5 -29
  349. package/dist/logger/node.js +794 -854
  350. package/dist/logger/symbols-builder.js +54 -56
  351. package/dist/logger/symbols.js +135 -118
  352. package/dist/logger/types.js +1 -17
  353. package/dist/memo/_internal.js +39 -49
  354. package/dist/memo/async.js +133 -117
  355. package/dist/memo/clear.js +25 -34
  356. package/dist/memo/decorator.js +43 -37
  357. package/dist/memo/memoize.js +97 -88
  358. package/dist/memo/once.js +42 -41
  359. package/dist/memo/types.js +1 -17
  360. package/dist/memo/weak.js +45 -41
  361. package/dist/node/async-hooks.js +9 -30
  362. package/dist/node/child-process.js +9 -30
  363. package/dist/node/crypto.js +9 -30
  364. package/dist/node/events.js +9 -30
  365. package/dist/node/fs-promises.js +9 -30
  366. package/dist/node/fs.js +9 -30
  367. package/dist/node/http.js +9 -30
  368. package/dist/node/https.js +9 -30
  369. package/dist/node/module.js +20 -34
  370. package/dist/node/os.js +9 -30
  371. package/dist/node/path.js +9 -30
  372. package/dist/node/timers-promises.js +9 -30
  373. package/dist/node/url.js +9 -30
  374. package/dist/node/util.js +9 -30
  375. package/dist/objects/getters.js +185 -126
  376. package/dist/objects/inspect.js +85 -52
  377. package/dist/objects/mutate.js +96 -76
  378. package/dist/objects/predicates.js +112 -59
  379. package/dist/objects/sort.js +120 -76
  380. package/dist/objects/types.js +1 -17
  381. package/dist/packages/edit-class.js +198 -265
  382. package/dist/packages/edit.js +79 -86
  383. package/dist/packages/exports.js +146 -157
  384. package/dist/packages/isolation.js +159 -209
  385. package/dist/packages/licenses.js +207 -189
  386. package/dist/packages/manifest.js +134 -172
  387. package/dist/packages/normalize.js +91 -102
  388. package/dist/packages/operations.d.ts +2 -0
  389. package/dist/packages/operations.js +283 -254
  390. package/dist/packages/provenance.js +195 -245
  391. package/dist/packages/specs.js +94 -84
  392. package/dist/packages/types.js +1 -17
  393. package/dist/packages/validation.js +49 -50
  394. package/dist/paths/_internal.js +82 -86
  395. package/dist/paths/conversion.js +112 -65
  396. package/dist/paths/dirnames.js +17 -42
  397. package/dist/paths/exts.js +23 -54
  398. package/dist/paths/filenames.js +21 -50
  399. package/dist/paths/globs.js +15 -38
  400. package/dist/paths/normalize.js +215 -236
  401. package/dist/paths/packages.js +34 -49
  402. package/dist/paths/predicates.js +184 -106
  403. package/dist/paths/resolve.js +146 -128
  404. package/dist/paths/rewire.js +108 -72
  405. package/dist/paths/socket.js +252 -132
  406. package/dist/paths/walk.d.ts +40 -0
  407. package/dist/paths/walk.js +58 -0
  408. package/dist/perf/_internal.js +10 -28
  409. package/dist/perf/enabled.js +21 -30
  410. package/dist/perf/metrics.js +81 -67
  411. package/dist/perf/report.js +79 -80
  412. package/dist/perf/timer.js +180 -126
  413. package/dist/perf/types.js +1 -17
  414. package/dist/pkg-ext/data.js +29 -82
  415. package/dist/pkg-ext/types.js +1 -17
  416. package/dist/primordials/array.js +120 -198
  417. package/dist/primordials/buffer.js +28 -51
  418. package/dist/primordials/date.js +26 -51
  419. package/dist/primordials/error.js +33 -59
  420. package/dist/primordials/function.js +21 -41
  421. package/dist/primordials/globals.js +25 -48
  422. package/dist/primordials/json.js +14 -30
  423. package/dist/primordials/map-set.js +88 -152
  424. package/dist/primordials/math.js +59 -116
  425. package/dist/primordials/number.js +41 -76
  426. package/dist/primordials/object.js +56 -116
  427. package/dist/primordials/promise.js +28 -52
  428. package/dist/primordials/reflect.js +24 -52
  429. package/dist/primordials/regexp.js +25 -47
  430. package/dist/primordials/string.js +114 -167
  431. package/dist/primordials/symbol.js +40 -72
  432. package/dist/primordials/uncurry.js +38 -55
  433. package/dist/primordials/url.js +27 -66
  434. package/dist/process/_internal.js +7 -32
  435. package/dist/process/abort.js +29 -35
  436. package/dist/process/lock-instance.js +26 -30
  437. package/dist/process/lock-manager.js +279 -307
  438. package/dist/process/lock-types.js +1 -17
  439. package/dist/process/spawn/_internal.js +43 -55
  440. package/dist/process/spawn/child.js +172 -211
  441. package/dist/process/spawn/errors.js +116 -113
  442. package/dist/process/spawn/stdio.js +51 -35
  443. package/dist/process/spawn/types.js +1 -17
  444. package/dist/process/transient.js +49 -66
  445. package/dist/promises/_internal.d.ts +8 -2
  446. package/dist/promises/_internal.js +31 -38
  447. package/dist/promises/iterate.js +238 -102
  448. package/dist/promises/options.js +123 -101
  449. package/dist/promises/queue.js +115 -136
  450. package/dist/promises/resolvers.js +77 -46
  451. package/dist/promises/retry.js +156 -101
  452. package/dist/promises/types.js +1 -17
  453. package/dist/regexps/escape.js +32 -30
  454. package/dist/regexps/hex.js +16 -33
  455. package/dist/regexps/spec.js +53 -81
  456. package/dist/releases/github-archives.js +127 -118
  457. package/dist/releases/github-asset-url.js +162 -155
  458. package/dist/releases/github-assets.js +37 -49
  459. package/dist/releases/github-auth.js +32 -48
  460. package/dist/releases/github-downloads.js +118 -138
  461. package/dist/releases/github-listing.js +175 -154
  462. package/dist/releases/github-retry-config.d.ts +31 -0
  463. package/dist/releases/github-retry-config.js +46 -0
  464. package/dist/releases/github-types.js +1 -17
  465. package/dist/releases/socket-btm.js +273 -192
  466. package/dist/schema/parse.js +35 -36
  467. package/dist/schema/types.js +1 -17
  468. package/dist/schema/validate.js +118 -99
  469. package/dist/sea/detect.js +57 -52
  470. package/dist/secrets/_internal.js +86 -67
  471. package/dist/secrets/find.js +96 -77
  472. package/dist/secrets/keychain.js +315 -309
  473. package/dist/secrets/linux.js +133 -135
  474. package/dist/secrets/macos.js +151 -147
  475. package/dist/secrets/rc.js +182 -181
  476. package/dist/secrets/socket-api-token.js +28 -43
  477. package/dist/secrets/types.js +1 -17
  478. package/dist/secrets/windows.js +184 -242
  479. package/dist/shadow/skip.js +51 -70
  480. package/dist/shadow/types.js +1 -17
  481. package/dist/shell/parse.d.ts +26 -0
  482. package/dist/shell/parse.js +35 -0
  483. package/dist/shell/quote.d.ts +19 -0
  484. package/dist/shell/quote.js +30 -0
  485. package/dist/smol/detect.js +67 -43
  486. package/dist/smol/http.js +33 -37
  487. package/dist/smol/https.js +31 -37
  488. package/dist/smol/manifest.js +33 -37
  489. package/dist/smol/path.d.ts +51 -0
  490. package/dist/smol/path.js +38 -0
  491. package/dist/smol/primordial.js +35 -37
  492. package/dist/smol/purl.js +34 -37
  493. package/dist/smol/versions.js +31 -37
  494. package/dist/smol/vfs.js +46 -38
  495. package/dist/sorts/_internal.js +14 -40
  496. package/dist/sorts/natural.js +57 -64
  497. package/dist/sorts/semver.js +33 -43
  498. package/dist/sorts/strings.js +24 -30
  499. package/dist/sorts/types.js +1 -17
  500. package/dist/spinner/default.js +72 -63
  501. package/dist/spinner/format.js +86 -71
  502. package/dist/spinner/spinner.js +749 -797
  503. package/dist/spinner/types.js +1 -17
  504. package/dist/spinner/with.js +193 -137
  505. package/dist/ssri/convert.js +64 -47
  506. package/dist/ssri/parse.js +38 -37
  507. package/dist/ssri/validate.js +51 -34
  508. package/dist/stdio/_internal.js +50 -46
  509. package/dist/stdio/clear.js +208 -86
  510. package/dist/stdio/divider.js +170 -97
  511. package/dist/stdio/footer.js +116 -110
  512. package/dist/stdio/header.js +117 -90
  513. package/dist/stdio/progress.js +189 -218
  514. package/dist/stdio/prompts.js +244 -168
  515. package/dist/stdio/stderr.js +173 -78
  516. package/dist/stdio/stdout.js +177 -94
  517. package/dist/streams/parallel.js +58 -50
  518. package/dist/streams/transform.js +36 -45
  519. package/dist/strings/format.js +145 -63
  520. package/dist/strings/predicates.js +56 -34
  521. package/dist/strings/search.js +52 -42
  522. package/dist/strings/transform.js +113 -72
  523. package/dist/strings/types.js +1 -17
  524. package/dist/strings/width.js +89 -82
  525. package/dist/tables/bordered.js +81 -81
  526. package/dist/tables/padding.js +36 -46
  527. package/dist/tables/simple.js +62 -70
  528. package/dist/tables/types.js +1 -17
  529. package/dist/temporal/instant.js +72 -81
  530. package/dist/temporal/now.js +40 -31
  531. package/dist/temporal/slots.js +42 -36
  532. package/dist/temporal/system.js +36 -36
  533. package/dist/temporal/temporal.js +11 -41
  534. package/dist/themes/context.js +131 -69
  535. package/dist/themes/resolve.js +207 -132
  536. package/dist/themes/themes.js +225 -194
  537. package/dist/themes/types.js +1 -17
  538. package/dist/url/parse.js +48 -51
  539. package/dist/url/predicates.js +24 -31
  540. package/dist/url/search-params.js +133 -101
  541. package/dist/url/types.js +1 -17
  542. package/dist/versions/_internal.js +31 -33
  543. package/dist/versions/compare.js +80 -58
  544. package/dist/versions/modify.js +41 -39
  545. package/dist/versions/parse.js +88 -64
  546. package/dist/versions/range.js +58 -41
  547. package/dist/versions/types.js +1 -17
  548. package/dist/words/article.js +22 -30
  549. package/dist/words/capitalize.js +25 -34
  550. package/dist/words/pluralize.js +23 -31
  551. package/dist/words/types.js +1 -17
  552. package/package.json +42 -5
@@ -0,0 +1,46 @@
1
+ "use strict";
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
+ */
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
+ */
33
+ function resolveBaseDelayMs() {
34
+ return /* @__PURE__ */ require_env_number.envAsNumber(require_env_rewire.getEnvValue("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"), DEFAULT_BASE_DELAY_MS);
35
+ }
36
+ const GITHUB_RETRY_CONFIG = require_primordials_object.ObjectFreeze({
37
+ __proto__: null,
38
+ backoffFactor: 2,
39
+ baseDelayMs: resolveBaseDelayMs(),
40
+ retries: 2
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;
@@ -1,39 +1,38 @@
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 parse_exports = {};
22
- __export(parse_exports, {
23
- parseSchema: () => parseSchema
24
- });
25
- module.exports = __toCommonJS(parse_exports);
26
- var import_validate = require("./validate");
27
- 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_schema_validate = require('./validate.js');
6
+
7
+ //#region src/schema/parse.ts
8
+ /**
9
+ * @file Throwing twin of `validateSchema`. Use `parseSchema(schema, data)` for
10
+ * fail-fast trust boundaries (app startup, config files, internal
11
+ * assertions). Use the non-throwing `validateSchema` for recoverable input
12
+ * (form fields, API request bodies, anywhere errors need to surface to a
13
+ * user).
14
+ *
15
+ * @example
16
+ * ;```ts
17
+ * import { z } from 'zod'
18
+ * import { parseSchema } from '@socketsecurity/lib/schema/parse'
19
+ *
20
+ * const Config = z.object({ host: z.string(), port: z.number() })
21
+ * const config = parseSchema(Config, json) // throws on invalid
22
+ * ```
23
+ */
24
+ /**
25
+ * Parse `data` against `schema` and return the validated value.
26
+ *
27
+ * @throws {Error} When validation fails. The message lists all issues as `path:
28
+ * message, path: message, ...`. Use `validateSchema` if you need structured
29
+ * access to the error list.
30
+ */
28
31
  function parseSchema(schema, data) {
29
- const result = (0, import_validate.validateSchema)(schema, data);
30
- if (result.ok) {
31
- return result.value;
32
- }
33
- const summary = result.errors.map((e) => `${e.path.join(".") || "(root)"}: ${e.message}`).join(", ");
34
- throw new import_error.ErrorCtor(`Validation failed: ${summary}`);
32
+ const result = require_schema_validate.validateSchema(schema, data);
33
+ if (result.ok) return result.value;
34
+ throw new require_primordials_error.ErrorCtor(`Validation failed: ${result.errors.map((e) => `${e.path.join(".") || "(root)"}: ${e.message}`).join(", ")}`);
35
35
  }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- parseSchema
39
- });
36
+
37
+ //#endregion
38
+ exports.parseSchema = parseSchema;
@@ -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 types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
2
+ /* Socket Lib - Built with rolldown */