@socketsecurity/lib 6.0.6 → 6.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +1 -1
  3. package/dist/ai/agent-context.d.mts +103 -0
  4. package/dist/ai/agent-context.js +157 -0
  5. package/dist/ai/backends.d.mts +83 -0
  6. package/dist/ai/backends.js +173 -0
  7. package/dist/ai/credentials.d.mts +49 -0
  8. package/dist/ai/credentials.js +82 -0
  9. package/dist/ai/discover.d.mts +6 -2
  10. package/dist/ai/discover.js +4 -3
  11. package/dist/ai/exec.d.mts +52 -0
  12. package/dist/ai/exec.js +92 -0
  13. package/dist/ai/http.d.mts +132 -0
  14. package/dist/ai/http.js +130 -0
  15. package/dist/ai/profiles.d.mts +41 -6
  16. package/dist/ai/profiles.js +52 -10
  17. package/dist/ai/route.d.mts +69 -0
  18. package/dist/ai/route.js +156 -0
  19. package/dist/ai/spawn.d.mts +10 -2
  20. package/dist/ai/spawn.js +56 -31
  21. package/dist/ai/subagent-status.d.mts +48 -0
  22. package/dist/ai/subagent-status.js +57 -0
  23. package/dist/ai/tier.d.mts +60 -0
  24. package/dist/ai/tier.js +53 -0
  25. package/dist/ai/types.d.mts +31 -6
  26. package/dist/ai/worktree.d.mts +6 -6
  27. package/dist/ai/worktree.js +5 -1
  28. package/dist/ansi/strip.d.ts +1 -1
  29. package/dist/ansi/strip.js +0 -2
  30. package/dist/archives/_internal.js +7 -9
  31. package/dist/archives/extract.js +1 -1
  32. package/dist/archives/tar.js +7 -7
  33. package/dist/archives/zip.js +5 -7
  34. package/dist/argv/flag-predicates.d.ts +12 -12
  35. package/dist/argv/flag-predicates.js +17 -17
  36. package/dist/argv/flag-types.d.ts +18 -18
  37. package/dist/argv/flag-types.js +4 -4
  38. package/dist/argv/parse.d.ts +20 -3
  39. package/dist/argv/parse.js +1 -1
  40. package/dist/arrays/_internal.js +11 -12
  41. package/dist/arrays/chunk.js +0 -1
  42. package/dist/arrays/join.d.ts +37 -3
  43. package/dist/arrays/join.js +47 -7
  44. package/dist/arrays/unique.js +0 -1
  45. package/dist/bin/_internal.d.ts +1 -1
  46. package/dist/bin/_internal.js +1 -1
  47. package/dist/bin/exec.js +2 -3
  48. package/dist/bin/find.js +17 -17
  49. package/dist/bin/prim.cjs +36175 -35861
  50. package/dist/bin/resolve.js +13 -14
  51. package/dist/bin/which.js +8 -8
  52. package/dist/cache/ttl/store.js +6 -6
  53. package/dist/checks/primordials-defaults.d.ts +3 -3
  54. package/dist/checks/primordials-defaults.js +3 -3
  55. package/dist/checks/primordials.js +4 -3
  56. package/dist/{bin → cli}/check-primordials.d.ts +18 -13
  57. package/dist/{bin → cli}/check-primordials.js +58 -55
  58. package/dist/{bin → cli}/check.js +3 -3
  59. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  60. package/dist/{bin → cli}/socket-lib.js +4 -4
  61. package/dist/colors/socket-palette.js +7 -9
  62. package/dist/compression/_internal.d.ts +12 -12
  63. package/dist/compression/_internal.js +18 -18
  64. package/dist/compression/brotli.d.ts +26 -27
  65. package/dist/compression/brotli.js +39 -35
  66. package/dist/compression/gzip.d.ts +23 -23
  67. package/dist/compression/gzip.js +46 -42
  68. package/dist/constants/agents.d.ts +3 -1
  69. package/dist/constants/agents.js +15 -11
  70. package/dist/constants/licenses.js +3 -3
  71. package/dist/constants/node.d.ts +23 -0
  72. package/dist/constants/node.js +47 -15
  73. package/dist/constants/packages.d.ts +3 -0
  74. package/dist/constants/packages.js +24 -29
  75. package/dist/constants/platform.d.ts +30 -3
  76. package/dist/constants/platform.js +72 -12
  77. package/dist/constants/runtime.d.ts +22 -0
  78. package/dist/constants/runtime.js +32 -0
  79. package/dist/constants/socket.d.ts +2 -6
  80. package/dist/constants/socket.js +12 -14
  81. package/dist/cover/code.js +10 -10
  82. package/dist/cover/formatters.js +5 -5
  83. package/dist/crypto/hash.d.ts +30 -2
  84. package/dist/crypto/hash.js +47 -13
  85. package/dist/debug/_internal.js +4 -6
  86. package/dist/debug/caller-info.js +3 -4
  87. package/dist/debug/namespace.d.ts +7 -0
  88. package/dist/debug/namespace.js +21 -12
  89. package/dist/debug/output.js +21 -24
  90. package/dist/debug/types.d.ts +4 -4
  91. package/dist/dlx/arborist.js +18 -8
  92. package/dist/dlx/binary-cache.js +15 -15
  93. package/dist/dlx/binary-download.d.ts +1 -1
  94. package/dist/dlx/binary-download.js +11 -11
  95. package/dist/dlx/binary-resolution.js +17 -15
  96. package/dist/dlx/binary-types.d.ts +5 -5
  97. package/dist/dlx/binary.js +5 -5
  98. package/dist/dlx/cache.js +1 -1
  99. package/dist/dlx/detect.d.ts +42 -25
  100. package/dist/dlx/detect.js +86 -77
  101. package/dist/dlx/dir.js +2 -2
  102. package/dist/dlx/firewall.d.ts +9 -1
  103. package/dist/dlx/firewall.js +1 -1
  104. package/dist/dlx/lockfile.d.ts +19 -18
  105. package/dist/dlx/lockfile.js +19 -16
  106. package/dist/dlx/manifest.d.ts +6 -6
  107. package/dist/dlx/manifest.js +5 -5
  108. package/dist/dlx/package.d.ts +10 -10
  109. package/dist/dlx/package.js +20 -16
  110. package/dist/dlx/packages.js +4 -4
  111. package/dist/dlx/paths.js +7 -7
  112. package/dist/dlx/spec.js +1 -1
  113. package/dist/dlx/types.d.ts +28 -27
  114. package/dist/eco/cargo/parse-lockfile.d.ts +2 -3
  115. package/dist/eco/cargo/parse-lockfile.js +5 -5
  116. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  117. package/dist/eco/manifest/detect-format.js +5 -5
  118. package/dist/eco/manifest/find-packages.js +2 -2
  119. package/dist/eco/manifest/get-package-versions.js +2 -2
  120. package/dist/eco/manifest/get-package.js +2 -2
  121. package/dist/eco/manifest/parse-lockfile.js +2 -2
  122. package/dist/eco/manifest/parse-manifest.js +2 -2
  123. package/dist/eco/manifest/parse.js +2 -2
  124. package/dist/eco/npm/npm/exec.js +2 -2
  125. package/dist/eco/npm/npm/flags.js +7 -12
  126. package/dist/eco/npm/npm/parse-lockfile.d.ts +17 -18
  127. package/dist/eco/npm/npm/parse-lockfile.js +4 -4
  128. package/dist/eco/npm/parse-package-json.d.ts +11 -0
  129. package/dist/eco/npm/parse-package-json.js +3 -3
  130. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  131. package/dist/eco/npm/pnpm/exec.js +5 -5
  132. package/dist/eco/npm/pnpm/flags.js +0 -3
  133. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +6 -4
  134. package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
  135. package/dist/eco/npm/script.js +9 -6
  136. package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
  137. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
  138. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
  139. package/dist/effects/pulse-frames.d.ts +3 -1
  140. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  141. package/dist/effects/shimmer-terminal.d.ts +1 -1
  142. package/dist/env/boolean.js +0 -1
  143. package/dist/env/ci.js +0 -1
  144. package/dist/env/debug.js +0 -1
  145. package/dist/env/github-status.d.ts +51 -0
  146. package/dist/env/github-status.js +90 -0
  147. package/dist/env/github.js +0 -8
  148. package/dist/env/home.js +0 -1
  149. package/dist/env/locale.js +0 -3
  150. package/dist/env/node-auth-token.js +0 -1
  151. package/dist/env/node-env.js +0 -1
  152. package/dist/env/node-version-managers.d.ts +53 -0
  153. package/dist/env/node-version-managers.js +90 -0
  154. package/dist/env/npm.js +0 -5
  155. package/dist/env/number.js +0 -1
  156. package/dist/env/package-manager.js +3 -6
  157. package/dist/env/path.js +0 -1
  158. package/dist/env/pre-commit.js +1 -2
  159. package/dist/env/proxy.js +1 -1
  160. package/dist/env/rewire.d.ts +8 -6
  161. package/dist/env/rewire.js +16 -17
  162. package/dist/env/shell.js +0 -1
  163. package/dist/env/socket-cli.js +5 -18
  164. package/dist/env/socket-mcp.d.ts +114 -0
  165. package/dist/env/socket-mcp.js +146 -0
  166. package/dist/env/socket.d.ts +8 -109
  167. package/dist/env/socket.js +22 -167
  168. package/dist/env/string.js +0 -1
  169. package/dist/env/temp-dir.js +0 -3
  170. package/dist/env/term.js +0 -1
  171. package/dist/env/test.js +3 -6
  172. package/dist/env/windows.js +0 -4
  173. package/dist/env/xdg.js +0 -3
  174. package/dist/errors/predicates.js +1 -1
  175. package/dist/events/exit/_internal.d.ts +11 -9
  176. package/dist/events/exit/_internal.js +31 -35
  177. package/dist/events/exit/handler.js +3 -4
  178. package/dist/events/exit/intercept.js +4 -6
  179. package/dist/events/exit/lifecycle.js +16 -18
  180. package/dist/events/exit/signals.js +1 -2
  181. package/dist/events/exit/types.d.ts +6 -5
  182. package/dist/external/@npmcli/package-json.js +2 -2
  183. package/dist/external/@npmcli/promise-spawn.js +3 -1
  184. package/dist/external/npm-pack.js +2 -2
  185. package/dist/external/pico-pack.js +4 -2
  186. package/dist/external/which.js +3 -1
  187. package/dist/external-tools/bazel/asset-names.d.ts +1 -1
  188. package/dist/external-tools/bazel/asset-names.js +5 -2
  189. package/dist/external-tools/bazel/from-download.d.ts +1 -1
  190. package/dist/external-tools/bazel/from-download.js +5 -2
  191. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  192. package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
  193. package/dist/external-tools/bazel/resolve.d.ts +3 -3
  194. package/dist/external-tools/bazel/resolve.js +16 -8
  195. package/dist/external-tools/bazel/types.d.ts +1 -1
  196. package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
  197. package/dist/external-tools/cdxgen/asset-names.js +5 -2
  198. package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
  199. package/dist/external-tools/cdxgen/from-download.js +7 -4
  200. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  201. package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
  202. package/dist/external-tools/cdxgen/resolve.js +16 -8
  203. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  204. package/dist/external-tools/from-download.d.ts +3 -3
  205. package/dist/external-tools/from-download.js +12 -6
  206. package/dist/external-tools/from-pip-venv.d.ts +1 -1
  207. package/dist/external-tools/from-pip-venv.js +12 -5
  208. package/dist/external-tools/janus/asset-names.d.ts +1 -1
  209. package/dist/external-tools/janus/asset-names.js +5 -2
  210. package/dist/external-tools/janus/from-download.d.ts +1 -1
  211. package/dist/external-tools/janus/from-download.js +5 -2
  212. package/dist/external-tools/janus/from-vfs.js +1 -1
  213. package/dist/external-tools/janus/resolve.d.ts +3 -3
  214. package/dist/external-tools/janus/resolve.js +16 -8
  215. package/dist/external-tools/janus/types.d.ts +1 -1
  216. package/dist/external-tools/jre/asset-names.d.ts +1 -1
  217. package/dist/external-tools/jre/asset-names.js +5 -2
  218. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  219. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  220. package/dist/external-tools/jre/from-download.d.ts +1 -1
  221. package/dist/external-tools/jre/from-download.js +7 -4
  222. package/dist/external-tools/jre/from-java-home.js +2 -2
  223. package/dist/external-tools/jre/from-vfs.js +3 -3
  224. package/dist/external-tools/jre/resolve.d.ts +3 -3
  225. package/dist/external-tools/jre/resolve.js +16 -8
  226. package/dist/external-tools/jre/types.d.ts +1 -1
  227. package/dist/external-tools/manifest.d.ts +25 -7
  228. package/dist/external-tools/manifest.js +13 -13
  229. package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
  230. package/dist/external-tools/opengrep/asset-names.js +5 -2
  231. package/dist/external-tools/opengrep/from-download.d.ts +1 -1
  232. package/dist/external-tools/opengrep/from-download.js +5 -2
  233. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  234. package/dist/external-tools/opengrep/resolve.d.ts +3 -3
  235. package/dist/external-tools/opengrep/resolve.js +16 -8
  236. package/dist/external-tools/opengrep/types.d.ts +1 -1
  237. package/dist/external-tools/python/asset-names.d.ts +76 -0
  238. package/dist/external-tools/python/asset-names.js +111 -0
  239. package/dist/external-tools/python/dlx.d.ts +80 -0
  240. package/dist/external-tools/python/dlx.js +98 -0
  241. package/dist/external-tools/python/from-download.d.ts +53 -0
  242. package/dist/external-tools/python/from-download.js +75 -0
  243. package/dist/external-tools/python/from-path.d.ts +7 -0
  244. package/dist/external-tools/python/from-path.js +23 -0
  245. package/dist/external-tools/python/pin.d.ts +121 -0
  246. package/dist/external-tools/python/pin.js +176 -0
  247. package/dist/external-tools/python/pip-install.d.ts +75 -0
  248. package/dist/external-tools/python/pip-install.js +142 -0
  249. package/dist/external-tools/python/resolve.d.ts +42 -0
  250. package/dist/external-tools/python/resolve.js +66 -0
  251. package/dist/external-tools/python/types.d.ts +49 -0
  252. package/dist/external-tools/sbt/asset-names.d.ts +1 -1
  253. package/dist/external-tools/sbt/asset-names.js +5 -2
  254. package/dist/external-tools/sbt/from-download.d.ts +1 -1
  255. package/dist/external-tools/sbt/from-download.js +5 -2
  256. package/dist/external-tools/sbt/from-vfs.js +1 -1
  257. package/dist/external-tools/sbt/resolve.d.ts +3 -3
  258. package/dist/external-tools/sbt/resolve.js +16 -8
  259. package/dist/external-tools/sbt/types.d.ts +1 -1
  260. package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
  261. package/dist/external-tools/skillspector/from-dlx.js +10 -3
  262. package/dist/external-tools/skillspector/from-path.js +3 -5
  263. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  264. package/dist/external-tools/skillspector/resolve.d.ts +2 -2
  265. package/dist/external-tools/skillspector/resolve.js +14 -6
  266. package/dist/external-tools/synp/asset-names.d.ts +1 -1
  267. package/dist/external-tools/synp/asset-names.js +6 -2
  268. package/dist/external-tools/synp/from-download.d.ts +1 -1
  269. package/dist/external-tools/synp/from-download.js +7 -4
  270. package/dist/external-tools/synp/from-vfs.js +1 -1
  271. package/dist/external-tools/synp/resolve.d.ts +3 -3
  272. package/dist/external-tools/synp/resolve.js +16 -8
  273. package/dist/external-tools/trivy/asset-names.d.ts +1 -1
  274. package/dist/external-tools/trivy/asset-names.js +5 -2
  275. package/dist/external-tools/trivy/from-download.d.ts +1 -1
  276. package/dist/external-tools/trivy/from-download.js +7 -4
  277. package/dist/external-tools/trivy/from-vfs.js +1 -1
  278. package/dist/external-tools/trivy/resolve.d.ts +3 -3
  279. package/dist/external-tools/trivy/resolve.js +16 -8
  280. package/dist/external-tools/trivy/types.d.ts +1 -1
  281. package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
  282. package/dist/external-tools/trufflehog/asset-names.js +5 -2
  283. package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
  284. package/dist/external-tools/trufflehog/from-download.js +7 -4
  285. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  286. package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
  287. package/dist/external-tools/trufflehog/resolve.js +16 -8
  288. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  289. package/dist/fs/_internal.d.ts +1 -1
  290. package/dist/fs/_internal.js +7 -7
  291. package/dist/fs/access.js +5 -9
  292. package/dist/fs/allowed-dirs-cache.d.ts +47 -0
  293. package/dist/fs/allowed-dirs-cache.js +69 -0
  294. package/dist/fs/encoding.js +5 -7
  295. package/dist/fs/{find-up.js → find.js} +12 -14
  296. package/dist/fs/inspect.js +7 -13
  297. package/dist/fs/read-dir.js +7 -10
  298. package/dist/fs/read-file.js +8 -14
  299. package/dist/fs/read-json-cache.d.ts +13 -4
  300. package/dist/fs/read-json-cache.js +9 -6
  301. package/dist/fs/read-json.js +4 -6
  302. package/dist/fs/resolve-module.js +7 -3
  303. package/dist/fs/safe.d.ts +1 -1
  304. package/dist/fs/safe.js +13 -14
  305. package/dist/fs/unique.js +4 -5
  306. package/dist/fs/validate.js +1 -2
  307. package/dist/fs/write-json.js +4 -5
  308. package/dist/git/_internal.js +11 -11
  309. package/dist/git/changed.js +4 -4
  310. package/dist/git/repo.js +5 -7
  311. package/dist/git/staged.js +12 -4
  312. package/dist/git/tracked.d.ts +84 -0
  313. package/dist/git/tracked.js +163 -0
  314. package/dist/git/unstaged.js +12 -4
  315. package/dist/github/ghsa.js +2 -2
  316. package/dist/github/refs-cache.d.ts +1 -1
  317. package/dist/github/refs-cache.js +5 -5
  318. package/dist/github/refs-graphql.js +4 -0
  319. package/dist/github/refs-rest.js +9 -5
  320. package/dist/github/refs.js +15 -10
  321. package/dist/github/{fetch.js → request.js} +13 -2
  322. package/dist/github/token.js +1 -1
  323. package/dist/github/types.d.ts +1 -1
  324. package/dist/globs/_internal.js +8 -10
  325. package/dist/globs/match.js +13 -7
  326. package/dist/globs/matcher.d.ts +3 -3
  327. package/dist/globs/matcher.js +16 -14
  328. package/dist/globs/stream.js +1 -2
  329. package/dist/globs/types.d.ts +24 -24
  330. package/dist/http-request/_internal.d.ts +1 -1
  331. package/dist/http-request/browser.js +10 -4
  332. package/dist/http-request/checksum-file.d.ts +55 -0
  333. package/dist/http-request/checksum-file.js +95 -0
  334. package/dist/http-request/download-types.d.ts +15 -23
  335. package/dist/http-request/download.js +3 -3
  336. package/dist/http-request/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
  337. package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
  338. package/dist/http-request/headers.js +1 -2
  339. package/dist/http-request/request-attempt.js +38 -34
  340. package/dist/http-request/request-types.d.ts +2 -2
  341. package/dist/http-request/request.js +1 -1
  342. package/dist/http-request/user-agent.js +4 -5
  343. package/dist/integrity.d.ts +92 -18
  344. package/dist/integrity.js +125 -30
  345. package/dist/ipc/directory.js +2 -2
  346. package/dist/ipc/paths.js +1 -1
  347. package/dist/ipc/write.js +1 -1
  348. package/dist/ipc-cli/get.js +12 -12
  349. package/dist/json/edit.js +51 -44
  350. package/dist/json/format.js +1 -1
  351. package/dist/json/parse.d.ts +1 -1
  352. package/dist/json/parse.js +3 -7
  353. package/dist/logger/_internal.d.ts +4 -4
  354. package/dist/logger/_internal.js +3 -3
  355. package/dist/logger/colors.js +4 -3
  356. package/dist/logger/console-methods.d.ts +132 -0
  357. package/dist/logger/console-methods.js +169 -0
  358. package/dist/logger/console.d.ts +12 -0
  359. package/dist/logger/console.js +42 -11
  360. package/dist/logger/indentation-methods.d.ts +81 -0
  361. package/dist/logger/indentation-methods.js +121 -0
  362. package/dist/logger/node.d.ts +16 -338
  363. package/dist/logger/node.js +75 -608
  364. package/dist/logger/options.d.ts +39 -0
  365. package/dist/logger/options.js +47 -0
  366. package/dist/logger/semantic-methods.d.ts +63 -0
  367. package/dist/logger/semantic-methods.js +108 -0
  368. package/dist/logger/stream-methods.d.ts +63 -0
  369. package/dist/logger/stream-methods.js +101 -0
  370. package/dist/logger/stream.d.ts +37 -0
  371. package/dist/logger/stream.js +42 -0
  372. package/dist/logger/symbols-builder.js +9 -9
  373. package/dist/logger/symbols.d.ts +2 -25
  374. package/dist/logger/symbols.js +53 -74
  375. package/dist/logger/types.d.ts +1 -1
  376. package/dist/memo/types.d.ts +6 -6
  377. package/dist/native-messaging/host.d.ts +20 -0
  378. package/dist/native-messaging/host.js +120 -0
  379. package/dist/native-messaging/index.d.ts +5 -0
  380. package/dist/native-messaging/index.js +22 -0
  381. package/dist/native-messaging/install.d.ts +60 -0
  382. package/dist/native-messaging/install.js +144 -0
  383. package/dist/native-messaging/rate-limit.d.ts +69 -0
  384. package/dist/native-messaging/rate-limit.js +119 -0
  385. package/dist/native-messaging/run.d.ts +10 -0
  386. package/dist/native-messaging/run.js +17 -0
  387. package/dist/node/async-hooks.js +4 -3
  388. package/dist/node/child-process.js +4 -3
  389. package/dist/node/crypto.js +4 -3
  390. package/dist/node/events.js +4 -3
  391. package/dist/node/fs-promises.js +4 -3
  392. package/dist/node/fs.d.ts +22 -6
  393. package/dist/node/fs.js +17 -3
  394. package/dist/node/http.js +4 -3
  395. package/dist/node/https.js +4 -3
  396. package/dist/node/module.js +10 -6
  397. package/dist/node/os.d.ts +10 -2
  398. package/dist/node/os.js +12 -4
  399. package/dist/node/path.d.ts +11 -2
  400. package/dist/node/path.js +18 -4
  401. package/dist/node/timers-promises.js +4 -3
  402. package/dist/node/url.js +4 -3
  403. package/dist/node/util.js +4 -3
  404. package/dist/objects/getters.js +6 -8
  405. package/dist/objects/inspect.js +1 -4
  406. package/dist/objects/mutate.js +4 -5
  407. package/dist/objects/predicates.js +1 -5
  408. package/dist/objects/sort.js +3 -7
  409. package/dist/packages/edit-class.d.ts +2 -3
  410. package/dist/packages/edit-class.js +53 -48
  411. package/dist/packages/edit.js +12 -14
  412. package/dist/packages/exports.js +15 -21
  413. package/dist/packages/fetch.d.ts +16 -0
  414. package/dist/packages/fetch.js +81 -0
  415. package/dist/packages/find.d.ts +55 -0
  416. package/dist/packages/find.js +65 -0
  417. package/dist/packages/isolation.js +14 -14
  418. package/dist/packages/licenses.js +18 -18
  419. package/dist/packages/manifest.js +16 -19
  420. package/dist/packages/metadata-extensions.d.ts +14 -0
  421. package/dist/packages/metadata-extensions.js +43 -0
  422. package/dist/packages/normalize.js +6 -10
  423. package/dist/packages/provenance.js +17 -19
  424. package/dist/packages/read.d.ts +29 -0
  425. package/dist/packages/read.js +66 -0
  426. package/dist/packages/specs.d.ts +48 -1
  427. package/dist/packages/specs.js +75 -12
  428. package/dist/packages/tarball.d.ts +24 -0
  429. package/dist/packages/tarball.js +81 -0
  430. package/dist/packages/types.d.ts +22 -22
  431. package/dist/packages/validation.js +0 -3
  432. package/dist/paths/_internal.d.ts +2 -1
  433. package/dist/paths/_internal.js +7 -19
  434. package/dist/paths/conversion.js +5 -9
  435. package/dist/paths/dirnames.d.ts +1 -0
  436. package/dist/paths/dirnames.js +2 -0
  437. package/dist/paths/filenames.d.ts +0 -1
  438. package/dist/paths/filenames.js +0 -2
  439. package/dist/paths/normalize.js +4 -5
  440. package/dist/paths/packages.js +4 -7
  441. package/dist/paths/predicates.js +9 -16
  442. package/dist/paths/resolve.js +17 -25
  443. package/dist/paths/rewire.d.ts +5 -0
  444. package/dist/paths/rewire.js +3 -3
  445. package/dist/paths/socket.d.ts +74 -111
  446. package/dist/paths/socket.js +106 -139
  447. package/dist/paths/walk.d.ts +1 -1
  448. package/dist/paths/walk.js +4 -4
  449. package/dist/perf/report.js +2 -2
  450. package/dist/perf/types.d.ts +1 -1
  451. package/dist/pkg-ext/data.js +1 -1
  452. package/dist/primordials/array.js +9 -9
  453. package/dist/primordials/date.js +2 -2
  454. package/dist/primordials/error.js +3 -3
  455. package/dist/primordials/headers.d.ts +10 -0
  456. package/dist/primordials/headers.js +23 -0
  457. package/dist/primordials/intl.d.ts +13 -0
  458. package/dist/primordials/intl.js +26 -0
  459. package/dist/primordials/math.js +33 -33
  460. package/dist/primordials/number.js +9 -9
  461. package/dist/primordials/object.js +5 -5
  462. package/dist/primordials/process.d.ts +88 -0
  463. package/dist/primordials/process.js +132 -0
  464. package/dist/primordials/string.d.ts +2 -2
  465. package/dist/primordials/string.js +6 -6
  466. package/dist/primordials/symbol.js +3 -3
  467. package/dist/primordials/uncurry.d.ts +1 -2
  468. package/dist/primordials/uncurry.js +9 -9
  469. package/dist/process/abort.js +3 -3
  470. package/dist/process/lock-manager.js +8 -8
  471. package/dist/process/spawn/_internal.js +6 -8
  472. package/dist/process/spawn/child.js +20 -14
  473. package/dist/process/spawn/errors.js +3 -5
  474. package/dist/process/spawn/kill-tree.d.ts +53 -0
  475. package/dist/process/spawn/kill-tree.js +85 -0
  476. package/dist/process/spawn/stdio.js +0 -1
  477. package/dist/process/spawn/types.d.ts +5 -5
  478. package/dist/process/transient.js +2 -2
  479. package/dist/promises/_internal.d.ts +2 -1
  480. package/dist/promises/_internal.js +2 -6
  481. package/dist/promises/iterate.js +11 -15
  482. package/dist/promises/options.js +3 -6
  483. package/dist/promises/retry.js +4 -5
  484. package/dist/promises/timers.d.ts +30 -0
  485. package/dist/promises/timers.js +48 -0
  486. package/dist/regexps/spec.js +1 -1
  487. package/dist/releases/github-archives.d.ts +6 -6
  488. package/dist/releases/github-archives.js +3 -3
  489. package/dist/releases/github-asset-url.d.ts +1 -1
  490. package/dist/releases/github-asset-url.js +5 -5
  491. package/dist/releases/github-downloads.d.ts +1 -1
  492. package/dist/releases/github-downloads.js +3 -3
  493. package/dist/releases/github-listing.d.ts +12 -4
  494. package/dist/releases/github-listing.js +20 -7
  495. package/dist/releases/github-retry-config.js +1 -1
  496. package/dist/releases/github-types.d.ts +6 -6
  497. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  498. package/dist/releases/socket-btm-binary-naming.js +155 -0
  499. package/dist/releases/socket-btm.d.ts +8 -115
  500. package/dist/releases/socket-btm.js +16 -159
  501. package/dist/schema/types.d.ts +4 -5
  502. package/dist/schema/validate.js +1 -1
  503. package/dist/sea/detect.js +6 -6
  504. package/dist/secrets/_internal.d.ts +2 -2
  505. package/dist/secrets/_internal.js +2 -2
  506. package/dist/secrets/compare.d.ts +45 -0
  507. package/dist/secrets/compare.js +61 -0
  508. package/dist/secrets/find.d.ts +2 -2
  509. package/dist/secrets/find.js +10 -4
  510. package/dist/secrets/keychain.d.ts +1 -1
  511. package/dist/secrets/keychain.js +6 -4
  512. package/dist/secrets/linux.js +40 -52
  513. package/dist/secrets/macos.d.ts +2 -3
  514. package/dist/secrets/macos.js +24 -33
  515. package/dist/secrets/rc.d.ts +4 -4
  516. package/dist/secrets/rc.js +27 -17
  517. package/dist/secrets/socket-api-token.d.ts +4 -4
  518. package/dist/secrets/socket-api-token.js +26 -9
  519. package/dist/secrets/windows.js +32 -37
  520. package/dist/shadow/skip.js +2 -2
  521. package/dist/shell/parse.d.ts +32 -0
  522. package/dist/shell/parse.js +60 -0
  523. package/dist/smol/detect.js +9 -10
  524. package/dist/smol/http.js +6 -7
  525. package/dist/smol/https.js +6 -7
  526. package/dist/smol/manifest.d.ts +1 -1
  527. package/dist/smol/manifest.js +6 -7
  528. package/dist/smol/path.d.ts +1 -1
  529. package/dist/smol/path.js +7 -8
  530. package/dist/smol/primordial.d.ts +4 -0
  531. package/dist/smol/primordial.js +6 -7
  532. package/dist/smol/purl.d.ts +1 -1
  533. package/dist/smol/purl.js +7 -8
  534. package/dist/smol/versions.js +6 -7
  535. package/dist/smol/vfs.js +6 -7
  536. package/dist/sorts/_internal.js +6 -8
  537. package/dist/sorts/natural.js +10 -12
  538. package/dist/sorts/semver.js +1 -2
  539. package/dist/sorts/strings.js +0 -1
  540. package/dist/sorts/types.d.ts +1 -1
  541. package/dist/spinner/create-spinner-class.d.ts +38 -0
  542. package/dist/spinner/create-spinner-class.js +302 -0
  543. package/dist/spinner/default.js +8 -9
  544. package/dist/spinner/spinner-internals.d.ts +36 -0
  545. package/dist/spinner/spinner-internals.js +105 -0
  546. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  547. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  548. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  549. package/dist/spinner/spinner-status-methods.js +133 -0
  550. package/dist/spinner/spinner.d.ts +8 -5
  551. package/dist/spinner/spinner.js +19 -706
  552. package/dist/spinner/types.d.ts +3 -1
  553. package/dist/spinner/with.d.ts +10 -0
  554. package/dist/spinner/with.js +16 -2
  555. package/dist/stdio/divider.js +1 -1
  556. package/dist/stdio/footer.js +3 -3
  557. package/dist/stdio/header.js +4 -4
  558. package/dist/stdio/progress.js +10 -6
  559. package/dist/stdio/prompts.d.ts +7 -5
  560. package/dist/stdio/prompts.js +7 -8
  561. package/dist/stdio/stdout.js +3 -3
  562. package/dist/streams/parallel.js +3 -5
  563. package/dist/streams/transform.js +2 -3
  564. package/dist/strings/format.js +2 -6
  565. package/dist/strings/predicates.js +0 -2
  566. package/dist/strings/search.js +1 -2
  567. package/dist/strings/transform.js +0 -3
  568. package/dist/strings/width.js +9 -10
  569. package/dist/tables/bordered.js +4 -3
  570. package/dist/tables/padding.js +1 -1
  571. package/dist/tables/simple.js +8 -5
  572. package/dist/temporal/instant.js +1 -1
  573. package/dist/temporal/slots.js +6 -6
  574. package/dist/temporal/system.js +9 -9
  575. package/dist/themes/context.d.ts +3 -2
  576. package/dist/themes/context.js +4 -5
  577. package/dist/themes/themes.js +15 -15
  578. package/dist/themes/types.d.ts +3 -3
  579. package/dist/url/assert-safe.d.ts +29 -0
  580. package/dist/url/assert-safe.js +54 -0
  581. package/dist/url/parse.js +0 -2
  582. package/dist/url/predicates.d.ts +31 -1
  583. package/dist/url/predicates.js +43 -3
  584. package/dist/url/search-params.js +3 -9
  585. package/dist/url/types.d.ts +9 -5
  586. package/dist/versions/_internal.js +3 -3
  587. package/dist/words/article.js +0 -1
  588. package/dist/words/capitalize.js +0 -1
  589. package/dist/words/pluralize.js +15 -5
  590. package/package.json +419 -216
  591. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  592. package/dist/external-tools/uv/asset-names.js +0 -70
  593. package/dist/external-tools/uv/from-download.d.ts +0 -17
  594. package/dist/external-tools/uv/from-download.js +0 -47
  595. package/dist/external-tools/uv/from-path.d.ts +0 -5
  596. package/dist/external-tools/uv/from-path.js +0 -22
  597. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  598. package/dist/external-tools/uv/from-vfs.js +0 -26
  599. package/dist/external-tools/uv/resolve.d.ts +0 -25
  600. package/dist/external-tools/uv/resolve.js +0 -53
  601. package/dist/external-tools/uv/types.d.ts +0 -24
  602. package/dist/fs/path-cache.d.ts +0 -21
  603. package/dist/fs/path-cache.js +0 -34
  604. package/dist/http-request/checksums.d.ts +0 -69
  605. package/dist/http-request/checksums.js +0 -108
  606. package/dist/http-request/http-request.d.ts +0 -12
  607. package/dist/http-request/http-request.js +0 -11
  608. package/dist/packages/operations.d.ts +0 -113
  609. package/dist/packages/operations.js +0 -304
  610. package/dist/ssri/convert.d.ts +0 -48
  611. package/dist/ssri/convert.js +0 -69
  612. package/dist/ssri/parse.d.ts +0 -27
  613. package/dist/ssri/parse.js +0 -41
  614. package/dist/ssri/validate.d.ts +0 -41
  615. package/dist/ssri/validate.js +0 -56
  616. /package/dist/{bin → cli}/check.d.ts +0 -0
  617. /package/dist/external-tools/{uv → python}/types.js +0 -0
  618. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  619. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -5,7 +5,7 @@
