@mks2508/better-logger 0.14.0-alpha.1 → 1.0.0

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 (145) hide show
  1. package/dist/chunks/{Logger-BW-kn5_7.js → Logger-CTAaDeZi.js} +49 -366
  2. package/dist/chunks/Logger-CTAaDeZi.js.map +1 -0
  3. package/dist/chunks/Logger-D8pK7XXt.js +2 -0
  4. package/dist/chunks/Logger-D8pK7XXt.js.map +1 -0
  5. package/dist/chunks/ScopedLogger-D-7q8uVP.js +2 -0
  6. package/dist/chunks/ScopedLogger-D-7q8uVP.js.map +1 -0
  7. package/dist/chunks/ScopedLogger-hS0qSkZD.js +361 -0
  8. package/dist/chunks/ScopedLogger-hS0qSkZD.js.map +1 -0
  9. package/dist/core.js +280 -307
  10. package/dist/exports.cjs +1 -1
  11. package/dist/exports.js +1 -1
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.js +226 -159
  15. package/dist/index.js.map +1 -1
  16. package/dist/styling.cjs +1 -1
  17. package/dist/styling.js +2 -2
  18. package/dist/types/Logger.d.ts +17 -15
  19. package/dist/types/Logger.d.ts.map +1 -1
  20. package/dist/types/core.d.ts +122 -216
  21. package/dist/types/core.d.ts.map +1 -1
  22. package/dist/types/exports-module.d.ts +1 -1
  23. package/dist/types/exports-module.d.ts.map +1 -1
  24. package/dist/types/index.d.ts +119 -4
  25. package/dist/types/index.d.ts.map +1 -1
  26. package/dist/types/styling-module.d.ts +1 -1
  27. package/dist/types/styling-module.d.ts.map +1 -1
  28. package/package.json +2 -1
  29. package/src/Logger.ts +105 -58
  30. package/src/index.ts +32 -25
  31. package/dist/.tsbuildinfo +0 -1
  32. package/dist/Logger.d.ts +0 -710
  33. package/dist/Logger.d.ts.map +0 -1
  34. package/dist/Logger.js +0 -1118
  35. package/dist/ScopedLogger.d.ts +0 -318
  36. package/dist/ScopedLogger.d.ts.map +0 -1
  37. package/dist/ScopedLogger.js +0 -426
  38. package/dist/chunks/Logger-BW-kn5_7.js.map +0 -1
  39. package/dist/chunks/Logger-BpeuYIxR.js +0 -2
  40. package/dist/chunks/Logger-BpeuYIxR.js.map +0 -1
  41. package/dist/cli/CommandProcessor.d.ts +0 -103
  42. package/dist/cli/CommandProcessor.d.ts.map +0 -1
  43. package/dist/cli/CommandProcessor.js +0 -184
  44. package/dist/cli/commands/ConfigCommand.d.ts +0 -17
  45. package/dist/cli/commands/ConfigCommand.d.ts.map +0 -1
  46. package/dist/cli/commands/ConfigCommand.js +0 -88
  47. package/dist/cli/commands/ExportCommand.d.ts +0 -51
  48. package/dist/cli/commands/ExportCommand.d.ts.map +0 -1
  49. package/dist/cli/commands/ExportCommand.js +0 -243
  50. package/dist/cli/commands/HistoryCommand.d.ts +0 -50
  51. package/dist/cli/commands/HistoryCommand.d.ts.map +0 -1
  52. package/dist/cli/commands/HistoryCommand.js +0 -96
  53. package/dist/cli/commands/StatusCommand.d.ts +0 -33
  54. package/dist/cli/commands/StatusCommand.d.ts.map +0 -1
  55. package/dist/cli/commands/StatusCommand.js +0 -93
  56. package/dist/cli/commands/ThemeCommand.d.ts +0 -33
  57. package/dist/cli/commands/ThemeCommand.d.ts.map +0 -1
  58. package/dist/cli/commands/ThemeCommand.js +0 -79
  59. package/dist/cli/help.d.ts +0 -15
  60. package/dist/cli/help.d.ts.map +0 -1
  61. package/dist/cli/help.js +0 -118
  62. package/dist/cli/index.d.ts +0 -15
  63. package/dist/cli/index.d.ts.map +0 -1
  64. package/dist/cli/index.js +0 -46
  65. package/dist/constants.d.ts +0 -122
  66. package/dist/constants.d.ts.map +0 -1
  67. package/dist/constants.js +0 -159
  68. package/dist/core.d.ts +0 -134
  69. package/dist/core.d.ts.map +0 -1
  70. package/dist/example.d.ts +0 -18
  71. package/dist/example.d.ts.map +0 -1
  72. package/dist/example.js +0 -154
  73. package/dist/exports-module.d.ts +0 -203
  74. package/dist/exports-module.d.ts.map +0 -1
  75. package/dist/exports-module.js +0 -260
  76. package/dist/handlers/AnalyticsLogHandler.d.ts +0 -11
  77. package/dist/handlers/AnalyticsLogHandler.d.ts.map +0 -1
  78. package/dist/handlers/AnalyticsLogHandler.js +0 -19
  79. package/dist/handlers/ExportLogHandler.d.ts +0 -103
  80. package/dist/handlers/ExportLogHandler.d.ts.map +0 -1
  81. package/dist/handlers/ExportLogHandler.js +0 -516
  82. package/dist/handlers/FileLogHandler.d.ts +0 -36
  83. package/dist/handlers/FileLogHandler.d.ts.map +0 -1
  84. package/dist/handlers/FileLogHandler.js +0 -156
  85. package/dist/handlers/RemoteLogHandler.d.ts +0 -14
  86. package/dist/handlers/RemoteLogHandler.d.ts.map +0 -1
  87. package/dist/handlers/RemoteLogHandler.js +0 -37
  88. package/dist/handlers/index.d.ts +0 -8
  89. package/dist/handlers/index.d.ts.map +0 -1
  90. package/dist/handlers/index.js +0 -7
  91. package/dist/index.d.ts +0 -157
  92. package/dist/index.d.ts.map +0 -1
  93. package/dist/main.d.ts +0 -2
  94. package/dist/main.d.ts.map +0 -1
  95. package/dist/main.js +0 -139
  96. package/dist/styling/LogStyleBuilder.d.ts +0 -149
  97. package/dist/styling/LogStyleBuilder.d.ts.map +0 -1
  98. package/dist/styling/LogStyleBuilder.js +0 -289
  99. package/dist/styling/SemanticStyles.d.ts +0 -181
  100. package/dist/styling/SemanticStyles.d.ts.map +0 -1
  101. package/dist/styling/SemanticStyles.js +0 -339
  102. package/dist/styling/SmartPresets.d.ts +0 -25
  103. package/dist/styling/SmartPresets.d.ts.map +0 -1
  104. package/dist/styling/SmartPresets.js +0 -276
  105. package/dist/styling/StyleBuilder.d.ts +0 -140
  106. package/dist/styling/StyleBuilder.d.ts.map +0 -1
  107. package/dist/styling/StyleBuilder.js +0 -280
  108. package/dist/styling/banners.d.ts +0 -45
  109. package/dist/styling/banners.d.ts.map +0 -1
  110. package/dist/styling/banners.js +0 -155
  111. package/dist/styling/index.d.ts +0 -10
  112. package/dist/styling/index.d.ts.map +0 -1
  113. package/dist/styling/index.js +0 -9
  114. package/dist/styling/themes.d.ts +0 -10
  115. package/dist/styling/themes.d.ts.map +0 -1
  116. package/dist/styling/themes.js +0 -231
  117. package/dist/styling-module.d.ts +0 -185
  118. package/dist/styling-module.d.ts.map +0 -1
  119. package/dist/styling-module.js +0 -199
  120. package/dist/types/core.js +0 -28
  121. package/dist/types/handlers.d.ts +0 -88
  122. package/dist/types/handlers.d.ts.map +0 -1
  123. package/dist/types/handlers.js +0 -4
  124. package/dist/types/index.js +0 -4
  125. package/dist/utils/environment.d.ts +0 -47
  126. package/dist/utils/environment.d.ts.map +0 -1
  127. package/dist/utils/environment.js +0 -85
  128. package/dist/utils/formatting.d.ts +0 -40
  129. package/dist/utils/formatting.d.ts.map +0 -1
  130. package/dist/utils/formatting.js +0 -117
  131. package/dist/utils/index.d.ts +0 -7
  132. package/dist/utils/index.d.ts.map +0 -1
  133. package/dist/utils/index.js +0 -6
  134. package/dist/utils/opentui-detection.d.ts +0 -34
  135. package/dist/utils/opentui-detection.d.ts.map +0 -1
  136. package/dist/utils/opentui-detection.js +0 -116
  137. package/dist/utils/output.d.ts +0 -44
  138. package/dist/utils/output.d.ts.map +0 -1
  139. package/dist/utils/output.js +0 -150
  140. package/dist/utils/stackTrace.d.ts +0 -9
  141. package/dist/utils/stackTrace.d.ts.map +0 -1
  142. package/dist/utils/stackTrace.js +0 -81
  143. package/dist/utils/timestamps.d.ts +0 -20
  144. package/dist/utils/timestamps.d.ts.map +0 -1
  145. package/dist/utils/timestamps.js +0 -71
