@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
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
- const require_primordials_string = require('../primordials/string.js');
7
6
  const require_primordials_object = require('../primordials/object.js');
7
+ const require_primordials_string = require('../primordials/string.js');
8
8
  let node_path = require("node:path");
9
9
  node_path = require_runtime.__toESM(node_path);
10
10
 
@@ -17,23 +17,6 @@ node_path = require_runtime.__toESM(node_path);
17
17
  * no callers outside this directory.
18
18
  */
19
19
  /**
20
- * Strip the trailing extension from a filename when it matches one of `exts`.
21
- * Returns the input unchanged when the trailing extname isn't in the set.
22
- * Case-insensitive on the extension — preserves the rest of the path's casing.
23
- *
24
- * The `exts` set decides what counts. Pass `BROTLI_EXTS` / `GZIP_EXTS` for the
25
- * canonical compression sets, or your own set for custom classifiers.
26
- *
27
- * Generic — it does NOT know that `.tgz` is short for `.tar.gz`. Callers that
28
- * need that convention compose this with their own follow-up (see
29
- * `decompressGzipFile` for the canonical example).
30
- */
31
- function stripExt(filePath, exts) {
32
- const ext = node_path.default.extname(filePath);
33
- if (!exts.has(require_primordials_string.StringPrototypeToLowerCase(ext))) return filePath;
34
- return filePath.slice(0, -ext.length);
35
- }
36
- /**
37
20
  * Disambiguate the `(src, dest, options?)` and `(src, options)` call shapes.
38
21
  * Returns the resolved destPath, options, and inPlace flag. Validates that the
39
22
  * explicit destPath is not the same as srcPath, since same-path streams would
@@ -57,6 +40,23 @@ function resolveFileArgs(fnName, srcPath, destOrOptions, maybeOptions, computeIn
57
40
  });
58
41
  throw new require_primordials_error.ErrorCtor(`${fnName}: missing destPath; pass an explicit destination or { inPlace: true }`);
59
42
  }
43
+ /**
44
+ * Strip the trailing extension from a filename when it matches one of `exts`.
45
+ * Returns the input unchanged when the trailing extname isn't in the set.
46
+ * Case-insensitive on the extension — preserves the rest of the path's casing.
47
+ *
48
+ * The `exts` set decides what counts. Pass `BROTLI_EXTS` / `GZIP_EXTS` for the
49
+ * canonical compression sets, or your own set for custom classifiers.
50
+ *
51
+ * Generic — it does NOT know that `.tgz` is short for `.tar.gz`. Callers that
52
+ * need that convention compose this with their own follow-up (see
53
+ * `decompressGzipFile` for the canonical example).
54
+ */
55
+ function stripExt(filePath, exts) {
56
+ const ext = node_path.default.extname(filePath);
57
+ if (!exts.has(require_primordials_string.StringPrototypeToLowerCase(ext))) return filePath;
58
+ return filePath.slice(0, -ext.length);
59
+ }
60
60
 
61
61
  //#endregion
62
62
  exports.resolveFileArgs = resolveFileArgs;
@@ -6,28 +6,18 @@
6
6
  * compressBrotliFile('input.json', 'input.json.br')
7
7
  * readable.pipe(createBrotliCompressor()).pipe(writable)
8
8
  */
9
- import { Buffer } from 'node:buffer';
10
- import { type BrotliOptions } from 'node:zlib';
9
+ import type { Buffer } from 'node:buffer';
10
+ import type { BrotliOptions } from 'node:zlib';
11
11
  import type { CompressFileOptions, CompressOptions } from './types';
