@socketsecurity/lib 6.0.5 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +6 -4
  4. package/dist/ai/spawn.js +10 -6
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +12 -7
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +4 -6
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/acorn-bindgen.cjs +769 -0
  27. package/dist/bin/acorn.wasm +0 -0
  28. package/dist/bin/exec.js +2 -3
  29. package/dist/bin/find.js +13 -13
  30. package/dist/bin/prim.cjs +39244 -0
  31. package/dist/bin/resolve.js +12 -13
  32. package/dist/bin/which.js +8 -8
  33. package/dist/cache/ttl/store.js +5 -5
  34. package/dist/checks/primordials-defaults.d.ts +3 -3
  35. package/dist/checks/primordials-defaults.js +3 -3
  36. package/dist/checks/primordials.js +4 -3
  37. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  38. package/dist/{bin → cli}/check-primordials.js +56 -52
  39. package/dist/{bin → cli}/check.js +6 -5
  40. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  41. package/dist/{bin → cli}/socket-lib.js +4 -4
  42. package/dist/colors/socket-palette.js +7 -9
  43. package/dist/compression/_internal.d.ts +12 -12
  44. package/dist/compression/_internal.js +20 -19
  45. package/dist/compression/brotli.d.ts +25 -25
  46. package/dist/compression/brotli.js +37 -44
  47. package/dist/compression/gzip.d.ts +23 -23
  48. package/dist/compression/gzip.js +44 -52
  49. package/dist/constants/agents.d.ts +3 -1
  50. package/dist/constants/agents.js +15 -11
  51. package/dist/constants/licenses.js +3 -3
  52. package/dist/constants/node.d.ts +23 -0
  53. package/dist/constants/node.js +47 -15
  54. package/dist/constants/packages.js +22 -28
  55. package/dist/constants/platform.d.ts +30 -3
  56. package/dist/constants/platform.js +72 -12
  57. package/dist/constants/runtime.d.ts +22 -0
  58. package/dist/constants/runtime.js +32 -0
  59. package/dist/constants/socket.js +1 -1
  60. package/dist/cover/code.js +8 -8
  61. package/dist/cover/formatters.js +5 -5
  62. package/dist/crypto/hash.d.ts +26 -1
  63. package/dist/crypto/hash.js +43 -12
  64. package/dist/debug/_internal.js +4 -6
  65. package/dist/debug/caller-info.js +2 -3
  66. package/dist/debug/namespace.d.ts +7 -0
  67. package/dist/debug/namespace.js +21 -12
  68. package/dist/debug/output.js +21 -24
  69. package/dist/debug/types.d.ts +4 -4
  70. package/dist/dlx/arborist.js +6 -6
  71. package/dist/dlx/binary-cache.js +14 -14
  72. package/dist/dlx/binary-download.d.ts +1 -1
  73. package/dist/dlx/binary-download.js +14 -13
  74. package/dist/dlx/binary-resolution.js +16 -14
  75. package/dist/dlx/binary-types.d.ts +5 -5
  76. package/dist/dlx/binary.js +5 -5
  77. package/dist/dlx/cache.js +1 -1
  78. package/dist/dlx/detect.d.ts +34 -25
  79. package/dist/dlx/detect.js +86 -77
  80. package/dist/dlx/dir.js +2 -2
  81. package/dist/dlx/firewall.d.ts +1 -1
  82. package/dist/dlx/lockfile.d.ts +19 -18
  83. package/dist/dlx/lockfile.js +16 -16
  84. package/dist/dlx/manifest.d.ts +6 -6
  85. package/dist/dlx/manifest.js +5 -5
  86. package/dist/dlx/package.d.ts +10 -10
  87. package/dist/dlx/package.js +16 -16
  88. package/dist/dlx/packages.js +4 -4
  89. package/dist/dlx/paths.js +7 -7
  90. package/dist/dlx/spec.js +1 -1
  91. package/dist/dlx/types.d.ts +28 -27
  92. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  93. package/dist/eco/cargo/parse-lockfile.js +2 -2
  94. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  95. package/dist/eco/manifest/detect-format.js +4 -4
  96. package/dist/eco/manifest/find-packages.js +2 -2
  97. package/dist/eco/manifest/get-package-versions.js +2 -2
  98. package/dist/eco/manifest/get-package.js +2 -2
  99. package/dist/eco/manifest/parse-lockfile.js +2 -2
  100. package/dist/eco/manifest/parse-manifest.js +2 -2
  101. package/dist/eco/manifest/parse.js +2 -2
  102. package/dist/eco/npm/npm/exec.js +2 -2
  103. package/dist/eco/npm/npm/flags.js +7 -12
  104. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  105. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  106. package/dist/eco/npm/parse-package-json.js +3 -3
  107. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  108. package/dist/eco/npm/pnpm/exec.js +5 -5
  109. package/dist/eco/npm/pnpm/flags.js +0 -3
  110. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  111. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  112. package/dist/eco/npm/script.js +9 -6
  113. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  114. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  115. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  116. package/dist/effects/pulse-frames.d.ts +3 -1
  117. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  118. package/dist/effects/shimmer-terminal.d.ts +1 -1
  119. package/dist/env/boolean.js +0 -1
  120. package/dist/env/ci.js +0 -1
  121. package/dist/env/debug.js +0 -1
  122. package/dist/env/github-status.d.ts +51 -0
  123. package/dist/env/github-status.js +90 -0
  124. package/dist/env/github.js +0 -8
  125. package/dist/env/home.js +0 -1
  126. package/dist/env/locale.js +0 -3
  127. package/dist/env/node-auth-token.js +0 -1
  128. package/dist/env/node-env.js +0 -1
  129. package/dist/env/node-version-managers.d.ts +53 -0
  130. package/dist/env/node-version-managers.js +90 -0
  131. package/dist/env/npm.js +0 -5
  132. package/dist/env/number.js +0 -1
  133. package/dist/env/package-manager.js +3 -6
  134. package/dist/env/path.js +0 -1
  135. package/dist/env/pre-commit.js +1 -2
  136. package/dist/env/rewire.d.ts +7 -6
  137. package/dist/env/rewire.js +15 -16
  138. package/dist/env/shell.js +0 -1
  139. package/dist/env/socket-cli.js +5 -18
  140. package/dist/env/socket-mcp.d.ts +114 -0
  141. package/dist/env/socket-mcp.js +146 -0
  142. package/dist/env/socket.d.ts +1 -109
  143. package/dist/env/socket.js +12 -166
  144. package/dist/env/string.js +0 -1
  145. package/dist/env/temp-dir.js +0 -3
  146. package/dist/env/term.js +0 -1
  147. package/dist/env/test.js +3 -6
  148. package/dist/env/windows.js +0 -4
  149. package/dist/env/xdg.js +0 -3
  150. package/dist/events/exit/_internal.d.ts +11 -9
  151. package/dist/events/exit/_internal.js +31 -35
  152. package/dist/events/exit/handler.js +3 -4
  153. package/dist/events/exit/intercept.js +4 -6
  154. package/dist/events/exit/lifecycle.js +16 -18
  155. package/dist/events/exit/signals.js +1 -2
  156. package/dist/events/exit/types.d.ts +6 -5
  157. package/dist/external/@npmcli/package-json.js +2 -2
  158. package/dist/external/@sinclair/typebox/value.js +5 -1
  159. package/dist/external/@sinclair/typebox.js +5 -1
  160. package/dist/external/@socketregistry/packageurl-js.js +27 -0
  161. package/dist/external/npm-pack.js +2 -2
  162. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  163. package/dist/external-tools/bazel/resolve.js +2 -1
  164. package/dist/external-tools/bazel/types.d.ts +1 -1
  165. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  166. package/dist/external-tools/cdxgen/resolve.js +2 -1
  167. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  168. package/dist/external-tools/from-download.d.ts +1 -1
  169. package/dist/external-tools/from-download.js +1 -1
  170. package/dist/external-tools/from-pip-venv.d.ts +73 -0
  171. package/dist/external-tools/from-pip-venv.js +98 -0
  172. package/dist/external-tools/janus/asset-names.js +1 -1
  173. package/dist/external-tools/janus/from-download.js +3 -5
  174. package/dist/external-tools/janus/from-vfs.js +1 -1
  175. package/dist/external-tools/janus/resolve.js +2 -1
  176. package/dist/external-tools/janus/types.d.ts +1 -1
  177. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  178. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  179. package/dist/external-tools/jre/from-download.js +2 -1
  180. package/dist/external-tools/jre/from-vfs.js +1 -1
  181. package/dist/external-tools/jre/resolve.js +2 -1
  182. package/dist/external-tools/jre/types.d.ts +1 -1
  183. package/dist/external-tools/manifest.d.ts +7 -7
  184. package/dist/external-tools/manifest.js +18 -16
  185. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  186. package/dist/external-tools/opengrep/resolve.js +2 -1
  187. package/dist/external-tools/opengrep/types.d.ts +1 -1
  188. package/dist/external-tools/python/asset-names.d.ts +76 -0
  189. package/dist/external-tools/python/asset-names.js +104 -0
  190. package/dist/external-tools/python/dlx.d.ts +80 -0
  191. package/dist/external-tools/python/dlx.js +87 -0
  192. package/dist/external-tools/python/from-download.d.ts +53 -0
  193. package/dist/external-tools/python/from-download.js +68 -0
  194. package/dist/external-tools/python/from-path.d.ts +7 -0
  195. package/dist/external-tools/python/from-path.js +23 -0
  196. package/dist/external-tools/python/pin.d.ts +121 -0
  197. package/dist/external-tools/python/pin.js +173 -0
  198. package/dist/external-tools/python/pip-install.d.ts +75 -0
  199. package/dist/external-tools/python/pip-install.js +139 -0
  200. package/dist/external-tools/python/resolve.d.ts +42 -0
  201. package/dist/external-tools/python/resolve.js +58 -0
  202. package/dist/external-tools/python/types.d.ts +49 -0
  203. package/dist/external-tools/sbt/from-vfs.js +1 -1
  204. package/dist/external-tools/sbt/resolve.js +2 -1
  205. package/dist/external-tools/sbt/types.d.ts +1 -1
  206. package/dist/external-tools/skillspector/from-dlx.d.ts +24 -0
  207. package/dist/external-tools/skillspector/from-dlx.js +41 -0
  208. package/dist/external-tools/skillspector/from-path.d.ts +8 -0
  209. package/dist/external-tools/skillspector/from-path.js +30 -0
  210. package/dist/external-tools/skillspector/from-vfs.d.ts +8 -0
  211. package/dist/external-tools/skillspector/from-vfs.js +27 -0
  212. package/dist/external-tools/skillspector/resolve.d.ts +34 -0
  213. package/dist/external-tools/skillspector/resolve.js +53 -0
  214. package/dist/external-tools/skillspector/types.d.ts +24 -0
  215. package/dist/external-tools/skillspector/types.js +2 -0
  216. package/dist/external-tools/synp/from-download.js +2 -2
  217. package/dist/external-tools/synp/from-vfs.js +1 -1
  218. package/dist/external-tools/synp/resolve.js +2 -1
  219. package/dist/external-tools/trivy/from-vfs.js +1 -1
  220. package/dist/external-tools/trivy/resolve.js +2 -1
  221. package/dist/external-tools/trivy/types.d.ts +1 -1
  222. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  223. package/dist/external-tools/trufflehog/resolve.js +2 -1
  224. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  225. package/dist/fs/_internal.d.ts +1 -1
  226. package/dist/fs/_internal.js +7 -7
  227. package/dist/fs/access.js +5 -9
  228. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  229. package/dist/fs/encoding.js +5 -7
  230. package/dist/fs/{find-up.js → find.js} +11 -13
  231. package/dist/fs/inspect.js +7 -13
  232. package/dist/fs/read-dir.js +7 -10
  233. package/dist/fs/read-file.js +8 -14
  234. package/dist/fs/read-json-cache.d.ts +6 -4
  235. package/dist/fs/read-json-cache.js +9 -6
  236. package/dist/fs/read-json.js +4 -6
  237. package/dist/fs/resolve-module.js +1 -1
  238. package/dist/fs/safe.d.ts +1 -1
  239. package/dist/fs/safe.js +12 -13
  240. package/dist/fs/unique.js +4 -5
  241. package/dist/fs/validate.js +1 -2
  242. package/dist/fs/write-json.js +4 -5
  243. package/dist/git/_internal.js +12 -11
  244. package/dist/git/changed.js +4 -4
  245. package/dist/git/repo.js +3 -3
  246. package/dist/git/staged.js +4 -4
  247. package/dist/git/unstaged.js +4 -4
  248. package/dist/github/ghsa.js +2 -2
  249. package/dist/github/refs-cache.d.ts +1 -1
  250. package/dist/github/refs-cache.js +5 -5
  251. package/dist/github/refs-rest.js +5 -5
  252. package/dist/github/{fetch.js → request.js} +13 -2
  253. package/dist/github/token.js +1 -1
  254. package/dist/github/types.d.ts +1 -1
  255. package/dist/globs/_internal.js +7 -9
  256. package/dist/globs/match.js +6 -7
  257. package/dist/globs/matcher.d.ts +3 -3
  258. package/dist/globs/matcher.js +12 -14
  259. package/dist/globs/stream.js +1 -2
  260. package/dist/globs/types.d.ts +24 -24
  261. package/dist/http-request/_internal.d.ts +1 -1
  262. package/dist/http-request/browser.js +21 -13
  263. package/dist/http-request/checksum-file.d.ts +55 -0
  264. package/dist/http-request/checksum-file.js +95 -0
  265. package/dist/http-request/download-types.d.ts +15 -23
  266. package/dist/http-request/download.js +4 -4
  267. package/dist/http-request/headers.d.ts +32 -3
  268. package/dist/http-request/headers.js +41 -13
  269. package/dist/http-request/request-attempt.js +38 -33
  270. package/dist/http-request/request-types.d.ts +7 -2
  271. package/dist/http-request/request.js +33 -16
  272. package/dist/http-request/response-reader.d.ts +12 -1
  273. package/dist/http-request/response-reader.js +22 -2
  274. package/dist/http-request/user-agent.js +3 -4
  275. package/dist/integrity.d.ts +86 -18
  276. package/dist/integrity.js +119 -30
  277. package/dist/ipc/directory.js +2 -2
  278. package/dist/ipc/paths.js +1 -1
  279. package/dist/ipc/write.js +1 -1
  280. package/dist/ipc-cli/get.js +12 -12
  281. package/dist/json/edit.js +13 -14
  282. package/dist/json/format.js +2 -2
  283. package/dist/json/parse.d.ts +1 -1
  284. package/dist/json/parse.js +3 -7
  285. package/dist/logger/_internal.d.ts +4 -4
  286. package/dist/logger/_internal.js +3 -3
  287. package/dist/logger/colors.js +4 -3
  288. package/dist/logger/console-methods.d.ts +132 -0
  289. package/dist/logger/console-methods.js +169 -0
  290. package/dist/logger/console.d.ts +12 -0
  291. package/dist/logger/console.js +42 -11
  292. package/dist/logger/indentation-methods.d.ts +81 -0
  293. package/dist/logger/indentation-methods.js +121 -0
  294. package/dist/logger/node.d.ts +16 -338
  295. package/dist/logger/node.js +75 -608
  296. package/dist/logger/options.d.ts +39 -0
  297. package/dist/logger/options.js +47 -0
  298. package/dist/logger/semantic-methods.d.ts +63 -0
  299. package/dist/logger/semantic-methods.js +108 -0
  300. package/dist/logger/stream-methods.d.ts +63 -0
  301. package/dist/logger/stream-methods.js +101 -0
  302. package/dist/logger/stream.d.ts +37 -0
  303. package/dist/logger/stream.js +42 -0
  304. package/dist/logger/symbols-builder.js +9 -9
  305. package/dist/logger/symbols.d.ts +2 -25
  306. package/dist/logger/symbols.js +53 -74
  307. package/dist/logger/types.d.ts +1 -1
  308. package/dist/memo/types.d.ts +6 -6
  309. package/dist/native-messaging/host.d.ts +20 -0
  310. package/dist/native-messaging/host.js +120 -0
  311. package/dist/native-messaging/index.d.ts +5 -0
  312. package/dist/native-messaging/index.js +22 -0
  313. package/dist/native-messaging/install.d.ts +60 -0
  314. package/dist/native-messaging/install.js +141 -0
  315. package/dist/native-messaging/rate-limit.d.ts +62 -0
  316. package/dist/native-messaging/rate-limit.js +115 -0
  317. package/dist/native-messaging/run.d.ts +10 -0
  318. package/dist/native-messaging/run.js +17 -0
  319. package/dist/node/async-hooks.js +4 -3
  320. package/dist/node/child-process.js +4 -3
  321. package/dist/node/crypto.js +4 -3
  322. package/dist/node/events.js +4 -3
  323. package/dist/node/fs-promises.js +4 -3
  324. package/dist/node/fs.js +4 -3
  325. package/dist/node/http.js +4 -3
  326. package/dist/node/https.js +4 -3
  327. package/dist/node/module.js +10 -6
  328. package/dist/node/os.js +4 -3
  329. package/dist/node/path.js +4 -3
  330. package/dist/node/timers-promises.js +4 -3
  331. package/dist/node/url.js +4 -3
  332. package/dist/node/util.js +4 -3
  333. package/dist/objects/getters.js +5 -7
  334. package/dist/objects/inspect.js +1 -4
  335. package/dist/objects/mutate.js +2 -3
  336. package/dist/objects/predicates.js +0 -4
  337. package/dist/objects/sort.js +3 -7
  338. package/dist/packages/edit-class.js +15 -16
  339. package/dist/packages/edit.js +12 -14
  340. package/dist/packages/exports.js +11 -17
  341. package/dist/packages/fetch.d.ts +16 -0
  342. package/dist/packages/fetch.js +81 -0
  343. package/dist/packages/find.d.ts +55 -0
  344. package/dist/packages/find.js +65 -0
  345. package/dist/packages/isolation.js +14 -14
  346. package/dist/packages/licenses.js +16 -16
  347. package/dist/packages/manifest.js +12 -15
  348. package/dist/packages/metadata-extensions.d.ts +14 -0
  349. package/dist/packages/metadata-extensions.js +43 -0
  350. package/dist/packages/normalize.js +5 -9
  351. package/dist/packages/provenance.d.ts +6 -0
  352. package/dist/packages/provenance.js +25 -18
  353. package/dist/packages/read.d.ts +29 -0
  354. package/dist/packages/read.js +66 -0
  355. package/dist/packages/specs.d.ts +48 -1
  356. package/dist/packages/specs.js +74 -11
  357. package/dist/packages/tarball.d.ts +24 -0
  358. package/dist/packages/tarball.js +79 -0
  359. package/dist/packages/types.d.ts +21 -20
  360. package/dist/packages/validation.js +0 -3
  361. package/dist/paths/_internal.d.ts +2 -1
  362. package/dist/paths/_internal.js +7 -19
  363. package/dist/paths/conversion.js +5 -9
  364. package/dist/paths/filenames.d.ts +0 -1
  365. package/dist/paths/filenames.js +0 -2
  366. package/dist/paths/normalize.js +6 -5
  367. package/dist/paths/packages.js +4 -7
  368. package/dist/paths/predicates.js +9 -16
  369. package/dist/paths/resolve.js +11 -14
  370. package/dist/paths/rewire.js +3 -3
  371. package/dist/paths/socket.js +16 -16
  372. package/dist/paths/walk.d.ts +1 -1
  373. package/dist/paths/walk.js +4 -4
  374. package/dist/perf/report.js +2 -2
  375. package/dist/perf/types.d.ts +1 -1
  376. package/dist/pkg-ext/data.js +1 -1
  377. package/dist/primordials/array.js +9 -9
  378. package/dist/primordials/date.js +2 -2
  379. package/dist/primordials/error.js +3 -3
  380. package/dist/primordials/headers.d.ts +10 -0
  381. package/dist/primordials/headers.js +23 -0
  382. package/dist/primordials/intl.d.ts +13 -0
  383. package/dist/primordials/intl.js +26 -0
  384. package/dist/primordials/math.js +33 -33
  385. package/dist/primordials/number.js +9 -9
  386. package/dist/primordials/object.js +5 -5
  387. package/dist/primordials/string.d.ts +2 -2
  388. package/dist/primordials/string.js +6 -6
  389. package/dist/primordials/symbol.js +3 -3
  390. package/dist/primordials/uncurry.js +9 -9
  391. package/dist/process/abort.js +3 -3
  392. package/dist/process/lock-manager.js +8 -8
  393. package/dist/process/spawn/_internal.js +6 -8
  394. package/dist/process/spawn/child.js +14 -14
  395. package/dist/process/spawn/errors.js +2 -4
  396. package/dist/process/spawn/kill-tree.d.ts +53 -0
  397. package/dist/process/spawn/kill-tree.js +85 -0
  398. package/dist/process/spawn/stdio.js +0 -1
  399. package/dist/process/spawn/types.d.ts +5 -5
  400. package/dist/process/transient.js +2 -2
  401. package/dist/promises/_internal.d.ts +2 -1
  402. package/dist/promises/_internal.js +2 -6
  403. package/dist/promises/iterate.js +12 -16
  404. package/dist/promises/options.js +3 -6
  405. package/dist/promises/retry.js +4 -5
  406. package/dist/promises/timers.d.ts +30 -0
  407. package/dist/promises/timers.js +48 -0
  408. package/dist/releases/github-archives.d.ts +6 -6
  409. package/dist/releases/github-archives.js +2 -2
  410. package/dist/releases/github-asset-url.d.ts +1 -1
  411. package/dist/releases/github-asset-url.js +5 -5
  412. package/dist/releases/github-downloads.d.ts +1 -1
  413. package/dist/releases/github-downloads.js +3 -3
  414. package/dist/releases/github-listing.d.ts +11 -2
  415. package/dist/releases/github-listing.js +20 -7
  416. package/dist/releases/github-retry-config.js +1 -1
  417. package/dist/releases/github-types.d.ts +6 -6
  418. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  419. package/dist/releases/socket-btm-binary-naming.js +155 -0
  420. package/dist/releases/socket-btm.d.ts +8 -115
  421. package/dist/releases/socket-btm.js +16 -159
  422. package/dist/schema/types.d.ts +1 -1
  423. package/dist/sea/detect.js +6 -6
  424. package/dist/secrets/_internal.d.ts +2 -2
  425. package/dist/secrets/_internal.js +5 -4
  426. package/dist/secrets/compare.d.ts +45 -0
  427. package/dist/secrets/compare.js +61 -0
  428. package/dist/secrets/keychain.js +9 -6
  429. package/dist/secrets/linux.js +25 -23
  430. package/dist/secrets/macos.d.ts +1 -1
  431. package/dist/secrets/macos.js +18 -16
  432. package/dist/secrets/rc.d.ts +2 -2
  433. package/dist/secrets/rc.js +15 -10
  434. package/dist/secrets/socket-api-token.d.ts +4 -4
  435. package/dist/secrets/socket-api-token.js +18 -9
  436. package/dist/secrets/windows.js +21 -17
  437. package/dist/shadow/skip.js +2 -2
  438. package/dist/shell/parse.d.ts +108 -1
  439. package/dist/shell/parse.js +168 -2
  440. package/dist/smol/detect.js +9 -10
  441. package/dist/smol/http.js +6 -7
  442. package/dist/smol/https.js +6 -7
  443. package/dist/smol/manifest.d.ts +1 -1
  444. package/dist/smol/manifest.js +6 -7
  445. package/dist/smol/path.d.ts +1 -1
  446. package/dist/smol/path.js +7 -8
  447. package/dist/smol/primordial.d.ts +4 -0
  448. package/dist/smol/primordial.js +6 -7
  449. package/dist/smol/purl.d.ts +1 -1
  450. package/dist/smol/purl.js +7 -8
  451. package/dist/smol/versions.js +6 -7
  452. package/dist/smol/vfs.js +6 -7
  453. package/dist/sorts/_internal.js +6 -8
  454. package/dist/sorts/natural.js +10 -12
  455. package/dist/sorts/semver.js +1 -2
  456. package/dist/sorts/strings.js +0 -1
  457. package/dist/sorts/types.d.ts +1 -1
  458. package/dist/spinner/create-spinner-class.d.ts +38 -0
  459. package/dist/spinner/create-spinner-class.js +302 -0
  460. package/dist/spinner/default.js +8 -9
  461. package/dist/spinner/spinner-internals.d.ts +36 -0
  462. package/dist/spinner/spinner-internals.js +101 -0
  463. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  464. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  465. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  466. package/dist/spinner/spinner-status-methods.js +133 -0
  467. package/dist/spinner/spinner.d.ts +4 -5
  468. package/dist/spinner/spinner.js +18 -705
  469. package/dist/spinner/types.d.ts +3 -1
  470. package/dist/spinner/with.d.ts +10 -0
  471. package/dist/spinner/with.js +16 -2
  472. package/dist/stdio/divider.js +1 -1
  473. package/dist/stdio/footer.js +3 -3
  474. package/dist/stdio/header.js +4 -4
  475. package/dist/stdio/progress.js +5 -5
  476. package/dist/stdio/prompts.d.ts +5 -3
  477. package/dist/stdio/prompts.js +6 -7
  478. package/dist/stdio/stdout.js +3 -3
  479. package/dist/streams/parallel.js +3 -5
  480. package/dist/streams/transform.js +2 -3
  481. package/dist/strings/format.js +2 -6
  482. package/dist/strings/predicates.js +0 -2
  483. package/dist/strings/search.js +1 -2
  484. package/dist/strings/transform.js +0 -3
  485. package/dist/strings/width.js +9 -10
  486. package/dist/tables/bordered.js +4 -3
  487. package/dist/tables/padding.js +1 -1
  488. package/dist/tables/simple.js +8 -5
  489. package/dist/temporal/instant.js +4 -2
  490. package/dist/temporal/slots.js +7 -6
  491. package/dist/temporal/system.js +9 -9
  492. package/dist/themes/context.d.ts +3 -2
  493. package/dist/themes/context.js +4 -5
  494. package/dist/themes/themes.js +15 -15
  495. package/dist/themes/types.d.ts +3 -3
  496. package/dist/url/parse.js +0 -2
  497. package/dist/url/predicates.js +1 -2
  498. package/dist/url/search-params.js +3 -9
  499. package/dist/url/types.d.ts +5 -5
  500. package/dist/versions/_internal.js +3 -3
  501. package/dist/words/article.js +0 -1
  502. package/dist/words/capitalize.js +0 -1
  503. package/dist/words/pluralize.d.ts +24 -2
  504. package/dist/words/pluralize.js +47 -2
  505. package/dist/words/types.d.ts +25 -2
  506. package/package.json +289 -108
  507. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  508. package/dist/external-tools/uv/asset-names.js +0 -70
  509. package/dist/external-tools/uv/from-download.d.ts +0 -17
  510. package/dist/external-tools/uv/from-download.js +0 -47
  511. package/dist/external-tools/uv/from-path.d.ts +0 -5
  512. package/dist/external-tools/uv/from-path.js +0 -22
  513. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  514. package/dist/external-tools/uv/from-vfs.js +0 -26
  515. package/dist/external-tools/uv/resolve.d.ts +0 -25
  516. package/dist/external-tools/uv/resolve.js +0 -52
  517. package/dist/external-tools/uv/types.d.ts +0 -24
  518. package/dist/http-request/checksums.d.ts +0 -69
  519. package/dist/http-request/checksums.js +0 -108
  520. package/dist/http-request/http-request.d.ts +0 -12
  521. package/dist/http-request/http-request.js +0 -11
  522. package/dist/packages/operations.d.ts +0 -113
  523. package/dist/packages/operations.js +0 -304
  524. package/dist/ssri/convert.d.ts +0 -48
  525. package/dist/ssri/convert.js +0 -69
  526. package/dist/ssri/parse.d.ts +0 -27
  527. package/dist/ssri/parse.js +0 -41
  528. package/dist/ssri/validate.d.ts +0 -41
  529. package/dist/ssri/validate.js +0 -56
  530. /package/dist/{bin → cli}/check.d.ts +0 -0
  531. /package/dist/external-tools/{uv → python}/types.js +0 -0
  532. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  533. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  534. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -4,6 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
