@socketsecurity/lib 6.0.5 → 6.0.7

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 (534) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +6 -4
  4. package/dist/ai/spawn.js +10 -6
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +12 -7
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +4 -6
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/acorn-bindgen.cjs +769 -0
  27. package/dist/bin/acorn.wasm +0 -0
  28. package/dist/bin/exec.js +2 -3
  29. package/dist/bin/find.js +13 -13
  30. package/dist/bin/prim.cjs +39244 -0
  31. package/dist/bin/resolve.js +12 -13
  32. package/dist/bin/which.js +8 -8
  33. package/dist/cache/ttl/store.js +5 -5
  34. package/dist/checks/primordials-defaults.d.ts +3 -3
  35. package/dist/checks/primordials-defaults.js +3 -3
  36. package/dist/checks/primordials.js +4 -3
  37. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  38. package/dist/{bin → cli}/check-primordials.js +56 -52
  39. package/dist/{bin → cli}/check.js +6 -5
  40. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  41. package/dist/{bin → cli}/socket-lib.js +4 -4
  42. package/dist/colors/socket-palette.js +7 -9
  43. package/dist/compression/_internal.d.ts +12 -12
  44. package/dist/compression/_internal.js +20 -19
  45. package/dist/compression/brotli.d.ts +25 -25
  46. package/dist/compression/brotli.js +37 -44
  47. package/dist/compression/gzip.d.ts +23 -23
  48. package/dist/compression/gzip.js +44 -52
  49. package/dist/constants/agents.d.ts +3 -1
  50. package/dist/constants/agents.js +15 -11
  51. package/dist/constants/licenses.js +3 -3
  52. package/dist/constants/node.d.ts +23 -0
  53. package/dist/constants/node.js +47 -15
  54. package/dist/constants/packages.js +22 -28
  55. package/dist/constants/platform.d.ts +30 -3
  56. package/dist/constants/platform.js +72 -12
  57. package/dist/constants/runtime.d.ts +22 -0
  58. package/dist/constants/runtime.js +32 -0
  59. package/dist/constants/socket.js +1 -1
  60. package/dist/cover/code.js +8 -8
  61. package/dist/cover/formatters.js +5 -5
  62. package/dist/crypto/hash.d.ts +26 -1
  63. package/dist/crypto/hash.js +43 -12
  64. package/dist/debug/_internal.js +4 -6
  65. package/dist/debug/caller-info.js +2 -3
  66. package/dist/debug/namespace.d.ts +7 -0
  67. package/dist/debug/namespace.js +21 -12
  68. package/dist/debug/output.js +21 -24
  69. package/dist/debug/types.d.ts +4 -4
  70. package/dist/dlx/arborist.js +6 -6
  71. package/dist/dlx/binary-cache.js +14 -14
  72. package/dist/dlx/binary-download.d.ts +1 -1
  73. package/dist/dlx/binary-download.js +14 -13
  74. package/dist/dlx/binary-resolution.js +16 -14
  75. package/dist/dlx/binary-types.d.ts +5 -5
  76. package/dist/dlx/binary.js +5 -5
  77. package/dist/dlx/cache.js +1 -1
  78. package/dist/dlx/detect.d.ts +34 -25
  79. package/dist/dlx/detect.js +86 -77
  80. package/dist/dlx/dir.js +2 -2
  81. package/dist/dlx/firewall.d.ts +1 -1
  82. package/dist/dlx/lockfile.d.ts +19 -18
  83. package/dist/dlx/lockfile.js +16 -16
  84. package/dist/dlx/manifest.d.ts +6 -6
  85. package/dist/dlx/manifest.js +5 -5
  86. package/dist/dlx/package.d.ts +10 -10
  87. package/dist/dlx/package.js +16 -16
  88. package/dist/dlx/packages.js +4 -4
  89. package/dist/dlx/paths.js +7 -7
  90. package/dist/dlx/spec.js +1 -1
  91. package/dist/dlx/types.d.ts +28 -27
  92. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  93. package/dist/eco/cargo/parse-lockfile.js +2 -2
  94. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  95. package/dist/eco/manifest/detect-format.js +4 -4
  96. package/dist/eco/manifest/find-packages.js +2 -2
  97. package/dist/eco/manifest/get-package-versions.js +2 -2
  98. package/dist/eco/manifest/get-package.js +2 -2
  99. package/dist/eco/manifest/parse-lockfile.js +2 -2
  100. package/dist/eco/manifest/parse-manifest.js +2 -2
  101. package/dist/eco/manifest/parse.js +2 -2
  102. package/dist/eco/npm/npm/exec.js +2 -2
  103. package/dist/eco/npm/npm/flags.js +7 -12
  104. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  105. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  106. package/dist/eco/npm/parse-package-json.js +3 -3
  107. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  108. package/dist/eco/npm/pnpm/exec.js +5 -5
  109. package/dist/eco/npm/pnpm/flags.js +0 -3
  110. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  111. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  112. package/dist/eco/npm/script.js +9 -6
  113. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  114. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  115. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  116. package/dist/effects/pulse-frames.d.ts +3 -1
  117. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  118. package/dist/effects/shimmer-terminal.d.ts +1 -1
  119. package/dist/env/boolean.js +0 -1
  120. package/dist/env/ci.js +0 -1
  121. package/dist/env/debug.js +0 -1
  122. package/dist/env/github-status.d.ts +51 -0
  123. package/dist/env/github-status.js +90 -0
  124. package/dist/env/github.js +0 -8
  125. package/dist/env/home.js +0 -1
  126. package/dist/env/locale.js +0 -3
  127. package/dist/env/node-auth-token.js +0 -1
  128. package/dist/env/node-env.js +0 -1
  129. package/dist/env/node-version-managers.d.ts +53 -0
  130. package/dist/env/node-version-managers.js +90 -0
  131. package/dist/env/npm.js +0 -5
  132. package/dist/env/number.js +0 -1
  133. package/dist/env/package-manager.js +3 -6
  134. package/dist/env/path.js +0 -1
  135. package/dist/env/pre-commit.js +1 -2
  136. package/dist/env/rewire.d.ts +7 -6
  137. package/dist/env/rewire.js +15 -16
  138. package/dist/env/shell.js +0 -1
  139. package/dist/env/socket-cli.js +5 -18
  140. package/dist/env/socket-mcp.d.ts +114 -0
  141. package/dist/env/socket-mcp.js +146 -0
  142. package/dist/env/socket.d.ts +1 -109
  143. package/dist/env/socket.js +12 -166
  144. package/dist/env/string.js +0 -1
  145. package/dist/env/temp-dir.js +0 -3
  146. package/dist/env/term.js +0 -1
  147. package/dist/env/test.js +3 -6
  148. package/dist/env/windows.js +0 -4
  149. package/dist/env/xdg.js +0 -3
  150. package/dist/events/exit/_internal.d.ts +11 -9
  151. package/dist/events/exit/_internal.js +31 -35
  152. package/dist/events/exit/handler.js +3 -4
  153. package/dist/events/exit/intercept.js +4 -6
  154. package/dist/events/exit/lifecycle.js +16 -18
  155. package/dist/events/exit/signals.js +1 -2
  156. package/dist/events/exit/types.d.ts +6 -5
  157. package/dist/external/@npmcli/package-json.js +2 -2
  158. package/dist/external/@sinclair/typebox/value.js +5 -1
  159. package/dist/external/@sinclair/typebox.js +5 -1
  160. package/dist/external/@socketregistry/packageurl-js.js +27 -0
  161. package/dist/external/npm-pack.js +2 -2
  162. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  163. package/dist/external-tools/bazel/resolve.js +2 -1
  164. package/dist/external-tools/bazel/types.d.ts +1 -1
  165. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  166. package/dist/external-tools/cdxgen/resolve.js +2 -1
  167. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  168. package/dist/external-tools/from-download.d.ts +1 -1
  169. package/dist/external-tools/from-download.js +1 -1
  170. package/dist/external-tools/from-pip-venv.d.ts +73 -0
  171. package/dist/external-tools/from-pip-venv.js +98 -0
  172. package/dist/external-tools/janus/asset-names.js +1 -1
  173. package/dist/external-tools/janus/from-download.js +3 -5
  174. package/dist/external-tools/janus/from-vfs.js +1 -1
  175. package/dist/external-tools/janus/resolve.js +2 -1
  176. package/dist/external-tools/janus/types.d.ts +1 -1
  177. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  178. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  179. package/dist/external-tools/jre/from-download.js +2 -1
  180. package/dist/external-tools/jre/from-vfs.js +1 -1
  181. package/dist/external-tools/jre/resolve.js +2 -1
  182. package/dist/external-tools/jre/types.d.ts +1 -1
  183. package/dist/external-tools/manifest.d.ts +7 -7
  184. package/dist/external-tools/manifest.js +18 -16
  185. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  186. package/dist/external-tools/opengrep/resolve.js +2 -1
  187. package/dist/external-tools/opengrep/types.d.ts +1 -1
  188. package/dist/external-tools/python/asset-names.d.ts +76 -0
  189. package/dist/external-tools/python/asset-names.js +104 -0
  190. package/dist/external-tools/python/dlx.d.ts +80 -0
  191. package/dist/external-tools/python/dlx.js +87 -0
  192. package/dist/external-tools/python/from-download.d.ts +53 -0
  193. package/dist/external-tools/python/from-download.js +68 -0
  194. package/dist/external-tools/python/from-path.d.ts +7 -0
  195. package/dist/external-tools/python/from-path.js +23 -0
  196. package/dist/external-tools/python/pin.d.ts +121 -0
  197. package/dist/external-tools/python/pin.js +173 -0
  198. package/dist/external-tools/python/pip-install.d.ts +75 -0
  199. package/dist/external-tools/python/pip-install.js +139 -0
  200. package/dist/external-tools/python/resolve.d.ts +42 -0
  201. package/dist/external-tools/python/resolve.js +58 -0
  202. package/dist/external-tools/python/types.d.ts +49 -0
  203. package/dist/external-tools/sbt/from-vfs.js +1 -1
  204. package/dist/external-tools/sbt/resolve.js +2 -1
  205. package/dist/external-tools/sbt/types.d.ts +1 -1
  206. package/dist/external-tools/skillspector/from-dlx.d.ts +24 -0
  207. package/dist/external-tools/skillspector/from-dlx.js +41 -0
  208. package/dist/external-tools/skillspector/from-path.d.ts +8 -0
  209. package/dist/external-tools/skillspector/from-path.js +30 -0
  210. package/dist/external-tools/skillspector/from-vfs.d.ts +8 -0
  211. package/dist/external-tools/skillspector/from-vfs.js +27 -0
  212. package/dist/external-tools/skillspector/resolve.d.ts +34 -0
  213. package/dist/external-tools/skillspector/resolve.js +53 -0
  214. package/dist/external-tools/skillspector/types.d.ts +24 -0
  215. package/dist/external-tools/skillspector/types.js +2 -0
  216. package/dist/external-tools/synp/from-download.js +2 -2
  217. package/dist/external-tools/synp/from-vfs.js +1 -1
  218. package/dist/external-tools/synp/resolve.js +2 -1
  219. package/dist/external-tools/trivy/from-vfs.js +1 -1
  220. package/dist/external-tools/trivy/resolve.js +2 -1
  221. package/dist/external-tools/trivy/types.d.ts +1 -1
  222. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  223. package/dist/external-tools/trufflehog/resolve.js +2 -1
  224. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  225. package/dist/fs/_internal.d.ts +1 -1
  226. package/dist/fs/_internal.js +7 -7
  227. package/dist/fs/access.js +5 -9
  228. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  229. package/dist/fs/encoding.js +5 -7
  230. package/dist/fs/{find-up.js → find.js} +11 -13
  231. package/dist/fs/inspect.js +7 -13
  232. package/dist/fs/read-dir.js +7 -10
  233. package/dist/fs/read-file.js +8 -14
  234. package/dist/fs/read-json-cache.d.ts +6 -4
  235. package/dist/fs/read-json-cache.js +9 -6
  236. package/dist/fs/read-json.js +4 -6
  237. package/dist/fs/resolve-module.js +1 -1
  238. package/dist/fs/safe.d.ts +1 -1
  239. package/dist/fs/safe.js +12 -13
  240. package/dist/fs/unique.js +4 -5
  241. package/dist/fs/validate.js +1 -2
  242. package/dist/fs/write-json.js +4 -5
  243. package/dist/git/_internal.js +12 -11
  244. package/dist/git/changed.js +4 -4
  245. package/dist/git/repo.js +3 -3
  246. package/dist/git/staged.js +4 -4
  247. package/dist/git/unstaged.js +4 -4
  248. package/dist/github/ghsa.js +2 -2
  249. package/dist/github/refs-cache.d.ts +1 -1
  250. package/dist/github/refs-cache.js +5 -5
  251. package/dist/github/refs-rest.js +5 -5
  252. package/dist/github/{fetch.js → request.js} +13 -2
  253. package/dist/github/token.js +1 -1
  254. package/dist/github/types.d.ts +1 -1
  255. package/dist/globs/_internal.js +7 -9
  256. package/dist/globs/match.js +6 -7
  257. package/dist/globs/matcher.d.ts +3 -3
  258. package/dist/globs/matcher.js +12 -14
  259. package/dist/globs/stream.js +1 -2
  260. package/dist/globs/types.d.ts +24 -24
  261. package/dist/http-request/_internal.d.ts +1 -1
  262. package/dist/http-request/browser.js +21 -13
  263. package/dist/http-request/checksum-file.d.ts +55 -0
  264. package/dist/http-request/checksum-file.js +95 -0
  265. package/dist/http-request/download-types.d.ts +15 -23
  266. package/dist/http-request/download.js +4 -4
  267. package/dist/http-request/headers.d.ts +32 -3
  268. package/dist/http-request/headers.js +41 -13
  269. package/dist/http-request/request-attempt.js +38 -33
  270. package/dist/http-request/request-types.d.ts +7 -2
  271. package/dist/http-request/request.js +33 -16
  272. package/dist/http-request/response-reader.d.ts +12 -1
  273. package/dist/http-request/response-reader.js +22 -2
  274. package/dist/http-request/user-agent.js +3 -4
  275. package/dist/integrity.d.ts +86 -18
  276. package/dist/integrity.js +119 -30
  277. package/dist/ipc/directory.js +2 -2
  278. package/dist/ipc/paths.js +1 -1
  279. package/dist/ipc/write.js +1 -1
  280. package/dist/ipc-cli/get.js +12 -12
  281. package/dist/json/edit.js +13 -14
  282. package/dist/json/format.js +2 -2
  283. package/dist/json/parse.d.ts +1 -1
  284. package/dist/json/parse.js +3 -7
  285. package/dist/logger/_internal.d.ts +4 -4
  286. package/dist/logger/_internal.js +3 -3
  287. package/dist/logger/colors.js +4 -3
  288. package/dist/logger/console-methods.d.ts +132 -0
  289. package/dist/logger/console-methods.js +169 -0
  290. package/dist/logger/console.d.ts +12 -0
  291. package/dist/logger/console.js +42 -11
  292. package/dist/logger/indentation-methods.d.ts +81 -0
  293. package/dist/logger/indentation-methods.js +121 -0
  294. package/dist/logger/node.d.ts +16 -338
  295. package/dist/logger/node.js +75 -608
  296. package/dist/logger/options.d.ts +39 -0
  297. package/dist/logger/options.js +47 -0
  298. package/dist/logger/semantic-methods.d.ts +63 -0
  299. package/dist/logger/semantic-methods.js +108 -0
  300. package/dist/logger/stream-methods.d.ts +63 -0
  301. package/dist/logger/stream-methods.js +101 -0
  302. package/dist/logger/stream.d.ts +37 -0
  303. package/dist/logger/stream.js +42 -0
  304. package/dist/logger/symbols-builder.js +9 -9
  305. package/dist/logger/symbols.d.ts +2 -25
  306. package/dist/logger/symbols.js +53 -74
  307. package/dist/logger/types.d.ts +1 -1
  308. package/dist/memo/types.d.ts +6 -6
  309. package/dist/native-messaging/host.d.ts +20 -0
  310. package/dist/native-messaging/host.js +120 -0
  311. package/dist/native-messaging/index.d.ts +5 -0
  312. package/dist/native-messaging/index.js +22 -0
  313. package/dist/native-messaging/install.d.ts +60 -0
  314. package/dist/native-messaging/install.js +141 -0
  315. package/dist/native-messaging/rate-limit.d.ts +62 -0
  316. package/dist/native-messaging/rate-limit.js +115 -0
  317. package/dist/native-messaging/run.d.ts +10 -0
  318. package/dist/native-messaging/run.js +17 -0
  319. package/dist/node/async-hooks.js +4 -3
  320. package/dist/node/child-process.js +4 -3
  321. package/dist/node/crypto.js +4 -3
  322. package/dist/node/events.js +4 -3
  323. package/dist/node/fs-promises.js +4 -3
  324. package/dist/node/fs.js +4 -3
  325. package/dist/node/http.js +4 -3
  326. package/dist/node/https.js +4 -3
  327. package/dist/node/module.js +10 -6
  328. package/dist/node/os.js +4 -3
  329. package/dist/node/path.js +4 -3
  330. package/dist/node/timers-promises.js +4 -3
  331. package/dist/node/url.js +4 -3
  332. package/dist/node/util.js +4 -3
  333. package/dist/objects/getters.js +5 -7
  334. package/dist/objects/inspect.js +1 -4
  335. package/dist/objects/mutate.js +2 -3
  336. package/dist/objects/predicates.js +0 -4
  337. package/dist/objects/sort.js +3 -7
  338. package/dist/packages/edit-class.js +15 -16
  339. package/dist/packages/edit.js +12 -14
  340. package/dist/packages/exports.js +11 -17
  341. package/dist/packages/fetch.d.ts +16 -0
  342. package/dist/packages/fetch.js +81 -0
  343. package/dist/packages/find.d.ts +55 -0
  344. package/dist/packages/find.js +65 -0
  345. package/dist/packages/isolation.js +14 -14
  346. package/dist/packages/licenses.js +16 -16
  347. package/dist/packages/manifest.js +12 -15
  348. package/dist/packages/metadata-extensions.d.ts +14 -0
  349. package/dist/packages/metadata-extensions.js +43 -0
  350. package/dist/packages/normalize.js +5 -9
  351. package/dist/packages/provenance.d.ts +6 -0
  352. package/dist/packages/provenance.js +25 -18
  353. package/dist/packages/read.d.ts +29 -0
  354. package/dist/packages/read.js +66 -0
  355. package/dist/packages/specs.d.ts +48 -1
  356. package/dist/packages/specs.js +74 -11
  357. package/dist/packages/tarball.d.ts +24 -0
  358. package/dist/packages/tarball.js +79 -0
  359. package/dist/packages/types.d.ts +21 -20
  360. package/dist/packages/validation.js +0 -3
  361. package/dist/paths/_internal.d.ts +2 -1
  362. package/dist/paths/_internal.js +7 -19
  363. package/dist/paths/conversion.js +5 -9
  364. package/dist/paths/filenames.d.ts +0 -1
  365. package/dist/paths/filenames.js +0 -2
  366. package/dist/paths/normalize.js +6 -5
  367. package/dist/paths/packages.js +4 -7
  368. package/dist/paths/predicates.js +9 -16
  369. package/dist/paths/resolve.js +11 -14
  370. package/dist/paths/rewire.js +3 -3
  371. package/dist/paths/socket.js +16 -16
  372. package/dist/paths/walk.d.ts +1 -1
  373. package/dist/paths/walk.js +4 -4
  374. package/dist/perf/report.js +2 -2
  375. package/dist/perf/types.d.ts +1 -1
  376. package/dist/pkg-ext/data.js +1 -1
  377. package/dist/primordials/array.js +9 -9
  378. package/dist/primordials/date.js +2 -2
  379. package/dist/primordials/error.js +3 -3
  380. package/dist/primordials/headers.d.ts +10 -0
  381. package/dist/primordials/headers.js +23 -0
  382. package/dist/primordials/intl.d.ts +13 -0
  383. package/dist/primordials/intl.js +26 -0
  384. package/dist/primordials/math.js +33 -33
  385. package/dist/primordials/number.js +9 -9
  386. package/dist/primordials/object.js +5 -5
  387. package/dist/primordials/string.d.ts +2 -2
  388. package/dist/primordials/string.js +6 -6
  389. package/dist/primordials/symbol.js +3 -3
  390. package/dist/primordials/uncurry.js +9 -9
  391. package/dist/process/abort.js +3 -3
  392. package/dist/process/lock-manager.js +8 -8
  393. package/dist/process/spawn/_internal.js +6 -8
  394. package/dist/process/spawn/child.js +14 -14
  395. package/dist/process/spawn/errors.js +2 -4
  396. package/dist/process/spawn/kill-tree.d.ts +53 -0
  397. package/dist/process/spawn/kill-tree.js +85 -0
  398. package/dist/process/spawn/stdio.js +0 -1
  399. package/dist/process/spawn/types.d.ts +5 -5
  400. package/dist/process/transient.js +2 -2
  401. package/dist/promises/_internal.d.ts +2 -1
  402. package/dist/promises/_internal.js +2 -6
  403. package/dist/promises/iterate.js +12 -16
  404. package/dist/promises/options.js +3 -6
  405. package/dist/promises/retry.js +4 -5
  406. package/dist/promises/timers.d.ts +30 -0
  407. package/dist/promises/timers.js +48 -0
  408. package/dist/releases/github-archives.d.ts +6 -6
  409. package/dist/releases/github-archives.js +2 -2
  410. package/dist/releases/github-asset-url.d.ts +1 -1
  411. package/dist/releases/github-asset-url.js +5 -5
  412. package/dist/releases/github-downloads.d.ts +1 -1
  413. package/dist/releases/github-downloads.js +3 -3
  414. package/dist/releases/github-listing.d.ts +11 -2
  415. package/dist/releases/github-listing.js +20 -7
  416. package/dist/releases/github-retry-config.js +1 -1
  417. package/dist/releases/github-types.d.ts +6 -6
  418. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  419. package/dist/releases/socket-btm-binary-naming.js +155 -0
  420. package/dist/releases/socket-btm.d.ts +8 -115
  421. package/dist/releases/socket-btm.js +16 -159
  422. package/dist/schema/types.d.ts +1 -1
  423. package/dist/sea/detect.js +6 -6
  424. package/dist/secrets/_internal.d.ts +2 -2
  425. package/dist/secrets/_internal.js +5 -4
  426. package/dist/secrets/compare.d.ts +45 -0
  427. package/dist/secrets/compare.js +61 -0
  428. package/dist/secrets/keychain.js +9 -6
  429. package/dist/secrets/linux.js +25 -23
  430. package/dist/secrets/macos.d.ts +1 -1
  431. package/dist/secrets/macos.js +18 -16
  432. package/dist/secrets/rc.d.ts +2 -2
  433. package/dist/secrets/rc.js +15 -10
  434. package/dist/secrets/socket-api-token.d.ts +4 -4
  435. package/dist/secrets/socket-api-token.js +18 -9
  436. package/dist/secrets/windows.js +21 -17
  437. package/dist/shadow/skip.js +2 -2
  438. package/dist/shell/parse.d.ts +108 -1
  439. package/dist/shell/parse.js +168 -2
  440. package/dist/smol/detect.js +9 -10
  441. package/dist/smol/http.js +6 -7
  442. package/dist/smol/https.js +6 -7
  443. package/dist/smol/manifest.d.ts +1 -1
  444. package/dist/smol/manifest.js +6 -7
  445. package/dist/smol/path.d.ts +1 -1
  446. package/dist/smol/path.js +7 -8
  447. package/dist/smol/primordial.d.ts +4 -0
  448. package/dist/smol/primordial.js +6 -7
  449. package/dist/smol/purl.d.ts +1 -1
  450. package/dist/smol/purl.js +7 -8
  451. package/dist/smol/versions.js +6 -7
  452. package/dist/smol/vfs.js +6 -7
  453. package/dist/sorts/_internal.js +6 -8
  454. package/dist/sorts/natural.js +10 -12
  455. package/dist/sorts/semver.js +1 -2
  456. package/dist/sorts/strings.js +0 -1
  457. package/dist/sorts/types.d.ts +1 -1
  458. package/dist/spinner/create-spinner-class.d.ts +38 -0
  459. package/dist/spinner/create-spinner-class.js +302 -0
  460. package/dist/spinner/default.js +8 -9
  461. package/dist/spinner/spinner-internals.d.ts +36 -0
  462. package/dist/spinner/spinner-internals.js +101 -0
  463. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  464. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  465. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  466. package/dist/spinner/spinner-status-methods.js +133 -0
  467. package/dist/spinner/spinner.d.ts +4 -5
  468. package/dist/spinner/spinner.js +18 -705
  469. package/dist/spinner/types.d.ts +3 -1
  470. package/dist/spinner/with.d.ts +10 -0
  471. package/dist/spinner/with.js +16 -2
  472. package/dist/stdio/divider.js +1 -1
  473. package/dist/stdio/footer.js +3 -3
  474. package/dist/stdio/header.js +4 -4
  475. package/dist/stdio/progress.js +5 -5
  476. package/dist/stdio/prompts.d.ts +5 -3
  477. package/dist/stdio/prompts.js +6 -7
  478. package/dist/stdio/stdout.js +3 -3
  479. package/dist/streams/parallel.js +3 -5
  480. package/dist/streams/transform.js +2 -3
  481. package/dist/strings/format.js +2 -6
  482. package/dist/strings/predicates.js +0 -2
  483. package/dist/strings/search.js +1 -2
  484. package/dist/strings/transform.js +0 -3
  485. package/dist/strings/width.js +9 -10
  486. package/dist/tables/bordered.js +4 -3
  487. package/dist/tables/padding.js +1 -1
  488. package/dist/tables/simple.js +8 -5
  489. package/dist/temporal/instant.js +4 -2
  490. package/dist/temporal/slots.js +7 -6
  491. package/dist/temporal/system.js +9 -9
  492. package/dist/themes/context.d.ts +3 -2
  493. package/dist/themes/context.js +4 -5
  494. package/dist/themes/themes.js +15 -15
  495. package/dist/themes/types.d.ts +3 -3
  496. package/dist/url/parse.js +0 -2
  497. package/dist/url/predicates.js +1 -2
  498. package/dist/url/search-params.js +3 -9
  499. package/dist/url/types.d.ts +5 -5
  500. package/dist/versions/_internal.js +3 -3
  501. package/dist/words/article.js +0 -1
  502. package/dist/words/capitalize.js +0 -1
  503. package/dist/words/pluralize.d.ts +24 -2
  504. package/dist/words/pluralize.js +47 -2
  505. package/dist/words/types.d.ts +25 -2
  506. package/package.json +289 -108
  507. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  508. package/dist/external-tools/uv/asset-names.js +0 -70
  509. package/dist/external-tools/uv/from-download.d.ts +0 -17
  510. package/dist/external-tools/uv/from-download.js +0 -47
  511. package/dist/external-tools/uv/from-path.d.ts +0 -5
  512. package/dist/external-tools/uv/from-path.js +0 -22
  513. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  514. package/dist/external-tools/uv/from-vfs.js +0 -26
  515. package/dist/external-tools/uv/resolve.d.ts +0 -25
  516. package/dist/external-tools/uv/resolve.js +0 -52
  517. package/dist/external-tools/uv/types.d.ts +0 -24
  518. package/dist/http-request/checksums.d.ts +0 -69
  519. package/dist/http-request/checksums.js +0 -108
  520. package/dist/http-request/http-request.d.ts +0 -12
  521. package/dist/http-request/http-request.js +0 -11
  522. package/dist/packages/operations.d.ts +0 -113
  523. package/dist/packages/operations.js +0 -304
  524. package/dist/ssri/convert.d.ts +0 -48
  525. package/dist/ssri/convert.js +0 -69
  526. package/dist/ssri/parse.d.ts +0 -27
  527. package/dist/ssri/parse.js +0 -41
  528. package/dist/ssri/validate.d.ts +0 -41
  529. package/dist/ssri/validate.js +0 -56
  530. /package/dist/{bin → cli}/check.d.ts +0 -0
  531. /package/dist/external-tools/{uv → python}/types.js +0 -0
  532. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  533. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  534. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -16,7 +16,6 @@ const require_objects_predicates = require('../objects/predicates.js');
