@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
@@ -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 */
@@ -1,144 +1,200 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __create = Object.create;
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __export = (target, all) => {
11
- for (var name in all)
12
- __defProp(target, name, { get: all[name], enumerable: true });
13
- };
14
- var __copyProps = (to, from, except, desc) => {
15
- if (from && typeof from === "object" || typeof from === "function") {
16
- for (let key of __getOwnPropNames(from))
17
- if (!__hasOwnProp.call(to, key) && key !== except)
18
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
- mod
29
- ));
30
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
- var with_exports = {};
32
- __export(with_exports, {
33
- withSpinner: () => withSpinner,
34
- withSpinnerRestore: () => withSpinnerRestore,
35
- withSpinnerSync: () => withSpinnerSync
36
- });
37
- module.exports = __toCommonJS(with_exports);
38
- var import_node_process = __toESM(require("node:process"));
39
- var import_convert = require("../colors/convert");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
+ const require_colors_convert = require('../colors/convert.js');
6
+ let node_process = require("node:process");
7
+ node_process = require_runtime.__toESM(node_process);
8
+
9
+ //#region src/spinner/with.ts
10
+ /**
11
+ * @file Lifecycle wrappers around `Spinner` — `withSpinner` (async, push-pop
12
+ * options + auto-stop), `withSpinnerRestore` (conditionally restart a
13
+ * previously-spinning instance), and `withSpinnerSync` (sync sibling of
14
+ * `withSpinner`). Each wrapper guarantees `spinner.stop()` runs via
15
+ * `try/finally` even when the inner operation throws, then re-throws the
16
+ * original error so callers see the same failure surface as a plain `await`.
17
+ */
18
+ /**
19
+ * Execute an async operation with spinner lifecycle management. Ensures
20
+ * `spinner.stop()` is always called via try/finally, even if the operation
21
+ * throws. Provides safe cleanup and consistent spinner behavior.
22
+ *
23
+ * @example
24
+ * ;```ts
25
+ * import { Spinner } from '@socketsecurity/lib/spinner/spinner'
26
+ * import { withSpinner } from '@socketsecurity/lib/spinner/with'
27
+ *
28
+ * const spinner = Spinner()
29
+ *
30
+ * // With spinner instance
31
+ * const result = await withSpinner({
32
+ * message: 'Processing…',
33
+ * operation: async () => {
34
+ * return await processData()
35
+ * },
36
+ * spinner,
37
+ * })
38
+ *
39
+ * // Without spinner instance (no-op, just runs operation)
40
+ * const result = await withSpinner({
41
+ * message: 'Processing…',
42
+ * operation: async () => {
43
+ * return await processData()
44
+ * },
45
+ * })
46
+ * ```
47
+ *
48
+ * @template T - Return type of the operation.
49
+ *
50
+ * @param options - Configuration object.
51
+ * @param options.message - Message to display while spinner is running.
52
+ * @param options.operation - Async function to execute.
53
+ * @param options.spinner - Optional spinner instance (if not provided, no
54
+ * spinner is used)
55
+ *
56
+ * @returns Result of the operation
57
+ *
58
+ * @throws Re-throws any error from operation after stopping spinner
59
+ */
40
60
  async function withSpinner(options) {
41
- const { message, operation, spinner, withOptions } = {
42
- __proto__: null,
43
- ...options
44
- };
45
- if (!spinner) {
46
- return await operation();
47
- }
48
- const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
49
- const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
50
- if (withOptions?.color !== void 0) {
51
- spinner.color = (0, import_convert.toRgb)(withOptions.color);
52
- }
53
- if (withOptions?.shimmer !== void 0) {
54
- if (typeof withOptions.shimmer === "string") {
55
- spinner.updateShimmer({ dir: withOptions.shimmer });
56
- } else {
57
- spinner.setShimmer(withOptions.shimmer);
58
- }
59
- }
60
- spinner.start(message);
61
- try {
62
- return await operation();
63
- } finally {
64
- const wasSpinning = spinner.isSpinning;
65
- spinner.stop();
66
- if (wasSpinning) {
67
- import_node_process.default.stderr.write("\r\x1B[2K");
68
- }
69
- if (savedColor !== void 0) {
70
- spinner.color = savedColor;
71
- }
72
- if (withOptions?.shimmer !== void 0) {
73
- if (savedShimmerState) {
74
- spinner.setShimmer({
75
- color: savedShimmerState.color,
76
- dir: savedShimmerState.direction,
77
- speed: savedShimmerState.speed
78
- });
79
- } else {
80
- spinner.disableShimmer();
81
- }
82
- }
83
- }
61
+ const { message, operation, spinner, withOptions } = {
62
+ __proto__: null,
63
+ ...options
64
+ };
65
+ if (!spinner) return await operation();
66
+ const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
67
+ const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
68
+ if (withOptions?.color !== void 0) spinner.color = require_colors_convert.toRgb(withOptions.color);
69
+ if (withOptions?.shimmer !== void 0) if (typeof withOptions.shimmer === "string") spinner.updateShimmer({ dir: withOptions.shimmer });
70
+ else spinner.setShimmer(withOptions.shimmer);
71
+ spinner.start(message);
72
+ try {
73
+ return await operation();
74
+ } finally {
75
+ const wasSpinning = spinner.isSpinning;
76
+ spinner.stop();
77
+ /* c8 ignore start */
78
+ if (wasSpinning) node_process.default.stderr.write("\r\x1B[2K");
79
+ if (savedColor !== void 0) spinner.color = savedColor;
80
+ if (withOptions?.shimmer !== void 0) if (savedShimmerState) spinner.setShimmer({
81
+ color: savedShimmerState.color,
82
+ dir: savedShimmerState.direction,
83
+ speed: savedShimmerState.speed
84
+ });
85
+ else spinner.disableShimmer();
86
+ }
84
87
  }
