@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,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.
@@ -28,6 +30,13 @@
28
30
  * CWDs would get separate cache entries — correct but pessimistic.
29
31
  */
30
32
  import type { JsonValue } from '../json/types';
33
+ export interface CacheEntry {
34
+ ino: number;
35
+ size: number;
36
+ mtimeMs: number;
37
+ parsed: JsonValue;
38
+ insertedAt: number;
39
+ }
31
40
  /**
32
41
  * Drop all cached entries. Tests call this between cases that depend on a fresh
33
42
  * read; long-running daemons can call it on file-watcher invalidation events
@@ -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
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_node_path = require('../node/path.js');
6
- let node_module = require("node:module");
7
6
  let node_process = require("node:process");
8
7
  node_process = require_runtime.__toESM(node_process);
8
+ let node_module = require("node:module");
9
9
 
10
10
  //#region src/fs/resolve-module.ts
11
11
  /**
@@ -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);
@@ -32,7 +32,11 @@ function requireResolveFrom(fromDir, specifier, options) {
32
32
  }
33
33
  }
34
34
  function requireResolveFromCwd(specifier, options) {
35
- return options && options.nothrow ? requireResolveFrom(node_process.default.cwd(), specifier, { nothrow: true }) : requireResolveFrom(node_process.default.cwd(), specifier);
35
+ options = {
36
+ __proto__: null,
37
+ ...options
38
+ };
39
+ return options?.nothrow ? requireResolveFrom(node_process.default.cwd(), specifier, { nothrow: true }) : requireResolveFrom(node_process.default.cwd(), specifier);
36
40
  }
37
41
 
38
42
  //#endregion
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
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_arrays_predicates = require('../arrays/predicates.js');
4
5
  const require_primordials_string = require('../primordials/string.js');
5
6
  const require_paths__internal = require('../paths/_internal.js');
6
7
  const require_primordials_array = require('../primordials/array.js');
@@ -8,7 +9,6 @@ const require_node_fs = require('../node/fs.js');
8
9
  const require_node_path = require('../node/path.js');
9
10
  const require_errors_predicates = require('../errors/predicates.js');
10
11
  const require_primordials_globals = require('../primordials/globals.js');
11
- const require_arrays_predicates = require('../arrays/predicates.js');
12
12
  const require_objects_mutate = require('../objects/mutate.js');
13
13
  const require_promises_retry = require('../promises/retry.js');
14
14
  const require_fs__internal = require('./_internal.js');
@@ -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
@@ -42,11 +42,10 @@ const require_fs_access = require('./access.js');
42
42
  *
43
43
  * @returns Object with `validPaths` (readable) and `invalidPaths` (unreadable)
44
44
  */
