@mks2508/better-logger 5.0.1 → 5.0.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.
- package/dist/Logger.d.ts +976 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/ScopedLogger.d.ts +74 -0
- package/dist/ScopedLogger.d.ts.map +1 -0
- package/dist/chunks/Logger-CKqzXDh3.js +2 -0
- package/dist/chunks/Logger-CKqzXDh3.js.map +1 -0
- package/dist/chunks/Logger-D_vuKP4l.js +4511 -0
- package/dist/chunks/Logger-D_vuKP4l.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
- package/dist/chunks/cli-module-B-njrTWb.js +2 -0
- package/dist/chunks/cli-module-B-njrTWb.js.map +1 -0
- package/dist/chunks/cli-module-Cx7qotPY.js +390 -0
- package/dist/chunks/cli-module-Cx7qotPY.js.map +1 -0
- package/dist/chunks/color-converter-CCSQRztd.js +2 -0
- package/dist/chunks/color-converter-CCSQRztd.js.map +1 -0
- package/dist/chunks/color-converter-_Xdmsy7E.js +462 -0
- package/dist/chunks/color-converter-_Xdmsy7E.js.map +1 -0
- package/dist/chunks/environment-C1xxvc8l.js +1127 -0
- package/dist/chunks/environment-C1xxvc8l.js.map +1 -0
- package/dist/chunks/environment-Cprkw3g9.js +4 -0
- package/dist/chunks/environment-Cprkw3g9.js.map +1 -0
- package/dist/chunks/formatting-DMJxYq9o.js +380 -0
- package/dist/chunks/formatting-DMJxYq9o.js.map +1 -0
- package/dist/chunks/formatting-DpKxCsXq.js +2 -0
- package/dist/chunks/formatting-DpKxCsXq.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +100 -0
- package/dist/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/cli/commands/ConfigCommand.d.ts +14 -0
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/cli/commands/ExportCommand.d.ts +48 -0
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/cli/commands/HistoryCommand.d.ts +47 -0
- package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
- package/dist/cli/commands/StatusCommand.d.ts +30 -0
- package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/cli/commands/ThemeCommand.d.ts +30 -0
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/cli/help.d.ts +12 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/{src/cli-module.ts → dist/cli-module.d.ts} +2 -8
- package/dist/cli-module.d.ts.map +1 -0
- package/dist/cli-primitives/box.d.ts +11 -0
- package/dist/cli-primitives/box.d.ts.map +1 -0
- package/dist/cli-primitives/cli-table.d.ts +11 -0
- package/dist/cli-primitives/cli-table.d.ts.map +1 -0
- package/dist/cli-primitives/divider.d.ts +11 -0
- package/dist/cli-primitives/divider.d.ts.map +1 -0
- package/dist/cli-primitives/header.d.ts +12 -0
- package/dist/cli-primitives/header.d.ts.map +1 -0
- package/{src/cli-primitives/index.ts → dist/cli-primitives/index.d.ts} +1 -1
- package/dist/cli-primitives/index.d.ts.map +1 -0
- package/dist/cli-primitives/server-fallback.d.ts +25 -0
- package/dist/cli-primitives/server-fallback.d.ts.map +1 -0
- package/dist/cli-primitives/spinner.d.ts +47 -0
- package/dist/cli-primitives/spinner.d.ts.map +1 -0
- package/dist/cli-primitives/step.d.ts +11 -0
- package/dist/cli-primitives/step.d.ts.map +1 -0
- package/dist/cli.cjs +2 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.js +12 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +235 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/core.cjs +2 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +127 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +291 -0
- package/dist/core.js.map +1 -0
- package/dist/example.d.ts +18 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/exports-module.d.ts +196 -0
- package/dist/exports-module.d.ts.map +1 -0
- package/dist/exports.cjs +2 -0
- package/dist/exports.cjs.map +1 -0
- package/dist/exports.js +238 -0
- package/dist/exports.js.map +1 -0
- package/dist/handlers/AnalyticsLogHandler.d.ts +8 -0
- package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/handlers/ExportLogHandler.d.ts +100 -0
- package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/handlers/FileLogHandler.d.ts +33 -0
- package/dist/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/handlers/RemoteLogHandler.d.ts +11 -0
- package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/{src/handlers/index.ts → dist/handlers/index.d.ts} +2 -2
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/hooks/HookManager.d.ts +21 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/{src/hooks/index.ts → dist/hooks/index.d.ts} +1 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +161 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +627 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/serializers/SerializerRegistry.d.ts +16 -0
- package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
- package/{src/serializers/index.ts → dist/serializers/index.d.ts} +1 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/styling/LogStyleBuilder.d.ts +146 -0
- package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
- package/dist/styling/SemanticStyles.d.ts +178 -0
- package/dist/styling/SemanticStyles.d.ts.map +1 -0
- package/dist/styling/SmartPresets.d.ts +22 -0
- package/dist/styling/SmartPresets.d.ts.map +1 -0
- package/dist/styling/StyleBuilder.d.ts +140 -0
- package/dist/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/styling/StyleCache.d.ts +42 -0
- package/dist/styling/StyleCache.d.ts.map +1 -0
- package/dist/styling/banners.d.ts +42 -0
- package/dist/styling/banners.d.ts.map +1 -0
- package/dist/styling/index.d.ts +10 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/themes.d.ts +7 -0
- package/dist/styling/themes.d.ts.map +1 -0
- package/dist/styling-module.d.ts +178 -0
- package/dist/styling-module.d.ts.map +1 -0
- package/dist/styling.cjs +2 -0
- package/dist/styling.cjs.map +1 -0
- package/dist/styling.js +146 -0
- package/dist/styling.js.map +1 -0
- package/dist/terminal/color-converter.d.ts +73 -0
- package/dist/terminal/color-converter.d.ts.map +1 -0
- package/dist/terminal/formatter.d.ts +20 -0
- package/dist/terminal/formatter.d.ts.map +1 -0
- package/dist/terminal/terminal-renderer.d.ts +77 -0
- package/dist/terminal/terminal-renderer.d.ts.map +1 -0
- package/dist/transports/ConsoleTransport.d.ts +9 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -0
- package/dist/transports/FileTransport.d.ts +15 -0
- package/dist/transports/FileTransport.d.ts.map +1 -0
- package/dist/transports/HttpTransport.d.ts +16 -0
- package/dist/transports/HttpTransport.d.ts.map +1 -0
- package/dist/transports/TransportManager.d.ts +14 -0
- package/dist/transports/TransportManager.d.ts.map +1 -0
- package/{src/transports/index.ts → dist/transports/index.d.ts} +1 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/{src/types/core.ts → dist/types/core.d.ts} +25 -62
- package/dist/types/core.d.ts.map +1 -0
- package/{src/types/handlers.ts → dist/types/handlers.d.ts} +5 -15
- package/dist/types/handlers.d.ts.map +1 -0
- package/{src/types/hooks.ts → dist/types/hooks.d.ts} +3 -12
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/{src/types/serializers.ts → dist/types/serializers.d.ts} +1 -6
- package/dist/types/serializers.d.ts.map +1 -0
- package/{src/types/transports.ts → dist/types/transports.d.ts} +2 -7
- package/dist/types/transports.d.ts.map +1 -0
- package/dist/utils/adapter.d.ts +48 -0
- package/dist/utils/adapter.d.ts.map +1 -0
- package/dist/utils/ansi-colors.d.ts +156 -0
- package/dist/utils/ansi-colors.d.ts.map +1 -0
- package/dist/utils/environment-detector.d.ts +45 -0
- package/dist/utils/environment-detector.d.ts.map +1 -0
- package/dist/utils/environment.d.ts +47 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/formatting.d.ts +58 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/opentui-detection.d.ts +34 -0
- package/dist/utils/opentui-detection.d.ts.map +1 -0
- package/dist/utils/output.d.ts +46 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/stackTrace.d.ts +6 -0
- package/dist/utils/stackTrace.d.ts.map +1 -0
- package/dist/utils/timestamps.d.ts +20 -0
- package/dist/utils/timestamps.d.ts.map +1 -0
- package/{src/writers/BufferWriter.ts → dist/writers/BufferWriter.d.ts} +16 -77
- package/dist/writers/BufferWriter.d.ts.map +1 -0
- package/{src/writers/index.ts → dist/writers/index.d.ts} +1 -1
- package/dist/writers/index.d.ts.map +1 -0
- package/package.json +5 -1
- package/.claude/settings.local.json +0 -48
- package/.github/workflows/ci-quality.yml +0 -357
- package/.github/workflows/docs-demo.yml +0 -119
- package/.github/workflows/releases-core.yml +0 -512
- package/.github/workflows/releases-full.yml +0 -582
- package/.github/workflows-backup/ci.yml +0 -221
- package/.github/workflows-backup/nightly.yml +0 -196
- package/.github/workflows-backup/release-optimized.yml +0 -373
- package/.github/workflows-backup/release.yml +0 -269
- package/.release-notes-0.2.0.md +0 -129
- package/.yamllint +0 -28
- package/CHANGELOG.json +0 -1120
- package/CHANGELOG.md +0 -209
- package/CLAUDE.md +0 -217
- package/demo.html +0 -847
- package/docs/API.md +0 -918
- package/docs/CORE.md +0 -264
- package/docs/DEVELOPMENT.md +0 -731
- package/docs/EXPORTS.md +0 -467
- package/docs/PACKAGES.md +0 -244
- package/docs/STYLING.md +0 -405
- package/docs/_config.yml +0 -36
- package/docs/index.md +0 -179
- package/examples/README.md +0 -208
- package/examples/basic-logging.js +0 -75
- package/examples/data-export.js +0 -234
- package/examples/package.json +0 -16
- package/examples/performance-timing.js +0 -170
- package/examples/simplified-api.js +0 -124
- package/examples/styling-themes.js +0 -207
- package/index.html +0 -358
- package/packages/core/package.json +0 -57
- package/packages/exports/package.json +0 -41
- package/packages/nodejs-opentui/README.md +0 -232
- package/packages/nodejs-opentui/package.json +0 -72
- package/packages/nodejs-opentui/src/LogRenderer.ts +0 -171
- package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +0 -178
- package/packages/nodejs-opentui/src/components/LogBadge.tsx +0 -131
- package/packages/nodejs-opentui/src/index.ts +0 -133
- package/packages/nodejs-opentui/src/types.ts +0 -158
- package/packages/nodejs-opentui/tsconfig.json +0 -20
- package/packages/styling/package.json +0 -41
- package/playground/demo-all.ts +0 -95
- package/playground/demo-box.ts +0 -85
- package/playground/demo-levels.ts +0 -56
- package/playground/demo-real-world.ts +0 -98
- package/playground/demo-spinner.ts +0 -77
- package/playground/demo-steps.ts +0 -72
- package/playground/demo-table.ts +0 -83
- package/project-utils/README.md +0 -172
- package/project-utils/auto-release-gemini.ts +0 -1193
- package/project-utils/auto-release-ui.ts +0 -1329
- package/project-utils/commit-generator.ts +0 -1385
- package/project-utils/commit-ui.ts +0 -264
- package/project-utils/git-utils.ts +0 -199
- package/project-utils/github-release-manager.ts +0 -466
- package/project-utils/project-config.ts +0 -260
- package/project-utils/prompt-templates.js +0 -345
- package/project-utils/prompt-templates.ts +0 -422
- package/project-utils/version-manager.ts +0 -1078
- package/src/Logger.ts +0 -1858
- package/src/ScopedLogger.ts +0 -256
- package/src/cli/CommandProcessor.ts +0 -248
- package/src/cli/commands/ConfigCommand.ts +0 -93
- package/src/cli/commands/ExportCommand.ts +0 -276
- package/src/cli/commands/HistoryCommand.ts +0 -117
- package/src/cli/commands/StatusCommand.ts +0 -112
- package/src/cli/commands/ThemeCommand.ts +0 -88
- package/src/cli/help.ts +0 -127
- package/src/cli/index.ts +0 -71
- package/src/cli-primitives/box.ts +0 -86
- package/src/cli-primitives/cli-table.ts +0 -62
- package/src/cli-primitives/divider.ts +0 -17
- package/src/cli-primitives/header.ts +0 -18
- package/src/cli-primitives/server-fallback.ts +0 -54
- package/src/cli-primitives/spinner.ts +0 -133
- package/src/cli-primitives/step.ts +0 -22
- package/src/constants.ts +0 -313
- package/src/core.ts +0 -397
- package/src/example.ts +0 -210
- package/src/exports-module.ts +0 -311
- package/src/handlers/AnalyticsLogHandler.ts +0 -22
- package/src/handlers/ExportLogHandler.ts +0 -610
- package/src/handlers/FileLogHandler.ts +0 -169
- package/src/handlers/RemoteLogHandler.ts +0 -42
- package/src/hooks/HookManager.ts +0 -177
- package/src/index.ts +0 -395
- package/src/main.ts +0 -196
- package/src/serializers/SerializerRegistry.ts +0 -173
- package/src/style.css +0 -96
- package/src/styling/LogStyleBuilder.ts +0 -355
- package/src/styling/SemanticStyles.ts +0 -380
- package/src/styling/SmartPresets.ts +0 -288
- package/src/styling/StyleBuilder.ts +0 -319
- package/src/styling/StyleCache.ts +0 -131
- package/src/styling/banners.ts +0 -168
- package/src/styling/index.ts +0 -27
- package/src/styling/themes.ts +0 -235
- package/src/styling-module.ts +0 -244
- package/src/terminal/color-converter.ts +0 -315
- package/src/terminal/formatter.ts +0 -242
- package/src/terminal/terminal-renderer.ts +0 -342
- package/src/transports/ConsoleTransport.ts +0 -28
- package/src/transports/FileTransport.ts +0 -53
- package/src/transports/HttpTransport.ts +0 -56
- package/src/transports/TransportManager.ts +0 -130
- package/src/types/index.ts +0 -83
- package/src/typescript.svg +0 -1
- package/src/utils/adapter.ts +0 -291
- package/src/utils/ansi-colors.ts +0 -333
- package/src/utils/environment-detector.ts +0 -170
- package/src/utils/environment.ts +0 -94
- package/src/utils/formatting.ts +0 -332
- package/src/utils/index.ts +0 -33
- package/src/utils/opentui-detection.ts +0 -138
- package/src/utils/output.ts +0 -227
- package/src/utils/stackTrace.ts +0 -144
- package/src/utils/timestamps.ts +0 -80
- package/src/vite-env.d.ts +0 -1
- package/test-core-browser.html +0 -237
- package/test-core-node.js +0 -63
- package/tests/test-conflict-resolution.ts +0 -391
- package/tests/validate-workflows.sh +0 -131
- package/tests/yaml-autofix.sh +0 -146
- package/tsconfig.json +0 -50
- package/vite.config.ts +0 -256
- /package/{public → dist}/vite.svg +0 -0
package/dist/Logger.d.ts
ADDED
|
@@ -0,0 +1,976 @@
|
|
|
1
|
+
import { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget, CLILogLevel, ISpinnerHandle, IBoxOptions, ITableOptions } from './types/index.js';
|
|
2
|
+
import { SerializerRegistry } from './serializers/index.js';
|
|
3
|
+
import { HookManager } from './hooks/index.js';
|
|
4
|
+
import { TransportManager } from './transports/index.js';
|
|
5
|
+
import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
6
|
+
import { ExportLogHandler } from './handlers/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Clase principal Logger con capacidades avanzadas de logging
|
|
9
|
+
*
|
|
10
|
+
* @class Logger
|
|
11
|
+
* @description Sistema completo de logging con temas, badges, contextos y exportación.
|
|
12
|
+
* Detecta automáticamente el tema claro/oscuro del navegador.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Uso básico sin configuración
|
|
16
|
+
* import logger from '@mks2508/better-logger';
|
|
17
|
+
* logger.info('Aplicación iniciada');
|
|
18
|
+
* logger.success('Conexión establecida');
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Aplicar un preset temático
|
|
22
|
+
* logger.preset('cyberpunk');
|
|
23
|
+
* logger.warn('Advertencia con estilo neón');
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Logger con scope para componentes
|
|
27
|
+
* const auth = logger.component('Autenticación');
|
|
28
|
+
* auth.info('Usuario intentando login');
|
|
29
|
+
* auth.success('Login exitoso');
|
|
30
|
+
*
|
|
31
|
+
* @since 0.3.0
|
|
32
|
+
*/
|
|
33
|
+
export declare class Logger {
|
|
34
|
+
private config;
|
|
35
|
+
private scopedPrefix?;
|
|
36
|
+
private handlers;
|
|
37
|
+
private timers;
|
|
38
|
+
private groupDepth;
|
|
39
|
+
private exportHandler?;
|
|
40
|
+
private cliProcessor?;
|
|
41
|
+
private themeChangeListener?;
|
|
42
|
+
private badgeList;
|
|
43
|
+
private displaySettings;
|
|
44
|
+
private serializerRegistry;
|
|
45
|
+
private hookManager;
|
|
46
|
+
private transportManager?;
|
|
47
|
+
/** Whether CLI primitives (step, box, header, etc.) should be shown @since 5.0.0 */
|
|
48
|
+
private _showPrimitives;
|
|
49
|
+
/** Server-mode fallback for non-TTY environments @since 5.0.0 */
|
|
50
|
+
private _serverFallback?;
|
|
51
|
+
/**
|
|
52
|
+
* Crea una nueva instancia del Logger
|
|
53
|
+
*
|
|
54
|
+
* @param {Partial<LoggerConfig>} config - Configuración opcional del logger
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* // Logger con configuración personalizada
|
|
58
|
+
* const logger = new Logger({
|
|
59
|
+
* theme: 'neon',
|
|
60
|
+
* globalPrefix: 'MiApp',
|
|
61
|
+
* verbosity: 'debug',
|
|
62
|
+
* bufferSize: 1000
|
|
63
|
+
* });
|
|
64
|
+
*/
|
|
65
|
+
constructor(config?: Partial<LoggerConfig>);
|
|
66
|
+
/**
|
|
67
|
+
* Configura la detección automática de tema con listener de cambios
|
|
68
|
+
* @private
|
|
69
|
+
* @description Detecta automáticamente si el navegador está en modo claro u oscuro
|
|
70
|
+
*/
|
|
71
|
+
private setupAutoThemeDetection;
|
|
72
|
+
/**
|
|
73
|
+
* Obtiene la configuración actual del logger
|
|
74
|
+
*
|
|
75
|
+
* @returns {LoggerConfig} Configuración completa actual
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* const config = logger.getConfig();
|
|
79
|
+
* console.log('Verbosidad actual:', config.verbosity);
|
|
80
|
+
* console.log('Tema actual:', config.theme);
|
|
81
|
+
*
|
|
82
|
+
* @since 0.3.0
|
|
83
|
+
*/
|
|
84
|
+
getConfig(): LoggerConfig;
|
|
85
|
+
/**
|
|
86
|
+
* Actualiza la configuración del logger
|
|
87
|
+
*
|
|
88
|
+
* @param {Partial<LoggerConfig>} updates - Propiedades a actualizar
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* logger.updateConfig({
|
|
92
|
+
* verbosity: 'debug',
|
|
93
|
+
* enableTimestamps: false,
|
|
94
|
+
* theme: 'cyberpunk'
|
|
95
|
+
* });
|
|
96
|
+
*
|
|
97
|
+
* @since 0.3.0
|
|
98
|
+
*/
|
|
99
|
+
updateConfig(updates: Partial<LoggerConfig>): void;
|
|
100
|
+
/**
|
|
101
|
+
* Establece el prefijo global para todos los mensajes de log
|
|
102
|
+
*
|
|
103
|
+
* @param {string} prefix - Prefijo a usar
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* logger.setGlobalPrefix('MiApp');
|
|
107
|
+
* logger.info('Iniciado'); // [MiApp] Iniciado
|
|
108
|
+
*
|
|
109
|
+
* @since 0.3.0
|
|
110
|
+
*/
|
|
111
|
+
setGlobalPrefix(prefix: string): void;
|
|
112
|
+
/**
|
|
113
|
+
* Establece el nivel de verbosidad para filtrar la salida de logs
|
|
114
|
+
*
|
|
115
|
+
* @param {Verbosity} level - Nivel mínimo a mostrar ('debug' | 'info' | 'warn' | 'error' | 'critical' | 'silent')
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* logger.setVerbosity('warn'); // Solo muestra warn, error y critical
|
|
119
|
+
* logger.setVerbosity('debug'); // Muestra todos los niveles
|
|
120
|
+
* logger.setVerbosity('silent'); // No muestra nada
|
|
121
|
+
*
|
|
122
|
+
* @since 0.3.0
|
|
123
|
+
*/
|
|
124
|
+
setVerbosity(level: Verbosity): void;
|
|
125
|
+
/**
|
|
126
|
+
* Establece el tema del logger
|
|
127
|
+
*
|
|
128
|
+
* @param {ThemeVariant} theme - Tema a aplicar ('default' | 'dark' | 'light' | 'neon' | 'minimal' | 'cyberpunk')
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* logger.setTheme('neon'); // Tema con colores neón
|
|
132
|
+
* logger.setTheme('minimal'); // Tema minimalista
|
|
133
|
+
* logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
|
|
134
|
+
*
|
|
135
|
+
* @since 0.3.0
|
|
136
|
+
*/
|
|
137
|
+
setTheme(theme: ThemeVariant): void;
|
|
138
|
+
/**
|
|
139
|
+
* Establece el tipo de banner para mostrar en la inicialización
|
|
140
|
+
*
|
|
141
|
+
* @param {BannerType} bannerType - Tipo de banner ('simple' | 'ascii' | 'unicode' | 'svg' | 'animated')
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* logger.setBannerType('ascii'); // Banner con arte ASCII
|
|
145
|
+
* logger.setBannerType('unicode'); // Banner con caracteres Unicode
|
|
146
|
+
* logger.setBannerType('animated'); // Banner con animación
|
|
147
|
+
*
|
|
148
|
+
* @since 0.3.0
|
|
149
|
+
*/
|
|
150
|
+
setBannerType(bannerType: BannerType): void;
|
|
151
|
+
/**
|
|
152
|
+
* Reinicia el logger a la configuración por defecto
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* logger.resetConfig();
|
|
156
|
+
* // Todo vuelve a la configuración inicial
|
|
157
|
+
*
|
|
158
|
+
* @since 0.3.0
|
|
159
|
+
*/
|
|
160
|
+
resetConfig(): void;
|
|
161
|
+
/**
|
|
162
|
+
* Método de limpieza para eliminar listeners y liberar recursos
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* // Antes de cerrar la aplicación
|
|
166
|
+
* logger.cleanup();
|
|
167
|
+
*
|
|
168
|
+
* @since 0.3.0
|
|
169
|
+
*/
|
|
170
|
+
cleanup(): void;
|
|
171
|
+
/**
|
|
172
|
+
* Aplica un preset inteligente - funciona perfectamente sin configuración
|
|
173
|
+
*
|
|
174
|
+
* @param {string} name - Nombre del preset a aplicar
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* // Presets disponibles
|
|
178
|
+
* logger.preset('default'); // Limpio y adaptativo
|
|
179
|
+
* logger.preset('cyberpunk'); // Colores neón, efectos brillantes
|
|
180
|
+
* logger.preset('glassmorphism'); // Efectos de blur modernos
|
|
181
|
+
* logger.preset('minimal'); // Minimalista y elegante
|
|
182
|
+
* logger.preset('debug'); // Modo desarrollo detallado
|
|
183
|
+
* logger.preset('production'); // Optimizado para producción
|
|
184
|
+
*
|
|
185
|
+
* @since 0.3.0
|
|
186
|
+
*/
|
|
187
|
+
preset(name: string): void;
|
|
188
|
+
/**
|
|
189
|
+
* Lista todos los presets disponibles
|
|
190
|
+
*
|
|
191
|
+
* @returns {string[]} Array con nombres de presets disponibles
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* const disponibles = logger.presets();
|
|
195
|
+
* console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
|
|
196
|
+
*
|
|
197
|
+
* @since 0.3.0
|
|
198
|
+
*/
|
|
199
|
+
presets(): string[];
|
|
200
|
+
/**
|
|
201
|
+
* Oculta el timestamp en los logs
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* logger.hideTimestamp();
|
|
205
|
+
* logger.info('Sin marca de tiempo'); // Sin timestamp visible
|
|
206
|
+
*
|
|
207
|
+
* @since 0.3.0
|
|
208
|
+
*/
|
|
209
|
+
hideTimestamp(): this;
|
|
210
|
+
/**
|
|
211
|
+
* Muestra el timestamp en los logs
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* logger.showTimestamp();
|
|
215
|
+
* logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
|
|
216
|
+
*
|
|
217
|
+
* @since 0.3.0
|
|
218
|
+
*/
|
|
219
|
+
showTimestamp(): this;
|
|
220
|
+
/**
|
|
221
|
+
* Oculta la información de ubicación (archivo:línea) en los logs
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* logger.hideLocation();
|
|
225
|
+
* logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
|
|
226
|
+
*
|
|
227
|
+
* @since 0.3.0
|
|
228
|
+
*/
|
|
229
|
+
hideLocation(): this;
|
|
230
|
+
/**
|
|
231
|
+
* Muestra la información de ubicación (archivo:línea) en los logs
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* logger.showLocation();
|
|
235
|
+
* logger.debug('Con ubicación'); // app.js:42 Con ubicación
|
|
236
|
+
*
|
|
237
|
+
* @since 0.3.0
|
|
238
|
+
*/
|
|
239
|
+
showLocation(): this;
|
|
240
|
+
/**
|
|
241
|
+
* Oculta los badges en los logs
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* logger.hideBadges();
|
|
245
|
+
* const api = logger.api('REST');
|
|
246
|
+
* api.info('Sin badges'); // Sin mostrar [API] [REST]
|
|
247
|
+
*
|
|
248
|
+
* @since 0.3.0
|
|
249
|
+
*/
|
|
250
|
+
hideBadges(): this;
|
|
251
|
+
/**
|
|
252
|
+
* Muestra los badges en los logs
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* logger.showBadges();
|
|
256
|
+
* const api = logger.api('GraphQL');
|
|
257
|
+
* api.info('Con badges'); // [API] [GraphQL] Con badges
|
|
258
|
+
*
|
|
259
|
+
* @since 0.3.0
|
|
260
|
+
*/
|
|
261
|
+
showBadges(): this;
|
|
262
|
+
/**
|
|
263
|
+
* Establece múltiples badges para los logs
|
|
264
|
+
*
|
|
265
|
+
* @param {string[]} badges - Array de badges a mostrar
|
|
266
|
+
* @returns {this} Logger instance para encadenamiento
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* logger.badges(['v3', 'stable']).info('Release publicado');
|
|
270
|
+
* logger.badges(['API', 'v2']).warn('Endpoint deprecado');
|
|
271
|
+
*
|
|
272
|
+
* @since 3.0.0
|
|
273
|
+
*/
|
|
274
|
+
badges(badges: string[]): this;
|
|
275
|
+
/**
|
|
276
|
+
* Añade un badge individual a la lista
|
|
277
|
+
*
|
|
278
|
+
* @param {string} badge - Badge a añadir
|
|
279
|
+
* @returns {this} Logger instance para encadenamiento
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* logger.badge('DEBUG').badge('AUTH').info('Token validado');
|
|
283
|
+
*
|
|
284
|
+
* @since 3.0.0
|
|
285
|
+
*/
|
|
286
|
+
badge(badge: string): this;
|
|
287
|
+
/**
|
|
288
|
+
* Limpia todos los badges activos
|
|
289
|
+
*
|
|
290
|
+
* @returns {this} Logger instance para encadenamiento
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* logger.clearBadges().info('Sin badges');
|
|
294
|
+
*
|
|
295
|
+
* @since 3.0.0
|
|
296
|
+
*/
|
|
297
|
+
clearBadges(): this;
|
|
298
|
+
component(name: string): ComponentLogger;
|
|
299
|
+
api(name: string): APILogger;
|
|
300
|
+
scope(name: string): ScopedLogger;
|
|
301
|
+
/**
|
|
302
|
+
* Personalización simple con configuración mínima
|
|
303
|
+
*
|
|
304
|
+
* @param {Object} overrides - Opciones de personalización
|
|
305
|
+
* @param {Object} overrides.message - Configuración del mensaje
|
|
306
|
+
* @param {Object} overrides.timestamp - Configuración del timestamp
|
|
307
|
+
* @param {Object} overrides.location - Configuración de ubicación
|
|
308
|
+
* @param {Object} overrides.level - Configuración del nivel
|
|
309
|
+
* @param {Object} overrides.prefix - Configuración del prefijo
|
|
310
|
+
* @param {string} overrides.spacing - Espaciado: 'compact' | 'normal' | 'spacious'
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* logger.customize({
|
|
314
|
+
* message: { color: '#00ff00', size: '16px' },
|
|
315
|
+
* timestamp: { show: false },
|
|
316
|
+
* spacing: 'compact'
|
|
317
|
+
* });
|
|
318
|
+
*
|
|
319
|
+
* @since 0.3.0
|
|
320
|
+
*/
|
|
321
|
+
customize(overrides: {
|
|
322
|
+
message?: {
|
|
323
|
+
color?: string;
|
|
324
|
+
font?: string;
|
|
325
|
+
size?: string;
|
|
326
|
+
};
|
|
327
|
+
timestamp?: {
|
|
328
|
+
show?: boolean;
|
|
329
|
+
color?: string;
|
|
330
|
+
};
|
|
331
|
+
location?: {
|
|
332
|
+
show?: boolean;
|
|
333
|
+
color?: string;
|
|
334
|
+
};
|
|
335
|
+
level?: {
|
|
336
|
+
uppercase?: boolean;
|
|
337
|
+
style?: string;
|
|
338
|
+
};
|
|
339
|
+
prefix?: {
|
|
340
|
+
show?: boolean;
|
|
341
|
+
style?: string;
|
|
342
|
+
};
|
|
343
|
+
spacing?: 'compact' | 'normal' | 'spacious';
|
|
344
|
+
}): void;
|
|
345
|
+
/**
|
|
346
|
+
* Access advanced styling API (for power users)
|
|
347
|
+
*/
|
|
348
|
+
styles(): any;
|
|
349
|
+
/**
|
|
350
|
+
* Añade un handler personalizado para extender funcionalidad
|
|
351
|
+
*
|
|
352
|
+
* @param {ILogHandler} handler - Handler que implementa ILogHandler
|
|
353
|
+
*
|
|
354
|
+
* @example
|
|
355
|
+
* // Handler personalizado para enviar logs a servidor
|
|
356
|
+
* const remoteHandler = new RemoteLogHandler('https://api.ejemplo.com/logs');
|
|
357
|
+
* logger.addHandler(remoteHandler);
|
|
358
|
+
*
|
|
359
|
+
* @example
|
|
360
|
+
* // Handler para guardar en archivo
|
|
361
|
+
* const fileHandler = new FileLogHandler('./app.log');
|
|
362
|
+
* logger.addHandler(fileHandler);
|
|
363
|
+
*
|
|
364
|
+
* @since 0.3.0
|
|
365
|
+
*/
|
|
366
|
+
addHandler(handler: ILogHandler): void;
|
|
367
|
+
/**
|
|
368
|
+
* Obtiene todos los handlers registrados
|
|
369
|
+
*
|
|
370
|
+
* @returns {ILogHandler[]} Array de handlers activos
|
|
371
|
+
* @since 0.3.0
|
|
372
|
+
*/
|
|
373
|
+
getHandlers(): ILogHandler[];
|
|
374
|
+
/**
|
|
375
|
+
* Obtiene el handler de exportación si está disponible
|
|
376
|
+
*
|
|
377
|
+
* @returns {ExportLogHandler | undefined} Handler de exportación o undefined
|
|
378
|
+
* @since 0.3.0
|
|
379
|
+
*/
|
|
380
|
+
getExportHandler(): ExportLogHandler | undefined;
|
|
381
|
+
/**
|
|
382
|
+
* Añade un serializador personalizado para un tipo específico
|
|
383
|
+
*
|
|
384
|
+
* @param type - Constructor del tipo a serializar
|
|
385
|
+
* @param serializer - Función de serialización
|
|
386
|
+
* @param priority - Prioridad (mayor = primero)
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* logger.addSerializer(Error, (err) => ({
|
|
390
|
+
* name: err.name,
|
|
391
|
+
* message: err.message,
|
|
392
|
+
* stack: err.stack?.split('\n').slice(0, 5)
|
|
393
|
+
* }));
|
|
394
|
+
*
|
|
395
|
+
* @since 3.0.0
|
|
396
|
+
*/
|
|
397
|
+
addSerializer<T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number): void;
|
|
398
|
+
/**
|
|
399
|
+
* Elimina un serializador registrado
|
|
400
|
+
*
|
|
401
|
+
* @param type - Constructor del tipo a remover
|
|
402
|
+
* @returns true si se eliminó
|
|
403
|
+
*
|
|
404
|
+
* @since 3.0.0
|
|
405
|
+
*/
|
|
406
|
+
removeSerializer<T>(type: new (...args: any[]) => T): boolean;
|
|
407
|
+
/**
|
|
408
|
+
* Obtiene el registry de serializadores
|
|
409
|
+
*
|
|
410
|
+
* @returns SerializerRegistry
|
|
411
|
+
* @since 3.0.0
|
|
412
|
+
*/
|
|
413
|
+
getSerializerRegistry(): SerializerRegistry;
|
|
414
|
+
/**
|
|
415
|
+
* Registra un hook para un evento
|
|
416
|
+
*
|
|
417
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
418
|
+
* @param callback - Función a ejecutar
|
|
419
|
+
* @param priority - Prioridad (mayor = primero)
|
|
420
|
+
* @returns Función para desregistrar
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* const unsubscribe = logger.on('beforeLog', (entry) => {
|
|
424
|
+
* entry.correlationId = getCorrelationId();
|
|
425
|
+
* return entry;
|
|
426
|
+
* });
|
|
427
|
+
*
|
|
428
|
+
* @since 3.0.0
|
|
429
|
+
*/
|
|
430
|
+
on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
431
|
+
/**
|
|
432
|
+
* Registra un hook que se ejecuta solo una vez
|
|
433
|
+
*
|
|
434
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
435
|
+
* @param callback - Función a ejecutar
|
|
436
|
+
* @param priority - Prioridad (mayor = primero)
|
|
437
|
+
* @returns Función para desregistrar
|
|
438
|
+
*
|
|
439
|
+
* @since 3.0.0
|
|
440
|
+
*/
|
|
441
|
+
once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
442
|
+
/**
|
|
443
|
+
* Elimina un hook registrado
|
|
444
|
+
*
|
|
445
|
+
* @param event - Evento del hook
|
|
446
|
+
* @param callback - Callback a remover
|
|
447
|
+
* @returns true si se eliminó
|
|
448
|
+
*
|
|
449
|
+
* @since 3.0.0
|
|
450
|
+
*/
|
|
451
|
+
off(event: HookEvent, callback: HookCallback): boolean;
|
|
452
|
+
/**
|
|
453
|
+
* Añade un middleware al pipeline
|
|
454
|
+
*
|
|
455
|
+
* @param middleware - Función middleware
|
|
456
|
+
* @param priority - Prioridad (mayor = primero)
|
|
457
|
+
* @returns Función para desregistrar
|
|
458
|
+
*
|
|
459
|
+
* @example
|
|
460
|
+
* logger.use((entry, next) => {
|
|
461
|
+
* entry.requestId = asyncLocalStorage.getStore()?.requestId;
|
|
462
|
+
* next();
|
|
463
|
+
* });
|
|
464
|
+
*
|
|
465
|
+
* @since 3.0.0
|
|
466
|
+
*/
|
|
467
|
+
use(middleware: MiddlewareFn, priority?: number): () => void;
|
|
468
|
+
/**
|
|
469
|
+
* Obtiene el HookManager
|
|
470
|
+
*
|
|
471
|
+
* @returns HookManager
|
|
472
|
+
* @since 3.0.0
|
|
473
|
+
*/
|
|
474
|
+
getHookManager(): HookManager;
|
|
475
|
+
/**
|
|
476
|
+
* Añade un transport para envío de logs
|
|
477
|
+
*
|
|
478
|
+
* @param target - Configuración del transport
|
|
479
|
+
* @returns ID único del transport
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* // File transport
|
|
483
|
+
* logger.addTransport({
|
|
484
|
+
* target: 'file',
|
|
485
|
+
* options: { destination: '/var/log/app.log' }
|
|
486
|
+
* });
|
|
487
|
+
*
|
|
488
|
+
* @example
|
|
489
|
+
* // HTTP transport con batching
|
|
490
|
+
* logger.addTransport({
|
|
491
|
+
* target: 'http',
|
|
492
|
+
* options: {
|
|
493
|
+
* url: 'https://logs.example.com',
|
|
494
|
+
* batchSize: 100,
|
|
495
|
+
* flushInterval: 5000
|
|
496
|
+
* },
|
|
497
|
+
* level: 'warn'
|
|
498
|
+
* });
|
|
499
|
+
*
|
|
500
|
+
* @since 3.0.0
|
|
501
|
+
*/
|
|
502
|
+
addTransport(target: TransportTarget): string;
|
|
503
|
+
/**
|
|
504
|
+
* Elimina un transport
|
|
505
|
+
*
|
|
506
|
+
* @param id - ID del transport a remover
|
|
507
|
+
* @returns true si se eliminó
|
|
508
|
+
*
|
|
509
|
+
* @since 3.0.0
|
|
510
|
+
*/
|
|
511
|
+
removeTransport(id: string): boolean;
|
|
512
|
+
/**
|
|
513
|
+
* Fuerza el flush de todos los transports
|
|
514
|
+
*
|
|
515
|
+
* @returns Promise que resuelve cuando todos los buffers están vaciados
|
|
516
|
+
*
|
|
517
|
+
* @since 3.0.0
|
|
518
|
+
*/
|
|
519
|
+
flushTransports(): Promise<void>;
|
|
520
|
+
/**
|
|
521
|
+
* Cierra todos los transports
|
|
522
|
+
*
|
|
523
|
+
* @returns Promise que resuelve cuando todos están cerrados
|
|
524
|
+
*
|
|
525
|
+
* @since 3.0.0
|
|
526
|
+
*/
|
|
527
|
+
closeTransports(): Promise<void>;
|
|
528
|
+
/**
|
|
529
|
+
* Obtiene el TransportManager
|
|
530
|
+
*
|
|
531
|
+
* @returns TransportManager o undefined si no hay transports
|
|
532
|
+
* @since 3.0.0
|
|
533
|
+
*/
|
|
534
|
+
getTransportManager(): TransportManager | undefined;
|
|
535
|
+
/**
|
|
536
|
+
* Verifica si un nivel de log debe mostrarse según la verbosidad actual
|
|
537
|
+
* @private
|
|
538
|
+
* @param {LogLevel} level - Nivel de log a verificar
|
|
539
|
+
* @returns {boolean} True si debe mostrarse, false si no
|
|
540
|
+
*/
|
|
541
|
+
private shouldLog;
|
|
542
|
+
/**
|
|
543
|
+
* Obtiene el prefijo efectivo (global + scope)
|
|
544
|
+
* @private
|
|
545
|
+
* @returns {string | undefined} Prefijo combinado o undefined
|
|
546
|
+
*/
|
|
547
|
+
private getEffectivePrefix;
|
|
548
|
+
/**
|
|
549
|
+
* Método central de logging que maneja estilos y formato
|
|
550
|
+
* @protected
|
|
551
|
+
* @param {LogLevel} level - Nivel del log
|
|
552
|
+
* @param {...any} args - Argumentos a loggear
|
|
553
|
+
*/
|
|
554
|
+
protected log(level: LogLevel, ...args: any[]): void;
|
|
555
|
+
logWithBindings(bindings: Bindings, level: LogLevel, ...args: any[]): void;
|
|
556
|
+
debug(...args: any[]): void;
|
|
557
|
+
/**
|
|
558
|
+
* Registra mensajes informativos
|
|
559
|
+
*
|
|
560
|
+
* @param {...any} args - Mensajes y datos informativos
|
|
561
|
+
*
|
|
562
|
+
* @example
|
|
563
|
+
* logger.info('Servidor iniciado en puerto 3000');
|
|
564
|
+
* logger.info('Usuario conectado:', userId);
|
|
565
|
+
* logger.info('Procesando', totalItems, 'elementos');
|
|
566
|
+
*
|
|
567
|
+
* @since 0.3.0
|
|
568
|
+
*/
|
|
569
|
+
info(...args: any[]): void;
|
|
570
|
+
/**
|
|
571
|
+
* Registra mensajes de advertencia
|
|
572
|
+
*
|
|
573
|
+
* @param {...any} args - Mensajes de advertencia
|
|
574
|
+
*
|
|
575
|
+
* @example
|
|
576
|
+
* logger.warn('Memoria al 85% de capacidad');
|
|
577
|
+
* logger.warn('API deprecada, usar v2');
|
|
578
|
+
* logger.warn('Reintentos agotados:', maxRetries);
|
|
579
|
+
*
|
|
580
|
+
* @since 0.3.0
|
|
581
|
+
*/
|
|
582
|
+
warn(...args: any[]): void;
|
|
583
|
+
/**
|
|
584
|
+
* Registra mensajes de error
|
|
585
|
+
*
|
|
586
|
+
* @param {...any} args - Mensajes de error y stack traces
|
|
587
|
+
*
|
|
588
|
+
* @example
|
|
589
|
+
* logger.error('Fallo en conexión a base de datos');
|
|
590
|
+
* logger.error('Error al procesar:', error.message, error.stack);
|
|
591
|
+
* logger.error('Código de error:', errorCode);
|
|
592
|
+
*
|
|
593
|
+
* @since 0.3.0
|
|
594
|
+
*/
|
|
595
|
+
error(...args: any[]): void;
|
|
596
|
+
/**
|
|
597
|
+
* Registra mensajes de éxito (nivel info especial)
|
|
598
|
+
*
|
|
599
|
+
* @param {...any} args - Mensajes de operaciones exitosas
|
|
600
|
+
*
|
|
601
|
+
* @example
|
|
602
|
+
* logger.success('Base de datos conectada');
|
|
603
|
+
* logger.success('Usuario creado con ID:', userId);
|
|
604
|
+
* logger.success('✓ Tests pasados: 42/42');
|
|
605
|
+
*
|
|
606
|
+
* @since 0.3.0
|
|
607
|
+
*/
|
|
608
|
+
success(...args: any[]): void;
|
|
609
|
+
/**
|
|
610
|
+
* Registra información de trace (debugging detallado)
|
|
611
|
+
*
|
|
612
|
+
* @param {...any} args - Datos detallados para debugging
|
|
613
|
+
*
|
|
614
|
+
* @example
|
|
615
|
+
* logger.trace('Entrando en función processData');
|
|
616
|
+
* logger.trace('Stack completo:', new Error().stack);
|
|
617
|
+
*
|
|
618
|
+
* @since 0.3.0
|
|
619
|
+
*/
|
|
620
|
+
trace(...args: any[]): void;
|
|
621
|
+
/**
|
|
622
|
+
* Registra errores críticos (prioridad más alta)
|
|
623
|
+
*
|
|
624
|
+
* @param {...any} args - Errores críticos del sistema
|
|
625
|
+
*
|
|
626
|
+
* @example
|
|
627
|
+
* logger.critical('Sistema caído - reinicio inmediato requerido');
|
|
628
|
+
* logger.critical('Pérdida de datos detectada');
|
|
629
|
+
* logger.critical('Brecha de seguridad:', securityError);
|
|
630
|
+
*
|
|
631
|
+
* @since 0.3.0
|
|
632
|
+
*/
|
|
633
|
+
critical(...args: any[]): void;
|
|
634
|
+
/**
|
|
635
|
+
* Muestra datos en formato de tabla
|
|
636
|
+
*
|
|
637
|
+
* @param {any} data - Datos a mostrar (array de objetos o matriz)
|
|
638
|
+
* @param {string[]} columns - Columnas específicas a mostrar (opcional)
|
|
639
|
+
*
|
|
640
|
+
* @example
|
|
641
|
+
* const usuarios = [
|
|
642
|
+
* { id: 1, nombre: 'Juan', edad: 30 },
|
|
643
|
+
* { id: 2, nombre: 'María', edad: 25 }
|
|
644
|
+
* ];
|
|
645
|
+
* logger.table(usuarios);
|
|
646
|
+
* logger.table(usuarios, ['nombre', 'edad']); // Solo estas columnas
|
|
647
|
+
*
|
|
648
|
+
* @since 0.3.0
|
|
649
|
+
*/
|
|
650
|
+
table(data: any, columns?: string[]): void;
|
|
651
|
+
/**
|
|
652
|
+
* Inicia un grupo colapsable en la consola
|
|
653
|
+
*
|
|
654
|
+
* @param {string} label - Etiqueta del grupo
|
|
655
|
+
* @param {boolean} collapsed - Si el grupo inicia colapsado (default: false)
|
|
656
|
+
*
|
|
657
|
+
* @example
|
|
658
|
+
* logger.group('Procesando usuarios');
|
|
659
|
+
* logger.info('Usuario 1 procesado');
|
|
660
|
+
* logger.info('Usuario 2 procesado');
|
|
661
|
+
* logger.groupEnd();
|
|
662
|
+
*
|
|
663
|
+
* @example
|
|
664
|
+
* // Grupo colapsado por defecto
|
|
665
|
+
* logger.group('Detalles adicionales', true);
|
|
666
|
+
* logger.debug('Información detallada aquí');
|
|
667
|
+
* logger.groupEnd();
|
|
668
|
+
*
|
|
669
|
+
* @since 0.3.0
|
|
670
|
+
*/
|
|
671
|
+
group(label: string, collapsed?: boolean): void;
|
|
672
|
+
/**
|
|
673
|
+
* Finaliza el grupo actual de la consola
|
|
674
|
+
*
|
|
675
|
+
* @example
|
|
676
|
+
* logger.group('Operaciones');
|
|
677
|
+
* logger.info('Operación 1');
|
|
678
|
+
* logger.info('Operación 2');
|
|
679
|
+
* logger.groupEnd(); // Cierra el grupo
|
|
680
|
+
*
|
|
681
|
+
* @since 0.3.0
|
|
682
|
+
*/
|
|
683
|
+
groupEnd(): void;
|
|
684
|
+
/**
|
|
685
|
+
* Inicia un temporizador con la etiqueta dada
|
|
686
|
+
*
|
|
687
|
+
* @param {string} label - Etiqueta identificadora del temporizador
|
|
688
|
+
*
|
|
689
|
+
* @example
|
|
690
|
+
* logger.time('proceso-datos');
|
|
691
|
+
* // ... operación costosa ...
|
|
692
|
+
* logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
|
|
693
|
+
*
|
|
694
|
+
* @since 0.3.0
|
|
695
|
+
*/
|
|
696
|
+
time(label: string): void;
|
|
697
|
+
/**
|
|
698
|
+
* Finaliza un temporizador y muestra el tiempo transcurrido
|
|
699
|
+
*
|
|
700
|
+
* @param {string} label - Etiqueta del temporizador a finalizar
|
|
701
|
+
* @returns {number} Elapsed milliseconds, or -1 if timer not found
|
|
702
|
+
*
|
|
703
|
+
* @example
|
|
704
|
+
* logger.time('consulta-db');
|
|
705
|
+
* await consultarBaseDatos();
|
|
706
|
+
* const elapsed = logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
|
|
707
|
+
*
|
|
708
|
+
* @since 0.3.0
|
|
709
|
+
*/
|
|
710
|
+
timeEnd(label: string): number;
|
|
711
|
+
/**
|
|
712
|
+
* Muestra un banner con el tipo especificado o configurado
|
|
713
|
+
*
|
|
714
|
+
* @param {BannerType} bannerType - Tipo de banner (opcional)
|
|
715
|
+
*
|
|
716
|
+
* @example
|
|
717
|
+
* logger.showBanner('ascii'); // Banner ASCII art
|
|
718
|
+
* logger.showBanner('unicode'); // Banner con caracteres Unicode
|
|
719
|
+
* logger.showBanner('svg'); // Banner con gráfico SVG
|
|
720
|
+
* logger.showBanner(); // Usa el tipo configurado
|
|
721
|
+
*
|
|
722
|
+
* @since 0.3.0
|
|
723
|
+
*/
|
|
724
|
+
showBanner(bannerType?: BannerType): void;
|
|
725
|
+
/**
|
|
726
|
+
* Registra mensaje con imagen SVG de fondo
|
|
727
|
+
*
|
|
728
|
+
* @param {string} message - Mensaje a mostrar
|
|
729
|
+
* @param {string} svgContent - Contenido SVG personalizado (opcional)
|
|
730
|
+
* @param {StyleOptions} options - Opciones de estilo (ancho, alto, padding)
|
|
731
|
+
*
|
|
732
|
+
* @example
|
|
733
|
+
* // SVG automático con gradiente
|
|
734
|
+
* logger.logWithSVG('🎆 Bienvenido a Better Logger');
|
|
735
|
+
*
|
|
736
|
+
* @example
|
|
737
|
+
* // SVG personalizado
|
|
738
|
+
* const customSVG = '<svg>...</svg>';
|
|
739
|
+
* logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
|
|
740
|
+
*
|
|
741
|
+
* @since 0.3.0
|
|
742
|
+
*/
|
|
743
|
+
logWithSVG(message: string, svgContent?: string, options?: StyleOptions): void;
|
|
744
|
+
/**
|
|
745
|
+
* Registra mensaje con gradiente animado de fondo
|
|
746
|
+
*
|
|
747
|
+
* @param {string} message - Mensaje a animar
|
|
748
|
+
* @param {number} duration - Duración de la animación en segundos (default: 3)
|
|
749
|
+
*
|
|
750
|
+
* @example
|
|
751
|
+
* logger.logAnimated('🌈 Animación en progreso');
|
|
752
|
+
* logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
|
|
753
|
+
*
|
|
754
|
+
* @since 0.3.0
|
|
755
|
+
*/
|
|
756
|
+
logAnimated(message: string, duration?: number): void;
|
|
757
|
+
/**
|
|
758
|
+
* Agrupa logs por una propiedad específica usando Object.groupBy (cuando esté disponible)
|
|
759
|
+
*
|
|
760
|
+
* @param {T[]} items - Array de elementos a agrupar
|
|
761
|
+
* @param {Function} groupBy - Función que retorna la clave de agrupación
|
|
762
|
+
*
|
|
763
|
+
* @example
|
|
764
|
+
* const ventas = [
|
|
765
|
+
* { producto: 'Laptop', categoria: 'Electrónica', precio: 1200 },
|
|
766
|
+
* { producto: 'Mouse', categoria: 'Electrónica', precio: 25 },
|
|
767
|
+
* { producto: 'Libro', categoria: 'Literatura', precio: 15 }
|
|
768
|
+
* ];
|
|
769
|
+
* logger.logGrouped(ventas, item => item.categoria);
|
|
770
|
+
*
|
|
771
|
+
* @since 0.3.0
|
|
772
|
+
*/
|
|
773
|
+
logGrouped<T>(items: T[], groupBy: (item: T) => string): void;
|
|
774
|
+
/**
|
|
775
|
+
* Displays a step progress indicator in the terminal
|
|
776
|
+
*
|
|
777
|
+
* @param {number} current - Current step number
|
|
778
|
+
* @param {number} total - Total number of steps
|
|
779
|
+
* @param {string} message - Step description
|
|
780
|
+
*
|
|
781
|
+
* @example
|
|
782
|
+
* logger.step(1, 5, 'Analyzing repository...');
|
|
783
|
+
* logger.step(2, 5, 'Generating commit message...');
|
|
784
|
+
*
|
|
785
|
+
* @since 5.0.0
|
|
786
|
+
*/
|
|
787
|
+
step(current: number, total: number, message: string): void;
|
|
788
|
+
/**
|
|
789
|
+
* Displays a styled header with optional subtitle
|
|
790
|
+
*
|
|
791
|
+
* @param {string} title - Main title text
|
|
792
|
+
* @param {string} subtitle - Optional subtitle (rendered dimmed)
|
|
793
|
+
*
|
|
794
|
+
* @example
|
|
795
|
+
* logger.header('Commit Wizard', 'v2.0.0');
|
|
796
|
+
*
|
|
797
|
+
* @since 5.0.0
|
|
798
|
+
*/
|
|
799
|
+
header(title: string, subtitle?: string): void;
|
|
800
|
+
/**
|
|
801
|
+
* Displays a horizontal divider line
|
|
802
|
+
*
|
|
803
|
+
* @example
|
|
804
|
+
* logger.divider();
|
|
805
|
+
*
|
|
806
|
+
* @since 5.0.0
|
|
807
|
+
*/
|
|
808
|
+
divider(): void;
|
|
809
|
+
/**
|
|
810
|
+
* Outputs a blank line
|
|
811
|
+
*
|
|
812
|
+
* @example
|
|
813
|
+
* logger.blank();
|
|
814
|
+
*
|
|
815
|
+
* @since 5.0.0
|
|
816
|
+
*/
|
|
817
|
+
blank(): void;
|
|
818
|
+
/**
|
|
819
|
+
* Renders content inside a bordered box
|
|
820
|
+
*
|
|
821
|
+
* @param {string} content - Content string (may contain newlines)
|
|
822
|
+
* @param {IBoxOptions} options - Box rendering options
|
|
823
|
+
*
|
|
824
|
+
* @example
|
|
825
|
+
* logger.box('3 commits generated\nProvider: Groq', { title: 'Done', borderColor: '#00ff00' });
|
|
826
|
+
*
|
|
827
|
+
* @since 5.0.0
|
|
828
|
+
*/
|
|
829
|
+
box(content: string, options?: IBoxOptions): void;
|
|
830
|
+
/**
|
|
831
|
+
* Renders an array of objects as a formatted ASCII table.
|
|
832
|
+
* Note: This is distinct from the existing table() method which uses console.table.
|
|
833
|
+
*
|
|
834
|
+
* @param {Record<string, unknown>[]} rows - Array of row objects
|
|
835
|
+
* @param {ITableOptions} options - Table rendering options
|
|
836
|
+
*
|
|
837
|
+
* @example
|
|
838
|
+
* logger.cliTable([
|
|
839
|
+
* { provider: 'Groq', status: 'Available', model: 'llama-3.3-70b' },
|
|
840
|
+
* { provider: 'Gemini', status: 'Configured', model: 'gemini-2.5-flash' },
|
|
841
|
+
* ]);
|
|
842
|
+
*
|
|
843
|
+
* @since 5.0.0
|
|
844
|
+
*/
|
|
845
|
+
cliTable(rows: Record<string, unknown>[], options?: ITableOptions): void;
|
|
846
|
+
/**
|
|
847
|
+
* Creates a spinner handle for showing progress during async operations.
|
|
848
|
+
* Returns a NoopSpinner in non-TTY environments.
|
|
849
|
+
*
|
|
850
|
+
* @param {string} message - Initial spinner text
|
|
851
|
+
* @returns {ISpinnerHandle} Spinner controller
|
|
852
|
+
*
|
|
853
|
+
* @example
|
|
854
|
+
* const s = logger.spinner('Analyzing repository...');
|
|
855
|
+
* s.start();
|
|
856
|
+
* await analyzeRepo();
|
|
857
|
+
* s.succeed('Analysis complete (1.2s)');
|
|
858
|
+
*
|
|
859
|
+
* @since 5.0.0
|
|
860
|
+
*/
|
|
861
|
+
spinner(message: string): ISpinnerHandle;
|
|
862
|
+
/**
|
|
863
|
+
* Sets the CLI verbosity level, controlling both log verbosity and primitive visibility
|
|
864
|
+
*
|
|
865
|
+
* @param {CLILogLevel} level - CLI log level
|
|
866
|
+
*
|
|
867
|
+
* @example
|
|
868
|
+
* logger.setCLILevel('quiet'); // Only errors, no CLI primitives
|
|
869
|
+
* logger.setCLILevel('verbose'); // Debug logs + all CLI primitives
|
|
870
|
+
*
|
|
871
|
+
* @since 5.0.0
|
|
872
|
+
*/
|
|
873
|
+
setCLILevel(level: CLILogLevel): void;
|
|
874
|
+
/**
|
|
875
|
+
* Returns the current CLI log level
|
|
876
|
+
* @returns {CLILogLevel} Current CLI log level
|
|
877
|
+
* @since 5.0.0
|
|
878
|
+
*/
|
|
879
|
+
get cliLevel(): CLILogLevel;
|
|
880
|
+
/** Lazily creates the server fallback instance @private */
|
|
881
|
+
private getServerFallback;
|
|
882
|
+
/**
|
|
883
|
+
* Writes formatted output to the configured destination.
|
|
884
|
+
* Respects outputMode configuration for console, silent, or custom output.
|
|
885
|
+
*
|
|
886
|
+
* @private
|
|
887
|
+
* @param {string} message - Formatted log message
|
|
888
|
+
* @param {LogLevel} level - Log level
|
|
889
|
+
* @param {string[]} styles - CSS styles for browser console
|
|
890
|
+
* @param {any[]} additionalArgs - Additional arguments to log
|
|
891
|
+
* @since 4.0.0
|
|
892
|
+
*/
|
|
893
|
+
private writeOutput;
|
|
894
|
+
/**
|
|
895
|
+
* Procesador de comandos CLI para configuración y exportación del logger
|
|
896
|
+
*
|
|
897
|
+
* @param {string} command - Comando CLI a ejecutar
|
|
898
|
+
* @returns {Promise<void>}
|
|
899
|
+
*
|
|
900
|
+
* @example
|
|
901
|
+
* // Comandos disponibles
|
|
902
|
+
* await logger.cli('export json'); // Exporta logs en JSON
|
|
903
|
+
* await logger.cli('export csv'); // Exporta logs en CSV
|
|
904
|
+
* await logger.cli('theme list'); // Lista temas disponibles
|
|
905
|
+
* await logger.cli('theme set neon'); // Cambia al tema neon
|
|
906
|
+
* await logger.cli('config show'); // Muestra configuración actual
|
|
907
|
+
* await logger.cli('history clear'); // Limpia historial de logs
|
|
908
|
+
* await logger.cli('status'); // Muestra estado del logger
|
|
909
|
+
* await logger.cli('help'); // Muestra ayuda de comandos
|
|
910
|
+
*
|
|
911
|
+
* @since 0.3.0
|
|
912
|
+
*/
|
|
913
|
+
cli(command: string): Promise<void>;
|
|
914
|
+
}
|
|
915
|
+
declare const _default: Logger;
|
|
916
|
+
export default _default;
|
|
917
|
+
/**
|
|
918
|
+
* Métodos individuales exportados para conveniencia
|
|
919
|
+
* @description Todos los métodos están correctamente enlazados al singleton lazy
|
|
920
|
+
* @since 0.3.0
|
|
921
|
+
*/
|
|
922
|
+
export declare const debug: (...args: any[]) => void;
|
|
923
|
+
export declare const info: (...args: any[]) => void;
|
|
924
|
+
export declare const warn: (...args: any[]) => void;
|
|
925
|
+
export declare const error: (...args: any[]) => void;
|
|
926
|
+
export declare const success: (...args: any[]) => void;
|
|
927
|
+
export declare const trace: (...args: any[]) => void;
|
|
928
|
+
export declare const critical: (...args: any[]) => void;
|
|
929
|
+
export declare const table: (data: any, columns?: string[]) => void;
|
|
930
|
+
export declare const group: (label: string, collapsed?: boolean) => void;
|
|
931
|
+
export declare const groupEnd: () => void;
|
|
932
|
+
export declare const time: (label: string) => void;
|
|
933
|
+
export declare const timeEnd: (label: string) => number;
|
|
934
|
+
export declare const setGlobalPrefix: (prefix: string) => void;
|
|
935
|
+
export declare const setVerbosity: (level: Verbosity) => void;
|
|
936
|
+
export declare const addHandler: (handler: ILogHandler) => void;
|
|
937
|
+
export declare const setTheme: (theme: ThemeVariant) => void;
|
|
938
|
+
export declare const setBannerType: (bannerType: BannerType) => void;
|
|
939
|
+
export declare const showBanner: (bannerType?: BannerType) => void;
|
|
940
|
+
export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
|
|
941
|
+
export declare const logAnimated: (message: string, duration?: number) => void;
|
|
942
|
+
export declare const cli: (command: string) => Promise<void>;
|
|
943
|
+
export declare const cleanup: () => void;
|
|
944
|
+
export declare const preset: (name: string) => void;
|
|
945
|
+
export declare const presets: () => string[];
|
|
946
|
+
export declare const hideTimestamp: () => Logger;
|
|
947
|
+
export declare const showTimestamp: () => Logger;
|
|
948
|
+
export declare const hideLocation: () => Logger;
|
|
949
|
+
export declare const showLocation: () => Logger;
|
|
950
|
+
export declare const hideBadges: () => Logger;
|
|
951
|
+
export declare const showBadges: () => Logger;
|
|
952
|
+
export declare const badges: (badgeList: string[]) => Logger;
|
|
953
|
+
export declare const badge: (badgeName: string) => Logger;
|
|
954
|
+
export declare const clearBadges: () => Logger;
|
|
955
|
+
export declare const component: (name: string) => ComponentLogger;
|
|
956
|
+
export declare const api: (name: string) => APILogger;
|
|
957
|
+
export declare const scope: (name: string) => ScopedLogger;
|
|
958
|
+
export declare const customize: (overrides: any) => void;
|
|
959
|
+
export declare const styles: () => any;
|
|
960
|
+
export declare const addSerializer: <T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number) => void;
|
|
961
|
+
export declare const removeSerializer: <T>(type: new (...args: any[]) => T) => boolean;
|
|
962
|
+
export declare const on: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
963
|
+
export declare const once: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
964
|
+
export declare const off: (event: HookEvent, callback: HookCallback) => boolean;
|
|
965
|
+
export declare const use: (middleware: MiddlewareFn, priority?: number) => () => void;
|
|
966
|
+
export declare const addTransport: (target: TransportTarget) => string;
|
|
967
|
+
export declare const removeTransport: (id: string) => boolean;
|
|
968
|
+
export declare const flushTransports: () => Promise<void>;
|
|
969
|
+
export declare const closeTransports: () => Promise<void>;
|
|
970
|
+
export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
|
|
971
|
+
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
972
|
+
export { SerializerRegistry } from './serializers/index.js';
|
|
973
|
+
export { HookManager } from './hooks/index.js';
|
|
974
|
+
export { TransportManager, ConsoleTransport, FileTransport, HttpTransport } from './transports/index.js';
|
|
975
|
+
export { StyleCache, getStyleCache } from './styling/StyleCache.js';
|
|
976
|
+
//# sourceMappingURL=Logger.d.ts.map
|