6
  const require_primordials_string = require('../primordials/string.js');
7
+ const require_primordials_object = require('../primordials/object.js');
7
8
  let node_path = require("node:path");
8
9
  node_path = require_runtime.__toESM(node_path);
9
10
 
@@ -16,23 +17,6 @@ node_path = require_runtime.__toESM(node_path);
16
17
  * no callers outside this directory.
17
18
  */
18
19
  /**
19
- * Strip the trailing extension from a filename when it matches one of `exts`.
20
- * Returns the input unchanged when the trailing extname isn't in the set.
21
- * Case-insensitive on the extension — preserves the rest of the path's casing.
22
- *
23
- * The `exts` set decides what counts. Pass `BROTLI_EXTS` / `GZIP_EXTS` for the
24
- * canonical compression sets, or your own set for custom classifiers.
25
- *
26
- * Generic — it does NOT know that `.tgz` is short for `.tar.gz`. Callers that
27
- * need that convention compose this with their own follow-up (see
28
- * `decompressGzipFile` for the canonical example).
29
- */
30
- function stripExt(filePath, exts) {
31
- const ext = node_path.default.extname(filePath);
32
- if (!exts.has(require_primordials_string.StringPrototypeToLowerCase(ext))) return filePath;
33
- return filePath.slice(0, -ext.length);
34
- }
35
- /**
36
20
  * Disambiguate the `(src, dest, options?)` and `(src, options)` call shapes.
37
21
  * Returns the resolved destPath, options, and inPlace flag. Validates that the
38
22
  * explicit destPath is not the same as srcPath, since same-path streams would
@@ -41,14 +25,14 @@ function stripExt(filePath, exts) {
41
25
  function resolveFileArgs(fnName, srcPath, destOrOptions, maybeOptions, computeInPlaceDest) {
42
26
  if (typeof destOrOptions === "string") {
43
27
  if (srcPath === destOrOptions) throw new require_primordials_error.ErrorCtor(`${fnName}: srcPath and destPath must differ; got ${srcPath}`);
44
- return Object.freeze({
28
+ return require_primordials_object.ObjectFreeze({
45
29
  __proto__: null,
46
30
  destPath: destOrOptions,
47
31
  options: maybeOptions,
48
32
  inPlace: false
49
33
  });
50
34
  }
51
- if (destOrOptions?.inPlace) return Object.freeze({
35
+ if (destOrOptions?.inPlace) return require_primordials_object.ObjectFreeze({
52
36
  __proto__: null,
53
37
  destPath: computeInPlaceDest(srcPath),
54
38
  options: destOrOptions,
@@ -56,6 +40,23 @@ function resolveFileArgs(fnName, srcPath, destOrOptions, maybeOptions, computeIn
56
40
  });
57
41
  throw new require_primordials_error.ErrorCtor(`${fnName}: missing destPath; pass an explicit destination or { inPlace: true }`);
58
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
+ }
59
60
 
60
61
  //#endregion
61
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
+ export declare const BROTLI_EXTS: ReadonlySet<string>;
12
13
  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,11 @@ 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;
81
+ export declare function resolveBrotliOptions(options: CompressOptions | undefined): ResolvedBrotliOptions;
82
82
  export {};
@@ -2,8 +2,10 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
+ const require_primordials_buffer = require('../primordials/buffer.js');
5
6
  const require_primordials_error = require('../primordials/error.js');
6
7
  const require_primordials_string = require('../primordials/string.js');
8
+ const require_primordials_map_set = require('../primordials/map-set.js');
7
9
  const require_fs_safe = require('../fs/safe.js');
8
10
  const require_compression__internal = require('./_internal.js');
9
11
  let node_fs = require("node:fs");
@@ -12,62 +14,28 @@ node_path = require_runtime.__toESM(node_path);
12
14
  let node_util = require("node:util");
13
15
  let node_stream_promises = require("node:stream/promises");
14
16
  let node_zlib = require("node:zlib");
15
- let node_buffer = require("node:buffer");
16
17
 
17
18
  //#region src/compression/brotli.ts
18
- /**
19
- * @file Brotli compression / decompression — in-memory, file-to-file, and
20
- * raw-stream variants. Default quality is 11 (max compression, slow) on the
21
- * assumption these are one-shot CLI calls. Override via `options.level` for
22
- * hot paths. await compressBrotli(JSON.stringify(payload)) await
23
- * compressBrotliFile('input.json', 'input.json.br')
24
- * readable.pipe(createBrotliCompressor()).pipe(writable)
25
- */
26
19
  const brotliCompressAsync = (0, node_util.promisify)(node_zlib.brotliCompress);