5
5
  * limits + optional schema validation).
6
6
  */
7
7
  import type { Schema } from '../schema/types';
8
- import type { ParseJsonOptions, JsonPrimitive, JsonValue, ParseJsonSafeOptions } from './types';
8
+ import type { JsonPrimitive, JsonValue, ParseJsonOptions, ParseJsonSafeOptions } from './types';
9
9
  /**
10
10
  * Check if a value is a Buffer instance. Uses duck-typing to detect Buffer
11
11
  * without requiring Node.js Buffer in type system.
@@ -4,9 +4,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_buffer = require('../primordials/buffer.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
6
  const require_primordials_map_set = require('../primordials/map-set.js');
7
+ const require_primordials_json = require('../primordials/json.js');
7
8
  const require_schema_validate = require('../schema/validate.js');
8
9
  const require_strings_transform = require('../strings/transform.js');
9
- const require_primordials_json = require('../primordials/json.js');
10
10
 
11
11
  //#region src/json/parse.ts
12
12
  /**
@@ -30,7 +30,6 @@ const require_primordials_json = require('../primordials/json.js');
30
30
  *
31
31
  * @returns `true` if value is a Buffer, `false` otherwise
32
32
  */
33
- /*@__NO_SIDE_EFFECTS__*/
34
33
  function isBuffer(x) {
35
34
  if (!x || typeof x !== "object") return false;
36
35
  const obj = x;
@@ -59,7 +58,6 @@ function isBuffer(x) {
59
58
  *
60
59
  * @returns `true` if value is a JSON primitive, `false` otherwise
61
60
  */
62
- /*@__NO_SIDE_EFFECTS__*/
63
61
  function isJsonPrimitive(value) {
64
62
  return value === null || typeof value === "boolean" || typeof value === "number" || typeof value === "string";
65
63
  }
@@ -117,16 +115,15 @@ function isJsonPrimitive(value) {
117
115
  *
118
116
  * @throws {SyntaxError} When JSON is invalid and `throws` is `true` (default)
119
117
  */
120
- /*@__NO_SIDE_EFFECTS__*/
121
118
  function parseJson(content, options) {
122
119
  const { filepath, reviver, throws } = {
123
120
  __proto__: null,
124
121
  ...options
125
122
  };
126
123
  const shouldThrow = throws === void 0 || !!throws;
127
- const jsonStr = /* @__PURE__ */ isBuffer(content) ? content.toString("utf8") : content;
124
+ const jsonStr = isBuffer(content) ? content.toString("utf8") : content;
128
125
  try {
129
- return require_primordials_json.JSONParse(/* @__PURE__ */ require_strings_transform.stripBom(jsonStr), reviver);
126
+ return require_primordials_json.JSONParse(require_strings_transform.stripBom(jsonStr), reviver);
130
127
  } catch (e) {
131
128
  if (shouldThrow) {
132
129
  const error = e;
@@ -183,7 +180,6 @@ const DEFAULT_MAX_SIZE = 10 * 1024 * 1024;
183
180
  * `allowPrototype` is not `true`).
184
181
  * @throws {Error} When schema validation fails.
185
182
  */
186
- /*@__NO_SIDE_EFFECTS__*/
187
183
  function parseJsonSafe(jsonString, schema, options = {}) {
188
184
  const { allowPrototype = false, maxSize = DEFAULT_MAX_SIZE } = options;
189
185
  if (require_primordials_buffer.BufferByteLength(jsonString, "utf8") > maxSize) throw new require_primordials_error.ErrorCtor(`JSON string exceeds maximum size limit${maxSize !== DEFAULT_MAX_SIZE ? ` of ${maxSize} bytes` : ""}`);
@@ -3,7 +3,7 @@
3
3
  * public `Logger` surface) and `logger/console-init` (which mutates
4
4
  * `Logger.prototype` to mirror `globalConsole`). The `_` prefix keeps this
5
5
  * module out of the generated package.json `exports` map (the `dist/**\/_*`
6
- * ignore pattern in `scripts/fix/generate-package-exports.mts` filters it
6
+ * ignore pattern in `scripts/post-build/make-package-exports.mts` filters it
7
7
  * out), so it is not part of the public surface — it exists only to give the
8
8
  * two leaves above a common owner for the WeakMap-backed lazy-init state. Why
9
9
  * two WeakMaps instead of `#privateField` slots:
@@ -32,9 +32,9 @@ export declare const globalConsole: Console;
32
32
  */
33
33
  export declare const consolePropAttributes: {
34
34
  __proto__: null;
35
- writable: boolean;
36
- enumerable: boolean;
37
35
  configurable: boolean;
36
+ enumerable: boolean;
37
+ writable: boolean;
38
38
  };
39
39
  /**
40
40
  * Cap on the indentation prefix length so a runaway `indent(n)` call with a
@@ -58,7 +58,7 @@ export declare const maxIndentation = 1000;
58
58
  * the Logger's own group methods avoid by tracking indentation at the prefix
59
59
  * layer.
60
60
  */
61
- export declare const boundConsoleEntries: any[][];
61
+ export declare const boundConsoleEntries: [string, (...args: unknown[]) => unknown][];
62
62
  /**
63
63
  * WeakMap storing the Console instance for each Logger.
64
64
  *
@@ -9,7 +9,7 @@ const require_primordials_map_set = require('../primordials/map-set.js');
9
9
  * public `Logger` surface) and `logger/console-init` (which mutates
10
10
  * `Logger.prototype` to mirror `globalConsole`). The `_` prefix keeps this
11
11
  * module out of the generated package.json `exports` map (the `dist/**\/_*`
12
- * ignore pattern in `scripts/fix/generate-package-exports.mts` filters it
12
+ * ignore pattern in `scripts/post-build/make-package-exports.mts` filters it
13
13
  * out), so it is not part of the public surface — it exists only to give the
14
14
  * two leaves above a common owner for the WeakMap-backed lazy-init state. Why
15
15
  * two WeakMaps instead of `#privateField` slots:
@@ -38,9 +38,9 @@ const globalConsole = console;
38
38
  */
39
39
  const consolePropAttributes = {
40
40
  __proto__: null,
41
- writable: true,
41
+ configurable: true,
42
42
  enumerable: false,
43
- configurable: true
43
+ writable: true
44
44
  };
45
45
  /**
46
46
  * Cap on the indentation prefix length so a runaway `indent(n)` call with a
@@ -17,16 +17,17 @@ src_external_yoctocolors_cjs = require_runtime.__toESM(src_external_yoctocolors_
17
17
  * Apply a color to text using yoctocolors. Handles both named colors and RGB
18
18
  * tuples.
19
19
  */
20
- /*@__NO_SIDE_EFFECTS__*/
21
20
  function applyColor(text, color, colors) {
22
- if (typeof color === "string") return colors[color](text);
21
+ if (typeof color === "string") {
22
+ const formatter = colors[color];
23
+ return formatter ? formatter(text) : text;
24
+ }
23
25
  const { 0: r, 1: g, 2: b } = color;
24
26
  return `\u001B[38;2;${r};${g};${b}m${text}\u001B[39m`;
25
27
  }
26
28
  /**
27
29
  * Get the yoctocolors module for terminal colors.
28
30
  */
29
- /*@__NO_SIDE_EFFECTS__*/
30
31
  function getYoctocolors() {
31
32
  return src_external_yoctocolors_cjs.default;
32
33
  }
@@ -0,0 +1,132 @@
1
+ /**
2
+ * @file Free-function bodies for the `Logger` methods that are thin, chainable
3
+ * mirrors of the underlying `node:console` API (`assert`, `count`, `dir`,
4
+ * `dirxml`, `table`, `time`, `timeEnd`, `timeLog`, `trace`). Each takes the
5
+ * calling logger plus its already-resolved `node:console` instance, delegates
6
+ * to the matching console method, updates the shared blank-line / call-count
7
+ * tracking via the exported logger symbols, and returns the logger for
8
+ * chaining. Pulling these out of `./node` keeps the `Logger` class body under
9
+ * the file-size cap while preserving the per-method documentation here. The
10
+ * class retains one-line delegators that supply `this` and
11
+ * `this.#getConsole()`.
12
+ */
13
+ import { incLogCallCountSymbol, lastWasBlankSymbol } from './symbols';
14
+ /**
15
+ * The slice of `node:console` the mirror methods call into, plus the internal
16
+ * `_stderr` / `_stdout` slots reached elsewhere. Modeled structurally so the
17
+ * cast from the lazily-built per-instance Console stays explicit.
18
+ */
19
+ export type ConsoleLike = typeof console & Record<string, unknown>;
20
+ /**
21
+ * The slice of `Logger` the mirror methods need: the two symbol-keyed tracking
22
+ * methods. Typed structurally to avoid a circular import with `./node`.
23
+ */
24
+ export interface LoggerTrackable {
25
+ [incLogCallCountSymbol](): LoggerTrackable;
26
+ [lastWasBlankSymbol](value: unknown, stream?: 'stderr' | 'stdout'): unknown;
27
+ }
28
+ /**
29
+ * Logs an assertion failure message if the value is falsy.
30
+ *
31
+ * Works like `console.assert()` but returns the logger for chaining. If the
32
+ * value is truthy, nothing is logged. If falsy, logs an error message with an
33
+ * assertion failure.
34
+ *
35
+ * @param logger - The calling logger instance.
36
+ * @param con - The logger's resolved console instance.
37
+ * @param value - The value to test.
38
+ * @param message - Optional message and additional arguments to log.
39
+ */
40
+ export declare function assertMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, value: unknown, message: unknown[]): T;
41
+ /**
42
+ * Increments and logs a counter for the given label.
43
+ *
44
+ * Each unique label maintains its own counter. Works like `console.count()`.
45
+ *
46
+ * @param logger - The calling logger instance.
47
+ * @param con - The logger's resolved console instance.
48
+ * @param label - Optional label for the counter (defaults to 'default').
49
+ */
50
+ export declare function countMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, label?: string | undefined): T;
51
+ /**
52
+ * Displays an object's properties in a formatted way.
53
+ *
54
+ * Works like `console.dir()` with customizable options for depth, colors, etc.
55
+ * Useful for inspecting complex objects.
56
+ *
57
+ * @param logger - The calling logger instance.
58
+ * @param con - The logger's resolved console instance.
59
+ * @param obj - The object to display.
60
+ * @param options - Optional formatting options (Node.js inspect options).
61
+ */
62
+ export declare function dirMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, obj: unknown, options?: unknown | undefined): T;
63
+ /**
64
+ * Displays data as XML/HTML in a formatted way.
65
+ *
66
+ * Works like `console.dirxml()`. In Node.js, behaves the same as `dir()`.
67
+ *
68
+ * @param logger - The calling logger instance.
69
+ * @param con - The logger's resolved console instance.
70
+ * @param data - The data to display.
71
+ */
72
+ export declare function dirxmlMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, data: unknown[]): T;
73
+ /**
74
+ * Displays data in a table format.
75
+ *
76
+ * Works like `console.table()`. Accepts arrays of objects or objects with
77
+ * nested objects. Optionally specify which properties to include in the table.
78
+ *
79
+ * @param logger - The calling logger instance.
80
+ * @param con - The logger's resolved console instance.
81
+ * @param tabularData - The data to display as a table.
82
+ * @param properties - Optional array of property names to include.
83
+ */
84
+ export declare function tableMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, tabularData: unknown, properties?: readonly string[] | undefined): T;
85
+ /**
86
+ * Ends a timer and logs the elapsed time.
87
+ *
88
+ * Logs the duration since `console.time()` or `logger.time()` was called with
89
+ * the same label. The timer is stopped and removed.
90
+ *
91
+ * @param logger - The calling logger instance.
92
+ * @param con - The logger's resolved console instance.
93
+ * @param label - Optional label for the timer (defaults to 'default').
94
+ */
95
+ export declare function timeEndMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, label?: string | undefined): T;
96
+ /**
97
+ * Logs the current value of a timer without stopping it.
98
+ *
99
+ * Logs the duration since `console.time()` was called with the same label, but
100
+ * keeps the timer running. Can include additional data to log alongside the
101
+ * time.
102
+ *
103
+ * @param logger - The calling logger instance.
104
+ * @param con - The logger's resolved console instance.
105
+ * @param label - Optional label for the timer (defaults to 'default').
106
+ * @param data - Additional data to log with the time.
107
+ */
108
+ export declare function timeLogMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, label: string | undefined, data: unknown[]): T;
109
+ /**
110
+ * Starts a timer for measuring elapsed time.
111
+ *
112
+ * Creates a timer with the given label. Use `timeEnd()` with the same label to
113
+ * stop the timer and log the elapsed time, or use `timeLog()` to check the time
114
+ * without stopping the timer.
115
+ *
116
+ * @param logger - The calling logger instance.
117
+ * @param con - The logger's resolved console instance.
118
+ * @param label - Optional label for the timer (defaults to 'default').
119
+ */
120
+ export declare function timeMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, label?: string | undefined): T;
121
+ /**
122
+ * Logs a stack trace to the console.
123
+ *
124
+ * Works like `console.trace()`. Shows the call stack leading to where this
125
+ * method was called. Useful for debugging.
126
+ *
127
+ * @param logger - The calling logger instance.
128
+ * @param con - The logger's resolved console instance.
129
+ * @param message - Optional message to display with the trace.
130
+ * @param args - Additional arguments to log.
131
+ */
132
+ export declare function traceMethod<T extends LoggerTrackable>(logger: T, con: ConsoleLike, message: unknown | undefined, args: unknown[]): T;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_logger_symbols = require('./symbols.js');
5
+
6
+ //#region src/logger/console-methods.ts
7
+ /**
8
+ * @file Free-function bodies for the `Logger` methods that are thin, chainable
9
+ * mirrors of the underlying `node:console` API (`assert`, `count`, `dir`,
10
+ * `dirxml`, `table`, `time`, `timeEnd`, `timeLog`, `trace`). Each takes the
11
+ * calling logger plus its already-resolved `node:console` instance, delegates
12
+ * to the matching console method, updates the shared blank-line / call-count
13
+ * tracking via the exported logger symbols, and returns the logger for
14
+ * chaining. Pulling these out of `./node` keeps the `Logger` class body under
15
+ * the file-size cap while preserving the per-method documentation here. The
16
+ * class retains one-line delegators that supply `this` and
17
+ * `this.#getConsole()`.
18
+ */
19
+ /**
20
+ * Logs an assertion failure message if the value is falsy.
21
+ *
22
+ * Works like `console.assert()` but returns the logger for chaining. If the
23
+ * value is truthy, nothing is logged. If falsy, logs an error message with an
24
+ * assertion failure.
25
+ *
26
+ * @param logger - The calling logger instance.
27
+ * @param con - The logger's resolved console instance.
28
+ * @param value - The value to test.
29
+ * @param message - Optional message and additional arguments to log.
30
+ */
31
+ function assertMethod(logger, con, value, message) {
32
+ con.assert(value, message[0], ...message.slice(1));
33
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
34
+ return value ? logger : logger[require_logger_symbols.incLogCallCountSymbol]();
35
+ }
36
+ /**
37
+ * Increments and logs a counter for the given label.
38
+ *
39
+ * Each unique label maintains its own counter. Works like `console.count()`.
40
+ *
41
+ * @param logger - The calling logger instance.
42
+ * @param con - The logger's resolved console instance.
43
+ * @param label - Optional label for the counter (defaults to 'default').
44
+ */
45
+ function countMethod(logger, con, label) {
46
+ con.count(label);
47
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
48
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
49
+ }
50
+ /**
51
+ * Displays an object's properties in a formatted way.
52
+ *
53
+ * Works like `console.dir()` with customizable options for depth, colors, etc.
54
+ * Useful for inspecting complex objects.
55
+ *
56
+ * @param logger - The calling logger instance.
57
+ * @param con - The logger's resolved console instance.
58
+ * @param obj - The object to display.
59
+ * @param options - Optional formatting options (Node.js inspect options).
60
+ */
61
+ function dirMethod(logger, con, obj, options) {
62
+ con.dir(obj, options);
63
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
64
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
65
+ }
66
+ /**
67
+ * Displays data as XML/HTML in a formatted way.
68
+ *
69
+ * Works like `console.dirxml()`. In Node.js, behaves the same as `dir()`.
70
+ *
71
+ * @param logger - The calling logger instance.
72
+ * @param con - The logger's resolved console instance.
73
+ * @param data - The data to display.
74
+ */
75
+ function dirxmlMethod(logger, con, data) {
76
+ con.dirxml(data);
77
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
78
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
79
+ }
80
+ /**
81
+ * Displays data in a table format.
82
+ *
83
+ * Works like `console.table()`. Accepts arrays of objects or objects with
84
+ * nested objects. Optionally specify which properties to include in the table.
85
+ *
86
+ * @param logger - The calling logger instance.
87
+ * @param con - The logger's resolved console instance.
88
+ * @param tabularData - The data to display as a table.
89
+ * @param properties - Optional array of property names to include.
90
+ */
91
+ function tableMethod(logger, con, tabularData, properties) {
92
+ con.table(tabularData, properties);
93
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
94
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
95
+ }
96
+ /**
97
+ * Ends a timer and logs the elapsed time.
98
+ *
99
+ * Logs the duration since `console.time()` or `logger.time()` was called with
100
+ * the same label. The timer is stopped and removed.
101
+ *
102
+ * @param logger - The calling logger instance.
103
+ * @param con - The logger's resolved console instance.
104
+ * @param label - Optional label for the timer (defaults to 'default').
105
+ */
106
+ function timeEndMethod(logger, con, label) {
107
+ con.timeEnd(label);
108
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
109
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
110
+ }
111
+ /**
112
+ * Logs the current value of a timer without stopping it.
113
+ *
114
+ * Logs the duration since `console.time()` was called with the same label, but
115
+ * keeps the timer running. Can include additional data to log alongside the
116
+ * time.
117
+ *
118
+ * @param logger - The calling logger instance.
119
+ * @param con - The logger's resolved console instance.
120
+ * @param label - Optional label for the timer (defaults to 'default').
121
+ * @param data - Additional data to log with the time.
122
+ */
123
+ function timeLogMethod(logger, con, label, data) {
124
+ con.timeLog(label, ...data);
125
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
126
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
127
+ }
128
+ /**
129
+ * Starts a timer for measuring elapsed time.
130
+ *
131
+ * Creates a timer with the given label. Use `timeEnd()` with the same label to
132
+ * stop the timer and log the elapsed time, or use `timeLog()` to check the time
133
+ * without stopping the timer.
134
+ *
135
+ * @param logger - The calling logger instance.
136
+ * @param con - The logger's resolved console instance.
137
+ * @param label - Optional label for the timer (defaults to 'default').
138
+ */
139
+ function timeMethod(logger, con, label) {
140
+ con.time(label);
141
+ return logger;
142
+ }
143
+ /**
144
+ * Logs a stack trace to the console.
145
+ *
146
+ * Works like `console.trace()`. Shows the call stack leading to where this
147
+ * method was called. Useful for debugging.
148
+ *
149
+ * @param logger - The calling logger instance.
150
+ * @param con - The logger's resolved console instance.
151
+ * @param message - Optional message to display with the trace.
152
+ * @param args - Additional arguments to log.
153
+ */
154
+ function traceMethod(logger, con, message, args) {
155
+ con.trace(message, ...args);
156
+ logger[require_logger_symbols.lastWasBlankSymbol](false);
157
+ return logger[require_logger_symbols.incLogCallCountSymbol]();
158
+ }
159
+
160
+ //#endregion
161
+ exports.assertMethod = assertMethod;
162
+ exports.countMethod = countMethod;
163
+ exports.dirMethod = dirMethod;
164
+ exports.dirxmlMethod = dirxmlMethod;
165
+ exports.tableMethod = tableMethod;
166
+ exports.timeEndMethod = timeEndMethod;
167
+ exports.timeLogMethod = timeLogMethod;
168
+ exports.timeMethod = timeMethod;
169
+ exports.traceMethod = traceMethod;
@@ -19,6 +19,7 @@
19
19
  * `ensurePrototypeInitialized` actually runs, both modules are fully
