@socketsecurity/lib 5.28.0 → 6.0.0

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 (1042) hide show
  1. package/CHANGELOG.md +64 -37
  2. package/README.md +1 -1
  3. package/dist/abort/signal.d.ts +28 -0
  4. package/dist/{abort.js → abort/signal.js} +12 -10
  5. package/dist/ai/discover.d.mts +50 -0
  6. package/dist/ai/discover.js +128 -0
  7. package/dist/ai/profiles.d.mts +39 -0
  8. package/dist/ai/profiles.js +61 -0
  9. package/dist/ai/spawn.d.mts +49 -0
  10. package/dist/ai/spawn.js +207 -0
  11. package/dist/ai/types.d.mts +117 -0
  12. package/dist/ai/types.js +18 -0
  13. package/dist/ai/worktree.d.mts +104 -0
  14. package/dist/ai/worktree.js +200 -0
  15. package/dist/ansi/constants.d.ts +10 -0
  16. package/dist/ansi/constants.js +45 -0
  17. package/dist/ansi/strip.d.ts +33 -0
  18. package/dist/{ansi.js → ansi/strip.js} +7 -24
  19. package/dist/archives/_internal.d.ts +39 -0
  20. package/dist/archives/_internal.js +87 -0
  21. package/dist/archives/detect.d.ts +19 -0
  22. package/dist/archives/detect.js +46 -0
  23. package/dist/archives/extract.d.ts +22 -0
  24. package/dist/archives/extract.js +53 -0
  25. package/dist/archives/tar.d.ts +42 -0
  26. package/dist/archives/tar.js +233 -0
  27. package/dist/archives/types.d.ts +34 -0
  28. package/dist/archives/types.js +18 -0
  29. package/dist/archives/zip.d.ts +20 -0
  30. package/dist/archives/zip.js +124 -0
  31. package/dist/argv/flag-predicates.d.ts +179 -0
  32. package/dist/argv/flag-predicates.js +118 -0
  33. package/dist/argv/flag-types.d.ts +123 -0
  34. package/dist/argv/flag-types.js +116 -0
  35. package/dist/argv/parse.d.ts +34 -33
  36. package/dist/argv/parse.js +6 -4
  37. package/dist/arrays/_internal.d.ts +43 -0
  38. package/dist/{arrays.js → arrays/_internal.js} +8 -41
  39. package/dist/arrays/chunk.d.ts +37 -0
  40. package/dist/arrays/chunk.js +43 -0
  41. package/dist/arrays/join.d.ts +76 -0
  42. package/dist/{env/helpers.js → arrays/join.js} +12 -18
  43. package/dist/arrays/predicates.d.ts +40 -0
  44. package/dist/arrays/predicates.js +30 -0
  45. package/dist/arrays/unique.d.ts +36 -0
  46. package/dist/arrays/unique.js +34 -0
  47. package/dist/bin/_internal.d.ts +22 -0
  48. package/dist/bin/_internal.js +43 -0
  49. package/dist/bin/check-primordials.d.ts +41 -15
  50. package/dist/bin/check-primordials.js +36 -20
  51. package/dist/bin/check.d.ts +7 -12
  52. package/dist/bin/check.js +5 -1
  53. package/dist/bin/exec.d.ts +37 -0
  54. package/dist/bin/exec.js +79 -0
  55. package/dist/bin/find.d.ts +58 -0
  56. package/dist/bin/find.js +143 -0
  57. package/dist/bin/resolve.d.ts +30 -0
  58. package/dist/bin/resolve.js +249 -0
  59. package/dist/bin/shadow.d.ts +16 -0
  60. package/dist/bin/shadow.js +36 -0
  61. package/dist/bin/socket-lib.d.ts +10 -14
  62. package/dist/bin/socket-lib.js +18 -3
  63. package/dist/bin/types.d.ts +34 -0
  64. package/dist/bin/types.js +18 -0
  65. package/dist/bin/which.d.ts +111 -0
  66. package/dist/bin/which.js +155 -0
  67. package/dist/cacache/_internal.d.ts +15 -0
  68. package/dist/cacache/_internal.js +43 -0
  69. package/dist/cacache/clear.d.ts +43 -0
  70. package/dist/cacache/clear.js +77 -0
  71. package/dist/cacache/read.d.ts +31 -0
  72. package/dist/cacache/read.js +51 -0
  73. package/dist/cacache/tmp.d.ts +18 -0
  74. package/dist/cacache/tmp.js +39 -0
  75. package/dist/cacache/types.d.ts +37 -0
  76. package/dist/cacache/types.js +18 -0
  77. package/dist/cacache/write.d.ts +31 -0
  78. package/dist/cacache/write.js +53 -0
  79. package/dist/checks/primordials.d.ts +69 -61
  80. package/dist/checks/primordials.js +141 -92
  81. package/dist/colors/convert.d.ts +35 -0
  82. package/dist/colors/convert.js +42 -0
  83. package/dist/colors/palette.d.ts +7 -0
  84. package/dist/{colors.js → colors/palette.js} +5 -17
  85. package/dist/colors/types.d.ts +29 -0
  86. package/dist/colors/types.js +18 -0
  87. package/dist/compression/_internal.d.ts +33 -0
  88. package/dist/compression/_internal.js +77 -0
  89. package/dist/compression/brotli.d.ts +82 -0
  90. package/dist/{compression.js → compression/brotli.js} +17 -145
  91. package/dist/compression/gzip.d.ts +70 -0
  92. package/dist/compression/gzip.js +142 -0
  93. package/dist/compression/types.d.ts +37 -0
  94. package/dist/compression/types.js +18 -0
  95. package/dist/constants/agents.d.ts +4 -3
  96. package/dist/constants/agents.js +7 -4
  97. package/dist/constants/encoding.d.ts +3 -3
  98. package/dist/constants/github.d.ts +2 -3
  99. package/dist/constants/licenses.d.ts +5 -5
  100. package/dist/constants/licenses.js +2 -2
  101. package/dist/constants/lifecycle-script-names.d.ts +3 -4
  102. package/dist/constants/lifecycle-script-names.js +2 -2
  103. package/dist/constants/maintained-node-versions.d.ts +1 -1
  104. package/dist/constants/maintained-node-versions.js +3 -4
  105. package/dist/constants/node.d.ts +21 -20
  106. package/dist/constants/node.js +4 -4
  107. package/dist/constants/package-default-node-range.d.ts +1 -1
  108. package/dist/constants/package-default-socket-categories.d.ts +1 -1
  109. package/dist/constants/package-default-socket-categories.js +2 -2
  110. package/dist/constants/packages.d.ts +4 -4
  111. package/dist/constants/packages.js +7 -5
  112. package/dist/constants/platform.d.ts +3 -1
  113. package/dist/constants/platform.js +3 -10
  114. package/dist/constants/{core.d.ts → sentinels.d.ts} +4 -4
  115. package/dist/constants/{core.js → sentinels.js} +3 -3
  116. package/dist/constants/socket.d.ts +4 -6
  117. package/dist/constants/socket.js +6 -9
  118. package/dist/constants/testing.d.ts +3 -3
  119. package/dist/constants/time.d.ts +3 -3
  120. package/dist/constants/typescript.d.ts +3 -3
  121. package/dist/cover/code.d.ts +11 -3
  122. package/dist/cover/code.js +26 -36
  123. package/dist/cover/formatters.d.ts +19 -15
  124. package/dist/cover/formatters.js +21 -18
  125. package/dist/cover/type.d.ts +4 -3
  126. package/dist/cover/type.js +9 -8
  127. package/dist/cover/types.d.ts +1 -1
  128. package/dist/crypto/hash.d.ts +36 -0
  129. package/dist/{crypto.js → crypto/hash.js} +17 -17
  130. package/dist/debug/_internal.d.ts +25 -0
  131. package/dist/debug/_internal.js +77 -0
  132. package/dist/debug/caller-info.d.ts +12 -0
  133. package/dist/debug/caller-info.js +67 -0
  134. package/dist/debug/namespace.d.ts +35 -0
  135. package/dist/debug/namespace.js +101 -0
  136. package/dist/{debug.d.ts → debug/output.d.ts} +23 -42
  137. package/dist/debug/output.js +209 -0
  138. package/dist/debug/types.d.ts +21 -0
  139. package/dist/debug/types.js +18 -0
  140. package/dist/dlx/_internal.d.ts +10 -0
  141. package/dist/dlx/_internal.js +47 -0
  142. package/dist/dlx/arborist.d.ts +86 -61
  143. package/dist/dlx/arborist.js +30 -35
  144. package/dist/dlx/binary-cache.d.ts +108 -0
  145. package/dist/dlx/binary-cache.js +212 -0
  146. package/dist/dlx/binary-download.d.ts +67 -0
  147. package/dist/dlx/binary-download.js +216 -0
  148. package/dist/dlx/binary-resolution.d.ts +61 -0
  149. package/dist/dlx/binary-resolution.js +164 -0
  150. package/dist/dlx/binary-types.d.ts +144 -0
  151. package/dist/dlx/binary-types.js +18 -0
  152. package/dist/dlx/binary.d.ts +39 -268
  153. package/dist/dlx/binary.js +38 -319
  154. package/dist/dlx/cache.d.ts +21 -16
  155. package/dist/dlx/cache.js +2 -2
  156. package/dist/dlx/detect.d.ts +94 -68
  157. package/dist/dlx/detect.js +32 -35
  158. package/dist/dlx/dir.d.ts +20 -18
  159. package/dist/dlx/dir.js +7 -14
  160. package/dist/dlx/firewall.d.ts +27 -0
  161. package/dist/dlx/firewall.js +107 -0
  162. package/dist/dlx/lockfile.d.ts +73 -56
  163. package/dist/dlx/lockfile.js +36 -44
  164. package/dist/dlx/manifest.d.ts +50 -51
  165. package/dist/dlx/manifest.js +51 -52
  166. package/dist/dlx/package.d.ts +83 -279
  167. package/dist/dlx/package.js +44 -266
  168. package/dist/dlx/packages.d.ts +22 -20
  169. package/dist/dlx/packages.js +15 -20
  170. package/dist/dlx/paths.d.ts +26 -23
  171. package/dist/dlx/paths.js +8 -15
  172. package/dist/dlx/spec.d.ts +25 -0
  173. package/dist/dlx/spec.js +63 -0
  174. package/dist/dlx/types.d.ts +142 -0
  175. package/dist/dlx/types.js +18 -0
  176. package/dist/eco/cargo/lockfile-format.d.ts +8 -0
  177. package/dist/eco/cargo/lockfile-format.js +39 -0
  178. package/dist/eco/cargo/manifest-format.d.ts +7 -0
  179. package/dist/eco/cargo/manifest-format.js +38 -0
  180. package/dist/eco/cargo/parse-lockfile.d.ts +84 -0
  181. package/dist/eco/cargo/parse-lockfile.js +257 -0
  182. package/dist/eco/manifest/analyze-lockfile.d.ts +10 -0
  183. package/dist/eco/manifest/analyze-lockfile.js +67 -0
  184. package/dist/eco/manifest/detect-format.d.ts +15 -0
  185. package/dist/eco/manifest/detect-format.js +98 -0
  186. package/dist/eco/manifest/find-packages.d.ts +14 -0
  187. package/dist/eco/manifest/find-packages.js +69 -0
  188. package/dist/eco/manifest/get-package-versions.d.ts +8 -0
  189. package/dist/eco/manifest/get-package-versions.js +52 -0
  190. package/dist/eco/manifest/get-package.d.ts +10 -0
  191. package/dist/eco/manifest/get-package.js +44 -0
  192. package/dist/eco/manifest/manifest-error.d.ts +18 -0
  193. package/dist/eco/manifest/manifest-error.js +37 -0
  194. package/dist/eco/manifest/parse-lockfile.d.ts +16 -0
  195. package/dist/eco/manifest/parse-lockfile.js +91 -0
  196. package/dist/eco/manifest/parse-manifest.d.ts +12 -0
  197. package/dist/eco/manifest/parse-manifest.js +48 -0
  198. package/dist/eco/manifest/parse.d.ts +9 -0
  199. package/dist/eco/manifest/parse.js +52 -0
  200. package/dist/eco/manifest/types.d.ts +10 -0
  201. package/dist/eco/manifest/types.js +18 -0
  202. package/dist/eco/npm/bun/exec.d.ts +15 -0
  203. package/dist/eco/npm/bun/exec.js +35 -0
  204. package/dist/eco/npm/manifest-format.d.ts +11 -0
  205. package/dist/eco/npm/manifest-format.js +38 -0
  206. package/dist/eco/npm/npm/exec.d.ts +24 -0
  207. package/dist/eco/npm/npm/exec.js +64 -0
  208. package/dist/eco/npm/npm/extract-package-name-from-path.d.ts +9 -0
  209. package/dist/eco/npm/npm/extract-package-name-from-path.js +54 -0
  210. package/dist/eco/npm/npm/flags.d.ts +62 -0
  211. package/dist/eco/npm/npm/flags.js +63 -0
  212. package/dist/eco/npm/npm/lockfile-format.d.ts +9 -0
  213. package/dist/eco/npm/npm/lockfile-format.js +42 -0
  214. package/dist/eco/npm/npm/parse-git-url.d.ts +13 -0
  215. package/dist/eco/npm/npm/parse-git-url.js +43 -0
  216. package/dist/eco/npm/npm/parse-lockfile.d.ts +70 -0
  217. package/dist/eco/npm/npm/parse-lockfile.js +224 -0
  218. package/dist/eco/npm/parse-package-json.d.ts +16 -0
  219. package/dist/eco/npm/parse-package-json.js +115 -0
  220. package/dist/eco/npm/pnpm/detect-pnpm-version.d.ts +7 -0
  221. package/dist/eco/npm/pnpm/detect-pnpm-version.js +47 -0
  222. package/dist/eco/npm/pnpm/exec.d.ts +26 -0
  223. package/dist/eco/npm/pnpm/exec.js +65 -0
  224. package/dist/eco/npm/pnpm/flags.d.ts +44 -0
  225. package/dist/eco/npm/pnpm/flags.js +76 -0
  226. package/dist/eco/npm/pnpm/lockfile-format.d.ts +8 -0
  227. package/dist/eco/npm/pnpm/lockfile-format.js +39 -0
  228. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +69 -0
  229. package/dist/eco/npm/pnpm/parse-lockfile.js +274 -0
  230. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.d.ts +15 -0
  231. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +50 -0
  232. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.d.ts +11 -0
  233. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +52 -0
  234. package/dist/eco/npm/script.d.ts +35 -0
  235. package/dist/eco/npm/script.js +93 -0
  236. package/dist/eco/npm/vlt/exec.d.ts +16 -0
  237. package/dist/eco/npm/vlt/exec.js +35 -0
  238. package/dist/eco/npm/yarnpkg/yarn/exec.d.ts +28 -0
  239. package/dist/eco/npm/yarnpkg/yarn/exec.js +63 -0
  240. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.d.ts +9 -0
  241. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +39 -0
  242. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +61 -0
  243. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +261 -0
  244. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.d.ts +16 -0
  245. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +68 -0
  246. package/dist/{types.d.ts → eco/purl.d.ts} +14 -26
  247. package/dist/{types.js → eco/purl.js} +3 -3
  248. package/dist/eco/types.d.ts +51 -0
  249. package/dist/eco/types.js +18 -0
  250. package/dist/effects/pulse-frames.d.ts +16 -17
  251. package/dist/effects/pulse-frames.js +4 -4
  252. package/dist/effects/shimmer-keyframes.d.ts +39 -37
  253. package/dist/effects/shimmer-terminal.d.ts +43 -42
  254. package/dist/effects/shimmer-terminal.js +3 -3
  255. package/dist/effects/shimmer.d.ts +172 -153
  256. package/dist/effects/shimmer.js +78 -76
  257. package/dist/env/boolean.d.ts +33 -0
  258. package/dist/env/boolean.js +46 -0
  259. package/dist/env/case-insensitive.d.ts +42 -0
  260. package/dist/env/case-insensitive.js +42 -0
  261. package/dist/env/ci.d.ts +11 -12
  262. package/dist/env/debug.d.ts +10 -10
  263. package/dist/env/github.d.ts +71 -74
  264. package/dist/env/home.d.ts +15 -14
  265. package/dist/env/locale.d.ts +26 -29
  266. package/dist/env/node-auth-token.d.ts +10 -10
  267. package/dist/env/node-env.d.ts +10 -10
  268. package/dist/env/npm.d.ts +45 -47
  269. package/dist/env/number.d.ts +29 -0
  270. package/dist/env/number.js +54 -0
  271. package/dist/env/package-manager.d.ts +36 -33
  272. package/dist/env/package-manager.js +3 -3
  273. package/dist/env/path.d.ts +10 -10
  274. package/dist/env/pre-commit.d.ts +11 -11
  275. package/dist/env/pre-commit.js +2 -2
  276. package/dist/env/proxy.d.ts +44 -0
  277. package/dist/env/proxy.js +126 -0
  278. package/dist/env/rewire.d.ts +105 -99
  279. package/dist/env/rewire.js +11 -8
  280. package/dist/env/shell.d.ts +10 -10
  281. package/dist/env/socket-cli.d.ts +109 -125
  282. package/dist/env/socket-cli.js +7 -12
  283. package/dist/env/socket.d.ts +347 -130
  284. package/dist/env/socket.js +107 -8
  285. package/dist/env/string.d.ts +28 -0
  286. package/dist/env/string.js +47 -0
  287. package/dist/env/temp-dir.d.ts +26 -29
  288. package/dist/env/term.d.ts +10 -10
  289. package/dist/env/test.d.ts +29 -31
  290. package/dist/env/test.js +5 -4
  291. package/dist/env/types.d.ts +62 -0
  292. package/dist/env/types.js +18 -0
  293. package/dist/env/windows.d.ts +37 -38
  294. package/dist/env/xdg.d.ts +29 -29
  295. package/dist/errors/message.d.ts +27 -0
  296. package/dist/errors/message.js +49 -0
  297. package/dist/errors/predicates.d.ts +46 -0
  298. package/dist/{errors.js → errors/predicates.js} +13 -43
  299. package/dist/errors/stack.d.ts +16 -0
  300. package/dist/errors/stack.js +39 -0
  301. package/dist/external/@npmcli/package-json/lib/read-package.js +11 -1
  302. package/dist/external/@npmcli/package-json.js +300 -82
  303. package/dist/external/@npmcli/promise-spawn.js +15 -1
  304. package/dist/external/@socketregistry/packageurl-js.js +7 -1
  305. package/dist/external/@socketregistry/yocto-spinner.js +5 -1
  306. package/dist/external/@yarnpkg/extensions.js +1 -1
  307. package/dist/external/adm-zip.js +20 -4
  308. package/dist/external/debug.js +15 -1
  309. package/dist/external/external-pack.js +20 -4
  310. package/dist/external/fast-sort.js +3 -1
  311. package/dist/external/get-east-asian-width.js +3 -1
  312. package/dist/external/libnpmexec.js +5 -1
  313. package/dist/external/npm-pack.js +344 -113
  314. package/dist/external/p-map.js +7 -1
  315. package/dist/external/pico-pack.js +17 -1
  316. package/dist/external/pony-cause.js +1 -1
  317. package/dist/external/spdx-pack.js +3 -1
  318. package/dist/external/supports-color.js +1 -1
  319. package/dist/external/tar-fs.js +15 -1
  320. package/dist/external/which.js +11 -1
  321. package/dist/external/yargs-parser.js +15 -1
  322. package/dist/external-tools/bazel/asset-names.d.ts +66 -0
  323. package/dist/external-tools/bazel/asset-names.js +96 -0
  324. package/dist/external-tools/bazel/from-download.d.ts +49 -0
  325. package/dist/external-tools/bazel/from-download.js +49 -0
  326. package/dist/external-tools/bazel/from-path.d.ts +8 -0
  327. package/dist/external-tools/bazel/from-path.js +41 -0
  328. package/dist/external-tools/bazel/read-bazel-version-file.d.ts +12 -0
  329. package/dist/external-tools/bazel/read-bazel-version-file.js +61 -0
  330. package/dist/external-tools/bazel/resolve-asset-url.d.ts +14 -0
  331. package/dist/external-tools/bazel/resolve-asset-url.js +42 -0
  332. package/dist/external-tools/bazel/resolve-bazel-version.d.ts +19 -0
  333. package/dist/external-tools/bazel/resolve-bazel-version.js +59 -0
  334. package/dist/external-tools/bazel/resolve.d.ts +35 -0
  335. package/dist/external-tools/bazel/resolve.js +68 -0
  336. package/dist/external-tools/bazel/types.d.ts +22 -0
  337. package/dist/external-tools/bazel/types.js +18 -0
  338. package/dist/external-tools/cdxgen/asset-names.d.ts +58 -0
  339. package/dist/external-tools/cdxgen/asset-names.js +79 -0
  340. package/dist/external-tools/cdxgen/from-download.d.ts +43 -0
  341. package/dist/external-tools/cdxgen/from-download.js +83 -0
  342. package/dist/external-tools/cdxgen/from-path.d.ts +5 -0
  343. package/dist/external-tools/cdxgen/from-path.js +40 -0
  344. package/dist/external-tools/cdxgen/from-vfs.d.ts +7 -0
  345. package/dist/external-tools/cdxgen/from-vfs.js +47 -0
  346. package/dist/external-tools/cdxgen/resolve.d.ts +32 -0
  347. package/dist/external-tools/cdxgen/resolve.js +73 -0
  348. package/dist/external-tools/cdxgen/types.d.ts +33 -0
  349. package/dist/external-tools/cdxgen/types.js +18 -0
  350. package/dist/external-tools/from-download.d.ts +162 -0
  351. package/dist/external-tools/from-download.js +72 -0
  352. package/dist/external-tools/janus/asset-names.d.ts +36 -0
  353. package/dist/external-tools/janus/asset-names.js +52 -0
  354. package/dist/external-tools/janus/from-download.d.ts +26 -0
  355. package/dist/external-tools/janus/from-download.js +65 -0
  356. package/dist/external-tools/janus/from-path.d.ts +5 -0
  357. package/dist/external-tools/janus/from-path.js +40 -0
  358. package/dist/external-tools/janus/from-vfs.d.ts +7 -0
  359. package/dist/external-tools/janus/from-vfs.js +47 -0
  360. package/dist/external-tools/janus/resolve.d.ts +28 -0
  361. package/dist/external-tools/janus/resolve.js +73 -0
  362. package/dist/external-tools/janus/types.d.ts +24 -0
  363. package/dist/external-tools/janus/types.js +18 -0
  364. package/dist/external-tools/jre/asset-names.d.ts +91 -0
  365. package/dist/external-tools/jre/asset-names.js +88 -0
  366. package/dist/external-tools/jre/detect-platform-arch.d.ts +8 -0
  367. package/dist/external-tools/jre/detect-platform-arch.js +52 -0
  368. package/dist/external-tools/jre/from-download.d.ts +62 -0
  369. package/dist/external-tools/jre/from-download.js +70 -0
  370. package/dist/external-tools/jre/from-java-home.d.ts +10 -0
  371. package/dist/external-tools/jre/from-java-home.js +57 -0
  372. package/dist/external-tools/jre/from-path.d.ts +9 -0
  373. package/dist/external-tools/jre/from-path.js +52 -0
  374. package/dist/external-tools/jre/from-vfs.d.ts +17 -0
  375. package/dist/external-tools/jre/from-vfs.js +64 -0
  376. package/dist/external-tools/jre/resolve.d.ts +40 -0
  377. package/dist/external-tools/jre/resolve.js +78 -0
  378. package/dist/external-tools/jre/types.d.ts +28 -0
  379. package/dist/external-tools/jre/types.js +18 -0
  380. package/dist/external-tools/manifest.d.ts +105 -0
  381. package/dist/external-tools/manifest.js +167 -0
  382. package/dist/external-tools/opengrep/asset-names.d.ts +44 -0
  383. package/dist/external-tools/opengrep/asset-names.js +78 -0
  384. package/dist/external-tools/opengrep/from-download.d.ts +17 -0
  385. package/dist/external-tools/opengrep/from-download.js +83 -0
  386. package/dist/external-tools/opengrep/from-path.d.ts +5 -0
  387. package/dist/external-tools/opengrep/from-path.js +40 -0
  388. package/dist/external-tools/opengrep/from-vfs.d.ts +8 -0
  389. package/dist/external-tools/opengrep/from-vfs.js +47 -0
  390. package/dist/external-tools/opengrep/resolve.d.ts +26 -0
  391. package/dist/external-tools/opengrep/resolve.js +73 -0
  392. package/dist/external-tools/opengrep/types.d.ts +24 -0
  393. package/dist/external-tools/opengrep/types.js +18 -0
  394. package/dist/external-tools/sbt/asset-names.d.ts +31 -0
  395. package/dist/external-tools/sbt/asset-names.js +33 -0
  396. package/dist/external-tools/sbt/from-download.d.ts +44 -0
  397. package/dist/external-tools/sbt/from-download.js +64 -0
  398. package/dist/external-tools/sbt/from-path.d.ts +8 -0
  399. package/dist/external-tools/sbt/from-path.js +41 -0
  400. package/dist/external-tools/sbt/from-vfs.d.ts +14 -0
  401. package/dist/external-tools/sbt/from-vfs.js +48 -0
  402. package/dist/external-tools/sbt/resolve.d.ts +31 -0
  403. package/dist/external-tools/sbt/resolve.js +73 -0
  404. package/dist/external-tools/sbt/types.d.ts +32 -0
  405. package/dist/external-tools/sbt/types.js +18 -0
  406. package/dist/external-tools/synp/asset-names.d.ts +14 -0
  407. package/dist/external-tools/synp/asset-names.js +32 -0
  408. package/dist/external-tools/synp/from-download.d.ts +18 -0
  409. package/dist/external-tools/synp/from-download.js +44 -0
  410. package/dist/external-tools/synp/from-path.d.ts +5 -0
  411. package/dist/external-tools/synp/from-path.js +40 -0
  412. package/dist/external-tools/synp/from-vfs.d.ts +7 -0
  413. package/dist/external-tools/synp/from-vfs.js +47 -0
  414. package/dist/external-tools/synp/resolve.d.ts +21 -0
  415. package/dist/external-tools/synp/resolve.js +72 -0
  416. package/dist/external-tools/synp/types.d.ts +19 -0
  417. package/dist/external-tools/synp/types.js +18 -0
  418. package/dist/external-tools/trivy/asset-names.d.ts +34 -0
  419. package/dist/external-tools/trivy/asset-names.js +68 -0
  420. package/dist/external-tools/trivy/from-download.d.ts +17 -0
  421. package/dist/external-tools/trivy/from-download.js +67 -0
  422. package/dist/external-tools/trivy/from-path.d.ts +5 -0
  423. package/dist/external-tools/trivy/from-path.js +40 -0
  424. package/dist/external-tools/trivy/from-vfs.d.ts +7 -0
  425. package/dist/external-tools/trivy/from-vfs.js +47 -0
  426. package/dist/external-tools/trivy/resolve.d.ts +26 -0
  427. package/dist/external-tools/trivy/resolve.js +73 -0
  428. package/dist/external-tools/trivy/types.d.ts +24 -0
  429. package/dist/external-tools/trivy/types.js +18 -0
  430. package/dist/external-tools/trufflehog/asset-names.d.ts +34 -0
  431. package/dist/external-tools/trufflehog/asset-names.js +72 -0
  432. package/dist/external-tools/trufflehog/from-download.d.ts +37 -0
  433. package/dist/external-tools/trufflehog/from-download.js +65 -0
  434. package/dist/external-tools/trufflehog/from-path.d.ts +7 -0
  435. package/dist/external-tools/trufflehog/from-path.js +40 -0
  436. package/dist/external-tools/trufflehog/from-vfs.d.ts +11 -0
  437. package/dist/external-tools/trufflehog/from-vfs.js +47 -0
  438. package/dist/external-tools/trufflehog/resolve.d.ts +30 -0
  439. package/dist/external-tools/trufflehog/resolve.js +73 -0
  440. package/dist/external-tools/trufflehog/types.d.ts +25 -0
  441. package/dist/external-tools/trufflehog/types.js +18 -0
  442. package/dist/external-tools/uv/asset-names.d.ts +36 -0
  443. package/dist/external-tools/uv/asset-names.js +80 -0
  444. package/dist/external-tools/uv/from-download.d.ts +17 -0
  445. package/dist/external-tools/uv/from-download.js +68 -0
  446. package/dist/external-tools/uv/from-path.d.ts +5 -0
  447. package/dist/external-tools/uv/from-path.js +40 -0
  448. package/dist/external-tools/uv/from-vfs.d.ts +7 -0
  449. package/dist/external-tools/uv/from-vfs.js +47 -0
  450. package/dist/external-tools/uv/resolve.d.ts +25 -0
  451. package/dist/external-tools/uv/resolve.js +73 -0
  452. package/dist/external-tools/uv/types.d.ts +24 -0
  453. package/dist/external-tools/uv/types.js +18 -0
  454. package/dist/fs/_internal.d.ts +22 -0
  455. package/dist/fs/_internal.js +48 -0
  456. package/dist/fs/encoding.d.ts +49 -0
  457. package/dist/fs/encoding.js +102 -0
  458. package/dist/fs/find-up.d.ts +58 -0
  459. package/dist/fs/find-up.js +152 -0
  460. package/dist/fs/inspect.d.ts +117 -0
  461. package/dist/fs/inspect.js +112 -0
  462. package/dist/fs/path-cache.d.ts +21 -0
  463. package/dist/fs/path-cache.js +35 -0
  464. package/dist/fs/read-dir.d.ts +66 -0
  465. package/dist/fs/read-dir.js +86 -0
  466. package/dist/fs/read-file.d.ts +150 -0
  467. package/dist/fs/read-file.js +131 -0
  468. package/dist/fs/read-json.d.ts +72 -0
  469. package/dist/fs/read-json.js +120 -0
  470. package/dist/fs/safe.d.ts +153 -0
  471. package/dist/fs/safe.js +182 -0
  472. package/dist/fs/types.d.ts +277 -0
  473. package/dist/fs/types.js +18 -0
  474. package/dist/fs/unique.d.ts +29 -0
  475. package/dist/fs/unique.js +51 -0
  476. package/dist/fs/validate.d.ts +40 -0
  477. package/dist/fs/validate.js +46 -0
  478. package/dist/fs/write-json.d.ts +78 -0
  479. package/dist/fs/write-json.js +83 -0
  480. package/dist/git/_internal.d.ts +105 -0
  481. package/dist/git/_internal.js +236 -0
  482. package/dist/git/changed.d.ts +145 -0
  483. package/dist/git/changed.js +83 -0
  484. package/dist/git/repo.d.ts +62 -0
  485. package/dist/git/repo.js +111 -0
  486. package/dist/git/staged.d.ts +138 -0
  487. package/dist/git/staged.js +71 -0
  488. package/dist/git/types.d.ts +109 -0
  489. package/dist/git/types.js +18 -0
  490. package/dist/git/unstaged.d.ts +141 -0
  491. package/dist/git/unstaged.js +71 -0
  492. package/dist/github/constants.d.ts +18 -0
  493. package/dist/github/constants.js +36 -0
  494. package/dist/github/errors.d.ts +36 -0
  495. package/dist/github/errors.js +40 -0
  496. package/dist/github/fetch.d.ts +89 -0
  497. package/dist/github/fetch.js +87 -0
  498. package/dist/github/ghsa.d.ts +118 -0
  499. package/dist/github/ghsa.js +178 -0
  500. package/dist/github/refs-cache.d.ts +40 -0
  501. package/dist/github/refs-cache.js +49 -0
  502. package/dist/github/refs-graphql.d.ts +42 -0
  503. package/dist/github/refs-graphql.js +109 -0
  504. package/dist/github/refs-rest.d.ts +23 -0
  505. package/dist/github/refs-rest.js +104 -0
  506. package/dist/github/refs.d.ts +84 -0
  507. package/dist/github/refs.js +67 -0
  508. package/dist/github/token.d.ts +77 -0
  509. package/dist/github/token.js +55 -0
  510. package/dist/github/types.d.ts +277 -0
  511. package/dist/github/types.js +18 -0
  512. package/dist/globs/_internal.d.ts +46 -0
  513. package/dist/globs/_internal.js +96 -0
  514. package/dist/globs/defaults.d.ts +7 -0
  515. package/dist/globs/defaults.js +61 -0
  516. package/dist/globs/glob.d.ts +59 -0
  517. package/dist/globs/glob.js +84 -0
  518. package/dist/globs/matcher.d.ts +46 -0
  519. package/dist/globs/matcher.js +99 -0
  520. package/dist/globs/stream.d.ts +18 -0
  521. package/dist/globs/stream.js +58 -0
  522. package/dist/globs/types.d.ts +35 -0
  523. package/dist/globs/types.js +18 -0
  524. package/dist/http-request/_internal.d.ts +18 -0
  525. package/dist/http-request/_internal.js +39 -0
  526. package/dist/http-request/checksums.d.ts +69 -0
  527. package/dist/http-request/checksums.js +72 -0
  528. package/dist/http-request/convenience.d.ts +104 -0
  529. package/dist/http-request/convenience.js +96 -0
  530. package/dist/http-request/download-types.d.ts +224 -0
  531. package/dist/http-request/download-types.js +18 -0
  532. package/dist/http-request/download.d.ts +71 -0
  533. package/dist/http-request/download.js +201 -0
  534. package/dist/http-request/errors.d.ts +23 -0
  535. package/dist/http-request/errors.js +50 -0
  536. package/dist/http-request/headers.d.ts +57 -0
  537. package/dist/http-request/headers.js +86 -0
  538. package/dist/http-request/request-attempt.d.ts +21 -0
  539. package/dist/http-request/request-attempt.js +284 -0
  540. package/dist/http-request/request-types.d.ts +238 -0
  541. package/dist/http-request/request-types.js +18 -0
  542. package/dist/http-request/request.d.ts +59 -0
  543. package/dist/http-request/request.js +106 -0
  544. package/dist/http-request/response-reader.d.ts +25 -0
  545. package/dist/http-request/response-reader.js +54 -0
  546. package/dist/http-request/response-types.d.ts +123 -0
  547. package/dist/http-request/response-types.js +40 -0
  548. package/dist/http-request/user-agent.d.ts +55 -0
  549. package/dist/http-request/user-agent.js +61 -0
  550. package/dist/{dlx/integrity.d.ts → integrity.d.ts} +36 -30
  551. package/dist/{dlx/integrity.js → integrity.js} +25 -19
  552. package/dist/ipc/_internal.d.ts +25 -0
  553. package/dist/ipc/_internal.js +50 -0
  554. package/dist/ipc/directory.d.ts +18 -0
  555. package/dist/ipc/directory.js +66 -0
  556. package/dist/ipc/paths.d.ts +37 -0
  557. package/dist/ipc/paths.js +48 -0
  558. package/dist/ipc/types.d.ts +22 -0
  559. package/dist/ipc/types.js +18 -0
  560. package/dist/ipc/write.d.ts +39 -0
  561. package/dist/ipc/write.js +77 -0
  562. package/dist/ipc-cli/get.d.ts +21 -0
  563. package/dist/{ipc-cli.js → ipc-cli/get.js} +5 -5
  564. package/dist/ipc-cli/types.d.ts +14 -0
  565. package/dist/ipc-cli/types.js +18 -0
  566. package/dist/json/edit.d.ts +22 -8
  567. package/dist/json/edit.js +85 -96
  568. package/dist/json/format.d.ts +100 -86
  569. package/dist/json/format.js +4 -3
  570. package/dist/json/parse.d.ts +113 -88
  571. package/dist/json/parse.js +30 -24
  572. package/dist/json/types.d.ts +133 -117
  573. package/dist/links/link.d.ts +65 -0
  574. package/dist/{links.js → links/link.js} +10 -10
  575. package/dist/links/types.d.ts +19 -0
  576. package/dist/links/types.js +18 -0
  577. package/dist/logger/_internal.d.ts +82 -0
  578. package/dist/logger/_internal.js +80 -0
  579. package/dist/logger/colors.d.ts +18 -0
  580. package/dist/logger/colors.js +54 -0
  581. package/dist/logger/console.d.ts +33 -0
  582. package/dist/logger/console.js +119 -0
  583. package/dist/logger/logger.d.ts +405 -0
  584. package/dist/logger/logger.js +854 -0
  585. package/dist/logger/symbols-builder.d.ts +29 -0
  586. package/dist/logger/symbols-builder.js +61 -0
  587. package/dist/logger/symbols.d.ts +61 -0
  588. package/dist/logger/symbols.js +129 -0
  589. package/dist/logger/types.d.ts +88 -0
  590. package/dist/logger/types.js +18 -0
  591. package/dist/memo/_internal.d.ts +16 -0
  592. package/dist/memo/_internal.js +53 -0
  593. package/dist/memo/async.d.ts +32 -0
  594. package/dist/memo/async.js +120 -0
  595. package/dist/memo/clear.d.ts +15 -0
  596. package/dist/memo/clear.js +37 -0
  597. package/dist/memo/decorator.d.ts +29 -0
  598. package/dist/memo/decorator.js +40 -0
  599. package/dist/memo/memoize.d.ts +33 -0
  600. package/dist/memo/memoize.js +91 -0
  601. package/dist/memo/once.d.ts +25 -0
  602. package/dist/memo/once.js +44 -0
  603. package/dist/memo/types.d.ts +43 -0
  604. package/dist/memo/types.js +18 -0
  605. package/dist/memo/weak.d.ts +26 -0
  606. package/dist/memo/weak.js +44 -0
  607. package/dist/node/async-hooks.d.ts +2 -2
  608. package/dist/node/child-process.d.ts +5 -7
  609. package/dist/node/crypto.d.ts +2 -2
  610. package/dist/node/events.d.ts +2 -2
  611. package/dist/node/fs-promises.d.ts +2 -2
  612. package/dist/node/fs.d.ts +6 -10
  613. package/dist/node/http.d.ts +2 -2
  614. package/dist/node/https.d.ts +2 -2
  615. package/dist/node/module.d.ts +7 -0
  616. package/dist/node/module.js +41 -0
  617. package/dist/node/os.d.ts +2 -2
  618. package/dist/node/path.d.ts +2 -2
  619. package/dist/node/timers-promises.d.ts +2 -2
  620. package/dist/node/url.d.ts +2 -2
  621. package/dist/node/util.d.ts +2 -2
  622. package/dist/objects/getters.d.ts +116 -0
  623. package/dist/objects/getters.js +137 -0
  624. package/dist/objects/inspect.d.ts +67 -0
  625. package/dist/objects/inspect.js +59 -0
  626. package/dist/objects/mutate.d.ts +72 -0
  627. package/dist/objects/mutate.js +81 -0
  628. package/dist/objects/predicates.d.ts +96 -0
  629. package/dist/objects/predicates.js +68 -0
  630. package/dist/objects/sort.d.ts +88 -0
  631. package/dist/objects/sort.js +85 -0
  632. package/dist/objects/types.d.ts +68 -0
  633. package/dist/objects/types.js +18 -0
  634. package/dist/packages/edit-class.d.ts +39 -0
  635. package/dist/packages/edit-class.js +269 -0
  636. package/dist/packages/edit.d.ts +60 -61
  637. package/dist/packages/edit.js +21 -286
  638. package/dist/packages/exports.d.ts +30 -28
  639. package/dist/packages/exports.js +38 -34
  640. package/dist/packages/isolation.d.ts +16 -7
  641. package/dist/packages/isolation.js +50 -57
  642. package/dist/packages/licenses.d.ts +49 -45
  643. package/dist/packages/licenses.js +13 -18
  644. package/dist/packages/manifest.d.ts +14 -14
  645. package/dist/packages/manifest.js +16 -15
  646. package/dist/packages/normalize.d.ts +17 -16
  647. package/dist/packages/normalize.js +20 -17
  648. package/dist/packages/operations.d.ts +49 -36
  649. package/dist/packages/operations.js +30 -15
  650. package/dist/packages/provenance.d.ts +22 -9
  651. package/dist/packages/provenance.js +76 -66
  652. package/dist/packages/specs.d.ts +21 -21
  653. package/dist/packages/specs.js +7 -7
  654. package/dist/{packages.d.ts → packages/types.d.ts} +12 -20
  655. package/dist/packages/types.js +18 -0
  656. package/dist/packages/validation.d.ts +13 -13
  657. package/dist/packages/validation.js +2 -2
  658. package/dist/paths/_internal.d.ts +51 -0
  659. package/dist/paths/_internal.js +102 -0
  660. package/dist/paths/conversion.d.ts +82 -0
  661. package/dist/paths/conversion.js +74 -0
  662. package/dist/paths/dirnames.d.ts +1 -1
  663. package/dist/paths/exts.d.ts +1 -1
  664. package/dist/paths/filenames.d.ts +1 -1
  665. package/dist/paths/globs.d.ts +1 -1
  666. package/dist/paths/normalize.d.ts +30 -440
  667. package/dist/paths/normalize.js +49 -289
  668. package/dist/paths/packages.d.ts +7 -1
  669. package/dist/paths/packages.js +7 -12
  670. package/dist/paths/predicates.d.ts +129 -0
  671. package/dist/paths/predicates.js +121 -0
  672. package/dist/paths/resolve.d.ts +71 -0
  673. package/dist/paths/resolve.js +135 -0
  674. package/dist/paths/rewire.d.ts +37 -38
  675. package/dist/paths/rewire.js +3 -3
  676. package/dist/paths/socket.d.ts +146 -47
  677. package/dist/paths/socket.js +23 -25
  678. package/dist/perf/_internal.d.ts +10 -0
  679. package/dist/perf/_internal.js +30 -0
  680. package/dist/perf/enabled.d.ts +13 -0
  681. package/dist/perf/enabled.js +33 -0
  682. package/dist/perf/metrics.d.ts +51 -0
  683. package/dist/perf/metrics.js +74 -0
  684. package/dist/perf/report.d.ts +40 -0
  685. package/dist/perf/report.js +85 -0
  686. package/dist/perf/timer.d.ts +100 -0
  687. package/dist/perf/timer.js +137 -0
  688. package/dist/perf/types.d.ts +15 -0
  689. package/dist/perf/types.js +18 -0
  690. package/dist/pkg-ext/data.d.ts +8 -0
  691. package/dist/{package-extensions.js → pkg-ext/data.js} +4 -4
  692. package/dist/pkg-ext/types.d.ts +6 -0
  693. package/dist/pkg-ext/types.js +18 -0
  694. package/dist/primordials/array.d.ts +73 -0
  695. package/dist/primordials/array.js +220 -0
  696. package/dist/primordials/buffer.d.ts +17 -0
  697. package/dist/primordials/buffer.js +61 -0
  698. package/dist/primordials/date.d.ts +16 -0
  699. package/dist/primordials/date.js +56 -0
  700. package/dist/primordials/error.d.ts +19 -0
  701. package/dist/primordials/error.js +75 -0
  702. package/dist/primordials/function.d.ts +10 -0
  703. package/dist/primordials/function.js +42 -0
  704. package/dist/primordials/globals.d.ts +17 -0
  705. package/dist/primordials/globals.js +54 -0
  706. package/dist/primordials/json.d.ts +11 -0
  707. package/dist/primordials/json.js +33 -0
  708. package/dist/primordials/map-set.d.ts +35 -0
  709. package/dist/primordials/map-set.js +115 -0
  710. package/dist/primordials/math.d.ts +51 -0
  711. package/dist/primordials/math.js +161 -0
  712. package/dist/primordials/number.d.ts +25 -0
  713. package/dist/primordials/number.js +92 -0
  714. package/dist/primordials/object.d.ts +74 -0
  715. package/dist/primordials/object.js +142 -0
  716. package/dist/primordials/promise.d.ts +34 -0
  717. package/dist/primordials/promise.js +61 -0
  718. package/dist/primordials/reflect.d.ts +18 -0
  719. package/dist/primordials/reflect.js +66 -0
  720. package/dist/primordials/regexp.d.ts +14 -0
  721. package/dist/primordials/regexp.js +50 -0
  722. package/dist/primordials/string.d.ts +71 -0
  723. package/dist/primordials/string.js +174 -0
  724. package/dist/primordials/symbol.d.ts +28 -0
  725. package/dist/primordials/symbol.js +94 -0
  726. package/dist/primordials/uncurry.d.ts +18 -0
  727. package/dist/primordials/uncurry.js +65 -0
  728. package/dist/primordials/url.d.ts +13 -0
  729. package/dist/primordials/url.js +69 -0
  730. package/dist/process/_internal.d.ts +8 -0
  731. package/dist/process/_internal.js +33 -0
  732. package/dist/process/abort.d.ts +20 -0
  733. package/dist/{constants/process.js → process/abort.js} +3 -3
  734. package/dist/process/lock-instance.d.ts +19 -0
  735. package/dist/process/lock-instance.js +31 -0
  736. package/dist/process/lock-manager.d.ts +152 -0
  737. package/dist/{process-lock.js → process/lock-manager.js} +97 -105
  738. package/dist/process/lock-types.d.ts +43 -0
  739. package/dist/process/lock-types.js +18 -0
  740. package/dist/process/transient.d.ts +22 -0
  741. package/dist/{temporary-executor.js → process/transient.js} +8 -8
  742. package/dist/promise-queue/queue.d.ts +51 -0
  743. package/dist/{promise-queue.js → promise-queue/queue.js} +27 -22
  744. package/dist/promise-queue/types.d.ts +10 -0
  745. package/dist/promise-queue/types.js +18 -0
  746. package/dist/promises/_internal.d.ts +15 -0
  747. package/dist/promises/_internal.js +41 -0
  748. package/dist/promises/iterate.d.ts +190 -0
  749. package/dist/promises/iterate.js +111 -0
  750. package/dist/promises/options.d.ts +76 -0
  751. package/dist/promises/options.js +108 -0
  752. package/dist/promises/resolvers.d.ts +55 -0
  753. package/dist/promises/resolvers.js +49 -0
  754. package/dist/promises/retry.d.ts +105 -0
  755. package/dist/promises/retry.js +104 -0
  756. package/dist/promises/types.d.ts +190 -0
  757. package/dist/promises/types.js +18 -0
  758. package/dist/regexps/escape.d.ts +6 -0
  759. package/dist/regexps/escape.js +32 -0
  760. package/dist/regexps/hex.d.ts +7 -0
  761. package/dist/regexps/hex.js +38 -0
  762. package/dist/regexps/spec.d.ts +15 -0
  763. package/dist/{regexps.js → regexps/spec.js} +32 -36
  764. package/dist/releases/github-archives.d.ts +47 -36
  765. package/dist/releases/github-archives.js +21 -35
  766. package/dist/releases/github-asset-url.d.ts +72 -0
  767. package/dist/releases/github-asset-url.js +167 -0
  768. package/dist/releases/github-assets.d.ts +13 -11
  769. package/dist/releases/github-assets.js +2 -2
  770. package/dist/releases/github-auth.d.ts +9 -9
  771. package/dist/releases/github-downloads.d.ts +31 -26
  772. package/dist/releases/github-downloads.js +22 -34
  773. package/dist/releases/github-listing.d.ts +105 -0
  774. package/dist/releases/github-listing.js +171 -0
  775. package/dist/releases/github-types.d.ts +45 -19
  776. package/dist/releases/socket-btm.d.ts +149 -99
  777. package/dist/releases/socket-btm.js +14 -20
  778. package/dist/schema/parse.d.ts +14 -15
  779. package/dist/schema/parse.js +2 -2
  780. package/dist/schema/types.d.ts +49 -37
  781. package/dist/schema/validate.d.ts +42 -19
  782. package/dist/schema/validate.js +15 -6
  783. package/dist/sea/detect.d.ts +37 -0
  784. package/dist/sea/{util.js → detect.js} +6 -6
  785. package/dist/secrets/_internal.d.ts +57 -0
  786. package/dist/secrets/_internal.js +84 -0
  787. package/dist/secrets/find.d.ts +79 -0
  788. package/dist/secrets/find.js +84 -0
  789. package/dist/secrets/keychain.d.ts +138 -0
  790. package/dist/secrets/keychain.js +328 -0
  791. package/dist/secrets/linux.d.ts +20 -0
  792. package/dist/secrets/linux.js +151 -0
  793. package/dist/secrets/macos.d.ts +36 -0
  794. package/dist/secrets/macos.js +165 -0
  795. package/dist/secrets/rc.d.ts +139 -0
  796. package/dist/secrets/rc.js +196 -0
  797. package/dist/secrets/socket-api-token.d.ts +23 -0
  798. package/dist/secrets/socket-api-token.js +50 -0
  799. package/dist/secrets/types.d.ts +69 -0
  800. package/dist/secrets/types.js +18 -0
  801. package/dist/secrets/windows.d.ts +50 -0
  802. package/dist/secrets/windows.js +318 -0
  803. package/dist/shadow/skip.d.ts +25 -0
  804. package/dist/{shadow.js → shadow/skip.js} +4 -4
  805. package/dist/shadow/types.d.ts +8 -0
  806. package/dist/shadow/types.js +18 -0
  807. package/dist/signal-exit/_internal.d.ts +68 -0
  808. package/dist/signal-exit/_internal.js +127 -0
  809. package/dist/signal-exit/intercept.d.ts +8 -0
  810. package/dist/signal-exit/intercept.js +75 -0
  811. package/dist/signal-exit/lifecycle.d.ts +28 -0
  812. package/dist/signal-exit/lifecycle.js +109 -0
  813. package/dist/signal-exit/register.d.ts +20 -0
  814. package/dist/signal-exit/register.js +58 -0
  815. package/dist/signal-exit/signals.d.ts +16 -0
  816. package/dist/signal-exit/signals.js +34 -0
  817. package/dist/signal-exit/types.d.ts +21 -0
  818. package/dist/signal-exit/types.js +18 -0
  819. package/dist/smol/detect.d.ts +80 -0
  820. package/dist/smol/{util.js → detect.js} +16 -24
  821. package/dist/smol/http.d.ts +60 -0
  822. package/dist/smol/http.js +42 -0
  823. package/dist/smol/https.d.ts +59 -0
  824. package/dist/smol/https.js +42 -0
  825. package/dist/smol/manifest.d.ts +140 -0
  826. package/dist/smol/manifest.js +42 -0
  827. package/dist/smol/primordial.d.ts +16 -21
  828. package/dist/smol/primordial.js +7 -11
  829. package/dist/smol/purl.d.ts +84 -0
  830. package/dist/smol/purl.js +42 -0
  831. package/dist/smol/versions.d.ts +11 -14
  832. package/dist/smol/versions.js +7 -11
  833. package/dist/smol/vfs.d.ts +99 -0
  834. package/dist/smol/vfs.js +43 -0
  835. package/dist/sorts/_internal.d.ts +9 -0
  836. package/dist/sorts/_internal.js +47 -0
  837. package/dist/sorts/natural.d.ts +39 -0
  838. package/dist/{sorts.js → sorts/natural.js} +5 -42
  839. package/dist/sorts/semver.d.ts +15 -0
  840. package/dist/sorts/semver.js +46 -0
  841. package/dist/sorts/strings.d.ts +16 -0
  842. package/dist/sorts/strings.js +33 -0
  843. package/dist/sorts/types.d.ts +7 -0
  844. package/dist/sorts/types.js +18 -0
  845. package/dist/spawn/_internal.d.ts +24 -0
  846. package/dist/spawn/_internal.js +62 -0
  847. package/dist/spawn/errors.d.ts +45 -0
  848. package/dist/spawn/errors.js +118 -0
  849. package/dist/spawn/spawn.d.ts +134 -0
  850. package/dist/{spawn.js → spawn/spawn.js} +29 -147
  851. package/dist/spawn/stdio.d.ts +37 -0
  852. package/dist/spawn/stdio.js +38 -0
  853. package/dist/spawn/types.d.ts +325 -0
  854. package/dist/spawn/types.js +18 -0
  855. package/dist/spinner/format.d.ts +64 -0
  856. package/dist/spinner/format.js +83 -0
  857. package/dist/spinner/registry.d.ts +49 -0
  858. package/dist/spinner/registry.js +70 -0
  859. package/dist/spinner/spinner.d.ts +40 -0
  860. package/dist/spinner/spinner.js +802 -0
  861. package/dist/spinner/types.d.ts +368 -0
  862. package/dist/spinner/types.js +18 -0
  863. package/dist/spinner/with.d.ts +125 -0
  864. package/dist/spinner/with.js +144 -0
  865. package/dist/ssri/convert.d.ts +48 -0
  866. package/dist/{ssri.js → ssri/convert.js} +11 -34
  867. package/dist/ssri/parse.d.ts +27 -0
  868. package/dist/ssri/parse.js +40 -0
  869. package/dist/ssri/validate.d.ts +41 -0
  870. package/dist/ssri/validate.js +39 -0
  871. package/dist/stdio/{_stream.d.ts → _internal.d.ts} +10 -5
  872. package/dist/stdio/{_stream.js → _internal.js} +3 -3
  873. package/dist/stdio/clear.d.ts +98 -84
  874. package/dist/stdio/divider.d.ts +100 -78
  875. package/dist/stdio/divider.js +36 -14
  876. package/dist/stdio/footer.d.ts +75 -51
  877. package/dist/stdio/footer.js +28 -18
  878. package/dist/stdio/header.d.ts +61 -50
  879. package/dist/stdio/header.js +15 -13
  880. package/dist/stdio/progress.d.ts +67 -57
  881. package/dist/stdio/progress.js +55 -51
  882. package/dist/stdio/prompts.d.ts +147 -100
  883. package/dist/stdio/prompts.js +23 -15
  884. package/dist/stdio/stderr.d.ts +86 -84
  885. package/dist/stdio/stderr.js +6 -6
  886. package/dist/stdio/stdout.d.ts +77 -78
  887. package/dist/stdio/stdout.js +6 -6
  888. package/dist/streams/parallel.d.ts +40 -0
  889. package/dist/{streams.js → streams/parallel.js} +10 -27
  890. package/dist/streams/transform.d.ts +20 -0
  891. package/dist/streams/transform.js +48 -0
  892. package/dist/strings/format.d.ts +115 -0
  893. package/dist/strings/format.js +73 -0
  894. package/dist/strings/predicates.d.ts +52 -0
  895. package/dist/strings/predicates.js +39 -0
  896. package/dist/strings/search.d.ts +34 -0
  897. package/dist/strings/search.js +45 -0
  898. package/dist/strings/transform.d.ts +80 -0
  899. package/dist/strings/transform.js +79 -0
  900. package/dist/strings/types.d.ts +38 -0
  901. package/dist/strings/types.js +18 -0
  902. package/dist/strings/width.d.ts +42 -0
  903. package/dist/strings/width.js +95 -0
  904. package/dist/tables/bordered.d.ts +44 -0
  905. package/dist/tables/bordered.js +84 -0
  906. package/dist/tables/padding.d.ts +18 -0
  907. package/dist/tables/padding.js +51 -0
  908. package/dist/tables/simple.d.ts +36 -0
  909. package/dist/tables/simple.js +73 -0
  910. package/dist/tables/types.d.ts +15 -0
  911. package/dist/tables/types.js +18 -0
  912. package/dist/temporal/instant.d.ts +39 -0
  913. package/dist/temporal/instant.js +91 -0
  914. package/dist/temporal/now.d.ts +24 -0
  915. package/dist/temporal/now.js +34 -0
  916. package/dist/temporal/slots.d.ts +32 -0
  917. package/dist/temporal/slots.js +45 -0
  918. package/dist/temporal/system.d.ts +20 -0
  919. package/dist/temporal/system.js +42 -0
  920. package/dist/temporal/temporal.d.ts +22 -0
  921. package/dist/temporal/temporal.js +43 -0
  922. package/dist/themes/context.d.ts +65 -48
  923. package/dist/themes/context.js +6 -2
  924. package/dist/themes/resolve.d.ts +90 -0
  925. package/dist/themes/{utils.js → resolve.js} +6 -6
  926. package/dist/themes/themes.d.ts +14 -16
  927. package/dist/themes/types.d.ts +93 -35
  928. package/dist/ttl-cache/cache.d.ts +29 -0
  929. package/dist/{cache-with-ttl.js → ttl-cache/cache.js} +45 -37
  930. package/dist/ttl-cache/types.d.ts +109 -0
  931. package/dist/ttl-cache/types.js +18 -0
  932. package/dist/url/parse.d.ts +26 -0
  933. package/dist/url/parse.js +57 -0
  934. package/dist/url/predicates.d.ts +15 -0
  935. package/dist/url/predicates.js +34 -0
  936. package/dist/url/search-params.d.ts +71 -0
  937. package/dist/{url.js → url/search-params.js} +19 -54
  938. package/dist/url/types.d.ts +20 -0
  939. package/dist/url/types.js +18 -0
  940. package/dist/versions/_internal.d.ts +24 -0
  941. package/dist/versions/_internal.js +37 -0
  942. package/dist/versions/compare.d.ts +57 -0
  943. package/dist/versions/compare.js +65 -0
  944. package/dist/versions/modify.d.ts +28 -0
  945. package/dist/versions/modify.js +44 -0
  946. package/dist/versions/parse.d.ts +67 -0
  947. package/dist/versions/parse.js +77 -0
  948. package/dist/versions/range.d.ts +45 -0
  949. package/dist/versions/range.js +50 -0
  950. package/dist/versions/types.d.ts +13 -0
  951. package/dist/versions/types.js +18 -0
  952. package/dist/warnings/event-target.d.ts +31 -0
  953. package/dist/warnings/event-target.js +43 -0
  954. package/dist/warnings/suppress.d.ts +65 -0
  955. package/dist/{suppress-warnings.js → warnings/suppress.js} +16 -28
  956. package/dist/words/article.d.ts +14 -0
  957. package/dist/words/article.js +33 -0
  958. package/dist/words/capitalize.d.ts +15 -0
  959. package/dist/{words.js → words/capitalize.js} +5 -18
  960. package/dist/words/pluralize.d.ts +16 -0
  961. package/dist/words/pluralize.js +34 -0
  962. package/dist/words/types.d.ts +7 -0
  963. package/dist/words/types.js +18 -0
  964. package/package.json +1919 -247
  965. package/dist/abort.d.ts +0 -27
  966. package/dist/agent.d.ts +0 -196
  967. package/dist/agent.js +0 -287
  968. package/dist/ansi.d.ts +0 -39
  969. package/dist/archives.d.ts +0 -95
  970. package/dist/archives.js +0 -408
  971. package/dist/argv/flags.d.ts +0 -292
  972. package/dist/argv/flags.js +0 -297
  973. package/dist/arrays.d.ts +0 -168
  974. package/dist/bin.d.ts +0 -181
  975. package/dist/bin.js +0 -544
  976. package/dist/cacache.d.ts +0 -130
  977. package/dist/cacache.js +0 -156
  978. package/dist/cache-with-ttl.d.ts +0 -165
  979. package/dist/colors.d.ts +0 -49
  980. package/dist/compression.d.ts +0 -218
  981. package/dist/constants/process.d.ts +0 -20
  982. package/dist/crypto.d.ts +0 -36
  983. package/dist/debug.js +0 -337
  984. package/dist/env/helpers.d.ts +0 -66
  985. package/dist/env.d.ts +0 -182
  986. package/dist/env.js +0 -205
  987. package/dist/errors.d.ts +0 -100
  988. package/dist/fs.d.ts +0 -916
  989. package/dist/fs.js +0 -808
  990. package/dist/git.d.ts +0 -546
  991. package/dist/git.js +0 -409
  992. package/dist/github.d.ts +0 -526
  993. package/dist/github.js +0 -448
  994. package/dist/globs.d.ts +0 -119
  995. package/dist/globs.js +0 -282
  996. package/dist/http-request.d.ts +0 -951
  997. package/dist/http-request.js +0 -761
  998. package/dist/ipc-cli.d.ts +0 -28
  999. package/dist/ipc.d.ts +0 -76
  1000. package/dist/ipc.js +0 -130
  1001. package/dist/links.d.ts +0 -69
  1002. package/dist/logger.d.ts +0 -993
  1003. package/dist/logger.js +0 -1498
  1004. package/dist/memoization.d.ts +0 -131
  1005. package/dist/memoization.js +0 -243
  1006. package/dist/objects.d.ts +0 -500
  1007. package/dist/objects.js +0 -303
  1008. package/dist/package-extensions.d.ts +0 -9
  1009. package/dist/packages.js +0 -132
  1010. package/dist/performance.d.ts +0 -181
  1011. package/dist/performance.js +0 -233
  1012. package/dist/primordials.d.ts +0 -420
  1013. package/dist/primordials.js +0 -1116
  1014. package/dist/process-lock.d.ts +0 -180
  1015. package/dist/promise-queue.d.ts +0 -48
  1016. package/dist/promises.d.ts +0 -506
  1017. package/dist/promises.js +0 -292
  1018. package/dist/regexps.d.ts +0 -6
  1019. package/dist/releases/github-api.d.ts +0 -56
  1020. package/dist/releases/github-api.js +0 -275
  1021. package/dist/sea/util.d.ts +0 -43
  1022. package/dist/shadow.d.ts +0 -28
  1023. package/dist/signal-exit.d.ts +0 -50
  1024. package/dist/signal-exit.js +0 -247
  1025. package/dist/smol/util.d.ts +0 -87
  1026. package/dist/sorts.d.ts +0 -59
  1027. package/dist/spawn.d.ts +0 -454
  1028. package/dist/spinner.d.ts +0 -444
  1029. package/dist/spinner.js +0 -988
  1030. package/dist/ssri.d.ts +0 -90
  1031. package/dist/streams.d.ts +0 -45
  1032. package/dist/strings.d.ts +0 -414
  1033. package/dist/strings.js +0 -218
  1034. package/dist/suppress-warnings.d.ts +0 -81
  1035. package/dist/tables.d.ts +0 -73
  1036. package/dist/tables.js +0 -133
  1037. package/dist/temporary-executor.d.ts +0 -20
  1038. package/dist/themes/utils.d.ts +0 -86
  1039. package/dist/url.d.ts +0 -114
  1040. package/dist/versions.d.ts +0 -207
  1041. package/dist/versions.js +0 -181
  1042. package/dist/words.d.ts +0 -39
