@socketsecurity/lib 6.0.6 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +3 -2
  4. package/dist/ai/spawn.js +2 -1
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +1 -1
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +3 -5
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/exec.js +2 -3
  27. package/dist/bin/find.js +13 -13
  28. package/dist/bin/prim.cjs +22736 -22556
  29. package/dist/bin/resolve.js +12 -13
  30. package/dist/bin/which.js +8 -8
  31. package/dist/cache/ttl/store.js +5 -5
  32. package/dist/checks/primordials-defaults.d.ts +3 -3
  33. package/dist/checks/primordials-defaults.js +3 -3
  34. package/dist/checks/primordials.js +4 -3
  35. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  36. package/dist/{bin → cli}/check-primordials.js +55 -52
  37. package/dist/{bin → cli}/check.js +3 -3
  38. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  39. package/dist/{bin → cli}/socket-lib.js +4 -4
  40. package/dist/colors/socket-palette.js +7 -9
  41. package/dist/compression/_internal.d.ts +12 -12
  42. package/dist/compression/_internal.js +17 -17
  43. package/dist/compression/brotli.d.ts +25 -25
  44. package/dist/compression/brotli.js +33 -33
  45. package/dist/compression/gzip.d.ts +23 -23
  46. package/dist/compression/gzip.js +40 -40
  47. package/dist/constants/agents.d.ts +3 -1
  48. package/dist/constants/agents.js +15 -11
  49. package/dist/constants/licenses.js +3 -3
  50. package/dist/constants/node.d.ts +23 -0
  51. package/dist/constants/node.js +47 -15
  52. package/dist/constants/packages.js +22 -28
  53. package/dist/constants/platform.d.ts +30 -3
  54. package/dist/constants/platform.js +72 -12
  55. package/dist/constants/runtime.d.ts +22 -0
  56. package/dist/constants/runtime.js +32 -0
  57. package/dist/constants/socket.js +1 -1
  58. package/dist/cover/code.js +8 -8
  59. package/dist/cover/formatters.js +5 -5
  60. package/dist/crypto/hash.d.ts +26 -1
  61. package/dist/crypto/hash.js +43 -12
  62. package/dist/debug/_internal.js +4 -6
  63. package/dist/debug/caller-info.js +2 -3
  64. package/dist/debug/namespace.d.ts +7 -0
  65. package/dist/debug/namespace.js +21 -12
  66. package/dist/debug/output.js +21 -24
  67. package/dist/debug/types.d.ts +4 -4
  68. package/dist/dlx/arborist.js +6 -6
  69. package/dist/dlx/binary-cache.js +14 -14
  70. package/dist/dlx/binary-download.d.ts +1 -1
  71. package/dist/dlx/binary-download.js +11 -11
  72. package/dist/dlx/binary-resolution.js +16 -14
  73. package/dist/dlx/binary-types.d.ts +5 -5
  74. package/dist/dlx/binary.js +5 -5
  75. package/dist/dlx/cache.js +1 -1
  76. package/dist/dlx/detect.d.ts +34 -25
  77. package/dist/dlx/detect.js +86 -77
  78. package/dist/dlx/dir.js +2 -2
  79. package/dist/dlx/firewall.d.ts +1 -1
  80. package/dist/dlx/lockfile.d.ts +19 -18
  81. package/dist/dlx/lockfile.js +16 -16
  82. package/dist/dlx/manifest.d.ts +6 -6
  83. package/dist/dlx/manifest.js +5 -5
  84. package/dist/dlx/package.d.ts +10 -10
  85. package/dist/dlx/package.js +16 -16
  86. package/dist/dlx/packages.js +4 -4
  87. package/dist/dlx/paths.js +7 -7
  88. package/dist/dlx/spec.js +1 -1
  89. package/dist/dlx/types.d.ts +28 -27
  90. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  91. package/dist/eco/cargo/parse-lockfile.js +2 -2
  92. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  93. package/dist/eco/manifest/detect-format.js +4 -4
  94. package/dist/eco/manifest/find-packages.js +2 -2
  95. package/dist/eco/manifest/get-package-versions.js +2 -2
  96. package/dist/eco/manifest/get-package.js +2 -2
  97. package/dist/eco/manifest/parse-lockfile.js +2 -2
  98. package/dist/eco/manifest/parse-manifest.js +2 -2
  99. package/dist/eco/manifest/parse.js +2 -2
  100. package/dist/eco/npm/npm/exec.js +2 -2
  101. package/dist/eco/npm/npm/flags.js +7 -12
  102. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  103. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  104. package/dist/eco/npm/parse-package-json.js +3 -3
  105. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  106. package/dist/eco/npm/pnpm/exec.js +5 -5
  107. package/dist/eco/npm/pnpm/flags.js +0 -3
  108. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  109. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  110. package/dist/eco/npm/script.js +9 -6
  111. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  112. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  113. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  114. package/dist/effects/pulse-frames.d.ts +3 -1
  115. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  116. package/dist/effects/shimmer-terminal.d.ts +1 -1
  117. package/dist/env/boolean.js +0 -1
  118. package/dist/env/ci.js +0 -1
  119. package/dist/env/debug.js +0 -1
  120. package/dist/env/github-status.d.ts +51 -0
  121. package/dist/env/github-status.js +90 -0
  122. package/dist/env/github.js +0 -8
  123. package/dist/env/home.js +0 -1
  124. package/dist/env/locale.js +0 -3
  125. package/dist/env/node-auth-token.js +0 -1
  126. package/dist/env/node-env.js +0 -1
  127. package/dist/env/node-version-managers.d.ts +53 -0
  128. package/dist/env/node-version-managers.js +90 -0
  129. package/dist/env/npm.js +0 -5
  130. package/dist/env/number.js +0 -1
  131. package/dist/env/package-manager.js +3 -6
  132. package/dist/env/path.js +0 -1
  133. package/dist/env/pre-commit.js +1 -2
  134. package/dist/env/rewire.d.ts +7 -6
  135. package/dist/env/rewire.js +15 -16
  136. package/dist/env/shell.js +0 -1
  137. package/dist/env/socket-cli.js +5 -18
  138. package/dist/env/socket-mcp.d.ts +114 -0
  139. package/dist/env/socket-mcp.js +146 -0
  140. package/dist/env/socket.d.ts +1 -109
  141. package/dist/env/socket.js +12 -167
  142. package/dist/env/string.js +0 -1
  143. package/dist/env/temp-dir.js +0 -3
  144. package/dist/env/term.js +0 -1
  145. package/dist/env/test.js +3 -6
  146. package/dist/env/windows.js +0 -4
  147. package/dist/env/xdg.js +0 -3
  148. package/dist/events/exit/_internal.d.ts +11 -9
  149. package/dist/events/exit/_internal.js +31 -35
  150. package/dist/events/exit/handler.js +3 -4
  151. package/dist/events/exit/intercept.js +4 -6
  152. package/dist/events/exit/lifecycle.js +16 -18
  153. package/dist/events/exit/signals.js +1 -2
  154. package/dist/events/exit/types.d.ts +6 -5
  155. package/dist/external/@npmcli/package-json.js +2 -2
  156. package/dist/external/npm-pack.js +2 -2
  157. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  158. package/dist/external-tools/bazel/types.d.ts +1 -1
  159. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  160. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  161. package/dist/external-tools/from-download.d.ts +1 -1
  162. package/dist/external-tools/from-download.js +1 -1
  163. package/dist/external-tools/janus/from-vfs.js +1 -1
  164. package/dist/external-tools/janus/types.d.ts +1 -1
  165. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  166. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  167. package/dist/external-tools/jre/from-vfs.js +1 -1
  168. package/dist/external-tools/jre/types.d.ts +1 -1
  169. package/dist/external-tools/manifest.d.ts +7 -7
  170. package/dist/external-tools/manifest.js +12 -12
  171. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  172. package/dist/external-tools/opengrep/types.d.ts +1 -1
  173. package/dist/external-tools/python/asset-names.d.ts +76 -0
  174. package/dist/external-tools/python/asset-names.js +104 -0
  175. package/dist/external-tools/python/dlx.d.ts +80 -0
  176. package/dist/external-tools/python/dlx.js +87 -0
  177. package/dist/external-tools/python/from-download.d.ts +53 -0
  178. package/dist/external-tools/python/from-download.js +68 -0
  179. package/dist/external-tools/python/from-path.d.ts +7 -0
  180. package/dist/external-tools/python/from-path.js +23 -0
  181. package/dist/external-tools/python/pin.d.ts +121 -0
  182. package/dist/external-tools/python/pin.js +173 -0
  183. package/dist/external-tools/python/pip-install.d.ts +75 -0
  184. package/dist/external-tools/python/pip-install.js +139 -0
  185. package/dist/external-tools/python/resolve.d.ts +42 -0
  186. package/dist/external-tools/python/resolve.js +58 -0
  187. package/dist/external-tools/python/types.d.ts +49 -0
  188. package/dist/external-tools/sbt/from-vfs.js +1 -1
  189. package/dist/external-tools/sbt/types.d.ts +1 -1
  190. package/dist/external-tools/skillspector/from-path.js +3 -5
  191. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  192. package/dist/external-tools/synp/from-download.js +2 -2
  193. package/dist/external-tools/synp/from-vfs.js +1 -1
  194. package/dist/external-tools/trivy/from-vfs.js +1 -1
  195. package/dist/external-tools/trivy/types.d.ts +1 -1
  196. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  197. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  198. package/dist/fs/_internal.d.ts +1 -1
  199. package/dist/fs/_internal.js +7 -7
  200. package/dist/fs/access.js +5 -9
  201. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  202. package/dist/fs/encoding.js +5 -7
  203. package/dist/fs/{find-up.js → find.js} +11 -13
  204. package/dist/fs/inspect.js +7 -13
  205. package/dist/fs/read-dir.js +7 -10
  206. package/dist/fs/read-file.js +8 -14
  207. package/dist/fs/read-json-cache.d.ts +6 -4
  208. package/dist/fs/read-json-cache.js +9 -6
  209. package/dist/fs/read-json.js +4 -6
  210. package/dist/fs/resolve-module.js +1 -1
  211. package/dist/fs/safe.d.ts +1 -1
  212. package/dist/fs/safe.js +12 -13
  213. package/dist/fs/unique.js +4 -5
  214. package/dist/fs/validate.js +1 -2
  215. package/dist/fs/write-json.js +4 -5
  216. package/dist/git/_internal.js +10 -10
  217. package/dist/git/changed.js +4 -4
  218. package/dist/git/repo.js +3 -3
  219. package/dist/git/staged.js +4 -4
  220. package/dist/git/unstaged.js +4 -4
  221. package/dist/github/ghsa.js +2 -2
  222. package/dist/github/refs-cache.d.ts +1 -1
  223. package/dist/github/refs-cache.js +5 -5
  224. package/dist/github/refs-rest.js +5 -5
  225. package/dist/github/{fetch.js → request.js} +13 -2
  226. package/dist/github/token.js +1 -1
  227. package/dist/github/types.d.ts +1 -1
  228. package/dist/globs/_internal.js +7 -9
  229. package/dist/globs/match.js +4 -6
  230. package/dist/globs/matcher.d.ts +3 -3
  231. package/dist/globs/matcher.js +12 -14
  232. package/dist/globs/stream.js +1 -2
  233. package/dist/globs/types.d.ts +24 -24
  234. package/dist/http-request/_internal.d.ts +1 -1
  235. package/dist/http-request/browser.js +4 -2
  236. package/dist/http-request/checksum-file.d.ts +55 -0
  237. package/dist/http-request/checksum-file.js +95 -0
  238. package/dist/http-request/download-types.d.ts +15 -23
  239. package/dist/http-request/download.js +3 -3
  240. package/dist/http-request/headers.js +0 -1
  241. package/dist/http-request/request-attempt.js +37 -33
  242. package/dist/http-request/request-types.d.ts +2 -2
  243. package/dist/http-request/request.js +1 -1
  244. package/dist/http-request/user-agent.js +3 -4
  245. package/dist/integrity.d.ts +86 -18
  246. package/dist/integrity.js +119 -30
  247. package/dist/ipc/directory.js +2 -2
  248. package/dist/ipc/paths.js +1 -1
  249. package/dist/ipc/write.js +1 -1
  250. package/dist/ipc-cli/get.js +12 -12
  251. package/dist/json/edit.js +13 -14
  252. package/dist/json/format.js +2 -2
  253. package/dist/json/parse.d.ts +1 -1
  254. package/dist/json/parse.js +3 -7
  255. package/dist/logger/_internal.d.ts +4 -4
  256. package/dist/logger/_internal.js +3 -3
  257. package/dist/logger/colors.js +4 -3
  258. package/dist/logger/console-methods.d.ts +132 -0
  259. package/dist/logger/console-methods.js +169 -0
  260. package/dist/logger/console.d.ts +12 -0
  261. package/dist/logger/console.js +42 -11
  262. package/dist/logger/indentation-methods.d.ts +81 -0
  263. package/dist/logger/indentation-methods.js +121 -0
  264. package/dist/logger/node.d.ts +16 -338
  265. package/dist/logger/node.js +75 -608
  266. package/dist/logger/options.d.ts +39 -0
  267. package/dist/logger/options.js +47 -0
  268. package/dist/logger/semantic-methods.d.ts +63 -0
  269. package/dist/logger/semantic-methods.js +108 -0
  270. package/dist/logger/stream-methods.d.ts +63 -0
  271. package/dist/logger/stream-methods.js +101 -0
  272. package/dist/logger/stream.d.ts +37 -0
  273. package/dist/logger/stream.js +42 -0
  274. package/dist/logger/symbols-builder.js +9 -9
  275. package/dist/logger/symbols.d.ts +2 -25
  276. package/dist/logger/symbols.js +53 -74
  277. package/dist/logger/types.d.ts +1 -1
  278. package/dist/memo/types.d.ts +6 -6
  279. package/dist/native-messaging/host.d.ts +20 -0
  280. package/dist/native-messaging/host.js +120 -0
  281. package/dist/native-messaging/index.d.ts +5 -0
  282. package/dist/native-messaging/index.js +22 -0
  283. package/dist/native-messaging/install.d.ts +60 -0
  284. package/dist/native-messaging/install.js +141 -0
  285. package/dist/native-messaging/rate-limit.d.ts +62 -0
  286. package/dist/native-messaging/rate-limit.js +115 -0
  287. package/dist/native-messaging/run.d.ts +10 -0
  288. package/dist/native-messaging/run.js +17 -0
  289. package/dist/node/async-hooks.js +4 -3
  290. package/dist/node/child-process.js +4 -3
  291. package/dist/node/crypto.js +4 -3
  292. package/dist/node/events.js +4 -3
  293. package/dist/node/fs-promises.js +4 -3
  294. package/dist/node/fs.js +4 -3
  295. package/dist/node/http.js +4 -3
  296. package/dist/node/https.js +4 -3
  297. package/dist/node/module.js +10 -6
  298. package/dist/node/os.js +4 -3
  299. package/dist/node/path.js +4 -3
  300. package/dist/node/timers-promises.js +4 -3
  301. package/dist/node/url.js +4 -3
  302. package/dist/node/util.js +4 -3
  303. package/dist/objects/getters.js +5 -7
  304. package/dist/objects/inspect.js +1 -4
  305. package/dist/objects/mutate.js +2 -3
  306. package/dist/objects/predicates.js +0 -4
  307. package/dist/objects/sort.js +3 -7
  308. package/dist/packages/edit-class.js +15 -16
  309. package/dist/packages/edit.js +12 -14
  310. package/dist/packages/exports.js +11 -17
  311. package/dist/packages/fetch.d.ts +16 -0
  312. package/dist/packages/fetch.js +81 -0
  313. package/dist/packages/find.d.ts +55 -0
  314. package/dist/packages/find.js +65 -0
  315. package/dist/packages/isolation.js +14 -14
  316. package/dist/packages/licenses.js +16 -16
  317. package/dist/packages/manifest.js +12 -15
  318. package/dist/packages/metadata-extensions.d.ts +14 -0
  319. package/dist/packages/metadata-extensions.js +43 -0
  320. package/dist/packages/normalize.js +5 -9
  321. package/dist/packages/provenance.js +16 -18
  322. package/dist/packages/read.d.ts +29 -0
  323. package/dist/packages/read.js +66 -0
  324. package/dist/packages/specs.d.ts +48 -1
  325. package/dist/packages/specs.js +74 -11
  326. package/dist/packages/tarball.d.ts +24 -0
  327. package/dist/packages/tarball.js +79 -0
  328. package/dist/packages/types.d.ts +21 -20
  329. package/dist/packages/validation.js +0 -3
  330. package/dist/paths/_internal.d.ts +2 -1
  331. package/dist/paths/_internal.js +7 -19
  332. package/dist/paths/conversion.js +5 -9
  333. package/dist/paths/filenames.d.ts +0 -1
  334. package/dist/paths/filenames.js +0 -2
  335. package/dist/paths/normalize.js +4 -5
  336. package/dist/paths/packages.js +4 -7
  337. package/dist/paths/predicates.js +9 -16
  338. package/dist/paths/resolve.js +11 -14
  339. package/dist/paths/rewire.js +3 -3
  340. package/dist/paths/socket.js +16 -16
  341. package/dist/paths/walk.d.ts +1 -1
  342. package/dist/paths/walk.js +4 -4
  343. package/dist/perf/report.js +2 -2
  344. package/dist/perf/types.d.ts +1 -1
  345. package/dist/pkg-ext/data.js +1 -1
  346. package/dist/primordials/array.js +9 -9
  347. package/dist/primordials/date.js +2 -2
  348. package/dist/primordials/error.js +3 -3
  349. package/dist/primordials/headers.d.ts +10 -0
  350. package/dist/primordials/headers.js +23 -0
  351. package/dist/primordials/intl.d.ts +13 -0
  352. package/dist/primordials/intl.js +26 -0
  353. package/dist/primordials/math.js +33 -33
  354. package/dist/primordials/number.js +9 -9
  355. package/dist/primordials/object.js +5 -5
  356. package/dist/primordials/string.d.ts +2 -2
  357. package/dist/primordials/string.js +6 -6
  358. package/dist/primordials/symbol.js +3 -3
  359. package/dist/primordials/uncurry.js +9 -9
  360. package/dist/process/abort.js +3 -3
  361. package/dist/process/lock-manager.js +8 -8
  362. package/dist/process/spawn/_internal.js +6 -8
  363. package/dist/process/spawn/child.js +14 -14
  364. package/dist/process/spawn/errors.js +2 -4
  365. package/dist/process/spawn/kill-tree.d.ts +53 -0
  366. package/dist/process/spawn/kill-tree.js +85 -0
  367. package/dist/process/spawn/stdio.js +0 -1
  368. package/dist/process/spawn/types.d.ts +5 -5
  369. package/dist/process/transient.js +2 -2
  370. package/dist/promises/_internal.d.ts +2 -1
  371. package/dist/promises/_internal.js +2 -6
  372. package/dist/promises/iterate.js +11 -15
  373. package/dist/promises/options.js +3 -6
  374. package/dist/promises/retry.js +4 -5
  375. package/dist/promises/timers.d.ts +30 -0
  376. package/dist/promises/timers.js +48 -0
  377. package/dist/releases/github-archives.d.ts +6 -6
  378. package/dist/releases/github-archives.js +2 -2
  379. package/dist/releases/github-asset-url.d.ts +1 -1
  380. package/dist/releases/github-asset-url.js +5 -5
  381. package/dist/releases/github-downloads.d.ts +1 -1
  382. package/dist/releases/github-downloads.js +3 -3
  383. package/dist/releases/github-listing.d.ts +11 -2
  384. package/dist/releases/github-listing.js +20 -7
  385. package/dist/releases/github-retry-config.js +1 -1
  386. package/dist/releases/github-types.d.ts +6 -6
  387. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  388. package/dist/releases/socket-btm-binary-naming.js +155 -0
  389. package/dist/releases/socket-btm.d.ts +8 -115
  390. package/dist/releases/socket-btm.js +16 -159
  391. package/dist/schema/types.d.ts +1 -1
  392. package/dist/sea/detect.js +6 -6
  393. package/dist/secrets/_internal.d.ts +2 -2
  394. package/dist/secrets/_internal.js +2 -2
  395. package/dist/secrets/compare.d.ts +45 -0
  396. package/dist/secrets/compare.js +61 -0
  397. package/dist/secrets/keychain.js +6 -4
  398. package/dist/secrets/linux.js +19 -19
  399. package/dist/secrets/macos.d.ts +1 -1
  400. package/dist/secrets/macos.js +13 -13
  401. package/dist/secrets/rc.d.ts +2 -2
  402. package/dist/secrets/rc.js +6 -4
  403. package/dist/secrets/socket-api-token.d.ts +4 -4
  404. package/dist/secrets/socket-api-token.js +18 -9
  405. package/dist/secrets/windows.js +14 -13
  406. package/dist/shadow/skip.js +2 -2
  407. package/dist/smol/detect.js +9 -10
  408. package/dist/smol/http.js +6 -7
  409. package/dist/smol/https.js +6 -7
  410. package/dist/smol/manifest.d.ts +1 -1
  411. package/dist/smol/manifest.js +6 -7
  412. package/dist/smol/path.d.ts +1 -1
  413. package/dist/smol/path.js +7 -8
  414. package/dist/smol/primordial.d.ts +4 -0
  415. package/dist/smol/primordial.js +6 -7
  416. package/dist/smol/purl.d.ts +1 -1
  417. package/dist/smol/purl.js +7 -8
  418. package/dist/smol/versions.js +6 -7
  419. package/dist/smol/vfs.js +6 -7
  420. package/dist/sorts/_internal.js +6 -8
  421. package/dist/sorts/natural.js +10 -12
  422. package/dist/sorts/semver.js +1 -2
  423. package/dist/sorts/strings.js +0 -1
  424. package/dist/sorts/types.d.ts +1 -1
  425. package/dist/spinner/create-spinner-class.d.ts +38 -0
  426. package/dist/spinner/create-spinner-class.js +302 -0
  427. package/dist/spinner/default.js +8 -9
  428. package/dist/spinner/spinner-internals.d.ts +36 -0
  429. package/dist/spinner/spinner-internals.js +101 -0
  430. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  431. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  432. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  433. package/dist/spinner/spinner-status-methods.js +133 -0
  434. package/dist/spinner/spinner.d.ts +4 -5
  435. package/dist/spinner/spinner.js +18 -705
  436. package/dist/spinner/types.d.ts +3 -1
  437. package/dist/spinner/with.d.ts +10 -0
  438. package/dist/spinner/with.js +16 -2
  439. package/dist/stdio/divider.js +1 -1
  440. package/dist/stdio/footer.js +3 -3
  441. package/dist/stdio/header.js +4 -4
  442. package/dist/stdio/progress.js +5 -5
  443. package/dist/stdio/prompts.d.ts +5 -3
  444. package/dist/stdio/prompts.js +6 -7
  445. package/dist/stdio/stdout.js +3 -3
  446. package/dist/streams/parallel.js +3 -5
  447. package/dist/streams/transform.js +2 -3
  448. package/dist/strings/format.js +2 -6
  449. package/dist/strings/predicates.js +0 -2
  450. package/dist/strings/search.js +1 -2
  451. package/dist/strings/transform.js +0 -3
  452. package/dist/strings/width.js +9 -10
  453. package/dist/tables/bordered.js +4 -3
  454. package/dist/tables/padding.js +1 -1
  455. package/dist/tables/simple.js +8 -5
  456. package/dist/temporal/instant.js +1 -1
  457. package/dist/temporal/slots.js +6 -6
  458. package/dist/temporal/system.js +9 -9
  459. package/dist/themes/context.d.ts +3 -2
  460. package/dist/themes/context.js +4 -5
  461. package/dist/themes/themes.js +15 -15
  462. package/dist/themes/types.d.ts +3 -3
  463. package/dist/url/parse.js +0 -2
  464. package/dist/url/predicates.js +1 -2
  465. package/dist/url/search-params.js +3 -9
  466. package/dist/url/types.d.ts +5 -5
  467. package/dist/versions/_internal.js +3 -3
  468. package/dist/words/article.js +0 -1
  469. package/dist/words/capitalize.js +0 -1
  470. package/dist/words/pluralize.js +15 -5
  471. package/package.json +247 -106
  472. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  473. package/dist/external-tools/uv/asset-names.js +0 -70
  474. package/dist/external-tools/uv/from-download.d.ts +0 -17
  475. package/dist/external-tools/uv/from-download.js +0 -47
  476. package/dist/external-tools/uv/from-path.d.ts +0 -5
  477. package/dist/external-tools/uv/from-path.js +0 -22
  478. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  479. package/dist/external-tools/uv/from-vfs.js +0 -26
  480. package/dist/external-tools/uv/resolve.d.ts +0 -25
  481. package/dist/external-tools/uv/resolve.js +0 -53
  482. package/dist/external-tools/uv/types.d.ts +0 -24
  483. package/dist/http-request/checksums.d.ts +0 -69
  484. package/dist/http-request/checksums.js +0 -108
  485. package/dist/http-request/http-request.d.ts +0 -12
  486. package/dist/http-request/http-request.js +0 -11
  487. package/dist/packages/operations.d.ts +0 -113
  488. package/dist/packages/operations.js +0 -304
  489. package/dist/ssri/convert.d.ts +0 -48
  490. package/dist/ssri/convert.js +0 -69
  491. package/dist/ssri/parse.d.ts +0 -27
  492. package/dist/ssri/parse.js +0 -41
  493. package/dist/ssri/validate.d.ts +0 -41
  494. package/dist/ssri/validate.js +0 -56
  495. /package/dist/{bin → cli}/check.d.ts +0 -0
  496. /package/dist/external-tools/{uv → python}/types.js +0 -0
  497. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  498. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  499. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -1,43 +1,30 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