20
20
  * evaluated. Same pattern as `fs/path-cache` ↔ `fs/_internal`.
21
21
  */
22
+ import { Logger } from './node';
22
23
  /**
23
24
  * Construct a new Console instance.
24
25
  */
@@ -31,3 +32,14 @@ export declare function constructConsole(...args: unknown[]): Console;
31
32
  * ready.
32
33
  */
33
34
  export declare function ensurePrototypeInitialized(): void;
35
+ /**
36
+ * Resolve (and lazily construct + cache) the per-instance `Console` for a
37
+ * logger. Ensures the prototype is initialized, then returns the cached Console
38
+ * from the `privateConsole` WeakMap, building one from the stored constructor
39
+ * args (or the default stdout/stderr pair) on first access. This lazy path is
40
+ * what lets the logger be imported during early Node.js bootstrap before stdout
41
+ * is ready, avoiding `ERR_CONSOLE_WRITABLE_STREAM`.
42
+ *
43
+ * @param logger - The logger whose Console to resolve.
44
+ */
45
+ export declare function resolveConsole(logger: Logger): typeof console & Record<string, unknown>;
@@ -32,16 +32,15 @@ node_process = require_runtime.__toESM(node_process);
32
32
  * `ensurePrototypeInitialized` actually runs, both modules are fully