package/dist/logger.js DELETED
@@ -1,1498 +0,0 @@
1
- "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __create = Object.create;
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __export = (target, all) => {
11
- for (var name in all)
12
- __defProp(target, name, { get: all[name], enumerable: true });
13
- };
14
- var __copyProps = (to, from, except, desc) => {
15
- if (from && typeof from === "object" || typeof from === "function") {
16
- for (let key of __getOwnPropNames(from))
17
- if (!__hasOwnProp.call(to, key) && key !== except)
18
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
- mod
29
- ));
30
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
- var logger_exports = {};
32
- __export(logger_exports, {
33
- LOG_SYMBOLS: () => LOG_SYMBOLS,
34
- Logger: () => Logger,
35
- getDefaultLogger: () => getDefaultLogger,
36
- incLogCallCountSymbol: () => incLogCallCountSymbol,
37
- lastWasBlankSymbol: () => lastWasBlankSymbol
38
- });
39
- module.exports = __toCommonJS(logger_exports);
40
- var import_node_process = __toESM(require("node:process"));
41
- var import_is_unicode_supported = __toESM(require("./external/@socketregistry/is-unicode-supported"));
42
- var import_yoctocolors_cjs = __toESM(require("./external/yoctocolors-cjs"));
43
- var import_primordials = require("./primordials");
44
- var import_strings = require("./strings");
45
- var import_context = require("./themes/context");
46
- var import_themes = require("./themes/themes");
47
- const globalConsole = console;
48
- let _Console;
49
- let _consoleSymbols;
50
- let _kGroupIndentationWidthSymbol;
51
- let _prototypeInitialized = false;
52
- let _logger;
53
- const LOG_SYMBOLS = /* @__PURE__ */ (() => {
54
- const target = {
55
- __proto__: null
56
- };
57
- let initialized = false;
58
- const handler = {
59
- __proto__: null
60
- };
61
- const updateSymbols = () => {
62
- const supported = (0, import_is_unicode_supported.default)();
63
- const colors = /* @__PURE__ */ getYoctocolors();
64
- const theme = (0, import_context.getTheme)();
65
- const successColor = theme.colors.success;
66
- const errorColor = theme.colors.error;
67
- const warningColor = theme.colors.warning;
68
- const infoColor = theme.colors.info;
69
- const stepColor = theme.colors.step;
70
- target["fail"] = /* @__PURE__ */ applyColor(supported ? "\u2716" : "\xD7", errorColor, colors);
71
- target["info"] = /* @__PURE__ */ applyColor(supported ? "\u2139" : "i", infoColor, colors);
72
- target["progress"] = /* @__PURE__ */ applyColor(supported ? "\u2234" : ":.", stepColor, colors);
73
- target["reason"] = colors.dim(
74
- /* @__PURE__ */ applyColor(supported ? "\u2234" : ":.", warningColor, colors)
75
- );
76
- target["skip"] = /* @__PURE__ */ applyColor(supported ? "\u21BB" : "@", stepColor, colors);
77
- target["step"] = /* @__PURE__ */ applyColor(supported ? "\u2192" : ">", stepColor, colors);
78
- target["success"] = /* @__PURE__ */ applyColor(supported ? "\u2714" : "\u221A", successColor, colors);
79
- target["warn"] = /* @__PURE__ */ applyColor(supported ? "\u26A0" : "\u203C", warningColor, colors);
80
- };
81
- const init = () => {
82
- if (initialized) {
83
- return;
84
- }
85
- updateSymbols();
86
- initialized = true;
87
- for (const trapName in handler) {
88
- delete handler[trapName];
89
- }
90
- };
91
- const reset = () => {
92
- if (!initialized) {
93
- return;
94
- }
95
- updateSymbols();
96
- };
97
- for (const trapName of (0, import_primordials.ReflectOwnKeys)(Reflect)) {
98
- const fn = Reflect[trapName];
99
- if (typeof fn === "function") {
100
- ;
101
- handler[trapName] = (...args) => {
102
- init();
103
- return fn(...args);
104
- };
105
- }
106
- }
107
- (0, import_context.onThemeChange)(() => {
108
- reset();
109
- });
110
- return new import_primordials.ProxyCtor(target, handler);
111
- })();
112
- const boundConsoleEntries = [
113
- // Add bound properties from console[kBindProperties](ignoreErrors, colorMode, groupIndentation).
114
- // https://github.com/nodejs/node/blob/v24.0.1/lib/internal/console/constructor.js#L230-L265
115
- "_stderrErrorHandler",
116
- "_stdoutErrorHandler",
117
- // Add methods that need to be bound to function properly.
118
- "assert",
119
- "clear",
120
- "count",
121
- "countReset",
122
- "createTask",
123
- "debug",
124
- "dir",
125
- "dirxml",
126
- "error",
127
- // Skip group methods because in at least Node 20 with the Node --frozen-intrinsics
128
- // flag it triggers a readonly property for Symbol(kGroupIndent). Instead, we
129
- // implement these methods ourselves.
130
- //'group',
131
- //'groupCollapsed',
132
- //'groupEnd',
133
- "info",
134
- "log",
135
- "table",
136
- "time",
137
- "timeEnd",
138
- "timeLog",
139
- "trace",
140
- "warn"
141
- ].filter((n) => typeof globalConsole[n] === "function").map((n) => [n, globalConsole[n].bind(globalConsole)]);
142
- const consolePropAttributes = {
143
- __proto__: null,
144
- writable: true,
145
- enumerable: false,
146
- configurable: true
147
- };
148
- const maxIndentation = 1e3;
149
- const privateConsole = new import_primordials.WeakMapCtor();
150
- const privateConstructorArgs = new import_primordials.WeakMapCtor();
151
- const incLogCallCountSymbol = Symbol.for("logger.logCallCount++");
152
- const lastWasBlankSymbol = Symbol.for("logger.lastWasBlank");
153
- class Logger {
154
- /**
155
- * Static reference to log symbols for convenience.
156
- *
157
- * @example
158
- * ```typescript
159
- * console.log(`${Logger.LOG_SYMBOLS.success} Done`)
160
- * ```
161
- */
162
- static LOG_SYMBOLS = LOG_SYMBOLS;
163
- #parent;
164
- #boundStream;
165
- #stderrLogger;
166
- #stdoutLogger;
167
- #stderrIndention = "";
168
- #stdoutIndention = "";
169
- #stderrLastWasBlank = false;
170
- #stdoutLastWasBlank = false;
171
- #logCallCount = 0;
172
- #options;
173
- #originalStdout;
174
- #theme;
175
- /**
176
- * Creates a new Logger instance.
177
- *
178
- * When called without arguments, creates a logger using the default
179
- * `process.stdout` and `process.stderr` streams. Can accept custom
180
- * console constructor arguments for advanced use cases.
181
- *
182
- * @param args - Optional console constructor arguments
183
- *
184
- * @example
185
- * ```typescript
186
- * // Default logger
187
- * const logger = new Logger()
188
- *
189
- * // Custom streams (advanced)
190
- * const customLogger = new Logger({
191
- * stdout: customWritableStream,
192
- * stderr: customErrorStream
193
- * })
194
- * ```
195
- */
196
- constructor(...args) {
197
- privateConstructorArgs.set(this, args);
198
- const options = args["0"];
199
- if (typeof options === "object" && options !== null) {
200
- this.#options = { __proto__: null, ...options };
201
- this.#originalStdout = options.stdout;
202
- const themeOption = options.theme;
203
- if (themeOption) {
204
- if (typeof themeOption === "string") {
205
- const resolved = import_themes.THEMES[themeOption];
206
- if (resolved) {
207
- this.#theme = resolved;
208
- }
209
- } else {
210
- this.#theme = themeOption;
211
- }
212
- }
213
- } else {
214
- this.#options = { __proto__: null };
215
- }
216
- }
217
- /**
218
- * Apply a console method with indentation.
219
- * @private
220
- */
221
- #apply(methodName, args, stream) {
222
- const con = this.#getConsole();
223
- const text = (0, import_primordials.ArrayPrototypeAt)(args, 0);
224
- const hasText = typeof text === "string";
225
- const targetStream = stream || (methodName === "log" ? "stdout" : "stderr");
226
- const indent = this.#getIndent(targetStream);
227
- const logArgs = hasText ? [
228
- (0, import_strings.applyLinePrefix)(text, { prefix: indent }),
229
- ...(0, import_primordials.ArrayPrototypeSlice)(args, 1)
230
- ] : args;
231
- (0, import_primordials.ReflectApply)(
232
- con[methodName],
233
- con,
234
- logArgs
235
- );
236
- this[lastWasBlankSymbol](hasText && (0, import_strings.isBlankString)(logArgs[0]), targetStream);
237
- this[incLogCallCountSymbol]();
238
- return this;
239
- }
240
- /**
241
- * Get the Console instance for this logger, creating it lazily on first access.
242
- *
243
- * This lazy initialization allows the logger to be imported during early
244
- * Node.js bootstrap before stdout is ready, avoiding Console initialization
245
- * errors (ERR_CONSOLE_WRITABLE_STREAM).
246
- *
247
- * @private
248
- */
249
- #getConsole() {
250
- ensurePrototypeInitialized();
251
- let con = privateConsole.get(this);
252
- if (!con) {
253
- const ctorArgs = privateConstructorArgs.get(this) ?? [];
254
- if (ctorArgs.length) {
255
- con = /* @__PURE__ */ constructConsole(...ctorArgs);
256
- } else {
257
- con = /* @__PURE__ */ constructConsole({
258
- stdout: import_node_process.default.stdout,
259
- stderr: import_node_process.default.stderr
260
- });
261
- for (const { 0: key, 1: method } of boundConsoleEntries) {
262
- con[key] = method;
263
- }
264
- }
265
- privateConsole.set(this, con);
266
- privateConstructorArgs.delete(this);
267
- }
268
- return con;
269
- }
270
- /**
271
- * Get indentation for a specific stream.
272
- * @private
273
- */
274
- #getIndent(stream) {
275
- const root = this.#getRoot();
276
- return stream === "stderr" ? root.#stderrIndention : root.#stdoutIndention;
277
- }
278
- /**
279
- * Get lastWasBlank state for a specific stream.
280
- * @private
281
- */
282
- #getLastWasBlank(stream) {
283
- const root = this.#getRoot();
284
- return stream === "stderr" ? root.#stderrLastWasBlank : root.#stdoutLastWasBlank;
285
- }
286
- /**
287
- * Get the root logger (for accessing shared indentation state).
288
- * @private
289
- */
290
- #getRoot() {
291
- return this.#parent || this;
292
- }
293
- /**
294
- * Get logger-specific symbols using the resolved theme.
295
- * @private
296
- */
297
- #getSymbols() {
298
- const theme = this.#getTheme();
299
- const supported = (0, import_is_unicode_supported.default)();
300
- const colors = /* @__PURE__ */ getYoctocolors();
301
- return {
302
- __proto__: null,
303
- fail: /* @__PURE__ */ applyColor(supported ? "\u2716" : "\xD7", theme.colors.error, colors),
304
- info: /* @__PURE__ */ applyColor(supported ? "\u2139" : "i", theme.colors.info, colors),
305
- progress: /* @__PURE__ */ applyColor(supported ? "\u2234" : ":.", theme.colors.step, colors),
306
- skip: /* @__PURE__ */ applyColor(supported ? "\u21BB" : "@", theme.colors.step, colors),
307
- step: /* @__PURE__ */ applyColor(supported ? "\u2192" : ">", theme.colors.step, colors),
308
- success: /* @__PURE__ */ applyColor(supported ? "\u2714" : "\u221A", theme.colors.success, colors),
309
- warn: /* @__PURE__ */ applyColor(supported ? "\u26A0" : "\u203C", theme.colors.warning, colors)
310
- };
311
- }
312
- /**
313
- * Get the target stream for this logger instance.
314
- * @private
315
- */
316
- #getTargetStream() {
317
- return this.#boundStream || "stderr";
318
- }
319
- /**
320
- * Get the resolved theme for this logger instance.
321
- * Returns instance theme if set, otherwise falls back to context theme.
322
- * @private
323
- */
324
- #getTheme() {
325
- return this.#theme ?? (0, import_context.getTheme)();
326
- }
327
- /**
328
- * Set indentation for a specific stream.
329
- * @private
330
- */
331
- #setIndent(stream, value) {
332
- const root = this.#getRoot();
333
- if (stream === "stderr") {
334
- root.#stderrIndention = value;
335
- } else {
336
- root.#stdoutIndention = value;
337
- }
338
- }
339
- /**
340
- * Set lastWasBlank state for a specific stream.
341
- * @private
342
- */
343
- #setLastWasBlank(stream, value) {
344
- const root = this.#getRoot();
345
- if (stream === "stderr") {
346
- root.#stderrLastWasBlank = value;
347
- } else {
348
- root.#stdoutLastWasBlank = value;
349
- }
350
- }
351
- /**
352
- * Strip log symbols from the start of text.
353
- * @private
354
- */
355
- #stripSymbols(text) {
356
- return (0, import_primordials.StringPrototypeReplace)(
357
- text,
358
- /^(?:[✖✗×⚠‼✔✓√ℹ→∴↻]|:.)[\uFE0F\s]*/u,
359
- ""
360
- );
361
- }
362
- /**
363
- * Apply a method with a symbol prefix.
364
- * @private
365
- */
366
- #symbolApply(symbolType, args) {
367
- const con = this.#getConsole();
368
- let text = (0, import_primordials.ArrayPrototypeAt)(args, 0);
369
- let extras;
370
- if (typeof text === "string") {
371
- text = this.#stripSymbols(text);
372
- extras = (0, import_primordials.ArrayPrototypeSlice)(args, 1);
373
- } else {
374
- extras = args;
375
- text = "";
376
- }
377
- const indent = this.#getIndent("stderr");
378
- const symbols = this.#getSymbols();
379
- con.error(
380
- (0, import_strings.applyLinePrefix)(`${symbols[symbolType]} ${text}`, {
381
- prefix: indent
382
- }),
383
- ...extras
384
- );
385
- this[lastWasBlankSymbol](false, "stderr");
386
- this[incLogCallCountSymbol]();
387
- return this;
388
- }
389
- /**
390
- * Gets a logger instance bound exclusively to stderr.
391
- *
392
- * All logging operations on this instance will write to stderr only.
393
- * Indentation is tracked separately from stdout. The instance is
394
- * cached and reused on subsequent accesses.
395
- *
396
- * @returns A logger instance bound to stderr
397
- *
398
- * @example
399
- * ```typescript
400
- * // Write errors to stderr
401
- * logger.stderr.error('Configuration invalid')
402
- * logger.stderr.warn('Using fallback settings')
403
- *
404
- * // Indent only affects stderr
405
- * logger.stderr.indent()
406
- * logger.stderr.error('Nested error details')
407
- * logger.stderr.dedent()
408
- * ```
409
- */
410
- get stderr() {
411
- if (!this.#stderrLogger) {
412
- const ctorArgs = privateConstructorArgs.get(this) ?? [];
413
- const instance = new Logger(...ctorArgs);
414
- instance.#parent = this;
415
- instance.#boundStream = "stderr";
416
- instance.#options = { __proto__: null, ...this.#options };
417
- if (this.#theme) {
418
- instance.#theme = this.#theme;
419
- }
420
- this.#stderrLogger = instance;
421
- }
422
- return this.#stderrLogger;
423
- }
424
- /**
425
- * Gets a logger instance bound exclusively to stdout.
426
- *
427
- * All logging operations on this instance will write to stdout only.
428
- * Indentation is tracked separately from stderr. The instance is
429
- * cached and reused on subsequent accesses.
430
- *
431
- * @returns A logger instance bound to stdout
432
- *
433
- * @example
434
- * ```typescript
435
- * // Write normal output to stdout
436
- * logger.stdout.log('Processing started')
437
- * logger.stdout.log('Items processed: 42')
438
- *
439
- * // Indent only affects stdout
440
- * logger.stdout.indent()
441
- * logger.stdout.log('Detailed output')
442
- * logger.stdout.dedent()
443
- * ```
444
- */
445
- get stdout() {
446
- if (!this.#stdoutLogger) {
447
- const ctorArgs = privateConstructorArgs.get(this) ?? [];
448
- const instance = new Logger(...ctorArgs);
449
- instance.#parent = this;
450
- instance.#boundStream = "stdout";
451
- instance.#options = { __proto__: null, ...this.#options };
452
- if (this.#theme) {
453
- instance.#theme = this.#theme;
454
- }
455
- this.#stdoutLogger = instance;
456
- }
457
- return this.#stdoutLogger;
458
- }
459
- /**
460
- * Gets the total number of log calls made on this logger instance.
461
- *
462
- * Tracks all logging method calls including `log()`, `error()`, `warn()`,
463
- * `success()`, `fail()`, etc. Useful for testing and monitoring logging activity.
464
- *
465
- * @returns The number of times logging methods have been called
466
- *
467
- * @example
468
- * ```typescript
469
- * logger.log('Message 1')
470
- * logger.error('Message 2')
471
- * console.log(logger.logCallCount) // 2
472
- * ```
473
- */
474
- get logCallCount() {
475
- const root = this.#getRoot();
476
- return root.#logCallCount;
477
- }
478
- /**
479
- * Increments the internal log call counter.
480
- *
481
- * This is called automatically by logging methods and should not
482
- * be called directly in normal usage.
483
- *
484
- * @returns The logger instance for chaining
485
- */
486
- [incLogCallCountSymbol]() {
487
- const root = this.#getRoot();
488
- root.#logCallCount += 1;
489
- return this;
490
- }
491
- /**
492
- * Sets whether the last logged line was blank.
493
- *
494
- * Used internally to track blank lines and prevent duplicate spacing.
495
- * This is called automatically by logging methods.
496
- *
497
- * @param value - Whether the last line was blank
498
- * @param stream - Optional stream to update (defaults to both streams if not bound, or target stream if bound)
499
- * @returns The logger instance for chaining
500
- */
501
- [lastWasBlankSymbol](value, stream) {
502
- if (stream) {
503
- this.#setLastWasBlank(stream, !!value);
504
- } else if (this.#boundStream) {
505
- this.#setLastWasBlank(this.#boundStream, !!value);
506
- } else {
507
- this.#setLastWasBlank("stderr", !!value);
508
- this.#setLastWasBlank("stdout", !!value);
509
- }
510
- return this;
511
- }
512
- /**
513
- * Logs an assertion failure message if the value is falsy.
514
- *
515
- * Works like `console.assert()` but returns the logger for chaining.
516
- * If the value is truthy, nothing is logged. If falsy, logs an error
517
- * message with an assertion failure.
518
- *
519
- * @param value - The value to test
520
- * @param message - Optional message and additional arguments to log
521
- * @returns The logger instance for chaining
522
- *
523
- * @example
524
- * ```typescript
525
- * logger.assert(true, 'This will not log')
526
- * logger.assert(false, 'Assertion failed: value is false')
527
- * logger.assert(items.length > 0, 'No items found')
528
- * ```
529
- */
530
- assert(value, ...message) {
531
- const con = this.#getConsole();
532
- con.assert(value, message[0], ...message.slice(1));
533
- this[lastWasBlankSymbol](false);
534
- return value ? this : this[incLogCallCountSymbol]();
535
- }
536
- /**
537
- * Clears the current line in the terminal.
538
- *
539
- * Moves the cursor to the beginning of the line and clears all content.
540
- * Works in both TTY and non-TTY environments. Useful for clearing
541
- * progress indicators created with `progress()`.
542
- *
543
- * The stream to clear (stderr or stdout) depends on whether the logger
544
- * is stream-bound.
545
- *
546
- * @returns The logger instance for chaining
547
- *
548
- * @example
549
- * ```typescript
550
- * logger.progress('Loading...')
551
- * // ... do work ...
552
- * logger.clearLine()
553
- * logger.success('Loaded')
554
- *
555
- * // Clear multiple progress updates
556
- * for (const file of files) {
557
- * logger.progress(`Processing ${file}`)
558
- * processFile(file)
559
- * logger.clearLine()
560
- * }
561
- * logger.success('All files processed')
562
- * ```
563
- */
564
- clearLine() {
565
- const con = this.#getConsole();
566
- const stream = this.#getTargetStream();
567
- const streamObj = stream === "stderr" ? con["_stderr"] : con["_stdout"];
568
- if (streamObj.isTTY) {
569
- streamObj.cursorTo(0);
570
- streamObj.clearLine(0);
571
- } else {
572
- streamObj.write("\r\x1B[K");
573
- }
574
- return this;
575
- }
576
- /**
577
- * Clears the visible terminal screen.
578
- *
579
- * Only available on the main logger instance, not on stream-bound instances
580
- * (`.stderr` or `.stdout`). Resets the log call count and blank line tracking
581
- * if the output is a TTY.
582
- *
583
- * @returns The logger instance for chaining
584
- * @throws {Error} If called on a stream-bound logger instance
585
- *
586
- * @example
587
- * ```typescript
588
- * logger.log('Some output')
589
- * logger.clearVisible() // Screen is now clear
590
- *
591
- * // Error: Can't call on stream-bound instance
592
- * logger.stderr.clearVisible() // throws
593
- * ```
594
- */
595
- clearVisible() {
596
- if (this.#boundStream) {
597
- throw new import_primordials.ErrorCtor(
598
- "clearVisible() is only available on the main logger instance, not on stream-bound instances"
599
- );
600
- }
601
- const con = this.#getConsole();
602
- con.clear();
603
- if (con._stdout.isTTY) {
604
- ;
605
- this[lastWasBlankSymbol](true);
606
- this.#logCallCount = 0;
607
- }
608
- return this;
609
- }
610
- /**
611
- * Increments and logs a counter for the given label.
612
- *
613
- * Each unique label maintains its own counter. Works like `console.count()`.
614
- *
615
- * @param label - Optional label for the counter
616
- * @default 'default'
617
- * @returns The logger instance for chaining
618
- *
619
- * @example
620
- * ```typescript
621
- * logger.count('requests') // requests: 1
622
- * logger.count('requests') // requests: 2
623
- * logger.count('errors') // errors: 1
624
- * logger.count() // default: 1
625
- * ```
626
- */
627
- count(label) {
628
- const con = this.#getConsole();
629
- con.count(label);
630
- this[lastWasBlankSymbol](false);
631
- return this[incLogCallCountSymbol]();
632
- }
633
- /**
634
- * Creates a task that logs start and completion messages automatically.
635
- *
636
- * Returns a task object with a `run()` method that executes the provided
637
- * function and logs "Starting task: {name}" before execution and
638
- * "Completed task: {name}" after completion.
639
- *
640
- * @param name - The name of the task
641
- * @returns A task object with a `run()` method
642
- *
643
- * @example
644
- * ```typescript
645
- * const task = logger.createTask('Database Migration')
646
- * const result = task.run(() => {
647
- * // Logs: "Starting task: Database Migration"
648
- * migrateDatabase()
649
- * return 'success'
650
- * // Logs: "Completed task: Database Migration"
651
- * })
652
- * console.log(result) // 'success'
653
- * ```
654
- */
655
- createTask(name) {
656
- return {
657
- run: (f) => {
658
- this.log(`Starting task: ${name}`);
659
- const result = f();
660
- this.log(`Completed task: ${name}`);
661
- return result;
662
- }
663
- };
664
- }
665
- /**
666
- * Decreases the indentation level by removing spaces from the prefix.
667
- *
668
- * When called on the main logger, affects both stderr and stdout indentation.
669
- * When called on a stream-bound logger (`.stderr` or `.stdout`), affects
670
- * only that stream's indentation.
671
- *
672
- * @param spaces - Number of spaces to remove from indentation
673
- * @default 2
674
- * @returns The logger instance for chaining
675
- *
676
- * @example
677
- * ```typescript
678
- * logger.indent()
679
- * logger.log('Indented')
680
- * logger.dedent()
681
- * logger.log('Back to normal')
682
- *
683
- * // Remove custom amount
684
- * logger.indent(4)
685
- * logger.log('Four spaces')
686
- * logger.dedent(4)
687
- *
688
- * // Stream-specific dedent
689
- * logger.stdout.indent()
690
- * logger.stdout.log('Indented stdout')
691
- * logger.stdout.dedent()
692
- * ```
693
- */
694
- dedent(spaces = 2) {
695
- if (this.#boundStream) {
696
- const current = this.#getIndent(this.#boundStream);
697
- this.#setIndent(this.#boundStream, current.slice(0, -spaces));
698
- } else {
699
- const stderrCurrent = this.#getIndent("stderr");
700
- const stdoutCurrent = this.#getIndent("stdout");
701
- this.#setIndent("stderr", stderrCurrent.slice(0, -spaces));
702
- this.#setIndent("stdout", stdoutCurrent.slice(0, -spaces));
703
- }
704
- return this;
705
- }
706
- /**
707
- * Displays an object's properties in a formatted way.
708
- *
709
- * Works like `console.dir()` with customizable options for depth,
710
- * colors, etc. Useful for inspecting complex objects.
711
- *
712
- * @param obj - The object to display
713
- * @param options - Optional formatting options (Node.js inspect options)
714
- * @returns The logger instance for chaining
715
- *
716
- * @example
717
- * ```typescript
718
- * const obj = { a: 1, b: { c: 2, d: { e: 3 } } }
719
- * logger.dir(obj)
720
- * logger.dir(obj, { depth: 1 }) // Limit nesting depth
721
- * logger.dir(obj, { colors: true }) // Enable colors
722
- * ```
723
- */
724
- dir(obj, options) {
725
- const con = this.#getConsole();
726
- con.dir(obj, options);
727
- this[lastWasBlankSymbol](false);
728
- return this[incLogCallCountSymbol]();
729
- }
730
- /**
731
- * Displays data as XML/HTML in a formatted way.
732
- *
733
- * Works like `console.dirxml()`. In Node.js, behaves the same as `dir()`.
734
- *
735
- * @param data - The data to display
736
- * @returns The logger instance for chaining
737
- *
738
- * @example
739
- * ```typescript
740
- * logger.dirxml(document.body) // In browser environments
741
- * logger.dirxml(xmlObject) // In Node.js
742
- * ```
743
- */
744
- dirxml(...data) {
745
- const con = this.#getConsole();
746
- con.dirxml(data);
747
- this[lastWasBlankSymbol](false);
748
- return this[incLogCallCountSymbol]();
749
- }
750
- /**
751
- * Logs a completion message with a success symbol (alias for `success()`).
752
- *
753
- * Provides semantic clarity when marking something as "done". Does NOT
754
- * automatically clear the current line - call `clearLine()` first if
755
- * needed after using `progress()`.
756
- *
757
- * @param args - Message and additional arguments to log
758
- * @returns The logger instance for chaining
759
- *
760
- * @example
761
- * ```typescript
762
- * logger.done('Task completed')
763
- *
764
- * // After progress indicator
765
- * logger.progress('Processing...')
766
- * // ... do work ...
767
- * logger.clearLine()
768
- * logger.done('Processing complete')
769
- * ```
770
- */
771
- done(...args) {
772
- return this.#symbolApply("success", args);
773
- }
774
- /**
775
- * Logs an error message to stderr.
776
- *
777
- * Automatically applies current indentation. All arguments are formatted
778
- * and logged like `console.error()`.
779
- *
780
- * @param args - Message and additional arguments to log
781
- * @returns The logger instance for chaining
782
- *
783
- * @example
784
- * ```typescript
785
- * logger.error('Build failed')
786
- * logger.error('Error code:', 500)
787
- * logger.error('Details:', { message: 'Not found' })
788
- * ```
789
- */
790
- error(...args) {
791
- return this.#apply("error", args);
792
- }
793
- /**
794
- * Logs a newline to stderr only if the last line wasn't already blank.
795
- *
796
- * Prevents multiple consecutive blank lines. Useful for adding spacing
797
- * between sections without creating excessive whitespace.
798
- *
799
- * @returns The logger instance for chaining
800
- *
801
- * @example
802
- * ```typescript
803
- * logger.error('Error message')
804
- * logger.errorNewline() // Adds blank line
805
- * logger.errorNewline() // Does nothing (already blank)
806
- * logger.error('Next section')
807
- * ```
808
- */
809
- errorNewline() {
810
- return this.#getLastWasBlank("stderr") ? this : this.error("");
811
- }
812
- /**
813
- * Logs a failure message with a red colored fail symbol.
814
- *
815
- * Automatically prefixes the message with `LOG_SYMBOLS.fail` (red ✖).
816
- * Always outputs to stderr. If the message starts with an existing
817
- * symbol, it will be stripped and replaced.
818
- *
819
- * @param args - Message and additional arguments to log
820
- * @returns The logger instance for chaining
821
- *
822
- * @example
823
- * ```typescript
824
- * logger.fail('Build failed')
825
- * logger.fail('Test suite failed:', { passed: 5, failed: 3 })
826
- * ```
827
- */
828
- fail(...args) {
829
- return this.#symbolApply("fail", args);
830
- }
831
- /**
832
- * Starts a new indented log group.
833
- *
834
- * If a label is provided, it's logged before increasing indentation.
835
- * Groups can be nested. Each group increases indentation by the
836
- * `kGroupIndentWidth` (default 2 spaces). Call `groupEnd()` to close.
837
- *
838
- * @param label - Optional label to display before the group
839
- * @returns The logger instance for chaining
840
- *
841
- * @example
842
- * ```typescript
843
- * logger.group('Processing files:')
844
- * logger.log('file1.js')
845
- * logger.log('file2.js')
846
- * logger.groupEnd()
847
- *
848
- * // Nested groups
849
- * logger.group('Outer')
850
- * logger.log('Outer content')
851
- * logger.group('Inner')
852
- * logger.log('Inner content')
853
- * logger.groupEnd()
854
- * logger.groupEnd()
855
- * ```
856
- */
857
- group(...label) {
858
- const { length } = label;
859
- if (length) {
860
- (0, import_primordials.ReflectApply)(this.log, this, label);
861
- }
862
- this.indent(this[getKGroupIndentationWidthSymbol()]);
863
- if (length) {
864
- ;
865
- this[lastWasBlankSymbol](false);
866
- this[incLogCallCountSymbol]();
867
- }
868
- return this;
869
- }
870
- /**
871
- * Starts a new collapsed log group (alias for `group()`).
872
- *
873
- * In browser consoles, this creates a collapsed group. In Node.js,
874
- * it behaves identically to `group()`.
875
- *
876
- * @param label - Optional label to display before the group
877
- * @returns The logger instance for chaining
878
- *
879
- * @example
880
- * ```typescript
881
- * logger.groupCollapsed('Details')
882
- * logger.log('Hidden by default in browsers')
883
- * logger.groupEnd()
884
- * ```
885
- */
886
- // groupCollapsed is an alias of group.
887
- // https://nodejs.org/api/console.html#consolegroupcollapsed
888
- groupCollapsed(...label) {
889
- return (0, import_primordials.ReflectApply)(this.group, this, label);
890
- }
891
- /**
892
- * Ends the current log group and decreases indentation.
893
- *
894
- * Must be called once for each `group()` or `groupCollapsed()` call
895
- * to properly close the group and restore indentation.
896
- *
897
- * @returns The logger instance for chaining
898
- *
899
- * @example
900
- * ```typescript
901
- * logger.group('Group 1')
902
- * logger.log('Content')
903
- * logger.groupEnd() // Closes 'Group 1'
904
- * ```
905
- */
906
- groupEnd() {
907
- this.dedent(this[getKGroupIndentationWidthSymbol()]);
908
- return this;
909
- }
910
- /**
911
- * Increases the indentation level by adding spaces to the prefix.
912
- *
913
- * When called on the main logger, affects both stderr and stdout indentation.
914
- * When called on a stream-bound logger (`.stderr` or `.stdout`), affects
915
- * only that stream's indentation. Maximum indentation is 1000 spaces.
916
- *
917
- * @param spaces - Number of spaces to add to indentation
918
- * @default 2
919
- * @returns The logger instance for chaining
920
- *
921
- * @example
922
- * ```typescript
923
- * logger.log('Level 0')
924
- * logger.indent()
925
- * logger.log('Level 1')
926
- * logger.indent()
927
- * logger.log('Level 2')
928
- * logger.dedent()
929
- * logger.dedent()
930
- *
931
- * // Custom indent amount
932
- * logger.indent(4)
933
- * logger.log('Indented 4 spaces')
934
- * logger.dedent(4)
935
- *
936
- * // Stream-specific indent
937
- * logger.stdout.indent()
938
- * logger.stdout.log('Only stdout is indented')
939
- * ```
940
- */
941
- indent(spaces = 2) {
942
- const spacesToAdd = " ".repeat((0, import_primordials.MathMin)(spaces, maxIndentation));
943
- if (this.#boundStream) {
944
- const current = this.#getIndent(this.#boundStream);
945
- this.#setIndent(this.#boundStream, current + spacesToAdd);
946
- } else {
947
- const stderrCurrent = this.#getIndent("stderr");
948
- const stdoutCurrent = this.#getIndent("stdout");
949
- this.#setIndent("stderr", stderrCurrent + spacesToAdd);
950
- this.#setIndent("stdout", stdoutCurrent + spacesToAdd);
951
- }
952
- return this;
953
- }
954
- /**
955
- * Logs an informational message with a blue colored info symbol.
956
- *
957
- * Automatically prefixes the message with `LOG_SYMBOLS.info` (blue ℹ).
958
- * Always outputs to stderr. If the message starts with an existing
959
- * symbol, it will be stripped and replaced.
960
- *
961
- * @param args - Message and additional arguments to log
962
- * @returns The logger instance for chaining
963
- *
964
- * @example
965
- * ```typescript
966
- * logger.info('Starting build process')
967
- * logger.info('Configuration loaded:', config)
968
- * logger.info('Using cache directory:', cacheDir)
969
- * ```
970
- */
971
- info(...args) {
972
- return this.#symbolApply("info", args);
973
- }
974
- /**
975
- * Logs a message to stdout.
976
- *
977
- * Automatically applies current indentation. All arguments are formatted
978
- * and logged like `console.log()`. This is the primary method for
979
- * standard output.
980
- *
981
- * @param args - Message and additional arguments to log
982
- * @returns The logger instance for chaining
983
- *
984
- * @example
985
- * ```typescript
986
- * logger.log('Processing complete')
987
- * logger.log('Items processed:', 42)
988
- * logger.log('Results:', { success: true, count: 10 })
989
- *
990
- * // Method chaining
991
- * logger.log('Step 1').log('Step 2').log('Step 3')
992
- * ```
993
- */
994
- log(...args) {
995
- return this.#apply("log", args);
996
- }
997
- /**
998
- * Logs a newline to stdout only if the last line wasn't already blank.
999
- *
1000
- * Prevents multiple consecutive blank lines. Useful for adding spacing
1001
- * between sections without creating excessive whitespace.
1002
- *
1003
- * @returns The logger instance for chaining
1004
- *
1005
- * @example
1006
- * ```typescript
1007
- * logger.log('Section 1')
1008
- * logger.logNewline() // Adds blank line
1009
- * logger.logNewline() // Does nothing (already blank)
1010
- * logger.log('Section 2')
1011
- * ```
1012
- */
1013
- logNewline() {
1014
- return this.#getLastWasBlank("stdout") ? this : this.log("");
1015
- }
1016
- /**
1017
- * Shows a progress indicator that can be cleared with `clearLine()`.
1018
- *
1019
- * Displays a simple status message with a '∴' prefix. Does not include
1020
- * animation or spinner. Intended to be cleared once the operation completes.
1021
- * The output stream (stderr or stdout) depends on whether the logger is
1022
- * stream-bound.
1023
- *
1024
- * @param text - The progress message to display
1025
- * @returns The logger instance for chaining
1026
- *
1027
- * @example
1028
- * ```typescript
1029
- * logger.progress('Processing files...')
1030
- * // ... do work ...
1031
- * logger.clearLine()
1032
- * logger.success('Files processed')
1033
- *
1034
- * // Stream-specific progress
1035
- * logger.stdout.progress('Loading...')
1036
- * // ... do work ...
1037
- * logger.stdout.clearLine()
1038
- * logger.stdout.log('Done')
1039
- * ```
1040
- */
1041
- progress(text) {
1042
- const con = this.#getConsole();
1043
- const stream = this.#getTargetStream();
1044
- const streamObj = stream === "stderr" ? con["_stderr"] : con["_stdout"];
1045
- const symbols = this.#getSymbols();
1046
- streamObj.write(`${symbols.progress} ${text}`);
1047
- this[lastWasBlankSymbol](false);
1048
- return this;
1049
- }
1050
- /**
1051
- * Resets all indentation to zero.
1052
- *
1053
- * When called on the main logger, resets both stderr and stdout indentation.
1054
- * When called on a stream-bound logger (`.stderr` or `.stdout`), resets
1055
- * only that stream's indentation.
1056
- *
1057
- * @returns The logger instance for chaining
1058
- *
1059
- * @example
1060
- * ```typescript
1061
- * logger.indent().indent().indent()
1062
- * logger.log('Very indented')
1063
- * logger.resetIndent()
1064
- * logger.log('Back to zero indentation')
1065
- *
1066
- * // Reset only stdout
1067
- * logger.stdout.resetIndent()
1068
- * ```
1069
- */
1070
- resetIndent() {
1071
- if (this.#boundStream) {
1072
- this.#setIndent(this.#boundStream, "");
1073
- } else {
1074
- this.#setIndent("stderr", "");
1075
- this.#setIndent("stdout", "");
1076
- }
1077
- return this;
1078
- }
1079
- /**
1080
- * Logs a skip message with a cyan colored skip symbol.
1081
- *
1082
- * Automatically prefixes the message with `LOG_SYMBOLS.skip` (cyan ↻).
1083
- * Always outputs to stderr. If the message starts with an existing
1084
- * symbol, it will be stripped and replaced.
1085
- *
1086
- * @param args - Message and additional arguments to log
1087
- * @returns The logger instance for chaining
1088
- *
1089
- * @example
1090
- * ```typescript
1091
- * logger.skip('Test skipped due to environment')
1092
- * logger.skip('Skipping optional step')
1093
- * logger.skip('Feature disabled, skipping')
1094
- * ```
1095
- */
1096
- skip(...args) {
1097
- return this.#symbolApply("skip", args);
1098
- }
1099
- /**
1100
- * Logs a main step message with a cyan arrow symbol and blank line before it.
1101
- *
1102
- * Automatically prefixes the message with `LOG_SYMBOLS.step` (cyan →) and
1103
- * adds a blank line before the message unless the last line was already blank.
1104
- * Useful for marking major steps in a process with clear visual separation.
1105
- * Always outputs to stdout. If the message starts with an existing symbol,
1106
- * it will be stripped and replaced.
1107
- *
1108
- * @param msg - The step message to log
1109
- * @param extras - Additional arguments to log
1110
- * @returns The logger instance for chaining
1111
- *
1112
- * @example
1113
- * ```typescript
1114
- * logger.step('Building project')
1115
- * logger.log('Compiling TypeScript...')
1116
- * logger.step('Running tests')
1117
- * logger.log('Running test suite...')
1118
- * // Output:
1119
- * // [blank line]
1120
- * // → Building project
1121
- * // Compiling TypeScript...
1122
- * // [blank line]
1123
- * // → Running tests
1124
- * // Running test suite...
1125
- * ```
1126
- */
1127
- step(msg, ...extras) {
1128
- if (!this.#getLastWasBlank("stdout")) {
1129
- this.log("");
1130
- }
1131
- const text = this.#stripSymbols(msg);
1132
- const indent = this.#getIndent("stdout");
1133
- const symbols = this.#getSymbols();
1134
- const con = this.#getConsole();
1135
- con.log(
1136
- (0, import_strings.applyLinePrefix)(`${symbols.step} ${text}`, {
1137
- prefix: indent
1138
- }),
1139
- ...extras
1140
- );
1141
- this[lastWasBlankSymbol](false, "stdout");
1142
- this[incLogCallCountSymbol]();
1143
- return this;
1144
- }
1145
- /**
1146
- * Logs an indented substep message (stateless).
1147
- *
1148
- * Adds a 2-space indent to the message without affecting the logger's
1149
- * indentation state. Useful for showing sub-items under a main step.
1150
- *
1151
- * @param msg - The substep message to log
1152
- * @param extras - Additional arguments to log
1153
- * @returns The logger instance for chaining
1154
- *
1155
- * @example
1156
- * ```typescript
1157
- * logger.log('Installing dependencies:')
1158
- * logger.substep('Installing react')
1159
- * logger.substep('Installing typescript')
1160
- * logger.substep('Installing eslint')
1161
- * // Output:
1162
- * // Installing dependencies:
1163
- * // Installing react
1164
- * // Installing typescript
1165
- * // Installing eslint
1166
- * ```
1167
- */
1168
- substep(msg, ...extras) {
1169
- const indentedMsg = ` ${msg}`;
1170
- return this.log(indentedMsg, ...extras);
1171
- }
1172
- /**
1173
- * Logs a success message with a green colored success symbol.
1174
- *
1175
- * Automatically prefixes the message with `LOG_SYMBOLS.success` (green ✔).
1176
- * Always outputs to stderr. If the message starts with an existing
1177
- * symbol, it will be stripped and replaced.
1178
- *
1179
- * @param args - Message and additional arguments to log
1180
- * @returns The logger instance for chaining
1181
- *
1182
- * @example
1183
- * ```typescript
1184
- * logger.success('Build completed')
1185
- * logger.success('Tests passed:', { total: 42, passed: 42 })
1186
- * logger.success('Deployment successful')
1187
- * ```
1188
- */
1189
- success(...args) {
1190
- return this.#symbolApply("success", args);
1191
- }
1192
- /**
1193
- * Displays data in a table format.
1194
- *
1195
- * Works like `console.table()`. Accepts arrays of objects or
1196
- * objects with nested objects. Optionally specify which properties
1197
- * to include in the table.
1198
- *
1199
- * @param tabularData - The data to display as a table
1200
- * @param properties - Optional array of property names to include
1201
- * @returns The logger instance for chaining
1202
- *
1203
- * @example
1204
- * ```typescript
1205
- * // Array of objects
1206
- * logger.table([
1207
- * { name: 'Alice', age: 30 },
1208
- * { name: 'Bob', age: 25 }
1209
- * ])
1210
- *
1211
- * // Specify properties to show
1212
- * logger.table(users, ['name', 'email'])
1213
- *
1214
- * // Object with nested objects
1215
- * logger.table({
1216
- * user1: { name: 'Alice', age: 30 },
1217
- * user2: { name: 'Bob', age: 25 }
1218
- * })
1219
- * ```
1220
- */
1221
- table(tabularData, properties) {
1222
- const con = this.#getConsole();
1223
- con.table(tabularData, properties);
1224
- this[lastWasBlankSymbol](false);
1225
- return this[incLogCallCountSymbol]();
1226
- }
1227
- /**
1228
- * Starts a timer for measuring elapsed time.
1229
- *
1230
- * Creates a timer with the given label. Use `timeEnd()` with the same
1231
- * label to stop the timer and log the elapsed time, or use `timeLog()`
1232
- * to check the time without stopping the timer.
1233
- *
1234
- * @param label - Optional label for the timer
1235
- * @default 'default'
1236
- * @returns The logger instance for chaining
1237
- *
1238
- * @example
1239
- * ```typescript
1240
- * logger.time('operation')
1241
- * // ... do work ...
1242
- * logger.timeEnd('operation')
1243
- * // Logs: "operation: 123.456ms"
1244
- *
1245
- * logger.time()
1246
- * // ... do work ...
1247
- * logger.timeEnd()
1248
- * // Logs: "default: 123.456ms"
1249
- * ```
1250
- */
1251
- time(label) {
1252
- const con = this.#getConsole();
1253
- con.time(label);
1254
- return this;
1255
- }
1256
- /**
1257
- * Ends a timer and logs the elapsed time.
1258
- *
1259
- * Logs the duration since `console.time()` or `logger.time()` was called
1260
- * with the same label. The timer is stopped and removed.
1261
- *
1262
- * @param label - Optional label for the timer
1263
- * @default 'default'
1264
- * @returns The logger instance for chaining
1265
- *
1266
- * @example
1267
- * ```typescript
1268
- * logger.time('operation')
1269
- * // ... do work ...
1270
- * logger.timeEnd('operation')
1271
- * // Logs: "operation: 123.456ms"
1272
- *
1273
- * logger.time()
1274
- * // ... do work ...
1275
- * logger.timeEnd()
1276
- * // Logs: "default: 123.456ms"
1277
- * ```
1278
- */
1279
- timeEnd(label) {
1280
- const con = this.#getConsole();
1281
- con.timeEnd(label);
1282
- this[lastWasBlankSymbol](false);
1283
- return this[incLogCallCountSymbol]();
1284
- }
1285
- /**
1286
- * Logs the current value of a timer without stopping it.
1287
- *
1288
- * Logs the duration since `console.time()` was called with the same
1289
- * label, but keeps the timer running. Can include additional data
1290
- * to log alongside the time.
1291
- *
1292
- * @param label - Optional label for the timer
1293
- * @param data - Additional data to log with the time
1294
- * @default 'default'
1295
- * @returns The logger instance for chaining
1296
- *
1297
- * @example
1298
- * ```typescript
1299
- * console.time('process')
1300
- * // ... partial work ...
1301
- * logger.timeLog('process', 'Checkpoint 1')
1302
- * // Logs: "process: 123.456ms Checkpoint 1"
1303
- * // ... more work ...
1304
- * logger.timeLog('process', 'Checkpoint 2')
1305
- * // Logs: "process: 234.567ms Checkpoint 2"
1306
- * console.timeEnd('process')
1307
- * ```
1308
- */
1309
- timeLog(label, ...data) {
1310
- const con = this.#getConsole();
1311
- con.timeLog(label, ...data);
1312
- this[lastWasBlankSymbol](false);
1313
- return this[incLogCallCountSymbol]();
1314
- }
1315
- /**
1316
- * Logs a stack trace to the console.
1317
- *
1318
- * Works like `console.trace()`. Shows the call stack leading to
1319
- * where this method was called. Useful for debugging.
1320
- *
1321
- * @param message - Optional message to display with the trace
1322
- * @param args - Additional arguments to log
1323
- * @returns The logger instance for chaining
1324
- *
1325
- * @example
1326
- * ```typescript
1327
- * function debugFunction() {
1328
- * logger.trace('Debug point reached')
1329
- * }
1330
- *
1331
- * logger.trace('Trace from here')
1332
- * logger.trace('Error context:', { userId: 123 })
1333
- * ```
1334
- */
1335
- trace(message, ...args) {
1336
- const con = this.#getConsole();
1337
- con.trace(message, ...args);
1338
- this[lastWasBlankSymbol](false);
1339
- return this[incLogCallCountSymbol]();
1340
- }
1341
- /**
1342
- * Logs a warning message with a yellow colored warning symbol.
1343
- *
1344
- * Automatically prefixes the message with `LOG_SYMBOLS.warn` (yellow ⚠).
1345
- * Always outputs to stderr. If the message starts with an existing
1346
- * symbol, it will be stripped and replaced.
1347
- *
1348
- * @param args - Message and additional arguments to log
1349
- * @returns The logger instance for chaining
1350
- *
1351
- * @example
1352
- * ```typescript
1353
- * logger.warn('Deprecated API used')
1354
- * logger.warn('Low memory:', { available: '100MB' })
1355
- * logger.warn('Missing optional configuration')
1356
- * ```
1357
- */
1358
- warn(...args) {
1359
- return this.#symbolApply("warn", args);
1360
- }
1361
- /**
1362
- * Writes text directly to stdout without a newline or indentation.
1363
- *
1364
- * Useful for progress indicators or custom formatting where you need
1365
- * low-level control. Does not apply any indentation or formatting.
1366
- *
1367
- * @param text - The text to write
1368
- * @returns The logger instance for chaining
1369
- *
1370
- * @example
1371
- * ```typescript
1372
- * logger.write('Processing... ')
1373
- * // ... do work ...
1374
- * logger.write('done\n')
1375
- *
1376
- * // Build a line incrementally
1377
- * logger.write('Step 1')
1378
- * logger.write('... Step 2')
1379
- * logger.write('... Step 3\n')
1380
- * ```
1381
- */
1382
- write(text) {
1383
- const con = this.#getConsole();
1384
- const ctorArgs = privateConstructorArgs.get(this) ?? [];
1385
- const stdout = this.#originalStdout || ctorArgs[0]?.stdout || con._stdout;
1386
- stdout.write(text);
1387
- this[lastWasBlankSymbol](false);
1388
- return this;
1389
- }
1390
- }
1391
- // @__NO_SIDE_EFFECTS__
1392
- function applyColor(text, color, colors) {
1393
- if (typeof color === "string") {
1394
- return colors[color](text);
1395
- }
1396
- const { 0: r, 1: g, 2: b } = color;
1397
- return `\x1B[38;2;${r};${g};${b}m${text}\x1B[39m`;
1398
- }
1399
- // @__NO_SIDE_EFFECTS__
1400
- function constructConsole(...args) {
1401
- if (_Console === void 0) {
1402
- const nodeConsole = require("node:console");
1403
- _Console = nodeConsole.Console;
1404
- }
1405
- return (0, import_primordials.ReflectConstruct)(
1406
- _Console,
1407
- // eslint-disable-line no-undef
1408
- args
1409
- );
1410
- }
1411
- function ensurePrototypeInitialized() {
1412
- if (_prototypeInitialized) {
1413
- return;
1414
- }
1415
- _prototypeInitialized = true;
1416
- const entries = [
1417
- [
1418
- getKGroupIndentationWidthSymbol(),
1419
- {
1420
- ...consolePropAttributes,
1421
- value: 2
1422
- }
1423
- ],
1424
- [
1425
- Symbol.toStringTag,
1426
- {
1427
- __proto__: null,
1428
- configurable: true,
1429
- value: "logger"
1430
- }
1431
- ]
1432
- ];
1433
- for (const { 0: key, 1: value } of (0, import_primordials.ObjectEntries)(globalConsole)) {
1434
- if (!Logger.prototype[key] && typeof value === "function") {
1435
- const { [key]: func } = {
1436
- [key](...args) {
1437
- let con = privateConsole.get(this);
1438
- if (con === void 0) {
1439
- const ctorArgs = privateConstructorArgs.get(this) ?? [];
1440
- privateConstructorArgs.delete(this);
1441
- if (ctorArgs.length) {
1442
- con = /* @__PURE__ */ constructConsole(...ctorArgs);
1443
- } else {
1444
- con = /* @__PURE__ */ constructConsole({
1445
- stdout: import_node_process.default.stdout,
1446
- stderr: import_node_process.default.stderr
1447
- });
1448
- for (const { 0: k, 1: method } of boundConsoleEntries) {
1449
- con[k] = method;
1450
- }
1451
- }
1452
- privateConsole.set(this, con);
1453
- }
1454
- const result = con[key](...args);
1455
- return result === void 0 || result === con ? this : result;
1456
- }
1457
- };
1458
- entries.push([
1459
- key,
1460
- {
1461
- ...consolePropAttributes,
1462
- value: func
1463
- }
1464
- ]);
1465
- }
1466
- }
1467
- (0, import_primordials.ObjectDefineProperties)(Logger.prototype, Object.fromEntries(entries));
1468
- }
1469
- function getConsoleSymbols() {
1470
- if (_consoleSymbols === void 0) {
1471
- _consoleSymbols = (0, import_primordials.ObjectGetOwnPropertySymbols)(globalConsole);
1472
- }
1473
- return _consoleSymbols;
1474
- }
1475
- function getKGroupIndentationWidthSymbol() {
1476
- if (_kGroupIndentationWidthSymbol === void 0) {
1477
- _kGroupIndentationWidthSymbol = getConsoleSymbols().find((s) => s.label === "kGroupIndentWidth") ?? Symbol("kGroupIndentWidth");
1478
- }
1479
- return _kGroupIndentationWidthSymbol;
1480
- }
1481
- // @__NO_SIDE_EFFECTS__
1482
- function getYoctocolors() {
1483
- return import_yoctocolors_cjs.default;
1484
- }
1485
- function getDefaultLogger() {
1486
- if (_logger === void 0) {
1487
- _logger = new Logger();
1488
- }
1489
- return _logger;
1490
- }
1491
- // Annotate the CommonJS export names for ESM import in node:
1492
- 0 && (module.exports = {
1493
- LOG_SYMBOLS,
1494
- Logger,
1495
- getDefaultLogger,
1496
- incLogCallCountSymbol,
1497
- lastWasBlankSymbol
1498
- });