@mks2508/better-logger 0.14.0-alpha.2 → 0.18.2-alpha.1

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 (454) hide show
  1. package/README.md +289 -185
  2. package/dist/Logger.d.ts +576 -205
  3. package/dist/Logger.d.ts.map +1 -1
  4. package/dist/ScopedLogger.d.ts +48 -292
  5. package/dist/ScopedLogger.d.ts.map +1 -1
  6. package/dist/chunks/HookBridge-CiRfR67f.cjs +190 -0
  7. package/dist/chunks/HookBridge-CiRfR67f.cjs.map +1 -0
  8. package/dist/chunks/HookBridge-SgMmbXZB.js +173 -0
  9. package/dist/chunks/HookBridge-SgMmbXZB.js.map +1 -0
  10. package/dist/chunks/LogContext-Cwn-1Zzb.js +85 -0
  11. package/dist/chunks/LogContext-Cwn-1Zzb.js.map +1 -0
  12. package/dist/chunks/LogContext-L7HzynFw.cjs +90 -0
  13. package/dist/chunks/LogContext-L7HzynFw.cjs.map +1 -0
  14. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +166 -0
  15. package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +1 -0
  16. package/dist/chunks/SerializerBridge-BkpQu5c9.js +149 -0
  17. package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +1 -0
  18. package/dist/chunks/StyleManager-CIpd6wbO.cjs +92 -0
  19. package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +1 -0
  20. package/dist/chunks/StyleManager-LCvVlVdx.js +87 -0
  21. package/dist/chunks/StyleManager-LCvVlVdx.js.map +1 -0
  22. package/dist/chunks/core-Dzz7agGa.cjs +39 -0
  23. package/dist/chunks/core-Dzz7agGa.cjs.map +1 -0
  24. package/dist/chunks/core-PoT7RrTK.js +34 -0
  25. package/dist/chunks/core-PoT7RrTK.js.map +1 -0
  26. package/dist/chunks/environment-detector-CI3TrWK_.js +110 -0
  27. package/dist/chunks/environment-detector-CI3TrWK_.js.map +1 -0
  28. package/dist/chunks/environment-detector-Cnn6wr6O.cjs +163 -0
  29. package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +1 -0
  30. package/dist/chunks/server-fallback-BUKjdLS7.cjs +42 -0
  31. package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +1 -0
  32. package/dist/chunks/server-fallback-BsuWH1Dk.js +37 -0
  33. package/dist/chunks/server-fallback-BsuWH1Dk.js.map +1 -0
  34. package/dist/chunks/spinner-D3FsF78o.js +700 -0
  35. package/dist/chunks/spinner-D3FsF78o.js.map +1 -0
  36. package/dist/chunks/spinner-DNvxbM9a.cjs +747 -0
  37. package/dist/chunks/spinner-DNvxbM9a.cjs.map +1 -0
  38. package/dist/chunks/styling-84N8T97t.js +941 -0
  39. package/dist/chunks/styling-84N8T97t.js.map +1 -0
  40. package/dist/chunks/styling-Cg5saQ46.cjs +994 -0
  41. package/dist/chunks/styling-Cg5saQ46.cjs.map +1 -0
  42. package/dist/chunks/transports-BiDk345e.js +715 -0
  43. package/dist/chunks/transports-BiDk345e.js.map +1 -0
  44. package/dist/chunks/transports-COPWmlF1.cjs +756 -0
  45. package/dist/chunks/transports-COPWmlF1.cjs.map +1 -0
  46. package/dist/chunks/utils-BqlFYocD.cjs +698 -0
  47. package/dist/chunks/utils-BqlFYocD.cjs.map +1 -0
  48. package/dist/chunks/utils-VETbVpkR.js +579 -0
  49. package/dist/chunks/utils-VETbVpkR.js.map +1 -0
  50. package/dist/cli/commands/ExportCommand.d.ts +8 -26
  51. package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
  52. package/dist/cli/index.d.ts +1 -2
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli-module.d.ts +13 -0
  55. package/dist/cli-module.d.ts.map +1 -0
  56. package/dist/cli.cjs +11 -0
  57. package/dist/cli.js +3 -0
  58. package/dist/constants.d.ts +16 -47
  59. package/dist/constants.d.ts.map +1 -1
  60. package/dist/context/LogContext.d.ts +146 -0
  61. package/dist/context/LogContext.d.ts.map +1 -0
  62. package/dist/context/index.d.ts +6 -0
  63. package/dist/context/index.d.ts.map +1 -0
  64. package/dist/context-module.d.ts +6 -0
  65. package/dist/context-module.d.ts.map +1 -0
  66. package/dist/context.cjs +3 -0
  67. package/dist/context.js +2 -0
  68. package/dist/core.cjs +281 -2
  69. package/dist/core.cjs.map +1 -1
  70. package/dist/core.d.ts +6 -7
  71. package/dist/core.d.ts.map +1 -1
  72. package/dist/core.js +258 -314
  73. package/dist/core.js.map +1 -1
  74. package/dist/example.d.ts.map +1 -1
  75. package/dist/hooks/HookBridge.d.ts +26 -0
  76. package/dist/hooks/HookBridge.d.ts.map +1 -0
  77. package/dist/hooks/HookManager.d.ts +26 -0
  78. package/dist/hooks/HookManager.d.ts.map +1 -0
  79. package/dist/hooks/index.d.ts +7 -0
  80. package/dist/hooks/index.d.ts.map +1 -0
  81. package/dist/hooks-module.d.ts +7 -0
  82. package/dist/hooks-module.d.ts.map +1 -0
  83. package/dist/hooks.cjs +5 -0
  84. package/dist/hooks.js +2 -0
  85. package/dist/index.cjs +2522 -2
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.ts +42 -130
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +2447 -158
  90. package/dist/index.js.map +1 -1
  91. package/dist/node-module.d.ts +10 -0
  92. package/dist/node-module.d.ts.map +1 -0
  93. package/dist/node.cjs +13 -0
  94. package/dist/node.cjs.map +1 -0
  95. package/dist/node.js +12 -0
  96. package/dist/node.js.map +1 -0
  97. package/dist/playground/TerminalBridge.d.ts +46 -0
  98. package/dist/playground/TerminalBridge.d.ts.map +1 -0
  99. package/dist/playground/box.d.ts +14 -0
  100. package/dist/playground/box.d.ts.map +1 -0
  101. package/dist/playground/cli-table.d.ts +14 -0
  102. package/dist/playground/cli-table.d.ts.map +1 -0
  103. package/dist/playground/divider.d.ts +10 -0
  104. package/dist/playground/divider.d.ts.map +1 -0
  105. package/dist/playground/header.d.ts +11 -0
  106. package/dist/playground/header.d.ts.map +1 -0
  107. package/dist/playground/index.d.ts +11 -0
  108. package/dist/playground/index.d.ts.map +1 -0
  109. package/dist/playground/server-fallback.d.ts +27 -0
  110. package/dist/playground/server-fallback.d.ts.map +1 -0
  111. package/dist/playground/spinner.d.ts +48 -0
  112. package/dist/playground/spinner.d.ts.map +1 -0
  113. package/dist/playground/step.d.ts +14 -0
  114. package/dist/playground/step.d.ts.map +1 -0
  115. package/dist/playground-module.d.ts +11 -0
  116. package/dist/playground-module.d.ts.map +1 -0
  117. package/dist/playground.cjs +9 -0
  118. package/dist/playground.js +2 -0
  119. package/dist/serializers/SerializerBridge.d.ts +21 -0
  120. package/dist/serializers/SerializerBridge.d.ts.map +1 -0
  121. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  122. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  123. package/dist/serializers/index.d.ts +7 -0
  124. package/dist/serializers/index.d.ts.map +1 -0
  125. package/dist/serializers-module.d.ts +7 -0
  126. package/dist/serializers-module.d.ts.map +1 -0
  127. package/dist/serializers.cjs +5 -0
  128. package/dist/serializers.js +2 -0
  129. package/dist/styles/StyleManager.d.ts +83 -0
  130. package/dist/styles/StyleManager.d.ts.map +1 -0
  131. package/dist/styles/index.d.ts +7 -0
  132. package/dist/styles/index.d.ts.map +1 -0
  133. package/dist/styles-module.d.ts +7 -0
  134. package/dist/styles-module.d.ts.map +1 -0
  135. package/dist/styles.cjs +7 -0
  136. package/dist/styles.js +3 -0
  137. package/dist/styling/banners.d.ts +6 -2
  138. package/dist/styling/banners.d.ts.map +1 -1
  139. package/dist/styling/index.d.ts +8 -3
  140. package/dist/styling/index.d.ts.map +1 -1
  141. package/dist/terminal/color-converter.d.ts +73 -0
  142. package/dist/terminal/color-converter.d.ts.map +1 -0
  143. package/dist/terminal/formatter.d.ts +23 -0
  144. package/dist/terminal/formatter.d.ts.map +1 -0
  145. package/dist/transports/ConsoleTransport.d.ts +9 -0
  146. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  147. package/dist/transports/FileTransport.d.ts +56 -0
  148. package/dist/transports/FileTransport.d.ts.map +1 -0
  149. package/dist/transports/HttpTransport.d.ts +67 -0
  150. package/dist/transports/HttpTransport.d.ts.map +1 -0
  151. package/dist/transports/OtlpTransport.d.ts +148 -0
  152. package/dist/transports/OtlpTransport.d.ts.map +1 -0
  153. package/dist/transports/TransportBridge.d.ts +37 -0
  154. package/dist/transports/TransportBridge.d.ts.map +1 -0
  155. package/dist/transports/TransportManager.d.ts +36 -0
  156. package/dist/transports/TransportManager.d.ts.map +1 -0
  157. package/dist/transports/index.d.ts +6 -0
  158. package/dist/transports/index.d.ts.map +1 -0
  159. package/dist/transports-module.d.ts +10 -0
  160. package/dist/transports-module.d.ts.map +1 -0
  161. package/dist/transports.cjs +7 -0
  162. package/dist/transports.js +2 -0
  163. package/dist/types/core.d.ts +188 -6
  164. package/dist/types/core.d.ts.map +1 -1
  165. package/dist/types/handlers.d.ts +0 -67
  166. package/dist/types/handlers.d.ts.map +1 -1
  167. package/dist/types/hooks.d.ts +60 -0
  168. package/dist/types/hooks.d.ts.map +1 -0
  169. package/dist/types/index.d.ts +7 -3
  170. package/dist/types/index.d.ts.map +1 -1
  171. package/dist/types/serializers.d.ts +25 -0
  172. package/dist/types/serializers.d.ts.map +1 -0
  173. package/dist/types/transports.d.ts +127 -0
  174. package/dist/types/transports.d.ts.map +1 -0
  175. package/dist/utils/ansi-colors.d.ts +115 -0
  176. package/dist/utils/ansi-colors.d.ts.map +1 -0
  177. package/dist/utils/environment-detector.d.ts +53 -0
  178. package/dist/utils/environment-detector.d.ts.map +1 -0
  179. package/dist/utils/formatting.d.ts +1 -0
  180. package/dist/utils/formatting.d.ts.map +1 -1
  181. package/dist/utils/index.d.ts +3 -2
  182. package/dist/utils/index.d.ts.map +1 -1
  183. package/dist/utils/output.d.ts +8 -11
  184. package/dist/utils/output.d.ts.map +1 -1
  185. package/dist/utils/stackTrace.d.ts.map +1 -1
  186. package/dist/utils/timestamps.d.ts +0 -12
  187. package/dist/utils/timestamps.d.ts.map +1 -1
  188. package/package.json +96 -21
  189. package/.claude/settings.local.json +0 -39
  190. package/.github/workflows/ci-quality.yml +0 -357
  191. package/.github/workflows/docs-demo.yml +0 -119
  192. package/.github/workflows/releases-core.yml +0 -512
  193. package/.github/workflows/releases-full.yml +0 -582
  194. package/.github/workflows-backup/ci.yml +0 -221
  195. package/.github/workflows-backup/nightly.yml +0 -196
  196. package/.github/workflows-backup/release-optimized.yml +0 -373
  197. package/.github/workflows-backup/release.yml +0 -269
  198. package/.release-notes-0.2.0.md +0 -129
  199. package/.yamllint +0 -28
  200. package/CHANGELOG.json +0 -865
  201. package/CLAUDE.md +0 -204
  202. package/bun.lock +0 -323
  203. package/demo.html +0 -847
  204. package/dist/.tsbuildinfo +0 -1
  205. package/dist/Logger.js +0 -1124
  206. package/dist/ScopedLogger.js +0 -426
  207. package/dist/chunks/Logger-Crw1woqR.js +0 -3464
  208. package/dist/chunks/Logger-Crw1woqR.js.map +0 -1
  209. package/dist/chunks/Logger-D_p3xnbq.js +0 -2
  210. package/dist/chunks/Logger-D_p3xnbq.js.map +0 -1
  211. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +0 -33
  212. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +0 -1
  213. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +0 -2
  214. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +0 -1
  215. package/dist/chunks/environment-Bxbnw4pd.js +0 -544
  216. package/dist/chunks/environment-Bxbnw4pd.js.map +0 -1
  217. package/dist/chunks/environment-Dm66zOML.js +0 -4
  218. package/dist/chunks/environment-Dm66zOML.js.map +0 -1
  219. package/dist/chunks/formatting-C0riPC5_.js +0 -95
  220. package/dist/chunks/formatting-C0riPC5_.js.map +0 -1
  221. package/dist/chunks/formatting-DNCAV66-.js +0 -2
  222. package/dist/chunks/formatting-DNCAV66-.js.map +0 -1
  223. package/dist/cli/CommandProcessor.js +0 -184
  224. package/dist/cli/commands/ConfigCommand.js +0 -88
  225. package/dist/cli/commands/ExportCommand.js +0 -243
  226. package/dist/cli/commands/HistoryCommand.d.ts +0 -50
  227. package/dist/cli/commands/HistoryCommand.d.ts.map +0 -1
  228. package/dist/cli/commands/HistoryCommand.js +0 -96
  229. package/dist/cli/commands/StatusCommand.d.ts +0 -33
  230. package/dist/cli/commands/StatusCommand.d.ts.map +0 -1
  231. package/dist/cli/commands/StatusCommand.js +0 -93
  232. package/dist/cli/commands/ThemeCommand.js +0 -79
  233. package/dist/cli/help.js +0 -118
  234. package/dist/cli/index.js +0 -46
  235. package/dist/constants.js +0 -159
  236. package/dist/example.js +0 -154
  237. package/dist/exports-module.d.ts +0 -203
  238. package/dist/exports-module.d.ts.map +0 -1
  239. package/dist/exports-module.js +0 -260
  240. package/dist/exports.cjs +0 -2
  241. package/dist/exports.cjs.map +0 -1
  242. package/dist/exports.js +0 -238
  243. package/dist/exports.js.map +0 -1
  244. package/dist/handlers/AnalyticsLogHandler.d.ts +0 -11
  245. package/dist/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  246. package/dist/handlers/AnalyticsLogHandler.js +0 -19
  247. package/dist/handlers/ExportLogHandler.d.ts +0 -103
  248. package/dist/handlers/ExportLogHandler.d.ts.map +0 -1
  249. package/dist/handlers/ExportLogHandler.js +0 -516
  250. package/dist/handlers/FileLogHandler.d.ts +0 -36
  251. package/dist/handlers/FileLogHandler.d.ts.map +0 -1
  252. package/dist/handlers/FileLogHandler.js +0 -156
  253. package/dist/handlers/RemoteLogHandler.d.ts +0 -14
  254. package/dist/handlers/RemoteLogHandler.d.ts.map +0 -1
  255. package/dist/handlers/RemoteLogHandler.js +0 -37
  256. package/dist/handlers/index.d.ts +0 -8
  257. package/dist/handlers/index.d.ts.map +0 -1
  258. package/dist/handlers/index.js +0 -7
  259. package/dist/main.js +0 -139
  260. package/dist/styling/LogStyleBuilder.d.ts +0 -149
  261. package/dist/styling/LogStyleBuilder.d.ts.map +0 -1
  262. package/dist/styling/LogStyleBuilder.js +0 -289
  263. package/dist/styling/SemanticStyles.d.ts +0 -181
  264. package/dist/styling/SemanticStyles.d.ts.map +0 -1
  265. package/dist/styling/SemanticStyles.js +0 -339
  266. package/dist/styling/SmartPresets.js +0 -276
  267. package/dist/styling/StyleBuilder.js +0 -280
  268. package/dist/styling/banners.js +0 -155
  269. package/dist/styling/index.js +0 -9
  270. package/dist/styling/themes.js +0 -231
  271. package/dist/styling-module.d.ts +0 -185
  272. package/dist/styling-module.d.ts.map +0 -1
  273. package/dist/styling-module.js +0 -199
  274. package/dist/styling.cjs +0 -2
  275. package/dist/styling.cjs.map +0 -1
  276. package/dist/styling.js +0 -146
  277. package/dist/styling.js.map +0 -1
  278. package/dist/types/Logger.d.ts +0 -700
  279. package/dist/types/Logger.d.ts.map +0 -1
  280. package/dist/types/ScopedLogger.d.ts +0 -310
  281. package/dist/types/ScopedLogger.d.ts.map +0 -1
  282. package/dist/types/cli/CommandProcessor.d.ts +0 -100
  283. package/dist/types/cli/CommandProcessor.d.ts.map +0 -1
  284. package/dist/types/cli/commands/ConfigCommand.d.ts +0 -14
  285. package/dist/types/cli/commands/ConfigCommand.d.ts.map +0 -1
  286. package/dist/types/cli/commands/ExportCommand.d.ts +0 -48
  287. package/dist/types/cli/commands/ExportCommand.d.ts.map +0 -1
  288. package/dist/types/cli/commands/HistoryCommand.d.ts +0 -47
  289. package/dist/types/cli/commands/HistoryCommand.d.ts.map +0 -1
  290. package/dist/types/cli/commands/StatusCommand.d.ts +0 -30
  291. package/dist/types/cli/commands/StatusCommand.d.ts.map +0 -1
  292. package/dist/types/cli/commands/ThemeCommand.d.ts +0 -30
  293. package/dist/types/cli/commands/ThemeCommand.d.ts.map +0 -1
  294. package/dist/types/cli/help.d.ts +0 -12
  295. package/dist/types/cli/help.d.ts.map +0 -1
  296. package/dist/types/cli/index.d.ts +0 -15
  297. package/dist/types/cli/index.d.ts.map +0 -1
  298. package/dist/types/constants.d.ts +0 -119
  299. package/dist/types/constants.d.ts.map +0 -1
  300. package/dist/types/core.js +0 -28
  301. package/dist/types/example.d.ts +0 -18
  302. package/dist/types/example.d.ts.map +0 -1
  303. package/dist/types/exports-module.d.ts +0 -196
  304. package/dist/types/exports-module.d.ts.map +0 -1
  305. package/dist/types/handlers/AnalyticsLogHandler.d.ts +0 -8
  306. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  307. package/dist/types/handlers/ExportLogHandler.d.ts +0 -100
  308. package/dist/types/handlers/ExportLogHandler.d.ts.map +0 -1
  309. package/dist/types/handlers/FileLogHandler.d.ts +0 -33
  310. package/dist/types/handlers/FileLogHandler.d.ts.map +0 -1
  311. package/dist/types/handlers/RemoteLogHandler.d.ts +0 -11
  312. package/dist/types/handlers/RemoteLogHandler.d.ts.map +0 -1
  313. package/dist/types/handlers/index.d.ts +0 -8
  314. package/dist/types/handlers/index.d.ts.map +0 -1
  315. package/dist/types/handlers.js +0 -4
  316. package/dist/types/index.js +0 -4
  317. package/dist/types/main.d.ts +0 -2
  318. package/dist/types/main.d.ts.map +0 -1
  319. package/dist/types/styling/LogStyleBuilder.d.ts +0 -146
  320. package/dist/types/styling/LogStyleBuilder.d.ts.map +0 -1
  321. package/dist/types/styling/SemanticStyles.d.ts +0 -178
  322. package/dist/types/styling/SemanticStyles.d.ts.map +0 -1
  323. package/dist/types/styling/SmartPresets.d.ts +0 -22
  324. package/dist/types/styling/SmartPresets.d.ts.map +0 -1
  325. package/dist/types/styling/StyleBuilder.d.ts +0 -140
  326. package/dist/types/styling/StyleBuilder.d.ts.map +0 -1
  327. package/dist/types/styling/banners.d.ts +0 -42
  328. package/dist/types/styling/banners.d.ts.map +0 -1
  329. package/dist/types/styling/index.d.ts +0 -10
  330. package/dist/types/styling/index.d.ts.map +0 -1
  331. package/dist/types/styling/themes.d.ts +0 -7
  332. package/dist/types/styling/themes.d.ts.map +0 -1
  333. package/dist/types/styling-module.d.ts +0 -178
  334. package/dist/types/styling-module.d.ts.map +0 -1
  335. package/dist/types/types/core.d.ts +0 -221
  336. package/dist/types/types/core.d.ts.map +0 -1
  337. package/dist/types/types/handlers.d.ts +0 -85
  338. package/dist/types/types/handlers.d.ts.map +0 -1
  339. package/dist/types/types/index.d.ts +0 -7
  340. package/dist/types/types/index.d.ts.map +0 -1
  341. package/dist/types/utils/environment.d.ts +0 -47
  342. package/dist/types/utils/environment.d.ts.map +0 -1
  343. package/dist/types/utils/formatting.d.ts +0 -37
  344. package/dist/types/utils/formatting.d.ts.map +0 -1
  345. package/dist/types/utils/index.d.ts +0 -7
  346. package/dist/types/utils/index.d.ts.map +0 -1
  347. package/dist/types/utils/opentui-detection.d.ts +0 -34
  348. package/dist/types/utils/opentui-detection.d.ts.map +0 -1
  349. package/dist/types/utils/output.d.ts +0 -41
  350. package/dist/types/utils/output.d.ts.map +0 -1
  351. package/dist/types/utils/stackTrace.d.ts +0 -6
  352. package/dist/types/utils/stackTrace.d.ts.map +0 -1
  353. package/dist/types/utils/timestamps.d.ts +0 -20
  354. package/dist/types/utils/timestamps.d.ts.map +0 -1
  355. package/dist/utils/environment.d.ts +0 -47
  356. package/dist/utils/environment.d.ts.map +0 -1
  357. package/dist/utils/environment.js +0 -85
  358. package/dist/utils/formatting.js +0 -117
  359. package/dist/utils/index.js +0 -6
  360. package/dist/utils/opentui-detection.d.ts +0 -34
  361. package/dist/utils/opentui-detection.d.ts.map +0 -1
  362. package/dist/utils/opentui-detection.js +0 -116
  363. package/dist/utils/output.js +0 -150
  364. package/dist/utils/stackTrace.js +0 -81
  365. package/dist/utils/timestamps.js +0 -71
  366. package/dist/vite.svg +0 -1
  367. package/docs/API.md +0 -691
  368. package/docs/CORE.md +0 -264
  369. package/docs/DEVELOPMENT.md +0 -731
  370. package/docs/EXPORTS.md +0 -467
  371. package/docs/PACKAGES.md +0 -244
  372. package/docs/STYLING.md +0 -405
  373. package/docs/_config.yml +0 -36
  374. package/docs/index.md +0 -179
  375. package/examples/README.md +0 -208
  376. package/examples/basic-logging.js +0 -75
  377. package/examples/data-export.js +0 -234
  378. package/examples/package.json +0 -16
  379. package/examples/performance-timing.js +0 -170
  380. package/examples/simplified-api.js +0 -124
  381. package/examples/styling-themes.js +0 -207
  382. package/index.html +0 -358
  383. package/packages/core/package.json +0 -57
  384. package/packages/exports/package.json +0 -41
  385. package/packages/nodejs-opentui/README.md +0 -232
  386. package/packages/nodejs-opentui/package.json +0 -72
  387. package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
  388. package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
  389. package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
  390. package/packages/nodejs-opentui/src/index.ts +0 -133
  391. package/packages/nodejs-opentui/src/types.ts +0 -158
  392. package/packages/nodejs-opentui/tsconfig.json +0 -20
  393. package/packages/styling/package.json +0 -41
  394. package/project-utils/README.md +0 -172
  395. package/project-utils/auto-release-gemini.ts +0 -1193
  396. package/project-utils/auto-release-ui.ts +0 -1329
  397. package/project-utils/commit-generator.ts +0 -1385
  398. package/project-utils/commit-ui.ts +0 -264
  399. package/project-utils/git-utils.ts +0 -199
  400. package/project-utils/github-release-manager.ts +0 -466
  401. package/project-utils/project-config.ts +0 -260
  402. package/project-utils/prompt-templates.js +0 -345
  403. package/project-utils/prompt-templates.ts +0 -422
  404. package/project-utils/version-manager.ts +0 -1078
  405. package/public/vite.svg +0 -1
  406. package/src/Logger.ts +0 -1276
  407. package/src/ScopedLogger.ts +0 -454
  408. package/src/cli/CommandProcessor.ts +0 -248
  409. package/src/cli/commands/ConfigCommand.ts +0 -93
  410. package/src/cli/commands/ExportCommand.ts +0 -276
  411. package/src/cli/commands/HistoryCommand.ts +0 -117
  412. package/src/cli/commands/StatusCommand.ts +0 -112
  413. package/src/cli/commands/ThemeCommand.ts +0 -88
  414. package/src/cli/help.ts +0 -127
  415. package/src/cli/index.ts +0 -71
  416. package/src/constants.ts +0 -171
  417. package/src/core.ts +0 -393
  418. package/src/example.ts +0 -210
  419. package/src/exports-module.ts +0 -311
  420. package/src/handlers/AnalyticsLogHandler.ts +0 -22
  421. package/src/handlers/ExportLogHandler.ts +0 -609
  422. package/src/handlers/FileLogHandler.ts +0 -169
  423. package/src/handlers/RemoteLogHandler.ts +0 -42
  424. package/src/handlers/index.ts +0 -8
  425. package/src/index.ts +0 -209
  426. package/src/main.ts +0 -196
  427. package/src/style.css +0 -96
  428. package/src/styling/LogStyleBuilder.ts +0 -355
  429. package/src/styling/SemanticStyles.ts +0 -380
  430. package/src/styling/SmartPresets.ts +0 -288
  431. package/src/styling/StyleBuilder.ts +0 -319
  432. package/src/styling/banners.ts +0 -168
  433. package/src/styling/index.ts +0 -27
  434. package/src/styling/themes.ts +0 -235
  435. package/src/styling-module.ts +0 -244
  436. package/src/types/core.ts +0 -236
  437. package/src/types/handlers.ts +0 -95
  438. package/src/types/index.ts +0 -35
  439. package/src/typescript.svg +0 -1
  440. package/src/utils/environment.ts +0 -94
  441. package/src/utils/formatting.ts +0 -142
  442. package/src/utils/index.ts +0 -21
  443. package/src/utils/opentui-detection.ts +0 -138
  444. package/src/utils/output.ts +0 -185
  445. package/src/utils/stackTrace.ts +0 -95
  446. package/src/utils/timestamps.ts +0 -80
  447. package/src/vite-env.d.ts +0 -1
  448. package/test-core-browser.html +0 -237
  449. package/test-core-node.js +0 -63
  450. package/tests/test-conflict-resolution.ts +0 -391
  451. package/tests/validate-workflows.sh +0 -131
  452. package/tests/yaml-autofix.sh +0 -146
  453. package/tsconfig.json +0 -50
  454. package/vite.config.ts +0 -223