45
- /*@__NO_SIDE_EFFECTS__*/
46
45
  function validateFiles(filepaths) {
47
46
  const validPaths = [];
48
47
  const invalidPaths = [];
49
- for (const filepath of filepaths) if (/* @__PURE__ */ require_fs_access.canRead(filepath)) validPaths.push(filepath);
48
+ for (const filepath of filepaths) if (require_fs_access.canRead(filepath)) validPaths.push(filepath);
50
49
  else invalidPaths.push(filepath);
51
50
  return {
52
51
  __proto__: null,
@@ -26,7 +26,6 @@ const NEWLINE_REGEX = /\n/g;
26
26
  *
27
27
  * @returns Formatted JSON string
28
28
  */
29
- /*@__NO_SIDE_EFFECTS__*/
30
29
  function stringify(json, EOL, finalEOL, replacer, spaces = 2) {
31
30
  const EOF = finalEOL ? EOL : "";
32
31
  return `${require_primordials_string.StringPrototypeReplace(require_primordials_json.JSONStringify(json, replacer, spaces), NEWLINE_REGEX, EOL)}${EOF}`;
@@ -65,8 +64,8 @@ async function writeJson(filepath, jsonContent, options) {
65
64
  __proto__: null,
66
65
  ...typeof options === "string" ? { encoding: options } : options
67
66
  };
68
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
69
- const jsonString = /* @__PURE__ */ stringify(jsonContent, EOL || "\n", finalEOL !== void 0 ? finalEOL : true, replacer, spaces);
67
+ const fs = require_node_fs.getNodeFs();
68
+ const jsonString = stringify(jsonContent, EOL || "\n", finalEOL !== void 0 ? finalEOL : true, replacer, spaces);
70
69
  await fs.promises.writeFile(filepath, jsonString, {
71
70
  encoding: "utf8",
72
71
  ...fsOptions,
@@ -102,8 +101,8 @@ function writeJsonSync(filepath, jsonContent, options) {
102
101
  __proto__: null,
103
102
  ...typeof options === "string" ? { encoding: options } : options
104
103
  };
105
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
106
- const jsonString = /* @__PURE__ */ stringify(jsonContent, EOL || "\n", finalEOL !== void 0 ? finalEOL : true, replacer, spaces);
104
+ const fs = require_node_fs.getNodeFs();
105
+ const jsonString = stringify(jsonContent, EOL || "\n", finalEOL !== void 0 ? finalEOL : true, replacer, spaces);
107
106
  fs.writeFileSync(filepath, jsonString, {
108
107
  encoding: "utf8",
109
108
  ...fsOptions,
@@ -2,13 +2,13 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_buffer = require('../primordials/buffer.js');
5
+ const require_primordials_object = require('../primordials/object.js');
6
+ const require_primordials_map_set = require('../primordials/map-set.js');
5
7
  const require_primordials_string = require('../primordials/string.js');
6
8
  const require_paths_normalize = require('../paths/normalize.js');
7
9
  const require_primordials_array = require('../primordials/array.js');
8
- const require_primordials_map_set = require('../primordials/map-set.js');
9
10
  const require_node_path = require('../node/path.js');
10
11
  const require_primordials_date = require('../primordials/date.js');
11
- const require_primordials_object = require('../primordials/object.js');
12
12
  const require_primordials_json = require('../primordials/json.js');
13
13
  const require_bin_which = require('../bin/which.js');
14
14
  const require_ansi_strip = require('../ansi/strip.js');
@@ -27,7 +27,7 @@ const require_git_repo = require('./repo.js');
27
27
  const gitDiffCache = new require_primordials_map_set.MapCtor();
28
28
  const GIT_CACHE_MAX_SIZE = 100;
29
29
  const GIT_CACHE_TTL_MS = 2e3;
30
- let _gitPath;
30
+ let cachedGitPath;
31
31
  function getCachedGitDiff(key) {
32
32
  const entry = gitDiffCache.get(key);
33
33
  if (!entry) return;
@@ -96,12 +96,12 @@ function getGitDiffSpawnArgs(cwd) {
96
96
  */
97
97
  function getGitPath() {
98
98
  /* c8 ignore start */
99
- if (_gitPath === void 0) {
99
+ if (cachedGitPath === void 0) {
100
100
  const resolved = require_bin_which.whichSync("git", { nothrow: true });
101
- _gitPath = typeof resolved === "string" ? resolved : "git";
101
+ cachedGitPath = typeof resolved === "string" ? resolved : "git";
102
102
  }
103
103
  /* c8 ignore stop */
104
- return _gitPath;
104
+ return cachedGitPath;
105
105
  }
106
106
  /**
107
107
  * Execute git diff command asynchronously and parse results.
@@ -211,17 +211,17 @@ function parseGitDiffStdout(stdout, options, spawnCwd) {
211
211
  __proto__: null,
212
212
  ...options
213
213
  };
214
- const path = /* @__PURE__ */ require_node_path.getNodePath();
214
+ const path = require_node_path.getNodePath();
215
215
  const cwd = cwdOption === defaultRoot ? defaultRoot : require_git_repo.getCachedRealpath(cwdOption);
216
216
  const rootPath = defaultRoot;
217
- let rawFiles = stdout ? (/* @__PURE__ */ require_ansi_strip.stripAnsi(stdout)).split(/\r?\n/).map((line) => line.trimEnd()).filter((line) => line) : [];
217
+ let rawFiles = stdout ? require_ansi_strip.stripAnsi(stdout).split(/\r?\n/).map((line) => line.trimEnd()).filter((line) => line) : [];
218
218
  if (porcelain) rawFiles = rawFiles.map((line) => {
219
219
  /* c8 ignore next */
220
220
  return line.length > 3 ? require_primordials_string.StringPrototypeSubstring(line, 3) : line;
221
221
  });
222
- const files = absolute ? rawFiles.map((relPath) => /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(rootPath, relPath))) : rawFiles.map((relPath) => /* @__PURE__ */ require_paths_normalize.normalizePath(relPath));
222
+ const files = absolute ? rawFiles.map((relPath) => require_paths_normalize.normalizePath(path.join(rootPath, relPath))) : rawFiles.map((relPath) => require_paths_normalize.normalizePath(relPath));
223
223
  if (cwd === rootPath) return files;
224
- const matcher = /* @__PURE__ */ require_globs_matcher.getGlobMatcher([`${/* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(rootPath, cwd))}/**`], {
224
+ const matcher = require_globs_matcher.getGlobMatcher([`${require_paths_normalize.normalizePath(path.relative(rootPath, cwd))}/**`], {
225
225
  ...matcherOptions,
226
226
  absolute,
227
227
  cwd: rootPath
@@ -251,7 +251,7 @@ function stableKey(value) {
251
251
  return require_primordials_json.JSONStringify(value, (_key, val) => {
252
252
  if (val && typeof val === "object" && !require_primordials_array.ArrayIsArray(val)) {
253
253
  const sorted = {};
254
- for (const k of require_primordials_object.ObjectKeys(val).sort()) sorted[k] = val[k];
254
+ for (const k of require_primordials_object.ObjectKeys(val).toSorted()) sorted[k] = val[k];
255
255
  return sorted;
256
256
  }
257
257
  return val;
@@ -136,11 +136,11 @@ async function isChanged(pathname, options) {
136
136
  ...options,
137
137
  absolute: false
138
138
  });
139
- const path = /* @__PURE__ */ require_node_path.getNodePath();
139
+ const path = require_node_path.getNodePath();
140
140
  const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
141
141
  /* c8 ignore start */
142
142
  const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
143
- return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
143
+ return require_primordials_array.ArrayPrototypeIncludes(files, require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
144
144
  }
145
145
  /**
146
146
  * Check if a file or directory has any git changes.
@@ -182,12 +182,12 @@ function isChangedSync(pathname, options) {
182
182
  ...options,
183
183
  absolute: false
184
184
  });
185
- const path = /* @__PURE__ */ require_node_path.getNodePath();
185
+ const path = require_node_path.getNodePath();
186
186
  try {
187
187
  const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
188
188
  /* c8 ignore start */
189
189
  const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
190
- return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
190
+ return require_primordials_array.ArrayPrototypeIncludes(files, require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
191
191
  } catch {
192
192
  return false;
193
193
  }
package/dist/git/repo.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
4
  const require_primordials_map_set = require('../primordials/map-set.js');
6
5
  const require_node_fs = require('../node/fs.js');
7
6
  const require_node_path = require('../node/path.js');
8
- let node_process = require("node:process");
9
- node_process = require_runtime.__toESM(node_process);
7
+ const require_primordials_process = require('../primordials/process.js');
10
8
 
11
9
  //#region src/git/repo.ts
12
10
  /**
@@ -41,8 +39,8 @@ const gitRootCache = new require_primordials_map_set.MapCtor();
41
39
  * @returns Git repository root path, or `startPath` if not found.
42
40
  */
43
41
  function findGitRoot(startPath) {
44
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
45
- const path = /* @__PURE__ */ require_node_path.getNodePath();
42
+ const fs = require_node_fs.getNodeFs();
43
+ const path = require_node_path.getNodePath();
46
44
  /* c8 ignore start */
47
45
  const cached = gitRootCache.get(startPath);
48
46
  if (cached) {
@@ -75,7 +73,7 @@ function findGitRoot(startPath) {
75
73
  * realpath resolution is restricted.
76
74
  */
77
75
  function getCachedRealpath(pathname) {
78
- const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
76
+ const fs = require_node_fs.getNodeFs();
79
77
  const cached = realpathCache.get(pathname);
80
78
  /* c8 ignore start */
81
79
  if (cached) {
@@ -112,7 +110,7 @@ function getCachedRealpath(pathname) {
112
110
  * @returns The resolved real path of `process.cwd()`.
113
111
  */
114
112
  function getCwd() {
115
- return getCachedRealpath(node_process.default.cwd());
113
+ return getCachedRealpath(require_primordials_process.processCwd());
116
114
  }
117
115
 
118
116
  //#endregion
@@ -44,6 +44,10 @@ const require_git__internal = require('./_internal.js');
44
44
  * @returns Promise resolving to array of staged file paths.
45
45
  */
46
46
  async function getStagedFiles(options) {
47
+ options = {
48
+ __proto__: null,
49
+ ...options
50
+ };
47
51
  const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).staged;
48
52
  return await require_git__internal.innerDiff(args, options);
49
53
  }
@@ -79,6 +83,10 @@ async function getStagedFiles(options) {
79
83
  * @returns Array of staged file paths.
80
84
  */
81
85
  function getStagedFilesSync(options) {
86
+ options = {
87
+ __proto__: null,
88
+ ...options
89
+ };
82
90
  const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).staged;
83
91
  return require_git__internal.innerDiffSync(args, options);
84
92
  }
@@ -121,11 +129,11 @@ async function isStaged(pathname, options) {
121
129
  ...options,
122
130
  absolute: false
123
131
  });
124
- const path = /* @__PURE__ */ require_node_path.getNodePath();
132
+ const path = require_node_path.getNodePath();
125
133
  const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
126
134
  /* c8 ignore start */
127
135
  const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
128
- return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
136
+ return require_primordials_array.ArrayPrototypeIncludes(files, require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
129
137
  }
130
138
  /**
131
139
  * Check if a file or directory is staged for commit.
@@ -167,11 +175,11 @@ function isStagedSync(pathname, options) {
167
175
  ...options,
168
176
  absolute: false
169
177
  });
170
- const path = /* @__PURE__ */ require_node_path.getNodePath();
178
+ const path = require_node_path.getNodePath();
171
179
  const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
172
180
  /* c8 ignore start */
173
181
  const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
174
- return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
182
+ return require_primordials_array.ArrayPrototypeIncludes(files, require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
175
183
  }
176
184
 
177
185
  //#endregion
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @file Tracked-status + submodule-membership probes for a working-tree path.
3
+ * `isTracked` answers "does git track this exact path?"; `getSubmodulePaths`
4
+ * lists the repo's submodule mount points; `isInSubmodule` answers "does this
5
+ * path live inside one?"; `isUntrackedNonSubmodulePath` composes them into
6
+ * the safe-to-touch condition for cleanup tooling — never delete a tracked
7
+ * file or reach into a submodule's own tree (which would dirty it).
8
+ */
9
+ /**
10
+ * The repo's submodule mount points as normalized, repo-root-relative paths
11
+ * (e.g. `vendor/acorn`). Reads `git config` on `.gitmodules`, so it lists
12
+ * declared submodules whether or not they are initialized — the case a
13
+ * stderr-message check on `git ls-files` misses.
14
+ *
15
+ * @example
16
+ * ;```typescript
17
+ * await getSubmodulePaths()
18
+ * // => ['packages/acorn/upstream/acorn', 'vendor/mbedtls']
19
+ * ```
20
+ */
21
+ export declare function getSubmodulePaths(options?: GitPathOptions | undefined): Promise<string[]>;
22
+ /**
23
+ * Whether `targetPath` lives inside one of the repo's submodules. Resolves the
24
+ * submodule list itself; for a batch sweep prefer `getSubmodulePaths` once plus
25
+ * `pathIsUnderSubmodule` per path.
26
+ *
27
+ * @example
28
+ * ;```typescript
29
+ * await isInSubmodule('vendor/mbedtls/x.py') // => true
30
+ * await isInSubmodule('src/index.ts') // => false
31
+ * ```
32
+ */
33
+ export declare function isInSubmodule(targetPath: string, options?: GitPathOptions | undefined): Promise<boolean>;
34
+ export interface GitPathOptions {
35
+ /**
36
+ * The git working-tree directory the path is resolved against.
37
+ *
38
+ * @default process.cwd()
39
+ */
40
+ cwd?: string | undefined;
41
+ }
42
+ /**
43
+ * Whether git tracks `targetPath` exactly. Uses `git ls-files --error-unmatch`,
44
+ * which exits non-zero for an untracked path. A path inside a submodule, or one
45
+ * git does not know, returns `false`.
46
+ *
47
+ * @example
48
+ * ;```typescript
49
+ * await isTracked('src/index.ts') // => true
50
+ * await isTracked('.DS_Store') // => false
51
+ * ```
52
+ */
53
+ export declare function isTracked(targetPath: string, options?: GitPathOptions | undefined): Promise<boolean>;
54
+ /**
55
+ * Whether `targetPath` is git does NOT track AND does not live inside a
56
+ * submodule — the safe-to-touch condition for cleanup tooling. A tracked path
57
+ * is a deliberate file; a submodule-internal path belongs to that submodule's
58
+ * own git (touching it would dirty the submodule). Composes `isTracked` +
59
+ * `getSubmodulePaths`/`pathIsUnderSubmodule`. Fails closed — any check error
60
+ * resolves to `false`.
61
+ *
62
+ * For a batch sweep, call `getSubmodulePaths` once and compose `isTracked` +
63
+ * `pathIsUnderSubmodule` per path to avoid re-reading `.gitmodules` each time.
64
+ *
65
+ * @example
66
+ * ;```typescript
67
+ * await isUntrackedNonSubmodulePath('.DS_Store') // => true
68
+ * await isUntrackedNonSubmodulePath('src/index.ts') // => false (tracked)
69
+ * await isUntrackedNonSubmodulePath('vendor/sub/x.pyc') // => false (submodule)
70
+ * ```
71
+ */
72
+ export declare function isUntrackedNonSubmodulePath(targetPath: string, options?: GitPathOptions | undefined): Promise<boolean>;
73
+ /**
74
+ * Whether `relativePath` (repo-root-relative) lies at or under any of
75
+ * `submodulePaths`. Pure — pass the result of `getSubmodulePaths` so the git
76
+ * read happens once for a whole sweep.
77
+ *
78
+ * @example
79
+ * ;```typescript
80
+ * pathIsUnderSubmodule('vendor/mbedtls/scripts/__pycache__', ['vendor/mbedtls'])
81
+ * // => true
82
+ * ```
83
+ */
84
+ export declare function pathIsUnderSubmodule(relativePath: string, submodulePaths: string[]): boolean;