12
- interface ResolvedBrotliOptions extends BrotliOptions {
12
+ export declare const BROTLI_EXTS: ReadonlySet<string>;
13
+ export interface ResolvedBrotliOptions extends BrotliOptions {
13
14
  params: NonNullable<BrotliOptions['params']>;
14
15
  }
15
- /**
16
- * Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
17
- * `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
18
- * Exposed for callers building their own zlib pipelines and for unit-test
19
- * coverage.
20
- */
21
- export declare function resolveBrotliOptions(options: CompressOptions | undefined): ResolvedBrotliOptions;
22
16
  /**
23
17
  * Compress a string or Buffer with brotli. Strings are encoded as UTF-8 before
24
18
  * compression — pass an explicit Buffer if you have non-UTF-8 input.
25
19
  */
26
20
  export declare function compressBrotli(input: string | Buffer, options?: CompressOptions | undefined): Promise<Buffer>;
27
- /**
28
- * Decompress a brotli-compressed Buffer.
29
- */
30
- export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
31
21
  /**
32
22
  * Stream-compress a file with brotli. Two call shapes:
33
23
  *
@@ -42,6 +32,20 @@ export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
42
32
  */
43
33
  export declare function compressBrotliFile(srcPath: string, destPath: string, options?: CompressOptions | undefined): Promise<string>;
44
34
  export declare function compressBrotliFile(srcPath: string, options: CompressFileOptions): Promise<string>;
35
+ /**
36
+ * Create a brotli compress transform stream. Compose into your own pipeline.
37
+ * The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
38
+ * handles error propagation across all stages.
39
+ */
40
+ export declare function createBrotliCompressor(options?: CompressOptions | undefined): import("zlib").BrotliCompress;
41
+ /**
42
+ * Create a brotli decompress transform stream.
43
+ */
44
+ export declare function createBrotliDecompressor(): import("zlib").BrotliDecompress;
45
+ /**
46
+ * Decompress a brotli-compressed Buffer.
47
+ */
48
+ export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
45
49
  /**
46
50
  * Stream-decompress a brotli file. Two call shapes:
47
51
  *
@@ -57,15 +61,10 @@ export declare function compressBrotliFile(srcPath: string, options: CompressFil
57
61
  export declare function decompressBrotliFile(srcPath: string, destPath: string): Promise<string>;
58
62
  export declare function decompressBrotliFile(srcPath: string, options: CompressFileOptions): Promise<string>;
59
63
  /**
60
- * Create a brotli compress transform stream. Compose into your own pipeline.
61
- * The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
62
- * handles error propagation across all stages.
63
- */
64
- export declare function createBrotliCompressor(options?: CompressOptions | undefined): import("zlib").BrotliCompress;
65
- /**
66
- * Create a brotli decompress transform stream.
64
+ * Extension check for brotli paths matches `.br` / `.brotli`
65
+ * (case-insensitive). Naming follows node:path's `extname`.
67
66
  */
68
- export declare function createBrotliDecompressor(): import("zlib").BrotliDecompress;
67
+ export declare function hasBrotliExt(filePath: string): boolean;
69
68
  /**
70
69
  * Cheap pre-flight check: does the buffer look like it could be brotli? Returns
71
70
  * false for inputs too short to be valid. Brotli has no fixed magic bytes, so
@@ -73,10 +72,10 @@ export declare function createBrotliDecompressor(): import("zlib").BrotliDecompr
73
72
  * `decompressBrotli(buf)` succeeding. Use for UI hints, not correctness.
74
73
  */
75
74
  export declare function isBrotliCompressed(input: Buffer): boolean;
76
- export declare const BROTLI_EXTS: ReadonlySet<string>;
77
75
  /**
78
- * Extension check for brotli paths matches `.br` / `.brotli`
79
- * (case-insensitive). Naming follows node:path's `extname`.
76
+ * Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
77
+ * `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
78
+ * Exposed for callers building their own zlib pipelines and for unit-test
79
+ * coverage.
80
80
  */
81
- export declare function hasBrotliExt(filePath: string): boolean;
82
- export {};
81
+ export declare function resolveBrotliOptions(options: CompressOptions | undefined): ResolvedBrotliOptions;
@@ -4,32 +4,22 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_buffer = require('../primordials/buffer.js');
6
6
  const require_primordials_error = require('../primordials/error.js');
7
- const require_primordials_string = require('../primordials/string.js');
8
7
  const require_primordials_map_set = require('../primordials/map-set.js');
8
+ const require_primordials_string = require('../primordials/string.js');
9
9
  const require_fs_safe = require('../fs/safe.js');
10
10
  const require_compression__internal = require('./_internal.js');
11
11
  let node_fs = require("node:fs");
12
12
  let node_path = require("node:path");
13
13
  node_path = require_runtime.__toESM(node_path);
14
- let node_util = require("node:util");
15
14
  let node_stream_promises = require("node:stream/promises");
15
+ let node_util = require("node:util");
16
16
  let node_zlib = require("node:zlib");
17
17
 
18
18
  //#region src/compression/brotli.ts
19
19
  const brotliCompressAsync = (0, node_util.promisify)(node_zlib.brotliCompress);
20
20
  const brotliDecompressAsync = (0, node_util.promisify)(node_zlib.brotliDecompress);
21
- /**
22
- * Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
23
- * `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
24
- * Exposed for callers building their own zlib pipelines and for unit-test
25
- * coverage.
26
- */
27
- function resolveBrotliOptions(options) {
28
- const level = options?.level ?? 11;
29
- const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
30
- if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
31
- return { params };
32
- }
21
+ const BROTLI_MIN_LEN = 4;
22
+ const BROTLI_EXTS = new require_primordials_map_set.SetCtor([".br", ".brotli"]);
33
23
  /**
34
24
  * Compress a string or Buffer with brotli. Strings are encoded as UTF-8 before
35
25
  * compression — pass an explicit Buffer if you have non-UTF-8 input.
@@ -40,27 +30,12 @@ async function compressBrotli(input, options) {
40
30
  if (opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] === void 0) opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = buf.byteLength;
41
31
  return await brotliCompressAsync(buf, opts);
42
32
  }
43
- /**
44
- * Decompress a brotli-compressed Buffer.
45
- */
46
- async function decompressBrotli(input) {
47
- return await brotliDecompressAsync(input);
48
- }
49
33
  async function compressBrotliFile(srcPath, destOrOptions, maybeOptions) {
50
34
  const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressBrotliFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.br`);
51
35
  await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliCompress)(resolveBrotliOptions(options)), (0, node_fs.createWriteStream)(destPath));
52
36
  if (inPlace) await require_fs_safe.safeDelete(srcPath);
53
37
  return destPath;
54
38
  }
55
- async function decompressBrotliFile(srcPath, destOrOptions) {
56
- const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressBrotliFile", srcPath, destOrOptions, void 0, (p) => {
57
- if (!hasBrotliExt(p)) throw new require_primordials_error.ErrorCtor(`decompressBrotliFile: ${p} has no .br/.brotli extension; can't infer destination`);
58
- return require_compression__internal.stripExt(p, BROTLI_EXTS);
59
- });
60
- await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliDecompress)(), (0, node_fs.createWriteStream)(destPath));
61
- if (inPlace) await require_fs_safe.safeDelete(srcPath);
62
- return destPath;
63
- }
64
39
  /**
65
40
  * Create a brotli compress transform stream. Compose into your own pipeline.
66
41
  * The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
@@ -75,7 +50,28 @@ function createBrotliCompressor(options) {
75
50
  function createBrotliDecompressor() {
76
51
  return (0, node_zlib.createBrotliDecompress)();
77
52
  }
78
- const BROTLI_MIN_LEN = 4;
53
+ /**
54
+ * Decompress a brotli-compressed Buffer.
55
+ */
56
+ async function decompressBrotli(input) {
57
+ return await brotliDecompressAsync(input);
58
+ }
59
+ async function decompressBrotliFile(srcPath, destOrOptions) {
60
+ const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressBrotliFile", srcPath, destOrOptions, void 0, (p) => {
61
+ if (!hasBrotliExt(p)) throw new require_primordials_error.ErrorCtor(`decompressBrotliFile: ${p} has no .br/.brotli extension; can't infer destination`);
62
+ return require_compression__internal.stripExt(p, BROTLI_EXTS);
63
+ });
64
+ await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliDecompress)(), (0, node_fs.createWriteStream)(destPath));
65
+ if (inPlace) await require_fs_safe.safeDelete(srcPath);
66
+ return destPath;
67
+ }
68
+ /**
69
+ * Extension check for brotli paths — matches `.br` / `.brotli`
70
+ * (case-insensitive). Naming follows node:path's `extname`.
71
+ */
72
+ function hasBrotliExt(filePath) {
73
+ return BROTLI_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
74
+ }
79
75
  /**
80
76
  * Cheap pre-flight check: does the buffer look like it could be brotli? Returns
81
77
  * false for inputs too short to be valid. Brotli has no fixed magic bytes, so
@@ -85,13 +81,21 @@ const BROTLI_MIN_LEN = 4;
85
81
  function isBrotliCompressed(input) {
86
82
  return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= BROTLI_MIN_LEN;
87
83
  }
88
- const BROTLI_EXTS = new require_primordials_map_set.SetCtor([".br", ".brotli"]);
89
84
  /**
90
- * Extension check for brotli paths matches `.br` / `.brotli`
91
- * (case-insensitive). Naming follows node:path's `extname`.
85
+ * Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
86
+ * `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
87
+ * Exposed for callers building their own zlib pipelines and for unit-test
88
+ * coverage.
92
89
  */
