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

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 (472) hide show
  1. package/README.md +50 -244
  2. package/dist/Logger.d.ts +662 -202
  3. package/dist/Logger.d.ts.map +1 -1
  4. package/dist/ScopedLogger.d.ts +434 -175
  5. package/dist/ScopedLogger.d.ts.map +1 -1
  6. package/dist/chunks/HookBridge-C-AvXmPD.cjs +504 -0
  7. package/dist/chunks/HookBridge-C-AvXmPD.cjs.map +1 -0
  8. package/dist/chunks/HookBridge-CI2PH79S.js +487 -0
  9. package/dist/chunks/HookBridge-CI2PH79S.js.map +1 -0
  10. package/dist/chunks/LogContext-BaMXleWj.cjs +105 -0
  11. package/dist/chunks/LogContext-BaMXleWj.cjs.map +1 -0
  12. package/dist/chunks/LogContext-DjlITOzZ.js +100 -0
  13. package/dist/chunks/LogContext-DjlITOzZ.js.map +1 -0
  14. package/dist/chunks/SerializerBridge-Ba43Mk7j.js +393 -0
  15. package/dist/chunks/SerializerBridge-Ba43Mk7j.js.map +1 -0
  16. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs +410 -0
  17. package/dist/chunks/SerializerBridge-C4a9Z37F.cjs.map +1 -0
  18. package/dist/chunks/StyleManager-DQ6UNRB-.cjs +118 -0
  19. package/dist/chunks/StyleManager-DQ6UNRB-.cjs.map +1 -0
  20. package/dist/chunks/StyleManager-DjwAYbxE.js +113 -0
  21. package/dist/chunks/StyleManager-DjwAYbxE.js.map +1 -0
  22. package/dist/chunks/core-Blfi2klP.js +31 -0
  23. package/dist/chunks/core-Blfi2klP.js.map +1 -0
  24. package/dist/chunks/core-CqS_UBzJ.cjs +36 -0
  25. package/dist/chunks/core-CqS_UBzJ.cjs.map +1 -0
  26. package/dist/chunks/environment-detector-7NvnYUfr.js +110 -0
  27. package/dist/chunks/environment-detector-7NvnYUfr.js.map +1 -0
  28. package/dist/chunks/environment-detector-D-tHkKWA.cjs +163 -0
  29. package/dist/chunks/environment-detector-D-tHkKWA.cjs.map +1 -0
  30. package/dist/chunks/server-fallback-CaCPjWby.cjs +119 -0
  31. package/dist/chunks/server-fallback-CaCPjWby.cjs.map +1 -0
  32. package/dist/chunks/server-fallback-jj0T6XaK.js +114 -0
  33. package/dist/chunks/server-fallback-jj0T6XaK.js.map +1 -0
  34. package/dist/chunks/spinner-BHyYEXsM.cjs +1029 -0
  35. package/dist/chunks/spinner-BHyYEXsM.cjs.map +1 -0
  36. package/dist/chunks/spinner-BtkwpzYv.js +982 -0
  37. package/dist/chunks/spinner-BtkwpzYv.js.map +1 -0
  38. package/dist/chunks/styling-CRw3KQW4.js +1592 -0
  39. package/dist/chunks/styling-CRw3KQW4.js.map +1 -0
  40. package/dist/chunks/styling-Cel2wPRy.cjs +1645 -0
  41. package/dist/chunks/styling-Cel2wPRy.cjs.map +1 -0
  42. package/dist/chunks/transports-BGfwwakw.js +1237 -0
  43. package/dist/chunks/transports-BGfwwakw.js.map +1 -0
  44. package/dist/chunks/transports-yK6CL0Ml.cjs +1278 -0
  45. package/dist/chunks/transports-yK6CL0Ml.cjs.map +1 -0
  46. package/dist/chunks/utils-W_cxqriN.cjs +705 -0
  47. package/dist/chunks/utils-W_cxqriN.cjs.map +1 -0
  48. package/dist/chunks/utils-tKfBAWUM.js +586 -0
  49. package/dist/chunks/utils-tKfBAWUM.js.map +1 -0
  50. package/dist/cli/CommandProcessor.d.ts +166 -19
  51. package/dist/cli/CommandProcessor.d.ts.map +1 -1
  52. package/dist/cli/commands/ConfigCommand.d.ts +36 -1
  53. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -1
  54. package/dist/cli/commands/ExportCommand.d.ts +54 -26
  55. package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
  56. package/dist/cli/commands/ThemeCommand.d.ts +62 -3
  57. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -1
  58. package/dist/cli/help.d.ts +30 -2
  59. package/dist/cli/help.d.ts.map +1 -1
  60. package/dist/cli/index.d.ts +30 -4
  61. package/dist/cli/index.d.ts.map +1 -1
  62. package/dist/cli-module.d.ts +13 -0
  63. package/dist/cli-module.d.ts.map +1 -0
  64. package/dist/cli.cjs +11 -0
  65. package/dist/cli.js +3 -0
  66. package/dist/constants.d.ts +16 -47
  67. package/dist/constants.d.ts.map +1 -1
  68. package/dist/context/LogContext.d.ts +245 -0
  69. package/dist/context/LogContext.d.ts.map +1 -0
  70. package/dist/context/index.d.ts +6 -0
  71. package/dist/context/index.d.ts.map +1 -0
  72. package/dist/context-module.d.ts +6 -0
  73. package/dist/context-module.d.ts.map +1 -0
  74. package/dist/context.cjs +3 -0
  75. package/dist/context.js +2 -0
  76. package/dist/core.cjs +304 -2
  77. package/dist/core.cjs.map +1 -1
  78. package/dist/core.d.ts +56 -34
  79. package/dist/core.d.ts.map +1 -1
  80. package/dist/core.js +281 -314
  81. package/dist/core.js.map +1 -1
  82. package/dist/hooks/HookBridge.d.ts +32 -0
  83. package/dist/hooks/HookBridge.d.ts.map +1 -0
  84. package/dist/hooks/HookManager.d.ts +319 -0
  85. package/dist/hooks/HookManager.d.ts.map +1 -0
  86. package/dist/hooks/index.d.ts +7 -0
  87. package/dist/hooks/index.d.ts.map +1 -0
  88. package/dist/hooks-module.d.ts +7 -0
  89. package/dist/hooks-module.d.ts.map +1 -0
  90. package/dist/hooks.cjs +5 -0
  91. package/dist/hooks.js +2 -0
  92. package/dist/index.cjs +3402 -2
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.d.ts +42 -130
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +3327 -158
  97. package/dist/index.js.map +1 -1
  98. package/dist/node-module.d.ts +10 -0
  99. package/dist/node-module.d.ts.map +1 -0
  100. package/dist/node.cjs +13 -0
  101. package/dist/node.cjs.map +1 -0
  102. package/dist/node.js +12 -0
  103. package/dist/node.js.map +1 -0
  104. package/dist/playground/TerminalBridge.d.ts +53 -0
  105. package/dist/playground/TerminalBridge.d.ts.map +1 -0
  106. package/dist/playground/box.d.ts +45 -0
  107. package/dist/playground/box.d.ts.map +1 -0
  108. package/dist/playground/cli-table.d.ts +50 -0
  109. package/dist/playground/cli-table.d.ts.map +1 -0
  110. package/dist/playground/divider.d.ts +29 -0
  111. package/dist/playground/divider.d.ts.map +1 -0
  112. package/dist/playground/header.d.ts +28 -0
  113. package/dist/playground/header.d.ts.map +1 -0
  114. package/dist/playground/index.d.ts +11 -0
  115. package/dist/playground/index.d.ts.map +1 -0
  116. package/dist/playground/server-fallback.d.ts +114 -0
  117. package/dist/playground/server-fallback.d.ts.map +1 -0
  118. package/dist/playground/spinner.d.ts +197 -0
  119. package/dist/playground/spinner.d.ts.map +1 -0
  120. package/dist/playground/step.d.ts +33 -0
  121. package/dist/playground/step.d.ts.map +1 -0
  122. package/dist/playground-module.d.ts +11 -0
  123. package/dist/playground-module.d.ts.map +1 -0
  124. package/dist/playground.cjs +9 -0
  125. package/dist/playground.js +2 -0
  126. package/dist/serializers/SerializerBridge.d.ts +28 -0
  127. package/dist/serializers/SerializerBridge.d.ts.map +1 -0
  128. package/dist/serializers/SerializerRegistry.d.ts +252 -0
  129. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  130. package/dist/serializers/index.d.ts +7 -0
  131. package/dist/serializers/index.d.ts.map +1 -0
  132. package/dist/serializers-module.d.ts +7 -0
  133. package/dist/serializers-module.d.ts.map +1 -0
  134. package/dist/serializers.cjs +5 -0
  135. package/dist/serializers.js +2 -0
  136. package/dist/styles/StyleManager.d.ts +190 -0
  137. package/dist/styles/StyleManager.d.ts.map +1 -0
  138. package/dist/styles/index.d.ts +7 -0
  139. package/dist/styles/index.d.ts.map +1 -0
  140. package/dist/styles-module.d.ts +7 -0
  141. package/dist/styles-module.d.ts.map +1 -0
  142. package/dist/styles.cjs +7 -0
  143. package/dist/styles.js +3 -0
  144. package/dist/styling/SmartPresets.d.ts +100 -6
  145. package/dist/styling/SmartPresets.d.ts.map +1 -1
  146. package/dist/styling/StyleBuilder.d.ts +453 -32
  147. package/dist/styling/StyleBuilder.d.ts.map +1 -1
  148. package/dist/styling/banners.d.ts +85 -5
  149. package/dist/styling/banners.d.ts.map +1 -1
  150. package/dist/styling/index.d.ts +8 -3
  151. package/dist/styling/index.d.ts.map +1 -1
  152. package/dist/styling/themes.d.ts +41 -2
  153. package/dist/styling/themes.d.ts.map +1 -1
  154. package/dist/terminal/color-converter.d.ts +73 -0
  155. package/dist/terminal/color-converter.d.ts.map +1 -0
  156. package/dist/terminal/formatter.d.ts +23 -0
  157. package/dist/terminal/formatter.d.ts.map +1 -0
  158. package/dist/transports/ConsoleTransport.d.ts +104 -0
  159. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  160. package/dist/transports/FileTransport.d.ts +137 -0
  161. package/dist/transports/FileTransport.d.ts.map +1 -0
  162. package/dist/transports/HttpTransport.d.ts +180 -0
  163. package/dist/transports/HttpTransport.d.ts.map +1 -0
  164. package/dist/transports/OtlpTransport.d.ts +165 -0
  165. package/dist/transports/OtlpTransport.d.ts.map +1 -0
  166. package/dist/transports/TransportBridge.d.ts +43 -0
  167. package/dist/transports/TransportBridge.d.ts.map +1 -0
  168. package/dist/transports/TransportManager.d.ts +251 -0
  169. package/dist/transports/TransportManager.d.ts.map +1 -0
  170. package/dist/transports/index.d.ts +6 -0
  171. package/dist/transports/index.d.ts.map +1 -0
  172. package/dist/transports-module.d.ts +10 -0
  173. package/dist/transports-module.d.ts.map +1 -0
  174. package/dist/transports.cjs +7 -0
  175. package/dist/transports.js +2 -0
  176. package/dist/types/core.d.ts +295 -17
  177. package/dist/types/core.d.ts.map +1 -1
  178. package/dist/types/handlers.d.ts +0 -67
  179. package/dist/types/handlers.d.ts.map +1 -1
  180. package/dist/types/hooks.d.ts +138 -0
  181. package/dist/types/hooks.d.ts.map +1 -0
  182. package/dist/types/index.d.ts +7 -3
  183. package/dist/types/index.d.ts.map +1 -1
  184. package/dist/types/serializers.d.ts +97 -0
  185. package/dist/types/serializers.d.ts.map +1 -0
  186. package/dist/types/transports.d.ts +132 -0
  187. package/dist/types/transports.d.ts.map +1 -0
  188. package/dist/utils/ansi-colors.d.ts +115 -0
  189. package/dist/utils/ansi-colors.d.ts.map +1 -0
  190. package/dist/utils/environment-detector.d.ts +53 -0
  191. package/dist/utils/environment-detector.d.ts.map +1 -0
  192. package/dist/utils/formatting.d.ts +9 -8
  193. package/dist/utils/formatting.d.ts.map +1 -1
  194. package/dist/utils/index.d.ts +3 -2
  195. package/dist/utils/index.d.ts.map +1 -1
  196. package/dist/utils/output.d.ts +14 -17
  197. package/dist/utils/output.d.ts.map +1 -1
  198. package/dist/utils/stackTrace.d.ts +2 -2
  199. package/dist/utils/stackTrace.d.ts.map +1 -1
  200. package/dist/utils/timestamps.d.ts +0 -12
  201. package/dist/utils/timestamps.d.ts.map +1 -1
  202. package/package.json +95 -21
  203. package/.claude/settings.local.json +0 -39
  204. package/.github/workflows/ci-quality.yml +0 -357
  205. package/.github/workflows/docs-demo.yml +0 -119
  206. package/.github/workflows/releases-core.yml +0 -512
  207. package/.github/workflows/releases-full.yml +0 -582
  208. package/.github/workflows-backup/ci.yml +0 -221
  209. package/.github/workflows-backup/nightly.yml +0 -196
  210. package/.github/workflows-backup/release-optimized.yml +0 -373
  211. package/.github/workflows-backup/release.yml +0 -269
  212. package/.release-notes-0.2.0.md +0 -129
  213. package/.yamllint +0 -28
  214. package/CHANGELOG.json +0 -865
  215. package/CLAUDE.md +0 -204
  216. package/bun.lock +0 -323
  217. package/demo.html +0 -847
  218. package/dist/.tsbuildinfo +0 -1
  219. package/dist/Logger.js +0 -1124
  220. package/dist/ScopedLogger.js +0 -426
  221. package/dist/chunks/Logger-Crw1woqR.js +0 -3464
  222. package/dist/chunks/Logger-Crw1woqR.js.map +0 -1
  223. package/dist/chunks/Logger-D_p3xnbq.js +0 -2
  224. package/dist/chunks/Logger-D_p3xnbq.js.map +0 -1
  225. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +0 -33
  226. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +0 -1
  227. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +0 -2
  228. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +0 -1
  229. package/dist/chunks/environment-Bxbnw4pd.js +0 -544
  230. package/dist/chunks/environment-Bxbnw4pd.js.map +0 -1
  231. package/dist/chunks/environment-Dm66zOML.js +0 -4
  232. package/dist/chunks/environment-Dm66zOML.js.map +0 -1
  233. package/dist/chunks/formatting-C0riPC5_.js +0 -95
  234. package/dist/chunks/formatting-C0riPC5_.js.map +0 -1
  235. package/dist/chunks/formatting-DNCAV66-.js +0 -2
  236. package/dist/chunks/formatting-DNCAV66-.js.map +0 -1
  237. package/dist/cli/CommandProcessor.js +0 -184
  238. package/dist/cli/commands/ConfigCommand.js +0 -88
  239. package/dist/cli/commands/ExportCommand.js +0 -243
  240. package/dist/cli/commands/HistoryCommand.d.ts +0 -50
  241. package/dist/cli/commands/HistoryCommand.d.ts.map +0 -1
  242. package/dist/cli/commands/HistoryCommand.js +0 -96
  243. package/dist/cli/commands/StatusCommand.d.ts +0 -33
  244. package/dist/cli/commands/StatusCommand.d.ts.map +0 -1
  245. package/dist/cli/commands/StatusCommand.js +0 -93
  246. package/dist/cli/commands/ThemeCommand.js +0 -79
  247. package/dist/cli/help.js +0 -118
  248. package/dist/cli/index.js +0 -46
  249. package/dist/constants.js +0 -159
  250. package/dist/example.d.ts +0 -18
  251. package/dist/example.d.ts.map +0 -1
  252. package/dist/example.js +0 -154
  253. package/dist/exports-module.d.ts +0 -203
  254. package/dist/exports-module.d.ts.map +0 -1
  255. package/dist/exports-module.js +0 -260
  256. package/dist/exports.cjs +0 -2
  257. package/dist/exports.cjs.map +0 -1
  258. package/dist/exports.js +0 -238
  259. package/dist/exports.js.map +0 -1
  260. package/dist/handlers/AnalyticsLogHandler.d.ts +0 -11
  261. package/dist/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  262. package/dist/handlers/AnalyticsLogHandler.js +0 -19
  263. package/dist/handlers/ExportLogHandler.d.ts +0 -103
  264. package/dist/handlers/ExportLogHandler.d.ts.map +0 -1
  265. package/dist/handlers/ExportLogHandler.js +0 -516
  266. package/dist/handlers/FileLogHandler.d.ts +0 -36
  267. package/dist/handlers/FileLogHandler.d.ts.map +0 -1
  268. package/dist/handlers/FileLogHandler.js +0 -156
  269. package/dist/handlers/RemoteLogHandler.d.ts +0 -14
  270. package/dist/handlers/RemoteLogHandler.d.ts.map +0 -1
  271. package/dist/handlers/RemoteLogHandler.js +0 -37
  272. package/dist/handlers/index.d.ts +0 -8
  273. package/dist/handlers/index.d.ts.map +0 -1
  274. package/dist/handlers/index.js +0 -7
  275. package/dist/main.d.ts +0 -2
  276. package/dist/main.d.ts.map +0 -1
  277. package/dist/main.js +0 -139
  278. package/dist/styling/LogStyleBuilder.d.ts +0 -149
  279. package/dist/styling/LogStyleBuilder.d.ts.map +0 -1
  280. package/dist/styling/LogStyleBuilder.js +0 -289
  281. package/dist/styling/SemanticStyles.d.ts +0 -181
  282. package/dist/styling/SemanticStyles.d.ts.map +0 -1
  283. package/dist/styling/SemanticStyles.js +0 -339
  284. package/dist/styling/SmartPresets.js +0 -276
  285. package/dist/styling/StyleBuilder.js +0 -280
  286. package/dist/styling/banners.js +0 -155
  287. package/dist/styling/index.js +0 -9
  288. package/dist/styling/themes.js +0 -231
  289. package/dist/styling-module.d.ts +0 -185
  290. package/dist/styling-module.d.ts.map +0 -1
  291. package/dist/styling-module.js +0 -199
  292. package/dist/styling.cjs +0 -2
  293. package/dist/styling.cjs.map +0 -1
  294. package/dist/styling.js +0 -146
  295. package/dist/styling.js.map +0 -1
  296. package/dist/types/Logger.d.ts +0 -700
  297. package/dist/types/Logger.d.ts.map +0 -1
  298. package/dist/types/ScopedLogger.d.ts +0 -310
  299. package/dist/types/ScopedLogger.d.ts.map +0 -1
  300. package/dist/types/cli/CommandProcessor.d.ts +0 -100
  301. package/dist/types/cli/CommandProcessor.d.ts.map +0 -1
  302. package/dist/types/cli/commands/ConfigCommand.d.ts +0 -14
  303. package/dist/types/cli/commands/ConfigCommand.d.ts.map +0 -1
  304. package/dist/types/cli/commands/ExportCommand.d.ts +0 -48
  305. package/dist/types/cli/commands/ExportCommand.d.ts.map +0 -1
  306. package/dist/types/cli/commands/HistoryCommand.d.ts +0 -47
  307. package/dist/types/cli/commands/HistoryCommand.d.ts.map +0 -1
  308. package/dist/types/cli/commands/StatusCommand.d.ts +0 -30
  309. package/dist/types/cli/commands/StatusCommand.d.ts.map +0 -1
  310. package/dist/types/cli/commands/ThemeCommand.d.ts +0 -30
  311. package/dist/types/cli/commands/ThemeCommand.d.ts.map +0 -1
  312. package/dist/types/cli/help.d.ts +0 -12
  313. package/dist/types/cli/help.d.ts.map +0 -1
  314. package/dist/types/cli/index.d.ts +0 -15
  315. package/dist/types/cli/index.d.ts.map +0 -1
  316. package/dist/types/constants.d.ts +0 -119
  317. package/dist/types/constants.d.ts.map +0 -1
  318. package/dist/types/core.js +0 -28
  319. package/dist/types/example.d.ts +0 -18
  320. package/dist/types/example.d.ts.map +0 -1
  321. package/dist/types/exports-module.d.ts +0 -196
  322. package/dist/types/exports-module.d.ts.map +0 -1
  323. package/dist/types/handlers/AnalyticsLogHandler.d.ts +0 -8
  324. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  325. package/dist/types/handlers/ExportLogHandler.d.ts +0 -100
  326. package/dist/types/handlers/ExportLogHandler.d.ts.map +0 -1
  327. package/dist/types/handlers/FileLogHandler.d.ts +0 -33
  328. package/dist/types/handlers/FileLogHandler.d.ts.map +0 -1
  329. package/dist/types/handlers/RemoteLogHandler.d.ts +0 -11
  330. package/dist/types/handlers/RemoteLogHandler.d.ts.map +0 -1
  331. package/dist/types/handlers/index.d.ts +0 -8
  332. package/dist/types/handlers/index.d.ts.map +0 -1
  333. package/dist/types/handlers.js +0 -4
  334. package/dist/types/index.js +0 -4
  335. package/dist/types/main.d.ts +0 -2
  336. package/dist/types/main.d.ts.map +0 -1
  337. package/dist/types/styling/LogStyleBuilder.d.ts +0 -146
  338. package/dist/types/styling/LogStyleBuilder.d.ts.map +0 -1
  339. package/dist/types/styling/SemanticStyles.d.ts +0 -178
  340. package/dist/types/styling/SemanticStyles.d.ts.map +0 -1
  341. package/dist/types/styling/SmartPresets.d.ts +0 -22
  342. package/dist/types/styling/SmartPresets.d.ts.map +0 -1
  343. package/dist/types/styling/StyleBuilder.d.ts +0 -140
  344. package/dist/types/styling/StyleBuilder.d.ts.map +0 -1
  345. package/dist/types/styling/banners.d.ts +0 -42
  346. package/dist/types/styling/banners.d.ts.map +0 -1
  347. package/dist/types/styling/index.d.ts +0 -10
  348. package/dist/types/styling/index.d.ts.map +0 -1
  349. package/dist/types/styling/themes.d.ts +0 -7
  350. package/dist/types/styling/themes.d.ts.map +0 -1
  351. package/dist/types/styling-module.d.ts +0 -178
  352. package/dist/types/styling-module.d.ts.map +0 -1
  353. package/dist/types/types/core.d.ts +0 -221
  354. package/dist/types/types/core.d.ts.map +0 -1
  355. package/dist/types/types/handlers.d.ts +0 -85
  356. package/dist/types/types/handlers.d.ts.map +0 -1
  357. package/dist/types/types/index.d.ts +0 -7
  358. package/dist/types/types/index.d.ts.map +0 -1
  359. package/dist/types/utils/environment.d.ts +0 -47
  360. package/dist/types/utils/environment.d.ts.map +0 -1
  361. package/dist/types/utils/formatting.d.ts +0 -37
  362. package/dist/types/utils/formatting.d.ts.map +0 -1
  363. package/dist/types/utils/index.d.ts +0 -7
  364. package/dist/types/utils/index.d.ts.map +0 -1
  365. package/dist/types/utils/opentui-detection.d.ts +0 -34
  366. package/dist/types/utils/opentui-detection.d.ts.map +0 -1
  367. package/dist/types/utils/output.d.ts +0 -41
  368. package/dist/types/utils/output.d.ts.map +0 -1
  369. package/dist/types/utils/stackTrace.d.ts +0 -6
  370. package/dist/types/utils/stackTrace.d.ts.map +0 -1
  371. package/dist/types/utils/timestamps.d.ts +0 -20
  372. package/dist/types/utils/timestamps.d.ts.map +0 -1
  373. package/dist/utils/environment.d.ts +0 -47
  374. package/dist/utils/environment.d.ts.map +0 -1
  375. package/dist/utils/environment.js +0 -85
  376. package/dist/utils/formatting.js +0 -117
  377. package/dist/utils/index.js +0 -6
  378. package/dist/utils/opentui-detection.d.ts +0 -34
  379. package/dist/utils/opentui-detection.d.ts.map +0 -1
  380. package/dist/utils/opentui-detection.js +0 -116
  381. package/dist/utils/output.js +0 -150
  382. package/dist/utils/stackTrace.js +0 -81
  383. package/dist/utils/timestamps.js +0 -71
  384. package/dist/vite.svg +0 -1
  385. package/docs/API.md +0 -691
  386. package/docs/CORE.md +0 -264
  387. package/docs/DEVELOPMENT.md +0 -731
  388. package/docs/EXPORTS.md +0 -467
  389. package/docs/PACKAGES.md +0 -244
  390. package/docs/STYLING.md +0 -405
  391. package/docs/_config.yml +0 -36
  392. package/docs/index.md +0 -179
  393. package/examples/README.md +0 -208
  394. package/examples/basic-logging.js +0 -75
  395. package/examples/data-export.js +0 -234
  396. package/examples/package.json +0 -16
  397. package/examples/performance-timing.js +0 -170
  398. package/examples/simplified-api.js +0 -124
  399. package/examples/styling-themes.js +0 -207
  400. package/index.html +0 -358
  401. package/packages/core/package.json +0 -57
  402. package/packages/exports/package.json +0 -41
  403. package/packages/nodejs-opentui/README.md +0 -232
  404. package/packages/nodejs-opentui/package.json +0 -72
  405. package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
  406. package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
  407. package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
  408. package/packages/nodejs-opentui/src/index.ts +0 -133
  409. package/packages/nodejs-opentui/src/types.ts +0 -158
  410. package/packages/nodejs-opentui/tsconfig.json +0 -20
  411. package/packages/styling/package.json +0 -41
  412. package/project-utils/README.md +0 -172
  413. package/project-utils/auto-release-gemini.ts +0 -1193
  414. package/project-utils/auto-release-ui.ts +0 -1329
  415. package/project-utils/commit-generator.ts +0 -1385
  416. package/project-utils/commit-ui.ts +0 -264
  417. package/project-utils/git-utils.ts +0 -199
  418. package/project-utils/github-release-manager.ts +0 -466
  419. package/project-utils/project-config.ts +0 -260
  420. package/project-utils/prompt-templates.js +0 -345
  421. package/project-utils/prompt-templates.ts +0 -422
  422. package/project-utils/version-manager.ts +0 -1078
  423. package/public/vite.svg +0 -1
  424. package/src/Logger.ts +0 -1276
  425. package/src/ScopedLogger.ts +0 -454
  426. package/src/cli/CommandProcessor.ts +0 -248
  427. package/src/cli/commands/ConfigCommand.ts +0 -93
  428. package/src/cli/commands/ExportCommand.ts +0 -276
  429. package/src/cli/commands/HistoryCommand.ts +0 -117
  430. package/src/cli/commands/StatusCommand.ts +0 -112
  431. package/src/cli/commands/ThemeCommand.ts +0 -88
  432. package/src/cli/help.ts +0 -127
  433. package/src/cli/index.ts +0 -71
  434. package/src/constants.ts +0 -171
  435. package/src/core.ts +0 -393
  436. package/src/example.ts +0 -210
  437. package/src/exports-module.ts +0 -311
  438. package/src/handlers/AnalyticsLogHandler.ts +0 -22
  439. package/src/handlers/ExportLogHandler.ts +0 -609
  440. package/src/handlers/FileLogHandler.ts +0 -169
  441. package/src/handlers/RemoteLogHandler.ts +0 -42
  442. package/src/handlers/index.ts +0 -8
  443. package/src/index.ts +0 -209
  444. package/src/main.ts +0 -196
  445. package/src/style.css +0 -96
  446. package/src/styling/LogStyleBuilder.ts +0 -355
  447. package/src/styling/SemanticStyles.ts +0 -380
  448. package/src/styling/SmartPresets.ts +0 -288
  449. package/src/styling/StyleBuilder.ts +0 -319
  450. package/src/styling/banners.ts +0 -168
  451. package/src/styling/index.ts +0 -27
  452. package/src/styling/themes.ts +0 -235
  453. package/src/styling-module.ts +0 -244
  454. package/src/types/core.ts +0 -236
  455. package/src/types/handlers.ts +0 -95
  456. package/src/types/index.ts +0 -35
  457. package/src/typescript.svg +0 -1
  458. package/src/utils/environment.ts +0 -94
  459. package/src/utils/formatting.ts +0 -142
  460. package/src/utils/index.ts +0 -21
  461. package/src/utils/opentui-detection.ts +0 -138
  462. package/src/utils/output.ts +0 -185
  463. package/src/utils/stackTrace.ts +0 -95
  464. package/src/utils/timestamps.ts +0 -80
  465. package/src/vite-env.d.ts +0 -1
  466. package/test-core-browser.html +0 -237
  467. package/test-core-node.js +0 -63
  468. package/tests/test-conflict-resolution.ts +0 -391
  469. package/tests/validate-workflows.sh +0 -131
  470. package/tests/yaml-autofix.sh +0 -146
  471. package/tsconfig.json +0 -50
  472. package/vite.config.ts +0 -223
