@socketsecurity/lib 6.0.6 → 6.0.8

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 (619) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +1 -1
  3. package/dist/ai/agent-context.d.mts +103 -0
  4. package/dist/ai/agent-context.js +157 -0
  5. package/dist/ai/backends.d.mts +83 -0
  6. package/dist/ai/backends.js +173 -0
  7. package/dist/ai/credentials.d.mts +49 -0
  8. package/dist/ai/credentials.js +82 -0
  9. package/dist/ai/discover.d.mts +6 -2
  10. package/dist/ai/discover.js +4 -3
  11. package/dist/ai/exec.d.mts +52 -0
  12. package/dist/ai/exec.js +92 -0
  13. package/dist/ai/http.d.mts +132 -0
  14. package/dist/ai/http.js +130 -0
  15. package/dist/ai/profiles.d.mts +41 -6
  16. package/dist/ai/profiles.js +52 -10
  17. package/dist/ai/route.d.mts +69 -0
  18. package/dist/ai/route.js +156 -0
  19. package/dist/ai/spawn.d.mts +10 -2
  20. package/dist/ai/spawn.js +56 -31
  21. package/dist/ai/subagent-status.d.mts +48 -0
  22. package/dist/ai/subagent-status.js +57 -0
  23. package/dist/ai/tier.d.mts +60 -0
  24. package/dist/ai/tier.js +53 -0
  25. package/dist/ai/types.d.mts +31 -6
  26. package/dist/ai/worktree.d.mts +6 -6
  27. package/dist/ai/worktree.js +5 -1
  28. package/dist/ansi/strip.d.ts +1 -1
  29. package/dist/ansi/strip.js +0 -2
  30. package/dist/archives/_internal.js +7 -9
  31. package/dist/archives/extract.js +1 -1
  32. package/dist/archives/tar.js +7 -7
  33. package/dist/archives/zip.js +5 -7
  34. package/dist/argv/flag-predicates.d.ts +12 -12
  35. package/dist/argv/flag-predicates.js +17 -17
  36. package/dist/argv/flag-types.d.ts +18 -18
  37. package/dist/argv/flag-types.js +4 -4
  38. package/dist/argv/parse.d.ts +20 -3
  39. package/dist/argv/parse.js +1 -1
  40. package/dist/arrays/_internal.js +11 -12
  41. package/dist/arrays/chunk.js +0 -1
  42. package/dist/arrays/join.d.ts +37 -3
  43. package/dist/arrays/join.js +47 -7
  44. package/dist/arrays/unique.js +0 -1
  45. package/dist/bin/_internal.d.ts +1 -1
  46. package/dist/bin/_internal.js +1 -1
  47. package/dist/bin/exec.js +2 -3
  48. package/dist/bin/find.js +17 -17
  49. package/dist/bin/prim.cjs +36175 -35861
  50. package/dist/bin/resolve.js +13 -14
  51. package/dist/bin/which.js +8 -8
  52. package/dist/cache/ttl/store.js +6 -6
  53. package/dist/checks/primordials-defaults.d.ts +3 -3
  54. package/dist/checks/primordials-defaults.js +3 -3
  55. package/dist/checks/primordials.js +4 -3
  56. package/dist/{bin → cli}/check-primordials.d.ts +18 -13
  57. package/dist/{bin → cli}/check-primordials.js +58 -55
  58. package/dist/{bin → cli}/check.js +3 -3
  59. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  60. package/dist/{bin → cli}/socket-lib.js +4 -4
  61. package/dist/colors/socket-palette.js +7 -9
  62. package/dist/compression/_internal.d.ts +12 -12
  63. package/dist/compression/_internal.js +18 -18
  64. package/dist/compression/brotli.d.ts +26 -27
  65. package/dist/compression/brotli.js +39 -35
  66. package/dist/compression/gzip.d.ts +23 -23
  67. package/dist/compression/gzip.js +46 -42
  68. package/dist/constants/agents.d.ts +3 -1
  69. package/dist/constants/agents.js +15 -11
  70. package/dist/constants/licenses.js +3 -3
  71. package/dist/constants/node.d.ts +23 -0
  72. package/dist/constants/node.js +47 -15
  73. package/dist/constants/packages.d.ts +3 -0
  74. package/dist/constants/packages.js +24 -29
  75. package/dist/constants/platform.d.ts +30 -3
  76. package/dist/constants/platform.js +72 -12
  77. package/dist/constants/runtime.d.ts +22 -0
  78. package/dist/constants/runtime.js +32 -0
  79. package/dist/constants/socket.d.ts +2 -6
  80. package/dist/constants/socket.js +12 -14
  81. package/dist/cover/code.js +10 -10
  82. package/dist/cover/formatters.js +5 -5
  83. package/dist/crypto/hash.d.ts +30 -2
  84. package/dist/crypto/hash.js +47 -13
  85. package/dist/debug/_internal.js +4 -6
  86. package/dist/debug/caller-info.js +3 -4
  87. package/dist/debug/namespace.d.ts +7 -0
  88. package/dist/debug/namespace.js +21 -12
  89. package/dist/debug/output.js +21 -24
  90. package/dist/debug/types.d.ts +4 -4
  91. package/dist/dlx/arborist.js +18 -8
  92. package/dist/dlx/binary-cache.js +15 -15
  93. package/dist/dlx/binary-download.d.ts +1 -1
  94. package/dist/dlx/binary-download.js +11 -11
  95. package/dist/dlx/binary-resolution.js +17 -15
  96. package/dist/dlx/binary-types.d.ts +5 -5
  97. package/dist/dlx/binary.js +5 -5
  98. package/dist/dlx/cache.js +1 -1
  99. package/dist/dlx/detect.d.ts +42 -25
  100. package/dist/dlx/detect.js +86 -77
  101. package/dist/dlx/dir.js +2 -2
  102. package/dist/dlx/firewall.d.ts +9 -1
  103. package/dist/dlx/firewall.js +1 -1
  104. package/dist/dlx/lockfile.d.ts +19 -18
  105. package/dist/dlx/lockfile.js +19 -16
  106. package/dist/dlx/manifest.d.ts +6 -6
  107. package/dist/dlx/manifest.js +5 -5
  108. package/dist/dlx/package.d.ts +10 -10
  109. package/dist/dlx/package.js +20 -16
  110. package/dist/dlx/packages.js +4 -4
  111. package/dist/dlx/paths.js +7 -7
  112. package/dist/dlx/spec.js +1 -1
  113. package/dist/dlx/types.d.ts +28 -27
  114. package/dist/eco/cargo/parse-lockfile.d.ts +2 -3
  115. package/dist/eco/cargo/parse-lockfile.js +5 -5
  116. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  117. package/dist/eco/manifest/detect-format.js +5 -5
  118. package/dist/eco/manifest/find-packages.js +2 -2
  119. package/dist/eco/manifest/get-package-versions.js +2 -2
  120. package/dist/eco/manifest/get-package.js +2 -2
  121. package/dist/eco/manifest/parse-lockfile.js +2 -2
  122. package/dist/eco/manifest/parse-manifest.js +2 -2
  123. package/dist/eco/manifest/parse.js +2 -2
  124. package/dist/eco/npm/npm/exec.js +2 -2
  125. package/dist/eco/npm/npm/flags.js +7 -12
  126. package/dist/eco/npm/npm/parse-lockfile.d.ts +17 -18
  127. package/dist/eco/npm/npm/parse-lockfile.js +4 -4
  128. package/dist/eco/npm/parse-package-json.d.ts +11 -0
  129. package/dist/eco/npm/parse-package-json.js +3 -3
  130. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  131. package/dist/eco/npm/pnpm/exec.js +5 -5
  132. package/dist/eco/npm/pnpm/flags.js +0 -3
  133. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +6 -4
  134. package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
  135. package/dist/eco/npm/script.js +9 -6
  136. package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
  137. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
  138. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
  139. package/dist/effects/pulse-frames.d.ts +3 -1
  140. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  141. package/dist/effects/shimmer-terminal.d.ts +1 -1
  142. package/dist/env/boolean.js +0 -1
  143. package/dist/env/ci.js +0 -1
  144. package/dist/env/debug.js +0 -1
  145. package/dist/env/github-status.d.ts +51 -0
  146. package/dist/env/github-status.js +90 -0
  147. package/dist/env/github.js +0 -8
  148. package/dist/env/home.js +0 -1
  149. package/dist/env/locale.js +0 -3
  150. package/dist/env/node-auth-token.js +0 -1
  151. package/dist/env/node-env.js +0 -1
  152. package/dist/env/node-version-managers.d.ts +53 -0
  153. package/dist/env/node-version-managers.js +90 -0
  154. package/dist/env/npm.js +0 -5
  155. package/dist/env/number.js +0 -1
  156. package/dist/env/package-manager.js +3 -6
  157. package/dist/env/path.js +0 -1
  158. package/dist/env/pre-commit.js +1 -2
  159. package/dist/env/proxy.js +1 -1
  160. package/dist/env/rewire.d.ts +8 -6
  161. package/dist/env/rewire.js +16 -17
  162. package/dist/env/shell.js +0 -1
  163. package/dist/env/socket-cli.js +5 -18
  164. package/dist/env/socket-mcp.d.ts +114 -0
  165. package/dist/env/socket-mcp.js +146 -0
  166. package/dist/env/socket.d.ts +8 -109
  167. package/dist/env/socket.js +22 -167
  168. package/dist/env/string.js +0 -1
  169. package/dist/env/temp-dir.js +0 -3
  170. package/dist/env/term.js +0 -1
  171. package/dist/env/test.js +3 -6
  172. package/dist/env/windows.js +0 -4
  173. package/dist/env/xdg.js +0 -3
  174. package/dist/errors/predicates.js +1 -1
  175. package/dist/events/exit/_internal.d.ts +11 -9
  176. package/dist/events/exit/_internal.js +31 -35
  177. package/dist/events/exit/handler.js +3 -4
  178. package/dist/events/exit/intercept.js +4 -6
  179. package/dist/events/exit/lifecycle.js +16 -18
  180. package/dist/events/exit/signals.js +1 -2
  181. package/dist/events/exit/types.d.ts +6 -5
  182. package/dist/external/@npmcli/package-json.js +2 -2
  183. package/dist/external/@npmcli/promise-spawn.js +3 -1
  184. package/dist/external/npm-pack.js +2 -2
  185. package/dist/external/pico-pack.js +4 -2
  186. package/dist/external/which.js +3 -1
  187. package/dist/external-tools/bazel/asset-names.d.ts +1 -1
  188. package/dist/external-tools/bazel/asset-names.js +5 -2
  189. package/dist/external-tools/bazel/from-download.d.ts +1 -1
  190. package/dist/external-tools/bazel/from-download.js +5 -2
  191. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  192. package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
  193. package/dist/external-tools/bazel/resolve.d.ts +3 -3
  194. package/dist/external-tools/bazel/resolve.js +16 -8
  195. package/dist/external-tools/bazel/types.d.ts +1 -1
  196. package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
  197. package/dist/external-tools/cdxgen/asset-names.js +5 -2
  198. package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
  199. package/dist/external-tools/cdxgen/from-download.js +7 -4
  200. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  201. package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
  202. package/dist/external-tools/cdxgen/resolve.js +16 -8
  203. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  204. package/dist/external-tools/from-download.d.ts +3 -3
  205. package/dist/external-tools/from-download.js +12 -6
  206. package/dist/external-tools/from-pip-venv.d.ts +1 -1
  207. package/dist/external-tools/from-pip-venv.js +12 -5
  208. package/dist/external-tools/janus/asset-names.d.ts +1 -1
  209. package/dist/external-tools/janus/asset-names.js +5 -2
  210. package/dist/external-tools/janus/from-download.d.ts +1 -1
  211. package/dist/external-tools/janus/from-download.js +5 -2
  212. package/dist/external-tools/janus/from-vfs.js +1 -1
  213. package/dist/external-tools/janus/resolve.d.ts +3 -3
  214. package/dist/external-tools/janus/resolve.js +16 -8
  215. package/dist/external-tools/janus/types.d.ts +1 -1
  216. package/dist/external-tools/jre/asset-names.d.ts +1 -1
  217. package/dist/external-tools/jre/asset-names.js +5 -2
  218. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  219. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  220. package/dist/external-tools/jre/from-download.d.ts +1 -1
  221. package/dist/external-tools/jre/from-download.js +7 -4
  222. package/dist/external-tools/jre/from-java-home.js +2 -2
  223. package/dist/external-tools/jre/from-vfs.js +3 -3
  224. package/dist/external-tools/jre/resolve.d.ts +3 -3
  225. package/dist/external-tools/jre/resolve.js +16 -8
  226. package/dist/external-tools/jre/types.d.ts +1 -1
  227. package/dist/external-tools/manifest.d.ts +25 -7
  228. package/dist/external-tools/manifest.js +13 -13
  229. package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
  230. package/dist/external-tools/opengrep/asset-names.js +5 -2
  231. package/dist/external-tools/opengrep/from-download.d.ts +1 -1
  232. package/dist/external-tools/opengrep/from-download.js +5 -2
  233. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  234. package/dist/external-tools/opengrep/resolve.d.ts +3 -3
  235. package/dist/external-tools/opengrep/resolve.js +16 -8
  236. package/dist/external-tools/opengrep/types.d.ts +1 -1
  237. package/dist/external-tools/python/asset-names.d.ts +76 -0
  238. package/dist/external-tools/python/asset-names.js +111 -0
  239. package/dist/external-tools/python/dlx.d.ts +80 -0
  240. package/dist/external-tools/python/dlx.js +98 -0
  241. package/dist/external-tools/python/from-download.d.ts +53 -0
  242. package/dist/external-tools/python/from-download.js +75 -0
  243. package/dist/external-tools/python/from-path.d.ts +7 -0
  244. package/dist/external-tools/python/from-path.js +23 -0
  245. package/dist/external-tools/python/pin.d.ts +121 -0
  246. package/dist/external-tools/python/pin.js +176 -0
  247. package/dist/external-tools/python/pip-install.d.ts +75 -0
  248. package/dist/external-tools/python/pip-install.js +142 -0
  249. package/dist/external-tools/python/resolve.d.ts +42 -0
  250. package/dist/external-tools/python/resolve.js +66 -0
  251. package/dist/external-tools/python/types.d.ts +49 -0
  252. package/dist/external-tools/sbt/asset-names.d.ts +1 -1
  253. package/dist/external-tools/sbt/asset-names.js +5 -2
  254. package/dist/external-tools/sbt/from-download.d.ts +1 -1
  255. package/dist/external-tools/sbt/from-download.js +5 -2
  256. package/dist/external-tools/sbt/from-vfs.js +1 -1
  257. package/dist/external-tools/sbt/resolve.d.ts +3 -3
  258. package/dist/external-tools/sbt/resolve.js +16 -8
  259. package/dist/external-tools/sbt/types.d.ts +1 -1
  260. package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
  261. package/dist/external-tools/skillspector/from-dlx.js +10 -3
  262. package/dist/external-tools/skillspector/from-path.js +3 -5
  263. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  264. package/dist/external-tools/skillspector/resolve.d.ts +2 -2
  265. package/dist/external-tools/skillspector/resolve.js +14 -6
  266. package/dist/external-tools/synp/asset-names.d.ts +1 -1
  267. package/dist/external-tools/synp/asset-names.js +6 -2
  268. package/dist/external-tools/synp/from-download.d.ts +1 -1
  269. package/dist/external-tools/synp/from-download.js +7 -4
  270. package/dist/external-tools/synp/from-vfs.js +1 -1
  271. package/dist/external-tools/synp/resolve.d.ts +3 -3
  272. package/dist/external-tools/synp/resolve.js +16 -8
  273. package/dist/external-tools/trivy/asset-names.d.ts +1 -1
  274. package/dist/external-tools/trivy/asset-names.js +5 -2
  275. package/dist/external-tools/trivy/from-download.d.ts +1 -1
  276. package/dist/external-tools/trivy/from-download.js +7 -4
  277. package/dist/external-tools/trivy/from-vfs.js +1 -1
  278. package/dist/external-tools/trivy/resolve.d.ts +3 -3
  279. package/dist/external-tools/trivy/resolve.js +16 -8
  280. package/dist/external-tools/trivy/types.d.ts +1 -1
  281. package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
  282. package/dist/external-tools/trufflehog/asset-names.js +5 -2
  283. package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
  284. package/dist/external-tools/trufflehog/from-download.js +7 -4
  285. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  286. package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
  287. package/dist/external-tools/trufflehog/resolve.js +16 -8
  288. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  289. package/dist/fs/_internal.d.ts +1 -1
  290. package/dist/fs/_internal.js +7 -7
  291. package/dist/fs/access.js +5 -9
  292. package/dist/fs/allowed-dirs-cache.d.ts +47 -0
  293. package/dist/fs/allowed-dirs-cache.js +69 -0
  294. package/dist/fs/encoding.js +5 -7
  295. package/dist/fs/{find-up.js → find.js} +12 -14
  296. package/dist/fs/inspect.js +7 -13
  297. package/dist/fs/read-dir.js +7 -10
  298. package/dist/fs/read-file.js +8 -14
  299. package/dist/fs/read-json-cache.d.ts +13 -4
  300. package/dist/fs/read-json-cache.js +9 -6
  301. package/dist/fs/read-json.js +4 -6
  302. package/dist/fs/resolve-module.js +7 -3
  303. package/dist/fs/safe.d.ts +1 -1
  304. package/dist/fs/safe.js +13 -14
  305. package/dist/fs/unique.js +4 -5
  306. package/dist/fs/validate.js +1 -2
  307. package/dist/fs/write-json.js +4 -5
  308. package/dist/git/_internal.js +11 -11
  309. package/dist/git/changed.js +4 -4
  310. package/dist/git/repo.js +5 -7
  311. package/dist/git/staged.js +12 -4
  312. package/dist/git/tracked.d.ts +84 -0
  313. package/dist/git/tracked.js +163 -0
  314. package/dist/git/unstaged.js +12 -4
  315. package/dist/github/ghsa.js +2 -2
  316. package/dist/github/refs-cache.d.ts +1 -1
  317. package/dist/github/refs-cache.js +5 -5
  318. package/dist/github/refs-graphql.js +4 -0
  319. package/dist/github/refs-rest.js +9 -5
  320. package/dist/github/refs.js +15 -10
  321. package/dist/github/{fetch.js → request.js} +13 -2
  322. package/dist/github/token.js +1 -1
  323. package/dist/github/types.d.ts +1 -1
  324. package/dist/globs/_internal.js +8 -10
  325. package/dist/globs/match.js +13 -7
  326. package/dist/globs/matcher.d.ts +3 -3
  327. package/dist/globs/matcher.js +16 -14
  328. package/dist/globs/stream.js +1 -2
  329. package/dist/globs/types.d.ts +24 -24
  330. package/dist/http-request/_internal.d.ts +1 -1
  331. package/dist/http-request/browser.js +10 -4
  332. package/dist/http-request/checksum-file.d.ts +55 -0
  333. package/dist/http-request/checksum-file.js +95 -0
  334. package/dist/http-request/download-types.d.ts +15 -23
  335. package/dist/http-request/download.js +3 -3
  336. package/dist/http-request/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
  337. package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
  338. package/dist/http-request/headers.js +1 -2
  339. package/dist/http-request/request-attempt.js +38 -34
  340. package/dist/http-request/request-types.d.ts +2 -2
  341. package/dist/http-request/request.js +1 -1
  342. package/dist/http-request/user-agent.js +4 -5
  343. package/dist/integrity.d.ts +92 -18
  344. package/dist/integrity.js +125 -30
  345. package/dist/ipc/directory.js +2 -2
  346. package/dist/ipc/paths.js +1 -1
  347. package/dist/ipc/write.js +1 -1
  348. package/dist/ipc-cli/get.js +12 -12
  349. package/dist/json/edit.js +51 -44
  350. package/dist/json/format.js +1 -1
  351. package/dist/json/parse.d.ts +1 -1
  352. package/dist/json/parse.js +3 -7
  353. package/dist/logger/_internal.d.ts +4 -4
  354. package/dist/logger/_internal.js +3 -3
  355. package/dist/logger/colors.js +4 -3
  356. package/dist/logger/console-methods.d.ts +132 -0
  357. package/dist/logger/console-methods.js +169 -0
  358. package/dist/logger/console.d.ts +12 -0
  359. package/dist/logger/console.js +42 -11
  360. package/dist/logger/indentation-methods.d.ts +81 -0
  361. package/dist/logger/indentation-methods.js +121 -0
  362. package/dist/logger/node.d.ts +16 -338
  363. package/dist/logger/node.js +75 -608
  364. package/dist/logger/options.d.ts +39 -0
  365. package/dist/logger/options.js +47 -0
  366. package/dist/logger/semantic-methods.d.ts +63 -0
  367. package/dist/logger/semantic-methods.js +108 -0
  368. package/dist/logger/stream-methods.d.ts +63 -0
  369. package/dist/logger/stream-methods.js +101 -0
  370. package/dist/logger/stream.d.ts +37 -0
  371. package/dist/logger/stream.js +42 -0
  372. package/dist/logger/symbols-builder.js +9 -9
  373. package/dist/logger/symbols.d.ts +2 -25
  374. package/dist/logger/symbols.js +53 -74
  375. package/dist/logger/types.d.ts +1 -1
  376. package/dist/memo/types.d.ts +6 -6
  377. package/dist/native-messaging/host.d.ts +20 -0
  378. package/dist/native-messaging/host.js +120 -0
  379. package/dist/native-messaging/index.d.ts +5 -0
  380. package/dist/native-messaging/index.js +22 -0
  381. package/dist/native-messaging/install.d.ts +60 -0
  382. package/dist/native-messaging/install.js +144 -0
  383. package/dist/native-messaging/rate-limit.d.ts +69 -0
  384. package/dist/native-messaging/rate-limit.js +119 -0
  385. package/dist/native-messaging/run.d.ts +10 -0
  386. package/dist/native-messaging/run.js +17 -0
  387. package/dist/node/async-hooks.js +4 -3
  388. package/dist/node/child-process.js +4 -3
  389. package/dist/node/crypto.js +4 -3
  390. package/dist/node/events.js +4 -3
  391. package/dist/node/fs-promises.js +4 -3
  392. package/dist/node/fs.d.ts +22 -6
  393. package/dist/node/fs.js +17 -3
  394. package/dist/node/http.js +4 -3
  395. package/dist/node/https.js +4 -3
  396. package/dist/node/module.js +10 -6
  397. package/dist/node/os.d.ts +10 -2
  398. package/dist/node/os.js +12 -4
  399. package/dist/node/path.d.ts +11 -2
  400. package/dist/node/path.js +18 -4
  401. package/dist/node/timers-promises.js +4 -3
  402. package/dist/node/url.js +4 -3
  403. package/dist/node/util.js +4 -3
  404. package/dist/objects/getters.js +6 -8
  405. package/dist/objects/inspect.js +1 -4
  406. package/dist/objects/mutate.js +4 -5
  407. package/dist/objects/predicates.js +1 -5
  408. package/dist/objects/sort.js +3 -7
  409. package/dist/packages/edit-class.d.ts +2 -3
  410. package/dist/packages/edit-class.js +53 -48
  411. package/dist/packages/edit.js +12 -14
  412. package/dist/packages/exports.js +15 -21
  413. package/dist/packages/fetch.d.ts +16 -0
  414. package/dist/packages/fetch.js +81 -0
  415. package/dist/packages/find.d.ts +55 -0
  416. package/dist/packages/find.js +65 -0
  417. package/dist/packages/isolation.js +14 -14
  418. package/dist/packages/licenses.js +18 -18
  419. package/dist/packages/manifest.js +16 -19
  420. package/dist/packages/metadata-extensions.d.ts +14 -0
  421. package/dist/packages/metadata-extensions.js +43 -0
  422. package/dist/packages/normalize.js +6 -10
  423. package/dist/packages/provenance.js +17 -19
  424. package/dist/packages/read.d.ts +29 -0
  425. package/dist/packages/read.js +66 -0
  426. package/dist/packages/specs.d.ts +48 -1
  427. package/dist/packages/specs.js +75 -12
  428. package/dist/packages/tarball.d.ts +24 -0
  429. package/dist/packages/tarball.js +81 -0
  430. package/dist/packages/types.d.ts +22 -22
  431. package/dist/packages/validation.js +0 -3
  432. package/dist/paths/_internal.d.ts +2 -1
  433. package/dist/paths/_internal.js +7 -19
  434. package/dist/paths/conversion.js +5 -9
  435. package/dist/paths/dirnames.d.ts +1 -0
  436. package/dist/paths/dirnames.js +2 -0
  437. package/dist/paths/filenames.d.ts +0 -1
  438. package/dist/paths/filenames.js +0 -2
  439. package/dist/paths/normalize.js +4 -5
  440. package/dist/paths/packages.js +4 -7
  441. package/dist/paths/predicates.js +9 -16
  442. package/dist/paths/resolve.js +17 -25
  443. package/dist/paths/rewire.d.ts +5 -0
  444. package/dist/paths/rewire.js +3 -3
  445. package/dist/paths/socket.d.ts +74 -111
  446. package/dist/paths/socket.js +106 -139
  447. package/dist/paths/walk.d.ts +1 -1
  448. package/dist/paths/walk.js +4 -4
  449. package/dist/perf/report.js +2 -2
  450. package/dist/perf/types.d.ts +1 -1
  451. package/dist/pkg-ext/data.js +1 -1
  452. package/dist/primordials/array.js +9 -9
  453. package/dist/primordials/date.js +2 -2
  454. package/dist/primordials/error.js +3 -3
  455. package/dist/primordials/headers.d.ts +10 -0
  456. package/dist/primordials/headers.js +23 -0
  457. package/dist/primordials/intl.d.ts +13 -0
  458. package/dist/primordials/intl.js +26 -0
  459. package/dist/primordials/math.js +33 -33
  460. package/dist/primordials/number.js +9 -9
  461. package/dist/primordials/object.js +5 -5
  462. package/dist/primordials/process.d.ts +88 -0
  463. package/dist/primordials/process.js +132 -0
  464. package/dist/primordials/string.d.ts +2 -2
  465. package/dist/primordials/string.js +6 -6
  466. package/dist/primordials/symbol.js +3 -3
  467. package/dist/primordials/uncurry.d.ts +1 -2
  468. package/dist/primordials/uncurry.js +9 -9
  469. package/dist/process/abort.js +3 -3
  470. package/dist/process/lock-manager.js +8 -8
  471. package/dist/process/spawn/_internal.js +6 -8
  472. package/dist/process/spawn/child.js +20 -14
  473. package/dist/process/spawn/errors.js +3 -5
  474. package/dist/process/spawn/kill-tree.d.ts +53 -0
  475. package/dist/process/spawn/kill-tree.js +85 -0
  476. package/dist/process/spawn/stdio.js +0 -1
  477. package/dist/process/spawn/types.d.ts +5 -5
  478. package/dist/process/transient.js +2 -2
  479. package/dist/promises/_internal.d.ts +2 -1
  480. package/dist/promises/_internal.js +2 -6
  481. package/dist/promises/iterate.js +11 -15
  482. package/dist/promises/options.js +3 -6
  483. package/dist/promises/retry.js +4 -5
  484. package/dist/promises/timers.d.ts +30 -0
  485. package/dist/promises/timers.js +48 -0
  486. package/dist/regexps/spec.js +1 -1
  487. package/dist/releases/github-archives.d.ts +6 -6
  488. package/dist/releases/github-archives.js +3 -3
  489. package/dist/releases/github-asset-url.d.ts +1 -1
  490. package/dist/releases/github-asset-url.js +5 -5
  491. package/dist/releases/github-downloads.d.ts +1 -1
  492. package/dist/releases/github-downloads.js +3 -3
  493. package/dist/releases/github-listing.d.ts +12 -4
  494. package/dist/releases/github-listing.js +20 -7
  495. package/dist/releases/github-retry-config.js +1 -1
  496. package/dist/releases/github-types.d.ts +6 -6
  497. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  498. package/dist/releases/socket-btm-binary-naming.js +155 -0
  499. package/dist/releases/socket-btm.d.ts +8 -115
  500. package/dist/releases/socket-btm.js +16 -159
  501. package/dist/schema/types.d.ts +4 -5
  502. package/dist/schema/validate.js +1 -1
  503. package/dist/sea/detect.js +6 -6
  504. package/dist/secrets/_internal.d.ts +2 -2
  505. package/dist/secrets/_internal.js +2 -2
  506. package/dist/secrets/compare.d.ts +45 -0
  507. package/dist/secrets/compare.js +61 -0
  508. package/dist/secrets/find.d.ts +2 -2
  509. package/dist/secrets/find.js +10 -4
  510. package/dist/secrets/keychain.d.ts +1 -1
  511. package/dist/secrets/keychain.js +6 -4
  512. package/dist/secrets/linux.js +40 -52
  513. package/dist/secrets/macos.d.ts +2 -3
  514. package/dist/secrets/macos.js +24 -33
  515. package/dist/secrets/rc.d.ts +4 -4
  516. package/dist/secrets/rc.js +27 -17
  517. package/dist/secrets/socket-api-token.d.ts +4 -4
  518. package/dist/secrets/socket-api-token.js +26 -9
  519. package/dist/secrets/windows.js +32 -37
  520. package/dist/shadow/skip.js +2 -2
  521. package/dist/shell/parse.d.ts +32 -0
  522. package/dist/shell/parse.js +60 -0
  523. package/dist/smol/detect.js +9 -10
  524. package/dist/smol/http.js +6 -7
  525. package/dist/smol/https.js +6 -7
  526. package/dist/smol/manifest.d.ts +1 -1
  527. package/dist/smol/manifest.js +6 -7
  528. package/dist/smol/path.d.ts +1 -1
  529. package/dist/smol/path.js +7 -8
  530. package/dist/smol/primordial.d.ts +4 -0
  531. package/dist/smol/primordial.js +6 -7
  532. package/dist/smol/purl.d.ts +1 -1
  533. package/dist/smol/purl.js +7 -8
  534. package/dist/smol/versions.js +6 -7
  535. package/dist/smol/vfs.js +6 -7
  536. package/dist/sorts/_internal.js +6 -8
  537. package/dist/sorts/natural.js +10 -12
  538. package/dist/sorts/semver.js +1 -2
  539. package/dist/sorts/strings.js +0 -1
  540. package/dist/sorts/types.d.ts +1 -1
  541. package/dist/spinner/create-spinner-class.d.ts +38 -0
  542. package/dist/spinner/create-spinner-class.js +302 -0
  543. package/dist/spinner/default.js +8 -9
  544. package/dist/spinner/spinner-internals.d.ts +36 -0
  545. package/dist/spinner/spinner-internals.js +105 -0
  546. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  547. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  548. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  549. package/dist/spinner/spinner-status-methods.js +133 -0
  550. package/dist/spinner/spinner.d.ts +8 -5
  551. package/dist/spinner/spinner.js +19 -706
  552. package/dist/spinner/types.d.ts +3 -1
  553. package/dist/spinner/with.d.ts +10 -0
  554. package/dist/spinner/with.js +16 -2
  555. package/dist/stdio/divider.js +1 -1
  556. package/dist/stdio/footer.js +3 -3
  557. package/dist/stdio/header.js +4 -4
  558. package/dist/stdio/progress.js +10 -6
  559. package/dist/stdio/prompts.d.ts +7 -5
  560. package/dist/stdio/prompts.js +7 -8
  561. package/dist/stdio/stdout.js +3 -3
  562. package/dist/streams/parallel.js +3 -5
  563. package/dist/streams/transform.js +2 -3
  564. package/dist/strings/format.js +2 -6
  565. package/dist/strings/predicates.js +0 -2
  566. package/dist/strings/search.js +1 -2
  567. package/dist/strings/transform.js +0 -3
  568. package/dist/strings/width.js +9 -10
  569. package/dist/tables/bordered.js +4 -3
  570. package/dist/tables/padding.js +1 -1
  571. package/dist/tables/simple.js +8 -5
  572. package/dist/temporal/instant.js +1 -1
  573. package/dist/temporal/slots.js +6 -6
  574. package/dist/temporal/system.js +9 -9
  575. package/dist/themes/context.d.ts +3 -2
  576. package/dist/themes/context.js +4 -5
  577. package/dist/themes/themes.js +15 -15
  578. package/dist/themes/types.d.ts +3 -3
  579. package/dist/url/assert-safe.d.ts +29 -0
  580. package/dist/url/assert-safe.js +54 -0
  581. package/dist/url/parse.js +0 -2
  582. package/dist/url/predicates.d.ts +31 -1
  583. package/dist/url/predicates.js +43 -3
  584. package/dist/url/search-params.js +3 -9
  585. package/dist/url/types.d.ts +9 -5
  586. package/dist/versions/_internal.js +3 -3
  587. package/dist/words/article.js +0 -1
  588. package/dist/words/capitalize.js +0 -1
  589. package/dist/words/pluralize.js +15 -5
  590. package/package.json +419 -216
  591. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  592. package/dist/external-tools/uv/asset-names.js +0 -70
  593. package/dist/external-tools/uv/from-download.d.ts +0 -17
  594. package/dist/external-tools/uv/from-download.js +0 -47
  595. package/dist/external-tools/uv/from-path.d.ts +0 -5
  596. package/dist/external-tools/uv/from-path.js +0 -22
  597. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  598. package/dist/external-tools/uv/from-vfs.js +0 -26
  599. package/dist/external-tools/uv/resolve.d.ts +0 -25
  600. package/dist/external-tools/uv/resolve.js +0 -53
  601. package/dist/external-tools/uv/types.d.ts +0 -24
  602. package/dist/fs/path-cache.d.ts +0 -21
  603. package/dist/fs/path-cache.js +0 -34
  604. package/dist/http-request/checksums.d.ts +0 -69
  605. package/dist/http-request/checksums.js +0 -108
  606. package/dist/http-request/http-request.d.ts +0 -12
  607. package/dist/http-request/http-request.js +0 -11
  608. package/dist/packages/operations.d.ts +0 -113
  609. package/dist/packages/operations.js +0 -304
  610. package/dist/ssri/convert.d.ts +0 -48
  611. package/dist/ssri/convert.js +0 -69
  612. package/dist/ssri/parse.d.ts +0 -27
  613. package/dist/ssri/parse.js +0 -41
  614. package/dist/ssri/validate.d.ts +0 -41
  615. package/dist/ssri/validate.js +0 -56
  616. /package/dist/{bin → cli}/check.d.ts +0 -0
  617. /package/dist/external-tools/{uv → python}/types.js +0 -0
  618. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  619. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -4,10 +4,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