- const require_primordials_error = require('../primordials/error.js');
6
- const require_primordials_math = require('../primordials/math.js');
7
- const require_primordials_array = require('../primordials/array.js');
8
4
  const require_primordials_reflect = require('../primordials/reflect.js');
9
- const require_strings_format = require('../strings/format.js');
10
- const require_strings_predicates = require('../strings/predicates.js');
11
- const require_themes_themes = require('../themes/themes.js');
12
5
  const require_themes_context = require('../themes/context.js');
13
6
  const require_logger__internal = require('./_internal.js');
14
7
  const require_logger_symbols_builder = require('./symbols-builder.js');
15
8
  const require_logger_symbols = require('./symbols.js');
16
9
  const require_logger_console = require('./console.js');
17
- let node_process = require("node:process");
18
- node_process = require_runtime.__toESM(node_process);
10
+ const require_logger_console_methods = require('./console-methods.js');
11
+ const require_logger_indentation_methods = require('./indentation-methods.js');
12
+ const require_logger_options = require('./options.js');
13
+ const require_logger_semantic_methods = require('./semantic-methods.js');
14
+ const require_logger_stream_methods = require('./stream-methods.js');
19
15
 
20
16
  //#region src/logger/node.ts
21
17
  /**
22
- * @file Node-side `Logger` class — owns the per-instance state (parent, bound
23
- * stream, indent buffers, theme), the symbol-prefixed semantic methods
24
- * (`success`, `fail`, `info`, ...), and the chainable wrappers around the
25
- * underlying `node:console` methods. The shared-default singleton lives in
26
- * `./default`; this file exports only the class. Consumers should import
27
- * `Logger` from `./logger` (auto-routed by the package.json `browser`
28
- * condition); `./node` is the explicit Node entry, useful for tests pinning
29
- * to one implementation. Console construction is deliberately lazy: the
30
- * constructor only stashes its args in `_internal.privateConstructorArgs`;
31
- * the actual `node:console` instance is built on first call to
32
- * `#getConsole()`. This lets the logger be imported during early Node.js
33
- * bootstrap before stdout is ready, avoiding `ERR_CONSOLE_WRITABLE_STREAM`.
34
- * Free helpers live in sibling leaves (per `socket-lib`'s
35
- * export-top-level-functions rule):
36
- *
37
- * - color helpers — `./colors` (`applyColor`, `getYoctocolors`)
38
- * - log symbols + symbol getters — `./symbols`
39
- * - lazy console init + prototype mirror — `./console-init`
40
- * - shared private state — `./_internal`
18
+ * @file Node-side `Logger` class — owns per-instance state (parent, bound
19
+ * stream, indent buffers, theme) and exposes the public surface as thin
20
+ * delegators over sibling free-function leaves. Console construction is lazy:
21
+ * the constructor stashes its args in `_internal.privateConstructorArgs` and
22
+ * the `node:console` instance is built on first `#getConsole()`, so the
23
+ * logger can be imported during early Node.js bootstrap before stdout is
24
+ * ready (avoiding `ERR_CONSOLE_WRITABLE_STREAM`). Method bodies live in the
25
+ * leaves: `./console-methods`, `./semantic-methods`, `./indentation-methods`,
26
+ * `./stream-methods`, `./console`, `./options`, `./symbols`,
27
+ * `./symbols-builder`, `./_internal`.
41
28
  */
