@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
package/src/Logger.ts DELETED
@@ -1,1276 +0,0 @@
1
- /**
2
- * @fileoverview Logger avanzado con arquitectura modular y API simplificada
3
- * @version 0.3.0
4
- * @since 2024
5
- *
6
- * Sistema de logging profesional con estilos CSS avanzados, temas adaptativos,
7
- * badges automáticos, contextos temporales y exportación de datos.
8
- */
9
-
10
- // Type imports
11
- import type {
12
- LogLevel,
13
- Verbosity,
14
- ThemeVariant,
15
- BannerType,
16
- LoggerConfig,
17
- TimerEntry,
18
- ILogHandler,
19
- LogMetadata,
20
- StyleOptions
21
- } from './types/index.js';
22
-
23
- // Utility imports
24
- import {
25
- parseStackTrace,
26
- formatTimestamp,
27
- createStyledOutput,
28
- setupThemeChangeListener
29
- } from './utils/index.js';
30
-
31
- // Styling imports
32
- import {
33
- THEME_PRESETS,
34
- THEME_BANNERS,
35
- displayInitBanner,
36
- StylePresets,
37
- StyleBuilder
38
- } from './styling/index.js';
39
-
40
- // Smart presets and dynamic scoped loggers
41
- import { getSmartPreset, getAvailablePresets, hasPreset } from './styling/SmartPresets.js';
42
- import { createLogStyleBuilder } from './styling/LogStyleBuilder.js';
43
-
44
- // Handler imports
45
- import { ExportLogHandler } from './handlers/index.js';
46
-
47
- // CLI imports
48
- import { createDefaultCLI, type CommandProcessor } from './cli/index.js';
49
-
50
- // Constants
51
- import { DEFAULT_CONFIG } from './constants.js';
52
-
53
- /**
54
- * Estilos del tema activo actual
55
- * @private
56
- */
57
- let LEVEL_STYLES = THEME_PRESETS.default;
58
-
59
- /**
60
- * Clase principal Logger con capacidades avanzadas de logging
61
- *
62
- * @class Logger
63
- * @description Sistema completo de logging con temas, badges, contextos y exportación.
64
- * Detecta automáticamente el tema claro/oscuro del navegador.
65
- *
66
- * @example
67
- * // Uso básico sin configuración
68
- * import logger from '@mks2508/better-logger';
69
- * logger.info('Aplicación iniciada');
70
- * logger.success('Conexión establecida');
71
- *
72
- * @example
73
- * // Aplicar un preset temático
74
- * logger.preset('cyberpunk');
75
- * logger.warn('Advertencia con estilo neón');
76
- *
77
- * @example
78
- * // Logger con scope para componentes
79
- * const auth = logger.component('Autenticación');
80
- * auth.info('Usuario intentando login');
81
- * auth.success('Login exitoso');
82
- *
83
- * @since 0.3.0
84
- */
85
- export class Logger {
86
- private config: LoggerConfig;
87
- private scopedPrefix?: string;
88
- private handlers: ILogHandler[] = [];
89
- private timers: Map<string, TimerEntry> = new Map();
90
- private groupDepth: number = 0;
91
- private exportHandler?: ExportLogHandler;
92
- private cliProcessor?: CommandProcessor;
93
- private themeChangeListener?: (() => void) | null;
94
- private displaySettings = {
95
- showTimestamp: true,
96
- showLocation: true,
97
- showBadges: true
98
- };
99
-
100
- /**
101
- * Crea una nueva instancia del Logger
102
- *
103
- * @param {Partial<LoggerConfig>} config - Configuración opcional del logger
104
- *
105
- * @example
106
- * // Logger con configuración personalizada
107
- * const logger = new Logger({
108
- * theme: 'neon',
109
- * globalPrefix: 'MiApp',
110
- * verbosity: 'debug',
111
- * bufferSize: 1000
112
- * });
113
- */
114
- constructor(config: Partial<LoggerConfig> = {}) {
115
- this.config = {
116
- ...DEFAULT_CONFIG,
117
- ...config,
118
- };
119
-
120
- // Initialize export handler if buffer size is specified
121
- if (this.config.bufferSize) {
122
- this.exportHandler = new ExportLogHandler(this.config.bufferSize);
123
- this.handlers.push(this.exportHandler);
124
- }
125
-
126
- // Initialize CLI processor
127
- this.cliProcessor = createDefaultCLI();
128
-
129
- // Set up theme change listener if auto-detection is enabled
130
- if (this.config.autoDetectTheme) {
131
- this.setupAutoThemeDetection();
132
- }
133
- }
134
-
135
- // ===== PRIVATE HELPER METHODS =====
136
-
137
- /**
138
- * Configura la detección automática de tema con listener de cambios
139
- * @private
140
- * @description Detecta automáticamente si el navegador está en modo claro u oscuro
141
- */
142
- private setupAutoThemeDetection(): void {
143
- // Clean up existing listener if any
144
- if (this.themeChangeListener) {
145
- this.themeChangeListener();
146
- this.themeChangeListener = null;
147
- }
148
-
149
- // Set up new listener
150
- this.themeChangeListener = setupThemeChangeListener((theme) => {
151
- // Theme changed - logs will automatically use new colors on next call
152
- // No need to update anything as colors are resolved dynamically
153
- this.debug(`DevTools theme changed to: ${theme}`);
154
- });
155
- }
156
-
157
- // ===== CONFIGURATION METHODS =====
158
-
159
- /**
160
- * Obtiene la configuración actual del logger
161
- *
162
- * @returns {LoggerConfig} Configuración completa actual
163
- *
164
- * @example
165
- * const config = logger.getConfig();
166
- * console.log('Verbosidad actual:', config.verbosity);
167
- * console.log('Tema actual:', config.theme);
168
- *
169
- * @since 0.3.0
170
- */
171
- getConfig(): LoggerConfig {
172
- return { ...this.config };
173
- }
174
-
175
- /**
176
- * Actualiza la configuración del logger
177
- *
178
- * @param {Partial<LoggerConfig>} updates - Propiedades a actualizar
179
- *
180
- * @example
181
- * logger.updateConfig({
182
- * verbosity: 'debug',
183
- * enableTimestamps: false,
184
- * theme: 'cyberpunk'
185
- * });
186
- *
187
- * @since 0.3.0
188
- */
189
- updateConfig(updates: Partial<LoggerConfig>): void {
190
- const previousAutoDetect = this.config.autoDetectTheme;
191
- this.config = { ...this.config, ...updates };
192
-
193
- // Handle auto-detection changes
194
- if (updates.autoDetectTheme !== undefined && updates.autoDetectTheme !== previousAutoDetect) {
195
- if (updates.autoDetectTheme) {
196
- this.setupAutoThemeDetection();
197
- } else if (this.themeChangeListener) {
198
- this.themeChangeListener();
199
- this.themeChangeListener = null;
200
- }
201
- }
202
- }
203
-
204
- /**
205
- * Establece el prefijo global para todos los mensajes de log
206
- *
207
- * @param {string} prefix - Prefijo a usar
208
- *
209
- * @example
210
- * logger.setGlobalPrefix('MiApp');
211
- * logger.info('Iniciado'); // [MiApp] Iniciado
212
- *
213
- * @since 0.3.0
214
- */
215
- setGlobalPrefix(prefix: string): void {
216
- this.config.globalPrefix = prefix;
217
- }
218
-
219
- /**
220
- * Establece el nivel de verbosidad para filtrar la salida de logs
221
- *
222
- * @param {Verbosity} level - Nivel mínimo a mostrar ('debug' | 'info' | 'warn' | 'error' | 'critical' | 'silent')
223
- *
224
- * @example
225
- * logger.setVerbosity('warn'); // Solo muestra warn, error y critical
226
- * logger.setVerbosity('debug'); // Muestra todos los niveles
227
- * logger.setVerbosity('silent'); // No muestra nada
228
- *
229
- * @since 0.3.0
230
- */
231
- setVerbosity(level: Verbosity): void {
232
- this.config.verbosity = level;
233
- }
234
-
235
- /**
236
- * Establece el tema del logger
237
- *
238
- * @param {ThemeVariant} theme - Tema a aplicar ('default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk')
239
- *
240
- * @example
241
- * logger.setTheme('neon'); // Tema con colores neón
242
- * logger.setTheme('minimal'); // Tema minimalista
243
- * logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
244
- *
245
- * @since 0.3.0
246
- */
247
- setTheme(theme: ThemeVariant): void {
248
- // First check if it's a smart preset
249
- if (hasPreset(theme)) {
250
- this.preset(theme);
251
- return;
252
- }
253
-
254
- // Fallback to old theme system
255
- if (theme in THEME_PRESETS) {
256
- LEVEL_STYLES = (THEME_PRESETS as any)[theme];
257
- this.config.theme = theme;
258
-
259
- // Show theme-specific banner
260
- if (theme in THEME_BANNERS) {
261
- const themeBanner = (THEME_BANNERS as any)[theme];
262
- console.log(`%c${themeBanner.simple}`, themeBanner.style);
263
- }
264
-
265
- this.success(`Theme changed to: ${theme}`);
266
- } else {
267
- this.error(`Invalid theme: ${theme}. Available:`, [...getAvailablePresets(), ...Object.keys(THEME_PRESETS)]);
268
- }
269
- }
270
-
271
- /**
272
- * Establece el tipo de banner para mostrar en la inicialización
273
- *
274
- * @param {BannerType} bannerType - Tipo de banner ('simple' | 'ascii' | 'unicode' | 'svg' | 'animated')
275
- *
276
- * @example
277
- * logger.setBannerType('ascii'); // Banner con arte ASCII
278
- * logger.setBannerType('unicode'); // Banner con caracteres Unicode
279
- * logger.setBannerType('animated'); // Banner con animación
280
- *
281
- * @since 0.3.0
282
- */
283
- setBannerType(bannerType: BannerType): void {
284
- this.config.bannerType = bannerType;
285
- this.success(`Banner type changed to: ${bannerType}`);
286
- }
287
-
288
- /**
289
- * Reinicia el logger a la configuración por defecto
290
- *
291
- * @example
292
- * logger.resetConfig();
293
- * // Todo vuelve a la configuración inicial
294
- *
295
- * @since 0.3.0
296
- */
297
- resetConfig(): void {
298
- // Clean up theme listener
299
- if (this.themeChangeListener) {
300
- this.themeChangeListener();
301
- this.themeChangeListener = null;
302
- }
303
-
304
- this.config = { ...DEFAULT_CONFIG };
305
- LEVEL_STYLES = THEME_PRESETS.default;
306
-
307
- // Re-setup auto theme detection if enabled in default config
308
- if (this.config.autoDetectTheme) {
309
- this.setupAutoThemeDetection();
310
- }
311
-
312
- this.success('Logger configuration reset to defaults');
313
- }
314
-
315
- /**
316
- * Método de limpieza para eliminar listeners y liberar recursos
317
- *
318
- * @example
319
- * // Antes de cerrar la aplicación
320
- * logger.cleanup();
321
- *
322
- * @since 0.3.0
323
- */
324
- cleanup(): void {
325
- if (this.themeChangeListener) {
326
- this.themeChangeListener();
327
- this.themeChangeListener = null;
328
- }
329
- }
330
-
331
- // ===== SIMPLIFIED API =====
332
-
333
- /**
334
- * Aplica un preset inteligente - funciona perfectamente sin configuración
335
- *
336
- * @param {string} name - Nombre del preset a aplicar
337
- *
338
- * @example
339
- * // Presets disponibles
340
- * logger.preset('default'); // Limpio y adaptativo
341
- * logger.preset('cyberpunk'); // Colores neón, efectos brillantes
342
- * logger.preset('glassmorphism'); // Efectos de blur modernos
343
- * logger.preset('minimal'); // Minimalista y elegante
344
- * logger.preset('debug'); // Modo desarrollo detallado
345
- * logger.preset('production'); // Optimizado para producción
346
- *
347
- * @since 0.3.0
348
- */
349
- preset(name: string): void {
350
- if (!hasPreset(name)) {
351
- this.error(`Unknown preset: ${name}. Available presets:`, getAvailablePresets());
352
- return;
353
- }
354
-
355
- const presetConfig = getSmartPreset(name);
356
- if (presetConfig) {
357
- // Apply the smart preset configuration
358
- this.displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;
359
- this.displaySettings.showLocation = presetConfig.location?.show ?? true;
360
-
361
- // Store the preset config for use in createStyledOutput
362
- (this as any)._activePreset = presetConfig;
363
- (this as any)._activePresetName = name;
364
-
365
- this.success(`Applied preset: ${name}`);
366
- }
367
- }
368
-
369
- /**
370
- * Lista todos los presets disponibles
371
- *
372
- * @returns {string[]} Array con nombres de presets disponibles
373
- *
374
- * @example
375
- * const disponibles = logger.presets();
376
- * console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
377
- *
378
- * @since 0.3.0
379
- */
380
- presets(): string[] {
381
- return getAvailablePresets();
382
- }
383
-
384
- // ===== TOGGLE METHODS =====
385
-
386
- /**
387
- * Oculta el timestamp en los logs
388
- *
389
- * @example
390
- * logger.hideTimestamp();
391
- * logger.info('Sin marca de tiempo'); // Sin timestamp visible
392
- *
393
- * @since 0.3.0
394
- */
395
- hideTimestamp(): void {
396
- this.displaySettings.showTimestamp = false;
397
- this.success('Timestamp hidden');
398
- }
399
-
400
- /**
401
- * Muestra el timestamp en los logs
402
- *
403
- * @example
404
- * logger.showTimestamp();
405
- * logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
406
- *
407
- * @since 0.3.0
408
- */
409
- showTimestamp(): void {
410
- this.displaySettings.showTimestamp = true;
411
- this.success('Timestamp shown');
412
- }
413
-
414
- /**
415
- * Oculta la información de ubicación (archivo:línea) en los logs
416
- *
417
- * @example
418
- * logger.hideLocation();
419
- * logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
420
- *
421
- * @since 0.3.0
422
- */
423
- hideLocation(): void {
424
- this.displaySettings.showLocation = false;
425
- this.success('Location info hidden');
426
- }
427
-
428
- /**
429
- * Muestra la información de ubicación (archivo:línea) en los logs
430
- *
431
- * @example
432
- * logger.showLocation();
433
- * logger.debug('Con ubicación'); // app.js:42 Con ubicación
434
- *
435
- * @since 0.3.0
436
- */
437
- showLocation(): void {
438
- this.displaySettings.showLocation = true;
439
- this.success('Location info shown');
440
- }
441
-
442
- /**
443
- * Oculta los badges en los logs
444
- *
445
- * @example
446
- * logger.hideBadges();
447
- * const api = logger.api('REST');
448
- * api.info('Sin badges'); // Sin mostrar [API] [REST]
449
- *
450
- * @since 0.3.0
451
- */
452
- hideBadges(): void {
453
- this.displaySettings.showBadges = false;
454
- this.success('Badges hidden');
455
- }
456
-
457
- /**
458
- * Muestra los badges en los logs
459
- *
460
- * @example
461
- * logger.showBadges();
462
- * const api = logger.api('GraphQL');
463
- * api.info('Con badges'); // [API] [GraphQL] Con badges
464
- *
465
- * @since 0.3.0
466
- */
467
- showBadges(): void {
468
- this.displaySettings.showBadges = true;
469
- this.success('Badges shown');
470
- }
471
-
472
- // ===== SCOPED LOGGERS =====
473
-
474
- /**
475
- * Crea un logger para componentes con estilo automático
476
- *
477
- * @param {string} name - Nombre del componente
478
- * @returns {ComponentLogger} Logger con scope de componente
479
- *
480
- * @example
481
- * const authLogger = logger.component('Autenticación');
482
- * authLogger.info('Validando credenciales');
483
- * // [COMPONENT] [Autenticación] Validando credenciales
484
- *
485
- * authLogger.success('Usuario autenticado');
486
- * // [COMPONENT] [Autenticación] ✓ Usuario autenticado
487
- *
488
- * @since 0.3.0
489
- */
490
- component(name: string): any {
491
- // Dynamic import to avoid circular dependency
492
- const { ComponentLogger } = require('./ScopedLogger.js');
493
- return new ComponentLogger(this, name);
494
- }
495
-
496
- /**
497
- * Crea un logger para APIs con badges automáticos
498
- *
499
- * @param {string} name - Nombre de la API o endpoint
500
- * @returns {APILogger} Logger con scope de API
501
- *
502
- * @example
503
- * const api = logger.api('REST');
504
- * api.info('GET /users');
505
- * // [API] [REST] GET /users
506
- *
507
- * // Con badges adicionales
508
- * api.badges(['v2', 'cached']).info('Respuesta desde caché');
509
- * // [API] [v2] [cached] [REST] Respuesta desde caché
510
- *
511
- * @since 0.3.0
512
- */
513
- api(name: string): any {
514
- // Dynamic import to avoid circular dependency
515
- const { APILogger } = require('./ScopedLogger.js');
516
- return new APILogger(this, name);
517
- }
518
-
519
- /**
520
- * Crea un logger con scope general y soporte de badges
521
- *
522
- * @param {string} name - Nombre del scope
523
- * @returns {ScopedLogger} Logger con scope personalizado
524
- *
525
- * @example
526
- * const dbLogger = logger.scope('Database');
527
- * dbLogger.info('Conectando a MongoDB');
528
- * // [Database] Conectando a MongoDB
529
- *
530
- * // Con badges personalizados
531
- * dbLogger.badge('SLOW').warn('Query tardó 5s');
532
- * // [SLOW] [Database] Query tardó 5s
533
- *
534
- * @since 0.3.0
535
- */
536
- scope(name: string): any {
537
- // Dynamic import to avoid circular dependency
538
- const { ScopedLogger } = require('./ScopedLogger.js');
539
- return new ScopedLogger(this, name);
540
- }
541
-
542
- // ===== SIMPLE CUSTOMIZATION =====
543
-
544
- /**
545
- * Personalización simple con configuración mínima
546
- *
547
- * @param {Object} overrides - Opciones de personalización
548
- * @param {Object} overrides.message - Configuración del mensaje
549
- * @param {Object} overrides.timestamp - Configuración del timestamp
550
- * @param {Object} overrides.location - Configuración de ubicación
551
- * @param {Object} overrides.level - Configuración del nivel
552
- * @param {Object} overrides.prefix - Configuración del prefijo
553
- * @param {string} overrides.spacing - Espaciado: 'compact' | 'normal' | 'spacious'
554
- *
555
- * @example
556
- * logger.customize({
557
- * message: { color: '#00ff00', size: '16px' },
558
- * timestamp: { show: false },
559
- * spacing: 'compact'
560
- * });
561
- *
562
- * @since 0.3.0
563
- */
564
- customize(overrides: {
565
- message?: { color?: string; font?: string; size?: string };
566
- timestamp?: { show?: boolean; color?: string };
567
- location?: { show?: boolean; color?: string };
568
- level?: { uppercase?: boolean; style?: string };
569
- prefix?: { show?: boolean; style?: string };
570
- spacing?: 'compact' | 'normal' | 'spacious';
571
- }): void {
572
- // Apply simple overrides
573
- if (overrides.timestamp?.show !== undefined) {
574
- this.displaySettings.showTimestamp = overrides.timestamp.show;
575
- }
576
- if (overrides.location?.show !== undefined) {
577
- this.displaySettings.showLocation = overrides.location.show;
578
- }
579
- if (overrides.prefix?.show !== undefined) {
580
- // Will be handled when we integrate with preset system
581
- }
582
-
583
- // Store customization for use in createStyledOutput
584
- (this as any)._customization = overrides;
585
- this.success('Customization applied');
586
- }
587
-
588
- /**
589
- * Access advanced styling API (for power users)
590
- */
591
- styles(): any {
592
- return createLogStyleBuilder(this);
593
- }
594
-
595
- // ===== HANDLER MANAGEMENT =====
596
-
597
- /**
598
- * Añade un handler personalizado para extender funcionalidad
599
- *
600
- * @param {ILogHandler} handler - Handler que implementa ILogHandler
601
- *
602
- * @example
603
- * // Handler personalizado para enviar logs a servidor
604
- * const remoteHandler = new RemoteLogHandler('https://api.ejemplo.com/logs');
605
- * logger.addHandler(remoteHandler);
606
- *
607
- * @example
608
- * // Handler para guardar en archivo
609
- * const fileHandler = new FileLogHandler('./app.log');
610
- * logger.addHandler(fileHandler);
611
- *
612
- * @since 0.3.0
613
- */
614
- addHandler(handler: ILogHandler): void {
615
- this.handlers.push(handler);
616
- }
617
-
618
- /**
619
- * Obtiene todos los handlers registrados
620
- *
621
- * @returns {ILogHandler[]} Array de handlers activos
622
- * @since 0.3.0
623
- */
624
- getHandlers(): ILogHandler[] {
625
- return [...this.handlers];
626
- }
627
-
628
- /**
629
- * Obtiene el handler de exportación si está disponible
630
- *
631
- * @returns {ExportLogHandler | undefined} Handler de exportación o undefined
632
- * @since 0.3.0
633
- */
634
- getExportHandler(): ExportLogHandler | undefined {
635
- return this.exportHandler;
636
- }
637
-
638
- // ===== CORE LOGGING METHODS =====
639
-
640
- /**
641
- * Verifica si un nivel de log debe mostrarse según la verbosidad actual
642
- * @private
643
- * @param {LogLevel} level - Nivel de log a verificar
644
- * @returns {boolean} True si debe mostrarse, false si no
645
- */
646
- private shouldLog(level: LogLevel): boolean {
647
- if (this.config.verbosity === 'silent') return false;
648
- const levels = { debug: 0, info: 1, warn: 2, error: 3, critical: 4 };
649
- return levels[level] >= levels[this.config.verbosity];
650
- }
651
-
652
- /**
653
- * Obtiene el prefijo efectivo (global + scope)
654
- * @private
655
- * @returns {string | undefined} Prefijo combinado o undefined
656
- */
657
- private getEffectivePrefix(): string | undefined {
658
- const parts = [this.config.globalPrefix, this.scopedPrefix].filter(Boolean);
659
- return parts.length > 0 ? parts.join(':') : undefined;
660
- }
661
-
662
- /**
663
- * Método central de logging que maneja estilos y formato
664
- * @protected
665
- * @param {LogLevel} level - Nivel del log
666
- * @param {...any} args - Argumentos a loggear
667
- */
668
- protected log(level: LogLevel, ...args: any[]): void {
669
- if (!this.shouldLog(level)) return;
670
-
671
- const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;
672
- const prefix = this.getEffectivePrefix();
673
- const message = args.length > 0 ? String(args[0]) : '';
674
- const additionalArgs = args.slice(1);
675
-
676
- // Create styled output with theme detection and display settings
677
- const [format, ...styles] = createStyledOutput(
678
- level,
679
- LEVEL_STYLES,
680
- prefix,
681
- message,
682
- this.displaySettings.showLocation ? stackInfo : null,
683
- this.config.autoDetectTheme
684
- );
685
-
686
- // Add group indentation
687
- const groupIndent = ' '.repeat(this.groupDepth);
688
- const finalFormat = groupIndent + format;
689
-
690
- // Output to console
691
- if (additionalArgs.length > 0) {
692
- console.log(finalFormat, ...styles, ...additionalArgs);
693
- } else {
694
- console.log(finalFormat, ...styles);
695
- }
696
-
697
- // Update export handler group info
698
- if (this.exportHandler) {
699
- this.exportHandler.setGroupInfo(this.groupDepth);
700
- }
701
-
702
- // Call custom handlers
703
- const metadata: LogMetadata = {
704
- timestamp: formatTimestamp(),
705
- level,
706
- prefix,
707
- stackInfo: stackInfo ? stackInfo : undefined,
708
- };
709
-
710
- this.handlers.forEach(handler => {
711
- try {
712
- handler.handle(level, message, args, metadata);
713
- } catch (error) {
714
- console.error('Log handler failed:', error);
715
- }
716
- });
717
- }
718
-
719
- /**
720
- * Registra información de debug (prioridad más baja)
721
- *
722
- * @param {...any} args - Mensajes y datos a loggear
723
- *
724
- * @example
725
- * logger.debug('Variable estado:', { usuario: 'Juan', activo: true });
726
- * logger.debug('Iniciando proceso de validación');
727
- *
728
- * @since 0.3.0
729
- */
730
- debug(...args: any[]): void {
731
- this.log('debug', ...args);
732
- }
733
-
734
- /**
735
- * Registra mensajes informativos
736
- *
737
- * @param {...any} args - Mensajes y datos informativos
738
- *
739
- * @example
740
- * logger.info('Servidor iniciado en puerto 3000');
741
- * logger.info('Usuario conectado:', userId);
742
- * logger.info('Procesando', totalItems, 'elementos');
743
- *
744
- * @since 0.3.0
745
- */
746
- info(...args: any[]): void {
747
- this.log('info', ...args);
748
- }
749
-
750
- /**
751
- * Registra mensajes de advertencia
752
- *
753
- * @param {...any} args - Mensajes de advertencia
754
- *
755
- * @example
756
- * logger.warn('Memoria al 85% de capacidad');
757
- * logger.warn('API deprecada, usar v2');
758
- * logger.warn('Reintentos agotados:', maxRetries);
759
- *
760
- * @since 0.3.0
761
- */
762
- warn(...args: any[]): void {
763
- this.log('warn', ...args);
764
- }
765
-
766
- /**
767
- * Registra mensajes de error
768
- *
769
- * @param {...any} args - Mensajes de error y stack traces
770
- *
771
- * @example
772
- * logger.error('Fallo en conexión a base de datos');
773
- * logger.error('Error al procesar:', error.message, error.stack);
774
- * logger.error('Código de error:', errorCode);
775
- *
776
- * @since 0.3.0
777
- */
778
- error(...args: any[]): void {
779
- this.log('error', ...args);
780
- }
781
-
782
- /**
783
- * Registra mensajes de éxito (nivel info especial)
784
- *
785
- * @param {...any} args - Mensajes de operaciones exitosas
786
- *
787
- * @example
788
- * logger.success('Base de datos conectada');
789
- * logger.success('Usuario creado con ID:', userId);
790
- * logger.success('✓ Tests pasados: 42/42');
791
- *
792
- * @since 0.3.0
793
- */
794
- success(...args: any[]): void {
795
- if (!this.shouldLog('info')) return;
796
-
797
- const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;
798
- const prefix = this.getEffectivePrefix();
799
- const message = args.length > 0 ? String(args[0]) : '';
800
- const additionalArgs = args.slice(1);
801
-
802
- // Handle success as special case - use info level with success styling
803
- const [format, ...styles] = createStyledOutput(
804
- 'info',
805
- LEVEL_STYLES,
806
- prefix,
807
- message,
808
- this.displaySettings.showLocation ? stackInfo : null,
809
- this.config.autoDetectTheme
810
- );
811
-
812
- // Override with success styling
813
- const successStyle = LEVEL_STYLES.success;
814
- let emoji = '✅';
815
- let label = 'SUCCESS';
816
-
817
- if (successStyle) {
818
- if (successStyle.emoji) {
819
- emoji = successStyle.emoji;
820
- }
821
- if (successStyle.label) {
822
- label = successStyle.label;
823
- }
824
- }
825
-
826
- const successFormat = format.replace(/ℹ️ INFO/, `${emoji} ${label}`);
827
-
828
- const groupIndent = ' '.repeat(this.groupDepth);
829
- const finalFormat = groupIndent + successFormat;
830
-
831
- if (additionalArgs.length > 0) {
832
- console.log(finalFormat, ...styles, ...additionalArgs);
833
- } else {
834
- console.log(finalFormat, ...styles);
835
- }
836
-
837
- // Call handlers
838
- const metadata: LogMetadata = {
839
- timestamp: formatTimestamp(),
840
- level: 'info',
841
- prefix,
842
- stackInfo: stackInfo ? stackInfo : undefined,
843
- };
844
-
845
- this.handlers.forEach(handler => {
846
- try {
847
- handler.handle('info', message, args, metadata);
848
- } catch (error) {
849
- console.error('Log handler failed:', error);
850
- }
851
- });
852
- }
853
-
854
- /**
855
- * Registra información de trace (debugging detallado)
856
- *
857
- * @param {...any} args - Datos detallados para debugging
858
- *
859
- * @example
860
- * logger.trace('Entrando en función processData');
861
- * logger.trace('Stack completo:', new Error().stack);
862
- *
863
- * @since 0.3.0
864
- */
865
- trace(...args: any[]): void {
866
- this.log('debug', ...args);
867
- if (this.shouldLog('debug')) {
868
- console.trace(...args);
869
- }
870
- }
871
-
872
- /**
873
- * Registra errores críticos (prioridad más alta)
874
- *
875
- * @param {...any} args - Errores críticos del sistema
876
- *
877
- * @example
878
- * logger.critical('Sistema caído - reinicio inmediato requerido');
879
- * logger.critical('Pérdida de datos detectada');
880
- * logger.critical('Brecha de seguridad:', securityError);
881
- *
882
- * @since 0.3.0
883
- */
884
- critical(...args: any[]): void {
885
- this.log('critical', ...args);
886
- }
887
-
888
- // ===== ADVANCED LOGGING FEATURES =====
889
-
890
- /**
891
- * Muestra datos en formato de tabla
892
- *
893
- * @param {any} data - Datos a mostrar (array de objetos o matriz)
894
- * @param {string[]} columns - Columnas específicas a mostrar (opcional)
895
- *
896
- * @example
897
- * const usuarios = [
898
- * { id: 1, nombre: 'Juan', edad: 30 },
899
- * { id: 2, nombre: 'María', edad: 25 }
900
- * ];
901
- * logger.table(usuarios);
902
- * logger.table(usuarios, ['nombre', 'edad']); // Solo estas columnas
903
- *
904
- * @since 0.3.0
905
- */
906
- table(data: any, columns?: string[]): void {
907
- if (!this.shouldLog('info')) return;
908
-
909
- const prefix = this.getEffectivePrefix();
910
- const tableStyle = StylePresets.accent().build();
911
-
912
- const format = `%c📊 TABLE${prefix ? ` [${prefix}]` : ''}`;
913
- console.log(format, tableStyle);
914
-
915
- if (columns) {
916
- console.table(data, columns);
917
- } else {
918
- console.table(data);
919
- }
920
- }
921
-
922
- /**
923
- * Inicia un grupo colapsable en la consola
924
- *
925
- * @param {string} label - Etiqueta del grupo
926
- * @param {boolean} collapsed - Si el grupo inicia colapsado (default: false)
927
- *
928
- * @example
929
- * logger.group('Procesando usuarios');
930
- * logger.info('Usuario 1 procesado');
931
- * logger.info('Usuario 2 procesado');
932
- * logger.groupEnd();
933
- *
934
- * @example
935
- * // Grupo colapsado por defecto
936
- * logger.group('Detalles adicionales', true);
937
- * logger.debug('Información detallada aquí');
938
- * logger.groupEnd();
939
- *
940
- * @since 0.3.0
941
- */
942
- group(label: string, collapsed: boolean = false): void {
943
- const groupStyle = new StyleBuilder()
944
- .bg('linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%)')
945
- .color('#1565c0')
946
- .border('1px solid #90caf9')
947
- .padding('4px 12px')
948
- .rounded('6px')
949
- .bold()
950
- .build();
951
-
952
- const format = `%c📁 ${label}`;
953
-
954
- if (collapsed) {
955
- console.groupCollapsed(format, groupStyle);
956
- } else {
957
- console.group(format, groupStyle);
958
- }
959
-
960
- this.groupDepth++;
961
- }
962
-
963
- /**
964
- * Finaliza el grupo actual de la consola
965
- *
966
- * @example
967
- * logger.group('Operaciones');
968
- * logger.info('Operación 1');
969
- * logger.info('Operación 2');
970
- * logger.groupEnd(); // Cierra el grupo
971
- *
972
- * @since 0.3.0
973
- */
974
- groupEnd(): void {
975
- if (this.groupDepth > 0) {
976
- console.groupEnd();
977
- this.groupDepth--;
978
- }
979
- }
980
-
981
- // ===== PERFORMANCE TIMING =====
982
-
983
- /**
984
- * Inicia un temporizador con la etiqueta dada
985
- *
986
- * @param {string} label - Etiqueta identificadora del temporizador
987
- *
988
- * @example
989
- * logger.time('proceso-datos');
990
- * // ... operación costosa ...
991
- * logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
992
- *
993
- * @since 0.3.0
994
- */
995
- time(label: string): void {
996
- const timer: TimerEntry = {
997
- label,
998
- startTime: performance.now(),
999
- };
1000
- this.timers.set(label, timer);
1001
-
1002
- const timerStyle = StylePresets.warning().build();
1003
- console.log(`%c⏱️ Timer started: ${label}`, timerStyle);
1004
- }
1005
-
1006
- /**
1007
- * Finaliza un temporizador y muestra el tiempo transcurrido
1008
- *
1009
- * @param {string} label - Etiqueta del temporizador a finalizar
1010
- *
1011
- * @example
1012
- * logger.time('consulta-db');
1013
- * await consultarBaseDatos();
1014
- * logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
1015
- *
1016
- * @since 0.3.0
1017
- */
1018
- timeEnd(label: string): void {
1019
- const timer = this.timers.get(label);
1020
- if (!timer) {
1021
- this.warn(`Timer '${label}' does not exist`);
1022
- return;
1023
- }
1024
-
1025
- const elapsed = performance.now() - timer.startTime;
1026
- this.timers.delete(label);
1027
-
1028
- const timerStyle = StylePresets.success().build();
1029
- console.log(`%c⏱️ Timer ended: ${label} - ${elapsed.toFixed(2)}ms`, timerStyle);
1030
- }
1031
-
1032
- // ===== ADVANCED VISUAL FEATURES =====
1033
-
1034
- /**
1035
- * Muestra un banner con el tipo especificado o configurado
1036
- *
1037
- * @param {BannerType} bannerType - Tipo de banner (opcional)
1038
- *
1039
- * @example
1040
- * logger.showBanner('ascii'); // Banner ASCII art
1041
- * logger.showBanner('unicode'); // Banner con caracteres Unicode
1042
- * logger.showBanner('svg'); // Banner con gráfico SVG
1043
- * logger.showBanner(); // Usa el tipo configurado
1044
- *
1045
- * @since 0.3.0
1046
- */
1047
- showBanner(bannerType?: BannerType): void {
1048
- const effectiveBannerType = bannerType ? bannerType : this.config.bannerType;
1049
- displayInitBanner(effectiveBannerType);
1050
- }
1051
-
1052
- /**
1053
- * Registra mensaje con imagen SVG de fondo
1054
- *
1055
- * @param {string} message - Mensaje a mostrar
1056
- * @param {string} svgContent - Contenido SVG personalizado (opcional)
1057
- * @param {StyleOptions} options - Opciones de estilo (ancho, alto, padding)
1058
- *
1059
- * @example
1060
- * // SVG automático con gradiente
1061
- * logger.logWithSVG('🎆 Bienvenido a Better Logger');
1062
- *
1063
- * @example
1064
- * // SVG personalizado
1065
- * const customSVG = '<svg>...</svg>';
1066
- * logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
1067
- *
1068
- * @since 0.3.0
1069
- */
1070
- logWithSVG(message: string, svgContent?: string, options: StyleOptions = {}): void {
1071
- const { width = 300, height = 60, padding = '30px 150px' } = options;
1072
-
1073
- let svgDataUri = '';
1074
- if (svgContent) {
1075
- const encodedSVG = encodeURIComponent(svgContent);
1076
- svgDataUri = `data:image/svg+xml,${encodedSVG}`;
1077
- } else {
1078
- const defaultSVG = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${width} ${height}'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' style='stop-color:%23667eea'/><stop offset='100%' style='stop-color:%23764ba2'/></linearGradient></defs><rect width='100%' height='100%' fill='url(%23grad)' rx='4'/><text x='${width/2}' y='${height/2 + 5}' text-anchor='middle' fill='white' font-family='monospace' font-size='14' font-weight='bold'>${message}</text></svg>`;
1079
- svgDataUri = `data:image/svg+xml,${encodeURIComponent(defaultSVG)}`;
1080
- }
1081
-
1082
- const svgStyle = new StyleBuilder()
1083
- .bg(`url("${svgDataUri}") no-repeat center center`)
1084
- .padding(padding)
1085
- .color('transparent')
1086
- .rounded('4px')
1087
- .build();
1088
-
1089
- console.log(`%c${message}`, svgStyle);
1090
- }
1091
-
1092
- /**
1093
- * Registra mensaje con gradiente animado de fondo
1094
- *
1095
- * @param {string} message - Mensaje a animar
1096
- * @param {number} duration - Duración de la animación en segundos (default: 3)
1097
- *
1098
- * @example
1099
- * logger.logAnimated('🌈 Animación en progreso');
1100
- * logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
1101
- *
1102
- * @since 0.3.0
1103
- */
1104
- logAnimated(message: string, duration: number = 3): void {
1105
- // Inject CSS animation if not already present
1106
- if (!document.getElementById('logger-animations')) {
1107
- const style = document.createElement('style');
1108
- style.id = 'logger-animations';
1109
- style.textContent = `
1110
- @keyframes loggerGradient {
1111
- 0% { background-position: 0% 50%; }
1112
- 50% { background-position: 100% 50%; }
1113
- 100% { background-position: 0% 50%; }
1114
- }
1115
- `;
1116
- document.head.appendChild(style);
1117
- }
1118
-
1119
- const animatedStyle = new StyleBuilder()
1120
- .bg('linear-gradient(-45deg, #667eea, #764ba2, #667eea, #764ba2)')
1121
- .css('background-size', '400% 400%')
1122
- .color('#ffffff')
1123
- .padding('12px 20px')
1124
- .rounded('8px')
1125
- .bold()
1126
- .font('Monaco, Consolas, monospace')
1127
- .animation(`loggerGradient ${duration}s ease infinite`)
1128
- .display('inline-block')
1129
- .build();
1130
-
1131
- console.log(`%c${message}`, animatedStyle);
1132
- }
1133
-
1134
- /**
1135
- * Agrupa logs por una propiedad específica usando Object.groupBy (cuando esté disponible)
1136
- *
1137
- * @param {T[]} items - Array de elementos a agrupar
1138
- * @param {Function} groupBy - Función que retorna la clave de agrupación
1139
- *
1140
- * @example
1141
- * const ventas = [
1142
- * { producto: 'Laptop', categoria: 'Electrónica', precio: 1200 },
1143
- * { producto: 'Mouse', categoria: 'Electrónica', precio: 25 },
1144
- * { producto: 'Libro', categoria: 'Literatura', precio: 15 }
1145
- * ];
1146
- * logger.logGrouped(ventas, item => item.categoria);
1147
- *
1148
- * @since 0.3.0
1149
- */
1150
- logGrouped<T>(items: T[], groupBy: (item: T) => string): void {
1151
- try {
1152
- // Use Object.groupBy if available (ES2024), otherwise fallback to reduce
1153
- let grouped: Record<string, T[]>;
1154
-
1155
- if ((Object as any).groupBy) {
1156
- grouped = (Object as any).groupBy(items, groupBy);
1157
- } else {
1158
- grouped = items.reduce((acc, item) => {
1159
- const key = groupBy(item);
1160
- if (!acc[key]) {
1161
- acc[key] = [];
1162
- }
1163
- acc[key].push(item);
1164
- return acc;
1165
- }, {} as Record<string, T[]>);
1166
- }
1167
-
1168
- Object.entries(grouped).forEach(([group, groupItems]) => {
1169
- this.group(`Group: ${group}`);
1170
- this.table(groupItems);
1171
- this.groupEnd();
1172
- });
1173
- } catch {
1174
- this.info('Grouped data:', items);
1175
- }
1176
- }
1177
-
1178
- // ===== CLI SYSTEM =====
1179
-
1180
- /**
1181
- * Procesador de comandos CLI para configuración y exportación del logger
1182
- *
1183
- * @param {string} command - Comando CLI a ejecutar
1184
- * @returns {Promise<void>}
1185
- *
1186
- * @example
1187
- * // Comandos disponibles
1188
- * await logger.cli('export json'); // Exporta logs en JSON
1189
- * await logger.cli('export csv'); // Exporta logs en CSV
1190
- * await logger.cli('theme list'); // Lista temas disponibles
1191
- * await logger.cli('theme set neon'); // Cambia al tema neon
1192
- * await logger.cli('config show'); // Muestra configuración actual
1193
- * await logger.cli('history clear'); // Limpia historial de logs
1194
- * await logger.cli('status'); // Muestra estado del logger
1195
- * await logger.cli('help'); // Muestra ayuda de comandos
1196
- *
1197
- * @since 0.3.0
1198
- */
1199
- async cli(command: string): Promise<void> {
1200
- if (!this.cliProcessor) {
1201
- this.error('CLI processor not initialized');
1202
- return;
1203
- }
1204
-
1205
- await this.cliProcessor.processCommand(command, this);
1206
- }
1207
- }
1208
-
1209
- /**
1210
- * Instancia singleton del logger con configuración por defecto
1211
- * @constant {Logger}
1212
- */
1213
- const defaultLogger = new Logger({
1214
- verbosity: 'info',
1215
- enableColors: true,
1216
- enableTimestamps: true,
1217
- enableStackTrace: true,
1218
- bufferSize: 1000, // Enable export functionality by default
1219
- });
1220
-
1221
- // Display initialization banner
1222
- displayInitBanner();
1223
-
1224
- // Export the singleton instance as default
1225
- export default defaultLogger;
1226
-
1227
- /**
1228
- * Métodos individuales exportados para conveniencia
1229
- * @description Todos los métodos están correctamente enlazados al singleton
1230
- * @since 0.3.0
1231
- */
1232
- export const debug = (...args: any[]) => defaultLogger.debug(...args);
1233
- export const info = (...args: any[]) => defaultLogger.info(...args);
1234
- export const warn = (...args: any[]) => defaultLogger.warn(...args);
1235
- export const error = (...args: any[]) => defaultLogger.error(...args);
1236
- export const success = (...args: any[]) => defaultLogger.success(...args);
1237
- export const trace = (...args: any[]) => defaultLogger.trace(...args);
1238
- export const critical = (...args: any[]) => defaultLogger.critical(...args);
1239
- export const table = (data: any, columns?: string[]) => defaultLogger.table(data, columns);
1240
- export const group = (label: string, collapsed?: boolean) => defaultLogger.group(label, collapsed);
1241
- export const groupEnd = () => defaultLogger.groupEnd();
1242
- export const time = (label: string) => defaultLogger.time(label);
1243
- export const timeEnd = (label: string) => defaultLogger.timeEnd(label);
1244
- export const setGlobalPrefix = (prefix: string) => defaultLogger.setGlobalPrefix(prefix);
1245
- export const setVerbosity = (level: Verbosity) => defaultLogger.setVerbosity(level);
1246
- export const addHandler = (handler: ILogHandler) => defaultLogger.addHandler(handler);
1247
- export const setTheme = (theme: ThemeVariant) => defaultLogger.setTheme(theme);
1248
- export const setBannerType = (bannerType: BannerType) => defaultLogger.setBannerType(bannerType);
1249
- export const showBanner = (bannerType?: BannerType) => defaultLogger.showBanner(bannerType);
1250
- export const logWithSVG = (message: string, svgContent?: string, options?: StyleOptions) =>
1251
- defaultLogger.logWithSVG(message, svgContent, options);
1252
- export const logAnimated = (message: string, duration?: number) =>
1253
- defaultLogger.logAnimated(message, duration);
1254
- export const cli = (command: string) => defaultLogger.cli(command);
1255
- export const cleanup = () => defaultLogger.cleanup();
1256
-
1257
- // Simplified API exports
1258
- export const preset = (name: string) => defaultLogger.preset(name);
1259
- export const presets = () => defaultLogger.presets();
1260
- export const hideTimestamp = () => defaultLogger.hideTimestamp();
1261
- export const showTimestamp = () => defaultLogger.showTimestamp();
1262
- export const hideLocation = () => defaultLogger.hideLocation();
1263
- export const showLocation = () => defaultLogger.showLocation();
1264
- export const hideBadges = () => defaultLogger.hideBadges();
1265
- export const showBadges = () => defaultLogger.showBadges();
1266
- export const component = (name: string) => defaultLogger.component(name);
1267
- export const api = (name: string) => defaultLogger.api(name);
1268
- export const scope = (name: string) => defaultLogger.scope(name);
1269
- export const customize = (overrides: any) => defaultLogger.customize(overrides);
1270
- export const styles = () => defaultLogger.styles();
1271
-
1272
- // Re-export handlers and utilities for backward compatibility
1273
- export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
1274
- export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
1275
- // Commented out to avoid circular dependency - import these directly from ScopedLogger.js if needed
1276
- // export { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';