package/dist/Logger.d.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * @fileoverview Logger avanzado con arquitectura modular y API simplificada
3
- * @version 0.3.0
4
- * @since 2024
5
3
  *
6
4
  * Sistema de logging profesional con estilos CSS avanzados, temas adaptativos,
7
5
  * badges automáticos, contextos temporales y exportación de datos.
8
6
  */
9
- import type { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
10
- import { ExportLogHandler } from './handlers/index.js';
7
+ import type { LogLevel, LogTag, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget, TransportRecord, ILogResourceRef, StackInfo } from './types/index.js';
8
+ import { SerializerRegistry } from './serializers/index.js';
9
+ import { HookManager } from './hooks/index.js';
10
+ import { TransportManager } from './transports/index.js';
11
+ import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
12
+ import type { CLILogLevel, ISpinnerHandle, IBoxOptions, ITableOptions } from './types/index.js';
11
13
  /**
12
14
  * Clase principal Logger con capacidades avanzadas de logging
13
15
  *
@@ -32,7 +34,6 @@ import { ExportLogHandler } from './handlers/index.js';
32
34
  * auth.info('Usuario intentando login');
33
35
  * auth.success('Login exitoso');
34
36
  *
35
- * @since 0.3.0
36
37
  */
37
38
  export declare class Logger {
38
39
  private config;
@@ -40,10 +41,48 @@ export declare class Logger {
40
41
  private handlers;
41
42
  private timers;
42
43
  private groupDepth;
43
- private exportHandler?;
44
44
  private cliProcessor?;
45
45
  private themeChangeListener?;
46
+ private badgeList;
46
47
  private displaySettings;
48
+ private serializerBridge;
49
+ private hookBridge;
50
+ private logContext;
51
+ private transportBridge;
52
+ /** Set during success() so log() skips its own dispatch (N2 fix). */
53
+ private _successTagDispatched;
54
+ private styleManager;
55
+ /** Whether CLI primitives (step, box, header, etc.) should be shown*/
56
+ private _showPrimitives;
57
+ private terminalBridge;
58
+ /**
59
+ * Active smart-preset reference (set by `preset()`). Typed as `unknown`
60
+ * to keep the public surface clean; consumed by `createStyledOutput`.
61
+ */
62
+ private _activePreset?;
63
+ /**
64
+ * Name of the active smart-preset. Stored separately so theme-change
65
+ * detection can re-render without re-running the preset body.
66
+ */
67
+ private _activePresetName?;
68
+ /**
69
+ * Last-applied `customize()` overrides. Stored for later read by
70
+ * `createStyledOutput`.
71
+ */
72
+ private _customization?;
73
+ /**
74
+ * This logger's own context bindings (from child() calls).
75
+ * Single source of truth for this logger's contribution to the context chain.
76
+ * @private
77
+ */
78
+ private _bindings;
79
+ /**
80
+ * Reference to the parent's merged context record at the time this logger
81
+ * was created. Together with _bindings, forms the context chain.
82
+ * Undefined for the root logger.
83
+ * @private
84
+ */
85
+ private _parentContextRecord;
47
86
  /**
48
87
  * Crea una nueva instancia del Logger
49
88
  *
@@ -75,7 +114,6 @@ export declare class Logger {
75
114
  * console.log('Verbosidad actual:', config.verbosity);
76
115
  * console.log('Tema actual:', config.theme);
77
116
  *
78
- * @since 0.3.0
79
117
  */
80
118
  getConfig(): LoggerConfig;
81
119
  /**
@@ -90,7 +128,6 @@ export declare class Logger {
90
128
  * theme: 'cyberpunk'
91
129
  * });
92
130
  *
93
- * @since 0.3.0
94
131
  */
95
132
  updateConfig(updates: Partial<LoggerConfig>): void;
96
133
  /**
@@ -102,7 +139,6 @@ export declare class Logger {
102
139
  * logger.setGlobalPrefix('MiApp');
103
140
  * logger.info('Iniciado'); // [MiApp] Iniciado
104
141
  *
105
- * @since 0.3.0
106
142
  */
107
143
  setGlobalPrefix(prefix: string): void;
108
144
  /**
@@ -115,7 +151,6 @@ export declare class Logger {
115
151
  * logger.setVerbosity('debug'); // Muestra todos los niveles
116
152
  * logger.setVerbosity('silent'); // No muestra nada
117
153
  *
118
- * @since 0.3.0
119
154
  */
120
155
  setVerbosity(level: Verbosity): void;
121
156
  /**
@@ -128,7 +163,6 @@ export declare class Logger {
128
163
  * logger.setTheme('minimal'); // Tema minimalista
129
164
  * logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
130
165
  *
131
- * @since 0.3.0
132
166
  */
133
167
  setTheme(theme: ThemeVariant): void;
134
168
  /**
@@ -141,9 +175,95 @@ export declare class Logger {
141
175
  * logger.setBannerType('unicode'); // Banner con caracteres Unicode
142
176
  * logger.setBannerType('animated'); // Banner con animación
143
177
  *
144
- * @since 0.3.0
145
178
  */
146
179
  setBannerType(bannerType: BannerType): void;
180
+ /**
181
+ * Runs `fn` within an AsyncLocalStorage scope where `bindings` are
182
+ * merged into the context for all log calls inside `fn`.
183
+ *
184
+ * Without `fn` (the old setter shape): no-op for backwards compatibility.
185
+ * Prefer `child()` for persistent bindings or `withContextAsync()` for
186
+ * async callbacks.
187
+ *
188
+ * @param bindings - Key-value pairs to attach for the duration of `fn`
189
+ * @param fn - Optional synchronous function to run with scoped bindings
190
+ * @returns The return value of `fn`, or undefined if no fn provided
191
+ *
192
+ * @example
193
+ * // Scoped synchronous callback
194
+ * logger.withContext({ requestId: 'r-42' }, () => {
195
+ * doWork(); // logs inside see requestId in attributes
196
+ * });
197
+ *
198
+ * @example
199
+ * // Persistent binding: use child()
200
+ * const reqLog = logger.child({ requestId: 'r-42' });
201
+ * reqLog.info('handling request'); // attributes include requestId
202
+ *
203
+ * @see {@link child} for an immutable copy with the merged context
204
+ * @see {@link withContextAsync} for async callback variant
205
+ */
206
+ withContext<R>(bindings: Record<string, unknown>, fn?: () => R): R | undefined;
207
+ /**
208
+ * Async variant of `withContext`. Runs `fn` within an AsyncLocalStorage
209
+ * scope so bindings are available to all async log calls inside `fn`.
210
+ *
211
+ * @param bindings - Key-value pairs to attach for the duration of `fn`
212
+ * @param fn - Async function to run with the scoped bindings
213
+ * @returns The return value of `fn`
214
+ *
215
+ * @example
216
+ * await logger.withContextAsync({ requestId: 'r-42' }, async () => {
217
+ * await fetchData(); // logs inside see requestId in attributes
218
+ * });
219
+ *
220
+ * @see {@link child} for a persistent child logger
221
+ * @see {@link withContext} for synchronous callback variant
222
+ */
223
+ withContextAsync<R>(bindings: Record<string, unknown>, fn: () => Promise<R>): Promise<R>;
224
+ /**
225
+ * Returns an immutable copy of this logger with the extra context bound.
226
+ * Future calls on the child emit with the merged context, without
227
+ * mutating the parent — the canonical MDC pattern.
228
+ *
229
+ * @param extra - Key-value pairs to attach (requestId, userId, ...)
230
+ * @returns A new Logger with merged context
231
+ *
232
+ * @example
233
+ * const reqLog = logger.child({ requestId: req.id });
234
+ * reqLog.info('start'); // emits attributes: { requestId }
235
+ * logger.info('unrelated'); // NOT affected — parent's context untouched
236
+ *
237
+ */
238
+ child(extra: Record<string, unknown>): Logger;
239
+ /**
240
+ * Drops every key from the bound context. After this call, emitted
241
+ * records no longer carry `attributes` until {@link withContext} or
242
+ * {@link child} re-establish one.
243
+ *
244
+ * @returns The same logger instance, now context-free
245
+ */
246
+ clearContext(): this;
247
+ /**
248
+ * Snapshot of the bound context. Returned object is a shallow copy:
249
+ * mutating it does NOT affect what subsequent log calls emit.
250
+ *
251
+ * @returns A read-only snapshot of the current context
252
+ */
253
+ getContext(): Readonly<Record<string, unknown>>;
254
+ /**
255
+ * Updates the default OTel resource (service.name, version, env).
256
+ * Persisted into every emitted record's `resource` field unless the
257
+ * record itself overrides it.
258
+ *
259
+ * @param resource - Partial OTel resource to merge into the current one
260
+ * @returns The same logger instance, for chaining
261
+ *
262
+ * @example
263
+ * logger.setResource({ 'service.name': 'api', 'service.version': '1.2.3' });
264
+ *
265
+ */
266
+ setResource(resource: Partial<ILogResourceRef>): this;
147
267
  /**
148
268
  * Reinicia el logger a la configuración por defecto
149
269
  *
@@ -151,7 +271,6 @@ export declare class Logger {
151
271
  * logger.resetConfig();
152
272
  * // Todo vuelve a la configuración inicial
153
273
  *
154
- * @since 0.3.0
155
274
  */
156
275
  resetConfig(): void;
157
276
  /**
@@ -161,9 +280,17 @@ export declare class Logger {
161
280
  * // Antes de cerrar la aplicación
162
281
  * logger.cleanup();
163
282
  *
164
- * @since 0.3.0
165
283
  */
166
- cleanup(): void;
284
+ /**
285
+ * Tears down every resource held by this Logger. Safe to call multiple
286
+ * times. Fixed in 5.1.0 to fully drain transports + clear timers +
287
+ * drop the legacy handler list + reset group depth + clear context.
288
+ *
289
+ * @example
290
+ * await logger.cleanup(); // before process exit / hot reload
291
+ *
292
+ */
293
+ cleanup(): Promise<void>;
167
294
  /**
168
295
  * Aplica un preset inteligente - funciona perfectamente sin configuración
169
296
  *
@@ -178,7 +305,6 @@ export declare class Logger {
178
305
  * logger.preset('debug'); // Modo desarrollo detallado
179
306
  * logger.preset('production'); // Optimizado para producción
180
307
  *
181
- * @since 0.3.0
182
308
  */
183
309
  preset(name: string): void;
184
310
  /**
@@ -190,7 +316,6 @@ export declare class Logger {
190
316
  * const disponibles = logger.presets();
191
317
  * console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
192
318
  *
193
- * @since 0.3.0
194
319
  */
195
320
  presets(): string[];
196
321
  /**
@@ -200,9 +325,8 @@ export declare class Logger {
200
325
  * logger.hideTimestamp();
201
326
  * logger.info('Sin marca de tiempo'); // Sin timestamp visible
202
327
  *
203
- * @since 0.3.0
204
328
  */
205
- hideTimestamp(): void;
329
+ hideTimestamp(): this;
206
330
  /**
207
331
  * Muestra el timestamp en los logs
208
332
  *
@@ -210,9 +334,8 @@ export declare class Logger {
210
334
  * logger.showTimestamp();
211
335
  * logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
212
336
  *
213
- * @since 0.3.0
214
337
  */
215
- showTimestamp(): void;
338
+ showTimestamp(): this;
216
339
  /**
217
340
  * Oculta la información de ubicación (archivo:línea) en los logs
218
341
  *
@@ -220,9 +343,8 @@ export declare class Logger {
220
343
  * logger.hideLocation();
221
344
  * logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
222
345
  *
223
- * @since 0.3.0
224
346
  */
225
- hideLocation(): void;
347
+ hideLocation(): this;
226
348
  /**
227
349
  * Muestra la información de ubicación (archivo:línea) en los logs
228
350
  *
@@ -230,9 +352,8 @@ export declare class Logger {
230
352
  * logger.showLocation();
231
353
  * logger.debug('Con ubicación'); // app.js:42 Con ubicación
232
354
  *
233
- * @since 0.3.0
234
355
  */
235
- showLocation(): void;
356
+ showLocation(): this;
236
357
  /**
237
358
  * Oculta los badges en los logs
238
359
  *
@@ -241,9 +362,8 @@ export declare class Logger {
241
362
  * const api = logger.api('REST');
242
363
  * api.info('Sin badges'); // Sin mostrar [API] [REST]
243
364
  *
244
- * @since 0.3.0
245
365
  */
246
- hideBadges(): void;
366
+ hideBadges(): this;
247
367
  /**
248
368
  * Muestra los badges en los logs
249
369
  *
@@ -252,62 +372,44 @@ export declare class Logger {
252
372
  * const api = logger.api('GraphQL');
253
373
  * api.info('Con badges'); // [API] [GraphQL] Con badges
254
374
  *
255
- * @since 0.3.0
256
375
  */
257
- showBadges(): void;
376
+ showBadges(): this;
258
377
  /**
259
- * Crea un logger para componentes con estilo automático
378
+ * Establece múltiples badges para los logs
260
379
  *
261
- * @param {string} name - Nombre del componente
262
- * @returns {ComponentLogger} Logger con scope de componente
380
+ * @param {string[]} badges - Array de badges a mostrar
381
+ * @returns {this} Logger instance para encadenamiento
263
382
  *
264
383
  * @example
265
- * const authLogger = logger.component('Autenticación');
266
- * authLogger.info('Validando credenciales');
267
- * // [COMPONENT] [Autenticación] Validando credenciales
268
- *
269
- * authLogger.success('Usuario autenticado');
270
- * // [COMPONENT] [Autenticación] ✓ Usuario autenticado
384
+ * logger.badges(['v3', 'stable']).info('Release publicado');
385
+ * logger.badges(['API', 'v2']).warn('Endpoint deprecado');
271
386
  *
272
- * @since 0.3.0
273
387
  */
274
- component(name: string): any;
388
+ badges(badges: string[]): this;
275
389
  /**
276
- * Crea un logger para APIs con badges automáticos
390
+ * Añade un badge individual a la lista
277
391
  *
278
- * @param {string} name - Nombre de la API o endpoint
279
- * @returns {APILogger} Logger con scope de API
392
+ * @param {string} badge - Badge a añadir
393
+ * @returns {this} Logger instance para encadenamiento
280
394
  *
281
395
  * @example
282
- * const api = logger.api('REST');
283
- * api.info('GET /users');
284
- * // [API] [REST] GET /users
396
+ * logger.badge('DEBUG').badge('AUTH').info('Token validado');
285
397
  *
286
- * // Con badges adicionales
287
- * api.badges(['v2', 'cached']).info('Respuesta desde caché');
288
- * // [API] [v2] [cached] [REST] Respuesta desde caché
289
- *
290
- * @since 0.3.0
291
398
  */
292
- api(name: string): any;
399
+ badge(badge: string): this;
293
400
  /**
294
- * Crea un logger con scope general y soporte de badges
401
+ * Limpia todos los badges activos
295
402
  *
296
- * @param {string} name - Nombre del scope
297
- * @returns {ScopedLogger} Logger con scope personalizado
403
+ * @returns {this} Logger instance para encadenamiento
298
404
  *
299
405
  * @example
300
- * const dbLogger = logger.scope('Database');
301
- * dbLogger.info('Conectando a MongoDB');
302
- * // [Database] Conectando a MongoDB
303
- *
304
- * // Con badges personalizados
305
- * dbLogger.badge('SLOW').warn('Query tardó 5s');
306
- * // [SLOW] [Database] Query tardó 5s
406
+ * logger.clearBadges().info('Sin badges');
307
407
  *
308
- * @since 0.3.0
309
408
  */
310
- scope(name: string): any;
409
+ clearBadges(): this;
410
+ component(name: string): ComponentLogger;
411
+ api(name: string): APILogger;
412
+ scope(name: string): ScopedLogger;
311
413
  /**
312
414
  * Personalización simple con configuración mínima
313
415
  *
@@ -326,7 +428,6 @@ export declare class Logger {
326
428
  * spacing: 'compact'
327
429
  * });
328
430
  *
329
- * @since 0.3.0
330
431
  */
331
432
  customize(overrides: {
332
433
  message?: {
@@ -352,10 +453,6 @@ export declare class Logger {
352
453
  };
353
454
  spacing?: 'compact' | 'normal' | 'spacious';
354
455
  }): void;
355
- /**
356
- * Access advanced styling API (for power users)
357
- */
358
- styles(): any;
359
456
  /**
360
457
  * Añade un handler personalizado para extender funcionalidad
361
458
  *
@@ -363,38 +460,205 @@ export declare class Logger {
363
460
  *
364
461
  * @example
365
462
  * // Handler personalizado para enviar logs a servidor
366
- * const remoteHandler = new RemoteLogHandler('https://api.ejemplo.com/logs');
367
- * logger.addHandler(remoteHandler);
463
+ * logger.addHandler({
464
+ * handle(level, message, args, metadata) {
465
+ * fetch('/logs', { method: 'POST', body: JSON.stringify({ level, message }) });
466
+ * }
467
+ * });
368
468
  *
369
469
  * @example
370
- * // Handler para guardar en archivo
371
- * const fileHandler = new FileLogHandler('./app.log');
372
- * logger.addHandler(fileHandler);
470
+ * // Para escribir a archivo, usa `addTransport` con un `FileTransport`
471
+ * logger.addTransport({ target: new FileTransport({ destination: 'app.log' }) });
373
472
  *
374
- * @since 0.3.0
375
473
  */
376
474
  addHandler(handler: ILogHandler): void;
377
475
  /**
378
476
  * Obtiene todos los handlers registrados
379
477
  *
380
478
  * @returns {ILogHandler[]} Array de handlers activos
381
- * @since 0.3.0
382
479
  */
383
480
  getHandlers(): ILogHandler[];
384
481
  /**
385
- * Obtiene el handler de exportación si está disponible
482
+ * Añade un serializador personalizado para un tipo específico
483
+ *
484
+ * @param type - Constructor del tipo a serializar
485
+ * @param serializer - Función de serialización
486
+ * @param priority - Prioridad (mayor = primero)
487
+ *
488
+ * @example
489
+ * logger.addSerializer(Error, (err) => ({
490
+ * name: err.name,
491
+ * message: err.message,
492
+ * stack: err.stack?.split('\n').slice(0, 5)
493
+ * }));
494
+ *
495
+ */
496
+ addSerializer<T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number): void;
497
+ /**
498
+ * Elimina un serializador registrado
499
+ *
500
+ * @param type - Constructor del tipo a remover
501
+ * @returns true si se eliminó
502
+ *
503
+ */
504
+ removeSerializer<T>(type: new (...args: unknown[]) => T): boolean;
505
+ /**
506
+ * Obtiene el registry de serializadores
507
+ *
508
+ * @returns SerializerRegistry
509
+ */
510
+ getSerializerRegistry(): SerializerRegistry;
511
+ /**
512
+ * Registra un hook para un evento
513
+ *
514
+ * @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
515
+ * @param callback - Función a ejecutar
516
+ * @param priority - Prioridad (mayor = primero)
517
+ * @returns Función para desregistrar
518
+ *
519
+ * @example
520
+ * const unsubscribe = logger.on('beforeLog', (entry) => {
521
+ * entry.correlationId = getCorrelationId();
522
+ * return entry;
523
+ * });
524
+ *
525
+ */
526
+ on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
527
+ /**
528
+ * Registra un hook que se ejecuta solo una vez
529
+ *
530
+ * @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
531
+ * @param callback - Función a ejecutar
532
+ * @param priority - Prioridad (mayor = primero)
533
+ * @returns Función para desregistrar
534
+ *
535
+ */
536
+ once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
537
+ /**
538
+ * Elimina un hook registrado
539
+ *
540
+ * @param event - Evento del hook
541
+ * @param callback - Callback a remover
542
+ * @returns true si se eliminó
543
+ *
544
+ */
545
+ off(event: HookEvent, callback: HookCallback): boolean;
546
+ /**
547
+ * Añade un middleware al pipeline
548
+ *
549
+ * @param middleware - Función middleware
550
+ * @param priority - Prioridad (mayor = primero)
551
+ * @returns Función para desregistrar
552
+ *
553
+ * @example
554
+ * logger.use((entry, next) => {
555
+ * entry.requestId = asyncLocalStorage.getStore()?.requestId;
556
+ * next();
557
+ * });
558
+ *
559
+ */
560
+ use(middleware: MiddlewareFn, priority?: number): () => void;
561
+ /**
562
+ * Obtiene el HookManager
563
+ *
564
+ * @returns HookManager
565
+ */
566
+ getHookManager(): HookManager;
567
+ /**
568
+ * Añade un transport para envío de logs
569
+ *
570
+ * @param target - Configuración del transport
571
+ * @returns ID único del transport
572
+ *
573
+ * @example
574
+ * // File transport
575
+ * logger.addTransport({
576
+ * target: 'file',
577
+ * options: { destination: '/var/log/app.log' }
578
+ * });
579
+ *
580
+ * @example
581
+ * // HTTP transport con batching
582
+ * logger.addTransport({
583
+ * target: 'http',
584
+ * options: {
585
+ * url: 'https://logs.example.com',
586
+ * batchSize: 100,
587
+ * flushInterval: 5000
588
+ * },
589
+ * level: 'warn'
590
+ * });
591
+ *
592
+ */
593
+ addTransport(target: TransportTarget): string;
594
+ /**
595
+ * Elimina un transport
596
+ *
597
+ * @param id - ID del transport a remover
598
+ * @returns true si se eliminó
599
+ *
600
+ */
601
+ removeTransport(id: string): boolean;
602
+ /**
603
+ * Fuerza el flush de todos los transports
604
+ *
605
+ * @returns Promise que resuelve cuando todos los buffers están vaciados
606
+ *
607
+ */
608
+ flushTransports(): Promise<void>;
609
+ /**
610
+ * Cierra todos los transports
611
+ *
612
+ * @returns Promise que resuelve cuando todos están cerrados
613
+ *
614
+ */
615
+ closeTransports(): Promise<void>;
616
+ /**
617
+ * Obtiene el TransportManager
386
618
  *
387
- * @returns {ExportLogHandler | undefined} Handler de exportación o undefined
388
- * @since 0.3.0
619
+ * @returns TransportManager o undefined si no hay transports
389
620
  */
390
- getExportHandler(): ExportLogHandler | undefined;
621
+ getTransportManager(): TransportManager | undefined;
391
622
  /**
392
- * Verifica si un nivel de log debe mostrarse según la verbosidad actual
623
+ * Verifica si un nivel de log debe mostrarse según la verbosidad actual.
393
624
  * @private
394
625
  * @param {LogLevel} level - Nivel de log a verificar
395
626
  * @returns {boolean} True si debe mostrarse, false si no
396
627
  */
397
628
  private shouldLog;
629
+ /**
630
+ * Builds and dispatches a `TransportRecord` to the {@link TransportManager}
631
+ * (no-op if no transports are registered). Shared by every log path —
632
+ * `log()`, `success()`, and visual methods like `table()` / `group()` /
633
+ * `time()` — so all emissions hit the same transport pipeline.
634
+ *
635
+ * @param level - The canonical log level (trace/debug/info/warn/error/critical)
636
+ * @param message - Final, post-hook message text
637
+ * @param prefix - Effective prefix (global + scope)
638
+ * @param stackInfo - Optional caller location
639
+ * @param extra - Optional fields to merge into the record (e.g. `{ tag: 'success' }`)
640
+ */
641
+ protected _dispatchTag: string | undefined;
642
+ /**
643
+ * Computes the fully-merged context for this logger.
644
+ *
645
+ * The context chain is built at child-creation time: each child stores
646
+ * its parent's fully-merged context (at that moment) as _parentContextRecord.
647
+ * This means _parentContextRecord already contains all ancestors' bindings
648
+ * in the correct precedence order (root first, nearest child last).
649
+ *
650
+ * Merge order (later wins):
651
+ * 1. _parentContextRecord — parent's merged context snapshot at creation time
652
+ * 2. _bindings — this logger's own bindings (child() calls)
653
+ * 3. ALS store — withContext/withContextAsync scope (highest priority)
654
+ *
655
+ * @internal
656
+ * @returns The merged context record
657
+ */
658
+ private _getMergedContext;
659
+ /** @internal Exposes base merged context (no ALS) to LogContext child factory closure. */
660
+ _captureMergedContext(): Record<string, unknown>;
661
+ protected dispatchToTransports(level: LogLevel, message: string, prefix: string | undefined, stackInfo: StackInfo | null, extra?: Partial<TransportRecord>): void;
398
662
  /**
399
663
  * Obtiene el prefijo efectivo (global + scope)
400
664
  * @private
@@ -402,149 +666,146 @@ export declare class Logger {
402
666
  */
403
667
  private getEffectivePrefix;
404
668
  /**
405
- * Método central de logging que maneja estilos y formato
669
+ * Método central de logging. Awaits the `beforeLog` hook pipeline
670
+ * synchronously (so redactions / enrichments are reflected in the
671
+ * emitted message before console + transport dispatch).
672
+ *
673
+ * Fire-and-forget callers (e.g. `logger.info(...)` without `await`)
674
+ * still work — the resulting `Promise<void>` is dropped on the floor.
675
+ * Awaiting is recommended when `beforeLog` hooks mutate `message`
676
+ * (e.g. PII redaction, correlation IDs).
677
+ *
406
678
  * @protected
407
- * @param {LogLevel} level - Nivel del log
408
- * @param {...any} args - Argumentos a loggear
679
+ * @param level - Nivel del log
680
+ * @param args - Argumentos a loggear
681
+ * @returns Promise that resolves once the record has been dispatched
682
+ *
409
683
  */
410
- protected log(level: LogLevel, ...args: any[]): void;
411
684
  /**
412
- * Registra información de debug (prioridad más baja)
685
+ * Protected logging method. Awaits the `beforeLog` hook pipeline
686
+ * synchronously (so redactions / enrichments are reflected in the
687
+ * emitted message before console + transport dispatch).
413
688
  *
414
- * @param {...any} args - Mensajes y datos a loggear
689
+ * Fire-and-forget callers (e.g. `logger.info(...)` without `await`)
690
+ * still work — the resulting `Promise<void>` is dropped on the floor.
691
+ * Awaiting is recommended when `beforeLog` hooks mutate `message`
692
+ * (e.g. PII redaction, correlation IDs).
415
693
  *
416
- * @example
417
- * logger.debug('Variable estado:', { usuario: 'Juan', activo: true });
418
- * logger.debug('Iniciando proceso de validación');
694
+ * @protected
695
+ * @param level - Nivel del log
696
+ * @param args - Argumentos a loggear
697
+ * @param tag - Optional tag forwarded to `dispatchToTransports` as
698
+ * `TransportRecord.tag` (e.g. `'success'` for success records).
699
+ * @returns Promise that resolves once the record has been dispatched
419
700
  *
420
- * @since 0.3.0
421
701
  */
422
- debug(...args: any[]): void;
702
+ protected log(level: LogLevel, ...args: unknown[]): Promise<void>;
703
+ logWithBindings(bindings: Bindings, level: LogLevel, ...args: unknown[]): Promise<void>;
704
+ /**
705
+ * Like `logWithBindings()` but sets _dispatchTag first so that
706
+ * `log()` dispatches with the tag. Used by ScopedLogger.success()
707
+ * to propagate tag:'success' through the normal log() pipeline.
708
+ */
709
+ logWithBindingsAndTag(bindings: Bindings, level: LogLevel, tag: LogTag, ...args: unknown[]): Promise<void>;
710
+ debug(...args: unknown[]): Promise<void>;
423
711
  /**
424
- * Registra mensajes informativos
712
+ * Registra mensajes informativos. Devuelve `Promise<void>` desde 5.1.0.
425
713
  *
426
- * @param {...any} args - Mensajes y datos informativos
714
+ * @param args - Mensajes y datos informativos
427
715
  *
428
716
  * @example
429
717
  * logger.info('Servidor iniciado en puerto 3000');
430
- * logger.info('Usuario conectado:', userId);
431
- * logger.info('Procesando', totalItems, 'elementos');
718
+ * await logger.info('Procesando', totalItems, 'elementos'); // espera hooks
432
719
  *
433
- * @since 0.3.0
434
720
  */
435
- info(...args: any[]): void;
721
+ info(...args: unknown[]): Promise<void>;
436
722
  /**
437
- * Registra mensajes de advertencia
438
- *
439
- * @param {...any} args - Mensajes de advertencia
723
+ * Registra mensajes de advertencia. Devuelve `Promise<void>` desde 5.1.0.
440
724
  *
441
- * @example
442
- * logger.warn('Memoria al 85% de capacidad');
443
- * logger.warn('API deprecada, usar v2');
444
- * logger.warn('Reintentos agotados:', maxRetries);
725
+ * @param args - Mensajes de advertencia
445
726
  *
446
- * @since 0.3.0
447
727
  */
448
- warn(...args: any[]): void;
728
+ warn(...args: unknown[]): Promise<void>;
449
729
  /**
450
- * Registra mensajes de error
730
+ * Registra mensajes de error. Devuelve `Promise<void>` desde 5.1.0.
451
731
  *
452
- * @param {...any} args - Mensajes de error y stack traces
732
+ * @param args - Mensaje de error y stack traces
453
733
  *
454
- * @example
455
- * logger.error('Fallo en conexión a base de datos');
456
- * logger.error('Error al procesar:', error.message, error.stack);
457
- * logger.error('Código de error:', errorCode);
458
- *
459
- * @since 0.3.0
460
734
  */
461
- error(...args: any[]): void;
735
+ error(...args: unknown[]): Promise<void>;
462
736
  /**
463
- * Registra mensajes de éxito (nivel info especial)
737
+ * Registra mensajes de éxito. Mapeado internamente a nivel `info` con
738
+ * styling de success y `record.tag = 'success'` para que los transports
739
+ * puedan distinguirlo (sin perder info semantics para filtering).
464
740
  *
465
- * @param {...any} args - Mensajes de operaciones exitosas
741
+ * @param args - Mensaje + datos adicionales
466
742
  *
467
743
  * @example
468
744
  * logger.success('Base de datos conectada');
469
745
  * logger.success('Usuario creado con ID:', userId);
470
746
  * logger.success('✓ Tests pasados: 42/42');
471
747
  *
472
- * @since 0.3.0
473
748
  */
474
- success(...args: any[]): void;
749
+ success(...args: unknown[]): Promise<void>;
475
750
  /**
476
- * Registra información de trace (debugging detallado)
751
+ * Registra información de trace (nivel más bajo, debajo de debug).
752
+ * Alineado con OpenTelemetry `TRACE` severity (1-4).
477
753
  *
478
- * @param {...any} args - Datos detallados para debugging
754
+ * @param args - Datos muy verbosos (entrada/salida de funciones, valores intermedios)
479
755
  *
480
756
  * @example
481
757
  * logger.trace('Entrando en función processData');
482
- * logger.trace('Stack completo:', new Error().stack);
758
+ * logger.trace('Variables intermedias:', { a, b, c });
483
759
  *
484
- * @since 0.3.0
485
760
  */
486
- trace(...args: any[]): void;
761
+ trace(...args: unknown[]): void;
487
762
  /**
488
- * Registra errores críticos (prioridad más alta)
763
+ * Registra errores críticos (prioridad más alta). Devuelve `Promise<void>` desde 5.1.0.
489
764
  *
490
- * @param {...any} args - Errores críticos del sistema
765
+ * @param args - Errores críticos del sistema
491
766
  *
492
767
  * @example
493
- * logger.critical('Sistema caído - reinicio inmediato requerido');
494
- * logger.critical('Pérdida de datos detectada');
495
- * logger.critical('Brecha de seguridad:', securityError);
768
+ * await logger.critical('Sistema caído - reinicio inmediato requerido');
496
769
  *
497
- * @since 0.3.0
498
770
  */
499
- critical(...args: any[]): void;
771
+ critical(...args: unknown[]): Promise<void>;
500
772
  /**
501
- * Muestra datos en formato de tabla
773
+ * Muestra datos en formato de tabla. Pasa por la pipeline completa
774
+ * (outputMode-respecting writeOutput + transports + hooks).
502
775
  *
503
- * @param {any} data - Datos a mostrar (array de objetos o matriz)
504
- * @param {string[]} columns - Columnas específicas a mostrar (opcional)
776
+ * @param data - Array de objetos o matriz
777
+ * @param columns - Columnas específicas a mostrar (opcional)
505
778
  *
506
779
  * @example
507
- * const usuarios = [
508
- * { id: 1, nombre: 'Juan', edad: 30 },
509
- * { id: 2, nombre: 'María', edad: 25 }
510
- * ];
511
- * logger.table(usuarios);
512
- * logger.table(usuarios, ['nombre', 'edad']); // Solo estas columnas
780
+ * logger.table([{ id: 1, nombre: 'Juan' }, { id: 2, nombre: 'María' }]);
513
781
  *
514
- * @since 0.3.0
515
782
  */
516
- table(data: any, columns?: string[]): void;
783
+ table(data: unknown, columns?: string[]): void;
517
784
  /**
518
- * Inicia un grupo colapsable en la consola
785
+ * Inicia un grupo colapsable en la consola. Emite un marker a
786
+ * transports con `attributes.logger.visual = 'groupStart'` para que
787
+ * backends puedan reconstruir la jerarquía.
519
788
  *
520
- * @param {string} label - Etiqueta del grupo
521
- * @param {boolean} collapsed - Si el grupo inicia colapsado (default: false)
789
+ * @param label - Etiqueta del grupo
790
+ * @param collapsed - Si el grupo inicia colapsado (default: false)
522
791
  *
523
792
  * @example
524
793
  * logger.group('Procesando usuarios');
525
794
  * logger.info('Usuario 1 procesado');
526
- * logger.info('Usuario 2 procesado');
527
- * logger.groupEnd();
528
- *
529
- * @example
530
- * // Grupo colapsado por defecto
531
- * logger.group('Detalles adicionales', true);
532
- * logger.debug('Información detallada aquí');
533
795
  * logger.groupEnd();
534
796
  *
535
- * @since 0.3.0
536
797
  */
537
798
  group(label: string, collapsed?: boolean): void;
538
799
  /**
539
- * Finaliza el grupo actual de la consola
800
+ * Finaliza el grupo actual de la consola. Emite un marker a transports
801
+ * simétrico al `group()` start, para que backends puedan cerrar la
802
+ * jerarquía correctamente.
540
803
  *
541
804
  * @example
542
805
  * logger.group('Operaciones');
543
806
  * logger.info('Operación 1');
544
- * logger.info('Operación 2');
545
- * logger.groupEnd(); // Cierra el grupo
807
+ * logger.groupEnd();
546
808
  *
547
- * @since 0.3.0
548
809
  */
549
810
  groupEnd(): void;
550
811
  /**
@@ -557,22 +818,21 @@ export declare class Logger {
557
818
  * // ... operación costosa ...
558
819
  * logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
559
820
  *
560
- * @since 0.3.0
561
821
  */
562
822
  time(label: string): void;
563
823
  /**
564
824
  * Finaliza un temporizador y muestra el tiempo transcurrido
565
825
  *
566
826
  * @param {string} label - Etiqueta del temporizador a finalizar
827
+ * @returns {number} Elapsed milliseconds, or -1 if timer not found
567
828
  *
568
829
  * @example
569
830
  * logger.time('consulta-db');
570
831
  * await consultarBaseDatos();
571
- * logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
832
+ * const elapsed = logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
572
833
  *
573
- * @since 0.3.0
574
834
  */
575
- timeEnd(label: string): void;
835
+ timeEnd(label: string): number;
576
836
  /**
577
837
  * Muestra un banner con el tipo especificado o configurado
578
838
  *
@@ -584,7 +844,6 @@ export declare class Logger {
584
844
  * logger.showBanner('svg'); // Banner con gráfico SVG
585
845
  * logger.showBanner(); // Usa el tipo configurado
586
846
  *
587
- * @since 0.3.0
588
847
  */
589
848
  showBanner(bannerType?: BannerType): void;
590
849
  /**
@@ -603,7 +862,6 @@ export declare class Logger {
603
862
  * const customSVG = '<svg>...</svg>';
604
863
  * logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
605
864
  *
606
- * @since 0.3.0
607
865
  */
608
866
  logWithSVG(message: string, svgContent?: string, options?: StyleOptions): void;
609
867
  /**
@@ -616,26 +874,116 @@ export declare class Logger {
616
874
  * logger.logAnimated('🌈 Animación en progreso');
617
875
  * logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
618
876
  *
619
- * @since 0.3.0
620
877
  */
621
878
  logAnimated(message: string, duration?: number): void;
622
879
  /**
623
- * Agrupa logs por una propiedad específica usando Object.groupBy (cuando esté disponible)
880
+ * Displays a step progress indicator in the terminal
881
+ *
882
+ * @param {number} current - Current step number
883
+ * @param {number} total - Total number of steps
884
+ * @param {string} message - Step description
885
+ *
886
+ * @example
887
+ * logger.step(1, 5, 'Analyzing repository...');
888
+ * logger.step(2, 5, 'Generating commit message...');
889
+ *
890
+ */
891
+ step(current: number, total: number, message: string): void;
892
+ /**
893
+ * Displays a styled header with optional subtitle
894
+ *
895
+ * @param {string} title - Main title text
896
+ * @param {string} subtitle - Optional subtitle (rendered dimmed)
897
+ *
898
+ * @example
899
+ * logger.header('Commit Wizard', 'v2.0.0');
900
+ *
901
+ */
902
+ header(title: string, subtitle?: string): void;
903
+ /**
904
+ * Displays a horizontal divider line
905
+ *
906
+ * @example
907
+ * logger.divider();
908
+ *
909
+ */
910
+ divider(): void;
911
+ /**
912
+ * Outputs a blank line
913
+ *
914
+ * @example
915
+ * logger.blank();
916
+ *
917
+ */
918
+ blank(): void;
919
+ /**
920
+ * Renders content inside a bordered box
921
+ *
922
+ * @param {string} content - Content string (may contain newlines)
923
+ * @param {IBoxOptions} options - Box rendering options
924
+ *
925
+ * @example
926
+ * logger.box('3 commits generated\nProvider: Groq', { title: 'Done', borderColor: '#00ff00' });
927
+ *
928
+ */
929
+ box(content: string, options?: IBoxOptions): void;
930
+ /**
931
+ * Renders an array of objects as a formatted ASCII table.
932
+ * Note: This is distinct from the existing table() method which uses console.table.
933
+ *
934
+ * @param {Record<string, unknown>[]} rows - Array of row objects
935
+ * @param {ITableOptions} options - Table rendering options
936
+ *
937
+ * @example
938
+ * logger.cliTable([
939
+ * { provider: 'Groq', status: 'Available', model: 'llama-3.3-70b' },
940
+ * { provider: 'Gemini', status: 'Configured', model: 'gemini-2.5-flash' },
941
+ * ]);
942
+ *
943
+ */
944
+ cliTable(rows: Record<string, unknown>[], options?: ITableOptions): void;
945
+ /**
946
+ * Creates a spinner handle for showing progress during async operations.
947
+ * Returns a NoopSpinner in non-TTY environments.
948
+ *
949
+ * @param {string} message - Initial spinner text
950
+ * @returns {ISpinnerHandle} Spinner controller
951
+ *
952
+ * @example
953
+ * const s = logger.spinner('Analyzing repository...');
954
+ * s.start();
955
+ * await analyzeRepo();
956
+ * s.succeed('Analysis complete (1.2s)');
957
+ *
958
+ */
959
+ spinner(message: string): ISpinnerHandle;
960
+ /**
961
+ * Sets the CLI verbosity level, controlling both log verbosity and primitive visibility
624
962
  *
625
- * @param {T[]} items - Array de elementos a agrupar
626
- * @param {Function} groupBy - Función que retorna la clave de agrupación
963
+ * @param {CLILogLevel} level - CLI log level
627
964
  *
628
965
  * @example
629
- * const ventas = [
630
- * { producto: 'Laptop', categoria: 'Electrónica', precio: 1200 },
631
- * { producto: 'Mouse', categoria: 'Electrónica', precio: 25 },
632
- * { producto: 'Libro', categoria: 'Literatura', precio: 15 }
633
- * ];
634
- * logger.logGrouped(ventas, item => item.categoria);
966
+ * logger.setCLILevel('quiet'); // Only errors, no CLI primitives
967
+ * logger.setCLILevel('verbose'); // Debug logs + all CLI primitives
968
+ *
969
+ */
970
+ setCLILevel(level: CLILogLevel): void;
971
+ /**
972
+ * Returns the current CLI log level
973
+ * @returns {CLILogLevel} Current CLI log level
974
+ */
975
+ get cliLevel(): CLILogLevel;
976
+ /**
977
+ * Writes formatted output to the configured destination.
978
+ * Respects outputMode configuration for console, silent, or custom output.
635
979
  *
636
- * @since 0.3.0
980
+ * @private
981
+ * @param {string} message - Formatted log message
982
+ * @param {LogLevel} level - Log level
983
+ * @param {string[]} styles - CSS styles for browser console
984
+ * @param {unknown[]} additionalArgs - Additional arguments to log
637
985
  */
638
- logGrouped<T>(items: T[], groupBy: (item: T) => string): void;
986
+ private writeOutput;
639
987
  /**
640
988
  * Procesador de comandos CLI para configuración y exportación del logger
641
989
  *
@@ -653,33 +1001,42 @@ export declare class Logger {
653
1001
  * await logger.cli('status'); // Muestra estado del logger
654
1002
  * await logger.cli('help'); // Muestra ayuda de comandos
655
1003
  *
656
- * @since 0.3.0
657
1004
  */
658
1005
  cli(command: string): Promise<void>;
659
1006
  }
660
1007
  /**
661
- * Instancia singleton del logger con configuración por defecto
662
- * @constant {Logger}
1008
+ * Resets the default singleton. Clears the cached instance so the next call
1009
+ * to `getDefaultLogger()` rebuilds it from defaults. Useful for tests and
1010
+ * hot reload scenarios.
1011
+ *
1012
+ */
1013
+ export declare function resetDefaultLogger(): void;
1014
+ /**
1015
+ * Lazy default export — every property access defers to `getDefaultLogger()`.
1016
+ * Side-effect-free at module import (BUG-N11).
1017
+ *
1018
+ * @example
1019
+ * import logger from 'better-logger';
1020
+ * logger.info('hello'); // first call here triggers singleton init
663
1021
  */
664
- declare const defaultLogger: Logger;
665
- export default defaultLogger;
1022
+ declare const loggerProxy: Logger;
1023
+ export default loggerProxy;
666
1024
  /**
667
1025
  * Métodos individuales exportados para conveniencia
668
- * @description Todos los métodos están correctamente enlazados al singleton
669
- * @since 0.3.0
1026
+ * @description Todos los métodos están correctamente enlazados al singleton lazy
670
1027
  */
671
- export declare const debug: (...args: any[]) => void;
672
- export declare const info: (...args: any[]) => void;
673
- export declare const warn: (...args: any[]) => void;
674
- export declare const error: (...args: any[]) => void;
675
- export declare const success: (...args: any[]) => void;
676
- export declare const trace: (...args: any[]) => void;
677
- export declare const critical: (...args: any[]) => void;
678
- export declare const table: (data: any, columns?: string[]) => void;
1028
+ export declare const debug: (...args: unknown[]) => Promise<void>;
1029
+ export declare const info: (...args: unknown[]) => Promise<void>;
1030
+ export declare const warn: (...args: unknown[]) => Promise<void>;
1031
+ export declare const error: (...args: unknown[]) => Promise<void>;
1032
+ export declare const success: (...args: unknown[]) => Promise<void>;
1033
+ export declare const trace: (...args: unknown[]) => void;
1034
+ export declare const critical: (...args: unknown[]) => Promise<void>;
1035
+ export declare const table: (data: unknown, columns?: string[]) => void;
679
1036
  export declare const group: (label: string, collapsed?: boolean) => void;
680
1037
  export declare const groupEnd: () => void;
681
1038
  export declare const time: (label: string) => void;
682
- export declare const timeEnd: (label: string) => void;
1039
+ export declare const timeEnd: (label: string) => number;
683
1040
  export declare const setGlobalPrefix: (prefix: string) => void;
684
1041
  export declare const setVerbosity: (level: Verbosity) => void;
685
1042
  export declare const addHandler: (handler: ILogHandler) => void;
@@ -689,20 +1046,34 @@ export declare const showBanner: (bannerType?: BannerType) => void;
689
1046
  export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
690
1047
  export declare const logAnimated: (message: string, duration?: number) => void;
691
1048
  export declare const cli: (command: string) => Promise<void>;
692
- export declare const cleanup: () => void;
1049
+ export declare const cleanup: () => Promise<void>;
693
1050
  export declare const preset: (name: string) => void;
694
1051
  export declare const presets: () => string[];
695
- export declare const hideTimestamp: () => void;
696
- export declare const showTimestamp: () => void;
697
- export declare const hideLocation: () => void;
698
- export declare const showLocation: () => void;
699
- export declare const hideBadges: () => void;
700
- export declare const showBadges: () => void;
701
- export declare const component: (name: string) => any;
702
- export declare const api: (name: string) => any;
703
- export declare const scope: (name: string) => any;
704
- export declare const customize: (overrides: any) => void;
705
- export declare const styles: () => any;
706
- export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
1052
+ export declare const hideTimestamp: () => Logger;
1053
+ export declare const showTimestamp: () => Logger;
1054
+ export declare const hideLocation: () => Logger;
1055
+ export declare const showLocation: () => Logger;
1056
+ export declare const hideBadges: () => Logger;
1057
+ export declare const showBadges: () => Logger;
1058
+ export declare const badges: (badgeList: string[]) => Logger;
1059
+ export declare const badge: (badgeName: string) => Logger;
1060
+ export declare const clearBadges: () => Logger;
1061
+ export declare const component: (name: string) => ComponentLogger;
1062
+ export declare const api: (name: string) => APILogger;
1063
+ export declare const scope: (name: string) => ScopedLogger;
1064
+ export declare const customize: (overrides: Parameters<Logger["customize"]>[0]) => void;
1065
+ export declare const addSerializer: <T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number) => void;
1066
+ export declare const removeSerializer: <T>(type: new (...args: unknown[]) => T) => boolean;
1067
+ export declare const on: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
1068
+ export declare const once: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
1069
+ export declare const off: (event: HookEvent, callback: HookCallback) => boolean;
1070
+ export declare const use: (middleware: MiddlewareFn, priority?: number) => () => void;
1071
+ export declare const addTransport: (target: TransportTarget) => string;
1072
+ export declare const removeTransport: (id: string) => boolean;
1073
+ export declare const flushTransports: () => Promise<void>;
1074
+ export declare const closeTransports: () => Promise<void>;
707
1075
  export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
1076
+ export { SerializerRegistry } from './serializers/index.js';
1077
+ export { HookManager } from './hooks/index.js';
1078
+ export { TransportManager, ConsoleTransport, FileTransport, HttpTransport } from './transports/index.js';
708
1079
  //# sourceMappingURL=Logger.d.ts.map