@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,293 +1,241 @@
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 primordials_exports = {};
32
- __export(primordials_exports, {
33
- checkPrimordials: () => checkPrimordials,
34
- collectJsFiles: () => collectJsFiles,
35
- extractPrimordialsNames: () => extractPrimordialsNames,
36
- extractTsExports: () => extractTsExports,
37
- readSocketLibPrimordialNames: () => readSocketLibPrimordialNames,
38
- resolveSocketLibPrimordials: () => resolveSocketLibPrimordials,
39
- stripComments: () => stripComments
40
- });
41
- module.exports = __toCommonJS(primordials_exports);
42
- var import_node_fs = require("node:fs");
43
- var import_node_path = __toESM(require("node:path"));
44
- var import_join = require("../arrays/join");
45
- var import_error = require("../primordials/error");
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_primordials_error = require('../primordials/error.js');
6
+ const require_arrays_join = require('../arrays/join.js');
7
+ let node_fs = require("node:fs");
8
+ let node_path = require("node:path");
9
+ node_path = require_runtime.__toESM(node_path);
10
+
11
+ //#region src/checks/primordials.ts
12
+ /**
13
+ * @file Primordials drift check — generic core. Each fleet repo that
14
+ * destructures from Node's internal `primordials` global needs to keep its
15
+ * usage shape-aligned with socket-lib's userland mirror
16
+ * (`@socketsecurity/lib/primordials`). This module is the parser + diff
17
+ * engine; per-repo policy (which dirs to scan, naming aliases, allowlist)
18
+ * lives in a config the caller supplies. Used by the `socket-lib check
19
+ * primordials` CLI subcommand. Kept importable as a library so repos with
20
+ * bespoke needs can compose it directly without going through the CLI. The
21
+ * flow:
22
+ *
23
+ * 1. Walk the configured `scanDirs` for `*.js` files.
24
+ * 2. From each file, extract names from every `const { Foo, Bar } = primordials`
25
+ * destructure.
26
+ * 3. Read socket-lib's `primordials/` directory (sibling clone) or
27
+ * `primordials/*.d.ts` (installed `node_modules`) and pull every exported
28
+ * name across all leaves.
29
+ * 4. Diff: every destructured name must be either (a) in socket-lib verbatim,
30
+ * (b) in socket-lib via the configured alias map, or (c) in the configured
31
+ * node-internal-only allowlist. Findings come back classified so callers
32
+ * can render or fail-CI on specific kinds.
33
+ */
46
34
  const NAME_HEAD_RE = /^([A-Za-z_$][A-Za-z0-9_$]*)/;