42
29
  /**
43
30
  * Enhanced console logger with indentation, colored symbols, and stream
@@ -61,260 +48,93 @@ var Logger = class Logger {
61
48
  #originalStdout;
62
49
  #theme;
63
50
  /**
64
- * Creates a new Logger instance.
65
- *
66
- * When called without arguments, creates a logger using the default
67
- * `process.stdout` and `process.stderr` streams. Can accept custom console
68
- * constructor arguments for advanced use cases.
51
+ * Creates a new Logger. With no args it uses the default `process.stdout` /
52
+ * `process.stderr`; an options object customizes stream / theme. See
53
+ * {@link parseLoggerOptions}.
69
54
  *
70
55
  * @param args - Optional console constructor arguments.
71
56
  */
72
57
  constructor(...args) {
73
58
  require_logger__internal.privateConstructorArgs.set(this, args);
74
- const options = args["0"];
75
- if (typeof options === "object" && options !== null) {
76
- this.#options = {
77
- __proto__: null,
78
- ...options
79
- };
80
- this.#originalStdout = options.stdout;
81
- const themeOption = options.theme;
82
- if (themeOption) if (typeof themeOption === "string") {
83
- const resolved = require_themes_themes.THEMES[themeOption];
84
- if (resolved) this.#theme = resolved;
85
- } else this.#theme = themeOption;
86
- } else this.#options = { __proto__: null };
59
+ const parsed = require_logger_options.parseLoggerOptions(args);
60
+ this.#options = parsed.options;
61
+ this.#originalStdout = parsed.originalStdout;
62
+ this.#theme = parsed.theme;
87
63
  }