@@ -1,318 +1,577 @@
1
- /**
2
- * @fileoverview ScopedLogger con badges y logging contextual
3
- * @version 0.3.0
4
- * @since 2024
5
- *
6
- * Proporciona loggers especializados con contexto, badges automáticos
7
- * y características avanzadas para componentes y APIs.
8
- */
9
1
  import { Logger } from './Logger.js';
10
- import type { LoggerConfig, LogLevel } from './types/index.js';
2
+ import type { ISpinnerHandle, IBoxOptions, ITableOptions, CLILogLevel } from './types/index.js';
11
3
  /**
12
- * Logger con scope mejorado con badges y API simplificada
4
+ * Logger prefijado por un scope nominal. Mantiene su propio stack de badges
5
+ * y contextos y delega el envío de mensajes al {@link Logger} padre a través
6
+ * de bindings (`{ scope, badges }`).
7
+ *
8
+ * Es la base de la jerarquía temática: {@link APILogger} y
9
+ * {@link ComponentLogger} extienden de ella, y {@link ContextLogger} la
10
+ * consume para apilar/subdesapilar sub-prefijos en el scope.
13
11
  *
14
- * @class ScopedLogger
15
- * @extends Logger
16
- * @description Logger contextual que añade prefijos y badges automáticamente
12
+ * No se construye directamente: se obtiene con `logger.scope('name')`.
17
13
  *
18
14
  * @example
19
- * const dbLogger = logger.scope('Database');
20
- * dbLogger.info('Conectando...'); // [Database] Conectando...
15
+ * // El factory method del Logger raíz devuelve un ScopedLogger
16
+ * import logger from '@mks2508/better-logger';
21
17
  *
22
- * // Con badges personalizados
23
- * dbLogger.badge('SLOW').warn('Query lenta detectada');
24
- * // [SLOW] [Database] Query lenta detectada
18
+ * const http = logger.scope('HTTP');
19
+ * http.badge('OUTBOUND').info('Request enviada');
20
+ * // salida: [HTTP] [OUTBOUND] Request enviada
25
21
  *
26
- * @since 0.3.0
22
+ * @example
23
+ * // Anidar contextos dentro de un scope (el prefijo se compone con ':')
24
+ * const retry = http.context('retry');
25
+ * retry.run(() => http.warn('Reintentando petición'));
26
+ * // salida: [HTTP:retry] Reintentando petición
27
+ *
28
+ * @see {@link Logger.scope}
29
+ * @see {@link APILogger}
30
+ * @see {@link ComponentLogger}
31
+ * @see {@link ContextLogger}
27
32
  */
