@socketsecurity/lib 6.0.6 → 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 (499) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +3 -2
  4. package/dist/ai/spawn.js +2 -1
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +1 -1
  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 +3 -5
  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/exec.js +2 -3
  27. package/dist/bin/find.js +13 -13
  28. package/dist/bin/prim.cjs +22736 -22556
  29. package/dist/bin/resolve.js +12 -13
  30. package/dist/bin/which.js +8 -8
  31. package/dist/cache/ttl/store.js +5 -5
  32. package/dist/checks/primordials-defaults.d.ts +3 -3
  33. package/dist/checks/primordials-defaults.js +3 -3
  34. package/dist/checks/primordials.js +4 -3
  35. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  36. package/dist/{bin → cli}/check-primordials.js +55 -52
  37. package/dist/{bin → cli}/check.js +3 -3
  38. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  39. package/dist/{bin → cli}/socket-lib.js +4 -4
  40. package/dist/colors/socket-palette.js +7 -9
  41. package/dist/compression/_internal.d.ts +12 -12
  42. package/dist/compression/_internal.js +17 -17
  43. package/dist/compression/brotli.d.ts +25 -25
  44. package/dist/compression/brotli.js +33 -33
  45. package/dist/compression/gzip.d.ts +23 -23
  46. package/dist/compression/gzip.js +40 -40
  47. package/dist/constants/agents.d.ts +3 -1
  48. package/dist/constants/agents.js +15 -11
  49. package/dist/constants/licenses.js +3 -3
  50. package/dist/constants/node.d.ts +23 -0
  51. package/dist/constants/node.js +47 -15
  52. package/dist/constants/packages.js +22 -28
  53. package/dist/constants/platform.d.ts +30 -3
  54. package/dist/constants/platform.js +72 -12
  55. package/dist/constants/runtime.d.ts +22 -0
  56. package/dist/constants/runtime.js +32 -0
  57. package/dist/constants/socket.js +1 -1
  58. package/dist/cover/code.js +8 -8
  59. package/dist/cover/formatters.js +5 -5
  60. package/dist/crypto/hash.d.ts +26 -1
  61. package/dist/crypto/hash.js +43 -12
  62. package/dist/debug/_internal.js +4 -6
  63. package/dist/debug/caller-info.js +2 -3
  64. package/dist/debug/namespace.d.ts +7 -0
  65. package/dist/debug/namespace.js +21 -12
  66. package/dist/debug/output.js +21 -24
  67. package/dist/debug/types.d.ts +4 -4
  68. package/dist/dlx/arborist.js +6 -6
  69. package/dist/dlx/binary-cache.js +14 -14
  70. package/dist/dlx/binary-download.d.ts +1 -1
  71. package/dist/dlx/binary-download.js +11 -11
  72. package/dist/dlx/binary-resolution.js +16 -14
  73. package/dist/dlx/binary-types.d.ts +5 -5
  74. package/dist/dlx/binary.js +5 -5
  75. package/dist/dlx/cache.js +1 -1
  76. package/dist/dlx/detect.d.ts +34 -25
  77. package/dist/dlx/detect.js +86 -77
  78. package/dist/dlx/dir.js +2 -2
  79. package/dist/dlx/firewall.d.ts +1 -1
  80. package/dist/dlx/lockfile.d.ts +19 -18
  81. package/dist/dlx/lockfile.js +16 -16
  82. package/dist/dlx/manifest.d.ts +6 -6
  83. package/dist/dlx/manifest.js +5 -5
  84. package/dist/dlx/package.d.ts +10 -10
  85. package/dist/dlx/package.js +16 -16
  86. package/dist/dlx/packages.js +4 -4
  87. package/dist/dlx/paths.js +7 -7
  88. package/dist/dlx/spec.js +1 -1
  89. package/dist/dlx/types.d.ts +28 -27
  90. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  91. package/dist/eco/cargo/parse-lockfile.js +2 -2
  92. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  93. package/dist/eco/manifest/detect-format.js +4 -4
  94. package/dist/eco/manifest/find-packages.js +2 -2
  95. package/dist/eco/manifest/get-package-versions.js +2 -2
  96. package/dist/eco/manifest/get-package.js +2 -2
  97. package/dist/eco/manifest/parse-lockfile.js +2 -2
  98. package/dist/eco/manifest/parse-manifest.js +2 -2
  99. package/dist/eco/manifest/parse.js +2 -2
  100. package/dist/eco/npm/npm/exec.js +2 -2
  101. package/dist/eco/npm/npm/flags.js +7 -12
  102. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  103. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  104. package/dist/eco/npm/parse-package-json.js +3 -3
  105. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  106. package/dist/eco/npm/pnpm/exec.js +5 -5
  107. package/dist/eco/npm/pnpm/flags.js +0 -3
  108. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  109. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  110. package/dist/eco/npm/script.js +9 -6
  111. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  112. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  113. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  114. package/dist/effects/pulse-frames.d.ts +3 -1
  115. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  116. package/dist/effects/shimmer-terminal.d.ts +1 -1
  117. package/dist/env/boolean.js +0 -1
  118. package/dist/env/ci.js +0 -1
  119. package/dist/env/debug.js +0 -1
  120. package/dist/env/github-status.d.ts +51 -0
  121. package/dist/env/github-status.js +90 -0
  122. package/dist/env/github.js +0 -8
  123. package/dist/env/home.js +0 -1
  124. package/dist/env/locale.js +0 -3
  125. package/dist/env/node-auth-token.js +0 -1
  126. package/dist/env/node-env.js +0 -1
  127. package/dist/env/node-version-managers.d.ts +53 -0
  128. package/dist/env/node-version-managers.js +90 -0
  129. package/dist/env/npm.js +0 -5
  130. package/dist/env/number.js +0 -1
  131. package/dist/env/package-manager.js +3 -6
  132. package/dist/env/path.js +0 -1
  133. package/dist/env/pre-commit.js +1 -2
  134. package/dist/env/rewire.d.ts +7 -6
  135. package/dist/env/rewire.js +15 -16
  136. package/dist/env/shell.js +0 -1
  137. package/dist/env/socket-cli.js +5 -18
  138. package/dist/env/socket-mcp.d.ts +114 -0
  139. package/dist/env/socket-mcp.js +146 -0
  140. package/dist/env/socket.d.ts +1 -109
  141. package/dist/env/socket.js +12 -167
  142. package/dist/env/string.js +0 -1
  143. package/dist/env/temp-dir.js +0 -3
  144. package/dist/env/term.js +0 -1
  145. package/dist/env/test.js +3 -6
  146. package/dist/env/windows.js +0 -4
  147. package/dist/env/xdg.js +0 -3
  148. package/dist/events/exit/_internal.d.ts +11 -9
  149. package/dist/events/exit/_internal.js +31 -35
  150. package/dist/events/exit/handler.js +3 -4
  151. package/dist/events/exit/intercept.js +4 -6
  152. package/dist/events/exit/lifecycle.js +16 -18
  153. package/dist/events/exit/signals.js +1 -2
  154. package/dist/events/exit/types.d.ts +6 -5
  155. package/dist/external/@npmcli/package-json.js +2 -2
  156. package/dist/external/npm-pack.js +2 -2
  157. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  158. package/dist/external-tools/bazel/types.d.ts +1 -1
  159. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  160. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  161. package/dist/external-tools/from-download.d.ts +1 -1
  162. package/dist/external-tools/from-download.js +1 -1
  163. package/dist/external-tools/janus/from-vfs.js +1 -1
  164. package/dist/external-tools/janus/types.d.ts +1 -1
  165. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  166. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  167. package/dist/external-tools/jre/from-vfs.js +1 -1
  168. package/dist/external-tools/jre/types.d.ts +1 -1
  169. package/dist/external-tools/manifest.d.ts +7 -7
  170. package/dist/external-tools/manifest.js +12 -12
  171. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  172. package/dist/external-tools/opengrep/types.d.ts +1 -1
  173. package/dist/external-tools/python/asset-names.d.ts +76 -0
  174. package/dist/external-tools/python/asset-names.js +104 -0
  175. package/dist/external-tools/python/dlx.d.ts +80 -0
  176. package/dist/external-tools/python/dlx.js +87 -0
  177. package/dist/external-tools/python/from-download.d.ts +53 -0
  178. package/dist/external-tools/python/from-download.js +68 -0
  179. package/dist/external-tools/python/from-path.d.ts +7 -0
  180. package/dist/external-tools/python/from-path.js +23 -0
  181. package/dist/external-tools/python/pin.d.ts +121 -0
  182. package/dist/external-tools/python/pin.js +173 -0
  183. package/dist/external-tools/python/pip-install.d.ts +75 -0
  184. package/dist/external-tools/python/pip-install.js +139 -0
  185. package/dist/external-tools/python/resolve.d.ts +42 -0
  186. package/dist/external-tools/python/resolve.js +58 -0
  187. package/dist/external-tools/python/types.d.ts +49 -0
  188. package/dist/external-tools/sbt/from-vfs.js +1 -1
  189. package/dist/external-tools/sbt/types.d.ts +1 -1
  190. package/dist/external-tools/skillspector/from-path.js +3 -5
  191. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  192. package/dist/external-tools/synp/from-download.js +2 -2
  193. package/dist/external-tools/synp/from-vfs.js +1 -1
  194. package/dist/external-tools/trivy/from-vfs.js +1 -1
  195. package/dist/external-tools/trivy/types.d.ts +1 -1
  196. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  197. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  198. package/dist/fs/_internal.d.ts +1 -1
  199. package/dist/fs/_internal.js +7 -7
  200. package/dist/fs/access.js +5 -9
  201. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  202. package/dist/fs/encoding.js +5 -7
  203. package/dist/fs/{find-up.js → find.js} +11 -13
  204. package/dist/fs/inspect.js +7 -13
  205. package/dist/fs/read-dir.js +7 -10
  206. package/dist/fs/read-file.js +8 -14
  207. package/dist/fs/read-json-cache.d.ts +6 -4
  208. package/dist/fs/read-json-cache.js +9 -6
  209. package/dist/fs/read-json.js +4 -6
  210. package/dist/fs/resolve-module.js +1 -1
  211. package/dist/fs/safe.d.ts +1 -1
  212. package/dist/fs/safe.js +12 -13
  213. package/dist/fs/unique.js +4 -5
  214. package/dist/fs/validate.js +1 -2
  215. package/dist/fs/write-json.js +4 -5
  216. package/dist/git/_internal.js +10 -10
  217. package/dist/git/changed.js +4 -4
  218. package/dist/git/repo.js +3 -3
  219. package/dist/git/staged.js +4 -4
  220. package/dist/git/unstaged.js +4 -4
  221. package/dist/github/ghsa.js +2 -2
  222. package/dist/github/refs-cache.d.ts +1 -1
  223. package/dist/github/refs-cache.js +5 -5
  224. package/dist/github/refs-rest.js +5 -5
  225. package/dist/github/{fetch.js → request.js} +13 -2
  226. package/dist/github/token.js +1 -1
  227. package/dist/github/types.d.ts +1 -1
  228. package/dist/globs/_internal.js +7 -9
  229. package/dist/globs/match.js +4 -6
  230. package/dist/globs/matcher.d.ts +3 -3
  231. package/dist/globs/matcher.js +12 -14
  232. package/dist/globs/stream.js +1 -2
  233. package/dist/globs/types.d.ts +24 -24
  234. package/dist/http-request/_internal.d.ts +1 -1
  235. package/dist/http-request/browser.js +4 -2
  236. package/dist/http-request/checksum-file.d.ts +55 -0
  237. package/dist/http-request/checksum-file.js +95 -0
  238. package/dist/http-request/download-types.d.ts +15 -23
  239. package/dist/http-request/download.js +3 -3
  240. package/dist/http-request/headers.js +0 -1
  241. package/dist/http-request/request-attempt.js +37 -33
  242. package/dist/http-request/request-types.d.ts +2 -2
  243. package/dist/http-request/request.js +1 -1
  244. package/dist/http-request/user-agent.js +3 -4
  245. package/dist/integrity.d.ts +86 -18
  246. package/dist/integrity.js +119 -30
  247. package/dist/ipc/directory.js +2 -2
  248. package/dist/ipc/paths.js +1 -1
  249. package/dist/ipc/write.js +1 -1
  250. package/dist/ipc-cli/get.js +12 -12
  251. package/dist/json/edit.js +13 -14
  252. package/dist/json/format.js +2 -2
  253. package/dist/json/parse.d.ts +1 -1
  254. package/dist/json/parse.js +3 -7
  255. package/dist/logger/_internal.d.ts +4 -4
  256. package/dist/logger/_internal.js +3 -3
  257. package/dist/logger/colors.js +4 -3
  258. package/dist/logger/console-methods.d.ts +132 -0
  259. package/dist/logger/console-methods.js +169 -0
  260. package/dist/logger/console.d.ts +12 -0
  261. package/dist/logger/console.js +42 -11
  262. package/dist/logger/indentation-methods.d.ts +81 -0
  263. package/dist/logger/indentation-methods.js +121 -0
  264. package/dist/logger/node.d.ts +16 -338
  265. package/dist/logger/node.js +75 -608
  266. package/dist/logger/options.d.ts +39 -0
  267. package/dist/logger/options.js +47 -0
  268. package/dist/logger/semantic-methods.d.ts +63 -0
  269. package/dist/logger/semantic-methods.js +108 -0
  270. package/dist/logger/stream-methods.d.ts +63 -0
  271. package/dist/logger/stream-methods.js +101 -0
  272. package/dist/logger/stream.d.ts +37 -0
  273. package/dist/logger/stream.js +42 -0
  274. package/dist/logger/symbols-builder.js +9 -9
  275. package/dist/logger/symbols.d.ts +2 -25
  276. package/dist/logger/symbols.js +53 -74
  277. package/dist/logger/types.d.ts +1 -1
  278. package/dist/memo/types.d.ts +6 -6
  279. package/dist/native-messaging/host.d.ts +20 -0
  280. package/dist/native-messaging/host.js +120 -0
  281. package/dist/native-messaging/index.d.ts +5 -0
  282. package/dist/native-messaging/index.js +22 -0
  283. package/dist/native-messaging/install.d.ts +60 -0
  284. package/dist/native-messaging/install.js +141 -0
  285. package/dist/native-messaging/rate-limit.d.ts +62 -0
  286. package/dist/native-messaging/rate-limit.js +115 -0
  287. package/dist/native-messaging/run.d.ts +10 -0
  288. package/dist/native-messaging/run.js +17 -0
  289. package/dist/node/async-hooks.js +4 -3
  290. package/dist/node/child-process.js +4 -3
  291. package/dist/node/crypto.js +4 -3
  292. package/dist/node/events.js +4 -3
  293. package/dist/node/fs-promises.js +4 -3
  294. package/dist/node/fs.js +4 -3
  295. package/dist/node/http.js +4 -3
  296. package/dist/node/https.js +4 -3
  297. package/dist/node/module.js +10 -6
  298. package/dist/node/os.js +4 -3
  299. package/dist/node/path.js +4 -3
  300. package/dist/node/timers-promises.js +4 -3
  301. package/dist/node/url.js +4 -3
  302. package/dist/node/util.js +4 -3
  303. package/dist/objects/getters.js +5 -7
  304. package/dist/objects/inspect.js +1 -4
  305. package/dist/objects/mutate.js +2 -3
  306. package/dist/objects/predicates.js +0 -4
  307. package/dist/objects/sort.js +3 -7
  308. package/dist/packages/edit-class.js +15 -16
  309. package/dist/packages/edit.js +12 -14
  310. package/dist/packages/exports.js +11 -17
  311. package/dist/packages/fetch.d.ts +16 -0
  312. package/dist/packages/fetch.js +81 -0
  313. package/dist/packages/find.d.ts +55 -0
  314. package/dist/packages/find.js +65 -0
  315. package/dist/packages/isolation.js +14 -14
  316. package/dist/packages/licenses.js +16 -16
  317. package/dist/packages/manifest.js +12 -15
  318. package/dist/packages/metadata-extensions.d.ts +14 -0
  319. package/dist/packages/metadata-extensions.js +43 -0
  320. package/dist/packages/normalize.js +5 -9
  321. package/dist/packages/provenance.js +16 -18
  322. package/dist/packages/read.d.ts +29 -0
  323. package/dist/packages/read.js +66 -0
  324. package/dist/packages/specs.d.ts +48 -1
  325. package/dist/packages/specs.js +74 -11
  326. package/dist/packages/tarball.d.ts +24 -0
  327. package/dist/packages/tarball.js +79 -0
  328. package/dist/packages/types.d.ts +21 -20
  329. package/dist/packages/validation.js +0 -3
  330. package/dist/paths/_internal.d.ts +2 -1
  331. package/dist/paths/_internal.js +7 -19
  332. package/dist/paths/conversion.js +5 -9
  333. package/dist/paths/filenames.d.ts +0 -1
  334. package/dist/paths/filenames.js +0 -2
  335. package/dist/paths/normalize.js +4 -5
  336. package/dist/paths/packages.js +4 -7
  337. package/dist/paths/predicates.js +9 -16
  338. package/dist/paths/resolve.js +11 -14
  339. package/dist/paths/rewire.js +3 -3
  340. package/dist/paths/socket.js +16 -16
  341. package/dist/paths/walk.d.ts +1 -1
  342. package/dist/paths/walk.js +4 -4
  343. package/dist/perf/report.js +2 -2
  344. package/dist/perf/types.d.ts +1 -1
  345. package/dist/pkg-ext/data.js +1 -1
  346. package/dist/primordials/array.js +9 -9
  347. package/dist/primordials/date.js +2 -2
  348. package/dist/primordials/error.js +3 -3
  349. package/dist/primordials/headers.d.ts +10 -0
  350. package/dist/primordials/headers.js +23 -0
  351. package/dist/primordials/intl.d.ts +13 -0
  352. package/dist/primordials/intl.js +26 -0
  353. package/dist/primordials/math.js +33 -33
  354. package/dist/primordials/number.js +9 -9
  355. package/dist/primordials/object.js +5 -5
  356. package/dist/primordials/string.d.ts +2 -2
  357. package/dist/primordials/string.js +6 -6
  358. package/dist/primordials/symbol.js +3 -3
  359. package/dist/primordials/uncurry.js +9 -9
  360. package/dist/process/abort.js +3 -3
  361. package/dist/process/lock-manager.js +8 -8
  362. package/dist/process/spawn/_internal.js +6 -8
  363. package/dist/process/spawn/child.js +14 -14
  364. package/dist/process/spawn/errors.js +2 -4
  365. package/dist/process/spawn/kill-tree.d.ts +53 -0
  366. package/dist/process/spawn/kill-tree.js +85 -0
  367. package/dist/process/spawn/stdio.js +0 -1
  368. package/dist/process/spawn/types.d.ts +5 -5
  369. package/dist/process/transient.js +2 -2
  370. package/dist/promises/_internal.d.ts +2 -1
  371. package/dist/promises/_internal.js +2 -6
  372. package/dist/promises/iterate.js +11 -15
  373. package/dist/promises/options.js +3 -6
  374. package/dist/promises/retry.js +4 -5
  375. package/dist/promises/timers.d.ts +30 -0
  376. package/dist/promises/timers.js +48 -0
  377. package/dist/releases/github-archives.d.ts +6 -6
  378. package/dist/releases/github-archives.js +2 -2
  379. package/dist/releases/github-asset-url.d.ts +1 -1
  380. package/dist/releases/github-asset-url.js +5 -5
  381. package/dist/releases/github-downloads.d.ts +1 -1
  382. package/dist/releases/github-downloads.js +3 -3
  383. package/dist/releases/github-listing.d.ts +11 -2
  384. package/dist/releases/github-listing.js +20 -7
  385. package/dist/releases/github-retry-config.js +1 -1
  386. package/dist/releases/github-types.d.ts +6 -6
  387. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  388. package/dist/releases/socket-btm-binary-naming.js +155 -0
  389. package/dist/releases/socket-btm.d.ts +8 -115
  390. package/dist/releases/socket-btm.js +16 -159
  391. package/dist/schema/types.d.ts +1 -1
  392. package/dist/sea/detect.js +6 -6
  393. package/dist/secrets/_internal.d.ts +2 -2
  394. package/dist/secrets/_internal.js +2 -2
  395. package/dist/secrets/compare.d.ts +45 -0
  396. package/dist/secrets/compare.js +61 -0
  397. package/dist/secrets/keychain.js +6 -4
  398. package/dist/secrets/linux.js +19 -19
  399. package/dist/secrets/macos.d.ts +1 -1
  400. package/dist/secrets/macos.js +13 -13
  401. package/dist/secrets/rc.d.ts +2 -2
  402. package/dist/secrets/rc.js +6 -4
  403. package/dist/secrets/socket-api-token.d.ts +4 -4
  404. package/dist/secrets/socket-api-token.js +18 -9
  405. package/dist/secrets/windows.js +14 -13
  406. package/dist/shadow/skip.js +2 -2
  407. package/dist/smol/detect.js +9 -10
  408. package/dist/smol/http.js +6 -7
  409. package/dist/smol/https.js +6 -7
  410. package/dist/smol/manifest.d.ts +1 -1
  411. package/dist/smol/manifest.js +6 -7
  412. package/dist/smol/path.d.ts +1 -1
  413. package/dist/smol/path.js +7 -8
  414. package/dist/smol/primordial.d.ts +4 -0
  415. package/dist/smol/primordial.js +6 -7
  416. package/dist/smol/purl.d.ts +1 -1
  417. package/dist/smol/purl.js +7 -8
  418. package/dist/smol/versions.js +6 -7
  419. package/dist/smol/vfs.js +6 -7
  420. package/dist/sorts/_internal.js +6 -8
  421. package/dist/sorts/natural.js +10 -12
  422. package/dist/sorts/semver.js +1 -2
  423. package/dist/sorts/strings.js +0 -1
  424. package/dist/sorts/types.d.ts +1 -1
  425. package/dist/spinner/create-spinner-class.d.ts +38 -0
  426. package/dist/spinner/create-spinner-class.js +302 -0
  427. package/dist/spinner/default.js +8 -9
  428. package/dist/spinner/spinner-internals.d.ts +36 -0
  429. package/dist/spinner/spinner-internals.js +101 -0
  430. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  431. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  432. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  433. package/dist/spinner/spinner-status-methods.js +133 -0
  434. package/dist/spinner/spinner.d.ts +4 -5
  435. package/dist/spinner/spinner.js +18 -705
  436. package/dist/spinner/types.d.ts +3 -1
  437. package/dist/spinner/with.d.ts +10 -0
  438. package/dist/spinner/with.js +16 -2
  439. package/dist/stdio/divider.js +1 -1
  440. package/dist/stdio/footer.js +3 -3
  441. package/dist/stdio/header.js +4 -4
  442. package/dist/stdio/progress.js +5 -5
  443. package/dist/stdio/prompts.d.ts +5 -3
  444. package/dist/stdio/prompts.js +6 -7
  445. package/dist/stdio/stdout.js +3 -3
  446. package/dist/streams/parallel.js +3 -5
  447. package/dist/streams/transform.js +2 -3
  448. package/dist/strings/format.js +2 -6
  449. package/dist/strings/predicates.js +0 -2
  450. package/dist/strings/search.js +1 -2
  451. package/dist/strings/transform.js +0 -3
  452. package/dist/strings/width.js +9 -10
  453. package/dist/tables/bordered.js +4 -3
  454. package/dist/tables/padding.js +1 -1
  455. package/dist/tables/simple.js +8 -5
  456. package/dist/temporal/instant.js +1 -1
  457. package/dist/temporal/slots.js +6 -6
  458. package/dist/temporal/system.js +9 -9
  459. package/dist/themes/context.d.ts +3 -2
  460. package/dist/themes/context.js +4 -5
  461. package/dist/themes/themes.js +15 -15
  462. package/dist/themes/types.d.ts +3 -3
  463. package/dist/url/parse.js +0 -2
  464. package/dist/url/predicates.js +1 -2
  465. package/dist/url/search-params.js +3 -9
  466. package/dist/url/types.d.ts +5 -5
  467. package/dist/versions/_internal.js +3 -3
  468. package/dist/words/article.js +0 -1
  469. package/dist/words/capitalize.js +0 -1
  470. package/dist/words/pluralize.js +15 -5
  471. package/package.json +247 -106
  472. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  473. package/dist/external-tools/uv/asset-names.js +0 -70
  474. package/dist/external-tools/uv/from-download.d.ts +0 -17
  475. package/dist/external-tools/uv/from-download.js +0 -47
  476. package/dist/external-tools/uv/from-path.d.ts +0 -5
  477. package/dist/external-tools/uv/from-path.js +0 -22
  478. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  479. package/dist/external-tools/uv/from-vfs.js +0 -26
  480. package/dist/external-tools/uv/resolve.d.ts +0 -25
  481. package/dist/external-tools/uv/resolve.js +0 -53
  482. package/dist/external-tools/uv/types.d.ts +0 -24
  483. package/dist/http-request/checksums.d.ts +0 -69
  484. package/dist/http-request/checksums.js +0 -108
  485. package/dist/http-request/http-request.d.ts +0 -12
  486. package/dist/http-request/http-request.js +0 -11
  487. package/dist/packages/operations.d.ts +0 -113
  488. package/dist/packages/operations.js +0 -304
  489. package/dist/ssri/convert.d.ts +0 -48
  490. package/dist/ssri/convert.js +0 -69
  491. package/dist/ssri/parse.d.ts +0 -27
  492. package/dist/ssri/parse.js +0 -41
  493. package/dist/ssri/validate.d.ts +0 -41
  494. package/dist/ssri/validate.js +0 -56
  495. /package/dist/{bin → cli}/check.d.ts +0 -0
  496. /package/dist/external-tools/{uv → python}/types.js +0 -0
  497. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  498. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  499. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -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
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_paths_rewire = require('../paths/rewire.js');
5
5
  const require_fs__internal = require('./_internal.js');