package/dist/Logger.d.ts DELETED
@@ -1,710 +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
- import type { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
10
- import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
11
- import { ExportLogHandler } from './handlers/index.js';
12
- /**
13
- * Clase principal Logger con capacidades avanzadas de logging
14
- *
15
- * @class Logger
16
- * @description Sistema completo de logging con temas, badges, contextos y exportación.
17
- * Detecta automáticamente el tema claro/oscuro del navegador.
18
- *
19
- * @example
20
- * // Uso básico sin configuración
21
- * import logger from '@mks2508/better-logger';
22
- * logger.info('Aplicación iniciada');
23
- * logger.success('Conexión establecida');
24
- *
25
- * @example
26
- * // Aplicar un preset temático
27
- * logger.preset('cyberpunk');
28
- * logger.warn('Advertencia con estilo neón');
29
- *
30
- * @example
31
- * // Logger con scope para componentes
32
- * const auth = logger.component('Autenticación');
33
- * auth.info('Usuario intentando login');
34
- * auth.success('Login exitoso');
35
- *
36
- * @since 0.3.0
37
- */
38
- export declare class Logger {
39
- private config;
40
- private scopedPrefix?;
41
- private handlers;
42
- private timers;
43
- private groupDepth;
44
- private exportHandler?;
45
- private cliProcessor?;
46
- private themeChangeListener?;
47
- private displaySettings;
48
- /**
49
- * Crea una nueva instancia del Logger
50
- *
51
- * @param {Partial<LoggerConfig>} config - Configuración opcional del logger
52
- *
53
- * @example
54
- * // Logger con configuración personalizada
55
- * const logger = new Logger({
56
- * theme: 'neon',
57
- * globalPrefix: 'MiApp',
58
- * verbosity: 'debug',
59
- * bufferSize: 1000
60
- * });
61
- */
62
- constructor(config?: Partial<LoggerConfig>);
63
- /**
64
- * Configura la detección automática de tema con listener de cambios
65
- * @private
66
- * @description Detecta automáticamente si el navegador está en modo claro u oscuro
67
- */
68
- private setupAutoThemeDetection;
69
- /**
70
- * Obtiene la configuración actual del logger
71
- *
72
- * @returns {LoggerConfig} Configuración completa actual
73
- *
74
- * @example
75
- * const config = logger.getConfig();
76
- * console.log('Verbosidad actual:', config.verbosity);
77
- * console.log('Tema actual:', config.theme);
78
- *
79
- * @since 0.3.0
80
- */
81
- getConfig(): LoggerConfig;
82
- /**
83
- * Actualiza la configuración del logger
84
- *
85
- * @param {Partial<LoggerConfig>} updates - Propiedades a actualizar
86
- *
87
- * @example
88
- * logger.updateConfig({
89
- * verbosity: 'debug',
90
- * enableTimestamps: false,
91
- * theme: 'cyberpunk'
92
- * });
93
- *
94
- * @since 0.3.0
95
- */
96
- updateConfig(updates: Partial<LoggerConfig>): void;
97
- /**
98
- * Establece el prefijo global para todos los mensajes de log
99
- *
100
- * @param {string} prefix - Prefijo a usar
101
- *
102
- * @example
103
- * logger.setGlobalPrefix('MiApp');
104
- * logger.info('Iniciado'); // [MiApp] Iniciado
105
- *
106
- * @since 0.3.0
107
- */
108
- setGlobalPrefix(prefix: string): void;
109
- /**
110
- * Establece el nivel de verbosidad para filtrar la salida de logs
111
- *
112
- * @param {Verbosity} level - Nivel mínimo a mostrar ('debug' | 'info' | 'warn' | 'error' | 'critical' | 'silent')
113
- *
114
- * @example
115
- * logger.setVerbosity('warn'); // Solo muestra warn, error y critical
116
- * logger.setVerbosity('debug'); // Muestra todos los niveles
117
- * logger.setVerbosity('silent'); // No muestra nada
118
- *
119
- * @since 0.3.0
120
- */
121
- setVerbosity(level: Verbosity): void;
122
- /**
123
- * Establece el tema del logger
124
- *
125
- * @param {ThemeVariant} theme - Tema a aplicar ('default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk')
126
- *
127
- * @example
128
- * logger.setTheme('neon'); // Tema con colores neón
129
- * logger.setTheme('minimal'); // Tema minimalista
130
- * logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
131
- *
132
- * @since 0.3.0
133
- */
134
- setTheme(theme: ThemeVariant): void;
135
- /**
136
- * Establece el tipo de banner para mostrar en la inicialización
137
- *
138
- * @param {BannerType} bannerType - Tipo de banner ('simple' | 'ascii' | 'unicode' | 'svg' | 'animated')
139
- *
140
- * @example
141
- * logger.setBannerType('ascii'); // Banner con arte ASCII
142
- * logger.setBannerType('unicode'); // Banner con caracteres Unicode
143
- * logger.setBannerType('animated'); // Banner con animación
144
- *
145
- * @since 0.3.0
146
- */
147
- setBannerType(bannerType: BannerType): void;
148
- /**
149
- * Reinicia el logger a la configuración por defecto
150
- *
151
- * @example
152
- * logger.resetConfig();
153
- * // Todo vuelve a la configuración inicial
154
- *
155
- * @since 0.3.0
156
- */
157
- resetConfig(): void;
158
- /**
159
- * Método de limpieza para eliminar listeners y liberar recursos
160
- *
161
- * @example
162
- * // Antes de cerrar la aplicación
163
- * logger.cleanup();
164
- *
165
- * @since 0.3.0
166
- */
167
- cleanup(): void;
168
- /**
169
- * Aplica un preset inteligente - funciona perfectamente sin configuración
170
- *
171
- * @param {string} name - Nombre del preset a aplicar
172
- *
173
- * @example
174
- * // Presets disponibles
175
- * logger.preset('default'); // Limpio y adaptativo
176
- * logger.preset('cyberpunk'); // Colores neón, efectos brillantes
177
- * logger.preset('glassmorphism'); // Efectos de blur modernos
178
- * logger.preset('minimal'); // Minimalista y elegante
179
- * logger.preset('debug'); // Modo desarrollo detallado
180
- * logger.preset('production'); // Optimizado para producción
181
- *
182
- * @since 0.3.0
183
- */
184
- preset(name: string): void;
185
- /**
186
- * Lista todos los presets disponibles
187
- *
188
- * @returns {string[]} Array con nombres de presets disponibles
189
- *
190
- * @example
191
- * const disponibles = logger.presets();
192
- * console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
193
- *
194
- * @since 0.3.0
195
- */
196
- presets(): string[];
197
- /**
198
- * Oculta el timestamp en los logs
199
- *
200
- * @example
201
- * logger.hideTimestamp();
202
- * logger.info('Sin marca de tiempo'); // Sin timestamp visible
203
- *
204
- * @since 0.3.0
205
- */
206
- hideTimestamp(): void;
207
- /**
208
- * Muestra el timestamp en los logs
209
- *
210
- * @example
211
- * logger.showTimestamp();
212
- * logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
213
- *
214
- * @since 0.3.0
215
- */
216
- showTimestamp(): void;
217
- /**
218
- * Oculta la información de ubicación (archivo:línea) en los logs
219
- *
220
- * @example
221
- * logger.hideLocation();
222
- * logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
223
- *
224
- * @since 0.3.0
225
- */
226
- hideLocation(): void;
227
- /**
228
- * Muestra la información de ubicación (archivo:línea) en los logs
229
- *
230
- * @example
231
- * logger.showLocation();
232
- * logger.debug('Con ubicación'); // app.js:42 Con ubicación
233
- *
234
- * @since 0.3.0
235
- */
236
- showLocation(): void;
237
- /**
238
- * Oculta los badges en los logs
239
- *
240
- * @example
241
- * logger.hideBadges();
242
- * const api = logger.api('REST');
243
- * api.info('Sin badges'); // Sin mostrar [API] [REST]
244
- *
245
- * @since 0.3.0
246
- */
247
- hideBadges(): void;
248
- /**
249
- * Muestra los badges en los logs
250
- *
251
- * @example
252
- * logger.showBadges();
253
- * const api = logger.api('GraphQL');
254
- * api.info('Con badges'); // [API] [GraphQL] Con badges
255
- *
256
- * @since 0.3.0
257
- */
258
- showBadges(): void;
259
- /**
260
- * Crea un logger para componentes con estilo automático
261
- *
262
- * @param {string} name - Nombre del componente
263
- * @returns {ComponentLogger} Logger con scope de componente
264
- *
265
- * @example
266
- * const authLogger = logger.component('Autenticación');
267
- * authLogger.info('Validando credenciales');
268
- * // [COMPONENT] [Autenticación] Validando credenciales
269
- *
270
- * authLogger.success('Usuario autenticado');
271
- * // [COMPONENT] [Autenticación] ✓ Usuario autenticado
272
- *
273
- * @since 0.3.0
274
- */
275
- component(name: string): ComponentLogger;
276
- /**
277
- * Crea un logger para APIs con badges automáticos
278
- *
279
- * @param {string} name - Nombre de la API o endpoint
280
- * @returns {APILogger} Logger con scope de API
281
- *
282
- * @example
283
- * const api = logger.api('REST');
284
- * api.info('GET /users');
285
- * // [API] [REST] GET /users
286
- *
287
- * // Con badges adicionales
288
- * api.badges(['v2', 'cached']).info('Respuesta desde caché');
289
- * // [API] [v2] [cached] [REST] Respuesta desde caché
290
- *
291
- * @since 0.3.0
292
- */
293
- api(name: string): APILogger;
294
- /**
295
- * Crea un logger con scope general y soporte de badges
296
- *
297
- * @param {string} name - Nombre del scope
298
- * @returns {ScopedLogger} Logger con scope personalizado
299
- *
300
- * @example
301
- * const dbLogger = logger.scope('Database');
302
- * dbLogger.info('Conectando a MongoDB');
303
- * // [Database] Conectando a MongoDB
304
- *
305
- * // Con badges personalizados
306
- * dbLogger.badge('SLOW').warn('Query tardó 5s');
307
- * // [SLOW] [Database] Query tardó 5s
308
- *
309
- * @since 0.3.0
310
- */
311
- scope(name: string): ScopedLogger;
312
- /**
313
- * Personalización simple con configuración mínima
314
- *
315
- * @param {Object} overrides - Opciones de personalización
316
- * @param {Object} overrides.message - Configuración del mensaje
317
- * @param {Object} overrides.timestamp - Configuración del timestamp
318
- * @param {Object} overrides.location - Configuración de ubicación
319
- * @param {Object} overrides.level - Configuración del nivel
320
- * @param {Object} overrides.prefix - Configuración del prefijo
321
- * @param {string} overrides.spacing - Espaciado: 'compact' | 'normal' | 'spacious'
322
- *
323
- * @example
324
- * logger.customize({
325
- * message: { color: '#00ff00', size: '16px' },
326
- * timestamp: { show: false },
327
- * spacing: 'compact'
328
- * });
329
- *
330
- * @since 0.3.0
331
- */
332
- customize(overrides: {
333
- message?: {
334
- color?: string;
335
- font?: string;
336
- size?: string;
337
- };
338
- timestamp?: {
339
- show?: boolean;
340
- color?: string;
341
- };
342
- location?: {
343
- show?: boolean;
344
- color?: string;
345
- };
346
- level?: {
347
- uppercase?: boolean;
348
- style?: string;
349
- };
350
- prefix?: {
351
- show?: boolean;
352
- style?: string;
353
- };
354
- spacing?: 'compact' | 'normal' | 'spacious';
355
- }): void;
356
- /**
357
- * Access advanced styling API (for power users)
358
- */
359
- styles(): any;
360
- /**
361
- * Añade un handler personalizado para extender funcionalidad
362
- *
363
- * @param {ILogHandler} handler - Handler que implementa ILogHandler
364
- *
365
- * @example
366
- * // Handler personalizado para enviar logs a servidor
367
- * const remoteHandler = new RemoteLogHandler('https://api.ejemplo.com/logs');
368
- * logger.addHandler(remoteHandler);
369
- *
370
- * @example
371
- * // Handler para guardar en archivo
372
- * const fileHandler = new FileLogHandler('./app.log');
373
- * logger.addHandler(fileHandler);
374
- *
375
- * @since 0.3.0
376
- */
377
- addHandler(handler: ILogHandler): void;
378
- /**
379
- * Obtiene todos los handlers registrados
380
- *
381
- * @returns {ILogHandler[]} Array de handlers activos
382
- * @since 0.3.0
383
- */
384
- getHandlers(): ILogHandler[];
385
- /**
386
- * Obtiene el handler de exportación si está disponible
387
- *
388
- * @returns {ExportLogHandler | undefined} Handler de exportación o undefined
389
- * @since 0.3.0
390
- */
391
- getExportHandler(): ExportLogHandler | undefined;
392
- /**
393
- * Verifica si un nivel de log debe mostrarse según la verbosidad actual
394
- * @private
395
- * @param {LogLevel} level - Nivel de log a verificar
396
- * @returns {boolean} True si debe mostrarse, false si no
397
- */
398
- private shouldLog;
399
- /**
400
- * Obtiene el prefijo efectivo (global + scope)
401
- * @private
402
- * @returns {string | undefined} Prefijo combinado o undefined
403
- */
404
- private getEffectivePrefix;
405
- /**
406
- * Método central de logging que maneja estilos y formato
407
- * @protected
408
- * @param {LogLevel} level - Nivel del log
409
- * @param {...any} args - Argumentos a loggear
410
- */
411
- protected log(level: LogLevel, ...args: any[]): void;
412
- /**
413
- * Registra información de debug (prioridad más baja)
414
- *
415
- * @param {...any} args - Mensajes y datos a loggear
416
- *
417
- * @example
418
- * logger.debug('Variable estado:', { usuario: 'Juan', activo: true });
419
- * logger.debug('Iniciando proceso de validación');
420
- *
421
- * @since 0.3.0
422
- */
423
- debug(...args: any[]): void;
424
- /**
425
- * Registra mensajes informativos
426
- *
427
- * @param {...any} args - Mensajes y datos informativos
428
- *
429
- * @example
430
- * logger.info('Servidor iniciado en puerto 3000');
431
- * logger.info('Usuario conectado:', userId);
432
- * logger.info('Procesando', totalItems, 'elementos');
433
- *
434
- * @since 0.3.0
435
- */
436
- info(...args: any[]): void;
437
- /**
438
- * Registra mensajes de advertencia
439
- *
440
- * @param {...any} args - Mensajes de advertencia
441
- *
442
- * @example
443
- * logger.warn('Memoria al 85% de capacidad');
444
- * logger.warn('API deprecada, usar v2');
445
- * logger.warn('Reintentos agotados:', maxRetries);
446
- *
447
- * @since 0.3.0
448
- */
449
- warn(...args: any[]): void;
450
- /**
451
- * Registra mensajes de error
452
- *
453
- * @param {...any} args - Mensajes de error y stack traces
454
- *
455
- * @example
456
- * logger.error('Fallo en conexión a base de datos');
457
- * logger.error('Error al procesar:', error.message, error.stack);
458
- * logger.error('Código de error:', errorCode);
459
- *
460
- * @since 0.3.0
461
- */
462
- error(...args: any[]): void;
463
- /**
464
- * Registra mensajes de éxito (nivel info especial)
465
- *
466
- * @param {...any} args - Mensajes de operaciones exitosas
467
- *
468
- * @example
469
- * logger.success('Base de datos conectada');
470
- * logger.success('Usuario creado con ID:', userId);
471
- * logger.success('✓ Tests pasados: 42/42');
472
- *
473
- * @since 0.3.0
474
- */
475
- success(...args: any[]): void;
476
- /**
477
- * Registra información de trace (debugging detallado)
478
- *
479
- * @param {...any} args - Datos detallados para debugging
480
- *
481
- * @example
482
- * logger.trace('Entrando en función processData');
483
- * logger.trace('Stack completo:', new Error().stack);
484
- *
485
- * @since 0.3.0
486
- */
487
- trace(...args: any[]): void;
488
- /**
489
- * Registra errores críticos (prioridad más alta)
490
- *
491
- * @param {...any} args - Errores críticos del sistema
492
- *
493
- * @example
494
- * logger.critical('Sistema caído - reinicio inmediato requerido');
495
- * logger.critical('Pérdida de datos detectada');
496
- * logger.critical('Brecha de seguridad:', securityError);
497
- *
498
- * @since 0.3.0
499
- */
500
- critical(...args: any[]): void;
501
- /**
502
- * Muestra datos en formato de tabla
503
- *
504
- * @param {any} data - Datos a mostrar (array de objetos o matriz)
505
- * @param {string[]} columns - Columnas específicas a mostrar (opcional)
506
- *
507
- * @example
508
- * const usuarios = [
509
- * { id: 1, nombre: 'Juan', edad: 30 },
510
- * { id: 2, nombre: 'María', edad: 25 }
511
- * ];
512
- * logger.table(usuarios);
513
- * logger.table(usuarios, ['nombre', 'edad']); // Solo estas columnas
514
- *
515
- * @since 0.3.0
516
- */
517
- table(data: any, columns?: string[]): void;
518
- /**
519
- * Inicia un grupo colapsable en la consola
520
- *
521
- * @param {string} label - Etiqueta del grupo
522
- * @param {boolean} collapsed - Si el grupo inicia colapsado (default: false)
523
- *
524
- * @example
525
- * logger.group('Procesando usuarios');
526
- * logger.info('Usuario 1 procesado');
527
- * logger.info('Usuario 2 procesado');
528
- * logger.groupEnd();
529
- *
530
- * @example
531
- * // Grupo colapsado por defecto
532
- * logger.group('Detalles adicionales', true);
533
- * logger.debug('Información detallada aquí');
534
- * logger.groupEnd();
535
- *
536
- * @since 0.3.0
537
- */
538
- group(label: string, collapsed?: boolean): void;
539
- /**
540
- * Finaliza el grupo actual de la consola
541
- *
542
- * @example
543
- * logger.group('Operaciones');
544
- * logger.info('Operación 1');
545
- * logger.info('Operación 2');
546
- * logger.groupEnd(); // Cierra el grupo
547
- *
548
- * @since 0.3.0
549
- */
550
- groupEnd(): void;
551
- /**
552
- * Inicia un temporizador con la etiqueta dada
553
- *
554
- * @param {string} label - Etiqueta identificadora del temporizador
555
- *
556
- * @example
557
- * logger.time('proceso-datos');
558
- * // ... operación costosa ...
559
- * logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
560
- *
561
- * @since 0.3.0
562
- */
563
- time(label: string): void;
564
- /**
565
- * Finaliza un temporizador y muestra el tiempo transcurrido
566
- *
567
- * @param {string} label - Etiqueta del temporizador a finalizar
568
- *
569
- * @example
570
- * logger.time('consulta-db');
571
- * await consultarBaseDatos();
572
- * logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
573
- *
574
- * @since 0.3.0
575
- */
576
- timeEnd(label: string): void;
577
- /**
578
- * Muestra un banner con el tipo especificado o configurado
579
- *
580
- * @param {BannerType} bannerType - Tipo de banner (opcional)
581
- *
582
- * @example
583
- * logger.showBanner('ascii'); // Banner ASCII art
584
- * logger.showBanner('unicode'); // Banner con caracteres Unicode
585
- * logger.showBanner('svg'); // Banner con gráfico SVG
586
- * logger.showBanner(); // Usa el tipo configurado
587
- *
588
- * @since 0.3.0
589
- */
590
- showBanner(bannerType?: BannerType): void;
591
- /**
592
- * Registra mensaje con imagen SVG de fondo
593
- *
594
- * @param {string} message - Mensaje a mostrar
595
- * @param {string} svgContent - Contenido SVG personalizado (opcional)
596
- * @param {StyleOptions} options - Opciones de estilo (ancho, alto, padding)
597
- *
598
- * @example
599
- * // SVG automático con gradiente
600
- * logger.logWithSVG('🎆 Bienvenido a Better Logger');
601
- *
602
- * @example
603
- * // SVG personalizado
604
- * const customSVG = '<svg>...</svg>';
605
- * logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
606
- *
607
- * @since 0.3.0
608
- */
609
- logWithSVG(message: string, svgContent?: string, options?: StyleOptions): void;
610
- /**
611
- * Registra mensaje con gradiente animado de fondo
612
- *
613
- * @param {string} message - Mensaje a animar
614
- * @param {number} duration - Duración de la animación en segundos (default: 3)
615
- *
616
- * @example
617
- * logger.logAnimated('🌈 Animación en progreso');
618
- * logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
619
- *
620
- * @since 0.3.0
621
- */
622
- logAnimated(message: string, duration?: number): void;
623
- /**
624
- * Agrupa logs por una propiedad específica usando Object.groupBy (cuando esté disponible)
625
- *
626
- * @param {T[]} items - Array de elementos a agrupar
627
- * @param {Function} groupBy - Función que retorna la clave de agrupación
628
- *
629
- * @example
630
- * const ventas = [
631
- * { producto: 'Laptop', categoria: 'Electrónica', precio: 1200 },
632
- * { producto: 'Mouse', categoria: 'Electrónica', precio: 25 },
633
- * { producto: 'Libro', categoria: 'Literatura', precio: 15 }
634
- * ];
635
- * logger.logGrouped(ventas, item => item.categoria);
636
- *
637
- * @since 0.3.0
638
- */
639
- logGrouped<T>(items: T[], groupBy: (item: T) => string): void;
640
- /**
641
- * Procesador de comandos CLI para configuración y exportación del logger
642
- *
643
- * @param {string} command - Comando CLI a ejecutar
644
- * @returns {Promise<void>}
645
- *
646
- * @example
647
- * // Comandos disponibles
648
- * await logger.cli('export json'); // Exporta logs en JSON
649
- * await logger.cli('export csv'); // Exporta logs en CSV
650
- * await logger.cli('theme list'); // Lista temas disponibles
651
- * await logger.cli('theme set neon'); // Cambia al tema neon
652
- * await logger.cli('config show'); // Muestra configuración actual
653
- * await logger.cli('history clear'); // Limpia historial de logs
654
- * await logger.cli('status'); // Muestra estado del logger
655
- * await logger.cli('help'); // Muestra ayuda de comandos
656
- *
657
- * @since 0.3.0
658
- */
659
- cli(command: string): Promise<void>;
660
- }
661
- /**
662
- * Instancia singleton del logger con configuración por defecto
663
- * @constant {Logger}
664
- */
665
- declare const defaultLogger: Logger;
666
- export default defaultLogger;
667
- /**
668
- * Métodos individuales exportados para conveniencia
669
- * @description Todos los métodos están correctamente enlazados al singleton
670
- * @since 0.3.0
671
- */
672
- export declare const debug: (...args: any[]) => void;
673
- export declare const info: (...args: any[]) => void;
674
- export declare const warn: (...args: any[]) => void;
675
- export declare const error: (...args: any[]) => void;
676
- export declare const success: (...args: any[]) => void;
677
- export declare const trace: (...args: any[]) => void;
678
- export declare const critical: (...args: any[]) => void;
679
- export declare const table: (data: any, columns?: string[]) => void;
680
- export declare const group: (label: string, collapsed?: boolean) => void;
681
- export declare const groupEnd: () => void;
682
- export declare const time: (label: string) => void;
683
- export declare const timeEnd: (label: string) => void;
684
- export declare const setGlobalPrefix: (prefix: string) => void;
685
- export declare const setVerbosity: (level: Verbosity) => void;
686
- export declare const addHandler: (handler: ILogHandler) => void;
687
- export declare const setTheme: (theme: ThemeVariant) => void;
688
- export declare const setBannerType: (bannerType: BannerType) => void;
689
- export declare const showBanner: (bannerType?: BannerType) => void;
690
- export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
691
- export declare const logAnimated: (message: string, duration?: number) => void;
692
- export declare const cli: (command: string) => Promise<void>;
693
- export declare const cleanup: () => void;
694
- export declare const preset: (name: string) => void;
695
- export declare const presets: () => string[];
696
- export declare const hideTimestamp: () => void;
697
- export declare const showTimestamp: () => void;
698
- export declare const hideLocation: () => void;
699
- export declare const showLocation: () => void;
700
- export declare const hideBadges: () => void;
701
- export declare const showBadges: () => void;
702
- export declare const component: (name: string) => ComponentLogger;
703
- export declare const api: (name: string) => APILogger;
704
- export declare const scope: (name: string) => ScopedLogger;
705
- export declare const customize: (overrides: any) => void;
706
- export declare const styles: () => any;
707
- export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
708
- export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
709
- export { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
710
- //# sourceMappingURL=Logger.d.ts.map