27
20
  const brotliDecompressAsync = (0, node_util.promisify)(node_zlib.brotliDecompress);
28
- /**
29
- * Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
30
- * `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
31
- * Exposed for callers building their own zlib pipelines and for unit-test
32
- * coverage.
33
- */
34
- function resolveBrotliOptions(options) {
35
- const level = options?.level ?? 11;
36
- const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
37
- if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
38
- return { params };
39
- }
21
+ const BROTLI_MIN_LEN = 4;
22
+ const BROTLI_EXTS = new require_primordials_map_set.SetCtor([".br", ".brotli"]);
40
23
  /**
41
24
  * Compress a string or Buffer with brotli. Strings are encoded as UTF-8 before
42
25
  * compression — pass an explicit Buffer if you have non-UTF-8 input.
43
26
  */
44
27
  async function compressBrotli(input, options) {
45
- const buf = typeof input === "string" ? node_buffer.Buffer.from(input, "utf8") : input;
28
+ const buf = typeof input === "string" ? require_primordials_buffer.BufferFrom(input, "utf8") : input;
46
29
  const opts = resolveBrotliOptions(options);
47
30
  if (opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] === void 0) opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = buf.byteLength;
48
31
  return await brotliCompressAsync(buf, opts);
49
32
  }
50
- /**
51
- * Decompress a brotli-compressed Buffer.
52
- */
53
- async function decompressBrotli(input) {
54
- return await brotliDecompressAsync(input);
55
- }
56
33
  async function compressBrotliFile(srcPath, destOrOptions, maybeOptions) {
57
34
  const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressBrotliFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.br`);
58
35
  await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliCompress)(resolveBrotliOptions(options)), (0, node_fs.createWriteStream)(destPath));
59
36
  if (inPlace) await require_fs_safe.safeDelete(srcPath);
60
37
  return destPath;
61
38
  }
62
- async function decompressBrotliFile(srcPath, destOrOptions) {
63
- const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressBrotliFile", srcPath, destOrOptions, void 0, (p) => {
64
- if (!hasBrotliExt(p)) throw new require_primordials_error.ErrorCtor(`decompressBrotliFile: ${p} has no .br/.brotli extension; can't infer destination`);
65
- return require_compression__internal.stripExt(p, BROTLI_EXTS);
66
- });
67
- await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliDecompress)(), (0, node_fs.createWriteStream)(destPath));
68
- if (inPlace) await require_fs_safe.safeDelete(srcPath);
69
- return destPath;
70
- }
71
39
  /**
72
40
  * Create a brotli compress transform stream. Compose into your own pipeline.
73
41
  * The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
@@ -82,7 +50,28 @@ function createBrotliCompressor(options) {
82
50
  function createBrotliDecompressor() {
83
51
  return (0, node_zlib.createBrotliDecompress)();
84
52
  }
85
- 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
+ }
86
75
  /**
87
76
  * Cheap pre-flight check: does the buffer look like it could be brotli? Returns
88
77
  * false for inputs too short to be valid. Brotli has no fixed magic bytes, so
@@ -90,15 +79,19 @@ const BROTLI_MIN_LEN = 4;
90
79
  * `decompressBrotli(buf)` succeeding. Use for UI hints, not correctness.
91
80
  */