35
+ /**
36
+ * Run the primordials drift check against the configured repo. Returns the full
37
+ * result including raw inputs (used names, lib exports) so renderers can show
38
+ * context, plus a sorted list of findings classified by kind.
39
+ */
47
40
  function checkPrimordials(config) {
48
- const repoRoot = config.repoRoot ?? process.cwd();
49
- const used = /* @__PURE__ */ new Set();
50
- const usedToFiles = /* @__PURE__ */ new Map();
51
- for (const dir of config.scanDirs) {
52
- const fullDir = import_node_path.default.resolve(repoRoot, dir);
53
- const jsFiles = collectJsFiles(fullDir);
54
- for (const file of jsFiles) {
55
- let src;
56
- try {
57
- src = (0, import_node_fs.readFileSync)(file, "utf8");
58
- } catch {
59
- continue;
60
- }
61
- if (!src.includes("primordials")) {
62
- continue;
63
- }
64
- const names = extractPrimordialsNames(src);
65
- if (names.length === 0) {
66
- continue;
67
- }
68
- const rel = import_node_path.default.relative(repoRoot, file);
69
- for (const name of names) {
70
- used.add(name);
71
- const arr = usedToFiles.get(name) ?? [];
72
- if (!arr.includes(rel)) {
73
- arr.push(rel);
74
- }
75
- usedToFiles.set(name, arr);
76
- }
77
- }
78
- }
79
- const socketLibPath = resolveSocketLibPrimordials(config);
80
- const socketLibNames = readSocketLibPrimordialNames(socketLibPath);
81
- const findings = [];
82
- for (const name of [...used].sort()) {
83
- if (config.nodeInternalOnly.has(name)) {
84
- continue;
85
- }
86
- if (socketLibNames.has(name)) {
87
- continue;
88
- }
89
- const aliased = config.aliasMap.get(name);
90
- if (aliased) {
91
- if (socketLibNames.has(aliased)) {
92
- continue;
93
- }
94
- findings.push({
95
- kind: "missing-from-socket-lib",
96
- name,
97
- files: usedToFiles.get(name) ?? [],
98
- hint: `\`${name}\` is mapped to socket-lib's \`${aliased}\`, but \`${aliased}\` is not exported. Add \`export const ${aliased} = ${name}\` to the appropriate leaf under socket-lib/src/primordials/.`
99
- });
100
- continue;
101
- }
102
- findings.push({
103
- kind: "unmapped",
104
- name,
105
- files: usedToFiles.get(name) ?? [],
106
- hint: `\`${name}\` is destructured from \`primordials\` but no socket-lib mapping exists. Pick one: ` + (0, import_join.joinOr)([
107
- `add \`${name}\` to the appropriate leaf under socket-lib/src/primordials/`,
108
- `add a \`${name}\` \u2192 \`<libName>\` entry to the alias map`,
109
- `add \`${name}\` to nodeInternalOnly (if Node-internal only)`
110
- ]) + "."
111
- });
112
- }
113
- return {
114
- used,
115
- usedToFiles,
116
- socketLibNames,
117
- findings
118
- };
41
+ const repoRoot = config.repoRoot ?? process.cwd();
42
+ const used = /* @__PURE__ */ new Set();
43
+ const usedToFiles = /* @__PURE__ */ new Map();
44
+ for (const dir of config.scanDirs) {
45
+ const jsFiles = collectJsFiles(node_path.default.resolve(repoRoot, dir));
46
+ for (const file of jsFiles) {
47
+ let src;
48
+ try {
49
+ src = (0, node_fs.readFileSync)(file, "utf8");
50
+ } catch {
51
+ continue;
52
+ }
53
+ /* c8 ignore stop */
54
+ if (!src.includes("primordials")) continue;
55
+ const names = extractPrimordialsNames(src);
56
+ if (names.length === 0) continue;
57
+ const rel = node_path.default.relative(repoRoot, file);
58
+ for (const name of names) {
59
+ used.add(name);
60
+ const arr = usedToFiles.get(name) ?? [];
61
+ if (!arr.includes(rel)) arr.push(rel);
62
+ usedToFiles.set(name, arr);
63
+ }
64
+ }
65
+ }
66
+ const socketLibNames = readSocketLibPrimordialNames(resolveSocketLibPrimordials(config));
67
+ const findings = [];
68
+ for (const name of [...used].sort()) {
69
+ if (config.nodeInternalOnly.has(name)) continue;
70
+ if (socketLibNames.has(name)) continue;
71
+ const aliased = config.aliasMap.get(name);
72
+ /* c8 ignore start */
73
+ if (aliased) {
74
+ if (socketLibNames.has(aliased)) continue;
75
+ findings.push({
76
+ kind: "missing-from-socket-lib",
77
+ name,
78
+ files: usedToFiles.get(name) ?? [],
79
+ hint: `\`${name}\` is mapped to socket-lib's \`${aliased}\`, but \`${aliased}\` is not exported. Add \`export const ${aliased} = ${name}\` to the appropriate leaf under socket-lib/src/primordials/.`
80
+ });
81
+ continue;
82
+ }
83
+ /* c8 ignore stop */
84
+ findings.push({
85
+ kind: "unmapped",
86
+ name,
87
+ files: usedToFiles.get(name) ?? [],
88
+ hint: `\`${name}\` is destructured from \`primordials\` but no socket-lib mapping exists. Pick one: ` + /* @__PURE__ */ require_arrays_join.joinOr([
89
+ `add \`${name}\` to the appropriate leaf under socket-lib/src/primordials/`,
90
+ `add a \`${name}\` \`<libName>\` entry to the alias map`,
91
+ `add \`${name}\` to nodeInternalOnly (if Node-internal only)`
92
+ ]) + "."
93
+ });
94
+ }
95
+ return {
96
+ used,
97
+ usedToFiles,
98
+ socketLibNames,
99
+ findings
100
+ };
119
101
  }
