@socketsecurity/lib 6.0.6 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +3 -2
  4. package/dist/ai/spawn.js +2 -1
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +1 -1
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +3 -5
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/exec.js +2 -3
  27. package/dist/bin/find.js +13 -13
  28. package/dist/bin/prim.cjs +22736 -22556
  29. package/dist/bin/resolve.js +12 -13
  30. package/dist/bin/which.js +8 -8
  31. package/dist/cache/ttl/store.js +5 -5
  32. package/dist/checks/primordials-defaults.d.ts +3 -3
  33. package/dist/checks/primordials-defaults.js +3 -3
  34. package/dist/checks/primordials.js +4 -3
  35. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  36. package/dist/{bin → cli}/check-primordials.js +55 -52
  37. package/dist/{bin → cli}/check.js +3 -3
  38. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  39. package/dist/{bin → cli}/socket-lib.js +4 -4
  40. package/dist/colors/socket-palette.js +7 -9
  41. package/dist/compression/_internal.d.ts +12 -12
  42. package/dist/compression/_internal.js +17 -17
  43. package/dist/compression/brotli.d.ts +25 -25
  44. package/dist/compression/brotli.js +33 -33
  45. package/dist/compression/gzip.d.ts +23 -23
  46. package/dist/compression/gzip.js +40 -40
  47. package/dist/constants/agents.d.ts +3 -1
  48. package/dist/constants/agents.js +15 -11
  49. package/dist/constants/licenses.js +3 -3
  50. package/dist/constants/node.d.ts +23 -0
  51. package/dist/constants/node.js +47 -15
  52. package/dist/constants/packages.js +22 -28
  53. package/dist/constants/platform.d.ts +30 -3
  54. package/dist/constants/platform.js +72 -12
  55. package/dist/constants/runtime.d.ts +22 -0
  56. package/dist/constants/runtime.js +32 -0
  57. package/dist/constants/socket.js +1 -1
  58. package/dist/cover/code.js +8 -8
  59. package/dist/cover/formatters.js +5 -5
  60. package/dist/crypto/hash.d.ts +26 -1
  61. package/dist/crypto/hash.js +43 -12
  62. package/dist/debug/_internal.js +4 -6
  63. package/dist/debug/caller-info.js +2 -3
  64. package/dist/debug/namespace.d.ts +7 -0
  65. package/dist/debug/namespace.js +21 -12
  66. package/dist/debug/output.js +21 -24
  67. package/dist/debug/types.d.ts +4 -4
  68. package/dist/dlx/arborist.js +6 -6
  69. package/dist/dlx/binary-cache.js +14 -14
  70. package/dist/dlx/binary-download.d.ts +1 -1
  71. package/dist/dlx/binary-download.js +11 -11
  72. package/dist/dlx/binary-resolution.js +16 -14
  73. package/dist/dlx/binary-types.d.ts +5 -5
  74. package/dist/dlx/binary.js +5 -5
  75. package/dist/dlx/cache.js +1 -1
  76. package/dist/dlx/detect.d.ts +34 -25
  77. package/dist/dlx/detect.js +86 -77
  78. package/dist/dlx/dir.js +2 -2
  79. package/dist/dlx/firewall.d.ts +1 -1
  80. package/dist/dlx/lockfile.d.ts +19 -18
  81. package/dist/dlx/lockfile.js +16 -16
  82. package/dist/dlx/manifest.d.ts +6 -6
  83. package/dist/dlx/manifest.js +5 -5
  84. package/dist/dlx/package.d.ts +10 -10
  85. package/dist/dlx/package.js +16 -16
  86. package/dist/dlx/packages.js +4 -4
  87. package/dist/dlx/paths.js +7 -7
  88. package/dist/dlx/spec.js +1 -1
  89. package/dist/dlx/types.d.ts +28 -27
  90. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  91. package/dist/eco/cargo/parse-lockfile.js +2 -2
  92. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  93. package/dist/eco/manifest/detect-format.js +4 -4
  94. package/dist/eco/manifest/find-packages.js +2 -2
  95. package/dist/eco/manifest/get-package-versions.js +2 -2
  96. package/dist/eco/manifest/get-package.js +2 -2
  97. package/dist/eco/manifest/parse-lockfile.js +2 -2
  98. package/dist/eco/manifest/parse-manifest.js +2 -2
  99. package/dist/eco/manifest/parse.js +2 -2
  100. package/dist/eco/npm/npm/exec.js +2 -2
  101. package/dist/eco/npm/npm/flags.js +7 -12
  102. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  103. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  104. package/dist/eco/npm/parse-package-json.js +3 -3
  105. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  106. package/dist/eco/npm/pnpm/exec.js +5 -5
  107. package/dist/eco/npm/pnpm/flags.js +0 -3
  108. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  109. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  110. package/dist/eco/npm/script.js +9 -6
  111. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  112. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  113. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  114. package/dist/effects/pulse-frames.d.ts +3 -1
  115. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  116. package/dist/effects/shimmer-terminal.d.ts +1 -1
  117. package/dist/env/boolean.js +0 -1
  118. package/dist/env/ci.js +0 -1
  119. package/dist/env/debug.js +0 -1
  120. package/dist/env/github-status.d.ts +51 -0
  121. package/dist/env/github-status.js +90 -0
  122. package/dist/env/github.js +0 -8
  123. package/dist/env/home.js +0 -1
  124. package/dist/env/locale.js +0 -3
  125. package/dist/env/node-auth-token.js +0 -1
  126. package/dist/env/node-env.js +0 -1
  127. package/dist/env/node-version-managers.d.ts +53 -0
  128. package/dist/env/node-version-managers.js +90 -0
  129. package/dist/env/npm.js +0 -5
  130. package/dist/env/number.js +0 -1
  131. package/dist/env/package-manager.js +3 -6
  132. package/dist/env/path.js +0 -1
  133. package/dist/env/pre-commit.js +1 -2
  134. package/dist/env/rewire.d.ts +7 -6
  135. package/dist/env/rewire.js +15 -16
  136. package/dist/env/shell.js +0 -1
  137. package/dist/env/socket-cli.js +5 -18
  138. package/dist/env/socket-mcp.d.ts +114 -0
  139. package/dist/env/socket-mcp.js +146 -0
  140. package/dist/env/socket.d.ts +1 -109
  141. package/dist/env/socket.js +12 -167
  142. package/dist/env/string.js +0 -1
  143. package/dist/env/temp-dir.js +0 -3
  144. package/dist/env/term.js +0 -1
  145. package/dist/env/test.js +3 -6
  146. package/dist/env/windows.js +0 -4
  147. package/dist/env/xdg.js +0 -3
  148. package/dist/events/exit/_internal.d.ts +11 -9
  149. package/dist/events/exit/_internal.js +31 -35
  150. package/dist/events/exit/handler.js +3 -4
  151. package/dist/events/exit/intercept.js +4 -6
  152. package/dist/events/exit/lifecycle.js +16 -18
  153. package/dist/events/exit/signals.js +1 -2
  154. package/dist/events/exit/types.d.ts +6 -5
  155. package/dist/external/@npmcli/package-json.js +2 -2
  156. package/dist/external/npm-pack.js +2 -2
  157. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  158. package/dist/external-tools/bazel/types.d.ts +1 -1
  159. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  160. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  161. package/dist/external-tools/from-download.d.ts +1 -1
  162. package/dist/external-tools/from-download.js +1 -1
  163. package/dist/external-tools/janus/from-vfs.js +1 -1
  164. package/dist/external-tools/janus/types.d.ts +1 -1
  165. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  166. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  167. package/dist/external-tools/jre/from-vfs.js +1 -1
  168. package/dist/external-tools/jre/types.d.ts +1 -1
  169. package/dist/external-tools/manifest.d.ts +7 -7
  170. package/dist/external-tools/manifest.js +12 -12
  171. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  172. package/dist/external-tools/opengrep/types.d.ts +1 -1
  173. package/dist/external-tools/python/asset-names.d.ts +76 -0
  174. package/dist/external-tools/python/asset-names.js +104 -0
  175. package/dist/external-tools/python/dlx.d.ts +80 -0
  176. package/dist/external-tools/python/dlx.js +87 -0
  177. package/dist/external-tools/python/from-download.d.ts +53 -0
  178. package/dist/external-tools/python/from-download.js +68 -0
  179. package/dist/external-tools/python/from-path.d.ts +7 -0
  180. package/dist/external-tools/python/from-path.js +23 -0
  181. package/dist/external-tools/python/pin.d.ts +121 -0
  182. package/dist/external-tools/python/pin.js +173 -0
  183. package/dist/external-tools/python/pip-install.d.ts +75 -0
  184. package/dist/external-tools/python/pip-install.js +139 -0
  185. package/dist/external-tools/python/resolve.d.ts +42 -0
  186. package/dist/external-tools/python/resolve.js +58 -0
  187. package/dist/external-tools/python/types.d.ts +49 -0
  188. package/dist/external-tools/sbt/from-vfs.js +1 -1
  189. package/dist/external-tools/sbt/types.d.ts +1 -1
  190. package/dist/external-tools/skillspector/from-path.js +3 -5
  191. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  192. package/dist/external-tools/synp/from-download.js +2 -2
  193. package/dist/external-tools/synp/from-vfs.js +1 -1
  194. package/dist/external-tools/trivy/from-vfs.js +1 -1
  195. package/dist/external-tools/trivy/types.d.ts +1 -1
  196. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  197. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  198. package/dist/fs/_internal.d.ts +1 -1
  199. package/dist/fs/_internal.js +7 -7
  200. package/dist/fs/access.js +5 -9
  201. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  202. package/dist/fs/encoding.js +5 -7
  203. package/dist/fs/{find-up.js → find.js} +11 -13
  204. package/dist/fs/inspect.js +7 -13
  205. package/dist/fs/read-dir.js +7 -10
  206. package/dist/fs/read-file.js +8 -14
  207. package/dist/fs/read-json-cache.d.ts +6 -4
  208. package/dist/fs/read-json-cache.js +9 -6
  209. package/dist/fs/read-json.js +4 -6
  210. package/dist/fs/resolve-module.js +1 -1
  211. package/dist/fs/safe.d.ts +1 -1
  212. package/dist/fs/safe.js +12 -13
  213. package/dist/fs/unique.js +4 -5
  214. package/dist/fs/validate.js +1 -2
  215. package/dist/fs/write-json.js +4 -5
  216. package/dist/git/_internal.js +10 -10
  217. package/dist/git/changed.js +4 -4
  218. package/dist/git/repo.js +3 -3
  219. package/dist/git/staged.js +4 -4
  220. package/dist/git/unstaged.js +4 -4
  221. package/dist/github/ghsa.js +2 -2
  222. package/dist/github/refs-cache.d.ts +1 -1
  223. package/dist/github/refs-cache.js +5 -5
  224. package/dist/github/refs-rest.js +5 -5
  225. package/dist/github/{fetch.js → request.js} +13 -2
  226. package/dist/github/token.js +1 -1
  227. package/dist/github/types.d.ts +1 -1
  228. package/dist/globs/_internal.js +7 -9
  229. package/dist/globs/match.js +4 -6
  230. package/dist/globs/matcher.d.ts +3 -3
  231. package/dist/globs/matcher.js +12 -14
  232. package/dist/globs/stream.js +1 -2
  233. package/dist/globs/types.d.ts +24 -24
  234. package/dist/http-request/_internal.d.ts +1 -1
  235. package/dist/http-request/browser.js +4 -2
  236. package/dist/http-request/checksum-file.d.ts +55 -0
  237. package/dist/http-request/checksum-file.js +95 -0
  238. package/dist/http-request/download-types.d.ts +15 -23
  239. package/dist/http-request/download.js +3 -3
  240. package/dist/http-request/headers.js +0 -1
  241. package/dist/http-request/request-attempt.js +37 -33
  242. package/dist/http-request/request-types.d.ts +2 -2
  243. package/dist/http-request/request.js +1 -1
  244. package/dist/http-request/user-agent.js +3 -4
  245. package/dist/integrity.d.ts +86 -18
  246. package/dist/integrity.js +119 -30
  247. package/dist/ipc/directory.js +2 -2
  248. package/dist/ipc/paths.js +1 -1
  249. package/dist/ipc/write.js +1 -1
  250. package/dist/ipc-cli/get.js +12 -12
  251. package/dist/json/edit.js +13 -14
  252. package/dist/json/format.js +2 -2
  253. package/dist/json/parse.d.ts +1 -1
  254. package/dist/json/parse.js +3 -7
  255. package/dist/logger/_internal.d.ts +4 -4
  256. package/dist/logger/_internal.js +3 -3
  257. package/dist/logger/colors.js +4 -3
  258. package/dist/logger/console-methods.d.ts +132 -0
  259. package/dist/logger/console-methods.js +169 -0
  260. package/dist/logger/console.d.ts +12 -0
  261. package/dist/logger/console.js +42 -11
  262. package/dist/logger/indentation-methods.d.ts +81 -0
  263. package/dist/logger/indentation-methods.js +121 -0
  264. package/dist/logger/node.d.ts +16 -338
  265. package/dist/logger/node.js +75 -608
  266. package/dist/logger/options.d.ts +39 -0
  267. package/dist/logger/options.js +47 -0
  268. package/dist/logger/semantic-methods.d.ts +63 -0
  269. package/dist/logger/semantic-methods.js +108 -0
  270. package/dist/logger/stream-methods.d.ts +63 -0
  271. package/dist/logger/stream-methods.js +101 -0
  272. package/dist/logger/stream.d.ts +37 -0
  273. package/dist/logger/stream.js +42 -0
  274. package/dist/logger/symbols-builder.js +9 -9
  275. package/dist/logger/symbols.d.ts +2 -25
  276. package/dist/logger/symbols.js +53 -74
  277. package/dist/logger/types.d.ts +1 -1
  278. package/dist/memo/types.d.ts +6 -6
  279. package/dist/native-messaging/host.d.ts +20 -0
  280. package/dist/native-messaging/host.js +120 -0
  281. package/dist/native-messaging/index.d.ts +5 -0
  282. package/dist/native-messaging/index.js +22 -0
  283. package/dist/native-messaging/install.d.ts +60 -0
  284. package/dist/native-messaging/install.js +141 -0
  285. package/dist/native-messaging/rate-limit.d.ts +62 -0
  286. package/dist/native-messaging/rate-limit.js +115 -0
  287. package/dist/native-messaging/run.d.ts +10 -0
  288. package/dist/native-messaging/run.js +17 -0
  289. package/dist/node/async-hooks.js +4 -3
  290. package/dist/node/child-process.js +4 -3
  291. package/dist/node/crypto.js +4 -3
  292. package/dist/node/events.js +4 -3
  293. package/dist/node/fs-promises.js +4 -3
  294. package/dist/node/fs.js +4 -3
  295. package/dist/node/http.js +4 -3
  296. package/dist/node/https.js +4 -3
  297. package/dist/node/module.js +10 -6
  298. package/dist/node/os.js +4 -3
  299. package/dist/node/path.js +4 -3
  300. package/dist/node/timers-promises.js +4 -3
  301. package/dist/node/url.js +4 -3
  302. package/dist/node/util.js +4 -3
  303. package/dist/objects/getters.js +5 -7
  304. package/dist/objects/inspect.js +1 -4
  305. package/dist/objects/mutate.js +2 -3
  306. package/dist/objects/predicates.js +0 -4
  307. package/dist/objects/sort.js +3 -7
  308. package/dist/packages/edit-class.js +15 -16
  309. package/dist/packages/edit.js +12 -14
  310. package/dist/packages/exports.js +11 -17
  311. package/dist/packages/fetch.d.ts +16 -0
  312. package/dist/packages/fetch.js +81 -0
  313. package/dist/packages/find.d.ts +55 -0
  314. package/dist/packages/find.js +65 -0
  315. package/dist/packages/isolation.js +14 -14
  316. package/dist/packages/licenses.js +16 -16
  317. package/dist/packages/manifest.js +12 -15
  318. package/dist/packages/metadata-extensions.d.ts +14 -0
  319. package/dist/packages/metadata-extensions.js +43 -0
  320. package/dist/packages/normalize.js +5 -9
  321. package/dist/packages/provenance.js +16 -18
  322. package/dist/packages/read.d.ts +29 -0
  323. package/dist/packages/read.js +66 -0
  324. package/dist/packages/specs.d.ts +48 -1
  325. package/dist/packages/specs.js +74 -11
  326. package/dist/packages/tarball.d.ts +24 -0
  327. package/dist/packages/tarball.js +79 -0
  328. package/dist/packages/types.d.ts +21 -20
  329. package/dist/packages/validation.js +0 -3
  330. package/dist/paths/_internal.d.ts +2 -1
  331. package/dist/paths/_internal.js +7 -19
  332. package/dist/paths/conversion.js +5 -9
  333. package/dist/paths/filenames.d.ts +0 -1
  334. package/dist/paths/filenames.js +0 -2
  335. package/dist/paths/normalize.js +4 -5
  336. package/dist/paths/packages.js +4 -7
  337. package/dist/paths/predicates.js +9 -16
  338. package/dist/paths/resolve.js +11 -14
  339. package/dist/paths/rewire.js +3 -3
  340. package/dist/paths/socket.js +16 -16
  341. package/dist/paths/walk.d.ts +1 -1
  342. package/dist/paths/walk.js +4 -4
  343. package/dist/perf/report.js +2 -2
  344. package/dist/perf/types.d.ts +1 -1
  345. package/dist/pkg-ext/data.js +1 -1
  346. package/dist/primordials/array.js +9 -9
  347. package/dist/primordials/date.js +2 -2
  348. package/dist/primordials/error.js +3 -3
  349. package/dist/primordials/headers.d.ts +10 -0
  350. package/dist/primordials/headers.js +23 -0
  351. package/dist/primordials/intl.d.ts +13 -0
  352. package/dist/primordials/intl.js +26 -0
  353. package/dist/primordials/math.js +33 -33
  354. package/dist/primordials/number.js +9 -9
  355. package/dist/primordials/object.js +5 -5
  356. package/dist/primordials/string.d.ts +2 -2
  357. package/dist/primordials/string.js +6 -6
  358. package/dist/primordials/symbol.js +3 -3
  359. package/dist/primordials/uncurry.js +9 -9
  360. package/dist/process/abort.js +3 -3
  361. package/dist/process/lock-manager.js +8 -8
  362. package/dist/process/spawn/_internal.js +6 -8
  363. package/dist/process/spawn/child.js +14 -14
  364. package/dist/process/spawn/errors.js +2 -4
  365. package/dist/process/spawn/kill-tree.d.ts +53 -0
  366. package/dist/process/spawn/kill-tree.js +85 -0
  367. package/dist/process/spawn/stdio.js +0 -1
  368. package/dist/process/spawn/types.d.ts +5 -5
  369. package/dist/process/transient.js +2 -2
  370. package/dist/promises/_internal.d.ts +2 -1
  371. package/dist/promises/_internal.js +2 -6
  372. package/dist/promises/iterate.js +11 -15
  373. package/dist/promises/options.js +3 -6
  374. package/dist/promises/retry.js +4 -5
  375. package/dist/promises/timers.d.ts +30 -0
  376. package/dist/promises/timers.js +48 -0
  377. package/dist/releases/github-archives.d.ts +6 -6
  378. package/dist/releases/github-archives.js +2 -2
  379. package/dist/releases/github-asset-url.d.ts +1 -1
  380. package/dist/releases/github-asset-url.js +5 -5
  381. package/dist/releases/github-downloads.d.ts +1 -1
  382. package/dist/releases/github-downloads.js +3 -3
  383. package/dist/releases/github-listing.d.ts +11 -2
  384. package/dist/releases/github-listing.js +20 -7
  385. package/dist/releases/github-retry-config.js +1 -1
  386. package/dist/releases/github-types.d.ts +6 -6
  387. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  388. package/dist/releases/socket-btm-binary-naming.js +155 -0
  389. package/dist/releases/socket-btm.d.ts +8 -115
  390. package/dist/releases/socket-btm.js +16 -159
  391. package/dist/schema/types.d.ts +1 -1
  392. package/dist/sea/detect.js +6 -6
  393. package/dist/secrets/_internal.d.ts +2 -2
  394. package/dist/secrets/_internal.js +2 -2
  395. package/dist/secrets/compare.d.ts +45 -0
  396. package/dist/secrets/compare.js +61 -0
  397. package/dist/secrets/keychain.js +6 -4
  398. package/dist/secrets/linux.js +19 -19
  399. package/dist/secrets/macos.d.ts +1 -1
  400. package/dist/secrets/macos.js +13 -13
  401. package/dist/secrets/rc.d.ts +2 -2
  402. package/dist/secrets/rc.js +6 -4
  403. package/dist/secrets/socket-api-token.d.ts +4 -4
  404. package/dist/secrets/socket-api-token.js +18 -9
  405. package/dist/secrets/windows.js +14 -13
  406. package/dist/shadow/skip.js +2 -2
  407. package/dist/smol/detect.js +9 -10
  408. package/dist/smol/http.js +6 -7
  409. package/dist/smol/https.js +6 -7
  410. package/dist/smol/manifest.d.ts +1 -1
  411. package/dist/smol/manifest.js +6 -7
  412. package/dist/smol/path.d.ts +1 -1
  413. package/dist/smol/path.js +7 -8
  414. package/dist/smol/primordial.d.ts +4 -0
  415. package/dist/smol/primordial.js +6 -7
  416. package/dist/smol/purl.d.ts +1 -1
  417. package/dist/smol/purl.js +7 -8
  418. package/dist/smol/versions.js +6 -7
  419. package/dist/smol/vfs.js +6 -7
  420. package/dist/sorts/_internal.js +6 -8
  421. package/dist/sorts/natural.js +10 -12
  422. package/dist/sorts/semver.js +1 -2
  423. package/dist/sorts/strings.js +0 -1
  424. package/dist/sorts/types.d.ts +1 -1
  425. package/dist/spinner/create-spinner-class.d.ts +38 -0
  426. package/dist/spinner/create-spinner-class.js +302 -0
  427. package/dist/spinner/default.js +8 -9
  428. package/dist/spinner/spinner-internals.d.ts +36 -0
  429. package/dist/spinner/spinner-internals.js +101 -0
  430. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  431. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  432. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  433. package/dist/spinner/spinner-status-methods.js +133 -0
  434. package/dist/spinner/spinner.d.ts +4 -5
  435. package/dist/spinner/spinner.js +18 -705
  436. package/dist/spinner/types.d.ts +3 -1
  437. package/dist/spinner/with.d.ts +10 -0
  438. package/dist/spinner/with.js +16 -2
  439. package/dist/stdio/divider.js +1 -1
  440. package/dist/stdio/footer.js +3 -3
  441. package/dist/stdio/header.js +4 -4
  442. package/dist/stdio/progress.js +5 -5
  443. package/dist/stdio/prompts.d.ts +5 -3
  444. package/dist/stdio/prompts.js +6 -7
  445. package/dist/stdio/stdout.js +3 -3
  446. package/dist/streams/parallel.js +3 -5
  447. package/dist/streams/transform.js +2 -3
  448. package/dist/strings/format.js +2 -6
  449. package/dist/strings/predicates.js +0 -2
  450. package/dist/strings/search.js +1 -2
  451. package/dist/strings/transform.js +0 -3
  452. package/dist/strings/width.js +9 -10
  453. package/dist/tables/bordered.js +4 -3
  454. package/dist/tables/padding.js +1 -1
  455. package/dist/tables/simple.js +8 -5
  456. package/dist/temporal/instant.js +1 -1
  457. package/dist/temporal/slots.js +6 -6
  458. package/dist/temporal/system.js +9 -9
  459. package/dist/themes/context.d.ts +3 -2
  460. package/dist/themes/context.js +4 -5
  461. package/dist/themes/themes.js +15 -15
  462. package/dist/themes/types.d.ts +3 -3
  463. package/dist/url/parse.js +0 -2
  464. package/dist/url/predicates.js +1 -2
  465. package/dist/url/search-params.js +3 -9
  466. package/dist/url/types.d.ts +5 -5
  467. package/dist/versions/_internal.js +3 -3
  468. package/dist/words/article.js +0 -1
  469. package/dist/words/capitalize.js +0 -1
  470. package/dist/words/pluralize.js +15 -5
  471. package/package.json +247 -106
  472. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  473. package/dist/external-tools/uv/asset-names.js +0 -70
  474. package/dist/external-tools/uv/from-download.d.ts +0 -17
  475. package/dist/external-tools/uv/from-download.js +0 -47
  476. package/dist/external-tools/uv/from-path.d.ts +0 -5
  477. package/dist/external-tools/uv/from-path.js +0 -22
  478. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  479. package/dist/external-tools/uv/from-vfs.js +0 -26
  480. package/dist/external-tools/uv/resolve.d.ts +0 -25
  481. package/dist/external-tools/uv/resolve.js +0 -53
  482. package/dist/external-tools/uv/types.d.ts +0 -24
  483. package/dist/http-request/checksums.d.ts +0 -69
  484. package/dist/http-request/checksums.js +0 -108
  485. package/dist/http-request/http-request.d.ts +0 -12
  486. package/dist/http-request/http-request.js +0 -11
  487. package/dist/packages/operations.d.ts +0 -113
  488. package/dist/packages/operations.js +0 -304
  489. package/dist/ssri/convert.d.ts +0 -48
  490. package/dist/ssri/convert.js +0 -69
  491. package/dist/ssri/parse.d.ts +0 -27
  492. package/dist/ssri/parse.js +0 -41
  493. package/dist/ssri/validate.d.ts +0 -41
  494. package/dist/ssri/validate.js +0 -56
  495. /package/dist/{bin → cli}/check.d.ts +0 -0
  496. /package/dist/external-tools/{uv → python}/types.js +0 -0
  497. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  498. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  499. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -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 {};