88
+ /**
89
+ * Execute an async operation with conditional spinner restart. Useful when you
90
+ * need to temporarily stop a spinner for an operation, then restore it to its
91
+ * previous state (if it was spinning).
92
+ *
93
+ * @example
94
+ * ;```ts
95
+ * import { getDefaultSpinner } from '@socketsecurity/lib/spinner/default'
96
+ * import { withSpinnerRestore } from '@socketsecurity/lib/spinner/with'
97
+ *
98
+ * const spinner = getDefaultSpinner()
99
+ * const wasSpinning = spinner.isSpinning
100
+ * spinner.stop()
101
+ *
102
+ * const result = await withSpinnerRestore({
103
+ * operation: async () => {
104
+ * // Do work without spinner
105
+ * return await someOperation()
106
+ * },
107
+ * spinner,
108
+ * wasSpinning,
109
+ * })
110
+ * // Spinner is automatically restarted if wasSpinning was true
111
+ * ```
112
+ *
113
+ * @template T - Return type of the operation.
114
+ *
115
+ * @param options - Configuration object.
116
+ * @param options.operation - Async function to execute.
117
+ * @param options.spinner - Optional spinner instance to manage.
118
+ * @param options.wasSpinning - Whether spinner was spinning before the
119
+ * operation.
120
+ *
121
+ * @returns Result of the operation
122
+ *
123
+ * @throws Re-throws any error from operation after restoring spinner state
124
+ */
85
125
  async function withSpinnerRestore(options) {
86
- const { operation, spinner, wasSpinning } = {
87
- __proto__: null,
88
- ...options
89
- };
90
- try {
91
- return await operation();
92
- } finally {
93
- if (spinner && wasSpinning) {
94
- spinner.start();
95
- }
96
- }
126
+ const { operation, spinner, wasSpinning } = {
127
+ __proto__: null,
128
+ ...options
129
+ };
130
+ try {
131
+ return await operation();
132
+ } finally {
133
+ if (spinner && wasSpinning) spinner.start();
134
+ }
97
135
  }