6
  const require_constants_platform = require('../constants/platform.js');
7
+ const require_primordials_object = require('../primordials/object.js');
7
8
  const require_paths_normalize = require('../paths/normalize.js');
8
9
  const require_node_fs = require('../node/fs.js');
9
10
  const require_node_path = require('../node/path.js');
10
- const require_primordials_object = require('../primordials/object.js');
11
11
  const require_fs_read_json = require('../fs/read-json.js');
12
12
  const require_dlx__internal = require('./_internal.js');
13
13
  let src_external_libnpmexec = require("../external/libnpmexec");
@@ -41,9 +41,9 @@ src_external_libnpmexec = require_runtime.__toESM(src_external_libnpmexec);
41
41
  * ```
42
42
  */
43
43
  function findBinaryPath(packageDir, packageName, binaryName) {
44
- const path = /* @__PURE__ */ require_node_path.getNodePath();
45
- const installedDir = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
46
- const pkgJson = /* @__PURE__ */ require_fs_read_json.readJsonSync(path.join(installedDir, "package.json"));
44
+ const path = require_node_path.getNodePath();
45
+ const installedDir = require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
46
+ const pkgJson = require_fs_read_json.readJsonSync(path.join(installedDir, "package.json"));
47
47
  const bin = pkgJson["bin"];
48
48
  let binName;
49
49
  let binPath;
@@ -82,7 +82,7 @@ function findBinaryPath(packageDir, packageName, binaryName) {
82
82
  }
83
83
  }
84
84
  if (!binPath) throw new require_primordials_error.ErrorCtor(`No binary found for package "${packageName}"`);
85
- return resolveBinaryPath(/* @__PURE__ */ require_paths_normalize.normalizePath(path.join(installedDir, binPath)));
85
+ return resolveBinaryPath(require_paths_normalize.normalizePath(path.join(installedDir, binPath)));
86
86
  }
87
87
  /**
88
88
  * Make all binaries in an installed package executable. Reads the package.json
@@ -105,12 +105,12 @@ function findBinaryPath(packageDir, packageName, binaryName) {
105
105
  */
106
106
  function makePackageBinsExecutable(packageDir, packageName) {
107
107
  if (require_constants_platform.WIN32) return;
108
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
109
- const path = /* @__PURE__ */ require_node_path.getNodePath();
110
- const installedDir = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
108
+ const fs = require_node_fs.getNodeFs();
109
+ const path = require_node_path.getNodePath();
110
+ const installedDir = require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
111
111
  const pkgJsonPath = path.join(installedDir, "package.json");
112
112
  try {
113
- const bin = (/* @__PURE__ */ require_fs_read_json.readJsonSync(pkgJsonPath))["bin"];
113
+ const bin = require_fs_read_json.readJsonSync(pkgJsonPath)["bin"];
114
114
  if (!bin) return;
115
115
  const binPaths = [];
116
116
  if (typeof bin === "string") binPaths.push(bin);
@@ -118,8 +118,9 @@ function makePackageBinsExecutable(packageDir, packageName) {
118
118
  const binObj = bin;
119
119
  binPaths.push(...require_primordials_object.ObjectValues(binObj));
120
120
  }
121
- for (const binPath of binPaths) {
122
- const fullPath = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(installedDir, binPath));
121
+ for (let i = 0, { length } = binPaths; i < length; i += 1) {
122
+ const binPath = binPaths[i];
123
+ const fullPath = require_paths_normalize.normalizePath(path.join(installedDir, binPath));
123
124
  if (fs.existsSync(fullPath)) try {
124
125
  fs.chmodSync(fullPath, 493);
125
126
  } catch {}
@@ -141,7 +142,7 @@ function makePackageBinsExecutable(packageDir, packageName) {
141
142
  */
142
143
  function resolveBinaryPath(basePath) {
143
144
  if (!require_constants_platform.WIN32) return basePath;
144
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
145
+ const fs = require_node_fs.getNodeFs();
145
146
  const cached = require_dlx__internal.binaryPathCache.get(basePath);
146
147
  if (cached) {
147
148
  if (fs.existsSync(cached)) {
@@ -150,14 +151,15 @@ function resolveBinaryPath(basePath) {
150
151
  }
151
152
  require_dlx__internal.binaryPathCache.delete(basePath);
152
153
  }
153
- for (const ext of [
154
+ const extensions = [
154
155
  ".cmd",
155
156
  ".bat",
156
157
  ".ps1",
157
158
  ".exe",
158
159
  ""
159
- ]) {
160
- const testPath = basePath + ext;
160
+ ];
161
+ for (let i = 0, { length } = extensions; i < length; i += 1) {
162
+ const testPath = basePath + extensions[i];
161
163
  if (fs.existsSync(testPath)) {
162
164
  require_dlx__internal.binaryPathCacheSet(basePath, testPath);
163
165
  return testPath;
@@ -132,13 +132,13 @@ export interface DlxMetadata {
132
132
  size: number;
133
133
  source?: {
134
134
  type: 'download' | 'extract' | 'package';
135
- url?: string;
136
- path?: string;
137
- spec?: string;
138
- };
135
+ url?: string | undefined;
136
+ path?: string | undefined;
137
+ spec?: string | undefined;
138
+ } | undefined;
139
139
  update_check?: {
140
140
  last_check: number;
141
141
  last_notification: number;
142
142
  latest_known: string;
143
- };
143
+ } | undefined;
144
144
  }
@@ -59,18 +59,18 @@ async function dlxBinary(args, options, spawnExtra) {
59
59
  if (normalized.type === "integrity") integrity = normalized.value;
60
60
  else sha256 = normalized.value;
61
61
  }
62
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
63
- const path = /* @__PURE__ */ require_node_path.getNodePath();
62
+ const fs = require_node_fs.getNodeFs();
63
+ const path = require_node_path.getNodePath();
64
64
  const force = yes === true ? true : userForce;
65
65
  const cacheDir = require_dlx_binary_cache.getDlxCachePath();
66
66
  const binaryName = name || `binary-${node_process.default.platform}-${require_constants_platform.getArch()}`;
67
67
  const cacheKey = require_dlx_cache.generateCacheKey(`${url}:${binaryName}`);
68
68
  const cacheEntryDir = path.join(cacheDir, cacheKey);
69
- const binaryPath = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(cacheEntryDir, binaryName));
69
+ const binaryPath = require_paths_normalize.normalizePath(path.join(cacheEntryDir, binaryName));
70
70
  let downloaded = false;
71
71
  let computedIntegrity = integrity;
72
72
  if (!force && fs.existsSync(cacheEntryDir) && await require_dlx_binary_cache.isBinaryCacheValid(cacheEntryDir, cacheTtl)) try {
73
- const metadata = await /* @__PURE__ */ require_fs_read_json.readJson(require_dlx_binary_cache.getBinaryCacheMetadataPath(cacheEntryDir), { throws: false });
73
+ const metadata = await require_fs_read_json.readJson(require_dlx_binary_cache.getBinaryCacheMetadataPath(cacheEntryDir), { throws: false });
74
74
  if (metadata && typeof metadata === "object" && !require_primordials_array.ArrayIsArray(metadata) && typeof metadata["integrity"] === "string") {
75
75
  computedIntegrity = metadata["integrity"];
76
76
  if (!fs.existsSync(binaryPath)) downloaded = true;
@@ -129,7 +129,7 @@ async function dlxBinary(args, options, spawnExtra) {
129
129
  */
130
130
  function executeBinary(binaryPath, args, spawnOptions, spawnExtra) {
131
131
  const needsShell = require_constants_platform.WIN32 && /\.(?:bat|cmd|ps1)$/i.test(binaryPath);
132
- const path = /* @__PURE__ */ require_node_path.getNodePath();
132
+ const path = require_node_path.getNodePath();
133
133
  const cacheEntryDir = path.dirname(binaryPath);
134
134
  return require_process_spawn_child.spawn(binaryPath, args, needsShell ? {
135
135
  ...spawnOptions,
package/dist/dlx/cache.js CHANGED
@@ -41,7 +41,7 @@ const require_crypto_hash = require('../crypto/hash.js');
41
41
  * hashes the package spec (name@version), not just name.
42
42
  */
43
43
  function generateCacheKey(spec) {
44
- return (/* @__PURE__ */ require_crypto_hash.hash("sha512", spec, "hex")).substring(0, 16);
44
+ return require_crypto_hash.hash("sha512", spec, "hex").substring(0, 16);
45
45
  }
46
46
 
47
47
  //#endregion
@@ -11,36 +11,21 @@
11
11
  * - DLX cache: Check for node_modules/ directory
12
12
  * - Local paths: Check for package.json with bin field, then file extension
13
13
  */
14
- export declare function packageJsonPathCacheSet(key: string, value: string | undefined): void;
14
+ export type PackageJsonPathEntry = {
15
+ path: string | undefined;
16
+ at: number;
17
+ };
18
+ export type PackageJsonCacheEntry = {
19
+ mtimeMs: number;
20
+ content: object | undefined;
21
+ };
15
22
  export type ExecutableType = 'package' | 'binary' | 'unknown';
16
23
  export interface ExecutableDetectionResult {
17
24
  type: ExecutableType;
18
25
  method: 'dlx-cache' | 'package-json' | 'file-extension';
19
- packageJsonPath?: string;
20
- inDlxCache?: boolean;
26
+ packageJsonPath?: string | undefined;
27
+ inDlxCache?: boolean | undefined;
21
28
  }
22
- /**
23
- * Find package.json in the directory containing the file or parent directories.
24
- * Results are cached to avoid repeated directory traversal.
25
- *
26
- * @private
27
- *
28
- * @param filePath - Path to search from.
29
- *
30
- * @returns Path to package.json if found, undefined otherwise
31
- */
32
- export declare function findPackageJson(filePath: string): string | undefined;
33
- /**
34
- * Read and parse package.json with caching. Results are cached to avoid
35
- * repeated file reads.
36
- *
37
- * @private
38
- *
39
- * @param packageJsonPath - Path to package.json.
40
- *
41
- * @returns Parsed package.json or null if invalid
42
- */
43
- export declare function readPackageJson(packageJsonPath: string): object | undefined;
44
29
  /**
45
30
  * Detect executable type for paths in DLX cache. Uses filesystem structure
46
31
  * (node_modules/ presence).
@@ -95,6 +80,17 @@ export declare function detectExecutableType(filePath: string): ExecutableDetect
95
80
  * @returns Detection result
96
81
  */
97
82
  export declare function detectLocalExecutableType(filePath: string): ExecutableDetectionResult;
83
+ /**
84
+ * Find package.json in the directory containing the file or parent directories.
85
+ * Results are cached to avoid repeated directory traversal.
86
+ *
87
+ * @private
88
+ *
89
+ * @param filePath - Path to search from.
90
+ *
91
+ * @returns Path to package.json if found, undefined otherwise
92
+ */
93
+ export declare function findPackageJson(filePath: string): string | undefined;
98
94
  /**
99
95
  * Check if a file path indicates a Node.js script.
100
96
  *
@@ -138,3 +134,24 @@ export declare function isNativeBinary(filePath: string): boolean;
138
134
  * @returns True if detected as Node.js package
139
135
  */
140
136
  export declare function isNodePackage(filePath: string): boolean;
137
+ /**
138
+ * Set a package.json path cache entry, evicting the oldest when the LRU is
139
+ * full.
140
+ *
141
+ * @private
142
+ *
143
+ * @param key - Start directory used as the cache key.
144
+ * @param value - Resolved package.json path, or undefined for a negative entry.
145
+ */
146
+ export declare function packageJsonPathCacheSet(key: string, value: string | undefined): void;
147
+ /**
148
+ * Read and parse package.json with caching. Results are cached to avoid
149
+ * repeated file reads.
150
+ *
151
+ * @private
152
+ *
153
+ * @param packageJsonPath - Path to package.json.
154
+ *
155
+ * @returns Parsed package.json or null if invalid
156
+ */
157
+ export declare function readPackageJson(packageJsonPath: string): object | undefined;
@@ -8,7 +8,7 @@ const require_primordials_date = require('../primordials/date.js');
8
8
  const require_primordials_json = require('../primordials/json.js');
9
9
  const require_paths_socket = require('../paths/socket.js');
10
10
  const require_dlx_paths = require('./paths.js');
11
- const require_fs_find_up = require('../fs/find-up.js');
11
+ const require_fs_find = require('../fs/find.js');
12
12
 
13
13
  //#region src/dlx/detect.ts
14
14
  /**
@@ -35,81 +35,8 @@ const NODE_JS_EXTENSIONS = new require_primordials_map_set.SetCtor([
35
35
  const PACKAGE_JSON_PATH_CACHE_MAX_SIZE = 200;
36
36
  const PACKAGE_JSON_NEGATIVE_TTL_MS = 1e4;
37
37
  const packageJsonPathCache = new require_primordials_map_set.MapCtor();
38
- function packageJsonPathCacheSet(key, value) {
39
- if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
40
- else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
41
- const oldest = packageJsonPathCache.keys().next().value;
42
- if (oldest !== void 0) packageJsonPathCache.delete(oldest);
43
- }
44
- packageJsonPathCache.set(key, {
45
- path: value,
46
- at: Date.now()
47
- });
48
- }
49
38
  const packageJsonContentCache = new require_primordials_map_set.MapCtor();
50
39
  /**
51
- * Find package.json in the directory containing the file or parent directories.
52
- * Results are cached to avoid repeated directory traversal.
53
- *
54
- * @private
55
- *
56
- * @param filePath - Path to search from.
57
- *
58
- * @returns Path to package.json if found, undefined otherwise
59
- */
60
- function findPackageJson(filePath) {
61
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
62
- const nodePath = /* @__PURE__ */ require_node_path.getNodePath();
63
- const startDir = nodePath.dirname(nodePath.resolve(filePath));
64
- const cached = packageJsonPathCache.get(startDir);
65
- if (cached !== void 0) if (cached.path === void 0) {
66
- if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
67
- packageJsonPathCache.delete(startDir);
68
- } else if (fs.existsSync(cached.path)) {
69
- packageJsonPathCacheSet(startDir, cached.path);
70
- return cached.path;
71
- } else packageJsonPathCache.delete(startDir);
72
- const packageJsonPath = /* @__PURE__ */ require_fs_find_up.findUpSync("package.json", { cwd: startDir });
73
- packageJsonPathCacheSet(startDir, packageJsonPath);
74
- return packageJsonPath;
75
- }
76
- /**
77
- * Read and parse package.json with caching. Results are cached to avoid
78
- * repeated file reads.
79
- *
80
- * @private
81
- *
82
- * @param packageJsonPath - Path to package.json.
83
- *
84
- * @returns Parsed package.json or null if invalid
85
- */
86
- function readPackageJson(packageJsonPath) {
87
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
88
- let mtimeMs = 0;
89
- try {
90
- mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
91
- } catch {
92
- packageJsonContentCache.delete(packageJsonPath);
93
- return;
94
- }
95
- const cached = packageJsonContentCache.get(packageJsonPath);
96
- if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
97
- try {
98
- const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
99
- packageJsonContentCache.set(packageJsonPath, {
100
- mtimeMs,
101
- content
102
- });
103
- return content;
104
- } catch {
105
- packageJsonContentCache.set(packageJsonPath, {
106
- mtimeMs,
107
- content: void 0
108
- });
109
- return;
110
- }
111
- }
112
- /**
113
40
  * Detect executable type for paths in DLX cache. Uses filesystem structure
114
41
  * (node_modules/ presence).
115
42
  *
@@ -124,8 +51,8 @@ function readPackageJson(packageJsonPath) {
124
51
  * @returns Detection result
125
52
  */
126
53
  function detectDlxExecutableType(filePath) {
127
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
128
- const path = /* @__PURE__ */ require_node_path.getNodePath();
54
+ const fs = require_node_fs.getNodeFs();
55
+ const path = require_node_path.getNodePath();
129
56
  const dlxDir = require_paths_socket.getSocketDlxDir();
130
57
  const absolutePath = path.resolve(filePath);
131
58
  const cacheKey = path.relative(dlxDir, absolutePath).split(path.sep)[0] ?? "";
@@ -204,6 +131,32 @@ function detectLocalExecutableType(filePath) {
204
131
  };
205
132
  }
206
133
  /**
134
+ * Find package.json in the directory containing the file or parent directories.
135
+ * Results are cached to avoid repeated directory traversal.
136
+ *
137
+ * @private
138
+ *
139
+ * @param filePath - Path to search from.
140
+ *
141
+ * @returns Path to package.json if found, undefined otherwise
142
+ */
143
+ function findPackageJson(filePath) {
144
+ const fs = require_node_fs.getNodeFs();
145
+ const nodePath = require_node_path.getNodePath();
146
+ const startDir = nodePath.dirname(nodePath.resolve(filePath));
147
+ const cached = packageJsonPathCache.get(startDir);
148
+ if (cached !== void 0) if (cached.path === void 0) {
149
+ if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
150
+ packageJsonPathCache.delete(startDir);
151
+ } else if (fs.existsSync(cached.path)) {
152
+ packageJsonPathCacheSet(startDir, cached.path);
153
+ return cached.path;
154
+ } else packageJsonPathCache.delete(startDir);
155
+ const packageJsonPath = require_fs_find.findUpSync("package.json", { cwd: startDir });
156
+ packageJsonPathCacheSet(startDir, packageJsonPath);
157
+ return packageJsonPath;
158
+ }
159
+ /**
207
160
  * Check if a file path indicates a Node.js script.
208
161
  *
209
162
  * @example
@@ -218,7 +171,7 @@ function detectLocalExecutableType(filePath) {
218
171
  * @returns True if file has .js, .mjs, or .cjs extension
219
172
  */
220
173
  function isJsFilePath(filePath) {
221
- const ext = (/* @__PURE__ */ require_node_path.getNodePath()).extname(filePath).toLowerCase();
174
+ const ext = require_node_path.getNodePath().extname(filePath).toLowerCase();
222
175
  return NODE_JS_EXTENSIONS.has(ext);
223
176
  }
224
177
  /**
@@ -253,6 +206,62 @@ function isNativeBinary(filePath) {
253
206
  function isNodePackage(filePath) {
254
207
  return detectExecutableType(filePath).type === "package";
255
208
  }
209
+ /**
210
+ * Set a package.json path cache entry, evicting the oldest when the LRU is
211
+ * full.
212
+ *
213
+ * @private
214
+ *
215
+ * @param key - Start directory used as the cache key.
216
+ * @param value - Resolved package.json path, or undefined for a negative entry.
217
+ */
218
+ function packageJsonPathCacheSet(key, value) {
219
+ if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
220
+ else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
221
+ const oldest = packageJsonPathCache.keys().next().value;
222
+ if (oldest !== void 0) packageJsonPathCache.delete(oldest);
223
+ }
224
+ packageJsonPathCache.set(key, {
225
+ path: value,
226
+ at: Date.now()
227
+ });
228
+ }
229
+ /**
230
+ * Read and parse package.json with caching. Results are cached to avoid
231
+ * repeated file reads.
232
+ *
233
+ * @private
234
+ *
235
+ * @param packageJsonPath - Path to package.json.
236
+ *
237
+ * @returns Parsed package.json or null if invalid
238
+ */
239
+ function readPackageJson(packageJsonPath) {
240
+ const fs = require_node_fs.getNodeFs();
241
+ let mtimeMs = 0;
242
+ try {
243
+ mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
244
+ } catch {
245
+ packageJsonContentCache.delete(packageJsonPath);
246
+ return;
247
+ }
248
+ const cached = packageJsonContentCache.get(packageJsonPath);
249
+ if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
250
+ try {
251
+ const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
252
+ packageJsonContentCache.set(packageJsonPath, {
253
+ mtimeMs,
254
+ content
255
+ });
256
+ return content;
257
+ } catch {
258
+ packageJsonContentCache.set(packageJsonPath, {
259
+ mtimeMs,
260
+ content: void 0
261
+ });
262
+ return;
263
+ }
264
+ }
256
265
 
257
266
  //#endregion
258
267
  exports.detectDlxExecutableType = detectDlxExecutableType;
package/dist/dlx/dir.js CHANGED
@@ -20,7 +20,7 @@ const require_dlx_packages = require('./packages.js');
20
20
  * ```