28
- export declare class ScopedLogger extends Logger {
29
- private parentLogger;
30
- private scopeName;
33
+ export declare class ScopedLogger {
34
+ private readonly parent;
35
+ private readonly scopeName;
31
36
  private badgeList;
32
37
  private contextStack;
33
- constructor(parentLogger: Logger, scopeName: string, config?: Partial<LoggerConfig>);
38
+ private _timers?;
39
+ /**
40
+ * Construye un ScopedLogger vinculado a un {@link Logger} padre.
41
+ *
42
+ * Los clientes no deben llamar a este constructor directamente: usen
43
+ * `logger.scope(name)`, que configura correctamente la instancia.
44
+ *
45
+ * @param {Logger} parent - Logger raíz al que se delegan los mensajes.
46
+ * @param {string} scopeName - Etiqueta del scope; se renderiza como
47
+ * prefijo `[scopeName]` en cada línea.
48
+ */
49
+ constructor(parent: Logger, scopeName: string);
50
+ private get timers();
51
+ private getBindings;
52
+ private getScopePrefix;
34
53
  /**
35
- * Añade múltiples badges a este logger con scope
54
+ * Reemplaza la lista actual de badges por la pasada y la aplica a todos
55
+ * los mensajes posteriores de este scope.
36
56
  *
37
- * @param {string[]} badges - Array de badges a añadir
38
- * @returns {ScopedLogger} Esta instancia para encadenamiento
57
+ * @param {string[]} badges - Etiquetas a mostrar como badges adyacentes
58
+ * al prefijo (p. ej. `['OUTBOUND', 'CACHED']`).
59
+ * @returns {this} La misma instancia, para encadenar llamadas.
39
60
  *
40
61
  * @example
41
- * const api = logger.scope('API');
42
- * api.badges(['v2', 'beta', 'cached'])
43
- * .info('Respuesta desde caché');
44
- * // [v2] [beta] [cached] [API] Respuesta desde caché
62
+ * logger.scope('HTTP').badges(['OUTBOUND', 'CACHED']).info('Cache hit');
63
+ * // salida: [HTTP] [OUTBOUND] [CACHED] Cache hit
45
64
  *
46
- * @since 0.3.0
65
+ * @see {@link badge} para añadir sin reemplazar los existentes.
66
+ * @see {@link clearBadges} para vaciar la lista.
47
67
  */
48
- badges(badges: string[]): ScopedLogger;
68
+ badges(badges: string[]): this;
49
69
  /**
50
- * Añade un badge individual
70
+ * Añade un badge al scope de forma idempotente (no lo duplica si ya existe).
51
71
  *
52
- * @param {string} badge - Badge a añadir
53
- * @returns {ScopedLogger} Esta instancia para encadenamiento
72
+ * @param {string} badge - Etiqueta a añadir a la lista de badges.
73
+ * @returns {this} La misma instancia, para encadenar llamadas.
54
74
  *
55
75
  * @example
56
- * dbLogger.badge('SLOW').warn('Query tardó 3s');
57
- * // [SLOW] [Database] Query tardó 3s
76
+ * logger.scope('API')
77
+ * .badge('OUTBOUND')
78
+ * .badge('RETRY')
79
+ * .warn('Reintentando');
80
+ * // salida: [API] [OUTBOUND] [RETRY] Reintentando
81
+ */
82
+ badge(badge: string): this;
83
+ /**
84
+ * Vacía la lista de badges del scope.
58
85
  *
59
- * @since 0.3.0
86
+ * @returns {this} La misma instancia, para encadenar llamadas.
87
+ *
88
+ * @example
89
+ * const http = logger.scope('HTTP');
90
+ * http.badge('OUTBOUND').info('uno');
91
+ * http.clearBadges().info('dos');
92
+ * // [HTTP] [OUTBOUND] uno / [HTTP] dos
60
93
  */
61
- badge(badge: string): ScopedLogger;
94
+ clearBadges(): this;
62
95
  /**
63
- * Elimina todos los badges
96
+ * Aplica un theme preset al logger padre. El preset afecta a toda la
97
+ * instancia raíz (no solo a este scope) porque el style es compartido.
64
98
  *
65
- * @returns {ScopedLogger} Esta instancia para encadenamiento
99
+ * @param {string} presetName - Nombre del preset registrado en el StyleManager.
100
+ * @returns {this} La misma instancia, para encadenar llamadas.
66
101
  *
67
102
  * @example
68
- * api.clearBadges().info('Sin badges');
69
- * // [API] Sin badges
103
+ * logger.scope('UI').style('cyberpunk').info('neon');
104
+ * @see {@link Logger.setTheme}
105
+ */
106
+ style(presetName: string): this;
107
+ /**
108
+ * Crea un {@link ContextLogger} vinculado a este scope. Los contextos se
109
+ * apilan en el prefijo separados por `:`, permitiendo agrupar bloques de
110
+ * logs relacionados (reintentos, sub-etapas, etc.) sin `console.group`.
70
111
  *
71
- * @since 0.3.0
112
+ * @param {string} contextName - Nombre del contexto a apilar.
113
+ * @returns {ContextLogger} Handler con `run`, `runAsync`, `start`/`end`.
114
+ *
115
+ * @example
116
+ * const retry = logger.scope('HTTP').context('retry');
117
+ * retry.run(() => logger.warn('Reintentando'));
118
+ * // salida: [HTTP:retry] Reintentando
119
+ * @see {@link ContextLogger}
72
120
  */
73
- clearBadges(): ScopedLogger;
121
+ context(contextName: string): ContextLogger;
74
122
  /**
75
- * Establece un preset de estilo para este logger con scope
123
+ * Inicia un timer etiquetado bajo el namespace `<scopeName>:<label>`.
124
+ * El label es local a este scope, así que dos scopes pueden reutilizar el
125
+ * mismo nombre sin colisión.
76
126
  *
77
- * @param {string} presetName - Nombre del preset a aplicar
78
- * @returns {ScopedLogger} Esta instancia para encadenamiento
127
+ * @param {string} label - Identificador del timer.
79
128
  *
80
129
  * @example
81
- * const errorLogger = logger.scope('ErrorHandler')
82
- * .style('cyberpunk');
130
+ * const http = logger.scope('HTTP');
131
+ * http.time('request');
132
+ * // ... trabajo ...
133
+ * http.timeEnd('request'); // imprime "Timer: request - 12.34ms"
134
+ * @see {@link timeEnd}
135
+ */
136
+ time(label: string): void;
137
+ /**
138
+ * Detiene un timer previamente iniciado con {@link time} y registra la
139
+ * duración con nivel `success`. Si el label no existe, emite un `warn`
140
+ * y devuelve `undefined`.
141
+ *
142
+ * @param {string} label - Mismo label pasado a {@link time}.
143
+ * @returns {number | undefined} Milisegundos transcurridos, o `undefined`
144
+ * si el timer no estaba registrado.
83
145
  *
84
- * @since 0.3.0
146
+ * @example
147
+ * const http = logger.scope('HTTP');
148
+ * http.time('fetch');
149
+ * await fetch(url);
150
+ * const ms = http.timeEnd('fetch');
151
+ * if (ms && ms > 1000) http.warn('Latencia alta');
85
152
  */
86
- style(presetName: string): ScopedLogger;
153
+ timeEnd(label: string): number | undefined;
87
154
  /**
88
- * Crea un contexto temporal que se limpia automáticamente
155
+ * Emite un mensaje a nivel `debug` con los bindings actuales del scope.
89
156
  *
90
- * @param {string} contextName - Nombre del contexto
91
- * @returns {ContextLogger} Logger con contexto temporal
157
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales (objetos,
158
+ * errores, etc.) serializados igual que en el logger raíz.
92
159
  *
93
160
  * @example
94
- * const db = logger.scope('Database');
161
+ * logger.scope('DB').debug('query', { sql, params });
162
+ */
163
+ debug(...args: unknown[]): void;
164
+ /**
165
+ * Emite un mensaje a nivel `info` con los bindings actuales del scope.
95
166
  *
96
- * // Contexto temporal para una operación
97
- * db.context('Migration').run(() => {
98
- * db.info('Iniciando migración');
99
- * db.success('Tablas creadas');
100
- * });
101
- * // Contexto automáticamente limpiado
167
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
102
168
  *
103
- * @since 0.3.0
169
+ * @example
170
+ * logger.scope('AUTH').info('Login exitoso', { userId });
104
171
  */
105
- context(contextName: string): ContextLogger;
172
+ info(...args: unknown[]): void;
173
+ /**
174
+ * Emite un mensaje a nivel `warn` con los bindings actuales del scope.
175
+ *
176
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
177
+ *
178
+ * @example
179
+ * logger.scope('CACHE').warn('Cache miss', { key });
180
+ */
181
+ warn(...args: unknown[]): void;
106
182
  /**
107
- * Sobrescribe el logging principal para incluir badges
108
- * @protected
109
- * @param {LogLevel} level - Nivel del log
110
- * @param {...any} args - Argumentos del log
183
+ * Emite un mensaje a nivel `error` con los bindings actuales del scope.
184
+ *
185
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales (típicamente
186
+ * un `Error` o contexto del fallo).
187
+ *
188
+ * @example
189
+ * logger.scope('DB').error('Conexión rechazada', err);
111
190
  */
112
- protected log(level: LogLevel, ...args: any[]): void;
191
+ error(...args: unknown[]): void;
113
192
  /**
114
- * Obtiene la cadena de badges formateada
115
- * @private
116
- * @returns {string} Badges formateados como [BADGE1][BADGE2]
193
+ * Emite un mensaje con badge visual `SUCCESS` a nivel `info`. Úselo para
194
+ * hitos positivos dentro del scope (conexión establecida, sync completo,
195
+ * commit aplicado).
196
+ *
197
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
198
+ *
199
+ * @example
200
+ * logger.scope('SYNC').success('Sincronización completa', { count: 42 });
117
201
  */
118
- private getBadgeString;
202
+ success(...args: unknown[]): void;
119
203
  /**
120
- * Obtiene el prefijo del scope (incluye stack de contexto)
121
- * @private
122
- * @returns {string} Prefijo completo con contextos
204
+ * Emite un mensaje a nivel `critical` con los bindings actuales del scope.
205
+ * Reservado para fallos que detienen el flujo de la aplicación.
206
+ *
207
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
208
+ *
209
+ * @example
210
+ * logger.scope('PAY').critical('Pasarela inaccesible', err);
123
211
  */
124
- private getScopePrefix;
212
+ critical(...args: unknown[]): void;
213
+ /**
214
+ * Emite un mensaje a nivel `trace` (verbosidad máxima) con los bindings
215
+ * actuales del scope. Solo aparece si la verbosity global lo permite.
216
+ *
217
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
218
+ *
219
+ * @example
220
+ * logger.scope('NET').trace('packet', { bytes });
221
+ */
222
+ trace(...args: unknown[]): void;
223
+ /**
224
+ * Delegación a {@link Logger.step}: dibuja una barra de progreso discreta
225
+ * `current/total` para este scope.
226
+ *
227
+ * @param {number} current - Paso actual (1-indexed).
228
+ * @param {number} total - Total de pasos.
229
+ * @param {string} message - Texto mostrado junto al contador.
230
+ * @see {@link Logger.step}
231
+ */
232
+ step(current: number, total: number, message: string): void;
233
+ /**
234
+ * Delegación a {@link Logger.header}: imprime un título con separadores visuales.
235
+ *
236
+ * @param {string} title - Texto del título.
237
+ * @param {string} [subtitle] - Subtítulo opcional bajo el título.
238
+ * @see {@link Logger.header}
239
+ */
240
+ header(title: string, subtitle?: string): void;
125
241
  /**
126
- * Método interno para añadir contexto
242
+ * Delegación a {@link Logger.divider}: imprime una línea separadora horizontal.
243
+ * @see {@link Logger.divider}
244
+ */
245
+ divider(): void;
246
+ /**
247
+ * Delegación a {@link Logger.blank}: inserta una línea en blanco.
248
+ * @see {@link Logger.blank}
249
+ */
250
+ blank(): void;
251
+ /**
252
+ * Delegación a {@link Logger.box}: dibuja un recuadro ANSI alrededor de `content`.
253
+ *
254
+ * @param {string} content - Texto a enmarcar.
255
+ * @param {IBoxOptions} [options] - Opciones de estilo del box.
256
+ * @see {@link Logger.box}
257
+ */
258
+ box(content: string, options?: IBoxOptions): void;
259
+ /**
260
+ * Delegación a {@link Logger.cliTable}: renderiza `rows` como tabla ASCII.
261
+ *
262
+ * @param {Record<string, unknown>[]} rows - Filas a mostrar.
263
+ * @param {ITableOptions} [options] - Opciones de columnas y estilo.
264
+ * @see {@link Logger.cliTable}
265
+ */
266
+ cliTable(rows: Record<string, unknown>[], options?: ITableOptions): void;
267
+ /**
268
+ * Delegación a {@link Logger.spinner}: arranca un spinner con `message`.
269
+ *
270
+ * @param {string} message - Texto a mostrar al lado del spinner.
271
+ * @returns {ISpinnerHandle} Handle para detener/actualizar el spinner.
272
+ * @see {@link Logger.spinner}
273
+ */
274
+ spinner(message: string): ISpinnerHandle;
275
+ /**
276
+ * Delegación a {@link Logger.setCLILevel}: ajusta el nivel mínimo de las
277
+ * primitivas CLI visibles.
278
+ *
279
+ * @param {CLILogLevel} level - Nivel CLI (`silent` … `verbose`).
280
+ * @see {@link Logger.setCLILevel}
281
+ */
282
+ setCLILevel(level: CLILogLevel): void;
283
+ /**
284
+ * Apila un contexto en el prefijo del scope. Invocado por
285
+ * {@link ContextLogger}; los clientes no deben llamarlo directamente.
286
+ *
287
+ * @param {string} context - Nombre del contexto a apilar.
127
288
  * @internal
128
289
  */
129
290
  _pushContext(context: string): void;
130
291
  /**
131
- * Método interno para eliminar contexto
292
+ * Desapila el último contexto del prefijo del scope. Invocado por
293
+ * {@link ContextLogger}; los clientes no deben llamarlo directamente.
294
+ *
132
295
  * @internal
133
296
  */
134
297
  _popContext(): void;
135
298
  }
136
299
  /**
137
- * Logger específico para APIs con badges comunes de API
300
+ * Logger especializado para llamadas a APIs y servicios externos.
138
301
  *
139
- * @class APILogger
140
- * @extends ScopedLogger
141
- * @description Logger especializado para endpoints y servicios API
302
+ * Extiende {@link ScopedLogger} pre-seteando el badge `API` y exponiendo
303
+ * atajos para eventos típicos de integración: llamadas lentas ({@link slow}),
304
+ * rate limiting ({@link rateLimit}), fallos de autenticación ({@link auth}) y
305
+ * APIs deprecadas ({@link deprecated}).
306
+ *
307
+ * Se obtiene con `logger.api(name)` y no se construye directamente.
142
308
  *
143
309
  * @example
144
- * const api = logger.api('REST');
145
- * api.info('GET /users');
146
- * // [API] [REST] GET /users
310
+ * import logger from '@mks2508/better-logger';
311
+ *
312
+ * const stripe = logger.api('Stripe');
313
+ * stripe.info('Consultando customer', { id });
314
+ * // salida: [API:Stripe] [API] Consultando customer
147
315
  *
148
- * api.slow('Query lenta', 3500);
149
- * // [API] [SLOW] [REST] Query lenta (3500ms)
316
+ * stripe.slow('customer.retrieve', 1250);
317
+ * // salida: [API:Stripe] [API] [SLOW] customer.retrieve (1250ms)
150
318
  *
151
- * @since 0.3.0
319
+ * @see {@link Logger.api}
320
+ * @see {@link ScopedLogger}
152
321
  */
153
322
  export declare class APILogger extends ScopedLogger {
154
- constructor(parentLogger: Logger, apiName: string, config?: Partial<LoggerConfig>);
155
323
  /**
156
- * Registra operaciones lentas
324
+ * Construye un APILogger con scope `API:<apiName>` y badge `API` ya aplicado.
157
325
  *
158
- * @param {string} message - Mensaje sobre la operación lenta
159
- * @param {number} duration - Duración en milisegundos (opcional)
326
+ * Los clientes deben usar `logger.api(name)`.
160
327
  *
161
- * @example
162
- * api.slow('Query compleja', 5000);
163
- * api.slow('Procesamiento pesado');
328
+ * @param {Logger} parent - Logger raíz al que se delegan los mensajes.
329
+ * @param {string} apiName - Nombre del servicio/API (se prefija con `API:`).
330
+ */
331
+ constructor(parent: Logger, apiName: string);
332
+ /**
333
+ * Registra una llamada lenta con badge `SLOW` a nivel `warn`.
334
+ *
335
+ * @param {string} message - Descripción de la operación lenta.
336
+ * @param {number} [duration] - Duración medida en ms; si se pasa, se
337
+ * anexa al mensaje como `(Nms)`.
164
338
  *
165
- * @since 0.3.0
339
+ * @example
340
+ * const t0 = performance.now();
341
+ * await stripe.customers.retrieve(id);
342
+ * logger.api('Stripe').slow('retrieve', performance.now() - t0);
166
343
  */
167
344
  slow(message: string, duration?: number): void;
168
345
  /**
169
- * Registra límites de tasa alcanzados
346
+ * Registra un evento de rate limiting (HTTP 429) con badge `RATE_LIMIT`.
170
347
  *
171
- * @param {string} message - Mensaje sobre el límite
348
+ * @param {string} message - Detalle del límite golpeado.
172
349
  *
173
350
  * @example
174
- * api.rateLimit('Límite excedido: 100 req/min');
175
- *
176
- * @since 0.3.0
351
+ * logger.api('GitHub').rateLimit('Secondary rate limit on /search');
177
352
  */
178
353
  rateLimit(message: string): void;
179
354
  /**
180
- * Registra problemas de autenticación
355
+ * Registra un fallo de autenticación (401/403) con badge `AUTH` a nivel
356
+ * `error`.
181
357
  *
182
- * @param {string} message - Mensaje de autenticación
358
+ * @param {string} message - Detalle del fallo de credenciales/token.
183
359
  *
184
360
  * @example
185
- * api.auth('Token inválido o expirado');
186
- * api.auth('Credenciales incorrectas');
187
- *
188
- * @since 0.3.0
361
+ * logger.api('OAuth').auth('Token expirado');
189
362
  */
190
363
  auth(message: string): void;
191
364
  /**
192
- * Registra advertencias de deprecación
365
+ * Marca una API como deprecada con badge `DEPRECATED` a nivel `warn`.
193
366
  *
194
- * @param {string} message - Mensaje de deprecación
367
+ * @param {string} message - Mensaje guiando a la migración (endpoint
368
+ * alternativo, versión retirada, etc.).
195
369
  *
196
370
  * @example
197
- * api.deprecated('Este endpoint será eliminado en v2.0');
198
- * api.deprecated('Usar /v2/users en lugar de /users');
199
- *
200
- * @since 0.3.0
371
+ * logger.api('Legacy').deprecated('Usar v3; v2 se retira en Q4');
201
372
  */
202
373
  deprecated(message: string): void;
203
374
  }
204
375
  /**
205
- * Logger específico para componentes de UI
376
+ * Logger para componentes UI, módulos o cualquier unidad con ciclo de vida.
206
377
  *
207
- * @class ComponentLogger
208
- * @extends ScopedLogger
209
- * @description Logger especializado para componentes con eventos de ciclo de vida
378
+ * Extiende {@link ScopedLogger} pre-seteando el badge `COMPONENT` y exponiendo
379
+ * atajos para eventos típicos: {@link lifecycle}, {@link stateChange} y
380
+ * {@link propsChange}.
381
+ *
382
+ * Se obtiene con `logger.component(name)` y no se construye directamente.
210
383
  *
211
384
  * @example
212
- * const authForm = logger.component('AuthForm');
213
- * authForm.lifecycle('mounted');
214
- * authForm.stateChange('idle', 'loading');
385
+ * import logger from '@mks2508/better-logger';
386
+ *
387
+ * const cart = logger.component('Cart');
388
+ * cart.lifecycle('mount');
389
+ * // salida: [Cart] [COMPONENT] [LIFECYCLE] mount
215
390
  *
216
- * @since 0.3.0
391
+ * cart.stateChange('empty', 'has-items', { count: 3 });
392
+ * // salida: [Cart] [COMPONENT] [STATE] empty → has-items { count: 3 }
393
+ *
394
+ * @see {@link Logger.component}
395
+ * @see {@link ScopedLogger}
217
396
  */
218
397
  export declare class ComponentLogger extends ScopedLogger {
219
- constructor(parentLogger: Logger, componentName: string, config?: Partial<LoggerConfig>);
220
398
  /**
221
- * Registra eventos del ciclo de vida del componente
399
+ * Construye un ComponentLogger con badge `COMPONENT` ya aplicado.
222
400
  *
223
- * @param {string} event - Nombre del evento (mounted, unmounted, updated, etc)
224
- * @param {string} message - Mensaje adicional (opcional)
401
+ * Los clientes deben usar `logger.component(name)`.
225
402
  *
226
- * @example
227
- * component.lifecycle('mounted', 'Componente listo');
228
- * component.lifecycle('beforeDestroy');
403
+ * @param {Logger} parent - Logger raíz al que se delegan los mensajes.
404
+ * @param {string} componentName - Nombre del componente (scope label).
405
+ */
406
+ constructor(parent: Logger, componentName: string);
407
+ /**
408
+ * Registra un evento de ciclo de vida con badge `LIFECYCLE` a nivel `info`.
229
409
  *
230
- * @since 0.3.0
410
+ * @param {string} event - Nombre del evento (`mount`, `unmount`,
411
+ * `update`, ...).
412
+ * @param {string} [message] - Detalle opcional; si se omite, solo se
413
+ * registra el nombre del evento.
414
+ *
415
+ * @example
416
+ * logger.component('Cart').lifecycle('mount', 'Modal abierto');
231
417
  */
232
418
  lifecycle(event: string, message?: string): void;
233
419
  /**
234
- * Registra cambios de estado
420
+ * Registra una transición de estado con badge `STATE` a nivel `info`.
235
421
  *
236
- * @param {string} from - Estado anterior
237
- * @param {string} to - Estado nuevo
238
- * @param {any} data - Datos adicionales (opcional)
422
+ * @param {string} from - Estado previo.
423
+ * @param {string} to - Estado nuevo.
424
+ * @param {unknown} [data] - Payload opcional asociado a la transición.
239
425
  *
240
426
  * @example
241
- * component.stateChange('idle', 'loading');
242
- * component.stateChange('loading', 'error', { code: 404 });
243
- *
244
- * @since 0.3.0
427
+ * const fsm = logger.component('FSM');
428
+ * fsm.stateChange('idle', 'loading');
429
+ * fsm.stateChange('loading', 'success', { items: 3 });
245
430
  */
246
- stateChange(from: string, to: string, data?: any): void;
431
+ stateChange(from: string, to: string, data?: unknown): void;
247
432
  /**
248
- * Registra cambios en las propiedades
433
+ * Registra cambios de props/debug del componente con badge `PROPS` a nivel
434
+ * `debug`.
249
435
  *
250
- * @param {Record<string, any>} changes - Objeto con los cambios
436
+ * @param {Record<string, unknown>} changes - Mapa prop → valor (típicamente
437
+ * el diff de props entre renders).
251
438
  *
252
439
  * @example
253
- * component.propsChange({
254
- * user: newUser,
255
- * isActive: true
256
- * });
257
- *
258
- * @since 0.3.0
440
+ * logger.component('Cart').propsChange({ itemCount: 5, currency: 'EUR' });
259
441
  */
260
- propsChange(changes: Record<string, any>): void;
442
+ propsChange(changes: Record<string, unknown>): void;
261
443
  }
262
444
  /**
263
- * Logger de contexto temporal que se limpia automáticamente
445
+ * Handler de contexto apilable sobre un {@link ScopedLogger}.
446
+ *
447
+ * Permite agrupar bloques de logs bajo un sub-prefijo separado por `:`,
448
+ * manteniendo la correlación visual sin necesidad de `console.group`. El
449
+ * prefijo compuesto se forma como `<scopeName>:<contextName>`.
264
450
  *
265
- * @class ContextLogger
266
- * @description Proporciona un contexto temporal para operaciones agrupadas
451
+ * Se crea con `scopedLogger.context(name)`. El patrón idiomático es
452
+ * {@link run}/{@link runAsync} (auto push/pop con try/finally); {@link start}
453
+ * y {@link end} permiten control manual cuando el bloque no cierra
454
+ * léxicamente (event handlers distribuidos, promesas de larga duración).
267
455
  *
268
456
  * @example
269
- * const db = logger.scope('Database');
457
+ * import logger from '@mks2508/better-logger';
270
458
  *
271
- * // El contexto se limpia automáticamente al finalizar
272
- * db.context('Transaction').run(() => {
273
- * db.info('Iniciando transacción');
274
- * db.success('Transacción completada');
459
+ * const http = logger.scope('HTTP');
460
+ *
461
+ * // Bloque síncrono auto-cerrado
462
+ * http.context('retry').run(() => {
463
+ * http.warn('Reintentando petición');
464
+ * });
465
+ * // salida: [HTTP:retry] Reintentando petición
466
+ *
467
+ * // Bloque async auto-cerrado
468
+ * await http.context('refresh').runAsync(async () => {
469
+ * await refreshToken();
470
+ * http.info('Token refrescado');
275
471
  * });
276
472
  *
277
- * @since 0.3.0
473
+ * @see {@link ScopedLogger.context}
278
474
  */
279
475
  export declare class ContextLogger {
280
476
  private parentLogger;
281
477
  private contextName;
478
+ /**
479
+ * @param {ScopedLogger} parentLogger - Scope sobre el que se apila el contexto.
480
+ * @param {string} contextName - Sub-prefijo a apilar en el scope padre.
481
+ */
282
482
  constructor(parentLogger: ScopedLogger, contextName: string);
283
483
  /**
284
- * Ejecuta una función con este contexto activo
484
+ * Ejecuta `fn` síncrona dentro del contexto, garantizando el pop del
485
+ * prefijo incluso si `fn` lanza. El contexto solo está activo durante la
486
+ * ejecución de `fn`.
285
487
  *
286
- * @template T - Tipo de retorno de la función
287
- * @param {Function} fn - Función a ejecutar
288
- * @returns {T} Resultado de la función
488
+ * @typeParam T - Tipo de retorno de `fn`.
489
+ * @param {() => T} fn - Función a ejecutar bajo el contexto.
490
+ * @returns {T} Lo que devuelva `fn`.
491
+ * @throws {unknown} Relanza cualquier excepción de `fn` tras desapilar.
289
492
  *
290
493
  * @example
291
- * const result = logger.context('Process').run(() => {
292
- * logger.info('Procesando...');
293
- * return processData();
494
+ * logger.scope('HTTP').context('warmup').run(() => {
495
+ * logger.info('Pre-cargando caché');
294
496
  * });
295
- *
296
- * @since 0.3.0
297
497
  */
298
498
  run<T>(fn: () => T): T;
299
499
  /**
300
- * Run an async function with this context active
500
+ * Variante async de {@link run}: mantiene el contexto activo mientras se
501
+ * awaiting la promesa de `fn`, incluyendo awaits internos.
502
+ *
503
+ * @typeParam T - Tipo resuelto por la promesa de `fn`.
504
+ * @param {() => Promise<T>} fn - Función async a ejecutar bajo el contexto.
505
+ * @returns {Promise<T>} Promesa que resuelve al valor de `fn`.
506
+ * @throws {unknown} Relanza cualquier rechazo de `fn` tras desapilar.
507
+ *
508
+ * @example
509
+ * await logger.scope('HTTP').context('fetch').runAsync(async () => {
510
+ * const r = await fetch(url);
511
+ * logger.info('Recibido', { status: r.status });
512
+ * });
301
513
  */
302
514
  runAsync<T>(fn: () => Promise<T>): Promise<T>;
303
515
  /**
304
- * Start the context (manual mode)
516
+ * Apila el contexto manualmente. Útil cuando el bloque que lo consume no
517
+ * cierra léxicamente (event handlers, timeouts, streams). Debe emparejarse
518
+ * con un {@link end} posterior; olvidarlo deja el prefijo contaminado para
519
+ * los logs siguientes del scope.
520
+ *
521
+ * @example
522
+ * const ctx = logger.scope('WS').context('subscribe');
523
+ * socket.onopen = () => { ctx.start(); ctx.info('connected'); };
524
+ * socket.onclose = () => { ctx.info('disconnected'); ctx.end(); };
525
+ * @see {@link end}
305
526
  */
306
527
  start(): void;
307
528
  /**
308
- * End the context (manual mode)
529
+ * Desapila el último contexto abierto con {@link start}.
530
+ *
531
+ * @see {@link start}
309
532
  */
310
533
  end(): void;
311
- debug(...args: any[]): void;
312
- info(...args: any[]): void;
313
- warn(...args: any[]): void;
314
- error(...args: any[]): void;
315
- success(...args: any[]): void;
316
- critical(...args: any[]): void;
534
+ /**
535
+ * Atajo a `scopedLogger.debug(...)`. El contexto se aplica al prefijo del
536
+ * scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
537
+ *
538
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
539
+ */
540
+ debug(...args: unknown[]): void;
541
+ /**
542
+ * Atajo a `scopedLogger.info(...)`. El contexto se aplica al prefijo del
543
+ * scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
544
+ *
545
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
546
+ */
547
+ info(...args: unknown[]): void;
548
+ /**
549
+ * Atajo a `scopedLogger.warn(...)`. El contexto se aplica al prefijo del
550
+ * scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
551
+ *
552
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
553
+ */
554
+ warn(...args: unknown[]): void;
555
+ /**
556
+ * Atajo a `scopedLogger.error(...)`. El contexto se aplica al prefijo del
557
+ * scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
558
+ *
559
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
560
+ */
561
+ error(...args: unknown[]): void;
562
+ /**
563
+ * Atajo a `scopedLogger.success(...)`. El contexto se aplica al prefijo del
564
+ * scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
565
+ *
566
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
567
+ */
568
+ success(...args: unknown[]): void;
569
+ /**
570
+ * Atajo a `scopedLogger.critical(...)`. El contexto se aplica al prefijo
571
+ * del scope padre solo si se invoca dentro de un bloque {@link run}/{@link start}.
572
+ *
573
+ * @param {...unknown[]} args - Mensaje y argumentos adicionales.
574
+ */
575
+ critical(...args: unknown[]): void;
317
576
  }
318
577
  //# sourceMappingURL=ScopedLogger.d.ts.map