136
+ /**
137
+ * Execute a synchronous operation with spinner lifecycle management. Ensures
138
+ * `spinner.stop()` is always called via try/finally, even if the operation
139
+ * throws. Provides safe cleanup and consistent spinner behavior for sync
140
+ * operations.
141
+ *
142
+ * @example
143
+ * ;```ts
144
+ * import { Spinner } from '@socketsecurity/lib/spinner/spinner'
145
+ * import { withSpinnerSync } from '@socketsecurity/lib/spinner/with'
146
+ *
147
+ * const spinner = Spinner()
148
+ *
149
+ * const result = withSpinnerSync({
150
+ * message: 'Processing…',
151
+ * operation: () => {
152
+ * return processDataSync()
153
+ * },
154
+ * spinner,
155
+ * })
156
+ * ```
157
+ *
158
+ * @template T - Return type of the operation.
159
+ *
160
+ * @param options - Configuration object.
161
+ * @param options.message - Message to display while spinner is running.
162
+ * @param options.operation - Synchronous function to execute.
163
+ * @param options.spinner - Optional spinner instance (if not provided, no
164
+ * spinner is used)
165
+ *
166
+ * @returns Result of the operation
167
+ *
168
+ * @throws Re-throws any error from operation after stopping spinner
169
+ */
98
170
  function withSpinnerSync(options) {
99
- const { message, operation, spinner, withOptions } = {
100
- __proto__: null,
101
- ...options
102
- };
103
- if (!spinner) {
104
- return operation();
105
- }
106
- const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
107
- const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
108
- if (withOptions?.color !== void 0) {
109
- spinner.color = (0, import_convert.toRgb)(withOptions.color);
110
- }
111
- if (withOptions?.shimmer !== void 0) {
112
- if (typeof withOptions.shimmer === "string") {
113
- spinner.updateShimmer({ dir: withOptions.shimmer });
114
- } else {
115
- spinner.setShimmer(withOptions.shimmer);
116
- }
117
- }
118
- spinner.start(message);
119
- try {
120
- return operation();
121
- } finally {
122
- spinner.stop();
123
- if (savedColor !== void 0) {
124
- spinner.color = savedColor;
125
- }
126
- if (withOptions?.shimmer !== void 0) {
127
- if (savedShimmerState) {
128
- spinner.setShimmer({
129
- color: savedShimmerState.color,
130
- dir: savedShimmerState.direction,
131
- speed: savedShimmerState.speed
132
- });
133
- } else {
134
- spinner.disableShimmer();
135
- }
136
- }
137
- }
171
+ const { message, operation, spinner, withOptions } = {
172
+ __proto__: null,
173
+ ...options
174
+ };
175
+ if (!spinner) return operation();
176
+ const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
177
+ const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
178
+ if (withOptions?.color !== void 0) spinner.color = require_colors_convert.toRgb(withOptions.color);
179
+ if (withOptions?.shimmer !== void 0) if (typeof withOptions.shimmer === "string") spinner.updateShimmer({ dir: withOptions.shimmer });
180
+ else spinner.setShimmer(withOptions.shimmer);
181
+ spinner.start(message);
182
+ try {
183
+ return operation();
184
+ } finally {
185
+ spinner.stop();
186
+ /* c8 ignore start */
187
+ if (savedColor !== void 0) spinner.color = savedColor;
188
+ if (withOptions?.shimmer !== void 0) if (savedShimmerState) spinner.setShimmer({
189
+ color: savedShimmerState.color,
190
+ dir: savedShimmerState.direction,
191
+ speed: savedShimmerState.speed
192
+ });
193
+ else spinner.disableShimmer();
194
+ }
138
195
  }