102
+ /**
103
+ * Recursively collect every `*.js` file under `dir`.
104
+ */
120
105
  function collectJsFiles(dir) {
121
- const out = [];
122
- if (!(0, import_node_fs.existsSync)(dir)) {
123
- return out;
124
- }
125
- const stack = [dir];
126
- while (stack.length > 0) {
127
- const cur = stack.pop();
128
- let entries;
129
- try {
130
- entries = (0, import_node_fs.readdirSync)(cur);
131
- } catch {
132
- continue;
133
- }
134
- for (const name of entries) {
135
- const full = import_node_path.default.join(cur, name);
136
- let stat;
137
- try {
138
- stat = (0, import_node_fs.statSync)(full);
139
- } catch {
140
- continue;
141
- }
142
- if (stat.isDirectory()) {
143
- stack.push(full);
144
- } else if (stat.isFile() && full.endsWith(".js")) {
145
- out.push(full);
146
- }
147
- }
148
- }
149
- return out;
106
+ const out = [];
107
+ if (!(0, node_fs.existsSync)(dir)) return out;
108
+ const stack = [dir];
109
+ while (stack.length > 0) {
110
+ const cur = stack.pop();
111
+ let entries;
112
+ try {
113
+ entries = (0, node_fs.readdirSync)(cur);
114
+ } catch {
115
+ continue;
116
+ }
117
+ for (const name of entries) {
118
+ const full = node_path.default.join(cur, name);
119
+ let stat;
120
+ try {
121
+ stat = (0, node_fs.statSync)(full);
122
+ } catch {
123
+ continue;
124
+ }
125
+ if (stat.isDirectory()) stack.push(full);
126
+ else if (stat.isFile() && full.endsWith(".js")) out.push(full);
127
+ }
128
+ }
129
+ return out;
150
130
  }
131
+ /**
132
+ * Pull every `const { … } = primordials` destructure body out of `src`.
133
+ * Comments are stripped first so commentary inside a destructure doesn't leak
134
+ * into captured names. The body regex disallows nested `}`, which is safe after
135
+ * the comment-strip pass — destructures themselves don't contain `}`.
136
+ */
151
137
  function extractPrimordialsNames(src) {
152
- const cleaned = stripComments(src);
153
- const re = /const\s*\{\s*([^}]*?)\}\s*=\s*primordials\b/g;
154
- const out = [];
155
- let m;
156
- while ((m = re.exec(cleaned)) !== null) {
157
- for (const raw of m[1].split(",")) {
158
- const trimmed = raw.trim();
159
- if (!trimmed) {
160
- continue;
161
- }
162
- const nameMatch = NAME_HEAD_RE.exec(trimmed);
163
- if (nameMatch) {
164
- out.push(nameMatch[1]);
165
- }
166
- }
167
- }
168
- return out;
138
+ const cleaned = stripComments(src);
139
+ const re = /const\s*\{\s*([^}]*?)\}\s*=\s*primordials\b/g;
140
+ const out = [];
141
+ let m;
142
+ while ((m = re.exec(cleaned)) !== null) for (const raw of m[1].split(",")) {
143
+ const trimmed = raw.trim();
144
+ if (!trimmed) continue;
145
+ const nameMatch = NAME_HEAD_RE.exec(trimmed);
146
+ /* c8 ignore start */
147
+ if (nameMatch) out.push(nameMatch[1]);
148
+ }
149
+ return out;
169
150
  }