33
33
  * evaluated. Same pattern as `fs/path-cache` ↔ `fs/_internal`.
34
34
  */
35
- let _Console;
36
- let _prototypeInitialized = false;
35
+ let cachedConsole;
36
+ let prototypeInitialized = false;
37
37
  /**
38
38
  * Construct a new Console instance.
39
39
  */
40
- /*@__NO_SIDE_EFFECTS__*/
41
40
  function constructConsole(...args) {
42
41
  /* c8 ignore next - Lazy-init second-call branch; module-singleton. */
43
- if (_Console === void 0) _Console = (/* @__PURE__ */ require("node:console")).Console;
44
- return require_primordials_reflect.ReflectConstruct(_Console, args);
42
+ if (cachedConsole === void 0) cachedConsole = (/* @__PURE__ */ require("node:console")).Console;
43
+ return require_primordials_reflect.ReflectConstruct(cachedConsole, args);
45
44
  }
46
45
  /**
47
46
  * Lazily add dynamic console methods to Logger prototype.
@@ -51,8 +50,8 @@ function constructConsole(...args) {
51
50
  * ready.
52
51
  */
53
52
  function ensurePrototypeInitialized() {
54
- if (_prototypeInitialized) return;
55
- _prototypeInitialized = true;
53
+ if (prototypeInitialized) return;
54
+ prototypeInitialized = true;
56
55
  const entries = [[require_logger_symbols.getKGroupIndentationWidthSymbol(), {
57
56
  ...require_logger__internal.consolePropAttributes,
58
57
  value: 2
@@ -68,9 +67,9 @@ function ensurePrototypeInitialized() {
68
67
  if (con === void 0) {
69
68
  const ctorArgs = require_logger__internal.privateConstructorArgs.get(this) ?? [];
70
69
  require_logger__internal.privateConstructorArgs.delete(this);
71
- if (ctorArgs.length) con = /* @__PURE__ */ constructConsole(...ctorArgs);
70
+ if (ctorArgs.length) con = constructConsole(...ctorArgs);
72
71
  else {
73
- con = /* @__PURE__ */ constructConsole({
72
+ con = constructConsole({
74
73
  stdout: node_process.default.stdout,
75
74
  stderr: node_process.default.stderr
76
75
  });
@@ -78,7 +77,6 @@ function ensurePrototypeInitialized() {
78
77
  }
79
78
  require_logger__internal.privateConsole.set(this, con);
80
79
  }
81
- /* c8 ignore stop */
82
80
  const result = con[key](...args);
83
81
  /* c8 ignore next */
84
82
  return result === void 0 || result === con ? this : result;
@@ -90,7 +88,40 @@ function ensurePrototypeInitialized() {
90
88
  }
91
89
  require_primordials_object.ObjectDefineProperties(require_logger_node.Logger.prototype, require_primordials_object.ObjectFromEntries(entries));
92
90
  }
91
+ /**
92
+ * Resolve (and lazily construct + cache) the per-instance `Console` for a
93
+ * logger. Ensures the prototype is initialized, then returns the cached Console
94
+ * from the `privateConsole` WeakMap, building one from the stored constructor
95
+ * args (or the default stdout/stderr pair) on first access. This lazy path is
96
+ * what lets the logger be imported during early Node.js bootstrap before stdout
97
+ * is ready, avoiding `ERR_CONSOLE_WRITABLE_STREAM`.
98
+ *
99
+ * @param logger - The logger whose Console to resolve.
100
+ */
101
+ function resolveConsole(logger) {
102
+ ensurePrototypeInitialized();
103
+ let con = require_logger__internal.privateConsole.get(logger);
104
+ /* c8 ignore start - ctorArgs.length-truthy fires when caller seeded
105
+ constructor args; both arms are exercised across tests but not always
106
+ in the same run. */
107
+ if (!con) {
108
+ const ctorArgs = require_logger__internal.privateConstructorArgs.get(logger) ?? [];
109
+ if (ctorArgs.length) con = constructConsole(...ctorArgs);
110
+ else {
111
+ con = constructConsole({
112
+ stdout: node_process.default.stdout,
113
+ stderr: node_process.default.stderr
114
+ });
115
+ for (const { 0: key, 1: method } of require_logger__internal.boundConsoleEntries) con[key] = method;
116
+ }
117
+ require_logger__internal.privateConsole.set(logger, con);
118
+ require_logger__internal.privateConstructorArgs.delete(logger);
119
+ }
120
+ /* c8 ignore stop */
121
+ return con;
122
+ }
93
123
 
94
124
  //#endregion
95
125
  exports.constructConsole = constructConsole;
96
- exports.ensurePrototypeInitialized = ensurePrototypeInitialized;
126
+ exports.ensurePrototypeInitialized = ensurePrototypeInitialized;
127
+ exports.resolveConsole = resolveConsole;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @file Free-function bodies for the `Logger` indentation-domain methods
3
+ * (`indent`, `dedent`, `resetIndent`, `group`, `groupCollapsed`, `groupEnd`).
4
+ * Indentation is tracked at the prefix layer (a per-stream string of spaces)
5
+ * rather than via `node:console`'s frozen `Symbol(kGroupIndent)`, so these
6
+ * helpers read and write that prefix through a small accessor context handed
7
+ * in by the calling `Logger`. Pulling these out of `./node` keeps the
8
+ * `Logger` class body under the file-size cap; the class retains one-line
9
+ * delegators that build the context from its private state.
10
+ */
11
+ import type { LoggerTrackable } from './console-methods';
12
+ /**
13
+ * The slice of `Logger` the indentation helpers need: the bound-stream marker
14
+ * (`undefined` on the root logger, `'stderr'` / `'stdout'` on a stream-bound
15
+ * instance) plus per-stream indent prefix read / write accessors. Modeled
16
+ * structurally to avoid a circular import with `./node`; the class supplies
17
+ * closures over its private `#getIndent` / `#setIndent`.
18
+ */
19
+ export interface IndentContext {
20
+ boundStream: 'stderr' | 'stdout' | undefined;
21
+ getIndent(stream: 'stderr' | 'stdout'): string;
22
+ setIndent(stream: 'stderr' | 'stdout', value: string): void;
23
+ }
24
+ /**
25
+ * Decrease the indentation prefix by `spaces`.
26
+ *
27
+ * On the root logger (`boundStream` undefined) both streams shrink; on a
28
+ * stream-bound logger only the bound stream shrinks. Returns the logger for
29
+ * chaining.
30
+ *
31
+ * @param logger - The calling logger instance.
32
+ * @param ctx - The logger's indentation accessor context.
33
+ * @param spaces - Number of spaces to remove (default 2).
34
+ */
35
+ export declare function dedentMethod<T extends LoggerTrackable>(logger: T, ctx: IndentContext, spaces: number): T;
36
+ /**
37
+ * End the current log group and decrease indentation by the group-indent width.
38
+ *
39
+ * Call once per `groupMethod` / `groupCollapsed`. Returns the logger for
40
+ * chaining.
41
+ *
42
+ * @param logger - The calling logger instance.
43
+ */
44
+ export declare function groupEndMethod<T extends {
45
+ dedent(spaces?: number): T;
46
+ }>(logger: T): T;
47
+ /**
48
+ * Start a new indented log group.
49
+ *
50
+ * A provided label is logged via the logger's own `log` before indentation
51
+ * increases by the group-indent width (default 2). Groups nest; close with
52
+ * `groupEndMethod`. Returns the logger for chaining.
53
+ *
54
+ * @param logger - The calling logger instance.
55
+ * @param label - Optional label to display before the group.
56
+ */
57
+ export declare function groupMethod<T extends LoggerTrackable & {
58
+ indent(spaces?: number): T;
59
+ log(...args: unknown[]): T;
60
+ }>(logger: T, label: unknown[]): T;
61
+ /**
62
+ * Increase the indentation prefix by `spaces`, capped at `maxIndentation`.
63
+ *
64
+ * On the root logger both streams grow; on a stream-bound logger only the bound
65
+ * stream grows. Returns the logger for chaining.
66
+ *
67
+ * @param logger - The calling logger instance.
68
+ * @param ctx - The logger's indentation accessor context.
69
+ * @param spaces - Number of spaces to add (default 2).
70
+ */
71
+ export declare function indentMethod<T extends LoggerTrackable>(logger: T, ctx: IndentContext, spaces: number): T;
72
+ /**
73
+ * Reset all indentation to zero.
74
+ *
75
+ * On the root logger both streams reset; on a stream-bound logger only the
76
+ * bound stream resets. Returns the logger for chaining.
77
+ *
78
+ * @param logger - The calling logger instance.
79
+ * @param ctx - The logger's indentation accessor context.
80
+ */
81
+ export declare function resetIndentMethod<T extends LoggerTrackable>(logger: T, ctx: IndentContext): T;