139
- // Annotate the CommonJS export names for ESM import in node:
140
- 0 && (module.exports = {
141
- withSpinner,
142
- withSpinnerRestore,
143
- withSpinnerSync
144
- });
196
+
197
+ //#endregion
198
+ exports.withSpinner = withSpinner;
199
+ exports.withSpinnerRestore = withSpinnerRestore;
200
+ exports.withSpinnerSync = withSpinnerSync;
@@ -1,52 +1,69 @@
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 convert_exports = {};
22
- __export(convert_exports, {
23
- hexToSsri: () => hexToSsri,
24
- ssriToHex: () => ssriToHex
25
- });
26
- module.exports = __toCommonJS(convert_exports);
27
- var import_buffer = require("../primordials/buffer");
28
- var import_error = require("../primordials/error");
29
- // @__NO_SIDE_EFFECTS__
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_buffer = require('../primordials/buffer.js');
5
+ const require_primordials_error = require('../primordials/error.js');
6
+
7
+ //#region src/ssri/convert.ts
8
+ /**
9
+ * @file SSRI hex digest conversion helpers — `hexToSsri` wraps a hex digest
10
+ * in `<algorithm>-<base64>` form, `ssriToHex` decodes the base64 half back to
11
+ * hex.
12
+ */
13
+ /**
14
+ * Convert hex format hash to SSRI format.
15
+ *
16
+ * Takes a hash in hex format and converts it to SSRI format with the specified
17
+ * algorithm prefix (defaults to sha256).
18
+ *
19
+ * @example
20
+ * ;```typescript
21
+ * const ssri = hexToSsri(
22
+ * '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856',
23
+ * )
24
+ * // Returns: 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY='
25
+ * ```
26
+ *
27
+ * @param hex - Hash in hex format.
28
+ * @param algorithm - Hash algorithm (default: 'sha256')
29
+ *
30
+ * @returns SSRI format hash (algorithm-base64)
31
+ *
32
+ * @throws Error if hex format is invalid
33
+ */
34
+ /* @__NO_SIDE_EFFECTS__ */
30
35
  function hexToSsri(hex, algorithm = "sha256") {
31
- if (!/^[a-f0-9]+$/i.test(hex)) {
32
- throw new import_error.ErrorCtor(`Invalid hex format: ${hex}`);
33
- }
34
- const buffer = (0, import_buffer.BufferFrom)(hex, "hex");
35
- const base64Hash = (0, import_buffer.BufferPrototypeToString)(buffer, "base64");
36
- return `${algorithm}-${base64Hash}`;
36
+ if (!/^[a-f0-9]+$/i.test(hex)) throw new require_primordials_error.ErrorCtor(`Invalid hex format: ${hex}`);
37
+ return `${algorithm}-${require_primordials_buffer.BufferPrototypeToString(require_primordials_buffer.BufferFrom(hex, "hex"), "base64")}`;
37
38
  }
38
- // @__NO_SIDE_EFFECTS__
39
+ /**
40
+ * Convert SSRI format hash to hex format.
41
+ *
42
+ * Takes a hash in SSRI format (e.g., "sha256-base64hash") and converts it to
43
+ * standard hex format (e.g., "hexstring").
44
+ *
45
+ * @example
46
+ * ;```typescript
47
+ * const hex = ssriToHex(
48
+ * 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=',
49
+ * )
50
+ * // Returns: '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856'
51
+ * ```
52
+ *
53
+ * @param ssri - Hash in SSRI format (algorithm-base64)
54
+ *
55
+ * @returns Hex string representation of the hash
56
+ *
57
+ * @throws Error if SSRI format is invalid
58
+ */
59
+ /* @__NO_SIDE_EFFECTS__ */
39
60
  function ssriToHex(ssri) {
40
- const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
41
- if (!match || !match[2] || match[2].length < 2) {
42
- throw new import_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
43
- }
44
- const base64Hash = match[2];
45
- const buffer = (0, import_buffer.BufferFrom)(base64Hash, "base64");
46
- return (0, import_buffer.BufferPrototypeToString)(buffer, "hex");
61
+ const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
62
+ if (!match || !match[2] || match[2].length < 2) throw new require_primordials_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
63
+ const base64Hash = match[2];
64
+ return require_primordials_buffer.BufferPrototypeToString(require_primordials_buffer.BufferFrom(base64Hash, "base64"), "hex");
47
65
  }
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- hexToSsri,
51
- ssriToHex
52
- });
66
+
67
+ //#endregion
68
+ exports.hexToSsri = hexToSsri;
69
+ exports.ssriToHex = ssriToHex;
@@ -1,40 +1,41 @@
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
- parseSsri: () => parseSsri
24
- });
25
- module.exports = __toCommonJS(parse_exports);
26
- var import_error = require("../primordials/error");
27
- // @__NO_SIDE_EFFECTS__
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+
6
+ //#region src/ssri/parse.ts
7
+ /**
8
+ * @file SSRI parser splits a `<algorithm>-<base64hash>` string into its
9
+ * component fields.
10
+ */
11
+ /**
12
+ * Parse SSRI format into components.
13
+ *
14
+ * Extracts the algorithm and base64 hash from an SSRI string.
15
+ *
16
+ * @example
17
+ * ;```typescript
18
+ * const { algorithm, base64Hash } = parseSsri(
19
+ * 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=',
20
+ * )
21
+ * // Returns: { algorithm: 'sha256', base64Hash: 'dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=' }
22
+ * ```
23
+ *
24
+ * @param ssri - Hash in SSRI format.
25
+ *
26
+ * @returns Object with algorithm and base64Hash properties
27
+ *
28
+ * @throws Error if SSRI format is invalid
29
+ */
30
+ /* @__NO_SIDE_EFFECTS__ */
28
31
  function parseSsri(ssri) {
29
- const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
30
- if (!match || !match[1] || !match[2] || match[2].length < 2) {
31
- throw new import_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
32
- }
33
- const algorithm = match[1];
34
- const base64Hash = match[2];
35
- return { algorithm, base64Hash };
32
+ const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
33
+ if (!match || !match[1] || !match[2] || match[2].length < 2) throw new require_primordials_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
34
+ return {
35
+ algorithm: match[1],
36
+ base64Hash: match[2]
37
+ };
36
38
  }