151
+ /**
152
+ * Pull every `export const Foo` / `export function Foo` / `export { Foo }` from
153
+ * a TS file. Also matches `.d.ts` declaration forms (`export declare const
154
+ * Foo`, `export declare function Foo`) since the fallback path reads
155
+ * `primordials.d.ts` from `node_modules` when no sibling clone is present.
156
+ */
170
157
  function extractTsExports(src) {
171
- const out = /* @__PURE__ */ new Set();
172
- for (const m of src.matchAll(
173
- /^export\s+(?:declare\s+)?const\s+([A-Za-z_$][A-Za-z0-9_$]*)/gm
174
- )) {
175
- out.add(m[1]);
176
- }
177
- for (const m of src.matchAll(
178
- /^export\s+(?:declare\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)/gm
179
- )) {
180
- out.add(m[1]);
181
- }
182
- for (const m of src.matchAll(/^export\s*\{\s*([^}]+)\}/gm)) {
183
- for (const raw of m[1].split(",")) {
184
- const trimmed = raw.trim();
185
- if (!trimmed) {
186
- continue;
187
- }
188
- const nameMatch = NAME_HEAD_RE.exec(trimmed);
189
- if (nameMatch) {
190
- out.add(nameMatch[1]);
191
- }
192
- }
193
- }
194
- return [...out];
158
+ const out = /* @__PURE__ */ new Set();
159
+ for (const m of src.matchAll(/^export\s+(?:declare\s+)?const\s+([A-Za-z_$][A-Za-z0-9_$]*)/gm)) out.add(m[1]);
160
+ for (const m of src.matchAll(/^export\s+(?:declare\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)/gm)) out.add(m[1]);
161
+ for (const m of src.matchAll(/^export\s*\{\s*([^}]+)\}/gm)) for (const raw of m[1].split(",")) {
162
+ const trimmed = raw.trim();
163
+ if (!trimmed) continue;
164
+ const nameMatch = NAME_HEAD_RE.exec(trimmed);
165
+ /* c8 ignore start */
166
+ if (nameMatch) out.add(nameMatch[1]);
167
+ }
168
+ return [...out];
195
169
  }
170
+ /**
171
+ * Read TS exports from a resolved primordials path. Handles both the legacy
172
+ * single-file layout (returns one file's exports) and the post-split directory
173
+ * layout (concatenates exports across every `*.ts` / `*.d.ts` leaf).
174
+ */
196
175
  function readSocketLibPrimordialNames(resolved) {
197
- const stat = (0, import_node_fs.statSync)(resolved);
198
- if (stat.isFile()) {
199
- return new Set(extractTsExports((0, import_node_fs.readFileSync)(resolved, "utf8")));
200
- }
201
- const out = /* @__PURE__ */ new Set();
202
- for (const name of (0, import_node_fs.readdirSync)(resolved)) {
203
- if (!name.endsWith(".ts") && !name.endsWith(".d.ts")) {
204
- continue;
205
- }
206
- const full = import_node_path.default.join(resolved, name);
207
- const fileStat = (0, import_node_fs.statSync)(full);
208
- if (!fileStat.isFile()) {
209
- continue;
210
- }
211
- for (const exp of extractTsExports((0, import_node_fs.readFileSync)(full, "utf8"))) {
212
- out.add(exp);
213
- }
214
- }
215
- return out;
176
+ if ((0, node_fs.statSync)(resolved).isFile()) return new Set(extractTsExports((0, node_fs.readFileSync)(resolved, "utf8")));
177
+ const out = /* @__PURE__ */ new Set();
178
+ /* c8 ignore start */
179
+ for (const name of (0, node_fs.readdirSync)(resolved)) {
180
+ if (!name.endsWith(".ts") && !name.endsWith(".d.ts")) continue;
181
+ const full = node_path.default.join(resolved, name);
182
+ if (!(0, node_fs.statSync)(full).isFile()) continue;
183
+ for (const exp of extractTsExports((0, node_fs.readFileSync)(full, "utf8"))) out.add(exp);
184
+ }
185
+ /* c8 ignore stop */
186
+ return out;
216
187
  }
