@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
@@ -5,10 +5,10 @@ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
5
5
  const require_paths_socket = require('../../paths/socket.js');
6
6
  const require_external_tools_from_download = require('../from-download.js');
7
7
  const require_external_tools_trufflehog_asset_names = require('./asset-names.js');
8
- let node_path = require("node:path");
9
- node_path = require_runtime.__toESM(node_path);
10
8
  let node_process = require("node:process");
11
9
  node_process = require_runtime.__toESM(node_process);
10
+ let node_path = require("node:path");
11
+ node_path = require_runtime.__toESM(node_path);
12
12
 
13
13
  //#region src/external-tools/trufflehog/from-download.ts
14
14
  /**
@@ -20,8 +20,11 @@ node_process = require_runtime.__toESM(node_process);
20
20
  * check, no network. Trust-on-first-use: pass `integrity` from
21
21
  * `external-tools.json` when available.
22
22
  */
23
- async function trufflehogFromDownload(opts) {
24
- const { cacheDir, downloader, integrity, platformArch, version } = opts;
23
+ async function trufflehogFromDownload(options) {
24
+ const { cacheDir, downloader, integrity, platformArch, version } = {
25
+ __proto__: null,
26
+ ...options
27
+ };
25
28
  const url = require_external_tools_trufflehog_asset_names.getTrufflehogDownloadUrl({
26
29
  version,
27
30
  platformArch
@@ -14,7 +14,7 @@ const require_smol_vfs = require('../../smol/vfs.js');
14
14
  */
15
15
  const TRUFFLEHOG_VFS_KEY = "trufflehog";
16
16
  async function trufflehogFromVfs() {
17
- const vfs = /* @__PURE__ */ require_smol_vfs.getSmolVfs();
17
+ const vfs = require_smol_vfs.getSmolVfs();
18
18
  if (!vfs) return;
19
19
  /* c8 ignore start - smol Node binary only. */
20
20
  if (!vfs.has("trufflehog")) return;
@@ -24,7 +24,7 @@ export interface ResolveTrufflehogOptions {
24
24
  downloader?: BinaryDownloader | undefined;
25
25
  } | undefined;
26
26
  }
27
- export declare function cacheKey(opts: ResolveTrufflehogOptions | undefined): string;
28
- export declare function doResolveTrufflehog(opts?: ResolveTrufflehogOptions | undefined): Promise<ResolvedTrufflehog | undefined>;
27
+ export declare function cacheKey(options: ResolveTrufflehogOptions | undefined): string;
28
+ export declare function doResolveTrufflehog(options?: ResolveTrufflehogOptions | undefined): Promise<ResolvedTrufflehog | undefined>;
29
29
  export declare function resetTrufflehogResolution(): void;
30
- export declare function resolveTrufflehog(opts?: ResolveTrufflehogOptions | undefined): Promise<ResolvedTrufflehog | undefined>;
30
+ export declare function resolveTrufflehog(options?: ResolveTrufflehogOptions | undefined): Promise<ResolvedTrufflehog | undefined>;
@@ -18,30 +18,38 @@ const require_external_tools_trufflehog_from_vfs = require('./from-vfs.js');
18
18
  * per option-shape; same caching semantics as `resolveJre()`.
19
19
  */
20
20
  const resolutionCache = new require_primordials_map_set.MapCtor();
21
- function cacheKey(opts) {
22
- if (!opts?.downloadIfMissing) return "local-only";
23
- const { cacheDir, integrity, platformArch, version } = opts.downloadIfMissing;
21
+ function cacheKey(options) {
22
+ options = {
23
+ __proto__: null,
24
+ ...options
25
+ };
26
+ if (!options?.downloadIfMissing) return "local-only";
27
+ const { cacheDir, integrity, platformArch, version } = options.downloadIfMissing;
24
28
  return `dl:${version}:${platformArch}:${typeof integrity === "string" ? integrity : integrity ? `${integrity.type}:${integrity.value}` : ""}:${cacheDir ?? ""}`;
25
29
  }
26
- async function doResolveTrufflehog(opts) {
30
+ async function doResolveTrufflehog(options) {
31
+ options = {
32
+ __proto__: null,
33
+ ...options
34
+ };
27
35
  const fromVfs = await require_external_tools_trufflehog_from_vfs.trufflehogFromVfs();
28
36
  /* c8 ignore start - smol Node binary only. */
29
37
  if (fromVfs) return fromVfs;
30
38
  /* c8 ignore stop */
31
39
  const fromPath = await require_external_tools_trufflehog_from_path.trufflehogFromPath();
32
40
  if (fromPath) return fromPath;
33
- if (opts?.downloadIfMissing) return require_external_tools_trufflehog_from_download.trufflehogFromDownload(opts.downloadIfMissing);
41
+ if (options?.downloadIfMissing) return require_external_tools_trufflehog_from_download.trufflehogFromDownload(options.downloadIfMissing);
34
42
  }
35
43
  /* c8 ignore start - test-only escape hatch. */
36
44
  function resetTrufflehogResolution() {
37
45
  resolutionCache.clear();
38
46
  }
39
47
  /* c8 ignore stop */
40
- function resolveTrufflehog(opts) {
41
- const key = cacheKey(opts);
48
+ function resolveTrufflehog(options) {
49
+ const key = cacheKey(options);
42
50
  let cached = resolutionCache.get(key);
43
51
  if (!cached) {
44
- cached = doResolveTrufflehog(opts);
52
+ cached = doResolveTrufflehog(options);
45
53
  resolutionCache.set(key, cached);
46
54
  }
47
55
  return cached;
@@ -21,5 +21,5 @@ export interface ResolvedTrufflehog {
21
21
  /**
22
22
  * See {@link ResolvedToolIntegrity}.
23
23
  */
24
- readonly integrity?: ResolvedToolIntegrity;
24
+ readonly integrity?: ResolvedToolIntegrity | undefined;
25
25
  }
@@ -2,7 +2,7 @@
2
2
  * @file Private state shared between `fs/safe` and `fs/path-cache`. The `_`
3
3
  * prefix keeps this module out of the generated package.json `exports` map
4
4
  * (the `dist/**\/_*` ignore pattern in
5
- * `scripts/fix/generate-package-exports.mts` filters it out), so it is not
5
+ * `scripts/post-build/make-package-exports.mts` filters it out), so it is not
6
6
  * part of the public surface — it exists only to give the two leaves above a
7
7
  * common owner for the allowed-directory cache. The cache is invalidated by
8
8
  * `invalidatePathCache()` in `fs/path-cache.ts` whenever paths are rewired in
@@ -9,36 +9,36 @@ const require_paths_socket = require('../paths/socket.js');
9
9
  * @file Private state shared between `fs/safe` and `fs/path-cache`. The `_`
10
10
  * prefix keeps this module out of the generated package.json `exports` map
11
11
  * (the `dist/**\/_*` ignore pattern in
12
- * `scripts/fix/generate-package-exports.mts` filters it out), so it is not
12
+ * `scripts/post-build/make-package-exports.mts` filters it out), so it is not
13
13
  * part of the public surface — it exists only to give the two leaves above a
14
14
  * common owner for the allowed-directory cache. The cache is invalidated by
15
15
  * `invalidatePathCache()` in `fs/path-cache.ts` whenever paths are rewired in
16
16
  * tests (`paths/rewire.ts` registers `invalidatePathCache` as one of its
17
17
  * cache callbacks); `getAllowedDirectories()` rehydrates on next call.
18
18
  */
19
- let _cachedAllowedDirs;
19
+ let cachedAllowedDirs;
20
20
  /**
21
21
  * Clear the cached allowed-directories list. Used by `invalidatePathCache()`
22
22
  * when test path rewiring changes any of the underlying paths so the next read
23
23
  * picks up the new resolved values.
24
24
  */
25
25
  function clearAllowedDirectories() {
26
- _cachedAllowedDirs = void 0;
26
+ cachedAllowedDirs = void 0;
27
27
  }
28
28
  /**
29
29
  * Get resolved allowed directories for safe deletion with lazy caching. These
30
30
  * directories are resolved once and cached for the process lifetime.
31
31
  */
32
32
  function getAllowedDirectories() {
33
- if (_cachedAllowedDirs === void 0) {
34
- const path = /* @__PURE__ */ require_node_path.getNodePath();
35
- _cachedAllowedDirs = [
33
+ if (cachedAllowedDirs === void 0) {
34
+ const path = require_node_path.getNodePath();
35
+ cachedAllowedDirs = [
36
36
  path.resolve(require_paths_socket.getOsTmpDir()),
37
37
  path.resolve(require_paths_socket.getSocketCacacheDir()),
38
38
  path.resolve(require_paths_socket.getSocketUserDir())
39
39
  ];
40
40
  }
41
- return _cachedAllowedDirs;
41
+ return cachedAllowedDirs;
42
42
  }
43
43
 
44
44
  //#endregion
package/dist/fs/access.js CHANGED
@@ -23,13 +23,12 @@ const require_smol_path = require('../smol/path.js');
23
23
  *
24
24
  * @returns True if the access check succeeds.
25
25
  */
26
- /*@__NO_SIDE_EFFECTS__*/
27
26
  function canAccess(path, mode) {
28
27
  /* c8 ignore start - native access arm only on socket-btm smol binaries; getSmolPath() is undefined on stock Node. */
29
- const smolAccess = (/* @__PURE__ */ require_smol_path.getSmolPath())?.access;
28
+ const smolAccess = require_smol_path.getSmolPath()?.access;
30
29
  if (smolAccess) return smolAccess(path, mode);
31
30
  /* c8 ignore stop */
32
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
31
+ const fs = require_node_fs.getNodeFs();
33
32
  try {
34
33
  fs.accessSync(path, mode);
35
34
  return true;
@@ -40,23 +39,20 @@ function canAccess(path, mode) {
40
39
  /**
41
40
  * Can the process execute `path`? (`X_OK`)
42
41
  */
43
- /*@__NO_SIDE_EFFECTS__*/
44
42
  function canExecute(path) {
45
- return /* @__PURE__ */ canAccess(path, (/* @__PURE__ */ require_node_fs.getNodeFs()).constants.X_OK);
43
+ return canAccess(path, require_node_fs.getNodeFs().constants.X_OK);
46
44
  }
47
45
  /**
48
46
  * Can the process read `path`? (`R_OK`)
49
47
  */
50
- /*@__NO_SIDE_EFFECTS__*/
51
48
  function canRead(path) {
52
- return /* @__PURE__ */ canAccess(path, (/* @__PURE__ */ require_node_fs.getNodeFs()).constants.R_OK);
49
+ return canAccess(path, require_node_fs.getNodeFs().constants.R_OK);
53
50
  }
54
51
  /**
55
52
  * Can the process write `path`? (`W_OK`)
56
53
  */
57
- /*@__NO_SIDE_EFFECTS__*/
58
54
  function canWrite(path) {
59
- return /* @__PURE__ */ canAccess(path, (/* @__PURE__ */ require_node_fs.getNodeFs()).constants.W_OK);
55
+ return canAccess(path, require_node_fs.getNodeFs().constants.W_OK);
60
56
  }
61
57
 
62
58
  //#endregion
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @file Cache-invalidation entry point for the allowed-directories list used by
3
+ * `safeDelete` / `safeDeleteSync`. Loading this module registers
4
+ * `invalidatePathCache` with `paths/rewire.ts` so test-time path overrides
5
+ * flush the cache; the registration is the module's only side effect, so
6
+ * callers that just need to flush the cache imperatively can call
7
+ * `invalidatePathCache()` directly without that side effect repeating. The
8
+ * registration is deferred to a microtask (`registerInvalidationCallback`)
9
+ * rather than run at top-level module load. This module sits in a require
10
+ * cycle (`allowed-dirs-cache → _internal → paths/socket → …`); in the bundled
11
+ * CJS the `registerCacheInvalidation` import binding from `paths/rewire` is
12
+ * not yet initialized when this module first evaluates, so a synchronous
13
+ * top-level call threw `registerCacheInvalidation is not defined` at require
14
+ * time. Deferring to a microtask runs the call after the module graph has
15
+ * settled, breaking the init-order hazard while keeping the load-time
16
+ * registration contract (the callback is in place before any test hook
17
+ * fires).
18
+ */
19
+ /**
20
+ * Invalidate the cached allowed directories. Called automatically by the
21
+ * paths/rewire module when paths are overridden in tests.
22
+ *
23
+ * @example
24
+ * ;```typescript
25
+ * invalidatePathCache()
26
+ * // Cached allowed directories are now cleared
27
+ * ```
28
+ *
29
+ * @internal Used for test rewiring
30
+ */
31
+ export declare function invalidatePathCache(): void;
32
+ /**
33
+ * Register `invalidatePathCache` with the rewire module after the current
34
+ * module-init turn, so the circular import is fully wired before the call.
35
+ * Guarded + self-rescheduling: in the require cycle (`allowed-dirs-cache →
36
+ * _internal → paths/socket → … → rewire`) the `registerCacheInvalidation` live
37
+ * binding can still be in its temporal dead zone when the first microtask fires
38
+ * under some import orders (vitest loads many modules concurrently), throwing
39
+ * `registerCacheInvalidation is not defined`. So check the binding is callable;
40
+ * if not, re-defer to the next microtask. The registration is a test-seam
41
+ * best-effort (it lets path-rewire flush this cache), so a bounded retry that
42
+ * lands on a later turn is correct — and a never-resolving binding (production,
43
+ * where rewire is unused) simply stops retrying without throwing.
44
+ *
45
+ * @internal
46
+ */
47
+ export declare function registerInvalidationCallback(attempt?: number): void;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_paths_rewire = require('../paths/rewire.js');
5
+ const require_fs__internal = require('./_internal.js');
6
+
7
+ //#region src/fs/allowed-dirs-cache.ts
8
+ /**
9
+ * @file Cache-invalidation entry point for the allowed-directories list used by
10
+ * `safeDelete` / `safeDeleteSync`. Loading this module registers
11
+ * `invalidatePathCache` with `paths/rewire.ts` so test-time path overrides
12
+ * flush the cache; the registration is the module's only side effect, so
13
+ * callers that just need to flush the cache imperatively can call
14
+ * `invalidatePathCache()` directly without that side effect repeating. The
15
+ * registration is deferred to a microtask (`registerInvalidationCallback`)
16
+ * rather than run at top-level module load. This module sits in a require
17
+ * cycle (`allowed-dirs-cache → _internal → paths/socket → …`); in the bundled
18
+ * CJS the `registerCacheInvalidation` import binding from `paths/rewire` is
19
+ * not yet initialized when this module first evaluates, so a synchronous
20
+ * top-level call threw `registerCacheInvalidation is not defined` at require
21
+ * time. Deferring to a microtask runs the call after the module graph has
22
+ * settled, breaking the init-order hazard while keeping the load-time
23
+ * registration contract (the callback is in place before any test hook
24
+ * fires).
25
+ */
26
+ /**
27
+ * Invalidate the cached allowed directories. Called automatically by the
28
+ * paths/rewire module when paths are overridden in tests.
29
+ *
30
+ * @example
31
+ * ;```typescript
32
+ * invalidatePathCache()
33
+ * // Cached allowed directories are now cleared
34
+ * ```
35
+ *
36
+ * @internal Used for test rewiring
37
+ */
38
+ function invalidatePathCache() {
39
+ require_fs__internal.clearAllowedDirectories();
40
+ }
41
+ /**
42
+ * Register `invalidatePathCache` with the rewire module after the current
43
+ * module-init turn, so the circular import is fully wired before the call.
44
+ * Guarded + self-rescheduling: in the require cycle (`allowed-dirs-cache →
45
+ * _internal → paths/socket → … → rewire`) the `registerCacheInvalidation` live
46
+ * binding can still be in its temporal dead zone when the first microtask fires
47
+ * under some import orders (vitest loads many modules concurrently), throwing
48
+ * `registerCacheInvalidation is not defined`. So check the binding is callable;
49
+ * if not, re-defer to the next microtask. The registration is a test-seam
50
+ * best-effort (it lets path-rewire flush this cache), so a bounded retry that
51
+ * lands on a later turn is correct — and a never-resolving binding (production,
52
+ * where rewire is unused) simply stops retrying without throwing.
53
+ *
54
+ * @internal
55
+ */
56
+ function registerInvalidationCallback(attempt = 0) {
57
+ try {
58
+ if (typeof require_paths_rewire.registerCacheInvalidation === "function") {
59
+ require_paths_rewire.registerCacheInvalidation(invalidatePathCache);
60
+ return;
61
+ }
62
+ } catch {}
63
+ if (attempt < 10) queueMicrotask(() => registerInvalidationCallback(attempt + 1));
64
+ }
65
+ queueMicrotask(() => registerInvalidationCallback());
66
+
67
+ //#endregion
68
+ exports.invalidatePathCache = invalidatePathCache;
69
+ exports.registerInvalidationCallback = registerInvalidationCallback;
@@ -23,9 +23,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
23
23
  *
24
24
  * @see https://github.com/nodejs/node/blob/ae62b36d442b7bf987e85ae6e0df0f02cc1bb17f/lib/internal/util.js#L247-L310
25
25
  */
26
- /*@__NO_SIDE_EFFECTS__*/
27
26
  function normalizeEncoding(enc) {
28
- return enc == null || enc === "utf8" || enc === "utf-8" ? "utf8" : /* @__PURE__ */ normalizeEncodingSlow(enc);
27
+ return enc == null || enc === "utf8" || enc === "utf-8" ? "utf8" : normalizeEncodingSlow(enc);
29
28
  }
30
29
  /**
31
30
  * Move the "slow cases" to a separate function to make sure this function gets
@@ -46,11 +45,10 @@ function normalizeEncoding(enc) {
46
45
  *
47
46
  * @see https://github.com/nodejs/node/blob/ae62b36d442b7bf987e85ae6e0df0f02cc1bb17f/lib/internal/util.js#L247-L310
48
47
  */
49
- /*@__NO_SIDE_EFFECTS__*/
50
48
  function normalizeEncodingSlow(enc) {
51
49
  const { length } = enc;
52
50
  if (length === 4) {
53
- if (enc === "ucs2" || enc === "UCS2") return "utf16le";
51
+ if (enc === "UCS2" || enc === "ucs2") return "utf16le";
54
52
  if (enc.toLowerCase() === "ucs2") return "utf16le";
55
53
  } else if (length === 3 && enc === "hex" || enc === "HEX" || enc.toLowerCase() === "hex") return "hex";
56
54
  else if (length === 5) {
@@ -63,12 +61,12 @@ function normalizeEncodingSlow(enc) {
63
61
  if (enc === "ucs-2") return "utf16le";
64
62
  } else if (length === 6) {
65
63
  if (enc === "base64") return "base64";
66
- if (enc === "latin1" || enc === "binary") return "latin1";
64
+ if (enc === "binary" || enc === "latin1") return "latin1";
67
65
  if (enc === "BASE64") return "base64";
68
- if (enc === "LATIN1" || enc === "BINARY") return "latin1";
66
+ if (enc === "BINARY" || enc === "LATIN1") return "latin1";
69
67
  enc = enc.toLowerCase();
70
68
  if (enc === "base64") return "base64";
71
- if (enc === "latin1" || enc === "binary") return "latin1";
69
+ if (enc === "binary" || enc === "latin1") return "latin1";
72
70
  } else if (length === 7) {
73
71
  if (enc === "utf16le" || enc === "UTF16LE" || enc.toLowerCase() === "utf16le") return "utf16le";
74
72
  } else if (length === 8) {
@@ -2,17 +2,17 @@
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_arrays_predicates = require('../arrays/predicates.js');
5
6
  const require_paths_normalize = require('../paths/normalize.js');
6
7
  const require_node_fs = require('../node/fs.js');
7
8
  const require_node_path = require('../node/path.js');
8
9
  const require_process_abort = require('../process/abort.js');
9
- const require_arrays_predicates = require('../arrays/predicates.js');
10
10
  const require_smol_path = require('../smol/path.js');
11
11
  const require_paths_walk = require('../paths/walk.js');
12
12
  let node_process = require("node:process");
13
13
  node_process = require_runtime.__toESM(node_process);
14
14
 
15
- //#region src/fs/find-up.ts
15
+ //#region src/fs/find.ts
16
16
  /**
17
17
  * @file Walk parent directories to locate a file or directory by name. The
18
18
  * traversal includes the filesystem root (or the caller-supplied `stopAt`
@@ -43,7 +43,6 @@ const abortSignal = require_process_abort.getAbortSignal();
43
43
  *
44
44
  * @returns Normalized absolute path if found, undefined otherwise
45
45
  */
46
- /*@__NO_SIDE_EFFECTS__*/
47
46
  async function findUp(name, options) {
48
47
  const { cwd = node_process.default.cwd(), signal = abortSignal } = {
49
48
  __proto__: null,
@@ -55,16 +54,16 @@ async function findUp(name, options) {
55
54
  };
56
55
  if (onlyDirectories) onlyFiles = false;
57
56
  if (onlyFiles) onlyDirectories = false;
58
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
59
- const path = /* @__PURE__ */ require_node_path.getNodePath();
57
+ const fs = require_node_fs.getNodeFs();
58
+ const path = require_node_path.getNodePath();
60
59
  const names = require_arrays_predicates.isArray(name) ? name : [name];
61
60
  for (const dir of require_paths_walk.walkUp(cwd)) for (const n of names) {
62
61
  if (signal?.aborted) return;
63
62
  const thePath = path.join(dir, n);
64
63
  try {
65
64
  const stats = await fs.promises.stat(thePath);
66
- if (!onlyDirectories && stats.isFile()) return /* @__PURE__ */ require_paths_normalize.normalizePath(thePath);
67
- if (!onlyFiles && stats.isDirectory()) return /* @__PURE__ */ require_paths_normalize.normalizePath(thePath);
65
+ if (!onlyDirectories && stats.isFile()) return require_paths_normalize.normalizePath(thePath);
66
+ if (!onlyFiles && stats.isDirectory()) return require_paths_normalize.normalizePath(thePath);
68
67
  } catch {}
69
68
  }
70
69
  }
@@ -94,7 +93,6 @@ async function findUp(name, options) {
94
93
  *
95
94
  * @returns Normalized absolute path if found, undefined otherwise
96
95
  */
97
- /*@__NO_SIDE_EFFECTS__*/
98
96
  function findUpSync(name, options) {
99
97
  const { cwd = node_process.default.cwd(), stopAt } = {
100
98
  __proto__: null,
@@ -106,22 +104,22 @@ function findUpSync(name, options) {
106
104
  };
107
105
  if (onlyDirectories) onlyFiles = false;
108
106
  if (onlyFiles) onlyDirectories = false;
109
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
110
- const path = /* @__PURE__ */ require_node_path.getNodePath();
107
+ const fs = require_node_fs.getNodeFs();
108
+ const path = require_node_path.getNodePath();
111
109
  const names = require_arrays_predicates.isArray(name) ? name : [name];
112
110
  /* c8 ignore start - native findUp arm only on socket-btm smol binaries; getSmolPath() is undefined on stock Node. */
113
- const smolFindUp = (/* @__PURE__ */ require_smol_path.getSmolPath())?.findUp;
111
+ const smolFindUp = require_smol_path.getSmolPath()?.findUp;
114
112
  if (smolFindUp && stopAt === void 0) {
115
113
  const found = smolFindUp(path.resolve(cwd), names, { onlyDirectories });
116
- return found === void 0 ? void 0 : /* @__PURE__ */ require_paths_normalize.normalizePath(found);
114
+ return found === void 0 ? void 0 : require_paths_normalize.normalizePath(found);
117
115
  }
118
116
  /* c8 ignore stop */
119
117
  for (const dir of require_paths_walk.walkUp(cwd, { stopAt })) for (const n of names) {
120
118
  const thePath = path.join(dir, n);
121
119
  try {
122
120
  const stats = fs.statSync(thePath);
123
- if (!onlyDirectories && stats.isFile()) return /* @__PURE__ */ require_paths_normalize.normalizePath(thePath);
124
- if (!onlyFiles && stats.isDirectory()) return /* @__PURE__ */ require_paths_normalize.normalizePath(thePath);
121
+ if (!onlyDirectories && stats.isFile()) return require_paths_normalize.normalizePath(thePath);
122
+ if (!onlyFiles && stats.isDirectory()) return require_paths_normalize.normalizePath(thePath);
125
123
  } catch {}
126
124
  }
127
125
  }
@@ -29,9 +29,8 @@ const require_globs_matcher = require('../globs/matcher.js');
29
29
  *
30
30
  * @returns `true` if path is a directory, `false` otherwise
31
31
  */
32
- /*@__NO_SIDE_EFFECTS__*/
33
32
  async function isDir(filepath) {
34
- return !!(await /* @__PURE__ */ safeStat(filepath))?.isDirectory();
33
+ return !!(await safeStat(filepath))?.isDirectory();
35
34
  }
36
35
  /**
37
36
  * Check if a directory is empty synchronously. A directory is considered empty
@@ -52,18 +51,17 @@ async function isDir(filepath) {
52
51
  *
53
52
  * @returns `true` if directory is empty (or doesn't exist), `false` otherwise
54
53
  */
55
- /*@__NO_SIDE_EFFECTS__*/
56
54
  function isDirEmptySync(dirname, options) {
57
55
  const { ignore = require_globs_defaults.defaultIgnore } = {
58
56
  __proto__: null,
59
57
  ...options
60
58
  };
61
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
59
+ const fs = require_node_fs.getNodeFs();
62
60
  try {
63
61
  const files = fs.readdirSync(dirname);
64
62
  const { length } = files;
65
63
  if (length === 0) return true;
66
- const matcher = /* @__PURE__ */ require_globs_matcher.getGlobMatcher(ignore, { cwd: /* @__PURE__ */ require_paths__internal.pathLikeToString(dirname) });
64
+ const matcher = require_globs_matcher.getGlobMatcher(ignore, { cwd: require_paths__internal.pathLikeToString(dirname) });
67
65
  let ignoredCount = 0;
68
66
  for (let i = 0; i < length; i += 1) {
69
67
  const file = files[i];
@@ -89,9 +87,8 @@ function isDirEmptySync(dirname, options) {
89
87
  *
90
88
  * @returns `true` if path is a directory, `false` otherwise
91
89
  */
92
- /*@__NO_SIDE_EFFECTS__*/
93
90
  function isDirSync(filepath) {
94
- return !!(/* @__PURE__ */ safeStatSync(filepath))?.isDirectory();
91
+ return !!safeStatSync(filepath)?.isDirectory();
95
92
  }
96
93
  /**
97
94
  * Check if a path is a symbolic link synchronously. Uses `lstat` to check the
@@ -108,9 +105,8 @@ function isDirSync(filepath) {
108
105
  *
109
106
  * @returns `true` if path is a symbolic link, `false` otherwise
110
107
  */
111
- /*@__NO_SIDE_EFFECTS__*/
112
108
  function isSymlinkSync(filepath) {
113
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
109
+ const fs = require_node_fs.getNodeFs();
114
110
  try {
115
111
  return fs.lstatSync(filepath).isSymbolicLink();
116
112
  } catch {}
@@ -135,9 +131,8 @@ function isSymlinkSync(filepath) {
135
131
  *
136
132
  * @returns Promise resolving to Stats object, or undefined on error
137
133
  */
138
- /*@__NO_SIDE_EFFECTS__*/
139
134
  async function safeStat(filepath) {
140
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
135
+ const fs = require_node_fs.getNodeFs();
141
136
  try {
142
137
  return await fs.promises.stat(filepath);
143
138
  } catch {}
@@ -161,9 +156,8 @@ async function safeStat(filepath) {
161
156
  *
162
157
  * @returns Stats object, or undefined on error
163
158
  */
164
- /*@__NO_SIDE_EFFECTS__*/
165
159
  function safeStatSync(filepath) {
166
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
160
+ const fs = require_node_fs.getNodeFs();
167
161
  try {
168
162
  return fs.statSync(filepath, {
169
163
  __proto__: null,
@@ -24,15 +24,14 @@ const require_fs_inspect = require('./inspect.js');
24
24
  *
25
25
  * @returns Array of directory names, optionally sorted
26
26
  */
27
- /*@__NO_SIDE_EFFECTS__*/
28
27
  function innerReadDirNames(dirents, dirname, options) {
29
28
  const { ignore, includeEmpty = true, sort = true } = {
30
29
  __proto__: null,
31
30
  ...options
32
31
  };
33
- const path = /* @__PURE__ */ require_node_path.getNodePath();
34
- const names = dirents.filter((d) => d.isDirectory() && (includeEmpty || !/* @__PURE__ */ require_fs_inspect.isDirEmptySync(path.join(dirname || d.parentPath, d.name), { ignore }))).map((d) => d.name);
35
- return sort ? names.sort(require_sorts_natural.naturalCompare) : names;
32
+ const path = require_node_path.getNodePath();
33
+ const names = dirents.filter((d) => d.isDirectory() && (includeEmpty || !require_fs_inspect.isDirEmptySync(path.join(dirname || d.parentPath, d.name), { ignore }))).map((d) => d.name);
34
+ return sort ? names.toSorted(require_sorts_natural.naturalCompare) : names;
36
35
  }
37
36
  /**
38
37
  * Read directory names asynchronously with filtering and sorting. Returns only
@@ -56,11 +55,10 @@ function innerReadDirNames(dirents, dirname, options) {
56
55
  *
57
56
  * @returns Array of directory names, empty array on error
58
57
  */
59
- /*@__NO_SIDE_EFFECTS__*/
60
58
  async function readDirNames(dirname, options) {
61
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
59
+ const fs = require_node_fs.getNodeFs();
62
60
  try {
63
- return /* @__PURE__ */ innerReadDirNames(await fs.promises.readdir(dirname, {
61
+ return innerReadDirNames(await fs.promises.readdir(dirname, {
64
62
  __proto__: null,
65
63
  encoding: "utf8",
66
64
  withFileTypes: true
@@ -90,11 +88,10 @@ async function readDirNames(dirname, options) {
90
88
  *
91
89
  * @returns Array of directory names, empty array on error
92
90
  */
93
- /*@__NO_SIDE_EFFECTS__*/
94
91
  function readDirNamesSync(dirname, options) {
95
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
92
+ const fs = require_node_fs.getNodeFs();
96
93
  try {
97
- return /* @__PURE__ */ innerReadDirNames(fs.readdirSync(dirname, {
94
+ return innerReadDirNames(fs.readdirSync(dirname, {
98
95
  __proto__: null,
99
96
  encoding: "utf8",
100
97
  withFileTypes: true
@@ -34,10 +34,9 @@ const abortSignal = require_process_abort.getAbortSignal();
34
34
  *
35
35
  * @returns Promise resolving to Buffer containing file contents
36
36
  */
37
- /*@__NO_SIDE_EFFECTS__*/
38
37
  async function readFileBinary(filepath, options) {
39
38
  const opts = typeof options === "string" ? { encoding: options } : options;
40
- return await (/* @__PURE__ */ require_node_fs.getNodeFs()).promises.readFile(filepath, {
39
+ return await require_node_fs.getNodeFs().promises.readFile(filepath, {
41
40
  signal: abortSignal,
42
41
  ...opts,
43
42
  encoding: void 0
@@ -61,10 +60,9 @@ async function readFileBinary(filepath, options) {
61
60
  *
62
61
  * @returns Buffer containing file contents
63
62
  */
64
- /*@__NO_SIDE_EFFECTS__*/
65
63
  function readFileBinarySync(filepath, options) {
66
64
  const opts = typeof options === "string" ? { encoding: options } : options;
67
- return (/* @__PURE__ */ require_node_fs.getNodeFs()).readFileSync(filepath, {
65
+ return require_node_fs.getNodeFs().readFileSync(filepath, {
68
66
  ...opts,
69
67
  encoding: void 0
70
68
  });
@@ -87,10 +85,9 @@ function readFileBinarySync(filepath, options) {
87
85
  *
88
86
  * @returns Promise resolving to string containing file contents
89
87
  */
90
- /*@__NO_SIDE_EFFECTS__*/
91
88
  async function readFileUtf8(filepath, options) {
92
89
  const opts = typeof options === "string" ? { encoding: options } : options;
93
- return await (/* @__PURE__ */ require_node_fs.getNodeFs()).promises.readFile(filepath, {
90
+ return await require_node_fs.getNodeFs().promises.readFile(filepath, {
94
91
  signal: abortSignal,
95
92
  ...opts,
96
93
  encoding: "utf8"
@@ -115,15 +112,13 @@ async function readFileUtf8(filepath, options) {
115
112
  *
116
113
  * @returns String containing file contents
117
114
  */
118
- /*@__NO_SIDE_EFFECTS__*/
119
115
  function readFileUtf8Sync(filepath, options) {
120
116
  const opts = typeof options === "string" ? { encoding: options } : options;
121
- return (/* @__PURE__ */ require_node_fs.getNodeFs()).readFileSync(filepath, {
117
+ return require_node_fs.getNodeFs().readFileSync(filepath, {
122
118
  ...opts,
123
119
  encoding: "utf8"
124
120
  });
125
121
  }
126
- /*@__NO_SIDE_EFFECTS__*/
127
122
  async function safeReadFile(filepath, options) {
128
123
  const { defaultValue, ...rawReadOpts } = typeof options === "string" ? {
129
124
  __proto__: null,
@@ -138,8 +133,8 @@ async function safeReadFile(filepath, options) {
138
133
  };
139
134
  const shouldReturnBuffer = readOpts.encoding === null;
140
135
  /* c8 ignore next 3 */
141
- const encoding = shouldReturnBuffer ? void 0 : /* @__PURE__ */ require_fs_encoding.normalizeEncoding(readOpts.encoding);
142
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
136
+ const encoding = shouldReturnBuffer ? void 0 : require_fs_encoding.normalizeEncoding(readOpts.encoding);
137
+ const fs = require_node_fs.getNodeFs();
143
138
  try {
144
139
  return await fs.promises.readFile(filepath, {
145
140
  __proto__: null,
@@ -152,7 +147,6 @@ async function safeReadFile(filepath, options) {
152
147
  if (shouldReturnBuffer) return require_primordials_buffer.BufferIsBuffer(defaultValue) ? defaultValue : void 0;
153
148
  return typeof defaultValue === "string" ? defaultValue : String(defaultValue);
154
149
  }
155
- /*@__NO_SIDE_EFFECTS__*/
156
150
  function safeReadFileSync(filepath, options) {
157
151
  const { defaultValue, ...rawReadOpts } = typeof options === "string" ? {
158
152
  __proto__: null,
@@ -167,8 +161,8 @@ function safeReadFileSync(filepath, options) {
167
161
  };
168
162
  const shouldReturnBuffer = readOpts.encoding === null;
169
163
  /* c8 ignore next 3 */
170
- const encoding = shouldReturnBuffer ? void 0 : /* @__PURE__ */ require_fs_encoding.normalizeEncoding(readOpts.encoding);
171
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
164
+ const encoding = shouldReturnBuffer ? void 0 : require_fs_encoding.normalizeEncoding(readOpts.encoding);
165
+ const fs = require_node_fs.getNodeFs();
172
166
  try {
173
167
  return fs.readFileSync(filepath, {
174
168
  __proto__: null,