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