88
- /**
89
- * Apply a console method with indentation.
90
- *
91
- * @private
92
- */
93
64
  #apply(methodName, args, stream) {
94
- const con = this.#getConsole();
95
- const text = require_primordials_array.ArrayPrototypeAt(args, 0);
96
- const hasText = typeof text === "string";
97
65
  const targetStream = stream || (methodName === "log" ? "stdout" : "stderr");
98
- const indent = this.#getIndent(targetStream);
99
- const logArgs = hasText ? [/* @__PURE__ */ require_strings_format.applyLinePrefix(text, { prefix: indent }), ...require_primordials_array.ArrayPrototypeSlice(args, 1)] : args;
100
- require_primordials_reflect.ReflectApply(con[methodName], con, logArgs);
101
- this[require_logger_symbols.lastWasBlankSymbol](hasText && /* @__PURE__ */ require_strings_predicates.isBlankString(logArgs[0]), targetStream);
102
- this[require_logger_symbols.incLogCallCountSymbol]();
103
- return this;
66
+ return require_logger_semantic_methods.applyMethod(this, this.#getConsole(), methodName, args, targetStream, this.#getIndent(targetStream));
104
67
  }
105
- /**
106
- * Get the Console instance for this logger, creating it lazily on first
107
- * access.
108
- *
109
- * This lazy initialization allows the logger to be imported during early
110
- * Node.js bootstrap before stdout is ready, avoiding Console initialization
111
- * errors (ERR_CONSOLE_WRITABLE_STREAM).
112
- *
113
- * @private
114
- */
115
68
  #getConsole() {
