@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-tKfBAWUM.js","names":[],"sources":["../../src/utils/stackTrace.ts","../../src/utils/timestamps.ts","../../src/constants.ts","../../src/utils/ansi-colors.ts","../../src/utils/output.ts","../../src/utils/formatting.ts"],"sourcesContent":["/**\n * @fileoverview Utilidades de parseo de stack traces para Advanced Logger\n */\n\nimport type { StackInfo } from '../types/index.js';\n\n/**\n * Comprueba si un nombre de archivo corresponde a un archivo minificado/bundle\n */\nfunction isMinifiedFile(filename: string): boolean {\n // Salta si el nombre contiene patrones de minificado\n const minifiedPatterns = [\n /\\.min\\.js$/,\n /\\.bundle\\.js$/,\n /\\.chunk\\.js$/,\n /-[\\w\\d]{8,}\\.js$/, // Nombres basados en hash\n /Logger-[A-Za-z0-9]+\\.js$/, // Bundles de Logger\n /node_modules/,\n /dist\\//,\n /build\\//,\n /\\.mjs$/\n ];\n\n return minifiedPatterns.some(pattern => pattern.test(filename));\n}\n\n/**\n * Extrae un nombre de archivo limpio a partir de la ruta completa\n */\nfunction extractCleanFilename(fullPath: string): string {\n // Extrae solo el nombre de archivo de la ruta completa\n const filename = fullPath.split(/[/\\\\]/).pop() || fullPath;\n\n // Elimina sufijos comunes de build/minificado\n return filename\n .replace(/\\.min\\.js$/, '.js')\n .replace(/\\.bundle\\.js$/, '.js')\n .replace(/\\.chunk\\.js$/, '.js')\n .replace(/-[\\w\\d]{8,}\\.js$/, '.js')\n .replace(/Logger-[A-Za-z0-9]+\\.js$/, 'logger.ts');\n}\n\n/**\n * Parsea el stack trace actual para extraer la información del caller\n */\nexport function parseStackTrace(): StackInfo | null {\n try {\n const stack = new Error().stack;\n if (!stack) {\n return null;\n }\n\n const lines = stack.split('\\n').filter(line => line.trim());\n\n // Busca el primer caller que no provenga de métodos de Logger\n for (let i = 1; i < lines.length; i++) {\n const line = lines[i];\n\n if (!line) {\n continue;\n }\n\n // Salta si la línea contiene métodos de Logger o parseStackTrace\n if (line.includes('parseStackTrace') ||\n line.includes('Logger.') ||\n line.includes('.log(') ||\n line.includes('createStyledOutput')) {\n continue;\n }\n\n // Parsea distintos formatos de stack trace\n let match;\n\n // Formato Chrome: \"at functionName (file:line:column)\" o \"at file:line:column\"\n const chromeMatch = line.match(/at\\s+(?:(.+?)\\s+\\()?(.+?):(\\d+):(\\d+)\\)?$/);\n if (chromeMatch) {\n const filename = chromeMatch[2];\n // Salta archivos minificados/bundle\n if (filename && isMinifiedFile(filename)) {\n continue;\n }\n match = chromeMatch;\n } else {\n // Formato Firefox: \"functionName@file:line:column\"\n const firefoxMatch = line.match(/(.+?)@(.+?):(\\d+):(\\d+)$/);\n if (firefoxMatch) {\n const filename = firefoxMatch[2];\n // Salta archivos minificados/bundle\n if (filename && isMinifiedFile(filename)) {\n continue;\n }\n match = firefoxMatch;\n } else {\n // Formato Safari/otros\n const safariMatch = line.match(/(\\S+)?@(.+?):(\\d+):(\\d+)$/);\n if (safariMatch) {\n const filename = safariMatch[2];\n // Salta archivos minificados/bundle\n if (filename && isMinifiedFile(filename)) {\n continue;\n }\n match = safariMatch;\n }\n }\n }\n\n if (!match) {\n continue;\n }\n\n const [, functionName, file, lineStr, columnStr] = match;\n\n if (!file) {\n continue;\n }\n\n // Usa la extracción limpia para evitar archivos minificados\n const cleanFileName = extractCleanFilename(file).split('?')[0];\n if (!cleanFileName) {\n continue;\n }\n\n // Parsea los números de línea y columna\n const lineNum = lineStr ? parseInt(lineStr, 10) : 0;\n const columnNum = columnStr ? parseInt(columnStr, 10) : 0;\n\n // Limpia el nombre de la función\n const cleanFunction = functionName && functionName.trim()\n ? functionName.trim()\n : undefined;\n \n return {\n file: cleanFileName ? cleanFileName : 'unknown',\n line: lineNum,\n column: columnNum,\n function: cleanFunction\n };\n }\n \n return null;\n } catch {\n return null;\n }\n}","/**\n * @fileoverview Timestamp utilities for Advanced Logger\n */\n\n/**\n * Formats the timestamp using modern Date API\n */\nexport function formatTimestamp(): string {\n try {\n // Use modern Temporal API if available, fallback to Date\n const now = new Date();\n return now.toISOString();\n } catch {\n return new Date().toISOString();\n }\n}","/**\n * @fileoverview Global constants for Advanced Logger\n */\n\nimport type { LogLevel, AdaptiveColors, CLILogLevel, Verbosity } from './types/index.js';\nimport type { LevelStyleConfig } from './utils/index.js';\n\n/**\n * Default configuration values\n */\nexport const DEFAULT_CONFIG = {\n verbosity: 'info' as const,\n enableColors: true,\n enableTimestamps: true,\n enableStackTrace: true,\n theme: 'default' as const,\n bannerType: 'simple' as const,\n bufferSize: 1000,\n autoDetectTheme: true,\n outputFormat: 'auto' as const,\n} as const;\n\n/**\n * Basic level styles for core module (minimal CSS styling)\n */\nexport const LEVEL_STYLES: Record<LogLevel | 'success', LevelStyleConfig> = {\n trace: {\n emoji: '🔬',\n label: 'TRACE',\n background: 'linear-gradient(90deg, #495057, #343a40)',\n color: '#dee2e6',\n border: '1px solid #495057',\n shadow: '0 1px 2px rgba(73, 80, 87, 0.3)'\n },\n debug: {\n emoji: '🔍',\n label: 'DEBUG',\n background: 'linear-gradient(90deg, #6c757d, #495057)',\n color: '#ffffff',\n border: '1px solid #6c757d',\n shadow: '0 2px 4px rgba(108, 117, 125, 0.3)'\n },\n info: {\n emoji: 'ℹ️',\n label: 'INFO',\n background: 'linear-gradient(90deg, #007bff, #0056b3)',\n color: '#ffffff',\n border: '1px solid #007bff',\n shadow: '0 2px 4px rgba(0, 123, 255, 0.3)'\n },\n warn: {\n emoji: '⚠️',\n label: 'WARN',\n background: 'linear-gradient(90deg, #ffc107, #e0a800)',\n color: '#000000',\n border: '1px solid #ffc107',\n shadow: '0 2px 4px rgba(255, 193, 7, 0.3)'\n },\n error: {\n emoji: '❌',\n label: 'ERROR',\n background: 'linear-gradient(90deg, #dc3545, #c82333)',\n color: '#ffffff',\n border: '1px solid #dc3545',\n shadow: '0 2px 4px rgba(220, 53, 69, 0.3)'\n },\n critical: {\n emoji: '🚨',\n label: 'CRITICAL',\n background: 'linear-gradient(90deg, #8B0000, #FF0000)',\n color: '#ffffff',\n border: '2px solid #FF0000',\n shadow: '0 4px 8px rgba(255, 0, 0, 0.4)'\n },\n success: {\n emoji: '✅',\n label: 'SUCCESS',\n background: 'linear-gradient(90deg, #28a745, #1e7e34)',\n color: '#ffffff',\n border: '1px solid #28a745',\n shadow: '0 2px 4px rgba(40, 167, 69, 0.3)'\n }\n} as const;\n\n/**\n * Time parsing constants for relative time filters\n */\nexport const TIME_UNITS = {\n ms: 1,\n s: 1000,\n m: 60 * 1000,\n h: 60 * 60 * 1000,\n d: 24 * 60 * 60 * 1000,\n} as const;\n\n/**\n * Export format definitions with extensions\n */\nexport const EXPORT_FORMATS = {\n json: { extension: '.json', mimeType: 'application/json' },\n csv: { extension: '.csv', mimeType: 'text/csv' },\n markdown: { extension: '.md', mimeType: 'text/markdown' },\n plain: { extension: '.txt', mimeType: 'text/plain' },\n html: { extension: '.html', mimeType: 'text/html' },\n} as const;\n\n/**\n * Adaptive color configurations for DevTools theme compatibility\n */\nexport const ADAPTIVE_COLORS = {\n timestamp: {\n light: '#666666',\n dark: '#a0a0a0',\n },\n messageText: {\n light: '#2d3748',\n dark: '#f7fafc',\n },\n prefix: {\n light: '#2d3748',\n dark: '#e2e8f0',\n },\n prefixBackground: {\n light: '#2d3748',\n dark: '#4a5568',\n },\n location: {\n light: '#718096',\n dark: '#a0aec0',\n },\n} as const satisfies Record<string, AdaptiveColors>;\n\n/**\n * CLI log level to internal verbosity mapping\n */\nexport const CLI_LEVEL_MAP: Record<CLILogLevel, { verbosity: Verbosity; showPrimitives: boolean }> = {\n silent: { verbosity: 'silent', showPrimitives: false },\n quiet: { verbosity: 'error', showPrimitives: false },\n normal: { verbosity: 'info', showPrimitives: true },\n verbose: { verbosity: 'debug', showPrimitives: true },\n debug: { verbosity: 'debug', showPrimitives: true },\n} as const;","/**\n * @fileoverview Utilidades de colores ANSI para entornos de terminal\n */\n\nimport type { LogLevel } from '../types/index.js';\nimport { supportsANSI } from './environment-detector.js';\n\n/**\n * Códigos de color ANSI para estilos en terminal\n */\nexport const ANSI_CODES = {\n // Colors\n black: 30,\n red: 31,\n green: 32,\n yellow: 33,\n blue: 34,\n magenta: 35,\n cyan: 36,\n white: 37,\n\n // Bright colors\n brightBlack: 90,\n brightRed: 91,\n brightGreen: 92,\n brightYellow: 93,\n brightBlue: 94,\n brightMagenta: 95,\n brightCyan: 96,\n brightWhite: 97,\n\n // Background colors\n bgBlack: 40,\n bgRed: 41,\n bgGreen: 42,\n bgYellow: 43,\n bgBlue: 44,\n bgMagenta: 45,\n bgCyan: 46,\n bgWhite: 47,\n\n // Background bright colors\n bgBrightBlack: 100,\n bgBrightRed: 101,\n bgBrightGreen: 102,\n bgBrightYellow: 103,\n bgBrightBlue: 104,\n bgBrightMagenta: 105,\n bgBrightCyan: 106,\n bgBrightWhite: 107,\n\n // Styles\n reset: 0,\n bold: 1,\n dim: 2,\n italic: 3,\n underline: 4,\n blink: 5,\n inverse: 7,\n hidden: 8,\n strikethrough: 9,\n\n // Reset specific\n resetBold: 22,\n resetDim: 22,\n resetItalic: 23,\n resetUnderline: 24,\n resetBlink: 25,\n resetInverse: 27,\n resetHidden: 28,\n resetStrikethrough: 29\n} as const;\n\n/**\n * Presets de colores ANSI para los distintos niveles de log\n */\nexport const ANSI_LEVEL_STYLES: Record<LogLevel | 'success', {\n color: number;\n background?: number;\n styles: number[];\n emoji: string;\n}> = {\n trace: {\n color: ANSI_CODES.brightBlack,\n styles: [ANSI_CODES.dim],\n emoji: '🔬'\n },\n debug: {\n color: ANSI_CODES.brightBlack,\n styles: [ANSI_CODES.dim],\n emoji: '🔍'\n },\n info: {\n color: ANSI_CODES.blue,\n styles: [ANSI_CODES.bold],\n emoji: 'ℹ️'\n },\n warn: {\n color: ANSI_CODES.yellow,\n background: ANSI_CODES.bgYellow,\n styles: [ANSI_CODES.bold, ANSI_CODES.black],\n emoji: '⚠️'\n },\n error: {\n color: ANSI_CODES.red,\n background: ANSI_CODES.bgRed,\n styles: [ANSI_CODES.bold],\n emoji: '❌'\n },\n critical: {\n color: ANSI_CODES.white,\n background: ANSI_CODES.bgRed,\n styles: [ANSI_CODES.bold, ANSI_CODES.blink],\n emoji: '🚨'\n },\n success: {\n color: ANSI_CODES.green,\n background: ANSI_CODES.bgGreen,\n styles: [ANSI_CODES.bold],\n emoji: '✅'\n }\n};\n\n/**\n * Crea una secuencia de escape ANSI\n */\nfunction ansi(code: number | number[]): string {\n const codes = Array.isArray(code) ? code : [code];\n return `\\x1b[${codes.join(';')}m`;\n}\n\n/**\n * Aplica estilos ANSI al texto\n */\nexport function ansiStyle(text: string, codes: number[]): string {\n if (!supportsANSI()) return text;\n return `${ansi(codes)}${text}${ansi(ANSI_CODES.reset)}`;\n}\n\n/**\n * Aplica color al texto\n */\nexport function ansiColor(text: string, color: number): string {\n return ansiStyle(text, [color]);\n}\n\n/**\n * Aplica color de fondo al texto\n */\nexport function ansiBackground(text: string, bg: number, color?: number): string {\n if (color) {\n return ansiStyle(text, [color, bg]);\n }\n return ansiStyle(text, [bg]);\n}\n\n/**\n * Pone el texto en bold\n */\nexport function ansiBold(text: string): string {\n return ansiStyle(text, [ANSI_CODES.bold]);\n}\n\n/**\n * Aplica dim al texto\n */\nexport function ansiDim(text: string): string {\n return ansiStyle(text, [ANSI_CODES.dim]);\n}\n\n/**\n * Subraya el texto\n */\nexport function ansiUnderline(text: string): string {\n return ansiStyle(text, [ANSI_CODES.underline]);\n}\n\n/**\n * Formatters especializados para distintos contextos\n */\n\n/**\n * Formatea el timestamp para terminal\n */\nexport function formatTimestampANSI(timestamp: string): string {\n return ansiColor(timestamp, ANSI_CODES.brightBlack);\n}\n\n/**\n * Formatea el nivel de log para terminal\n */\nexport function formatLogLevelANSI(level: LogLevel, useEmojis: boolean = true): string {\n const style = ANSI_LEVEL_STYLES[level];\n const emoji = useEmojis ? style.emoji : '';\n const label = level.toUpperCase().padEnd(8);\n\n if (!supportsANSI()) {\n return `${emoji} ${label}`;\n }\n\n let codes = [style.color, ...style.styles];\n if (style.background) {\n codes.push(style.background);\n }\n\n return ansiStyle(`${emoji} ${label}`, codes);\n}\n\n/**\n * Formatea el mensaje de success para terminal\n */\nexport function formatSuccessANSI(message: string, useEmojis: boolean = true): string {\n const style = ANSI_LEVEL_STYLES.success;\n const emoji = useEmojis ? style.emoji : '';\n\n if (!supportsANSI()) {\n return `${emoji} SUCCESS: ${message}`;\n }\n\n const prefix = ansiStyle(`${emoji} SUCCESS:`, [style.color, ...style.styles]);\n return `${prefix} ${message}`;\n}\n\n/**\n * Formatea el prefix para terminal\n */\nexport function formatPrefixANSI(prefix: string): string {\n if (!supportsANSI()) {\n return `[${prefix}]`;\n }\n\n return ansiStyle(`[${prefix}]`, [ANSI_CODES.cyan, ANSI_CODES.bold]);\n}\n\n/**\n * Formatea la ubicación del archivo para terminal\n */\nexport function formatLocationANSI(location: string): string {\n if (!supportsANSI()) {\n return `(${location})`;\n }\n\n return ansiColor(`(${location})`, ANSI_CODES.brightBlack);\n}","/**\n * @fileoverview Utilidades para crear output estilizado para Advanced Logger\n */\n\nimport type { LogLevel, StackInfo, DevToolsTheme, AdaptiveColors } from '../types/index.js';\nimport { formatTimestamp } from './timestamps.js';\nimport { StyleBuilder } from '../styling/index.js';\nimport { ADAPTIVE_COLORS } from '../constants.js';\nimport { getEnvironment, supportsANSI } from './environment-detector.js';\nimport { formatLogLevelANSI, formatTimestampANSI, formatPrefixANSI, formatLocationANSI } from './ansi-colors.js';\nimport type { LogStyles } from '../types/index.js';\n\n/**\n * Configuración de estilo para cada nivel de log\n */\nexport interface LevelStyleConfig {\n emoji: string;\n label: string;\n background: string;\n color: string;\n border: string;\n shadow: string;\n}\n\n/**\n * Detecta la preferencia de theme actual de DevTools\n */\nexport function detectDevToolsTheme(): DevToolsTheme {\n try {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return 'light'; // Fallback seguro para SSR o browsers antiguos\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n return mediaQuery.matches ? 'dark' : 'light';\n } catch (error) {\n console.warn('Failed to detect DevTools theme:', error);\n return 'light'; // Fallback al theme light\n }\n}\n\n/**\n * Obtiene el color adaptativo según el theme actual de DevTools\n */\nexport function getAdaptiveColor(colors: AdaptiveColors, theme?: DevToolsTheme): string {\n const currentTheme = theme ?? detectDevToolsTheme();\n return colors[currentTheme];\n}\n\n/**\n * Registra un listener de cambios de theme para actualizaciones dinámicas\n */\nexport function setupThemeChangeListener(callback: (theme: DevToolsTheme) => void): (() => void) | null {\n try {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return null;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches ? 'dark' : 'light');\n };\n\n // Usa addEventListener si está disponible, fallback a addListener\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n } else if (mediaQuery.addListener) {\n mediaQuery.addListener(handler);\n return () => mediaQuery.removeListener?.(handler);\n }\n\n return null;\n } catch (error) {\n console.warn('Failed to set up theme change listener:', error);\n return null;\n }\n}\n\n\n/**\n * Crea output estilizado para consola con múltiples formatters `%c`\n * Se adapta automáticamente al entorno (browser o terminal)\n */\nexport function createStyledOutput(\n level: LogLevel,\n levelStyles: Record<LogLevel | 'success', LevelStyleConfig>,\n prefix: string | undefined,\n message: string,\n stackInfo: StackInfo | null,\n autoDetectTheme: boolean = true,\n presetStyles?: LogStyles,\n presetName?: string\n): [string, ...string[]] {\n const levelConfig = levelStyles[level] ?? {\n emoji: '📝',\n label: level.toUpperCase(),\n background: '#6c757d',\n color: '#ffffff',\n border: '1px solid #6c757d',\n shadow: 'none'\n };\n const timestamp = formatTimestamp();\n const environment = getEnvironment();\n\n // Comprueba si se debe usar rendering en terminal\n if (environment !== 'browser' && supportsANSI()) {\n return createTerminalOutput(level, message, timestamp, prefix, stackInfo);\n }\n\n // Rendering en browser (lógica existente)\n const currentTheme = autoDetectTheme ? detectDevToolsTheme() : 'light';\n\n // Estilos base con colores adaptativos\n const timestampStyle = new StyleBuilder()\n .color(getAdaptiveColor(ADAPTIVE_COLORS.timestamp, currentTheme))\n .size('11px')\n .font('Monaco, Consolas, monospace')\n .build();\n\n const levelStyle = new StyleBuilder()\n .bg(levelConfig.background)\n .color(levelConfig.color)\n .border(levelConfig.border)\n .shadow(levelConfig.shadow)\n .padding('2px 8px')\n .rounded('4px')\n .bold()\n .font('Monaco, Consolas, monospace')\n .size('12px')\n .build();\n\n const prefixStyle = new StyleBuilder()\n .bg(getAdaptiveColor(ADAPTIVE_COLORS.prefixBackground, currentTheme))\n .color(getAdaptiveColor(ADAPTIVE_COLORS.prefix, currentTheme))\n .padding('2px 6px')\n .rounded('3px')\n .bold()\n .font('Monaco, Consolas, monospace')\n .size('11px')\n .build();\n\n const messageStyle = new StyleBuilder()\n .color(getAdaptiveColor(ADAPTIVE_COLORS.messageText, currentTheme))\n .font('system-ui, -apple-system, sans-serif')\n .size('14px')\n .build();\n\n const locationStyle = new StyleBuilder()\n .color(getAdaptiveColor(ADAPTIVE_COLORS.location, currentTheme))\n .size('11px')\n .font('Monaco, Consolas, monospace')\n .build();\n\n // Construye el format string y los estilos\n let format = `%c${timestamp.slice(11, 23)} %c${levelConfig.emoji} ${levelConfig.label}`;\n const styles = [timestampStyle, levelStyle];\n\n if (prefix) {\n format += ` %c${prefix}`;\n styles.push(prefixStyle);\n }\n\n format += ` %c${message}`;\n styles.push(messageStyle);\n\n if (stackInfo) {\n format += ` %c(${stackInfo.file}:${stackInfo.line}:${stackInfo.column})`;\n styles.push(locationStyle);\n }\n\n return [format, ...styles];\n}\n\n/**\n * Construye una línea apta para terminal usando los helpers ANSI. Se usa\n * cuando el runtime no es browser pero soporta códigos ANSI (TTY, terminal moderna).\n *\n * Layout: `[HH:MM:SS.mmm] [LEVEL] [prefix] message (file:line)`\n */\nexport function createTerminalOutput(\n level: LogLevel,\n message: string,\n timestamp?: string,\n prefix?: string,\n stackInfo?: StackInfo | null\n): [string, ...string[]] {\n const ts = timestamp?.slice(11, 23) ?? '';\n const location = stackInfo ? `${stackInfo.file}:${stackInfo.line}:${stackInfo.column}` : undefined;\n\n const parts: string[] = [];\n parts.push(formatTimestampANSI(`[${ts}]`));\n parts.push(formatLogLevelANSI(level));\n if (prefix) parts.push(formatPrefixANSI(prefix));\n parts.push(message);\n if (location) parts.push(formatLocationANSI(`(${location})`));\n\n return [parts.join(' ') + '\\n'];\n}","/**\n * @fileoverview Utilidades de formatting para Universal Logger\n */\n\nimport type { LogLevel, StackInfo } from '../types/index.js';\nimport { formatTimestamp } from './timestamps.js';\n\n// Re-export del tipo por conveniencia\nexport type { OutputFormat } from '../types/index.js';\n\n/**\n * Crea output en texto plano para cualquier entorno\n * Sin colores ni estilos — máxima compatibilidad\n */\nexport function createPlainOutput(\n level: LogLevel,\n message: string,\n prefix?: string,\n stackInfo?: StackInfo | null\n): string {\n const timestamp = formatTimestamp();\n const timeStr = timestamp.slice(11, 23); // HH:MM:SS.mmm\n\n let output = `[${timeStr}] [${level.toUpperCase()}]`;\n\n if (prefix) {\n output += ` [${prefix}]`;\n }\n\n output += ` ${message}`;\n\n if (stackInfo) {\n output += ` (${stackInfo.file}:${stackInfo.line}:${stackInfo.column})`;\n }\n\n return output;\n}\n\n/**\n * Obtiene el método de console adecuado para el nivel\n * Usa distintos métodos de console para mejor semántica\n */\nexport function getConsoleMethod(level: LogLevel): 'log' | 'info' | 'warn' | 'error' {\n switch (level) {\n case 'debug':\n return 'log';\n case 'info':\n return 'info';\n case 'warn':\n return 'warn';\n case 'error':\n case 'critical':\n return 'error';\n default:\n return 'log';\n }\n}\n\n/**\n * Crea un objeto simple de log entry para los handlers\n */\nexport function createLogEntry(\n level: LogLevel,\n message: string,\n args: any[],\n prefix?: string,\n stackInfo?: StackInfo | null\n) {\n return {\n timestamp: formatTimestamp(),\n level: level.toUpperCase(),\n prefix,\n message,\n args: args.slice(1), // Excluye el primer argumento (el mensaje)\n location: stackInfo ? {\n file: stackInfo.file,\n line: stackInfo.line,\n column: stackInfo.column,\n function: stackInfo.function\n } : undefined,\n raw: args\n };\n}\n\n/**\n * Formatea datos para visualización en tabla como texto plano\n */\nexport function formatTablePlain(data: any, columns?: string[]): string {\n try {\n if (Array.isArray(data)) {\n if (data.length === 0) return '[Empty Array]';\n\n // Formateo simple de array\n if (typeof data[0] !== 'object') {\n return data.map((item, i) => `${i}: ${item}`).join('\\n');\n }\n\n // Formateo de array de objetos\n const keys = columns || Object.keys(data[0] || {});\n const header = keys.join('\\t');\n const rows = data.map(item =>\n keys.map(key => String(item[key] || '')).join('\\t')\n );\n\n return [header, ...rows].join('\\n');\n }\n\n if (typeof data === 'object' && data !== null) {\n // Formateo simple de objeto\n return Object.entries(data)\n .map(([key, value]) => `${key}: ${value}`)\n .join('\\n');\n }\n\n return String(data);\n } catch (error) {\n return `[Error al formatear la tabla: ${error}]`;\n }\n}\n\n/**\n * Serialización segura de objetos para logging\n */\nexport function safeSerialize(obj: any, maxDepth: number = 3, currentDepth: number = 0): any {\n if (currentDepth >= maxDepth) {\n return '[Max Depth Reached]';\n }\n\n if (obj === null) return null;\n if (obj === undefined) return '[undefined]';\n if (typeof obj === 'function') return '[Function]';\n if (obj instanceof Error) return `[Error: ${obj.message}]`;\n if (obj instanceof Date) return obj.toISOString();\n if (typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map(item => safeSerialize(item, maxDepth, currentDepth + 1));\n }\n\n const result: any = {};\n for (const [key, value] of Object.entries(obj)) {\n result[key] = safeSerialize(value, maxDepth, currentDepth + 1);\n }\n return result;\n}"],"mappings":"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"}
@@ -1,31 +1,82 @@
1
1
  /**
2
- * @fileoverview CLI Command processor for Advanced Logger
2
+ * @fileoverview Procesador central del CLI del logger. Resuelve comandos,
3
+ * despacha ejecución, mantiene historial y soporta plugins. No es un binario
4
+ * standalone: se invoca vía `logger.cli()` o `window.cli()` en browser.
3
5
  */
4
6
  import type { Logger } from '../Logger.js';
5
7
  /**
6
- * Base interface for CLI commands
8
+ * Comando del CLI del logger. Cada implementación se registra en un
9
+ * {@link CommandProcessor} para ser invocable vía `/name` desde la consola
10
+ * del navegador o cualquier host interactivo.
11
+ *
12
+ * @see {@link CommandProcessor.registerCommand}
13
+ * @see {@link HelpCommand}
7
14
  */
8
15
  export interface ICommand {
16
+ /** Nombre canónico del comando, sin la barra inicial `/`. Debe ser único. */
9
17
  name: string;
18
+ /** Descripción corta humana; la usa el sistema de help. */
10
19
  description: string;
20
+ /** Sintaxis de uso mostrada en `/help`, p.ej. `/export <format>`. */
11
21
  usage: string;
22
+ /** Agrupación opcional para el help (`Configuration`, `Export`, ...). */
12
23
  category?: string;
24
+ /** Nombres alternativos sin la `/`; se resuelven al comando real. */
13
25
  aliases?: string[];
26
+ /**
27
+ * Ejecuta el comando. Recibe los argumentos como string plano (todo lo
28
+ * posterior al primer token, re-joined con espacios) y el {@link Logger}
29
+ * activo para emitir output.
30
+ *
31
+ * @param args - Argumentos del comando (string), puede ser `''`.
32
+ * @param logger - Logger activo.
33
+ */
14
34
  execute(args: string, logger: Logger): void | Promise<void>;
15
35
  }
16
36
  /**
17
- * Plugin interface for extending CLI functionality
37
+ * Plugin de CLI: agrupa uno o más {@link ICommand} con lifecycle
38
+ * `initialize`/`cleanup`. Permite a terceros empaquetar funcionalidad
39
+ * extendida (ej: integración con un dashboard, transport custom) y
40
+ * registrarla de golpe vía {@link CommandProcessor.registerPlugin}.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const telemetryPlugin: ICLIPlugin = {
45
+ * name: 'telemetry',
46
+ * version: '1.0.0',
47
+ * description: 'Comandos de telemetría',
48
+ * commands: [new TelemetryDumpCommand()],
49
+ * initialize(processor, logger) {
50
+ * logger.info('telemetry plugin cargado');
51
+ * },
52
+ * cleanup() {
53
+ * // liberar suscripciones/recursos
54
+ * }
55
+ * };
56
+ * processor.registerPlugin(telemetryPlugin, logger);
57
+ * ```
58
+ *
59
+ * @see {@link CommandProcessor.registerPlugin}
18
60
  */
19
61
  export interface ICLIPlugin {
62
+ /** Identificador único del plugin. */
20
63
  name: string;
64
+ /** Versión semántica del plugin. */
21
65
  version: string;
66
+ /** Descripción humana corta. */
22
67
  description: string;
68
+ /** Comandos que el plugin aporta al registry al registrarse. */
23
69
  commands: ICommand[];
70
+ /** Hook opcional llamado tras el registro — útil para suscribirse a eventos del processor. */
24
71
  initialize?(processor: CommandProcessor, logger: Logger): void;
72
+ /** Hook opcional llamado al desregistrar el plugin — liberar recursos. */
25
73
  cleanup?(): void;
26
74
  }
27
75
  /**
28
- * Command history entry
76
+ * Entrada del historial de comandos ejecutados. No se exporta; solo circula
77
+ * internamente entre {@link CommandProcessor.getHistory} y el storage privado.
78
+ *
79
+ * @internal
29
80
  */
30
81
  interface HistoryEntry {
31
82
  command: string;
@@ -33,7 +84,34 @@ interface HistoryEntry {
33
84
  success: boolean;
34
85
  }
35
86
  /**
36
- * CLI command processor
87
+ * Procesador central del CLI del logger. Resuelve nombres de comando (con
88
+ * aliases), despacha ejecución, mantiene historial acotado (max 100 entradas)
89
+ * y soporta un sistema de plugins para extensión de terceros.
90
+ *
91
+ * No es un binario standalone: se invoca desde la consola del navegador vía
92
+ * `window.cli("<command>")` (modo interactivo habilitado por
93
+ * {@link enterInteractiveMode}) o desde código vía `logger.cli()`. El
94
+ * constructor no registra ningún comando por defecto — usar
95
+ * {@link createDefaultCLI} para obtener una instancia con los 8 comandos
96
+ * estándar ya cargados.
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * const cli = createDefaultCLI();
101
+ * await cli.processCommand('/themes', logger);
102
+ * await cli.processCommand('/config theme=neon', logger);
103
+ * ```
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * // Modo interactivo: expone `window.cli` en el navegador
108
+ * cli.enterInteractiveMode(logger);
109
+ * // Desde la devtools: cli('help') → procesa '/help'
110
+ * ```
111
+ *
112
+ * @see {@link createDefaultCLI}
113
+ * @see {@link ICommand}
114
+ * @see {@link ICLIPlugin}
37
115
  */
38
116
  export declare class CommandProcessor {
39
117
  private commands;
@@ -43,59 +121,128 @@ export declare class CommandProcessor {
43
121
  private maxHistorySize;
44
122
  private isInteractiveMode;
45
123
  /**
46
- * Register a command
124
+ * Registra un comando. Si el comando declara `aliases`, también se indexan
125
+ * para resolución. Un comando con el mismo `name` sobreescribe al previo.
126
+ *
127
+ * @param {ICommand} command - Comando a registrar.
128
+ * @see {@link ICommand}
47
129
  */
48
130
  registerCommand(command: ICommand): void;
49
131
  /**
50
- * Register a plugin
132
+ * Registra un plugin: indexa todos sus commands y, si el plugin define
133
+ * `initialize`, lo invoca con el processor y el logger. Los comandos del
134
+ * plugin se registran vía {@link registerCommand} y sus aliases quedan
135
+ * resolvibles igual que los directos.
136
+ *
137
+ * @param {ICLIPlugin} plugin - Plugin a registrar.
138
+ * @param {Logger} [logger] - Logger activo; requerido solo si el plugin define `initialize`.
139
+ * @throws {Error} Si ya existe un plugin registrado con el mismo `name`.
140
+ * @see {@link unregisterPlugin}
51
141
  */
52
142
  registerPlugin(plugin: ICLIPlugin, logger?: Logger): void;
53
143
  /**
54
- * Unregister a plugin
144
+ * Desregistra un plugin por nombre: elimina todos sus commands (y los
145
+ * aliases que aportasen), invoca su hook `cleanup` si existe y lo quita
146
+ * del registry. No-op si el nombre no existe.
147
+ *
148
+ * @param {string} pluginName - Nombre del plugin a desregistrar.
149
+ * @see {@link registerPlugin}
55
150
  */
56
151
  unregisterPlugin(pluginName: string): void;
57
152
  /**
58
- * Get all registered commands
153
+ * Lista todos los commands registrados (directamente o vía plugins).
154
+ * No incluye aliases.
155
+ *
156
+ * @returns {ICommand[]} Snapshot array de los commands registrados.
59
157
  */
60
158
  getCommands(): ICommand[];
61
159
  /**
62
- * Get a specific command
160
+ * Resuelve un comando por nombre canónico o alias. Devuelve `undefined`
161
+ * si no existe ninguno que matchee.
162
+ *
163
+ * @param {string} name - Nombre canónico o alias del comando.
164
+ * @returns {ICommand | undefined} El comando resuelto, o `undefined`.
63
165
  */
64
166
  getCommand(name: string): ICommand | undefined;
65
167
  /**
66
- * Get command history
168
+ * Devuelve una copia del historial de comandos ejecutados (más recientes
169
+ * primero). Acotado a 100 entradas por {@link maxHistorySize}; las más
170
+ * viejas se descartan al insertar nuevas.
171
+ *
172
+ * @returns {HistoryEntry[]} Snapshot del historial; mutar el array devuelto
173
+ * no afecta al estado interno del processor.
67
174
  */
68
175
  getHistory(): HistoryEntry[];
69
176
  /**
70
- * Clear command history
177
+ * Vacía el historial de comandos en memoria.
71
178
  */
72
179
  clearHistory(): void;
73
180
  /**
74
- * Get registered plugins
181
+ * Lista los plugins actualmente registrados.
182
+ *
183
+ * @returns {ICLIPlugin[]} Snapshot array de plugins activos.
75
184
  */
76
185
  getPlugins(): ICLIPlugin[];
77
186
  /**
78
- * Enter interactive mode
187
+ * Activa el modo interactivo. Marca el flag interno y, si se ejecuta en
188
+ * navegador, expone `window.cli(command)` para invocar comandos desde la
189
+ * devtools sin prefijo `/` (se añade automáticamente al input).
190
+ *
191
+ * @param {Logger} logger - Logger activo (emite el mensaje de bienvenida
192
+ * con hint sobre `cli(...)` en browser).
193
+ * @see {@link exitInteractiveMode}
79
194
  */
80
195
  enterInteractiveMode(logger: Logger): void;
81
196
  /**
82
- * Exit interactive mode
197
+ * Desactiva el flag de modo interactivo. Nota: no elimina el `window.cli`
198
+ * que {@link enterInteractiveMode} haya expuesto en el navegador — el
199
+ * handler global sigue vivo hasta reload.
200
+ *
201
+ * @see {@link enterInteractiveMode}
83
202
  */
84
203
  exitInteractiveMode(): void;
85
204
  /**
86
- * Setup browser interactive mode
205
+ * Instala `window.cli(command)` como wrapper delgado alrededor de
206
+ * {@link processCommand}, prefijando `/` automáticamente. Solo se invoca
207
+ * desde {@link enterInteractiveMode} cuando `window` está disponible.
208
+ *
209
+ * @internal
210
+ * @param logger - Logger activo, reenviado a cada invocación.
87
211
  */
88
212
  private setupBrowserInteractiveMode;
89
213
  /**
90
- * Process a CLI command
214
+ * Parsea y ejecuta un comando. El formato esperado es `/name args...`:
215
+ * split por espacios, primer token = nombre del comando, resto = args
216
+ * (re-joined con espacios). Si el comando no existe, loguea el error y
217
+ * sugiere similares vía {@link getSuggestions} ("Did you mean: ...?").
218
+ *
219
+ * Toda invocación (válida o no) se registra en el historial con flag de
220
+ * éxito/fallo según si `execute` resolvió o throweó.
221
+ *
222
+ * @param {string} commandString - Comando completo, debe empezar con `/`.
223
+ * @param {Logger} logger - Logger activo para output y errores.
224
+ * @returns {Promise<void>} Resuelve cuando el comando termina (sync o async).
225
+ * Nunca rechaza: los errores de `execute` se capturan y se loguean.
226
+ * @see {@link ICommand.execute}
227
+ * @see {@link getSuggestions}
91
228
  */
92
229
  processCommand(commandString: string, logger: Logger): Promise<void>;
93
230
  /**
94
- * Add command to history
231
+ * Inserta una entrada al frente del historial y trunca a
232
+ * {@link maxHistorySize} (100) si hace falta.
233
+ *
234
+ * @internal
235
+ * @param command - String crudo del comando ejecutado.
236
+ * @param success - Si la ejecución tuvo éxito.
95
237
  */
96
238
  private addToHistory;
97
239
  /**
98
- * Get command suggestions for partial matches
240
+ * Devuelve nombres de comando que empiezan con el prefijo dado. Alimente
241
+ * el hint "Did you mean" de {@link processCommand} cuando un comando no
242
+ * se encuentra. Match por `startsWith` (no fuzzy).
243
+ *
244
+ * @param {string} partial - Prefijo parcial tipeado por el usuario.
245
+ * @returns {string[]} Nombres canónicos que matchean; aliases excluidos.
99
246
  */
100
247
  getSuggestions(partial: string): string[];
101
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommandProcessor.d.ts","sourceRoot":"","sources":["../../src/cli/CommandProcessor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,UAAU,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,OAAO,CAAC,IAAI,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,iBAAiB,CAAkB;IAE3C;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAWxC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBzD;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAsB1C;;OAEG;IACH,WAAW,IAAI,QAAQ,EAAE;IAIzB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAc9C;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAU1C;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IASnC;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1E;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;CAI5C"}
1
+ {"version":3,"file":"CommandProcessor.d.ts","sourceRoot":"","sources":["../../src/cli/CommandProcessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACrB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,UAAU;IACvB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,8FAA8F;IAC9F,UAAU,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,0EAA0E;IAC1E,OAAO,CAAC,IAAI,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,iBAAiB,CAAkB;IAE3C;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAWxC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBzD;;;;;;;OAOG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAsB1C;;;;;OAKG;IACH,WAAW,IAAI,QAAQ,EAAE;IAIzB;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAc9C;;;;;;;OAOG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B;;;;;;;;OAQG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAU1C;;;;;;OAMG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IASnC;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1E;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;CAI5C"}
@@ -4,12 +4,47 @@
4
4
  import type { ICommand } from '../CommandProcessor.js';
5
5
  import type { Logger } from '../../Logger.js';
6
6
  /**
7
- * Configuration command handler
7
+ * Comando `/config` del CLI runtime del {@link Logger}. Inspecciona o muta
8
+ * la configuración del logger en vivo desde la DevTools console.
9
+ *
10
+ * Acepta tres modos de invocación:
11
+ * - Sin argumentos: vuelca el estado actual como tabla agrupada.
12
+ * - JSON completo (empieza con `{`): aplica un objeto de configuración parcial.
13
+ * - Pares `key=value` separados por coma: atajo para mutaciones puntuales.
14
+ *
15
+ * Solo se aplican las keys de la whitelist interna (`theme`, `verbosity`,
16
+ * `enableColors`, `enableTimestamps`, `enableStackTrace`, `globalPrefix`,
17
+ * `bannerType`); cualquier otra key se rechaza con un `warn` y se ignora.
18
+ *
19
+ * @example
20
+ * // Sin argumentos: ver estado actual
21
+ * // > /config
22
+ *
23
+ * @example
24
+ * // Objeto JSON completo
25
+ * // > /config {"theme":"neon","verbosity":"debug"}
26
+ *
27
+ * @example
28
+ * // Atajo key=value (múltiples pares separados por coma)
29
+ * // > /config theme=neon,verbosity=debug,globalPrefix=MiApp
30
+ *
31
+ * @see {@link ICommand} para el contrato que implementa este comando.
32
+ * @see {@link Logger.setTheme}, {@link Logger.setVerbosity},
33
+ * {@link Logger.setBannerType}, {@link Logger.setGlobalPrefix}
34
+ * para los setters subyacentes.
8
35
  */
9
36
  export declare class ConfigCommand implements ICommand {
10
37
  name: string;
11
38
  description: string;
12
39
  usage: string;
40
+ /**
41
+ * Ejecuta el comando `/config` contra el logger dado.
42
+ *
43
+ * @param args - Argumentos crudos del usuario. Vacío = status; con `{`
44
+ * inicial = parse JSON; resto = pares `key=value` separados
45
+ * por coma.
46
+ * @param logger - Instancia destino cuyos setters se invocan.
47
+ */
13
48
  execute(args: string, logger: Logger): void;
14
49
  private showStatus;
15
50
  private applyConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ConfigCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAyC;IACpD,KAAK,SAAkC;IAEvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA4B3C,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;CA+BtB"}
1
+ {"version":3,"file":"ConfigCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ConfigCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAyC;IACpD,KAAK,SAAkC;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA4B3C,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;CA+BtB"}
@@ -1,51 +1,79 @@
1
1
  /**
2
- * @fileoverview Export and clipboard commands for Advanced Logger CLI
2
+ * @fileoverview Status and demo commands for Advanced Logger CLI
3
3
  */
4
4
  import type { ICommand } from '../CommandProcessor.js';
5
5
  import type { Logger } from '../../Logger.js';
6
6
  /**
7
- * Export command - export logs in various formats
7
+ * Comando `/status` del CLI runtime del {@link Logger}. Vuelca la
8
+ * configuración vigente y algunas estadísticas (theme, verbosity, flags
9
+ * de features, handler count, bufferSize) en una tabla agrupada dentro
10
+ * de la consola. Es de solo lectura: no muta el logger.
11
+ *
12
+ * @example
13
+ * // Inspeccionar el estado actual del logger
14
+ * // > /status
15
+ *
16
+ * @see {@link Logger.getConfig} fuente de los datos mostrados.
8
17
  */
9
- export declare class ExportCommand implements ICommand {
18
+ export declare class StatusCommand implements ICommand {
10
19
  name: string;
11
20
  description: string;
12
21
  usage: string;
13
- execute(args: string, logger: Logger): void;
14
- }
15
- /**
16
- * Copy command - copy logs to clipboard
17
- */
18
- export declare class CopyCommand implements ICommand {
19
- name: string;
20
- description: string;
21
- usage: string;
22
- execute(args: string, logger: Logger): Promise<void>;
23
- }
24
- /**
25
- * Buffer-size command - configure buffer size
26
- */
27
- export declare class BufferSizeCommand implements ICommand {
28
- name: string;
29
- description: string;
30
- usage: string;
31
- execute(args: string, logger: Logger): void;
22
+ /**
23
+ * Ejecuta el comando `/status` contra el logger dado.
24
+ *
25
+ * @param _args - Ignorado (comando sin parámetros).
26
+ * @param logger - Instancia de la que se lee la configuración.
27
+ */
28
+ execute(_args: string, logger: Logger): void;
32
29
  }
33
30
  /**
34
- * Clear-buffer command - clear log buffer
31
+ * Comando `/reset` del CLI runtime del {@link Logger}. Restaura la
32
+ * configuración a sus defaults de fábrica vía {@link Logger.resetConfig}.
33
+ * No resetea handlers ni transports registrados — solo config.
34
+ *
35
+ * @example
36
+ * // Volver a la configuración por defecto
37
+ * // > /reset
38
+ *
39
+ * @see {@link Logger.resetConfig} para el método subyacente.
35
40
  */
36
- export declare class ClearBufferCommand implements ICommand {
41
+ export declare class ResetCommand implements ICommand {
37
42
  name: string;
38
43
  description: string;
39
44
  usage: string;
45
+ /**
46
+ * Ejecuta el comando `/reset` contra el logger dado.
47
+ *
48
+ * @param _args - Ignorado (comando sin parámetros).
49
+ * @param logger - Instancia cuya configuración se resetea.
50
+ */
40
51
  execute(_args: string, logger: Logger): void;
41
52
  }
42
53
  /**
43
- * Buffer-info command - show buffer information
54
+ * Comando `/demo` del CLI runtime del {@link Logger}. Ejecuta una
55
+ * demostración integral de las capacidades del logger: todos los niveles
56
+ * de log (debug → critical), tablas, timers (`time`/`timeEnd`), SVG inline
57
+ * y mensajes animados. Útil para validar que el styling funciona en un
58
+ * entorno nuevo o tras un cambio de tema.
59
+ *
60
+ * @example
61
+ * // Lanzar la demo completa
62
+ * // > /demo
63
+ *
64
+ * @see {@link Logger} para cada feature individual (`table`, `time`,
65
+ * `logWithSVG`, `logAnimated`, ...).
44
66
  */
45
- export declare class BufferInfoCommand implements ICommand {
67
+ export declare class DemoCommand implements ICommand {
46
68
  name: string;
47
69
  description: string;
48
70
  usage: string;
71
+ /**
72
+ * Ejecuta el comando `/demo` contra el logger dado.
73
+ *
74
+ * @param _args - Ignorado (comando sin parámetros).
75
+ * @param logger - Instancia sobre la que se ejecutan los ejemplos.
76
+ */
49
77
  execute(_args: string, logger: Logger): void;
50
78
  }
51
79
  //# sourceMappingURL=ExportCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ExportCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAiG9C;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAoC;IAC/C,KAAK,SAAkD;IAEvD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CA2C9C;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IACxC,IAAI,SAAU;IACd,WAAW,SAA4B;IACvC,KAAK,SAAgD;IAE/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8B7D;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAC9C,IAAI,SAAiB;IACrB,WAAW,SAAyB;IACpC,KAAK,SAAyB;IAE9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAiB9C;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,QAAQ;IAC/C,IAAI,SAAkB;IACtB,WAAW,SAA0B;IACrC,KAAK,SAAmB;IAExB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAY/C;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAC9C,IAAI,SAAiB;IACrB,WAAW,SAA4C;IACvD,KAAK,SAAkB;IAEvB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAuB/C"}
1
+ {"version":3,"file":"ExportCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ExportCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAkD;IAC7D,KAAK,SAAa;IAElB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAkB/C;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,QAAQ;IACzC,IAAI,SAAW;IACf,WAAW,SAA4C;IACvD,KAAK,SAAY;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAG/C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,QAAQ;IACxC,IAAI,SAAU;IACd,WAAW,SAA8C;IACzD,KAAK,SAAW;IAEhB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAuC/C"}
@@ -4,30 +4,89 @@
4
4
  import type { ICommand } from '../CommandProcessor.js';
5
5
  import type { Logger } from '../../Logger.js';
6
6
  /**
7
- * Themes command - show available themes
7
+ * Comando `/themes` del CLI runtime del {@link Logger}. Lista los presets
8
+ * temáticos disponibles en {@link THEME_PRESETS}, renderizando una preview
9
+ * con los colores reales de cada tema (background, foreground, border).
10
+ *
11
+ * Es de solo lectura: no muta el logger. Útil para descubrir qué tema
12
+ * aplicar antes de correr `/config theme=<name>`.
13
+ *
14
+ * @example
15
+ * // Listar todos los temas con preview coloreada
16
+ * // > /themes
17
+ *
18
+ * @see {@link THEME_PRESETS} para el catálogo completo de temas.
19
+ * @see {@link ConfigCommand} para aplicar un tema vía `/config theme=...`.
8
20
  */
9
21
  export declare class ThemesCommand implements ICommand {
10
22
  name: string;
11
23
  description: string;
12
24
  usage: string;
25
+ /**
26
+ * Ejecuta el comando `/themes` contra el logger dado.
27
+ *
28
+ * @param _args - Ignorado (comando sin parámetros).
29
+ * @param logger - Instancia usada para abrir/cerrar el `group` de salida.
30
+ */
13
31
  execute(_args: string, logger: Logger): void;
14
32
  }
15
33
  /**
16
- * Banners command - show available banner types
34
+ * Comando `/banners` del CLI runtime del {@link Logger}. Enumera los tipos
35
+ * de banner disponibles en {@link BANNER_VARIANTS} (`simple`, `ascii`,
36
+ * `unicode`, ...) con una mini-preview de cada uno para inspección visual.
37
+ *
38
+ * Es de solo lectura: no muta el logger. Para cambiar el banner activo
39
+ * usar {@link BannerCommand}.
40
+ *
41
+ * @example
42
+ * // Listar todas las variantes de banner con preview
43
+ * // > /banners
44
+ *
45
+ * @see {@link BANNER_VARIANTS} para el catálogo completo de variantes.
46
+ * @see {@link BannerCommand} para aplicar un tipo concreto.
17
47
  */
18
48
  export declare class BannersCommand implements ICommand {
19
49
  name: string;
20
50
  description: string;
21
51
  usage: string;
52
+ /**
53
+ * Ejecuta el comando `/banners` contra el logger dado.
54
+ *
55
+ * @param _args - Ignorado (comando sin parámetros).
56
+ * @param logger - Instancia usada para abrir/cerrar el `group` de salida.
57
+ */
22
58
  execute(_args: string, logger: Logger): void;
23
59
  }
24
60
  /**
25
- * Banner command - change/show banner type
61
+ * Comando `/banner [type]` del CLI runtime del {@link Logger}.
62
+ *
63
+ * - Sin argumentos: re-renderiza el banner actualmente activo.
64
+ * - Con un tipo válido: lo aplica vía {@link Logger.setBannerType} y lo
65
+ * muestra inmediatamente.
66
+ * - Con un tipo inválido: loguea un `error` listando las opciones válidas.
67
+ *
68
+ * @example
69
+ * // Mostrar el banner actual
70
+ * // > /banner
71
+ *
72
+ * @example
73
+ * // Cambiar a un tipo concreto
74
+ * // > /banner ascii
75
+ *
76
+ * @see {@link BANNER_VARIANTS} para los tipos aceptados.
77
+ * @see {@link Logger.setBannerType} y {@link Logger.showBanner} para los
78
+ * métodos subyacentes.
26
79
  */
27
80
  export declare class BannerCommand implements ICommand {
28
81
  name: string;
29
82
  description: string;
30
83
  usage: string;
84
+ /**
85
+ * Ejecuta el comando `/banner` contra el logger dado.
86
+ *
87
+ * @param args - Tipo de banner solicitado. Vacío = mostrar banner actual.
88
+ * @param logger - Instancia destino cuyo banner se actualiza/muestra.
89
+ */
31
90
  execute(args: string, logger: Logger): void;
32
91
  }
33
92
  //# sourceMappingURL=ThemeCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ThemeCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAkC;IAC7C,KAAK,SAAa;IAElB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAgB/C;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC3C,IAAI,SAAa;IACjB,WAAW,SAAiC;IAC5C,KAAK,SAAc;IAEnB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAoB/C;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAwC;IACnD,KAAK,SAAoB;IAEzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAa9C"}
1
+ {"version":3,"file":"ThemeCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ThemeCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAkC;IAC7C,KAAK,SAAa;IAElB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAgB/C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC3C,IAAI,SAAa;IACjB,WAAW,SAAiC;IAC5C,KAAK,SAAc;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAoB/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAwC;IACnD,KAAK,SAAoB;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAa9C"}