92
81
  function isBrotliCompressed(input) {
93
- return node_buffer.Buffer.isBuffer(input) && input.byteLength >= BROTLI_MIN_LEN;
82
+ return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= BROTLI_MIN_LEN;
94
83
  }
95
- const BROTLI_EXTS = new Set([".br", ".brotli"]);
96
84
  /**
97
- * Extension check for brotli paths matches `.br` / `.brotli`
98
- * (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.
99
89
  */
100
- function hasBrotliExt(filePath) {
101
- return BROTLI_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
90
+ function resolveBrotliOptions(options) {
91
+ const level = options?.level ?? 11;
92
+ const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
93
+ if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
94
+ return { params };
102
95
  }
103
96
 
104
97
  //#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;
@@ -2,8 +2,10 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
+ const require_primordials_buffer = require('../primordials/buffer.js');
5
6
  const require_primordials_error = require('../primordials/error.js');
6
7
  const require_primordials_string = require('../primordials/string.js');
8
+ const require_primordials_map_set = require('../primordials/map-set.js');
7
9
  const require_fs_safe = require('../fs/safe.js');
8
10
  const require_compression__internal = require('./_internal.js');
9
11
  let node_fs = require("node:fs");
@@ -12,46 +14,23 @@ node_path = require_runtime.__toESM(node_path);
12
14
  let node_util = require("node:util");
13
15
  let node_stream_promises = require("node:stream/promises");
14
16
  let node_zlib = require("node:zlib");
15
- let node_buffer = require("node:buffer");
16
17
 
17
18
  //#region src/compression/gzip.ts
18
- /**
19
- * @file Gzip compression / decompression — same calling shapes as brotli:
20
- * in-memory, file-to-file, and raw-stream variants. Default level is 6 (zlib
21
- * default). The decompress-file helper recognises `.gz` / `.gzip` / `.tgz`,
22
- * and special-cases `.tgz` back to `.tar` on inPlace decompress so a
23
- * round-trip stays lossless. await compressGzip(JSON.stringify(payload))
24
- * await compressGzipFile('input.json', 'input.json.gz')
25
- * readable.pipe(createGzipCompressor()).pipe(writable)
26
- */
27
19
  const gzipAsync = (0, node_util.promisify)(node_zlib.gzip);
28
20
  const gunzipAsync = (0, node_util.promisify)(node_zlib.gunzip);
29
- /**
30
- * Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
31
- * empty options object when no `level` is given (zlib uses its default, level
32
- * 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
33
- * coverage.
34
- */
35
- function resolveGzipOptions(options) {
36
- const level = options?.level;
37
- if (level === void 0) return { __proto__: null };
38
- return {
39
- __proto__: null,
40
- level
41
- };
42
- }
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
+ ]);
43
28
  /**
44
29
  * Compress a string or Buffer with gzip. Strings are encoded as UTF-8 before
45
30
  * compression. Default level is 6 (zlib default).
46
31
  */