188
+ /**
189
+ * Locate socket-lib's primordials source. Search order:
190
+ *
191
+ * 1. `config.socketLibPrimordialsPath` if explicitly set. Accepts either a single
192
+ * file (legacy `primordials.ts` / `.d.ts`) or a directory of leaves
193
+ * (`primordials/`).
194
+ * 2. Sibling clone — `<repoRoot>/../socket-lib/src/primordials/` (post-split
195
+ * layout) or `<repoRoot>/../socket-lib/src/primordials.ts` (legacy
196
+ * single-file layout). Preferred for the dev-loop case where a developer is
197
+ * editing socket-lib and a consumer in parallel.
198
+ * 3. Installed copy — `<repoRoot>/node_modules/@socketsecurity/lib/
199
+ * dist/primordials/` (post-split) or `<repoRoot>/node_modules/
200
+ * @socketsecurity/lib/dist/primordials.d.ts` (legacy). The CI fallback.
201
+ *
202
+ * Throws when none of the candidates exist.
203
+ */
217
204
  function resolveSocketLibPrimordials(config) {
218
- if (config.socketLibPrimordialsPath) {
219
- if (!(0, import_node_fs.existsSync)(config.socketLibPrimordialsPath)) {
220
- throw new import_error.ErrorCtor(
221
- `socketLibPrimordialsPath does not exist: ${config.socketLibPrimordialsPath}`
222
- );
223
- }
224
- return config.socketLibPrimordialsPath;
225
- }
226
- const repoRoot = config.repoRoot ?? process.cwd();
227
- const siblingDir = import_node_path.default.resolve(
228
- repoRoot,
229
- "..",
230
- "socket-lib",
231
- "src",
232
- "primordials"
233
- );
234
- if ((0, import_node_fs.existsSync)(siblingDir)) {
235
- return siblingDir;
236
- }
237
- const siblingLegacy = import_node_path.default.resolve(
238
- repoRoot,
239
- "..",
240
- "socket-lib",
241
- "src",
242
- "primordials.ts"
243
- );
244
- if ((0, import_node_fs.existsSync)(siblingLegacy)) {
245
- return siblingLegacy;
246
- }
247
- const installedDir = import_node_path.default.resolve(
248
- repoRoot,
249
- "node_modules",
250
- "@socketsecurity",
251
- "lib",
252
- "dist",
253
- "primordials"
254
- );
255
- if ((0, import_node_fs.existsSync)(installedDir)) {
256
- return installedDir;
257
- }
258
- const installedLegacy = import_node_path.default.resolve(
259
- repoRoot,
260
- "node_modules",
261
- "@socketsecurity",
262
- "lib",
263
- "dist",
264
- "primordials.d.ts"
265
- );
266
- if ((0, import_node_fs.existsSync)(installedLegacy)) {
267
- return installedLegacy;
268
- }
269
- throw new import_error.ErrorCtor(
270
- `Cannot locate socket-lib primordials source. Looked at:
271
- ${siblingDir}
272
- ${siblingLegacy}
273
- ${installedDir}
274
- ${installedLegacy}
275
- Either clone socket-lib at ../socket-lib or run \`pnpm install\`.`
276
- );
205
+ /* c8 ignore start */
206
+ if (config.socketLibPrimordialsPath) {
207
+ if (!(0, node_fs.existsSync)(config.socketLibPrimordialsPath)) throw new require_primordials_error.ErrorCtor(`socketLibPrimordialsPath does not exist: ${config.socketLibPrimordialsPath}`);
208
+ return config.socketLibPrimordialsPath;
209
+ }
210
+ const repoRoot = config.repoRoot ?? process.cwd();
211
+ const siblingDir = node_path.default.resolve(repoRoot, "..", "socket-lib", "src", "primordials");
212
+ if ((0, node_fs.existsSync)(siblingDir)) return siblingDir;
213
+ const siblingLegacy = node_path.default.resolve(repoRoot, "..", "socket-lib", "src", "primordials.ts");
214
+ if ((0, node_fs.existsSync)(siblingLegacy)) return siblingLegacy;
215
+ const installedDir = node_path.default.resolve(repoRoot, "node_modules", "@socketsecurity", "lib", "dist", "primordials");
216
+ if ((0, node_fs.existsSync)(installedDir)) return installedDir;
217
+ const installedLegacy = node_path.default.resolve(repoRoot, "node_modules", "@socketsecurity", "lib", "dist", "primordials.d.ts");
218
+ if ((0, node_fs.existsSync)(installedLegacy)) return installedLegacy;
219
+ /* c8 ignore stop */
220
+ throw new require_primordials_error.ErrorCtor(`Cannot locate socket-lib primordials source. Looked at:\n ${siblingDir}\n ${siblingLegacy}\n ${installedDir}\n ${installedLegacy}\nEither clone socket-lib at ../socket-lib or run \`pnpm install\`.`);
277
221
  }