6
6
 
7
- //#region src/fs/path-cache.ts
7
+ //#region src/fs/allowed-dirs-cache.ts
8
8
  /**
9
9
  * @file Cache-invalidation entry point for the allowed-directories list used by
10
10
  * `safeDelete` / `safeDeleteSync`. Loading this module registers
@@ -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) {
@@ -12,7 +12,7 @@ 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,
@@ -5,10 +5,12 @@
5
5
  *
6
6
  * - Stat-validated keys: a `stat()` call before serving a cache hit ensures the
7
7
  * file hasn't changed (mtime + size mismatch ⇒ cache miss, re-read).
8
- * - Defensive clone on hit: every hit returns `structuredClone(parsed)` so
9
- * callers can mutate the returned object without poisoning the cache for
10
- * the next reader. The clone cost is far less than re-read + re-parse for
11
- * anything bigger than a trivial JSON document.
8
+ * - Defensive clone on hit: every hit returns a JSON round-trip clone
9
+ * (`JSON.parse(JSON.stringify(parsed))`) so callers can mutate the returned
10
+ * object without poisoning the cache for the next reader. The clone cost is
11
+ * far less than re-read + re-parse for anything bigger than a trivial JSON
12
+ * document, and the round-trip is faster than `structuredClone` over the
13
+ * JSON subset these values always belong to.
12
14
  * - Reviver opt-out: when the caller passes a `reviver` function, we skip the
13
15
  * cache. Function identity isn't safely hashable across boundaries, and the
14
16
  * reviver can produce a different shape from the same bytes.
@@ -6,6 +6,7 @@ const require_primordials_error = require('../primordials/error.js');
6
6
  const require_primordials_number = require('../primordials/number.js');
7
7
  const require_primordials_map_set = require('../primordials/map-set.js');
8
8
  const require_primordials_date = require('../primordials/date.js');
9
+ const require_primordials_json = require('../primordials/json.js');
9
10
  let node_process = require("node:process");
10
11
  node_process = require_runtime.__toESM(node_process);
11
12
 
@@ -17,10 +18,12 @@ node_process = require_runtime.__toESM(node_process);
17
18
  *
18
19
  * - Stat-validated keys: a `stat()` call before serving a cache hit ensures the
19
20
  * file hasn't changed (mtime + size mismatch ⇒ cache miss, re-read).
20
- * - Defensive clone on hit: every hit returns `structuredClone(parsed)` so
21
- * callers can mutate the returned object without poisoning the cache for
22
- * the next reader. The clone cost is far less than re-read + re-parse for
23
- * anything bigger than a trivial JSON document.
21
+ * - Defensive clone on hit: every hit returns a JSON round-trip clone
22
+ * (`JSON.parse(JSON.stringify(parsed))`) so callers can mutate the returned
23
+ * object without poisoning the cache for the next reader. The clone cost is
24
+ * far less than re-read + re-parse for anything bigger than a trivial JSON
25
+ * document, and the round-trip is faster than `structuredClone` over the
26
+ * JSON subset these values always belong to.
24
27
  * - Reviver opt-out: when the caller passes a `reviver` function, we skip the
25
28
  * cache. Function identity isn't safely hashable across boundaries, and the
26
29
  * reviver can produce a different shape from the same bytes.
@@ -85,7 +88,7 @@ function getCachedJson(key, ino, size, mtimeMs) {
85
88
  return;
86
89
  }
87
90
  hits += 1;
88
- return structuredClone(entry.parsed);
91
+ return require_primordials_json.JSONParse(require_primordials_json.JSONStringify(entry.parsed));
89
92
  }
90
93
  /**
91
94
  * Snapshot diagnostics. Useful for tests and for tooling that wants to log
@@ -131,7 +134,7 @@ function setCachedJson(key, ino, size, mtimeMs, parsed) {
131
134
  ino,
132
135
  size,
133
136
  mtimeMs,
134
- parsed: structuredClone(parsed),
137
+ parsed: require_primordials_json.JSONParse(require_primordials_json.JSONStringify(parsed)),
135
138
  insertedAt: require_primordials_date.DateNow()
136
139
  });
137
140
  }
@@ -49,7 +49,6 @@ const require_json_parse = require('../json/parse.js');
49
49
  * @returns Promise resolving to parsed JSON value, or undefined if throws is
50
50
  * false and an error occurs.
51
51
  */