116
- require_logger_console.ensurePrototypeInitialized();
117
- let con = require_logger__internal.privateConsole.get(this);
118
- /* c8 ignore start */
119
- if (!con) {
120
- const ctorArgs = require_logger__internal.privateConstructorArgs.get(this) ?? [];
121
- if (ctorArgs.length) con = /* @__PURE__ */ require_logger_console.constructConsole(...ctorArgs);
122
- else {
123
- con = /* @__PURE__ */ require_logger_console.constructConsole({
124
- stdout: node_process.default.stdout,
125
- stderr: node_process.default.stderr
126
- });
127
- for (const { 0: key, 1: method } of require_logger__internal.boundConsoleEntries) con[key] = method;
128
- }
129
- require_logger__internal.privateConsole.set(this, con);
130
- require_logger__internal.privateConstructorArgs.delete(this);
131
- }
132
- /* c8 ignore stop */
133
- return con;
69
+ return require_logger_console.resolveConsole(this);
134
70
  }
135
- /**
136
- * Get indentation for a specific stream.
137
- *
138
- * @private
139
- */
140
71
  #getIndent(stream) {
141
72
  const root = this.#getRoot();
142
73
  return stream === "stderr" ? root.#stderrIndention : root.#stdoutIndention;
143
74
  }
144
- /**
145
- * Get lastWasBlank state for a specific stream.
146
- *
147
- * @private
148
- */
149
75
  #getLastWasBlank(stream) {
150
76
  const root = this.#getRoot();
151
77
  return stream === "stderr" ? root.#stderrLastWasBlank : root.#stdoutLastWasBlank;
152
78
  }
153
- /**
154
- * Get the root logger (for accessing shared indentation state).
155
- *
156
- * @private
157
- */
158
79
  #getRoot() {
159
80
  return this.#parent || this;
160
81
  }
161
- /**
162
- * Get logger-specific symbols using the resolved theme.
163
- *
164
- * @private
165
- */
166
82
  #getSymbols() {
167
83
  return require_logger_symbols_builder.buildLoggerSymbols(this.#getTheme());
168
84
  }
169
- /**
170
- * Get the target stream for this logger instance.
171
- *
172
- * @private
173
- */
174
85
  #getTargetStream() {
175
86
  return this.#boundStream || "stderr";
176
87
  }
177
- /**
178
- * Get the resolved theme for this logger instance. Returns instance theme if
179
- * set, otherwise falls back to context theme.
180
- *
181
- * @private
182
- */
183
88
  #getTheme() {
184
89
  return this.#theme ?? require_themes_context.getTheme();
185
90
  }
186
- /**
187
- * Set indentation for a specific stream.
188
- *
189
- * @private
190
- */
91
+ #indentCtx() {
92
+ return {
93
+ boundStream: this.#boundStream,
94
+ getIndent: (stream) => this.#getIndent(stream),
95
+ setIndent: (stream, value) => this.#setIndent(stream, value)
96
+ };
97
+ }
191
98
  #setIndent(stream, value) {
192
99
  const root = this.#getRoot();
193
100
  if (stream === "stderr") root.#stderrIndention = value;
194
101
  else root.#stdoutIndention = value;
195
102
  }
196
- /**
197
- * Set lastWasBlank state for a specific stream.
198
- *
199
- * @private
200
- */
201
103
  #setLastWasBlank(stream, value) {
202
104
  const root = this.#getRoot();
203
105
  if (stream === "stderr") root.#stderrLastWasBlank = value;
204
106
  else root.#stdoutLastWasBlank = value;
205
107
  }
206
- /**
207
- * Strip log symbols from the start of text.
208
- *
209
- * @private
210
- */
211
- #stripSymbols(text) {
212
- return require_logger_symbols_builder.stripLoggerSymbols(text);
108
+ #streamChild(stream) {
109
+ const instance = new Logger(...require_logger__internal.privateConstructorArgs.get(this) ?? []);
110
+ instance.#parent = this;
111
+ instance.#boundStream = stream;
112
+ instance.#options = {
113
+ __proto__: null,
114
+ ...this.#options
115
+ };
116
+ if (this.#theme) instance.#theme = this.#theme;
117
+ return instance;
213
118
  }
214
- /**
215
- * Apply a method with a symbol prefix.
216
- *
217
- * @private
218
- */
219
- #symbolApply(symbolType, args) {
220
- const con = this.#getConsole();
221
- let text = require_primordials_array.ArrayPrototypeAt(args, 0);
222
- let extras;
223
- /* c8 ignore start */
224
- if (typeof text === "string") {
225
- text = this.#stripSymbols(text);
226
- extras = require_primordials_array.ArrayPrototypeSlice(args, 1);
227
- } else {
228
- extras = args;
229
- text = "";
230
- }
231
- /* c8 ignore stop */
232
- const indent = this.#getIndent("stderr");
233
- const symbols = this.#getSymbols();
234
- con.error(/* @__PURE__ */ require_strings_format.applyLinePrefix(`${symbols[symbolType]} ${text}`, { prefix: indent }), ...extras);
235
- this[require_logger_symbols.lastWasBlankSymbol](false, "stderr");
236
- this[require_logger_symbols.incLogCallCountSymbol]();
237
- return this;
119
+ #symbol(symbolType, args) {
120
+ return require_logger_semantic_methods.symbolApplyMethod(this, this.#getConsole(), this.#getIndent("stderr"), this.#getSymbols(), symbolType, args);
238
121
  }