47
32
  async function compressGzip(input, options) {
48
- return await gzipAsync(typeof input === "string" ? node_buffer.Buffer.from(input, "utf8") : input, resolveGzipOptions(options));
49
- }
50
- /**
51
- * Decompress a gzip-compressed Buffer.
52
- */
53
- async function decompressGzip(input) {
54
- return await gunzipAsync(input);
33
+ return await gzipAsync(typeof input === "string" ? require_primordials_buffer.BufferFrom(input, "utf8") : input, resolveGzipOptions(options));
55
34
  }
56
35
  async function compressGzipFile(srcPath, destOrOptions, maybeOptions) {
57
36
  const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressGzipFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.gz`);
@@ -59,16 +38,6 @@ async function compressGzipFile(srcPath, destOrOptions, maybeOptions) {
59
38
  if (inPlace) await require_fs_safe.safeDelete(srcPath);
60
39
  return destPath;
61
40
  }
62
- async function decompressGzipFile(srcPath, destOrOptions) {
63
- const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressGzipFile", srcPath, destOrOptions, void 0, (p) => {
64
- if (!hasGzipExt(p)) throw new require_primordials_error.ErrorCtor(`decompressGzipFile: ${p} has no .gz/.gzip/.tgz extension; can't infer destination`);
65
- const stripped = require_compression__internal.stripExt(p, GZIP_EXTS);
66
- return require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(p)) === ".tgz" ? `${stripped}.tar` : stripped;
67
- });
68
- await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createGunzip)(), (0, node_fs.createWriteStream)(destPath));
69
- if (inPlace) await require_fs_safe.safeDelete(srcPath);
70
- return destPath;
71
- }
72
41
  /**
73
42
  * Create a gzip compress transform stream.
74
43
  */
