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