37
- // Annotate the CommonJS export names for ESM import in node:
38
- 0 && (module.exports = {
39
- parseSsri
40
- });
39
+
40
+ //#endregion
41
+ exports.parseSsri = parseSsri;
@@ -1,39 +1,56 @@
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 validate_exports = {};
22
- __export(validate_exports, {
23
- isValidHex: () => isValidHex,
24
- isValidSsri: () => isValidSsri
25
- });
26
- module.exports = __toCommonJS(validate_exports);
27
- // @__NO_SIDE_EFFECTS__
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ //#region src/ssri/validate.ts
6
+ /**
7
+ * @file SSRI/hex format validators — predicates that report whether a string
8
+ * looks like a hex digest or an SSRI integrity string. Validation is purely
9
+ * lexical; the predicates do not verify algorithm strength or digest length.
10
+ */
11
+ /**
12
+ * Check if a string is valid hex format.
13
+ *
14
+ * Validates that a string contains only hexadecimal characters (0-9, a-f). Does
15
+ * not verify hash length or algorithm.
16
+ *
17
+ * @example
18
+ * ;```typescript
19
+ * isValidHex(
20
+ * '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856',
21
+ * ) // true
22
+ * isValidHex('sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=') // false
23
+ * ```
24
+ *
25
+ * @param value - String to validate.
26
+ *
27
+ * @returns True if string is valid hex format
28
+ */
29
+ /* @__NO_SIDE_EFFECTS__ */
28
30
  function isValidHex(value) {
29
- return /^[a-f0-9]+$/i.test(value);
31
+ return /^[a-f0-9]+$/i.test(value);
30
32
  }
31
- // @__NO_SIDE_EFFECTS__
33
+ /**
34
+ * Check if a string is valid SSRI format.
35
+ *
36
+ * Validates that a string matches the SSRI format pattern (algorithm-base64).
37
+ * Does not verify that the base64 encoding is valid.
38
+ *
39
+ * @example
40
+ * ;```typescript
41
+ * isValidSsri('sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=') // true
42
+ * isValidSsri('76682a9f...') // false
43
+ * ```
44
+ *
45
+ * @param value - String to validate.
46
+ *
47
+ * @returns True if string matches SSRI format
48
+ */
49
+ /* @__NO_SIDE_EFFECTS__ */
32
50
  function isValidSsri(value) {
33
- return /^[a-z0-9]+-[A-Za-z0-9+/]{2,}=*$/i.test(value);
51
+ return /^[a-z0-9]+-[A-Za-z0-9+/]{2,}=*$/i.test(value);
34
52
  }
35
- // Annotate the CommonJS export names for ESM import in node:
36
- 0 && (module.exports = {
37
- isValidHex,
38
- isValidSsri
39
- });
53
+
54
+ //#endregion
55
+ exports.isValidHex = isValidHex;
56
+ exports.isValidSsri = isValidSsri;