16
16
  *
17
17
  * @private
18
18
  */
19
- /* @__NO_SIDE_EFFECTS__ */
20
19
  function getCallerInfo(stackOffset = 3) {
21
20
  let name = "";
22
21
  const captureStackTrace = Error.captureStackTrace;
@@ -33,14 +32,14 @@ function getCallerInfo(stackOffset = 3) {
33
32
  if (lineCount < stackOffset) lineStart = i + 1;
34
33
  else {
35
34
  const line = stack.slice(lineStart, i).trimStart();
36
- const match = /(?<=^at\s+).*?(?=\s+\(|$)/.exec(line)?.[0];
35
+ const match = /(?<=^at\s+).*?(?=$|\s+\()/.exec(line)?.[0];
37
36
  /* c8 ignore next - Defensive guard; real V8 stack frames
38
37
  always start with 'at '. */
39
38
  if (match) {
40
39
  name = match.replace(/^(?:async|bound|get|new|set)\s+/, "");
41
40
  if (require_primordials_string.StringPrototypeStartsWith(name, "Object.")) {
42
41
  const afterDot = require_primordials_string.StringPrototypeSlice(name, 7);
43
- if (!/* @__PURE__ */ require_objects_predicates.hasOwn(Object, afterDot)) name = afterDot;
42
+ if (!require_objects_predicates.hasOwn(Object, afterDot)) name = afterDot;
44
43
  }
45
44
  }
46
45
  break;
@@ -33,3 +33,10 @@ export declare function isDebugNs(namespaces: string | undefined): boolean;
33
33
  * @private
34
34
  */
35
35
  export declare function isEnabled(namespaces: string | undefined): boolean;
36
+ /**
37
+ * Whether SOCKET_DEBUG enables debug output. A namespace value like `*` or
38
+ * `socket:foo` enables it (these aren't boolean literals, so `envAsBoolean`
39
+ * alone would wrongly read them as false); an explicit boolean-false (`0`,
40
+ * `false`, `no`) or an empty/unset value disables it.
41
+ */
42
+ export declare function isSocketDebugEnabled(): boolean;
@@ -23,7 +23,6 @@ src_external_debug = require_runtime.__toESM(src_external_debug);
23
23
  *
24
24
  * @private
25
25
  */
26
- /* @__NO_SIDE_EFFECTS__ */
27
26
  function extractOptions(namespaces) {
28
27
  return namespaces !== null && typeof namespaces === "object" ? {
29
28
  __proto__: null,
@@ -38,12 +37,11 @@ function extractOptions(namespaces) {
38
37
  *
39
38
  * @private
40
39
  */
41
- /* @__NO_SIDE_EFFECTS__ */
42
40
  function getDebugJsInstance(namespace) {
43
41
  let inst = require_debug__internal.debugByNamespace.get(namespace);
44
42
  /* c8 ignore start */
45
43
  if (inst) return inst;
46
- if (!/* @__PURE__ */ require_env_debug.getDebug() && /* @__PURE__ */ require_env_socket.getSocketDebug() && (namespace === "error" || namespace === "notice")) src_external_debug.default.enable(namespace);
44
+ if (!require_env_debug.getDebug() && require_env_socket.getSocketDebug() && (namespace === "error" || namespace === "notice")) src_external_debug.default.enable(namespace);
47
45
  /* c8 ignore stop */
48
46
  /* c8 ignore next - External debug library call */
49
47
  inst = (0, src_external_debug.default)(namespace);
@@ -54,33 +52,43 @@ function getDebugJsInstance(namespace) {
54
52
  /**
55
53
  * Check if debug mode is enabled.
56
54
  */
57
- /* @__NO_SIDE_EFFECTS__ */
58
55
  function isDebug() {
59
- return !!/* @__PURE__ */ require_env_socket.getSocketDebug();
56
+ return isSocketDebugEnabled();
60
57
  }
61
58
  /**
62
59
  * Check if debug mode is enabled.
63
60
  */
64
- /* @__NO_SIDE_EFFECTS__ */
65
61
  function isDebugNs(namespaces) {
66
- return !!/* @__PURE__ */ require_env_socket.getSocketDebug() && /* @__PURE__ */ isEnabled(namespaces);
62
+ return isSocketDebugEnabled() && isEnabled(namespaces);
67
63
  }
68
64
  /**
69
65
  * Check if debug is enabled for given namespaces.
70
66
  *
71
67
  * @private
72
68
  */
73
- /* @__NO_SIDE_EFFECTS__ */
74
69
  function isEnabled(namespaces) {
75
- if (!/* @__PURE__ */ require_env_socket.getSocketDebug()) return false;
70
+ if (!require_env_socket.getSocketDebug()) return false;
76
71
  if (typeof namespaces !== "string" || !namespaces || namespaces === "*") return true;
77
72
  const split = namespaces.trim().replace(/\s+/g, ",").split(",").filter(Boolean);
78
73
  const names = [];
79
74
  const skips = [];
80
75
  for (const ns of split) if (require_primordials_string.StringPrototypeStartsWith(ns, "-")) skips.push(ns.slice(1));
81
76
  else names.push(ns);
82
- if (names.length && !names.some((ns) => (/* @__PURE__ */ getDebugJsInstance(ns)).enabled)) return false;
83
- return skips.every((ns) => !(/* @__PURE__ */ getDebugJsInstance(ns)).enabled);
77
+ if (names.length && !names.some((ns) => getDebugJsInstance(ns).enabled)) return false;
78
+ return skips.every((ns) => !getDebugJsInstance(ns).enabled);
79
+ }
80
+ /**
81
+ * Whether SOCKET_DEBUG enables debug output. A namespace value like `*` or
82
+ * `socket:foo` enables it (these aren't boolean literals, so `envAsBoolean`
83
+ * alone would wrongly read them as false); an explicit boolean-false (`0`,
84
+ * `false`, `no`) or an empty/unset value disables it.
85
+ */
86
+ function isSocketDebugEnabled() {
87
+ const value = require_env_socket.getSocketDebug();
88
+ if (!value) return false;
89
+ const lower = value.trim().toLowerCase();
90
+ if (lower === "0" || lower === "false" || lower === "no") return false;
91
+ return true;
84
92
  }
85
93
 
86
94
  //#endregion
@@ -88,4 +96,5 @@ exports.extractOptions = extractOptions;
88
96
  exports.getDebugJsInstance = getDebugJsInstance;
89
97
  exports.isDebug = isDebug;
90
98
  exports.isDebugNs = isDebugNs;
91
- exports.isEnabled = isEnabled;
99
+ exports.isEnabled = isEnabled;
100
+ exports.isSocketDebugEnabled = isSocketDebugEnabled;
@@ -39,10 +39,9 @@ function debug(...args) {
39
39
  * debugCache('miss', 'socket-sdk:scans:xyz', { ttl: 60000 })
40
40
  * ```
41
41
  */
42
- /* @__NO_SIDE_EFFECTS__ */
43
42
  function debugCache(operation, key, meta) {
44
- if (!/* @__PURE__ */ require_env_socket.getSocketDebug()) return;
45
- const prefix = `[CACHE] ${/* @__PURE__ */ require_debug_caller_info.getCallerInfo(3) || "cache"} ${/* @__PURE__ */ require_debug__internal.getPointingTriangle()} ${operation}: ${key}`;
43
+ if (!require_env_socket.getSocketDebug()) return;
44
+ const prefix = `[CACHE] ${require_debug_caller_info.getCallerInfo(3) || "cache"} ${require_debug__internal.getPointingTriangle()} ${operation}: ${key}`;
46
45
  const args = meta !== void 0 ? [prefix, meta] : [prefix];
47
46
  require_primordials_reflect.ReflectApply(require_debug__internal.logger.info, require_debug__internal.logger, args);
48
47
  }
@@ -52,10 +51,10 @@ function debugCache(operation, key, meta) {
52
51
  * message. Optional third argument is metadata object.
53
52
  */
54
53
  function debugCacheNs(namespacesOrOpts, operation, key, meta) {
55
- const options = /* @__PURE__ */ require_debug_namespace.extractOptions(namespacesOrOpts);
54
+ const options = require_debug_namespace.extractOptions(namespacesOrOpts);
56
55
  const { namespaces } = options;
57
- if (!/* @__PURE__ */ require_debug_namespace.isEnabled(namespaces)) return;
58
- const prefix = `[CACHE] ${/* @__PURE__ */ require_debug_caller_info.getCallerInfo(4) || "cache"} ${/* @__PURE__ */ require_debug__internal.getPointingTriangle()} ${operation}: ${key}`;
56
+ if (!require_debug_namespace.isEnabled(namespaces)) return;
57
+ const prefix = `[CACHE] ${require_debug_caller_info.getCallerInfo(4) || "cache"} ${require_debug__internal.getPointingTriangle()} ${operation}: ${key}`;
59
58
  const logArgs = meta !== void 0 ? [prefix, meta] : [prefix];
60
59
  const spinnerInstance = options.spinner || require_spinner_default.getDefaultSpinner();
61
60
  const wasSpinning = spinnerInstance?.isSpinning;
@@ -74,13 +73,13 @@ function debugDir(obj, inspectOpts) {
74
73
  * Debug output for object inspection with caller info.
75
74
  */
76
75
  function debugDirNs(namespacesOrOpts, obj, inspectOpts) {
77
- const options = /* @__PURE__ */ require_debug_namespace.extractOptions(namespacesOrOpts);
76
+ const options = require_debug_namespace.extractOptions(namespacesOrOpts);
78
77
  const { namespaces } = options;
79
- if (!/* @__PURE__ */ require_debug_namespace.isEnabled(namespaces)) return;
78
+ if (!require_debug_namespace.isEnabled(namespaces)) return;
80
79
  /* c8 ignore start */
81
- const callerName = /* @__PURE__ */ require_debug_caller_info.getCallerInfo(4) || "anonymous";
80
+ const callerName = require_debug_caller_info.getCallerInfo(4) || "anonymous";
82
81
  /* c8 ignore stop */
83
- const pointingTriangle = /* @__PURE__ */ require_debug__internal.getPointingTriangle();
82
+ const pointingTriangle = require_debug__internal.getPointingTriangle();
84
83
  let opts = inspectOpts;
85
84
  /* c8 ignore start */
86
85
  if (opts === void 0) {
@@ -109,15 +108,15 @@ function debugLog(...args) {
109
108
  * Debug logging function with caller info.
110
109
  */
111
110
  function debugLogNs(namespacesOrOpts, ...args) {
112
- const options = /* @__PURE__ */ require_debug_namespace.extractOptions(namespacesOrOpts);
111
+ const options = require_debug_namespace.extractOptions(namespacesOrOpts);
113
112
  const { namespaces } = options;
114
- if (!/* @__PURE__ */ require_debug_namespace.isEnabled(namespaces)) return;
113
+ if (!require_debug_namespace.isEnabled(namespaces)) return;
115
114
  /* c8 ignore start */
116
- const callerName = /* @__PURE__ */ require_debug_caller_info.getCallerInfo(4) || "anonymous";
115
+ const callerName = require_debug_caller_info.getCallerInfo(4) || "anonymous";
117
116
  /* c8 ignore stop */
118
- const pointingTriangle = /* @__PURE__ */ require_debug__internal.getPointingTriangle();
117
+ const pointingTriangle = require_debug__internal.getPointingTriangle();
119
118
  const text = require_primordials_array.ArrayPrototypeAt(args, 0);
120
- const logArgs = typeof text === "string" ? [/* @__PURE__ */ require_strings_format.applyLinePrefix(`${callerName} ${pointingTriangle} ${text}`, { prefix: "[DEBUG] " }), ...require_primordials_array.ArrayPrototypeSlice(args, 1)] : [`[DEBUG] ${callerName} ${pointingTriangle}`, ...args];
119
+ const logArgs = typeof text === "string" ? [require_strings_format.applyLinePrefix(`${callerName} ${pointingTriangle} ${text}`, { prefix: "[DEBUG] " }), ...require_primordials_array.ArrayPrototypeSlice(args, 1)] : [`[DEBUG] ${callerName} ${pointingTriangle}`, ...args];
121
120
  const spinnerInstance = options.spinner || require_spinner_default.getDefaultSpinner();
122
121
  const wasSpinning = spinnerInstance?.isSpinning;
123
122
  spinnerInstance?.stop();
@@ -128,15 +127,15 @@ function debugLogNs(namespacesOrOpts, ...args) {
128
127
  * Debug output with caller info.
129
128
  */
130
129
  function debugNs(namespacesOrOpts, ...args) {
131
- const options = /* @__PURE__ */ require_debug_namespace.extractOptions(namespacesOrOpts);
130
+ const options = require_debug_namespace.extractOptions(namespacesOrOpts);
132
131
  const { namespaces } = options;
133
- if (!/* @__PURE__ */ require_debug_namespace.isEnabled(namespaces)) return;
132
+ if (!require_debug_namespace.isEnabled(namespaces)) return;
134
133
  /* c8 ignore start */
135
- const name = /* @__PURE__ */ require_debug_caller_info.getCallerInfo(4) || "anonymous";
134
+ const name = require_debug_caller_info.getCallerInfo(4) || "anonymous";
136
135
  /* c8 ignore stop */
137
- const pointingTriangle = /* @__PURE__ */ require_debug__internal.getPointingTriangle();
136
+ const pointingTriangle = require_debug__internal.getPointingTriangle();
138
137
  const text = require_primordials_array.ArrayPrototypeAt(args, 0);
139
- const logArgs = typeof text === "string" ? [/* @__PURE__ */ require_strings_format.applyLinePrefix(`${name} ${pointingTriangle} ${text}`, { prefix: "[DEBUG] " }), ...require_primordials_array.ArrayPrototypeSlice(args, 1)] : args;
138
+ const logArgs = typeof text === "string" ? [require_strings_format.applyLinePrefix(`${name} ${pointingTriangle} ${text}`, { prefix: "[DEBUG] " }), ...require_primordials_array.ArrayPrototypeSlice(args, 1)] : args;
140
139
  const spinnerInstance = options.spinner || require_spinner_default.getDefaultSpinner();
141
140
  const wasSpinning = spinnerInstance?.isSpinning;
142
141
  spinnerInstance?.stop();
@@ -147,17 +146,15 @@ function debugNs(namespacesOrOpts, ...args) {
147
146
  * Create a Node.js util.debuglog compatible function. Returns a function that
148
147
  * conditionally writes debug messages to stderr.
149
148
  */
150
- /* @__NO_SIDE_EFFECTS__ */
151
149
  function debuglog(section) {
152
- return (/* @__PURE__ */ require_node_util.getNodeUtil()).debuglog(section);
150
+ return require_node_util.getNodeUtil().debuglog(section);
153
151
  }
154
152
  /**
155
153
  * Create timing functions for measuring code execution time. Returns an object
156
154
  * with start() and end() methods, plus a callable function.
157
155
  */
158
- /* @__NO_SIDE_EFFECTS__ */
159
156
  function debugtime(label) {
160
- const util = /* @__PURE__ */ require_node_util.getNodeUtil();
157
+ const util = require_node_util.getNodeUtil();
161
158
  let startTime;
162
159
  const impl = () => {
163
160
  if (startTime === void 0) startTime = require_primordials_date.DateNow();
@@ -5,17 +5,17 @@
5
5
  * types, no runtime side effects.
6
6
  */
7
7
  export interface DebugOptions {
8
- namespaces?: string;
8
+ namespaces?: string | undefined;
9
9
  spinner?: {
10
10
  isSpinning: boolean;
11
11
  stop(): void;
12
12
  start(): void;
13
- };
13
+ } | undefined;
14
14
  [key: string]: unknown;
15
15
  }
16
16
  export type NamespacesOrOptions = string | DebugOptions;
17
17
  export interface InspectOptions {
18
- depth?: number | null;
19
- colors?: boolean;
18
+ depth?: number | null | undefined;
19
+ colors?: boolean | undefined;
20
20
  [key: string]: unknown;
21
21
  }
@@ -6,8 +6,8 @@ const require_primordials_error = require('../primordials/error.js');
6
6
  const require_primordials_array = require('../primordials/array.js');
7
7
  const require_node_fs = require('../node/fs.js');
8
8
  const require_node_path = require('../node/path.js');
9
- const require_primordials_object = require('../primordials/object.js');
10
9
  const require_primordials_json = require('../primordials/json.js');
10
+ const require_primordials_object = require('../primordials/object.js');
11
11
  const require_paths_socket = require('../paths/socket.js');
12
12
  let src_external__npmcli_arborist = require("../external/@npmcli/arborist");
13
13
  src_external__npmcli_arborist = require_runtime.__toESM(src_external__npmcli_arborist);
@@ -56,7 +56,7 @@ function getBaseArboristOptions(installPath, options) {
56
56
  * N deps did we pin?").
57
57
  */
58
58
  function readSingleDependency(packageJsonPath) {
59
- const names = require_primordials_object.ObjectKeys(require_primordials_json.JSONParse((/* @__PURE__ */ require_node_fs.getNodeFs()).readFileSync(packageJsonPath, "utf8")).dependencies ?? {});
59
+ const names = require_primordials_object.ObjectKeys(require_primordials_json.JSONParse(require_node_fs.getNodeFs().readFileSync(packageJsonPath, "utf8")).dependencies ?? {});
60
60
  if (names.length !== 1) throw new require_primordials_error.ErrorCtor(`safeIdealTree expects exactly one top-level dependency in ${packageJsonPath}, found ${names.length}`);
61
61
  return names[0];
62
62
  }
@@ -95,8 +95,8 @@ function readTopLevelFromIdealTree(tree, targetName) {
95
95
  * with no `add` list skips the write.
96
96
  */
97
97
  async function safeIdealTree(options) {
98
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
99
- const path = /* @__PURE__ */ require_node_path.getNodePath();
98
+ const fs = require_node_fs.getNodeFs();
99
+ const path = require_node_path.getNodePath();
100
100
  const { before, path: installPath, quiet = true } = options;
101
101
  const targetName = readSingleDependency(path.join(installPath, "package.json"));
102
102
  const arb = new src_external__npmcli_arborist.default({
@@ -146,8 +146,8 @@ async function safeReify(options) {
146
146
  * pnpm-style equivalent: minimum-release-age=<minutes>
147
147
  */
148
148
  async function writeSafeNpmrc(installPath, options) {
149
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
150
- const path = /* @__PURE__ */ require_node_path.getNodePath();
149
+ const fs = require_node_fs.getNodeFs();
150
+ const path = require_node_path.getNodePath();
151
151
  const { minReleaseDays, minReleaseMins } = {
152
152
  __proto__: null,
153
153
  ...options
@@ -43,18 +43,18 @@ node_process = require_runtime.__toESM(node_process);
43
43
  */
44
44
  async function cleanDlxCache(maxAge = require_constants_time.DLX_BINARY_CACHE_TTL) {
45
45
  const cacheDir = getDlxCachePath();
46
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
46
+ const fs = require_node_fs.getNodeFs();
47
47
  if (!fs.existsSync(cacheDir)) return 0;
48
48
  let cleaned = 0;
49
49
  const now = require_primordials_date.DateNow();
50
- const path = /* @__PURE__ */ require_node_path.getNodePath();
50
+ const path = require_node_path.getNodePath();
51
51
  const entries = await fs.promises.readdir(cacheDir);
52
52
  for (const entry of entries) {
53
53
  const entryPath = path.join(cacheDir, entry);
54
54
  const metaPath = getBinaryCacheMetadataPath(entryPath);
55
55
  try {
56
56
  if (!await (0, node_fs.existsSync)(entryPath)) continue;
57
- const metadata = await /* @__PURE__ */ require_fs_read_json.readJson(metaPath, { throws: false });
57
+ const metadata = await require_fs_read_json.readJson(metaPath, { throws: false });
58
58
  if (!metadata || typeof metadata !== "object" || require_primordials_array.ArrayIsArray(metadata)) continue;
59
59
  const timestamp = metadata["timestamp"];
60
60
  const age = typeof timestamp === "number" && timestamp > 0 ? now - timestamp : Number.POSITIVE_INFINITY;
@@ -86,7 +86,7 @@ async function cleanDlxCache(maxAge = require_constants_time.DLX_BINARY_CACHE_TT
86
86
  * ```
87
87
  */
88
88
  function getBinaryCacheMetadataPath(cacheEntryPath) {
89
- return (/* @__PURE__ */ require_node_path.getNodePath()).join(cacheEntryPath, ".dlx-metadata.json");
89
+ return require_node_path.getNodePath().join(cacheEntryPath, ".dlx-metadata.json");
90
90
  }
91
91
  /**
92
92
  * Get the DLX binary cache directory path. Alias of `getSocketDlxDir` — DLX
@@ -111,12 +111,12 @@ const getDlxCachePath = require_paths_socket.getSocketDlxDir;
111
111
  * ```
112
112
  */
113
113
  async function isBinaryCacheValid(cacheEntryPath, cacheTtl) {
114
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
114
+ const fs = require_node_fs.getNodeFs();
115
115
  try {
116
116
  const metaPath = getBinaryCacheMetadataPath(cacheEntryPath);
117
117
  if (!fs.existsSync(metaPath)) return false;
118
- const metadata = await /* @__PURE__ */ require_fs_read_json.readJson(metaPath, { throws: false });
119
- if (!/* @__PURE__ */ require_objects_predicates.isPlainObject(metadata)) return false;
118
+ const metadata = await require_fs_read_json.readJson(metaPath, { throws: false });
119
+ if (!require_objects_predicates.isPlainObject(metadata)) return false;
120
120
  const now = require_primordials_date.DateNow();
121
121
  const timestamp = metadata["timestamp"];
122
122
  if (typeof timestamp !== "number" || timestamp <= 0) return false;
@@ -140,17 +140,17 @@ async function isBinaryCacheValid(cacheEntryPath, cacheTtl) {
140
140
  */
141
141
  async function listDlxCache() {
142
142
  const cacheDir = getDlxCachePath();
143
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
143
+ const fs = require_node_fs.getNodeFs();
144
144
  if (!fs.existsSync(cacheDir)) return [];
145
145
  const results = [];
146
146
  const now = require_primordials_date.DateNow();
147
- const path = /* @__PURE__ */ require_node_path.getNodePath();
147
+ const path = require_node_path.getNodePath();
148
148
  const entries = await fs.promises.readdir(cacheDir);
149
149
  for (const entry of entries) {
150
150
  const entryPath = path.join(cacheDir, entry);
151
151
  try {
152
152
  if (!await (0, node_fs.existsSync)(entryPath)) continue;
153
- const metadata = await /* @__PURE__ */ require_fs_read_json.readJson(getBinaryCacheMetadataPath(entryPath), { throws: false });
153
+ const metadata = await require_fs_read_json.readJson(getBinaryCacheMetadataPath(entryPath), { throws: false });
154
154
  if (!metadata || typeof metadata !== "object" || require_primordials_array.ArrayIsArray(metadata)) continue;
155
155
  const metaObj = metadata;
156
156
  const url = metaObj["source"]?.["url"] || metaObj["url"] || "";
@@ -185,12 +185,12 @@ async function listDlxCache() {
185
185
  * ```
186
186
  */
187
187
  async function readBinaryCacheMetadata(cacheEntryPath) {
188
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
188
+ const fs = require_node_fs.getNodeFs();
189
189
  try {
190
190
  const metaPath = getBinaryCacheMetadataPath(cacheEntryPath);
191
191
  if (!fs.existsSync(metaPath)) return;
192
- const metadata = await /* @__PURE__ */ require_fs_read_json.readJson(metaPath, { throws: false });
193
- if (!/* @__PURE__ */ require_objects_predicates.isPlainObject(metadata)) return;
192
+ const metadata = await require_fs_read_json.readJson(metaPath, { throws: false });
193
+ if (!require_objects_predicates.isPlainObject(metadata)) return;
194
194
  return metadata;
195
195
  } catch {
196
196
  return;
@@ -224,7 +224,7 @@ async function writeBinaryCacheMetadata(cacheEntryPath, cacheKey, url, integrity
224
224
  url
225
225
  }
226
226
  };
227
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
227
+ const fs = require_node_fs.getNodeFs();
228
228
  const tmpPath = `${metaPath}.tmp.${node_process.default.pid}`;
229
229
  await fs.promises.writeFile(tmpPath, require_primordials_json.JSONStringify(metadata, null, 2));
230
230
  await fs.promises.rename(tmpPath, metaPath);
@@ -9,7 +9,7 @@
9
9
  import type { DlxBinaryOptions } from './binary-types';
10
10
  /**
11
11
  * Download a binary from a URL with caching (without execution). Similar to
12
- * downloadPackage from dlx/package.
12
+ * downloadNpmPackage from dlx/package.
13
13
  *
14
14
  * Returns `{binaryPath, downloaded, integrity}`. The `integrity` field is the
15
15
  * SRI-formatted `sha512-<base64>` hash of the cached file — computed by the
@@ -4,6 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_node_crypto = require('../node/crypto.js');
6
6
  const require_crypto_hash = require('../crypto/hash.js');
7
+ const require_primordials_buffer = require('../primordials/buffer.js');
7
8
  const require_primordials_error = require('../primordials/error.js');
8
9
  const require_integrity = require('../integrity.js');
9
10
  const require_constants_platform = require('../constants/platform.js');
@@ -30,7 +31,7 @@ node_process = require_runtime.__toESM(node_process);
30
31
  */
31
32
  /**
32
33
  * Download a binary from a URL with caching (without execution). Similar to
33
- * downloadPackage from dlx/package.
34
+ * downloadNpmPackage from dlx/package.
34
35
  *
35
36
  * Returns `{binaryPath, downloaded, integrity}`. The `integrity` field is the
36
37
  * SRI-formatted `sha512-<base64>` hash of the cached file — computed by the
@@ -69,20 +70,20 @@ async function downloadBinary(options) {
69
70
  if (normalized.type === "integrity") integrity = normalized.value;
70
71
  else sha256 = normalized.value;
71
72
  }
72
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
73
- const path = /* @__PURE__ */ require_node_path.getNodePath();
73
+ const fs = require_node_fs.getNodeFs();
74
+ const path = require_node_path.getNodePath();
74
75
  const cacheDir = require_dlx_binary_cache.getDlxCachePath();
75
76
  const binaryName = name || `binary-${node_process.default.platform}-${require_constants_platform.getArch()}`;
76
77
  const cacheKey = require_dlx_cache.generateCacheKey(`${url}:${binaryName}`);
77
78
  const cacheEntryDir = path.join(cacheDir, cacheKey);
78
- const binaryPath = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(cacheEntryDir, binaryName));
79
+ const binaryPath = require_paths_normalize.normalizePath(path.join(cacheEntryDir, binaryName));
79
80
  let downloaded = false;
80
81
  let actualIntegrity = "";
81
82
  if (!force && fs.existsSync(cacheEntryDir) && await require_dlx_binary_cache.isBinaryCacheValid(cacheEntryDir, cacheTtl)) {
82
83
  downloaded = false;
83
84
  const cachedMeta = await require_dlx_binary_cache.readBinaryCacheMetadata(cacheEntryDir);
84
85
  if (cachedMeta?.integrity) actualIntegrity = cachedMeta.integrity;
85
- else actualIntegrity = `sha512-${/* @__PURE__ */ require_crypto_hash.hash("sha512", await fs.promises.readFile(binaryPath), "base64")}`;
86
+ else actualIntegrity = `sha512-${require_crypto_hash.hash("sha512", await fs.promises.readFile(binaryPath), "base64")}`;
86
87
  } else {
87
88
  try {
88
89
  await require_fs_safe.safeMkdir(cacheEntryDir);
@@ -127,22 +128,22 @@ async function downloadBinary(options) {
127
128
  * ```
128
129
  */
129
130
  async function downloadBinaryFile(url, destPath, integrity, sha256) {
130
- const crypto = /* @__PURE__ */ require_node_crypto.getNodeCrypto();
131
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
132
- const path = /* @__PURE__ */ require_node_path.getNodePath();
131
+ const crypto = require_node_crypto.getNodeCrypto();
132
+ const fs = require_node_fs.getNodeFs();
133
+ const path = require_node_path.getNodePath();
133
134
  const cacheEntryDir = path.dirname(destPath);
134
135
  const lockPath = path.join(cacheEntryDir, "concurrency.lock");
135
136
  const verifyIntegrity = async (actualIntegrity) => {
136
137
  if (!integrity) return;
137
- if (!(actualIntegrity.length === integrity.length && crypto.timingSafeEqual(Buffer.from(actualIntegrity), Buffer.from(integrity)))) {
138
+ if (!(actualIntegrity.length === integrity.length && crypto.timingSafeEqual(require_primordials_buffer.BufferFrom(actualIntegrity), Buffer.from(integrity)))) {
138
139
  await require_fs_safe.safeDelete(destPath);
139
140
  throw new require_primordials_error.ErrorCtor(`Integrity mismatch: expected ${integrity}, got ${actualIntegrity}`);
140
141
  }
141
142
  };
142
143
  const verifyCachedSha256 = async (fileBuffer) => {
143
144
  if (!sha256) return;
144
- const actualSha256 = /* @__PURE__ */ require_crypto_hash.hash("sha256", fileBuffer, "hex");
145
- if (!(actualSha256.length === sha256.length && crypto.timingSafeEqual(Buffer.from(actualSha256), Buffer.from(sha256.toLowerCase())))) {
145
+ const actualSha256 = require_crypto_hash.hash("sha256", fileBuffer, "hex");
146
+ if (!(actualSha256.length === sha256.length && crypto.timingSafeEqual(require_primordials_buffer.BufferFrom(actualSha256), Buffer.from(sha256.toLowerCase())))) {
146
147
  await require_fs_safe.safeDelete(destPath);
147
148
  throw new require_primordials_error.ErrorCtor(`SHA-256 mismatch: expected ${sha256}, got ${actualSha256}`);
148
149
  }
@@ -151,7 +152,7 @@ async function downloadBinaryFile(url, destPath, integrity, sha256) {
151
152
  if (fs.existsSync(destPath)) {
152
153
  if ((await fs.promises.stat(destPath)).size > 0) {
153
154
  const fileBuffer = await fs.promises.readFile(destPath);
154
- const actualIntegrity = `sha512-${/* @__PURE__ */ require_crypto_hash.hash("sha512", fileBuffer, "base64")}`;
155
+ const actualIntegrity = `sha512-${require_crypto_hash.hash("sha512", fileBuffer, "base64")}`;
155
156
  await verifyIntegrity(actualIntegrity);
156
157
  await verifyCachedSha256(fileBuffer);
157
158
  return actualIntegrity;
@@ -162,7 +163,7 @@ async function downloadBinaryFile(url, destPath, integrity, sha256) {
162
163
  } catch (e) {
163
164
  throw new require_primordials_error.ErrorCtor(`Failed to download binary from ${url}\nDestination: ${destPath}\nCheck your internet connection or verify the URL is accessible.`, { cause: e });
164
165
  }
165
- const actualIntegrity = `sha512-${/* @__PURE__ */ require_crypto_hash.hash("sha512", await fs.promises.readFile(destPath), "base64")}`;
166
+ const actualIntegrity = `sha512-${require_crypto_hash.hash("sha512", await fs.promises.readFile(destPath), "base64")}`;
166
167
  await verifyIntegrity(actualIntegrity);
167
168
  if (!require_constants_platform.WIN32) await fs.promises.chmod(destPath, 493);
168
169
  return actualIntegrity;
@@ -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