21
21
  */
22
22
  async function clearDlx() {
23
- await /* @__PURE__ */ require_promises_iterate.pEach(await require_dlx_packages.listDlxPackagesAsync(), (pkg) => require_dlx_packages.removeDlxPackage(pkg));
23
+ await require_promises_iterate.pEach(await require_dlx_packages.listDlxPackagesAsync(), (pkg) => require_dlx_packages.removeDlxPackage(pkg));
24
24
  }
25
25
  /**
26
26
  * Clear all DLX package installations synchronously.
@@ -45,7 +45,7 @@ function clearDlxSync() {
45
45
  * ```
46
46
  */
47
47
  function dlxDirExists() {
48
- return (/* @__PURE__ */ require_node_fs.getNodeFs()).existsSync(require_paths_socket.getSocketDlxDir());
48
+ return require_node_fs.getNodeFs().existsSync(require_paths_socket.getSocketDlxDir());
49
49
  }
50
50
  /**
51
51
  * Ensure the DLX directory exists, creating it if necessary.
@@ -7,7 +7,15 @@
7
7
  * `dlx/package.ts` so the firewall logic + PURL helper can be reused by
8
8
  * other dlx flows without dragging in the install orchestrator.
9
9
  */
10
- import Arborist from '../external/@npmcli/arborist';
10
+ import type Arborist from '../external/@npmcli/arborist';
11
+ export interface FirewallAlert {
12
+ severity?: string | undefined;
13
+ type?: string | undefined;
14
+ key?: string | undefined;
15
+ }
16
+ export interface FirewallResponse {
17
+ alerts?: FirewallAlert[] | undefined;
18
+ }
11
19
  /**
12
20
  * Check all resolved packages in an Arborist ideal tree against the Socket
13
21
  * Firewall API (public, no auth required). Throws if any dependency has
@@ -2,8 +2,8 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_error = require('../primordials/error.js');
5
- const require_primordials_string = require('../primordials/string.js');
6
5
  const require_primordials_map_set = require('../primordials/map-set.js');
6
+ const require_primordials_string = require('../primordials/string.js');
7
7
  const require_primordials_promise = require('../primordials/promise.js');
8
8
  const require_http_request_user_agent = require('../http-request/user-agent.js');
9
9
  const require_http_request_node = require('../http-request/node.js');
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @file Package pin generation for dlx installs. `generatePackagePin` resolves
3
- * an npm package against the registry using Arborist's lockfile-only mode and
4
- * fetches its top-level tarball to return both hash formats plus the lockfile
5
- * content — everything needed to vendor a reproducible install. The
2
+ * @file Package pin generation for dlx installs. `resolveNpmPackagePin`
3
+ * resolves an npm package against the registry using Arborist's lockfile-only
4
+ * mode and fetches its top-level tarball to return both hash formats plus the
5
+ * lockfile content — everything needed to vendor a reproducible install. The
6
6
  * `LockfileSpec` type is also exported here for use as the `lockfile` option
7
- * on `downloadPackage`. Sniff/write handling lives inline in `./package.ts` —
8
- * no helper.
7
+ * on `downloadNpmPackage`. Sniff/write handling lives inline in
8
+ * `./package.ts` — no helper.
9
9
  */