239
- /**
240
- * Gets a logger instance bound exclusively to stderr.
241
- *
242
- * All logging operations on this instance will write to stderr only.
243
- * Indentation is tracked separately from stdout. The instance is cached and
244
- * reused on subsequent accesses.
245
- *
246
- * @returns A logger instance bound to stderr
247
- */
248
122
  get stderr() {
249
- if (!this.#stderrLogger) {
250
- const instance = new Logger(...require_logger__internal.privateConstructorArgs.get(this) ?? []);
251
- instance.#parent = this;
252
- instance.#boundStream = "stderr";
253
- instance.#options = {
254
- __proto__: null,
255
- ...this.#options
256
- };
257
- if (this.#theme) instance.#theme = this.#theme;
258
- this.#stderrLogger = instance;
259
- }
123
+ if (!this.#stderrLogger) this.#stderrLogger = this.#streamChild("stderr");
260
124
  return this.#stderrLogger;
261
125
  }
262
- /**
263
- * Gets a logger instance bound exclusively to stdout.
264
- *
265
- * All logging operations on this instance will write to stdout only.
266
- * Indentation is tracked separately from stderr. The instance is cached and
267
- * reused on subsequent accesses.
268
- *
269
- * @returns A logger instance bound to stdout
270
- */
271
126
  get stdout() {
272
- if (!this.#stdoutLogger) {
273
- const instance = new Logger(...require_logger__internal.privateConstructorArgs.get(this) ?? []);
274
- instance.#parent = this;
275
- instance.#boundStream = "stdout";
276
- instance.#options = {
277
- __proto__: null,
278
- ...this.#options
279
- };
280
- if (this.#theme) instance.#theme = this.#theme;
281
- this.#stdoutLogger = instance;
282
- }
127
+ if (!this.#stdoutLogger) this.#stdoutLogger = this.#streamChild("stdout");
283
128
  return this.#stdoutLogger;
284
129
  }
285
- /**
286
- * Gets the total number of log calls made on this logger instance.
287
- *
288
- * Tracks all logging method calls including `log()`, `error()`, `warn()`,
289
- * `success()`, `fail()`, etc. Useful for testing and monitoring logging
290
- * activity.
291
- *
292
- * @returns The number of times logging methods have been called
293
- */
294
130
  get logCallCount() {
295
131
  return this.#getRoot().#logCallCount;
296
132
  }
297
- /**
298
- * Increments the internal log call counter.
299
- *
300
- * This is called automatically by logging methods and should not be called
301
- * directly in normal usage.
302
- */
303
133
  [require_logger_symbols.incLogCallCountSymbol]() {
304
134
  const root = this.#getRoot();
305
135
  root.#logCallCount += 1;
306
136
  return this;
307
137
  }
308
- /**
309
- * Sets whether the last logged line was blank.
310
- *
311
- * Used internally to track blank lines and prevent duplicate spacing. This is
312
- * called automatically by logging methods.
313
- *
314
- * @param value - Whether the last line was blank.
315
- * @param stream - Optional stream to update (defaults to both streams if not
316
- * bound, or target stream if bound)
317
- */
318
138
  [require_logger_symbols.lastWasBlankSymbol](value, stream) {
319
139
  if (stream) this.#setLastWasBlank(stream, !!value);
320
140
  else if (this.#boundStream) this.#setLastWasBlank(this.#boundStream, !!value);
@@ -324,87 +144,27 @@ var Logger = class Logger {
324
144
  }
325
145
  return this;
326
146
  }
327
- /**
328
- * Logs an assertion failure message if the value is falsy.
329
- *
330
- * Works like `console.assert()` but returns the logger for chaining. If the
331
- * value is truthy, nothing is logged. If falsy, logs an error message with an
332
- * assertion failure.
333
- *
334
- * @param value - The value to test.
335
- * @param message - Optional message and additional arguments to log.
336
- */
337
147
  assert(value, ...message) {
338
- this.#getConsole().assert(value, message[0], ...message.slice(1));
339
- this[require_logger_symbols.lastWasBlankSymbol](false);
340
- return value ? this : this[require_logger_symbols.incLogCallCountSymbol]();
148
+ return require_logger_console_methods.assertMethod(this, this.#getConsole(), value, message);
341
149
  }
342
- /**
343
- * Clears the current line in the terminal.
344
- *
345
- * Moves the cursor to the beginning of the line and clears all content. Works
346
- * in both TTY and non-TTY environments. Useful for clearing progress
347
- * indicators created with `progress()`.
348
- *
349
- * The stream to clear (stderr or stdout) depends on whether the logger is
350
- * stream-bound.
351
- */
352
150
  clearLine() {
353
- const con = this.#getConsole();
354
- const streamObj = this.#getTargetStream() === "stderr" ? con["_stderr"] : con["_stdout"];
355
- if (streamObj.isTTY) {
356
- streamObj.cursorTo(0);
357
- streamObj.clearLine(0);
358
- } else streamObj.write("\r\x1B[K");
359
- return this;
151
+ return require_logger_stream_methods.clearLineMethod(this, this.#getConsole(), this.#getTargetStream());
360
152
  }
361
- /**
362
- * Clears the visible terminal screen.
363
- *
364
- * Only available on the main logger instance, not on stream-bound instances
365
- * (`.stderr` or `.stdout`). Resets the log call count and blank line tracking
366
- * if the output is a TTY.
367
- *
368
- * @throws {Error} If called on a stream-bound logger instance
369
- */
370
153
  clearVisible() {
371
- /* c8 ignore start - clearVisible TTY-mode behavior; tests use
372
- non-TTY capture streams so the bound-stream throw and TTY
373
- clear branches aren't reached. */
374
- if (this.#boundStream) throw new require_primordials_error.ErrorCtor("clearVisible() is only available on the main logger instance, not on stream-bound instances");
375
- const con = this.#getConsole();
376
- con.clear();
377
- if (con._stdout.isTTY) {
378
- this[require_logger_symbols.lastWasBlankSymbol](true);
154
+ return require_logger_stream_methods.clearVisibleMethod(this, this.#getConsole(), this.#boundStream, () => {
379
155
  this.#logCallCount = 0;
380
- }
381
- return this;
382
- /* c8 ignore stop */
156
+ });
383
157
  }
384
- /**
385
- * Increments and logs a counter for the given label.
386
- *
387
- * Each unique label maintains its own counter. Works like `console.count()`.
388
- *
389
- * @default 'default'
390
- *
391
- * @param label - Optional label for the counter.
392
- */
393
158
  count(label) {
394
- this.#getConsole().count(label);
395
- this[require_logger_symbols.lastWasBlankSymbol](false);
396
- return this[require_logger_symbols.incLogCallCountSymbol]();
159
+ return require_logger_console_methods.countMethod(this, this.#getConsole(), label);
397
160
  }
398
161
  /**
399
- * Creates a task that logs start and completion messages automatically.
400
- *
401
- * Returns a task object with a `run()` method that executes the provided
402
- * function and logs "Starting task: {name}" before execution and "Completed
403
- * task: {name}" after completion.
162
+ * Creates a task whose `run()` logs "Starting task: {name}" before running
163
+ * the provided function and "Completed task: {name}" after.
404
164
  *
405
165
  * @param name - The name of the task.
406
166
  *
407
- * @returns A task object with a `run()` method
167
+ * @returns A task object with a `run()` method.
408
168
  */
409
169
  createTask(name) {
410
170
  return { run: (f) => {
@@ -414,380 +174,87 @@ var Logger = class Logger {
414
174
  return result;
415
175
  } };
416
176
  }
417
- /**
418
- * Decreases the indentation level by removing spaces from the prefix.
419
- *
420
- * When called on the main logger, affects both stderr and stdout indentation.
421
- * When called on a stream-bound logger (`.stderr` or `.stdout`), affects only
422
- * that stream's indentation.
423
- *
424
- * @default 2
425
- */
426
177
  dedent(spaces = 2) {
427
- if (this.#boundStream) {
428
- const current = this.#getIndent(this.#boundStream);
429
- this.#setIndent(this.#boundStream, current.slice(0, -spaces));
430
- } else {
431
- const stderrCurrent = this.#getIndent("stderr");
432
- const stdoutCurrent = this.#getIndent("stdout");
433
- this.#setIndent("stderr", stderrCurrent.slice(0, -spaces));
434
- this.#setIndent("stdout", stdoutCurrent.slice(0, -spaces));
435
- }
436
- return this;
178
+ return require_logger_indentation_methods.dedentMethod(this, this.#indentCtx(), spaces);
437
179
  }
438
- /**
439
- * Displays an object's properties in a formatted way.
440
- *
441
- * Works like `console.dir()` with customizable options for depth, colors,
442
- * etc. Useful for inspecting complex objects.
443
- *
444
- * @param obj - The object to display.
445
- * @param options - Optional formatting options (Node.js inspect options)
446
- */
447
180
  dir(obj, options) {
448
- this.#getConsole().dir(obj, options);
449
- this[require_logger_symbols.lastWasBlankSymbol](false);
450
- return this[require_logger_symbols.incLogCallCountSymbol]();
181
+ return require_logger_console_methods.dirMethod(this, this.#getConsole(), obj, options);
451
182
  }
452
- /**
453
- * Displays data as XML/HTML in a formatted way.
454
- *
455
- * Works like `console.dirxml()`. In Node.js, behaves the same as `dir()`.
456
- *
457
- * @param data - The data to display.
458
- */
459
183
  dirxml(...data) {
460
- this.#getConsole().dirxml(data);
461
- this[require_logger_symbols.lastWasBlankSymbol](false);
462
- return this[require_logger_symbols.incLogCallCountSymbol]();
184
+ return require_logger_console_methods.dirxmlMethod(this, this.#getConsole(), data);
463
185
  }
464
- /**
465
- * Logs a completion message with a success symbol (alias for `success()`).
466
- *
467
- * Provides semantic clarity when marking something as "done". Does NOT
468
- * automatically clear the current line - call `clearLine()` first if needed
469
- * after using `progress()`.
470
- */
471
186
  done(...args) {
472
- return this.#symbolApply("success", args);
187
+ return this.#symbol("success", args);
473
188
  }
474
- /**
475
- * Logs an error message to stderr.
476
- *
477
- * Automatically applies current indentation. All arguments are formatted and
478
- * logged like `console.error()`.
479
- */
480
189
  error(...args) {
481
190
  return this.#apply("error", args);
482
191
  }
483
- /**
484
- * Logs a newline to stderr only if the last line wasn't already blank.
485
- *
486
- * Prevents multiple consecutive blank lines. Useful for adding spacing
487
- * between sections without creating excessive whitespace.
488
- */
489
192
  errorNewline() {
490
193
  return this.#getLastWasBlank("stderr") ? this : this.error("");
491
194
  }
492
- /**
493
- * Logs a failure message with a red colored fail symbol.
494
- *
495
- * Automatically prefixes the message with `LOG_SYMBOLS.fail` (red ✖). Always
496
- * outputs to stderr. If the message starts with an existing symbol, it will
497
- * be stripped and replaced.
498
- */
499
195
  fail(...args) {
500
- return this.#symbolApply("fail", args);
196
+ return this.#symbol("fail", args);
501
197
  }
502
- /**
503
- * Starts a new indented log group.
504
- *
505
- * If a label is provided, it's logged before increasing indentation. Groups
506
- * can be nested. Each group increases indentation by the `kGroupIndentWidth`
507
- * (default 2 spaces). Call `groupEnd()` to close.
508
- *
509
- * @param label - Optional label to display before the group.
510
- */
511
198
  group(...label) {
512
- const { length } = label;
513
- if (length) require_primordials_reflect.ReflectApply(this.log, this, label);
514
- this.indent(this[require_logger_symbols.getKGroupIndentationWidthSymbol()]);
515
- if (length) {
516
- this[require_logger_symbols.lastWasBlankSymbol](false);
517
- this[require_logger_symbols.incLogCallCountSymbol]();
518
- }
519
- return this;
199
+ return require_logger_indentation_methods.groupMethod(this, label);
520
200
  }
521
- /**
522
- * Starts a new collapsed log group (alias for `group()`).
523
- *
524
- * In browser consoles, this creates a collapsed group. In Node.js, it behaves
525
- * identically to `group()`.
526
- *
527
- * @param label - Optional label to display before the group.
528
- */
529
201
  groupCollapsed(...label) {
530
202
  return require_primordials_reflect.ReflectApply(this.group, this, label);
531
203
  }
532
- /**
533
- * Ends the current log group and decreases indentation.
534
- *
535
- * Must be called once for each `group()` or `groupCollapsed()` call to
536
- * properly close the group and restore indentation.
537
- */
538
204
  groupEnd() {
539
- this.dedent(this[require_logger_symbols.getKGroupIndentationWidthSymbol()]);
540
- return this;
205
+ return require_logger_indentation_methods.groupEndMethod(this);
541
206
  }
542
- /**
543
- * Increases the indentation level by adding spaces to the prefix.
544
- *
545
- * When called on the main logger, affects both stderr and stdout indentation.
546
- * When called on a stream-bound logger (`.stderr` or `.stdout`), affects only
547
- * that stream's indentation. Maximum indentation is 1000 spaces.
548
- *
549
- * @default 2
550
- */
551
207
  indent(spaces = 2) {
552
- const spacesToAdd = " ".repeat(require_primordials_math.MathMin(spaces, require_logger__internal.maxIndentation));
553
- if (this.#boundStream) {
554
- const current = this.#getIndent(this.#boundStream);
555
- this.#setIndent(this.#boundStream, current + spacesToAdd);
556
- } else {
557
- const stderrCurrent = this.#getIndent("stderr");
558
- const stdoutCurrent = this.#getIndent("stdout");
559
- this.#setIndent("stderr", stderrCurrent + spacesToAdd);
560
- this.#setIndent("stdout", stdoutCurrent + spacesToAdd);
561
- }
562
- return this;
208
+ return require_logger_indentation_methods.indentMethod(this, this.#indentCtx(), spaces);
563
209
  }
564
- /**
565
- * Logs an informational message with a blue colored info symbol.
566
- *
567
- * Automatically prefixes the message with `LOG_SYMBOLS.info` (blue ℹ). Always
568
- * outputs to stderr. If the message starts with an existing symbol, it will
569
- * be stripped and replaced.
570
- */
571
210
  info(...args) {
572
- return this.#symbolApply("info", args);
211
+ return this.#symbol("info", args);
573
212
  }
574
- /**
575
- * Logs a message to stdout.
576
- *
577
- * Automatically applies current indentation. All arguments are formatted and
578
- * logged like `console.log()`. This is the primary method for standard
579
- * output.
580
- */
581
213
  log(...args) {
582
214
  return this.#apply("log", args);
583
215
  }
584
- /**
585
- * Logs a newline to stdout only if the last line wasn't already blank.
586
- *
587
- * Prevents multiple consecutive blank lines. Useful for adding spacing
588
- * between sections without creating excessive whitespace.
589
- */
590
216
  logNewline() {
591
217
  return this.#getLastWasBlank("stdout") ? this : this.log("");
592
218
  }
593
- /**
594
- * Shows a progress indicator that can be cleared with `clearLine()`.
595
- *
596
- * Displays a simple status message with a '∴' prefix. Does not include
597
- * animation or spinner. Intended to be cleared once the operation completes.
598
- * The output stream (stderr or stdout) depends on whether the logger is
599
- * stream-bound.
600
- *
601
- * Always clears the current line before writing so calling `progress(...)`
602
- * twice in a row redraws cleanly, and any partially-flushed prior output on
603
- * the same row gets overwritten. TTY path uses `cursorTo(0) + clearLine(0)`;
604
- * non-TTY path falls back to `\r\x1b[K` (which still works in CI logs).
605
- *
606
- * @param text - The progress message to display.
607
- */
608
219
  progress(text) {
609
- const con = this.#getConsole();
610
- const streamObj = this.#getTargetStream() === "stderr" ? con["_stderr"] : con["_stdout"];
611
- if (streamObj.isTTY) {
612
- streamObj.cursorTo(0);
613
- streamObj.clearLine(0);
614
- } else streamObj.write("\r\x1B[K");
615
- const symbols = this.#getSymbols();
616
- streamObj.write(`${symbols.progress} ${text}`);
617
- this[require_logger_symbols.lastWasBlankSymbol](false);
618
- return this;
220
+ return require_logger_stream_methods.progressMethod(this, this.#getConsole(), this.#getTargetStream(), this.#getSymbols(), text);
619
221
  }
620
- /**
621
- * Resets all indentation to zero.
622
- *
623
- * When called on the main logger, resets both stderr and stdout indentation.
624
- * When called on a stream-bound logger (`.stderr` or `.stdout`), resets only
625
- * that stream's indentation.
626
- */
627
222
  resetIndent() {
628
- if (this.#boundStream) this.#setIndent(this.#boundStream, "");
629
- else {
630
- this.#setIndent("stderr", "");
631
- this.#setIndent("stdout", "");
632
- }
633
- return this;
223
+ return require_logger_indentation_methods.resetIndentMethod(this, this.#indentCtx());
634
224
  }
635
- /**
636
- * Logs a skip message with a cyan colored skip symbol.
637
- *
638
- * Automatically prefixes the message with `LOG_SYMBOLS.skip` (cyan ↻). Always
639
- * outputs to stderr. If the message starts with an existing symbol, it will
640
- * be stripped and replaced.
641
- */
642
225
  skip(...args) {
643
- return this.#symbolApply("skip", args);
226
+ return this.#symbol("skip", args);
644
227
  }
645
- /**
646
- * Logs a main step message with a cyan arrow symbol and blank line before it.
647
- *
648
- * Automatically prefixes the message with `LOG_SYMBOLS.step` (cyan →) and
649
- * adds a blank line before the message unless the last line was already
650
- * blank. Useful for marking major steps in a process with clear visual
651
- * separation. Always outputs to stdout. If the message starts with an
652
- * existing symbol, it will be stripped and replaced.
653
- *
654
- * @param msg - The step message to log.
655
- * @param extras - Additional arguments to log.
656
- */
657
228
  step(msg, ...extras) {
658
229
  if (!this.#getLastWasBlank("stdout")) this.log("");
659
- const text = this.#stripSymbols(msg);
660
- const indent = this.#getIndent("stdout");
661
- const symbols = this.#getSymbols();
662
- this.#getConsole().log(/* @__PURE__ */ require_strings_format.applyLinePrefix(`${symbols.step} ${text}`, { prefix: indent }), ...extras);
663
- this[require_logger_symbols.lastWasBlankSymbol](false, "stdout");
664
- this[require_logger_symbols.incLogCallCountSymbol]();
665
- return this;
230
+ return require_logger_semantic_methods.stepMethod(this, this.#getConsole(), this.#getIndent("stdout"), this.#getSymbols(), msg, extras);
666
231
  }
667
- /**
668
- * Logs an indented substep message (stateless).
669
- *
670
- * Adds a 2-space indent to the message without affecting the logger's
671
- * indentation state. Useful for showing sub-items under a main step.
672
- *
673
- * @param msg - The substep message to log.
674
- * @param extras - Additional arguments to log.
675
- */
676
232
  substep(msg, ...extras) {
677
- const indentedMsg = ` ${msg}`;
678
- return this.log(indentedMsg, ...extras);
233
+ return this.log(` ${msg}`, ...extras);
679
234
  }
680
- /**
681
- * Logs a success message with a green colored success symbol.
682
- *
683
- * Automatically prefixes the message with `LOG_SYMBOLS.success` (green ✔).
684
- * Always outputs to stderr. If the message starts with an existing symbol, it
685
- * will be stripped and replaced.
686
- */
687
235
  success(...args) {
688
- return this.#symbolApply("success", args);
236
+ return this.#symbol("success", args);
689
237
  }
690
- /**
691
- * Displays data in a table format.
692
- *
693
- * Works like `console.table()`. Accepts arrays of objects or objects with
694
- * nested objects. Optionally specify which properties to include in the
695
- * table.
696
- *
697
- * @param tabularData - The data to display as a table.
698
- * @param properties - Optional array of property names to include.
699
- */
700
238
  table(tabularData, properties) {
701
- this.#getConsole().table(tabularData, properties);
702
- this[require_logger_symbols.lastWasBlankSymbol](false);
703
- return this[require_logger_symbols.incLogCallCountSymbol]();
239
+ return require_logger_console_methods.tableMethod(this, this.#getConsole(), tabularData, properties);
704
240
  }
705
- /**
706
- * Starts a timer for measuring elapsed time.
707
- *
708
- * Creates a timer with the given label. Use `timeEnd()` with the same label
709
- * to stop the timer and log the elapsed time, or use `timeLog()` to check the
710
- * time without stopping the timer.
711
- *
712
- * @default 'default'
713
- *
714
- * @param label - Optional label for the timer.
715
- */
716
241
  time(label) {
717
- this.#getConsole().time(label);
718
- return this;
242
+ return require_logger_console_methods.timeMethod(this, this.#getConsole(), label);
719
243
  }
720
- /**
721
- * Ends a timer and logs the elapsed time.
722
- *
723
- * Logs the duration since `console.time()` or `logger.time()` was called with
724
- * the same label. The timer is stopped and removed.
725
- *
726
- * @default 'default'
727
- *
728
- * @param label - Optional label for the timer.
729
- */
730
244
  timeEnd(label) {
731
- this.#getConsole().timeEnd(label);
732
- this[require_logger_symbols.lastWasBlankSymbol](false);
733
- return this[require_logger_symbols.incLogCallCountSymbol]();
245
+ return require_logger_console_methods.timeEndMethod(this, this.#getConsole(), label);
734
246
  }
735
- /**
736
- * Logs the current value of a timer without stopping it.
737
- *
738
- * Logs the duration since `console.time()` was called with the same label,
739
- * but keeps the timer running. Can include additional data to log alongside
740
- * the time.
741
- *
742
- * @default 'default'
743
- *
744
- * @param label - Optional label for the timer.
745
- * @param data - Additional data to log with the time.
746
- */
747
247
  timeLog(label, ...data) {
748
- this.#getConsole().timeLog(label, ...data);
749
- this[require_logger_symbols.lastWasBlankSymbol](false);
750
- return this[require_logger_symbols.incLogCallCountSymbol]();
248
+ return require_logger_console_methods.timeLogMethod(this, this.#getConsole(), label, data);
751
249
  }
752
- /**
753
- * Logs a stack trace to the console.
754
- *
755
- * Works like `console.trace()`. Shows the call stack leading to where this
756
- * method was called. Useful for debugging.
757
- *
758
- * @param message - Optional message to display with the trace.
759
- * @param args - Additional arguments to log.
760
- */
761
250
  trace(message, ...args) {
762
- this.#getConsole().trace(message, ...args);
763
- this[require_logger_symbols.lastWasBlankSymbol](false);
764
- return this[require_logger_symbols.incLogCallCountSymbol]();
251
+ return require_logger_console_methods.traceMethod(this, this.#getConsole(), message, args);
765
252
  }
766
- /**
767
- * Logs a warning message with a yellow colored warning symbol.
768
- *
769
- * Automatically prefixes the message with `LOG_SYMBOLS.warn` (yellow ⚠).
770
- * Always outputs to stderr. If the message starts with an existing symbol, it
771
- * will be stripped and replaced.
772
- */
773
253
  warn(...args) {
774
- return this.#symbolApply("warn", args);
254
+ return this.#symbol("warn", args);
775
255
  }
776
- /**
777
- * Writes text directly to stdout without a newline or indentation.
778
- *
779
- * Useful for progress indicators or custom formatting where you need
780
- * low-level control. Does not apply any indentation or formatting.
781
- *
782
- * @param text - The text to write.
783
- */
784
256
  write(text) {
785
- const con = this.#getConsole();
786
- const ctorArgs = require_logger__internal.privateConstructorArgs.get(this) ?? [];
787
- /* c8 ignore stop */
788
- (this.#originalStdout || ctorArgs[0]?.stdout || con._stdout).write(text);
789
- this[require_logger_symbols.lastWasBlankSymbol](false);
790
- return this;
257
+ return require_logger_stream_methods.writeMethod(this, this.#getConsole(), this.#originalStdout, require_logger__internal.privateConstructorArgs.get(this) ?? [], text);
791
258
  }
792
259
  };
793
260