222
+ /**
223
+ * Strip `/* … *‍/` block comments and `//` line comments. Comments inside
224
+ * primordials destructures would otherwise leak captured names; stripping first
225
+ * keeps the regex simple.
226
+ */
278
227
  function stripComments(src) {
279
- let out = src.replace(/\/\*[\s\S]*?\*\//g, "");
280
- out = out.replace(/^[\t ]*\/\/.*$/gm, "");
281
- out = out.replace(/[\t ]+\/\/.*$/gm, "");
282
- return out;
228
+ let out = src.replace(/\/\*[\s\S]*?\*\//g, "");
229
+ out = out.replace(/^[\t ]*\/\/.*$/gm, "");
230
+ out = out.replace(/[\t ]+\/\/.*$/gm, "");
231
+ return out;
283
232
  }
284
- // Annotate the CommonJS export names for ESM import in node:
285
- 0 && (module.exports = {
286
- checkPrimordials,
287
- collectJsFiles,
288
- extractPrimordialsNames,
289
- extractTsExports,
290
- readSocketLibPrimordialNames,
291
- resolveSocketLibPrimordials,
292
- stripComments
293
- });
233
+
234
+ //#endregion
235
+ exports.checkPrimordials = checkPrimordials;
236
+ exports.collectJsFiles = collectJsFiles;
237
+ exports.extractPrimordialsNames = extractPrimordialsNames;
238
+ exports.extractTsExports = extractTsExports;
239
+ exports.readSocketLibPrimordialNames = readSocketLibPrimordialNames;
240
+ exports.resolveSocketLibPrimordials = resolveSocketLibPrimordials;
241
+ exports.stripComments = stripComments;
@@ -1,42 +1,50 @@
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
- isRgbTuple: () => isRgbTuple,
24
- toRgb: () => toRgb
25
- });
26
- module.exports = __toCommonJS(convert_exports);
27
- var import_array = require("../primordials/array");
28
- var import_palette = require("./palette");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_array = require('../primordials/array.js');
5
+ const require_colors_palette = require('./palette.js');
6
+
7
+ //#region src/colors/convert.ts
8
+ /**
9
+ * @file Color conversion helpers — `isRgbTuple()` narrows a `ColorValue` to the
10
+ * RGB-tuple branch, and `toRgb()` resolves a named color or passes through an
11
+ * existing tuple.
12
+ */
13
+ /**
14
+ * Type guard to check if a color value is an RGB tuple.
15
+ *
16
+ * @example
17
+ * ;```typescript
18
+ * isRgbTuple([255, 0, 0]) // true
19
+ * isRgbTuple('red') // false
20
+ * ```
21
+ *
22
+ * @param value - Color value to check.
23
+ *
24
+ * @returns `true` if value is an RGB tuple, `false` if it's a color name
25
+ */
29
26
  function isRgbTuple(value) {
30
- return (0, import_array.ArrayIsArray)(value);
27
+ return require_primordials_array.ArrayIsArray(value);
31
28
  }
29
+ /**
30
+ * Convert a color value to RGB tuple format. Named colors are looked up in the
31
+ * `colorToRgb` map, RGB tuples are returned as-is.
32
+ *
33
+ * @example
34
+ * ;```typescript
35
+ * toRgb('red') // [255, 0, 0]
36
+ * toRgb([0, 128, 0]) // [0, 128, 0]
37
+ * ```
38
+ *
39
+ * @param color - Color name or RGB tuple.
40
+ *
41
+ * @returns RGB tuple with values 0-255
42
+ */
32
43
  function toRgb(color) {
33
- if (isRgbTuple(color)) {
34
- return color;
35
- }
36
- return import_palette.colorToRgb[color];
44
+ if (isRgbTuple(color)) return color;
45
+ return require_colors_palette.colorToRgb[color];
37
46
  }
38
- // Annotate the CommonJS export names for ESM import in node:
39
- 0 && (module.exports = {
40
- isRgbTuple,
41
- toRgb
42
- });
47
+
48
+ //#endregion
49
+ exports.isRgbTuple = isRgbTuple;
50
+ exports.toRgb = toRgb;