10
10
  import type { ComputedHashes } from '../integrity';
11
11
  /**
12
- * Lockfile source for the `lockfile` option on `downloadPackage`.
12
+ * Lockfile source for the `lockfile` option on `downloadNpmPackage`.
13
13
  *
14
14
  * Bare strings are sniffed: a leading `{` (after whitespace) means JSON
15
15
  * content, anything else is treated as a filesystem path. Pass the explicit `{
@@ -40,11 +40,7 @@ export declare const DEFAULT_MIN_RELEASE_DAYS = 7;
40
40
  /**
41
41
  * Options for generating a vendorable pin for an npm package.
42
42
  */
43
- export interface GeneratePackagePinOptions {
44
- /**
45
- * Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`.
46
- */
47
- package: string;
43
+ export interface ResolveNpmPackagePinOptions {
48
44
  /**
49
45
  * Minimum release age in days. Refuses to resolve any version (direct or
50
46
  * transitive) published more recently than `Date.now() - N days`.
@@ -62,12 +58,17 @@ export interface GeneratePackagePinOptions {
62
58
  * exclusive with {@link minReleaseDays}.
63
59
  */
64
60
  minReleaseMins?: number | undefined;
61
+ /**
62
+ * Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`. Named `spec` to
63
+ * match `downloadNpmPackage`/`downloadPipPackage`.
64
+ */
65
+ spec: string;
65
66
  }
66
67
  /**
67
- * Result of {@link generatePackagePin}. All file data is returned as content —
68
+ * Result of {@link resolveNpmPackagePin}. All file data is returned as content —
68
69
  * the caller decides whether/where to write it.
69
70
  */
70
- export interface PinDetails {
71
+ export interface NpmPackagePin {
71
72
  /**
72
73
  * Resolved package name.
73
74
  */
@@ -95,7 +96,7 @@ export interface PinDetails {
95
96
  */
96
97
  export declare class DlxLockfileError extends Error {
97
98
  constructor(message: string, options?: {
98
- cause?: unknown;
99
+ cause?: unknown | undefined;
99
100
  } | undefined);
100
101
  }
101
102
  /**
@@ -112,15 +113,15 @@ export declare class DlxLockfileError extends Error {
112
113
  *
113
114
  * @example
114
115
  * ;```ts
115
- * const pin = await generatePackagePin({
116
- * package: '@anthropic-ai/claude-code@2.1.92',
116
+ * const pin = await resolveNpmPackagePin({
117
+ * spec: '@anthropic-ai/claude-code@2.1.92',
117
118
  * })
118
119
  * await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
119
120
  * // pin.hash.integrity → 'sha512-…'
120
121
  * // pin.hash.checksum → hex
121
122
  * ```
122
123
  */
123
- export declare function generatePackagePin(options: GeneratePackagePinOptions): Promise<PinDetails>;
124
+ export declare function resolveNpmPackagePin(options: ResolveNpmPackagePinOptions): Promise<NpmPackagePin>;
124
125
  /**
125
126
  * Extract the package name from a spec like `'name@range'` or
126
127
  * `'@scope/name@range'` or a bare `'name'`.
@@ -2,8 +2,8 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
- const require_primordials_string = require('../primordials/string.js');
6
5
  const require_integrity = require('../integrity.js');
6
+ const require_primordials_string = require('../primordials/string.js');
7
7
  const require_node_fs = require('../node/fs.js');
8
8
  const require_node_path = require('../node/path.js');
9
9
  const require_primordials_date = require('../primordials/date.js');
@@ -17,13 +17,13 @@ src_external_pacote = require_runtime.__toESM(src_external_pacote);
17
17
 
18
18
  //#region src/dlx/lockfile.ts
19
19
  /**
20
- * @file Package pin generation for dlx installs. `generatePackagePin` resolves
21
- * an npm package against the registry using Arborist's lockfile-only mode and
22
- * fetches its top-level tarball to return both hash formats plus the lockfile
23
- * content — everything needed to vendor a reproducible install. The
20
+ * @file Package pin generation for dlx installs. `resolveNpmPackagePin`
21
+ * resolves an npm package against the registry using Arborist's lockfile-only
22
+ * mode and fetches its top-level tarball to return both hash formats plus the
23
+ * lockfile content — everything needed to vendor a reproducible install. The
24
24
  * `LockfileSpec` type is also exported here for use as the `lockfile` option
25
- * on `downloadPackage`. Sniff/write handling lives inline in `./package.ts` —
26
- * no helper.
25
+ * on `downloadNpmPackage`. Sniff/write handling lives inline in
26
+ * `./package.ts` — no helper.
27
27
  */
28
28
  /**
29
29
  * Default minimum release age in days applied when a caller passes neither
@@ -55,20 +55,23 @@ var DlxLockfileError = class extends Error {
55
55
  *
56
56
  * @example
57
57
  * ;```ts
58
- * const pin = await generatePackagePin({
59
- * package: '@anthropic-ai/claude-code@2.1.92',
58
+ * const pin = await resolveNpmPackagePin({
59
+ * spec: '@anthropic-ai/claude-code@2.1.92',
60
60
  * })
61
61
  * await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
62
62
  * // pin.hash.integrity → 'sha512-…'
63
63
  * // pin.hash.checksum → hex
64
64
  * ```
65
65
  */
66
- async function generatePackagePin(options) {
67
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
68
- const path = /* @__PURE__ */ require_node_path.getNodePath();
69
- const { minReleaseDays, minReleaseMins, package: spec } = options;
70
- if (typeof spec !== "string" || spec.length === 0) throw new DlxLockfileError("generatePackagePin requires a package spec");
71
- if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new DlxLockfileError("generatePackagePin: minReleaseDays and minReleaseMins are mutually exclusive");
66
+ async function resolveNpmPackagePin(options) {
67
+ const fs = require_node_fs.getNodeFs();
68
+ const path = require_node_path.getNodePath();
69
+ const { minReleaseDays, minReleaseMins, spec } = {
70
+ __proto__: null,
71
+ ...options
72
+ };
73
+ if (typeof spec !== "string" || spec.length === 0) throw new DlxLockfileError("resolveNpmPackagePin requires a package spec");
74
+ if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new DlxLockfileError("resolveNpmPackagePin: minReleaseDays and minReleaseMins are mutually exclusive");
72
75
  const effectiveDays = minReleaseDays !== void 0 ? minReleaseDays : minReleaseMins !== void 0 ? void 0 : 7;
73
76
  const ageMs = effectiveDays !== void 0 ? effectiveDays * 864e5 : minReleaseMins !== void 0 ? minReleaseMins * 6e4 : 0;
74
77
  const before = ageMs > 0 ? new require_primordials_date.DateCtor(require_primordials_date.DateNow() - ageMs) : void 0;
@@ -125,6 +128,6 @@ function specRange(spec) {
125
128
  //#endregion
126
129
  exports.DEFAULT_MIN_RELEASE_DAYS = DEFAULT_MIN_RELEASE_DAYS;
127
130
  exports.DlxLockfileError = DlxLockfileError;
128
- exports.generatePackagePin = generatePackagePin;
131
+ exports.resolveNpmPackagePin = resolveNpmPackagePin;
129
132
  exports.specName = specName;
130
133
  exports.specRange = specRange;