@@ -81,20 +50,22 @@ function createGzipCompressor(options) {
81
50
  function createGzipDecompressor() {
82
51
  return (0, node_zlib.createGunzip)();
83
52
  }
84
- const GZIP_MAGIC_0 = 31;
85
- const GZIP_MAGIC_1 = 139;
86
53
  /**
87
- * Magic-byte check for gzip. Reads the first two bytes and matches the gzip
88
- * spec's 0x1f 0x8b signature. Authoritative.
54
+ * Decompress a gzip-compressed Buffer.
89
55
  */
90
- function isGzipCompressed(input) {
91
- return node_buffer.Buffer.isBuffer(input) && input.byteLength >= 2 && input[0] === GZIP_MAGIC_0 && input[1] === GZIP_MAGIC_1;
56
+ async function decompressGzip(input) {
57
+ return await gunzipAsync(input);
58
+ }
59
+ async function decompressGzipFile(srcPath, destOrOptions) {
60
+ const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressGzipFile", srcPath, destOrOptions, void 0, (p) => {
61
+ if (!hasGzipExt(p)) throw new require_primordials_error.ErrorCtor(`decompressGzipFile: ${p} has no .gz/.gzip/.tgz extension; can't infer destination`);
62
+ const stripped = require_compression__internal.stripExt(p, GZIP_EXTS);
63
+ return require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(p)) === ".tgz" ? `${stripped}.tar` : stripped;
64
+ });
65
+ await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createGunzip)(), (0, node_fs.createWriteStream)(destPath));
66
+ if (inPlace) await require_fs_safe.safeDelete(srcPath);
67
+ return destPath;
92
68
  }
93
- const GZIP_EXTS = new Set([
94
- ".gz",
95
- ".gzip",
96
- ".tgz"
97
- ]);
98
69
  /**
99
70
  * Extension check for gzip paths — matches `.gz` / `.gzip` / `.tgz`
100
71
  * (case-insensitive). Naming follows node:path's `extname`.
@@ -102,6 +73,27 @@ const GZIP_EXTS = new Set([
102
73
  function hasGzipExt(filePath) {
103
74
  return GZIP_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
104
75
  }
76
+ /**
77
+ * Magic-byte check for gzip. Reads the first two bytes and matches the gzip
78
+ * spec's 0x1f 0x8b signature. Authoritative.
79
+ */
80
+ function isGzipCompressed(input) {
81
+ return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= 2 && input[0] === GZIP_MAGIC_0 && input[1] === GZIP_MAGIC_1;
82
+ }
83
+ /**
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.
88
+ */
89
+ function resolveGzipOptions(options) {
90
+ const level = options?.level;
91
+ if (level === void 0) return { __proto__: null };
92
+ return {
93
+ __proto__: null,
94
+ level
95
+ };
96
+ }
105
97
 
106
98
  //#endregion
107
99
  exports.GZIP_EXTS = GZIP_EXTS;
@@ -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.