@@ -18,18 +18,8 @@ let node_zlib = require("node:zlib");
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,17 @@ 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
+ 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 };
95
95
  }
96
96
 
97
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;
@@ -18,20 +18,13 @@ let node_zlib = require("node:zlib");
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,19 @@ 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
+ const level = options?.level;
91
+ if (level === void 0) return { __proto__: null };
92
+ return {
93
+ __proto__: null,
94
+ level
95
+ };
96
96
  }
97
97
 
98
98
  //#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.
@@ -14,10 +14,10 @@ node_process = require_runtime.__toESM(node_process);
14
14
  * and feature-detection flags for APIs that vary across Node releases.
15
15
  */
16
16
  const NODE_VERSION = node_process.default.version;
17
- let _nodeDisableSigusr1Flags;
18
- let _nodeHardenFlags;
19
- let _nodeNoWarningsFlags;
20
- let _nodePermissionFlags;
17
+ let nodeDisableSigusr1Flags;
18
+ let nodeHardenFlags;
19
+ let nodeNoWarningsFlags;
20
+ let nodePermissionFlags;
21
21
  /**
22
22
  * Get the absolute path to the currently running Node.js binary.
23
23
  *
@@ -42,11 +42,11 @@ function getMaintainedNodeVersions() {
42
42
  * @returns A non-empty array of CLI flags suitable for passing to `node`.
43
43
  */