52
- /*@__NO_SIDE_EFFECTS__*/
53
52
  async function readJson(filepath, options) {
54
53
  const { cache, reviver, throws, ...fsOptions } = {
55
54
  __proto__: null,
@@ -57,7 +56,7 @@ async function readJson(filepath, options) {
57
56
  };
58
57
  const shouldThrow = throws === void 0 || !!throws;
59
58
  const cacheEnabled = cache !== false && reviver === void 0;
60
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
59
+ const fs = require_node_fs.getNodeFs();
61
60
  const pathStr = String(filepath);
62
61
  if (cacheEnabled) try {
63
62
  const stat = await fs.promises.stat(filepath);
@@ -82,7 +81,7 @@ async function readJson(filepath, options) {
82
81
  }
83
82
  return;
84
83
  }
85
- const parsed = /* @__PURE__ */ require_json_parse.parseJson(content, {
84
+ const parsed = require_json_parse.parseJson(content, {
86
85
  filepath: pathStr,
87
86
  reviver,
88
87
  throws: shouldThrow
@@ -123,7 +122,6 @@ async function readJson(filepath, options) {
123
122
  * @returns Parsed JSON value, or undefined if throws is false and an error
124
123
  * occurs.
125
124
  */
126
- /*@__NO_SIDE_EFFECTS__*/
127
125
  function readJsonSync(filepath, options) {
128
126
  const { cache, reviver, throws, ...fsOptions } = {
129
127
  __proto__: null,
@@ -131,7 +129,7 @@ function readJsonSync(filepath, options) {
131
129
  };
132
130
  const shouldThrow = throws === void 0 || !!throws;
133
131
  const cacheEnabled = cache !== false && reviver === void 0;
134
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
132
+ const fs = require_node_fs.getNodeFs();
135
133
  const pathStr = String(filepath);
136
134
  if (cacheEnabled) try {
137
135
  const stat = fs.statSync(filepath);
@@ -156,7 +154,7 @@ function readJsonSync(filepath, options) {
156
154
  }
157
155
  return;
158
156
  }
159
- const parsed = /* @__PURE__ */ require_json_parse.parseJson(content, {
157
+ const parsed = require_json_parse.parseJson(content, {
160
158
  filepath: pathStr,
161
159
  reviver,
162
160
  throws: shouldThrow
@@ -22,7 +22,7 @@ function requireResolveFrom(fromDir, specifier, options) {
22
22
  __proto__: null,
23
23
  ...options
24
24
  };
25
- const path = /* @__PURE__ */ require_node_path.getNodePath();
25
+ const path = require_node_path.getNodePath();
26
26
  const anchor = path.join(path.resolve(fromDir), "noop.js");
27
27
  try {
28
28
  return (0, node_module.createRequire)(anchor).resolve(specifier);
package/dist/fs/safe.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * true`. The mkdir helpers default to `recursive: true` and swallow `EEXIST`
6
6
  * so concurrent callers don't race-condition each other.
7
7
  */
8
- import './path-cache';
8
+ import './allowed-dirs-cache';
9
9
  import type { MakeDirectoryOptions, PathLike } from 'node:fs';
10
10
  import type { deleteAsync as deleteAsyncType, deleteSync as deleteSyncType } from '../external/del';
11
11
  import type { RemoveOptions } from './types';
package/dist/fs/safe.js CHANGED
@@ -28,11 +28,10 @@ const defaultRemoveOptions = require_objects_mutate.objectFreeze({
28
28
  recursive: true,
29
29
  retryDelay: 200
30
30
  });
31
- let _del;
32
- /*@__NO_SIDE_EFFECTS__*/
31
+ let delModule;
33
32
  function getDel() {
34
- if (_del === void 0) _del = /*@__PURE__*/ require("../external/del");
35
- return _del;
33
+ if (delModule === void 0) delModule = /*@__PURE__*/ require("../external/del");
34
+ return delModule;
36
35
  }
37
36
  /**
38
37
  * Safely delete a file or directory asynchronously with built-in protections.
@@ -75,11 +74,11 @@ async function safeDelete(filepath, options) {
75
74
  __proto__: null,
76
75
  ...options
77
76
  };
78
- const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
77
+ const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [require_paths__internal.pathLikeToString(filepath)];
79
78
  /* c8 ignore start */
80
79
  let shouldForce = opts.force !== false;
81
80
  if (!shouldForce && patterns.length > 0) {
82
- const path = /* @__PURE__ */ require_node_path.getNodePath();
81
+ const path = require_node_path.getNodePath();
83
82
  const allowedDirs = require_fs__internal.getAllowedDirectories();
84
83
  if (patterns.every((pattern) => {
85
84
  const resolvedPath = path.resolve(pattern);
@@ -95,8 +94,8 @@ async function safeDelete(filepath, options) {
95
94
  const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
96
95
  const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
97
96
  /* c8 ignore start - External del call */
98
- const del = /* @__PURE__ */ getDel();
99
- await /* @__PURE__ */ require_promises_retry.pRetry(async () => {
97
+ const del = getDel();
98
+ await require_promises_retry.pRetry(async () => {
100
99
  await del.deleteAsync(patterns, {
101
100
  dryRun: false,
102
101
  force: shouldForce,
@@ -151,11 +150,11 @@ function safeDeleteSync(filepath, options) {
151
150
  __proto__: null,
152
151
  ...options
153
152
  };
154
- const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
153
+ const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [require_paths__internal.pathLikeToString(filepath)];
155
154
  /* c8 ignore start */
156
155
  let shouldForce = opts.force !== false;
157
156
  if (!shouldForce && patterns.length > 0) {
158
- const path = /* @__PURE__ */ require_node_path.getNodePath();
157
+ const path = require_node_path.getNodePath();
159
158
  const allowedDirs = require_fs__internal.getAllowedDirectories();
160
159
  if (patterns.every((pattern) => {
161
160
  const resolvedPath = path.resolve(pattern);
@@ -171,7 +170,7 @@ function safeDeleteSync(filepath, options) {
171
170
  const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
172
171
  const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
173
172
  /* c8 ignore start - External del call */
174
- const del = /* @__PURE__ */ getDel();
173
+ const del = getDel();
175
174
  let lastError;
176
175
  let delay = retryDelay;
177
176
  for (let attempt = 0; attempt <= maxRetries; attempt++) try {
@@ -225,7 +224,7 @@ function safeDeleteSync(filepath, options) {
225
224
  * @returns Promise that resolves when directory is created or already exists
226
225
  */
227
226
  async function safeMkdir(path, options) {
228
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
227
+ const fs = require_node_fs.getNodeFs();
229
228
  const opts = {
230
229
  __proto__: null,
231
230
  recursive: true,
@@ -269,7 +268,7 @@ async function safeMkdir(path, options) {
269
268
  * settings.
270
269
  */
271
270
  function safeMkdirSync(path, options) {
272
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
271
+ const fs = require_node_fs.getNodeFs();
273
272
  const opts = {
274
273
  __proto__: null,
275
274
  recursive: true,
package/dist/fs/unique.js CHANGED
@@ -33,12 +33,11 @@ const require_node_path = require('../node/path.js');
33
33
  * @returns Normalized unique filepath (original if it doesn't exist, or with
34
34
  * number suffix)
35
35
  */
36
- /*@__NO_SIDE_EFFECTS__*/
37
36
  function uniqueSync(filepath) {
38
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
39
- const path = /* @__PURE__ */ require_node_path.getNodePath();
37
+ const fs = require_node_fs.getNodeFs();
38
+ const path = require_node_path.getNodePath();
40
39
  const filepathStr = String(filepath);
41
- if (!fs.existsSync(filepathStr)) return /* @__PURE__ */ require_paths_normalize.normalizePath(filepathStr);
40
+ if (!fs.existsSync(filepathStr)) return require_paths_normalize.normalizePath(filepathStr);
42
41
  const dirname = path.dirname(filepathStr);
43
42
  const ext = path.extname(filepathStr);
44
43
  const basename = path.basename(filepathStr, ext);
@@ -48,7 +47,7 @@ function uniqueSync(filepath) {
48
47
  uniquePath = path.join(dirname, `${basename}-${counter}${ext}`);
49
48
  counter++;
50
49
  } while (fs.existsSync(uniquePath));
51
- return /* @__PURE__ */ require_paths_normalize.normalizePath(uniquePath);
50
+ return require_paths_normalize.normalizePath(uniquePath);
52
51
  }
53
52
 
54
53
  //#endregion