93
- function hasBrotliExt(filePath) {
94
- return BROTLI_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
90
+ function resolveBrotliOptions(options) {
91
+ options = {
92
+ __proto__: null,
93
+ ...options
94
+ };
95
+ const level = options?.level ?? 11;
96
+ const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
97
+ if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
98
+ return { params };
95
99
  }
96
100
 
97
101
  //#endregion
@@ -7,25 +7,15 @@
7
7
  * await compressGzipFile('input.json', 'input.json.gz')
8
8
  * readable.pipe(createGzipCompressor()).pipe(writable)
9
9
  */
10
- import { Buffer } from 'node:buffer';
11
- import { type ZlibOptions } from 'node:zlib';
10
+ import type { Buffer } from 'node:buffer';
11
+ import type { ZlibOptions } from 'node:zlib';
12
12
  import type { CompressFileOptions, CompressOptions } from './types';
13
- /**
14
- * Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
15
- * empty options object when no `level` is given (zlib uses its default, level
16
- * 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
17
- * coverage.
18
- */
19
- export declare function resolveGzipOptions(options: CompressOptions | undefined): ZlibOptions;
13
+ export declare const GZIP_EXTS: ReadonlySet<string>;
20
14
  /**
21
15
  * Compress a string or Buffer with gzip. Strings are encoded as UTF-8 before
22
16
  * compression. Default level is 6 (zlib default).
23
17
  */
24
18
  export declare function compressGzip(input: string | Buffer, options?: CompressOptions | undefined): Promise<Buffer>;
25
- /**
26
- * Decompress a gzip-compressed Buffer.
27
- */
28
- export declare function decompressGzip(input: Buffer): Promise<Buffer>;
29
19
  /**
30
20
  * Stream-compress a file with gzip. Two call shapes:
31
21
  *
@@ -37,6 +27,18 @@ export declare function decompressGzip(input: Buffer): Promise<Buffer>;
37
27
  */
38
28
  export declare function compressGzipFile(srcPath: string, destPath: string, options?: CompressOptions | undefined): Promise<string>;
39
29
  export declare function compressGzipFile(srcPath: string, options: CompressFileOptions): Promise<string>;
30
+ /**
31
+ * Create a gzip compress transform stream.
32
+ */
33
+ export declare function createGzipCompressor(options?: CompressOptions | undefined): import("zlib").Gzip;
34
+ /**
35
+ * Create a gzip decompress transform stream.
36
+ */
37
+ export declare function createGzipDecompressor(): import("zlib").Gunzip;
38
+ /**
39
+ * Decompress a gzip-compressed Buffer.
40
+ */
41
+ export declare function decompressGzip(input: Buffer): Promise<Buffer>;
40
42
  /**
41
43
  * Stream-decompress a gzip file. Two call shapes:
42
44
  *
@@ -50,21 +52,19 @@ export declare function compressGzipFile(srcPath: string, options: CompressFileO
50
52
  export declare function decompressGzipFile(srcPath: string, destPath: string): Promise<string>;
51
53
  export declare function decompressGzipFile(srcPath: string, options: CompressFileOptions): Promise<string>;
52
54
  /**
53
- * Create a gzip compress transform stream.
54
- */
55
- export declare function createGzipCompressor(options?: CompressOptions | undefined): import("zlib").Gzip;
56
- /**
57
- * Create a gzip decompress transform stream.
55
+ * Extension check for gzip paths matches `.gz` / `.gzip` / `.tgz`
56
+ * (case-insensitive). Naming follows node:path's `extname`.
58
57
  */
59
- export declare function createGzipDecompressor(): import("zlib").Gunzip;
58
+ export declare function hasGzipExt(filePath: string): boolean;
60
59
  /**
61
60
  * Magic-byte check for gzip. Reads the first two bytes and matches the gzip
62
61
  * spec's 0x1f 0x8b signature. Authoritative.
63
62
  */
64
63
  export declare function isGzipCompressed(input: Buffer): boolean;
65
- export declare const GZIP_EXTS: ReadonlySet<string>;
66
64
  /**
67
- * Extension check for gzip paths — matches `.gz` / `.gzip` / `.tgz`
68
- * (case-insensitive). Naming follows node:path's `extname`.
65
+ * Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
66
+ * empty options object when no `level` is given (zlib uses its default, level
67
+ * 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
68
+ * coverage.
69
69
  */
70
- export declare function hasGzipExt(filePath: string): boolean;
70
+ export declare function resolveGzipOptions(options: CompressOptions | undefined): ZlibOptions;
@@ -4,34 +4,27 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_buffer = require('../primordials/buffer.js');
6
6
  const require_primordials_error = require('../primordials/error.js');
7
- const require_primordials_string = require('../primordials/string.js');
8
7
  const require_primordials_map_set = require('../primordials/map-set.js');
8
+ const require_primordials_string = require('../primordials/string.js');
9
9
  const require_fs_safe = require('../fs/safe.js');
10
10
  const require_compression__internal = require('./_internal.js');
11
11
  let node_fs = require("node:fs");
12
12
  let node_path = require("node:path");
13
13
  node_path = require_runtime.__toESM(node_path);
14
- let node_util = require("node:util");
15
14
  let node_stream_promises = require("node:stream/promises");
15
+ let node_util = require("node:util");
16
16
  let node_zlib = require("node:zlib");
17
17
 
18
18
  //#region src/compression/gzip.ts
19
19
  const gzipAsync = (0, node_util.promisify)(node_zlib.gzip);
20
20
  const gunzipAsync = (0, node_util.promisify)(node_zlib.gunzip);
21
- /**
22
- * Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
23
- * empty options object when no `level` is given (zlib uses its default, level
24
- * 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
25
- * coverage.
26
- */
27
- function resolveGzipOptions(options) {
28
- const level = options?.level;
29
- if (level === void 0) return { __proto__: null };
30
- return {
31
- __proto__: null,
32
- level
33
- };
34
- }
21
+ const GZIP_MAGIC_0 = 31;
22
+ const GZIP_MAGIC_1 = 139;
23
+ const GZIP_EXTS = new require_primordials_map_set.SetCtor([
24
+ ".gz",
25
+ ".gzip",
26
+ ".tgz"
27
+ ]);
35
28
  /**
36
29
  * Compress a string or Buffer with gzip. Strings are encoded as UTF-8 before
37
30
  * compression. Default level is 6 (zlib default).
@@ -39,18 +32,30 @@ function resolveGzipOptions(options) {
39
32
  async function compressGzip(input, options) {
40
33
  return await gzipAsync(typeof input === "string" ? require_primordials_buffer.BufferFrom(input, "utf8") : input, resolveGzipOptions(options));
41
34
  }
42
- /**
43
- * Decompress a gzip-compressed Buffer.
44
- */
45
- async function decompressGzip(input) {
46
- return await gunzipAsync(input);
47
- }
48
35
  async function compressGzipFile(srcPath, destOrOptions, maybeOptions) {
49
36
  const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressGzipFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.gz`);
50
37
  await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createGzip)(resolveGzipOptions(options)), (0, node_fs.createWriteStream)(destPath));
51
38
  if (inPlace) await require_fs_safe.safeDelete(srcPath);
52
39
  return destPath;
53
40
  }
41
+ /**
42
+ * Create a gzip compress transform stream.
43
+ */
44
+ function createGzipCompressor(options) {
45
+ return (0, node_zlib.createGzip)(resolveGzipOptions(options));
46
+ }
47
+ /**
48
+ * Create a gzip decompress transform stream.
49
+ */
50
+ function createGzipDecompressor() {
51
+ return (0, node_zlib.createGunzip)();
52
+ }
53
+ /**
54
+ * Decompress a gzip-compressed Buffer.
55
+ */
56
+ async function decompressGzip(input) {
57
+ return await gunzipAsync(input);
58
+ }
54
59
  async function decompressGzipFile(srcPath, destOrOptions) {
55
60
  const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressGzipFile", srcPath, destOrOptions, void 0, (p) => {
56
61
  if (!hasGzipExt(p)) throw new require_primordials_error.ErrorCtor(`decompressGzipFile: ${p} has no .gz/.gzip/.tgz extension; can't infer destination`);
@@ -62,19 +67,12 @@ async function decompressGzipFile(srcPath, destOrOptions) {
62
67
  return destPath;
63
68
  }
64
69
  /**
65
- * Create a gzip compress transform stream.
66
- */
67
- function createGzipCompressor(options) {
68
- return (0, node_zlib.createGzip)(resolveGzipOptions(options));
69
- }
70
- /**
71
- * Create a gzip decompress transform stream.
70
+ * Extension check for gzip paths matches `.gz` / `.gzip` / `.tgz`
71
+ * (case-insensitive). Naming follows node:path's `extname`.
72
72
  */
73
- function createGzipDecompressor() {
74
- return (0, node_zlib.createGunzip)();
73
+ function hasGzipExt(filePath) {
74
+ return GZIP_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
75
75
  }
76
- const GZIP_MAGIC_0 = 31;
77
- const GZIP_MAGIC_1 = 139;
78
76
  /**
79
77
  * Magic-byte check for gzip. Reads the first two bytes and matches the gzip
80
78
  * spec's 0x1f 0x8b signature. Authoritative.
@@ -82,17 +80,23 @@ const GZIP_MAGIC_1 = 139;
82
80
  function isGzipCompressed(input) {
83
81
  return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= 2 && input[0] === GZIP_MAGIC_0 && input[1] === GZIP_MAGIC_1;
84
82
  }
85
- const GZIP_EXTS = new require_primordials_map_set.SetCtor([
86
- ".gz",
87
- ".gzip",
88
- ".tgz"
89
- ]);
90
83
  /**
91
- * Extension check for gzip paths — matches `.gz` / `.gzip` / `.tgz`
92
- * (case-insensitive). Naming follows node:path's `extname`.
84
+ * Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
85
+ * empty options object when no `level` is given (zlib uses its default, level
86
+ * 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
87
+ * coverage.
93
88
  */
94
- function hasGzipExt(filePath) {
95
- return GZIP_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
89
+ function resolveGzipOptions(options) {
90
+ options = {
91
+ __proto__: null,
92
+ ...options
93
+ };
94
+ const level = options?.level;
95
+ if (level === void 0) return { __proto__: null };
96
+ return {
97
+ __proto__: null,
98
+ level
99
+ };
96
100
  }
97
101
 
98
102
  //#endregion
@@ -9,8 +9,10 @@ export declare const YARN = "yarn";
9
9
  export declare const BUN = "bun";
10
10
  export declare const VLT = "vlt";
11
11
  export declare const NPX = "npx";
12
+ export declare function resolveNpmBinPath(): string | undefined;
12
13
  export declare const NPM_BIN_PATH: string;
13
- export declare const NPM_REAL_EXEC_PATH: any;
14
+ export declare function resolveNpmRealExecPath(): string | undefined;
15
+ export declare const NPM_REAL_EXEC_PATH: string | undefined;
14
16
  export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org";
15
17
  export declare const YARN_BERRY = "yarn/berry";
16
18
  export declare const YARN_CLASSIC = "yarn/classic";
@@ -17,24 +17,25 @@ const YARN = "yarn";
17
17
  const BUN = "bun";
18
18
  const VLT = "vlt";
19
19
  const NPX = "npx";
20
- const _npmBinPath = /*@__PURE__*/ (() => {
20
+ function resolveNpmBinPath() {
21
21
  try {
22
22
  return src_external_which.default.sync("npm", { nothrow: true }) || void 0;
23
23
  } catch {
24
24
  return;
25
25
  }
26
26
  /* c8 ignore stop */
27
- })();
28
- const NPM_BIN_PATH = _npmBinPath || "npm";
29
- const NPM_REAL_EXEC_PATH = /*@__PURE__*/ (() => {
27
+ }
28
+ const npmBinPath = /*@__PURE__*/ resolveNpmBinPath();
29
+ const NPM_BIN_PATH = npmBinPath || "npm";
30
+ function resolveNpmRealExecPath() {
30
31
  try {
31
- /* c8 ignore start - Module-init IIFE; only reachable when
32
+ /* c8 ignore start - Module-init helper; only reachable when
32
33
  which.sync returns null at module load. */
33
- if (!_npmBinPath) return;
34
+ if (!npmBinPath) return;
34
35
  /* c8 ignore stop */
35
- const { existsSync } = /*@__PURE__*/ require("node:fs");
36
- const path = /*@__PURE__*/ require("node:path");
37
- const npmDir = path.dirname(_npmBinPath);
36
+ const { existsSync } = require("node:fs");
37
+ const path = require("node:path");
38
+ const npmDir = path.dirname(npmBinPath);
38
39
  const nodeModulesPath = path.join(npmDir, "..", "lib", "node_modules", "npm", "lib", "cli.js");
39
40
  if (existsSync(nodeModulesPath)) return nodeModulesPath;
40
41
  /* c8 ignore start - Module-init fallthroughs; reached only when cli.js
@@ -44,7 +45,8 @@ const NPM_REAL_EXEC_PATH = /*@__PURE__*/ (() => {
44
45
  return;
45
46
  }
46
47
  /* c8 ignore stop */
47
- })();
48
+ }
49
+ const NPM_REAL_EXEC_PATH = /*@__PURE__*/ resolveNpmRealExecPath();
48
50
  const NPM_REGISTRY_URL = "https://registry.npmjs.org";
49
51
  const YARN_BERRY = "yarn/berry";
50
52
  const YARN_CLASSIC = "yarn/classic";
@@ -86,4 +88,6 @@ exports.YARN = YARN;
86
88
  exports.YARN_BERRY = YARN_BERRY;
87
89
  exports.YARN_CLASSIC = YARN_CLASSIC;
88
90
  exports.YARN_LOCK = YARN_LOCK;
89
- exports.ZPM = ZPM;
91
+ exports.ZPM = ZPM;
92
+ exports.resolveNpmBinPath = resolveNpmBinPath;
93
+ exports.resolveNpmRealExecPath = resolveNpmRealExecPath;
@@ -12,7 +12,7 @@ const require_primordials_map_set = require('../primordials/map-set.js');
12
12
  const MIT = "MIT";
13
13
  const UNLICENCED = "UNLICENCED";
14
14
  const UNLICENSED = "UNLICENSED";
15
- let _copyLeftLicenses;
15
+ let copyLeftLicenses;
16
16
  /**
17
17
  * Get the set of SPDX identifiers considered copy-left (AGPL, GPL, EPL, EUPL,
18
18
  * CC-BY-SA variants). The set is lazily built and cached on first call.
@@ -20,7 +20,7 @@ let _copyLeftLicenses;
20
20
  * @returns A `Set` of SPDX license identifier strings.
21
21
  */
22
22
  function getCopyLeftLicenses() {
23
- if (_copyLeftLicenses === void 0) _copyLeftLicenses = new require_primordials_map_set.SetCtor([
23
+ if (copyLeftLicenses === void 0) copyLeftLicenses = new require_primordials_map_set.SetCtor([
24
24
  "AGPL-1.0",
25
25
  "AGPL-1.0-only",
26
26
  "AGPL-1.0-or-later",
@@ -45,7 +45,7 @@ function getCopyLeftLicenses() {
45
45
  "GPL-3.0-only",
46
46
  "GPL-3.0-or-later"
47
47
  ]);
48
- return _copyLeftLicenses;
48
+ return copyLeftLicenses;
49
49
  }
50
50
 
51
51
  //#endregion
@@ -129,6 +129,29 @@ export declare function supportsNodeRequireModule(): boolean;
129
129
  * `--run`.
130
130
  */
131
131
  export declare function supportsNodeRun(): boolean;
132
+ /**
133
+ * Check whether the current runtime can execute TypeScript source directly
134
+ * (`.ts` files via `node foo.ts`), with or without a flag. Type-stripping went
135
+ * stable in Node.js 22.6 (under `--strip-types`, also accepted as the
136
+ * deprecated alias `--experimental-strip-types`) and default-on in Node 24.
137
+ *
138
+ * Pair with {@link supportsNodeStripTypesDefault} to decide whether a flag needs
139
+ * to be passed.
140
+ *
141
+ * @returns `true` when the runtime can run TypeScript (Node 22.6+).
142
+ */
143
+ export declare function supportsNodeStripTypes(): boolean;
144
+ /**
145
+ * Check whether the current runtime strips TypeScript types **by default** (no
146
+ * flag needed). Became default-on in Node.js 24.
147
+ *
148
+ * Use case: deciding whether a wrapper script needs to pass `--strip-types`
149
+ * when invoking `node foo.ts`. On Node 24+ the flag is redundant; on 22.6 –
150
+ * 23.x it's required.
151
+ *
152
+ * @returns `true` when no `--strip-types` flag is needed (Node 24+).
153
+ */
154
+ export declare function supportsNodeStripTypesDefault(): boolean;
132
155
  /**
133
156
  * Check whether this process was spawned with an IPC channel. When `true`,
134
157
  * `process.send()` is callable to message the parent process.