44
44
  function getNodeDisableSigusr1Flags() {
45
- if (_nodeDisableSigusr1Flags === void 0)
45
+ if (nodeDisableSigusr1Flags === void 0)
46
46
  /* c8 ignore start - --no-inspect fallback fires only on Node
47
47
  runtimes pre-v22.14 / v23.7 / v24.8; tests run on Node 24+. */
48
- _nodeDisableSigusr1Flags = supportsNodeDisableSigusr1Flag() ? ["--disable-sigusr1"] : ["--no-inspect"];
49
- return _nodeDisableSigusr1Flags;
48
+ nodeDisableSigusr1Flags = supportsNodeDisableSigusr1Flag() ? ["--disable-sigusr1"] : ["--no-inspect"];
49
+ return nodeDisableSigusr1Flags;
50
50
  }
51
51
  /**
52
52
  * Get the hardening flags Socket applies when spawning Node.js subprocesses.
@@ -58,7 +58,7 @@ function getNodeDisableSigusr1Flags() {
58
58
  * @returns A non-empty array of CLI flags suitable for passing to `node`.
59
59
  */
60
60
  function getNodeHardenFlags() {
61
- if (_nodeHardenFlags === void 0) {
61
+ if (nodeHardenFlags === void 0) {
62
62
  const major = getNodeMajorVersion();
63
63
  const flags = ["--disable-proto=delete"];
64
64
  if (major >= 24) {
@@ -69,9 +69,9 @@ function getNodeHardenFlags() {
69
69
  /* c8 ignore start */
70
70
  if (major >= 22) flags.push("--force-node-api-uncaught-exceptions-policy");
71
71
  /* c8 ignore stop */
72
- _nodeHardenFlags = flags;
72
+ nodeHardenFlags = flags;
73
73
  }
74
- return _nodeHardenFlags;
74
+ return nodeHardenFlags;
75
75
  }
76
76
  /**
77
77
  * Get the major component of the current Node.js version.
@@ -99,8 +99,8 @@ function getNodeMinorVersion() {
99
99
  * @returns A non-empty array of CLI flags suitable for passing to `node`.
100
100
  */
101
101
  function getNodeNoWarningsFlags() {
102
- if (_nodeNoWarningsFlags === void 0) _nodeNoWarningsFlags = ["--no-warnings", "--no-deprecation"];
103
- return _nodeNoWarningsFlags;
102
+ if (nodeNoWarningsFlags === void 0) nodeNoWarningsFlags = ["--no-warnings", "--no-deprecation"];
103
+ return nodeNoWarningsFlags;
104
104
  }
105
105
  /**
106
106
  * Get the patch component of the current Node.js version.
@@ -121,13 +121,13 @@ function getNodePatchVersion() {
121
121
  * @returns The permission flag list (possibly empty) for the current runtime.
122
122
  */
123
123
  function getNodePermissionFlags() {
124
- if (_nodePermissionFlags === void 0) if (getNodeMajorVersion() >= 24) _nodePermissionFlags = [
124
+ if (nodePermissionFlags === void 0) if (getNodeMajorVersion() >= 24) nodePermissionFlags = [
125
125
  "--allow-fs-read=*",
126
126
  "--allow-fs-write=*",
127
127
  "--allow-child-process"
128
128
  ];
129
- else _nodePermissionFlags = [];
130
- return _nodePermissionFlags;
129
+ else nodePermissionFlags = [];
130
+ return nodePermissionFlags;
131
131
  }
132
132
  /**
133
133
  * Get the full Node.js version string from `process.version`.
@@ -219,6 +219,36 @@ function supportsNodeRun() {
219
219
  /* c8 ignore stop */
220
220
  }
221
221
  /**
222
+ * Check whether the current runtime can execute TypeScript source directly
223
+ * (`.ts` files via `node foo.ts`), with or without a flag. Type-stripping went
224
+ * stable in Node.js 22.6 (under `--strip-types`, also accepted as the
225
+ * deprecated alias `--experimental-strip-types`) and default-on in Node 24.
226
+ *
227
+ * Pair with {@link supportsNodeStripTypesDefault} to decide whether a flag needs
228
+ * to be passed.
229
+ *
230
+ * @returns `true` when the runtime can run TypeScript (Node 22.6+).
231
+ */
232
+ function supportsNodeStripTypes() {
233
+ const major = getNodeMajorVersion();
234
+ /* c8 ignore start - 22-specific arm; tests run on a single Node major. */
235
+ return major >= 23 || major === 22 && getNodeMinorVersion() >= 6;
236
+ /* c8 ignore stop */
237
+ }
238
+ /**
239
+ * Check whether the current runtime strips TypeScript types **by default** (no
240
+ * flag needed). Became default-on in Node.js 24.
241
+ *
242
+ * Use case: deciding whether a wrapper script needs to pass `--strip-types`
243
+ * when invoking `node foo.ts`. On Node 24+ the flag is redundant; on 22.6 –
244
+ * 23.x it's required.
245
+ *
246
+ * @returns `true` when no `--strip-types` flag is needed (Node 24+).
247
+ */
248
+ function supportsNodeStripTypesDefault() {
249
+ return getNodeMajorVersion() >= 24;
250
+ }
251
+ /**
222
252
  * Check whether this process was spawned with an IPC channel. When `true`,
223
253
  * `process.send()` is callable to message the parent process.
224
254
  *
@@ -250,4 +280,6 @@ exports.supportsNodeDisableWarningFlag = supportsNodeDisableWarningFlag;
250
280
  exports.supportsNodePermissionFlag = supportsNodePermissionFlag;
251
281
  exports.supportsNodeRequireModule = supportsNodeRequireModule;
252
282
  exports.supportsNodeRun = supportsNodeRun;
283
+ exports.supportsNodeStripTypes = supportsNodeStripTypes;
284
+ exports.supportsNodeStripTypesDefault = supportsNodeStripTypesDefault;
253
285
  exports.supportsProcessSend = supportsProcessSend;