@mks2508/better-logger 0.14.0-alpha.2 → 0.18.2-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -244
- package/dist/Logger.d.ts +662 -202
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ScopedLogger.d.ts +434 -175
- package/dist/ScopedLogger.d.ts.map +1 -1
- package/dist/chunks/HookBridge-C-AvXmPD.cjs +504 -0
- package/dist/chunks/HookBridge-C-AvXmPD.cjs.map +1 -0
- package/dist/chunks/HookBridge-CI2PH79S.js +487 -0
- package/dist/chunks/HookBridge-CI2PH79S.js.map +1 -0
- package/dist/chunks/LogContext-BaMXleWj.cjs +105 -0
- package/dist/chunks/LogContext-BaMXleWj.cjs.map +1 -0
- package/dist/chunks/LogContext-DjlITOzZ.js +100 -0
- package/dist/chunks/LogContext-DjlITOzZ.js.map +1 -0
- package/dist/chunks/SerializerBridge-Ba43Mk7j.js +393 -0
- package/dist/chunks/SerializerBridge-Ba43Mk7j.js.map +1 -0
- package/dist/chunks/SerializerBridge-C4a9Z37F.cjs +410 -0
- package/dist/chunks/SerializerBridge-C4a9Z37F.cjs.map +1 -0
- package/dist/chunks/StyleManager-DQ6UNRB-.cjs +118 -0
- package/dist/chunks/StyleManager-DQ6UNRB-.cjs.map +1 -0
- package/dist/chunks/StyleManager-DjwAYbxE.js +113 -0
- package/dist/chunks/StyleManager-DjwAYbxE.js.map +1 -0
- package/dist/chunks/core-Blfi2klP.js +31 -0
- package/dist/chunks/core-Blfi2klP.js.map +1 -0
- package/dist/chunks/core-CqS_UBzJ.cjs +36 -0
- package/dist/chunks/core-CqS_UBzJ.cjs.map +1 -0
- package/dist/chunks/environment-detector-7NvnYUfr.js +110 -0
- package/dist/chunks/environment-detector-7NvnYUfr.js.map +1 -0
- package/dist/chunks/environment-detector-D-tHkKWA.cjs +163 -0
- package/dist/chunks/environment-detector-D-tHkKWA.cjs.map +1 -0
- package/dist/chunks/server-fallback-CaCPjWby.cjs +119 -0
- package/dist/chunks/server-fallback-CaCPjWby.cjs.map +1 -0
- package/dist/chunks/server-fallback-jj0T6XaK.js +114 -0
- package/dist/chunks/server-fallback-jj0T6XaK.js.map +1 -0
- package/dist/chunks/spinner-BHyYEXsM.cjs +1029 -0
- package/dist/chunks/spinner-BHyYEXsM.cjs.map +1 -0
- package/dist/chunks/spinner-BtkwpzYv.js +982 -0
- package/dist/chunks/spinner-BtkwpzYv.js.map +1 -0
- package/dist/chunks/styling-CRw3KQW4.js +1592 -0
- package/dist/chunks/styling-CRw3KQW4.js.map +1 -0
- package/dist/chunks/styling-Cel2wPRy.cjs +1645 -0
- package/dist/chunks/styling-Cel2wPRy.cjs.map +1 -0
- package/dist/chunks/transports-BGfwwakw.js +1237 -0
- package/dist/chunks/transports-BGfwwakw.js.map +1 -0
- package/dist/chunks/transports-yK6CL0Ml.cjs +1278 -0
- package/dist/chunks/transports-yK6CL0Ml.cjs.map +1 -0
- package/dist/chunks/utils-W_cxqriN.cjs +705 -0
- package/dist/chunks/utils-W_cxqriN.cjs.map +1 -0
- package/dist/chunks/utils-tKfBAWUM.js +586 -0
- package/dist/chunks/utils-tKfBAWUM.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +166 -19
- package/dist/cli/CommandProcessor.d.ts.map +1 -1
- package/dist/cli/commands/ConfigCommand.d.ts +36 -1
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -1
- package/dist/cli/commands/ExportCommand.d.ts +54 -26
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
- package/dist/cli/commands/ThemeCommand.d.ts +62 -3
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -1
- package/dist/cli/help.d.ts +30 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.d.ts +30 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli-module.d.ts +13 -0
- package/dist/cli-module.d.ts.map +1 -0
- package/dist/cli.cjs +11 -0
- package/dist/cli.js +3 -0
- package/dist/constants.d.ts +16 -47
- package/dist/constants.d.ts.map +1 -1
- package/dist/context/LogContext.d.ts +245 -0
- package/dist/context/LogContext.d.ts.map +1 -0
- package/dist/context/index.d.ts +6 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context-module.d.ts +6 -0
- package/dist/context-module.d.ts.map +1 -0
- package/dist/context.cjs +3 -0
- package/dist/context.js +2 -0
- package/dist/core.cjs +304 -2
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +56 -34
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +281 -314
- package/dist/core.js.map +1 -1
- package/dist/hooks/HookBridge.d.ts +32 -0
- package/dist/hooks/HookBridge.d.ts.map +1 -0
- package/dist/hooks/HookManager.d.ts +319 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks-module.d.ts +7 -0
- package/dist/hooks-module.d.ts.map +1 -0
- package/dist/hooks.cjs +5 -0
- package/dist/hooks.js +2 -0
- package/dist/index.cjs +3402 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +42 -130
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3327 -158
- package/dist/index.js.map +1 -1
- package/dist/node-module.d.ts +10 -0
- package/dist/node-module.d.ts.map +1 -0
- package/dist/node.cjs +13 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.js +12 -0
- package/dist/node.js.map +1 -0
- package/dist/playground/TerminalBridge.d.ts +53 -0
- package/dist/playground/TerminalBridge.d.ts.map +1 -0
- package/dist/playground/box.d.ts +45 -0
- package/dist/playground/box.d.ts.map +1 -0
- package/dist/playground/cli-table.d.ts +50 -0
- package/dist/playground/cli-table.d.ts.map +1 -0
- package/dist/playground/divider.d.ts +29 -0
- package/dist/playground/divider.d.ts.map +1 -0
- package/dist/playground/header.d.ts +28 -0
- package/dist/playground/header.d.ts.map +1 -0
- package/dist/playground/index.d.ts +11 -0
- package/dist/playground/index.d.ts.map +1 -0
- package/dist/playground/server-fallback.d.ts +114 -0
- package/dist/playground/server-fallback.d.ts.map +1 -0
- package/dist/playground/spinner.d.ts +197 -0
- package/dist/playground/spinner.d.ts.map +1 -0
- package/dist/playground/step.d.ts +33 -0
- package/dist/playground/step.d.ts.map +1 -0
- package/dist/playground-module.d.ts +11 -0
- package/dist/playground-module.d.ts.map +1 -0
- package/dist/playground.cjs +9 -0
- package/dist/playground.js +2 -0
- package/dist/serializers/SerializerBridge.d.ts +28 -0
- package/dist/serializers/SerializerBridge.d.ts.map +1 -0
- package/dist/serializers/SerializerRegistry.d.ts +252 -0
- package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
- package/dist/serializers/index.d.ts +7 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers-module.d.ts +7 -0
- package/dist/serializers-module.d.ts.map +1 -0
- package/dist/serializers.cjs +5 -0
- package/dist/serializers.js +2 -0
- package/dist/styles/StyleManager.d.ts +190 -0
- package/dist/styles/StyleManager.d.ts.map +1 -0
- package/dist/styles/index.d.ts +7 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles-module.d.ts +7 -0
- package/dist/styles-module.d.ts.map +1 -0
- package/dist/styles.cjs +7 -0
- package/dist/styles.js +3 -0
- package/dist/styling/SmartPresets.d.ts +100 -6
- package/dist/styling/SmartPresets.d.ts.map +1 -1
- package/dist/styling/StyleBuilder.d.ts +453 -32
- package/dist/styling/StyleBuilder.d.ts.map +1 -1
- package/dist/styling/banners.d.ts +85 -5
- package/dist/styling/banners.d.ts.map +1 -1
- package/dist/styling/index.d.ts +8 -3
- package/dist/styling/index.d.ts.map +1 -1
- package/dist/styling/themes.d.ts +41 -2
- package/dist/styling/themes.d.ts.map +1 -1
- 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 +23 -0
- package/dist/terminal/formatter.d.ts.map +1 -0
- package/dist/transports/ConsoleTransport.d.ts +104 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -0
- package/dist/transports/FileTransport.d.ts +137 -0
- package/dist/transports/FileTransport.d.ts.map +1 -0
- package/dist/transports/HttpTransport.d.ts +180 -0
- package/dist/transports/HttpTransport.d.ts.map +1 -0
- package/dist/transports/OtlpTransport.d.ts +165 -0
- package/dist/transports/OtlpTransport.d.ts.map +1 -0
- package/dist/transports/TransportBridge.d.ts +43 -0
- package/dist/transports/TransportBridge.d.ts.map +1 -0
- package/dist/transports/TransportManager.d.ts +251 -0
- package/dist/transports/TransportManager.d.ts.map +1 -0
- package/dist/transports/index.d.ts +6 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports-module.d.ts +10 -0
- package/dist/transports-module.d.ts.map +1 -0
- package/dist/transports.cjs +7 -0
- package/dist/transports.js +2 -0
- package/dist/types/core.d.ts +295 -17
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/handlers.d.ts +0 -67
- package/dist/types/handlers.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +138 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +7 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/serializers.d.ts +97 -0
- package/dist/types/serializers.d.ts.map +1 -0
- package/dist/types/transports.d.ts +132 -0
- package/dist/types/transports.d.ts.map +1 -0
- package/dist/utils/ansi-colors.d.ts +115 -0
- package/dist/utils/ansi-colors.d.ts.map +1 -0
- package/dist/utils/environment-detector.d.ts +53 -0
- package/dist/utils/environment-detector.d.ts.map +1 -0
- package/dist/utils/formatting.d.ts +9 -8
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/output.d.ts +14 -17
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/stackTrace.d.ts +2 -2
- package/dist/utils/stackTrace.d.ts.map +1 -1
- package/dist/utils/timestamps.d.ts +0 -12
- package/dist/utils/timestamps.d.ts.map +1 -1
- package/package.json +95 -21
- package/.claude/settings.local.json +0 -39
- 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 -865
- package/CLAUDE.md +0 -204
- package/bun.lock +0 -323
- package/demo.html +0 -847
- package/dist/.tsbuildinfo +0 -1
- package/dist/Logger.js +0 -1124
- package/dist/ScopedLogger.js +0 -426
- package/dist/chunks/Logger-Crw1woqR.js +0 -3464
- package/dist/chunks/Logger-Crw1woqR.js.map +0 -1
- package/dist/chunks/Logger-D_p3xnbq.js +0 -2
- package/dist/chunks/Logger-D_p3xnbq.js.map +0 -1
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +0 -33
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +0 -1
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +0 -2
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +0 -1
- package/dist/chunks/environment-Bxbnw4pd.js +0 -544
- package/dist/chunks/environment-Bxbnw4pd.js.map +0 -1
- package/dist/chunks/environment-Dm66zOML.js +0 -4
- package/dist/chunks/environment-Dm66zOML.js.map +0 -1
- package/dist/chunks/formatting-C0riPC5_.js +0 -95
- package/dist/chunks/formatting-C0riPC5_.js.map +0 -1
- package/dist/chunks/formatting-DNCAV66-.js +0 -2
- package/dist/chunks/formatting-DNCAV66-.js.map +0 -1
- package/dist/cli/CommandProcessor.js +0 -184
- package/dist/cli/commands/ConfigCommand.js +0 -88
- package/dist/cli/commands/ExportCommand.js +0 -243
- package/dist/cli/commands/HistoryCommand.d.ts +0 -50
- package/dist/cli/commands/HistoryCommand.d.ts.map +0 -1
- package/dist/cli/commands/HistoryCommand.js +0 -96
- package/dist/cli/commands/StatusCommand.d.ts +0 -33
- package/dist/cli/commands/StatusCommand.d.ts.map +0 -1
- package/dist/cli/commands/StatusCommand.js +0 -93
- package/dist/cli/commands/ThemeCommand.js +0 -79
- package/dist/cli/help.js +0 -118
- package/dist/cli/index.js +0 -46
- package/dist/constants.js +0 -159
- package/dist/example.d.ts +0 -18
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -154
- package/dist/exports-module.d.ts +0 -203
- package/dist/exports-module.d.ts.map +0 -1
- package/dist/exports-module.js +0 -260
- package/dist/exports.cjs +0 -2
- package/dist/exports.cjs.map +0 -1
- package/dist/exports.js +0 -238
- package/dist/exports.js.map +0 -1
- package/dist/handlers/AnalyticsLogHandler.d.ts +0 -11
- package/dist/handlers/AnalyticsLogHandler.d.ts.map +0 -1
- package/dist/handlers/AnalyticsLogHandler.js +0 -19
- package/dist/handlers/ExportLogHandler.d.ts +0 -103
- package/dist/handlers/ExportLogHandler.d.ts.map +0 -1
- package/dist/handlers/ExportLogHandler.js +0 -516
- package/dist/handlers/FileLogHandler.d.ts +0 -36
- package/dist/handlers/FileLogHandler.d.ts.map +0 -1
- package/dist/handlers/FileLogHandler.js +0 -156
- package/dist/handlers/RemoteLogHandler.d.ts +0 -14
- package/dist/handlers/RemoteLogHandler.d.ts.map +0 -1
- package/dist/handlers/RemoteLogHandler.js +0 -37
- package/dist/handlers/index.d.ts +0 -8
- package/dist/handlers/index.d.ts.map +0 -1
- package/dist/handlers/index.js +0 -7
- package/dist/main.d.ts +0 -2
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js +0 -139
- package/dist/styling/LogStyleBuilder.d.ts +0 -149
- package/dist/styling/LogStyleBuilder.d.ts.map +0 -1
- package/dist/styling/LogStyleBuilder.js +0 -289
- package/dist/styling/SemanticStyles.d.ts +0 -181
- package/dist/styling/SemanticStyles.d.ts.map +0 -1
- package/dist/styling/SemanticStyles.js +0 -339
- package/dist/styling/SmartPresets.js +0 -276
- package/dist/styling/StyleBuilder.js +0 -280
- package/dist/styling/banners.js +0 -155
- package/dist/styling/index.js +0 -9
- package/dist/styling/themes.js +0 -231
- package/dist/styling-module.d.ts +0 -185
- package/dist/styling-module.d.ts.map +0 -1
- package/dist/styling-module.js +0 -199
- package/dist/styling.cjs +0 -2
- package/dist/styling.cjs.map +0 -1
- package/dist/styling.js +0 -146
- package/dist/styling.js.map +0 -1
- package/dist/types/Logger.d.ts +0 -700
- package/dist/types/Logger.d.ts.map +0 -1
- package/dist/types/ScopedLogger.d.ts +0 -310
- package/dist/types/ScopedLogger.d.ts.map +0 -1
- package/dist/types/cli/CommandProcessor.d.ts +0 -100
- package/dist/types/cli/CommandProcessor.d.ts.map +0 -1
- package/dist/types/cli/commands/ConfigCommand.d.ts +0 -14
- package/dist/types/cli/commands/ConfigCommand.d.ts.map +0 -1
- package/dist/types/cli/commands/ExportCommand.d.ts +0 -48
- package/dist/types/cli/commands/ExportCommand.d.ts.map +0 -1
- package/dist/types/cli/commands/HistoryCommand.d.ts +0 -47
- package/dist/types/cli/commands/HistoryCommand.d.ts.map +0 -1
- package/dist/types/cli/commands/StatusCommand.d.ts +0 -30
- package/dist/types/cli/commands/StatusCommand.d.ts.map +0 -1
- package/dist/types/cli/commands/ThemeCommand.d.ts +0 -30
- package/dist/types/cli/commands/ThemeCommand.d.ts.map +0 -1
- package/dist/types/cli/help.d.ts +0 -12
- package/dist/types/cli/help.d.ts.map +0 -1
- package/dist/types/cli/index.d.ts +0 -15
- package/dist/types/cli/index.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -119
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/core.js +0 -28
- package/dist/types/example.d.ts +0 -18
- package/dist/types/example.d.ts.map +0 -1
- package/dist/types/exports-module.d.ts +0 -196
- package/dist/types/exports-module.d.ts.map +0 -1
- package/dist/types/handlers/AnalyticsLogHandler.d.ts +0 -8
- package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +0 -1
- package/dist/types/handlers/ExportLogHandler.d.ts +0 -100
- package/dist/types/handlers/ExportLogHandler.d.ts.map +0 -1
- package/dist/types/handlers/FileLogHandler.d.ts +0 -33
- package/dist/types/handlers/FileLogHandler.d.ts.map +0 -1
- package/dist/types/handlers/RemoteLogHandler.d.ts +0 -11
- package/dist/types/handlers/RemoteLogHandler.d.ts.map +0 -1
- package/dist/types/handlers/index.d.ts +0 -8
- package/dist/types/handlers/index.d.ts.map +0 -1
- package/dist/types/handlers.js +0 -4
- package/dist/types/index.js +0 -4
- package/dist/types/main.d.ts +0 -2
- package/dist/types/main.d.ts.map +0 -1
- package/dist/types/styling/LogStyleBuilder.d.ts +0 -146
- package/dist/types/styling/LogStyleBuilder.d.ts.map +0 -1
- package/dist/types/styling/SemanticStyles.d.ts +0 -178
- package/dist/types/styling/SemanticStyles.d.ts.map +0 -1
- package/dist/types/styling/SmartPresets.d.ts +0 -22
- package/dist/types/styling/SmartPresets.d.ts.map +0 -1
- package/dist/types/styling/StyleBuilder.d.ts +0 -140
- package/dist/types/styling/StyleBuilder.d.ts.map +0 -1
- package/dist/types/styling/banners.d.ts +0 -42
- package/dist/types/styling/banners.d.ts.map +0 -1
- package/dist/types/styling/index.d.ts +0 -10
- package/dist/types/styling/index.d.ts.map +0 -1
- package/dist/types/styling/themes.d.ts +0 -7
- package/dist/types/styling/themes.d.ts.map +0 -1
- package/dist/types/styling-module.d.ts +0 -178
- package/dist/types/styling-module.d.ts.map +0 -1
- package/dist/types/types/core.d.ts +0 -221
- package/dist/types/types/core.d.ts.map +0 -1
- package/dist/types/types/handlers.d.ts +0 -85
- package/dist/types/types/handlers.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -7
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/utils/environment.d.ts +0 -47
- package/dist/types/utils/environment.d.ts.map +0 -1
- package/dist/types/utils/formatting.d.ts +0 -37
- package/dist/types/utils/formatting.d.ts.map +0 -1
- package/dist/types/utils/index.d.ts +0 -7
- package/dist/types/utils/index.d.ts.map +0 -1
- package/dist/types/utils/opentui-detection.d.ts +0 -34
- package/dist/types/utils/opentui-detection.d.ts.map +0 -1
- package/dist/types/utils/output.d.ts +0 -41
- package/dist/types/utils/output.d.ts.map +0 -1
- package/dist/types/utils/stackTrace.d.ts +0 -6
- package/dist/types/utils/stackTrace.d.ts.map +0 -1
- package/dist/types/utils/timestamps.d.ts +0 -20
- package/dist/types/utils/timestamps.d.ts.map +0 -1
- package/dist/utils/environment.d.ts +0 -47
- package/dist/utils/environment.d.ts.map +0 -1
- package/dist/utils/environment.js +0 -85
- package/dist/utils/formatting.js +0 -117
- package/dist/utils/index.js +0 -6
- package/dist/utils/opentui-detection.d.ts +0 -34
- package/dist/utils/opentui-detection.d.ts.map +0 -1
- package/dist/utils/opentui-detection.js +0 -116
- package/dist/utils/output.js +0 -150
- package/dist/utils/stackTrace.js +0 -81
- package/dist/utils/timestamps.js +0 -71
- package/dist/vite.svg +0 -1
- package/docs/API.md +0 -691
- 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/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/public/vite.svg +0 -1
- package/src/Logger.ts +0 -1276
- package/src/ScopedLogger.ts +0 -454
- 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/constants.ts +0 -171
- package/src/core.ts +0 -393
- 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 -609
- package/src/handlers/FileLogHandler.ts +0 -169
- package/src/handlers/RemoteLogHandler.ts +0 -42
- package/src/handlers/index.ts +0 -8
- package/src/index.ts +0 -209
- package/src/main.ts +0 -196
- 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/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/types/core.ts +0 -236
- package/src/types/handlers.ts +0 -95
- package/src/types/index.ts +0 -35
- package/src/typescript.svg +0 -1
- package/src/utils/environment.ts +0 -94
- package/src/utils/formatting.ts +0 -142
- package/src/utils/index.ts +0 -21
- package/src/utils/opentui-detection.ts +0 -138
- package/src/utils/output.ts +0 -185
- package/src/utils/stackTrace.ts +0 -95
- 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 -223
package/dist/Logger.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Logger avanzado con arquitectura modular y API simplificada
|
|
3
|
-
* @version 0.3.0
|
|
4
|
-
* @since 2024
|
|
5
3
|
*
|
|
6
4
|
* Sistema de logging profesional con estilos CSS avanzados, temas adaptativos,
|
|
7
5
|
* badges automáticos, contextos temporales y exportación de datos.
|
|
8
6
|
*/
|
|
9
|
-
import type { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
|
|
10
|
-
import {
|
|
7
|
+
import type { LogLevel, LogTag, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget, TransportRecord, ILogResourceRef, StackInfo } from './types/index.js';
|
|
8
|
+
import { SerializerRegistry } from './serializers/index.js';
|
|
9
|
+
import { HookManager } from './hooks/index.js';
|
|
10
|
+
import { TransportManager } from './transports/index.js';
|
|
11
|
+
import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
12
|
+
import type { CLILogLevel, ISpinnerHandle, IBoxOptions, ITableOptions } from './types/index.js';
|
|
11
13
|
/**
|
|
12
14
|
* Clase principal Logger con capacidades avanzadas de logging
|
|
13
15
|
*
|
|
@@ -32,7 +34,6 @@ import { ExportLogHandler } from './handlers/index.js';
|
|
|
32
34
|
* auth.info('Usuario intentando login');
|
|
33
35
|
* auth.success('Login exitoso');
|
|
34
36
|
*
|
|
35
|
-
* @since 0.3.0
|
|
36
37
|
*/
|
|
37
38
|
export declare class Logger {
|
|
38
39
|
private config;
|
|
@@ -40,10 +41,49 @@ export declare class Logger {
|
|
|
40
41
|
private handlers;
|
|
41
42
|
private timers;
|
|
42
43
|
private groupDepth;
|
|
43
|
-
private exportHandler?;
|
|
44
44
|
private cliProcessor?;
|
|
45
45
|
private themeChangeListener?;
|
|
46
|
+
private badgeList;
|
|
46
47
|
private displaySettings;
|
|
48
|
+
private serializerBridge;
|
|
49
|
+
private hookBridge;
|
|
50
|
+
private logContext;
|
|
51
|
+
private transportBridge;
|
|
52
|
+
/** Fijado por `success()` para que `log()` salte su propio dispatch. */
|
|
53
|
+
private _successTagDispatched;
|
|
54
|
+
private styleManager;
|
|
55
|
+
/** Controla si las CLI primitives (step, box, header, ...) deben renderizarse. */
|
|
56
|
+
private _showPrimitives;
|
|
57
|
+
private terminalBridge;
|
|
58
|
+
/**
|
|
59
|
+
* Referencia activa al smart-preset (fijada por `preset()`). Tipada como
|
|
60
|
+
* `unknown` para mantener limpia la surface pública; la consume
|
|
61
|
+
* `createStyledOutput`.
|
|
62
|
+
*/
|
|
63
|
+
private _activePreset?;
|
|
64
|
+
/**
|
|
65
|
+
* Nombre del smart-preset activo. Se guarda aparte para que la detección
|
|
66
|
+
* de cambio de tema pueda re-renderizar sin re-ejecutar el body del preset.
|
|
67
|
+
*/
|
|
68
|
+
private _activePresetName?;
|
|
69
|
+
/**
|
|
70
|
+
* Overrides aplicados por el último `customize()`. Se conservan para que
|
|
71
|
+
* `createStyledOutput` los lea después.
|
|
72
|
+
*/
|
|
73
|
+
private _customization?;
|
|
74
|
+
/**
|
|
75
|
+
* Bindings propios de este logger (provenientes de llamadas a `child()`).
|
|
76
|
+
* Source of truth única de la contribución de este logger a la cadena de contexto.
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
private _bindings;
|
|
80
|
+
/**
|
|
81
|
+
* Referencia al record de contexto mergueado del parent en el momento en
|
|
82
|
+
* que se creó este logger. Junto con `_bindings`, forma la cadena de
|
|
83
|
+
* contexto. `undefined` para el logger raíz.
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
private _parentContextRecord;
|
|
47
87
|
/**
|
|
48
88
|
* Crea una nueva instancia del Logger
|
|
49
89
|
*
|
|
@@ -75,7 +115,6 @@ export declare class Logger {
|
|
|
75
115
|
* console.log('Verbosidad actual:', config.verbosity);
|
|
76
116
|
* console.log('Tema actual:', config.theme);
|
|
77
117
|
*
|
|
78
|
-
* @since 0.3.0
|
|
79
118
|
*/
|
|
80
119
|
getConfig(): LoggerConfig;
|
|
81
120
|
/**
|
|
@@ -90,7 +129,6 @@ export declare class Logger {
|
|
|
90
129
|
* theme: 'cyberpunk'
|
|
91
130
|
* });
|
|
92
131
|
*
|
|
93
|
-
* @since 0.3.0
|
|
94
132
|
*/
|
|
95
133
|
updateConfig(updates: Partial<LoggerConfig>): void;
|
|
96
134
|
/**
|
|
@@ -102,7 +140,6 @@ export declare class Logger {
|
|
|
102
140
|
* logger.setGlobalPrefix('MiApp');
|
|
103
141
|
* logger.info('Iniciado'); // [MiApp] Iniciado
|
|
104
142
|
*
|
|
105
|
-
* @since 0.3.0
|
|
106
143
|
*/
|
|
107
144
|
setGlobalPrefix(prefix: string): void;
|
|
108
145
|
/**
|
|
@@ -115,7 +152,6 @@ export declare class Logger {
|
|
|
115
152
|
* logger.setVerbosity('debug'); // Muestra todos los niveles
|
|
116
153
|
* logger.setVerbosity('silent'); // No muestra nada
|
|
117
154
|
*
|
|
118
|
-
* @since 0.3.0
|
|
119
155
|
*/
|
|
120
156
|
setVerbosity(level: Verbosity): void;
|
|
121
157
|
/**
|
|
@@ -128,7 +164,6 @@ export declare class Logger {
|
|
|
128
164
|
* logger.setTheme('minimal'); // Tema minimalista
|
|
129
165
|
* logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
|
|
130
166
|
*
|
|
131
|
-
* @since 0.3.0
|
|
132
167
|
*/
|
|
133
168
|
setTheme(theme: ThemeVariant): void;
|
|
134
169
|
/**
|
|
@@ -141,9 +176,96 @@ export declare class Logger {
|
|
|
141
176
|
* logger.setBannerType('unicode'); // Banner con caracteres Unicode
|
|
142
177
|
* logger.setBannerType('animated'); // Banner con animación
|
|
143
178
|
*
|
|
144
|
-
* @since 0.3.0
|
|
145
179
|
*/
|
|
146
180
|
setBannerType(bannerType: BannerType): void;
|
|
181
|
+
/**
|
|
182
|
+
* Ejecuta `fn` dentro de un scope AsyncLocalStorage donde `bindings` se
|
|
183
|
+
* merguean al contexto para todas las llamadas de log dentro de `fn`.
|
|
184
|
+
*
|
|
185
|
+
* Sin `fn` (el shape legacy de setter): no-op por backwards compatibility.
|
|
186
|
+
* Preferir `child()` para bindings persistentes o `withContextAsync()`
|
|
187
|
+
* para callbacks async.
|
|
188
|
+
*
|
|
189
|
+
* @param bindings - Pares key-value a adjuntar durante la ejecución de `fn`
|
|
190
|
+
* @param fn - Función sincrónica opcional a ejecutar con los bindings en scope
|
|
191
|
+
* @returns El valor de retorno de `fn`, o `undefined` si no se pasa `fn`
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // Callback sincrónico scoped
|
|
195
|
+
* logger.withContext({ requestId: 'r-42' }, () => {
|
|
196
|
+
* doWork(); // los logs de aquí ven requestId en attributes
|
|
197
|
+
* });
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* // Binding persistente: usar child()
|
|
201
|
+
* const reqLog = logger.child({ requestId: 'r-42' });
|
|
202
|
+
* reqLog.info('handling request'); // attributes incluye requestId
|
|
203
|
+
*
|
|
204
|
+
* @see {@link child} para una copia inmutable con el contexto mergueado
|
|
205
|
+
* @see {@link withContextAsync} para la variante con callback async
|
|
206
|
+
*/
|
|
207
|
+
withContext<R>(bindings: Record<string, unknown>, fn?: () => R): R | undefined;
|
|
208
|
+
/**
|
|
209
|
+
* Variante async de `withContext`. Ejecuta `fn` dentro de un scope
|
|
210
|
+
* AsyncLocalStorage para que los bindings estén disponibles a todas las
|
|
211
|
+
* llamadas de log async dentro de `fn`.
|
|
212
|
+
*
|
|
213
|
+
* @param bindings - Pares key-value a adjuntar durante la ejecución de `fn`
|
|
214
|
+
* @param fn - Función async a ejecutar con los bindings en scope
|
|
215
|
+
* @returns El valor de retorno de `fn`
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* await logger.withContextAsync({ requestId: 'r-42' }, async () => {
|
|
219
|
+
* await fetchData(); // los logs de aquí ven requestId en attributes
|
|
220
|
+
* });
|
|
221
|
+
*
|
|
222
|
+
* @see {@link child} para un child logger persistente
|
|
223
|
+
* @see {@link withContext} para la variante con callback sincrónico
|
|
224
|
+
*/
|
|
225
|
+
withContextAsync<R>(bindings: Record<string, unknown>, fn: () => Promise<R>): Promise<R>;
|
|
226
|
+
/**
|
|
227
|
+
* Devuelve una copia inmutable de este logger con el contexto extra bound.
|
|
228
|
+
* Las llamadas futuras sobre el child emiten con el contexto mergueado,
|
|
229
|
+
* sin mutar al parent — el patrón canónico de MDC.
|
|
230
|
+
*
|
|
231
|
+
* @param extra - Pares key-value a adjuntar (requestId, userId, ...)
|
|
232
|
+
* @returns Un nuevo Logger con el contexto mergueado
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* const reqLog = logger.child({ requestId: req.id });
|
|
236
|
+
* reqLog.info('start'); // emite attributes: { requestId }
|
|
237
|
+
* logger.info('unrelated'); // NO afectado — el contexto del parent queda intacto
|
|
238
|
+
*
|
|
239
|
+
*/
|
|
240
|
+
child(extra: Record<string, unknown>): Logger;
|
|
241
|
+
/**
|
|
242
|
+
* Descarta todas las keys del contexto bound. Tras esta llamada, los
|
|
243
|
+
* records emitidos dejan de llevar `attributes` hasta que
|
|
244
|
+
* {@link withContext} o {@link child} restablezcan uno.
|
|
245
|
+
*
|
|
246
|
+
* @returns La misma instancia del logger, ahora sin contexto
|
|
247
|
+
*/
|
|
248
|
+
clearContext(): this;
|
|
249
|
+
/**
|
|
250
|
+
* Snapshot del contexto bound. El objeto devuelto es una shallow copy:
|
|
251
|
+
* mutarlo NO afecta lo que emiten las llamadas de log posteriores.
|
|
252
|
+
*
|
|
253
|
+
* @returns Un snapshot read-only del contexto actual
|
|
254
|
+
*/
|
|
255
|
+
getContext(): Readonly<Record<string, unknown>>;
|
|
256
|
+
/**
|
|
257
|
+
* Actualiza el resource OTel por defecto (service.name, version, env).
|
|
258
|
+
* Se persiste en el campo `resource` de cada record emitido, salvo que
|
|
259
|
+
* el propio record lo override.
|
|
260
|
+
*
|
|
261
|
+
* @param resource - Resource OTel parcial a merguear con el actual
|
|
262
|
+
* @returns La misma instancia del logger, para chaining
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* logger.setResource({ 'service.name': 'api', 'service.version': '1.2.3' });
|
|
266
|
+
*
|
|
267
|
+
*/
|
|
268
|
+
setResource(resource: Partial<ILogResourceRef>): this;
|
|
147
269
|
/**
|
|
148
270
|
* Reinicia el logger a la configuración por defecto
|
|
149
271
|
*
|
|
@@ -151,19 +273,21 @@ export declare class Logger {
|
|
|
151
273
|
* logger.resetConfig();
|
|
152
274
|
* // Todo vuelve a la configuración inicial
|
|
153
275
|
*
|
|
154
|
-
* @since 0.3.0
|
|
155
276
|
*/
|
|
156
277
|
resetConfig(): void;
|
|
157
278
|
/**
|
|
158
|
-
* Método de limpieza para eliminar listeners y liberar recursos
|
|
279
|
+
* Método de limpieza para eliminar listeners y liberar recursos.
|
|
280
|
+
*
|
|
281
|
+
* Vacía los transports (drain), limpia timers, suelta la lista de
|
|
282
|
+
* handlers legacy, resetea el group depth y limpia el context.
|
|
283
|
+
* Seguro de invocar múltiples veces.
|
|
159
284
|
*
|
|
160
285
|
* @example
|
|
161
286
|
* // Antes de cerrar la aplicación
|
|
162
|
-
* logger.cleanup();
|
|
287
|
+
* await logger.cleanup();
|
|
163
288
|
*
|
|
164
|
-
* @since 0.3.0
|
|
165
289
|
*/
|
|
166
|
-
cleanup(): void
|
|
290
|
+
cleanup(): Promise<void>;
|
|
167
291
|
/**
|
|
168
292
|
* Aplica un preset inteligente - funciona perfectamente sin configuración
|
|
169
293
|
*
|
|
@@ -176,9 +300,8 @@ export declare class Logger {
|
|
|
176
300
|
* logger.preset('glassmorphism'); // Efectos de blur modernos
|
|
177
301
|
* logger.preset('minimal'); // Minimalista y elegante
|
|
178
302
|
* logger.preset('debug'); // Modo desarrollo detallado
|
|
179
|
-
* logger.preset('production'); //
|
|
303
|
+
* logger.preset('production'); // Enfocado en producción
|
|
180
304
|
*
|
|
181
|
-
* @since 0.3.0
|
|
182
305
|
*/
|
|
183
306
|
preset(name: string): void;
|
|
184
307
|
/**
|
|
@@ -190,7 +313,6 @@ export declare class Logger {
|
|
|
190
313
|
* const disponibles = logger.presets();
|
|
191
314
|
* console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
|
|
192
315
|
*
|
|
193
|
-
* @since 0.3.0
|
|
194
316
|
*/
|
|
195
317
|
presets(): string[];
|
|
196
318
|
/**
|
|
@@ -200,9 +322,8 @@ export declare class Logger {
|
|
|
200
322
|
* logger.hideTimestamp();
|
|
201
323
|
* logger.info('Sin marca de tiempo'); // Sin timestamp visible
|
|
202
324
|
*
|
|
203
|
-
* @since 0.3.0
|
|
204
325
|
*/
|
|
205
|
-
hideTimestamp():
|
|
326
|
+
hideTimestamp(): this;
|
|
206
327
|
/**
|
|
207
328
|
* Muestra el timestamp en los logs
|
|
208
329
|
*
|
|
@@ -210,9 +331,8 @@ export declare class Logger {
|
|
|
210
331
|
* logger.showTimestamp();
|
|
211
332
|
* logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
|
|
212
333
|
*
|
|
213
|
-
* @since 0.3.0
|
|
214
334
|
*/
|
|
215
|
-
showTimestamp():
|
|
335
|
+
showTimestamp(): this;
|
|
216
336
|
/**
|
|
217
337
|
* Oculta la información de ubicación (archivo:línea) en los logs
|
|
218
338
|
*
|
|
@@ -220,9 +340,8 @@ export declare class Logger {
|
|
|
220
340
|
* logger.hideLocation();
|
|
221
341
|
* logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
|
|
222
342
|
*
|
|
223
|
-
* @since 0.3.0
|
|
224
343
|
*/
|
|
225
|
-
hideLocation():
|
|
344
|
+
hideLocation(): this;
|
|
226
345
|
/**
|
|
227
346
|
* Muestra la información de ubicación (archivo:línea) en los logs
|
|
228
347
|
*
|
|
@@ -230,9 +349,8 @@ export declare class Logger {
|
|
|
230
349
|
* logger.showLocation();
|
|
231
350
|
* logger.debug('Con ubicación'); // app.js:42 Con ubicación
|
|
232
351
|
*
|
|
233
|
-
* @since 0.3.0
|
|
234
352
|
*/
|
|
235
|
-
showLocation():
|
|
353
|
+
showLocation(): this;
|
|
236
354
|
/**
|
|
237
355
|
* Oculta los badges en los logs
|
|
238
356
|
*
|
|
@@ -241,9 +359,8 @@ export declare class Logger {
|
|
|
241
359
|
* const api = logger.api('REST');
|
|
242
360
|
* api.info('Sin badges'); // Sin mostrar [API] [REST]
|
|
243
361
|
*
|
|
244
|
-
* @since 0.3.0
|
|
245
362
|
*/
|
|
246
|
-
hideBadges():
|
|
363
|
+
hideBadges(): this;
|
|
247
364
|
/**
|
|
248
365
|
* Muestra los badges en los logs
|
|
249
366
|
*
|
|
@@ -252,62 +369,95 @@ export declare class Logger {
|
|
|
252
369
|
* const api = logger.api('GraphQL');
|
|
253
370
|
* api.info('Con badges'); // [API] [GraphQL] Con badges
|
|
254
371
|
*
|
|
255
|
-
* @since 0.3.0
|
|
256
372
|
*/
|
|
257
|
-
showBadges():
|
|
373
|
+
showBadges(): this;
|
|
258
374
|
/**
|
|
259
|
-
*
|
|
375
|
+
* Establece múltiples badges para los logs
|
|
260
376
|
*
|
|
261
|
-
* @param {string}
|
|
262
|
-
* @returns {
|
|
377
|
+
* @param {string[]} badges - Array de badges a mostrar
|
|
378
|
+
* @returns {this} Logger instance para encadenamiento
|
|
263
379
|
*
|
|
264
380
|
* @example
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
381
|
+
* logger.badges(['v3', 'stable']).info('Release publicado');
|
|
382
|
+
* logger.badges(['API', 'v2']).warn('Endpoint deprecado');
|
|
383
|
+
*
|
|
384
|
+
*/
|
|
385
|
+
badges(badges: string[]): this;
|
|
386
|
+
/**
|
|
387
|
+
* Añade un badge individual a la lista
|
|
388
|
+
*
|
|
389
|
+
* @param {string} badge - Badge a añadir
|
|
390
|
+
* @returns {this} Logger instance para encadenamiento
|
|
268
391
|
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
392
|
+
* @example
|
|
393
|
+
* logger.badge('DEBUG').badge('AUTH').info('Token validado');
|
|
271
394
|
*
|
|
272
|
-
* @since 0.3.0
|
|
273
395
|
*/
|
|
274
|
-
|
|
396
|
+
badge(badge: string): this;
|
|
275
397
|
/**
|
|
276
|
-
*
|
|
398
|
+
* Limpia todos los badges activos
|
|
277
399
|
*
|
|
278
|
-
* @
|
|
279
|
-
* @returns {APILogger} Logger con scope de API
|
|
400
|
+
* @returns {this} Logger instance para encadenamiento
|
|
280
401
|
*
|
|
281
402
|
* @example
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
|
|
403
|
+
* logger.clearBadges().info('Sin badges');
|
|
404
|
+
*
|
|
405
|
+
*/
|
|
406
|
+
clearBadges(): this;
|
|
407
|
+
/**
|
|
408
|
+
* Crea un logger scoped para un componente o módulo del dominio.
|
|
285
409
|
*
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
410
|
+
* El `ComponentLogger` resultante prepends un badge `[name]` a cada
|
|
411
|
+
* mensaje y comparte configuración, transports y hooks con el logger
|
|
412
|
+
* padre. Útil para trazar el origen de los logs en apps con muchos
|
|
413
|
+
* módulos (Auth, DB, Cache, ...).
|
|
414
|
+
*
|
|
415
|
+
* @param {string} name - Nombre del componente que aparecerá como badge
|
|
416
|
+
* @returns {ComponentLogger} Logger scoped para el componente
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* const auth = logger.component('Auth');
|
|
420
|
+
* auth.info('Validando token'); // [Auth] Validando token
|
|
421
|
+
* auth.success('Token válido');
|
|
289
422
|
*
|
|
290
|
-
* @
|
|
423
|
+
* @see {@link api} para loggers de endpoints REST/GraphQL
|
|
424
|
+
* @see {@link scope} para un scope genérico sin badge de componente
|
|
291
425
|
*/
|
|
292
|
-
|
|
426
|
+
component(name: string): ComponentLogger;
|
|
293
427
|
/**
|
|
294
|
-
* Crea un logger
|
|
428
|
+
* Crea un logger scoped para un endpoint o surface de API.
|
|
295
429
|
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
430
|
+
* Como `component()` pero con styling orientado a APIs (badge `[API]`
|
|
431
|
+
* por defecto más el nombre del sub-scope). Útil para distinguir
|
|
432
|
+
* tráfico REST vs GraphQL vs WebSocket en los logs.
|
|
433
|
+
*
|
|
434
|
+
* @param {string} name - Nombre de la API o surface (p.ej. `'REST'`, `'GraphQL'`)
|
|
435
|
+
* @returns {APILogger} Logger scoped para la API
|
|
298
436
|
*
|
|
299
437
|
* @example
|
|
300
|
-
* const
|
|
301
|
-
*
|
|
302
|
-
*
|
|
438
|
+
* const rest = logger.api('REST');
|
|
439
|
+
* rest.info('GET /users/42'); // [API] [REST] GET /users/42
|
|
440
|
+
*
|
|
441
|
+
* @see {@link component} para loggers de componentes de dominio
|
|
442
|
+
*/
|
|
443
|
+
api(name: string): APILogger;
|
|
444
|
+
/**
|
|
445
|
+
* Crea un logger scoped genérico con un prefijo.
|
|
303
446
|
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
*
|
|
447
|
+
* Variante minimal de `component()` / `api()`: solo aplica un prefijo
|
|
448
|
+
* de scope sin badges ni styling especial. Útil para sub-módulos que
|
|
449
|
+
* no encajan en las categorías de `component`/`api`.
|
|
450
|
+
*
|
|
451
|
+
* @param {string} name - Texto del prefijo de scope
|
|
452
|
+
* @returns {ScopedLogger} Logger con el scope aplicado
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* const db = logger.scope('db');
|
|
456
|
+
* db.info('Pool conectado'); // [db] Pool conectado
|
|
307
457
|
*
|
|
308
|
-
* @
|
|
458
|
+
* @see {@link component} y {@link api} para variantes con badges
|
|
309
459
|
*/
|
|
310
|
-
scope(name: string):
|
|
460
|
+
scope(name: string): ScopedLogger;
|
|
311
461
|
/**
|
|
312
462
|
* Personalización simple con configuración mínima
|
|
313
463
|
*
|
|
@@ -326,7 +476,6 @@ export declare class Logger {
|
|
|
326
476
|
* spacing: 'compact'
|
|
327
477
|
* });
|
|
328
478
|
*
|
|
329
|
-
* @since 0.3.0
|
|
330
479
|
*/
|
|
331
480
|
customize(overrides: {
|
|
332
481
|
message?: {
|
|
@@ -352,10 +501,6 @@ export declare class Logger {
|
|
|
352
501
|
};
|
|
353
502
|
spacing?: 'compact' | 'normal' | 'spacious';
|
|
354
503
|
}): void;
|
|
355
|
-
/**
|
|
356
|
-
* Access advanced styling API (for power users)
|
|
357
|
-
*/
|
|
358
|
-
styles(): any;
|
|
359
504
|
/**
|
|
360
505
|
* Añade un handler personalizado para extender funcionalidad
|
|
361
506
|
*
|
|
@@ -363,38 +508,216 @@ export declare class Logger {
|
|
|
363
508
|
*
|
|
364
509
|
* @example
|
|
365
510
|
* // Handler personalizado para enviar logs a servidor
|
|
366
|
-
*
|
|
367
|
-
*
|
|
511
|
+
* logger.addHandler({
|
|
512
|
+
* handle(level, message, args, metadata) {
|
|
513
|
+
* fetch('/logs', { method: 'POST', body: JSON.stringify({ level, message }) });
|
|
514
|
+
* }
|
|
515
|
+
* });
|
|
368
516
|
*
|
|
369
517
|
* @example
|
|
370
|
-
* //
|
|
371
|
-
*
|
|
372
|
-
* logger.addHandler(fileHandler);
|
|
518
|
+
* // Para escribir a archivo, usa `addTransport` con un `FileTransport`
|
|
519
|
+
* logger.addTransport({ target: new FileTransport({ destination: 'app.log' }) });
|
|
373
520
|
*
|
|
374
|
-
* @since 0.3.0
|
|
375
521
|
*/
|
|
376
522
|
addHandler(handler: ILogHandler): void;
|
|
377
523
|
/**
|
|
378
524
|
* Obtiene todos los handlers registrados
|
|
379
525
|
*
|
|
380
526
|
* @returns {ILogHandler[]} Array de handlers activos
|
|
381
|
-
* @since 0.3.0
|
|
382
527
|
*/
|
|
383
528
|
getHandlers(): ILogHandler[];
|
|
384
529
|
/**
|
|
385
|
-
*
|
|
530
|
+
* Añade un serializador personalizado para un tipo específico
|
|
531
|
+
*
|
|
532
|
+
* @param type - Constructor del tipo a serializar
|
|
533
|
+
* @param serializer - Función de serialización
|
|
534
|
+
* @param priority - Prioridad (mayor = primero)
|
|
535
|
+
*
|
|
536
|
+
* @example
|
|
537
|
+
* logger.addSerializer(Error, (err) => ({
|
|
538
|
+
* name: err.name,
|
|
539
|
+
* message: err.message,
|
|
540
|
+
* stack: err.stack?.split('\n').slice(0, 5)
|
|
541
|
+
* }));
|
|
542
|
+
*
|
|
543
|
+
*/
|
|
544
|
+
addSerializer<T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number): void;
|
|
545
|
+
/**
|
|
546
|
+
* Elimina un serializador registrado
|
|
547
|
+
*
|
|
548
|
+
* @param type - Constructor del tipo a remover
|
|
549
|
+
* @returns true si se eliminó
|
|
550
|
+
*
|
|
551
|
+
*/
|
|
552
|
+
removeSerializer<T>(type: new (...args: unknown[]) => T): boolean;
|
|
553
|
+
/**
|
|
554
|
+
* Obtiene el registry de serializadores
|
|
386
555
|
*
|
|
387
|
-
* @returns
|
|
388
|
-
* @since 0.3.0
|
|
556
|
+
* @returns SerializerRegistry
|
|
389
557
|
*/
|
|
390
|
-
|
|
558
|
+
getSerializerRegistry(): SerializerRegistry;
|
|
391
559
|
/**
|
|
392
|
-
*
|
|
560
|
+
* Registra un hook para un evento
|
|
561
|
+
*
|
|
562
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
563
|
+
* @param callback - Función a ejecutar
|
|
564
|
+
* @param priority - Prioridad (mayor = primero)
|
|
565
|
+
* @returns Función para desregistrar
|
|
566
|
+
*
|
|
567
|
+
* @example
|
|
568
|
+
* const unsubscribe = logger.on('beforeLog', (entry) => {
|
|
569
|
+
* entry.correlationId = getCorrelationId();
|
|
570
|
+
* return entry;
|
|
571
|
+
* });
|
|
572
|
+
*
|
|
573
|
+
*/
|
|
574
|
+
on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
575
|
+
/**
|
|
576
|
+
* Registra un hook que se ejecuta solo una vez
|
|
577
|
+
*
|
|
578
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
579
|
+
* @param callback - Función a ejecutar
|
|
580
|
+
* @param priority - Prioridad (mayor = primero)
|
|
581
|
+
* @returns Función para desregistrar
|
|
582
|
+
*
|
|
583
|
+
*/
|
|
584
|
+
once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
585
|
+
/**
|
|
586
|
+
* Elimina un hook registrado
|
|
587
|
+
*
|
|
588
|
+
* @param event - Evento del hook
|
|
589
|
+
* @param callback - Callback a remover
|
|
590
|
+
* @returns true si se eliminó
|
|
591
|
+
*
|
|
592
|
+
*/
|
|
593
|
+
off(event: HookEvent, callback: HookCallback): boolean;
|
|
594
|
+
/**
|
|
595
|
+
* Añade un middleware al pipeline
|
|
596
|
+
*
|
|
597
|
+
* @param middleware - Función middleware
|
|
598
|
+
* @param priority - Prioridad (mayor = primero)
|
|
599
|
+
* @returns Función para desregistrar
|
|
600
|
+
*
|
|
601
|
+
* @example
|
|
602
|
+
* logger.use((entry, next) => {
|
|
603
|
+
* entry.requestId = asyncLocalStorage.getStore()?.requestId;
|
|
604
|
+
* next();
|
|
605
|
+
* });
|
|
606
|
+
*
|
|
607
|
+
*/
|
|
608
|
+
use(middleware: MiddlewareFn, priority?: number): () => void;
|
|
609
|
+
/**
|
|
610
|
+
* Obtiene el HookManager
|
|
611
|
+
*
|
|
612
|
+
* @returns HookManager
|
|
613
|
+
*/
|
|
614
|
+
getHookManager(): HookManager;
|
|
615
|
+
/**
|
|
616
|
+
* Añade un transport para envío de logs
|
|
617
|
+
*
|
|
618
|
+
* @param target - Configuración del transport
|
|
619
|
+
* @returns ID único del transport
|
|
620
|
+
*
|
|
621
|
+
* @example
|
|
622
|
+
* // File transport
|
|
623
|
+
* logger.addTransport({
|
|
624
|
+
* target: 'file',
|
|
625
|
+
* options: { destination: '/var/log/app.log' }
|
|
626
|
+
* });
|
|
627
|
+
*
|
|
628
|
+
* @example
|
|
629
|
+
* // HTTP transport con batching
|
|
630
|
+
* logger.addTransport({
|
|
631
|
+
* target: 'http',
|
|
632
|
+
* options: {
|
|
633
|
+
* url: 'https://logs.example.com',
|
|
634
|
+
* batchSize: 100,
|
|
635
|
+
* flushInterval: 5000
|
|
636
|
+
* },
|
|
637
|
+
* level: 'warn'
|
|
638
|
+
* });
|
|
639
|
+
*
|
|
640
|
+
*/
|
|
641
|
+
addTransport(target: TransportTarget): string;
|
|
642
|
+
/**
|
|
643
|
+
* Elimina un transport
|
|
644
|
+
*
|
|
645
|
+
* @param id - ID del transport a remover
|
|
646
|
+
* @returns true si se eliminó
|
|
647
|
+
*
|
|
648
|
+
*/
|
|
649
|
+
removeTransport(id: string): boolean;
|
|
650
|
+
/**
|
|
651
|
+
* Fuerza el flush de todos los transports
|
|
652
|
+
*
|
|
653
|
+
* @returns Promise que resuelve cuando todos los buffers están vaciados
|
|
654
|
+
*
|
|
655
|
+
*/
|
|
656
|
+
flushTransports(): Promise<void>;
|
|
657
|
+
/**
|
|
658
|
+
* Cierra todos los transports
|
|
659
|
+
*
|
|
660
|
+
* @returns Promise que resuelve cuando todos están cerrados
|
|
661
|
+
*
|
|
662
|
+
*/
|
|
663
|
+
closeTransports(): Promise<void>;
|
|
664
|
+
/**
|
|
665
|
+
* Obtiene el TransportManager
|
|
666
|
+
*
|
|
667
|
+
* @returns TransportManager o undefined si no hay transports
|
|
668
|
+
*/
|
|
669
|
+
getTransportManager(): TransportManager | undefined;
|
|
670
|
+
/**
|
|
671
|
+
* Verifica si un nivel de log debe mostrarse según la verbosidad actual.
|
|
393
672
|
* @private
|
|
394
673
|
* @param {LogLevel} level - Nivel de log a verificar
|
|
395
674
|
* @returns {boolean} True si debe mostrarse, false si no
|
|
396
675
|
*/
|
|
397
676
|
private shouldLog;
|
|
677
|
+
/**
|
|
678
|
+
* Tag pendiente de inyectar en el siguiente `TransportRecord` emitido
|
|
679
|
+
* por `log()`. Lo fijan `success()` y `logWithBindingsAndTag()` antes
|
|
680
|
+
* de delegar; `log()` lo consume y lo resetea a `undefined`.
|
|
681
|
+
*
|
|
682
|
+
* @internal
|
|
683
|
+
*/
|
|
684
|
+
protected _dispatchTag: string | undefined;
|
|
685
|
+
/**
|
|
686
|
+
* Computa el contexto completamente mergueado para este logger.
|
|
687
|
+
*
|
|
688
|
+
* La cadena de contexto se construye en el momento de crear el child:
|
|
689
|
+
* cada child almacena el contexto fully-merged de su parent (en ese
|
|
690
|
+
* instante) como `_parentContextRecord`. Esto implica que
|
|
691
|
+
* `_parentContextRecord` ya contiene los bindings de todos los ancestros
|
|
692
|
+
* en el orden de precedencia correcto (root primero, child más cercano al final).
|
|
693
|
+
*
|
|
694
|
+
* Orden de merge (gana el último):
|
|
695
|
+
* 1. _parentContextRecord — snapshot del contexto mergueado del parent en la creación
|
|
696
|
+
* 2. _bindings — bindings propios de este logger (llamadas a `child()`)
|
|
697
|
+
* 3. ALS store — scope de `withContext`/`withContextAsync` (prioridad máxima)
|
|
698
|
+
*
|
|
699
|
+
* @internal
|
|
700
|
+
* @returns El record de contexto mergueado
|
|
701
|
+
*/
|
|
702
|
+
private _getMergedContext;
|
|
703
|
+
/** @internal Expone el contexto base mergueado (sin ALS) a la closure de la child factory de LogContext. */
|
|
704
|
+
_captureMergedContext(): Record<string, unknown>;
|
|
705
|
+
/**
|
|
706
|
+
* Construye y despacha un `TransportRecord` al {@link TransportManager}
|
|
707
|
+
* (no-op si no hay transports registrados). Lo comparten todos los
|
|
708
|
+
* caminos de log — `log()`, `success()` y los métodos visuales como
|
|
709
|
+
* `table()` / `group()` / `time()` — para que toda emisión atraviese
|
|
710
|
+
* el mismo pipeline de transports.
|
|
711
|
+
*
|
|
712
|
+
* @protected
|
|
713
|
+
* @param {LogLevel} level - Nivel canónico (trace/debug/info/warn/error/critical)
|
|
714
|
+
* @param {string} message - Mensaje final, post-hook
|
|
715
|
+
* @param {string | undefined} prefix - Prefijo efectivo (global + scope)
|
|
716
|
+
* @param {StackInfo | null} stackInfo - Ubicación del caller, opcional
|
|
717
|
+
* @param {Partial<TransportRecord>} [extra] - Campos extra a mergear en el record
|
|
718
|
+
* (p.ej. `{ tag: 'success' }` o `attributes` adicionales)
|
|
719
|
+
*/
|
|
720
|
+
protected dispatchToTransports(level: LogLevel, message: string, prefix: string | undefined, stackInfo: StackInfo | null, extra?: Partial<TransportRecord>): void;
|
|
398
721
|
/**
|
|
399
722
|
* Obtiene el prefijo efectivo (global + scope)
|
|
400
723
|
* @private
|
|
@@ -402,149 +725,174 @@ export declare class Logger {
|
|
|
402
725
|
*/
|
|
403
726
|
private getEffectivePrefix;
|
|
404
727
|
/**
|
|
405
|
-
* Método central de logging
|
|
728
|
+
* Método central de logging. Espera el hook pipeline `beforeLog`
|
|
729
|
+
* antes de despachar a consola y transports, para que redacciones
|
|
730
|
+
* o enriquecimientos (PII, correlation IDs) se reflejen en el
|
|
731
|
+
* mensaje emitido.
|
|
732
|
+
*
|
|
733
|
+
* Los callers fire-and-forget (p.ej. `logger.info(...)` sin `await`)
|
|
734
|
+
* siguen funcionando: el `Promise<void>` resultante se descarta.
|
|
735
|
+
* Se recomienda `await` cuando los hooks `beforeLog` mutan `message`.
|
|
736
|
+
*
|
|
737
|
+
* El tag opcional (`TransportRecord.tag`) NO se pasa como argumento:
|
|
738
|
+
* se establece vía `_dispatchTag` (ver `success()` y
|
|
739
|
+
* {@link logWithBindingsAndTag}) antes de invocar este método.
|
|
740
|
+
*
|
|
406
741
|
* @protected
|
|
407
742
|
* @param {LogLevel} level - Nivel del log
|
|
408
|
-
* @param {
|
|
743
|
+
* @param {unknown[]} args - Argumentos a loggear (mensaje + datos)
|
|
744
|
+
* @returns {Promise<void>} Promesa que resuelve al completar el dispatch
|
|
745
|
+
*
|
|
409
746
|
*/
|
|
410
|
-
protected log(level: LogLevel, ...args:
|
|
747
|
+
protected log(level: LogLevel, ...args: unknown[]): Promise<void>;
|
|
411
748
|
/**
|
|
412
|
-
*
|
|
749
|
+
* Emite un log aplicando bindings (badges, scope) al prefijo del
|
|
750
|
+
* mensaje antes de delegar en {@link Logger.log}.
|
|
413
751
|
*
|
|
414
|
-
*
|
|
752
|
+
* No es API pública de consumo: existe para que `ScopedLogger`
|
|
753
|
+
* (`component()` / `api()` / `scope()`) pueda reutilizar el pipeline
|
|
754
|
+
* central de `log()` sin duplicar la lógica de styling/badges.
|
|
415
755
|
*
|
|
416
|
-
* @
|
|
417
|
-
*
|
|
418
|
-
*
|
|
756
|
+
* @internal
|
|
757
|
+
* @param {Bindings} bindings - Bindings de scope (badges, scope name, ...)
|
|
758
|
+
* @param {LogLevel} level - Nivel de log
|
|
759
|
+
* @param {unknown[]} args - Argumentos a loggear
|
|
760
|
+
* @returns {Promise<void>} Promesa del dispatch
|
|
419
761
|
*
|
|
420
|
-
* @
|
|
762
|
+
* @see {@link logWithBindingsAndTag} para la variante con `tag`
|
|
763
|
+
*/
|
|
764
|
+
logWithBindings(bindings: Bindings, level: LogLevel, ...args: unknown[]): Promise<void>;
|
|
765
|
+
/**
|
|
766
|
+
* Como {@link logWithBindings} pero fija `_dispatchTag` antes de
|
|
767
|
+
* delegar, para que `log()` despache el `TransportRecord` con el
|
|
768
|
+
* tag indicado. Lo usa `ScopedLogger.success()` para propagar
|
|
769
|
+
* `tag: 'success'` a través del pipeline normal de `log()`.
|
|
770
|
+
*
|
|
771
|
+
* @internal
|
|
772
|
+
* @param {Bindings} bindings - Bindings de scope (badges, scope name, ...)
|
|
773
|
+
* @param {LogLevel} level - Nivel de log
|
|
774
|
+
* @param {LogTag} tag - Tag a inyectar en el `TransportRecord`
|
|
775
|
+
* @param {unknown[]} args - Argumentos a loggear
|
|
776
|
+
* @returns {Promise<void>} Promesa del dispatch
|
|
421
777
|
*/
|
|
422
|
-
|
|
778
|
+
logWithBindingsAndTag(bindings: Bindings, level: LogLevel, tag: LogTag, ...args: unknown[]): Promise<void>;
|
|
423
779
|
/**
|
|
424
|
-
* Registra mensajes
|
|
780
|
+
* Registra mensajes de debug (nivel más verboso junto a `trace`).
|
|
781
|
+
* Pensado para diagnóstico de desarrollo: valores intermedios, flags
|
|
782
|
+
* de control flow, estado interno. Devuelve `Promise<void>`.
|
|
783
|
+
*
|
|
784
|
+
* Filtrado por defecto cuando `verbosity > 'debug'` (ver `setVerbosity`).
|
|
425
785
|
*
|
|
426
|
-
* @param {
|
|
786
|
+
* @param {unknown[]} args - Mensaje + datos a inspeccionar
|
|
787
|
+
* @returns {Promise<void>} Promesa del dispatch
|
|
427
788
|
*
|
|
428
789
|
* @example
|
|
429
|
-
* logger.
|
|
430
|
-
* logger.
|
|
431
|
-
* logger.info('Procesando', totalItems, 'elementos');
|
|
790
|
+
* logger.debug('Estado interno:', { conn, queueSize });
|
|
791
|
+
* logger.debug('Entrando en branch X');
|
|
432
792
|
*
|
|
433
|
-
* @
|
|
793
|
+
* @see {@link trace} para diagnósticos aún más granulares
|
|
794
|
+
* @see {@link setVerbosity} para controlar el nivel mínimo visible
|
|
434
795
|
*/
|
|
435
|
-
|
|
796
|
+
debug(...args: unknown[]): Promise<void>;
|
|
436
797
|
/**
|
|
437
|
-
* Registra mensajes
|
|
798
|
+
* Registra mensajes informativos. El `await` retorna cuando el hook
|
|
799
|
+
* `beforeLog` y el dispatch a transports han terminado.
|
|
438
800
|
*
|
|
439
|
-
* @param
|
|
801
|
+
* @param args - Mensajes y datos informativos
|
|
440
802
|
*
|
|
441
803
|
* @example
|
|
442
|
-
* logger.
|
|
443
|
-
* logger.
|
|
444
|
-
* logger.warn('Reintentos agotados:', maxRetries);
|
|
804
|
+
* logger.info('Servidor iniciado en puerto 3000');
|
|
805
|
+
* await logger.info('Procesando', totalItems, 'elementos'); // espera hooks
|
|
445
806
|
*
|
|
446
|
-
* @since 0.3.0
|
|
447
807
|
*/
|
|
448
|
-
|
|
808
|
+
info(...args: unknown[]): Promise<void>;
|
|
449
809
|
/**
|
|
450
|
-
* Registra mensajes de
|
|
810
|
+
* Registra mensajes de advertencia.
|
|
451
811
|
*
|
|
452
|
-
* @param
|
|
812
|
+
* @param args - Mensajes de advertencia
|
|
453
813
|
*
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
*
|
|
814
|
+
*/
|
|
815
|
+
warn(...args: unknown[]): Promise<void>;
|
|
816
|
+
/**
|
|
817
|
+
* Registra mensajes de error.
|
|
818
|
+
*
|
|
819
|
+
* @param args - Mensaje de error y stack traces
|
|
458
820
|
*
|
|
459
|
-
* @since 0.3.0
|
|
460
821
|
*/
|
|
461
|
-
error(...args:
|
|
822
|
+
error(...args: unknown[]): Promise<void>;
|
|
462
823
|
/**
|
|
463
|
-
* Registra mensajes de éxito
|
|
824
|
+
* Registra mensajes de éxito. Mapeado internamente a nivel `info` con
|
|
825
|
+
* styling de success y `record.tag = 'success'` para que los transports
|
|
826
|
+
* puedan distinguirlo (sin perder info semantics para filtering).
|
|
464
827
|
*
|
|
465
|
-
* @param
|
|
828
|
+
* @param args - Mensaje + datos adicionales
|
|
466
829
|
*
|
|
467
830
|
* @example
|
|
468
831
|
* logger.success('Base de datos conectada');
|
|
469
832
|
* logger.success('Usuario creado con ID:', userId);
|
|
470
833
|
* logger.success('✓ Tests pasados: 42/42');
|
|
471
834
|
*
|
|
472
|
-
* @since 0.3.0
|
|
473
835
|
*/
|
|
474
|
-
success(...args:
|
|
836
|
+
success(...args: unknown[]): Promise<void>;
|
|
475
837
|
/**
|
|
476
|
-
* Registra información de trace (
|
|
838
|
+
* Registra información de trace (nivel más bajo, debajo de debug).
|
|
839
|
+
* Alineado con OpenTelemetry `TRACE` severity (1-4).
|
|
477
840
|
*
|
|
478
|
-
* @param
|
|
841
|
+
* @param args - Datos muy verbosos (entrada/salida de funciones, valores intermedios)
|
|
479
842
|
*
|
|
480
843
|
* @example
|
|
481
844
|
* logger.trace('Entrando en función processData');
|
|
482
|
-
* logger.trace('
|
|
845
|
+
* logger.trace('Variables intermedias:', { a, b, c });
|
|
483
846
|
*
|
|
484
|
-
* @since 0.3.0
|
|
485
847
|
*/
|
|
486
|
-
trace(...args:
|
|
848
|
+
trace(...args: unknown[]): void;
|
|
487
849
|
/**
|
|
488
|
-
* Registra errores críticos (prioridad más alta)
|
|
850
|
+
* Registra errores críticos (prioridad más alta).
|
|
489
851
|
*
|
|
490
|
-
* @param
|
|
852
|
+
* @param args - Errores críticos del sistema
|
|
491
853
|
*
|
|
492
854
|
* @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);
|
|
855
|
+
* await logger.critical('Sistema caído - reinicio inmediato requerido');
|
|
496
856
|
*
|
|
497
|
-
* @since 0.3.0
|
|
498
857
|
*/
|
|
499
|
-
critical(...args:
|
|
858
|
+
critical(...args: unknown[]): Promise<void>;
|
|
500
859
|
/**
|
|
501
|
-
* Muestra datos en formato de tabla
|
|
860
|
+
* Muestra datos en formato de tabla. Pasa por la pipeline completa
|
|
861
|
+
* (outputMode-respecting writeOutput + transports + hooks).
|
|
502
862
|
*
|
|
503
|
-
* @param
|
|
504
|
-
* @param
|
|
863
|
+
* @param data - Array de objetos o matriz
|
|
864
|
+
* @param columns - Columnas específicas a mostrar (opcional)
|
|
505
865
|
*
|
|
506
866
|
* @example
|
|
507
|
-
*
|
|
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
|
|
867
|
+
* logger.table([{ id: 1, nombre: 'Juan' }, { id: 2, nombre: 'María' }]);
|
|
513
868
|
*
|
|
514
|
-
* @since 0.3.0
|
|
515
869
|
*/
|
|
516
|
-
table(data:
|
|
870
|
+
table(data: unknown, columns?: string[]): void;
|
|
517
871
|
/**
|
|
518
|
-
* Inicia un grupo colapsable en la consola
|
|
872
|
+
* Inicia un grupo colapsable en la consola. Emite un marker a
|
|
873
|
+
* transports con `attributes.logger.visual = 'groupStart'` para que
|
|
874
|
+
* backends puedan reconstruir la jerarquía.
|
|
519
875
|
*
|
|
520
|
-
* @param
|
|
521
|
-
* @param
|
|
876
|
+
* @param label - Etiqueta del grupo
|
|
877
|
+
* @param collapsed - Si el grupo inicia colapsado (default: false)
|
|
522
878
|
*
|
|
523
879
|
* @example
|
|
524
880
|
* logger.group('Procesando usuarios');
|
|
525
881
|
* 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
882
|
* logger.groupEnd();
|
|
534
883
|
*
|
|
535
|
-
* @since 0.3.0
|
|
536
884
|
*/
|
|
537
885
|
group(label: string, collapsed?: boolean): void;
|
|
538
886
|
/**
|
|
539
|
-
* Finaliza el grupo actual de la consola
|
|
887
|
+
* Finaliza el grupo actual de la consola. Emite un marker a transports
|
|
888
|
+
* simétrico al `group()` start, para que backends puedan cerrar la
|
|
889
|
+
* jerarquía correctamente.
|
|
540
890
|
*
|
|
541
891
|
* @example
|
|
542
892
|
* logger.group('Operaciones');
|
|
543
893
|
* logger.info('Operación 1');
|
|
544
|
-
* logger.
|
|
545
|
-
* logger.groupEnd(); // Cierra el grupo
|
|
894
|
+
* logger.groupEnd();
|
|
546
895
|
*
|
|
547
|
-
* @since 0.3.0
|
|
548
896
|
*/
|
|
549
897
|
groupEnd(): void;
|
|
550
898
|
/**
|
|
@@ -557,22 +905,21 @@ export declare class Logger {
|
|
|
557
905
|
* // ... operación costosa ...
|
|
558
906
|
* logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
|
|
559
907
|
*
|
|
560
|
-
* @since 0.3.0
|
|
561
908
|
*/
|
|
562
909
|
time(label: string): void;
|
|
563
910
|
/**
|
|
564
911
|
* Finaliza un temporizador y muestra el tiempo transcurrido
|
|
565
912
|
*
|
|
566
913
|
* @param {string} label - Etiqueta del temporizador a finalizar
|
|
914
|
+
* @returns {number} Milisegundos transcurridos, o `-1` si no se encuentra el timer
|
|
567
915
|
*
|
|
568
916
|
* @example
|
|
569
917
|
* logger.time('consulta-db');
|
|
570
918
|
* await consultarBaseDatos();
|
|
571
|
-
* logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
|
|
919
|
+
* const elapsed = logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
|
|
572
920
|
*
|
|
573
|
-
* @since 0.3.0
|
|
574
921
|
*/
|
|
575
|
-
timeEnd(label: string):
|
|
922
|
+
timeEnd(label: string): number;
|
|
576
923
|
/**
|
|
577
924
|
* Muestra un banner con el tipo especificado o configurado
|
|
578
925
|
*
|
|
@@ -584,7 +931,6 @@ export declare class Logger {
|
|
|
584
931
|
* logger.showBanner('svg'); // Banner con gráfico SVG
|
|
585
932
|
* logger.showBanner(); // Usa el tipo configurado
|
|
586
933
|
*
|
|
587
|
-
* @since 0.3.0
|
|
588
934
|
*/
|
|
589
935
|
showBanner(bannerType?: BannerType): void;
|
|
590
936
|
/**
|
|
@@ -603,7 +949,6 @@ export declare class Logger {
|
|
|
603
949
|
* const customSVG = '<svg>...</svg>';
|
|
604
950
|
* logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
|
|
605
951
|
*
|
|
606
|
-
* @since 0.3.0
|
|
607
952
|
*/
|
|
608
953
|
logWithSVG(message: string, svgContent?: string, options?: StyleOptions): void;
|
|
609
954
|
/**
|
|
@@ -616,26 +961,117 @@ export declare class Logger {
|
|
|
616
961
|
* logger.logAnimated('🌈 Animación en progreso');
|
|
617
962
|
* logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
|
|
618
963
|
*
|
|
619
|
-
* @since 0.3.0
|
|
620
964
|
*/
|
|
621
965
|
logAnimated(message: string, duration?: number): void;
|
|
622
966
|
/**
|
|
623
|
-
*
|
|
967
|
+
* Muestra un indicador de progreso de pasos en la terminal
|
|
968
|
+
*
|
|
969
|
+
* @param {number} current - Número de paso actual
|
|
970
|
+
* @param {number} total - Número total de pasos
|
|
971
|
+
* @param {string} message - Descripción del paso
|
|
972
|
+
*
|
|
973
|
+
* @example
|
|
974
|
+
* logger.step(1, 5, 'Analyzing repository...');
|
|
975
|
+
* logger.step(2, 5, 'Generating commit message...');
|
|
976
|
+
*
|
|
977
|
+
*/
|
|
978
|
+
step(current: number, total: number, message: string): void;
|
|
979
|
+
/**
|
|
980
|
+
* Muestra un header con estilo y subtítulo opcional
|
|
981
|
+
*
|
|
982
|
+
* @param {string} title - Texto del título principal
|
|
983
|
+
* @param {string} subtitle - Subtítulo opcional (se renderiza atenuado)
|
|
984
|
+
*
|
|
985
|
+
* @example
|
|
986
|
+
* logger.header('Commit Wizard', 'v2.0.0');
|
|
987
|
+
*
|
|
988
|
+
*/
|
|
989
|
+
header(title: string, subtitle?: string): void;
|
|
990
|
+
/**
|
|
991
|
+
* Muestra una línea divisoria horizontal
|
|
992
|
+
*
|
|
993
|
+
* @example
|
|
994
|
+
* logger.divider();
|
|
995
|
+
*
|
|
996
|
+
*/
|
|
997
|
+
divider(): void;
|
|
998
|
+
/**
|
|
999
|
+
* Emite una línea en blanco
|
|
1000
|
+
*
|
|
1001
|
+
* @example
|
|
1002
|
+
* logger.blank();
|
|
1003
|
+
*
|
|
1004
|
+
*/
|
|
1005
|
+
blank(): void;
|
|
1006
|
+
/**
|
|
1007
|
+
* Renderiza contenido dentro de un box con borde
|
|
1008
|
+
*
|
|
1009
|
+
* @param {string} content - String de contenido (puede contener newlines)
|
|
1010
|
+
* @param {IBoxOptions} options - Opciones de renderizado del box
|
|
1011
|
+
*
|
|
1012
|
+
* @example
|
|
1013
|
+
* logger.box('3 commits generated\nProvider: Groq', { title: 'Done', borderColor: '#00ff00' });
|
|
1014
|
+
*
|
|
1015
|
+
*/
|
|
1016
|
+
box(content: string, options?: IBoxOptions): void;
|
|
1017
|
+
/**
|
|
1018
|
+
* Renderiza un array de objetos como una tabla ASCII formateada.
|
|
1019
|
+
* Distinto del método `table()` existente, que usa `console.table`.
|
|
1020
|
+
*
|
|
1021
|
+
* @param {Record<string, unknown>[]} rows - Array de objetos fila
|
|
1022
|
+
* @param {ITableOptions} options - Opciones de renderizado de la tabla
|
|
1023
|
+
*
|
|
1024
|
+
* @example
|
|
1025
|
+
* logger.cliTable([
|
|
1026
|
+
* { provider: 'Groq', status: 'Available', model: 'llama-3.3-70b' },
|
|
1027
|
+
* { provider: 'Gemini', status: 'Configured', model: 'gemini-2.5-flash' },
|
|
1028
|
+
* ]);
|
|
1029
|
+
*
|
|
1030
|
+
*/
|
|
1031
|
+
cliTable(rows: Record<string, unknown>[], options?: ITableOptions): void;
|
|
1032
|
+
/**
|
|
1033
|
+
* Crea un handle de spinner para mostrar progreso durante operaciones async.
|
|
1034
|
+
* Devuelve un `NoopSpinner` en entornos non-TTY.
|
|
1035
|
+
*
|
|
1036
|
+
* @param {string} message - Texto inicial del spinner
|
|
1037
|
+
* @returns {ISpinnerHandle} Controller del spinner
|
|
1038
|
+
*
|
|
1039
|
+
* @example
|
|
1040
|
+
* const s = logger.spinner('Analyzing repository...');
|
|
1041
|
+
* s.start();
|
|
1042
|
+
* await analyzeRepo();
|
|
1043
|
+
* s.succeed('Analysis complete (1.2s)');
|
|
1044
|
+
*
|
|
1045
|
+
*/
|
|
1046
|
+
spinner(message: string): ISpinnerHandle;
|
|
1047
|
+
/**
|
|
1048
|
+
* Fija el nivel de verbosidad del CLI, controlando a la vez la verbosidad
|
|
1049
|
+
* de logs y la visibilidad de las primitives
|
|
624
1050
|
*
|
|
625
|
-
* @param {
|
|
626
|
-
* @param {Function} groupBy - Función que retorna la clave de agrupación
|
|
1051
|
+
* @param {CLILogLevel} level - Nivel de log del CLI
|
|
627
1052
|
*
|
|
628
1053
|
* @example
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
* { producto: 'Mouse', categoria: 'Electrónica', precio: 25 },
|
|
632
|
-
* { producto: 'Libro', categoria: 'Literatura', precio: 15 }
|
|
633
|
-
* ];
|
|
634
|
-
* logger.logGrouped(ventas, item => item.categoria);
|
|
1054
|
+
* logger.setCLILevel('quiet'); // Solo errors, sin CLI primitives
|
|
1055
|
+
* logger.setCLILevel('verbose'); // Debug logs + todas las CLI primitives
|
|
635
1056
|
*
|
|
636
|
-
* @since 0.3.0
|
|
637
1057
|
*/
|
|
638
|
-
|
|
1058
|
+
setCLILevel(level: CLILogLevel): void;
|
|
1059
|
+
/**
|
|
1060
|
+
* Devuelve el nivel de log del CLI actual
|
|
1061
|
+
* @returns {CLILogLevel} Nivel de log del CLI actual
|
|
1062
|
+
*/
|
|
1063
|
+
get cliLevel(): CLILogLevel;
|
|
1064
|
+
/**
|
|
1065
|
+
* Escribe output formateado al destino configurado.
|
|
1066
|
+
* Respeta la configuración `outputMode` para output a consola, silencioso o custom.
|
|
1067
|
+
*
|
|
1068
|
+
* @private
|
|
1069
|
+
* @param {string} message - Mensaje de log formateado
|
|
1070
|
+
* @param {LogLevel} level - Nivel de log
|
|
1071
|
+
* @param {string[]} styles - Estilos CSS para la consola del navegador
|
|
1072
|
+
* @param {unknown[]} additionalArgs - Argumentos adicionales a loggear
|
|
1073
|
+
*/
|
|
1074
|
+
private writeOutput;
|
|
639
1075
|
/**
|
|
640
1076
|
* Procesador de comandos CLI para configuración y exportación del logger
|
|
641
1077
|
*
|
|
@@ -653,33 +1089,43 @@ export declare class Logger {
|
|
|
653
1089
|
* await logger.cli('status'); // Muestra estado del logger
|
|
654
1090
|
* await logger.cli('help'); // Muestra ayuda de comandos
|
|
655
1091
|
*
|
|
656
|
-
* @since 0.3.0
|
|
657
1092
|
*/
|
|
658
1093
|
cli(command: string): Promise<void>;
|
|
659
1094
|
}
|
|
660
1095
|
/**
|
|
661
|
-
*
|
|
662
|
-
*
|
|
1096
|
+
* Resetea el singleton por defecto. Limpia la instancia cacheada para que la
|
|
1097
|
+
* próxima llamada a `getDefaultLogger()` la reconstruya desde defaults. Útil
|
|
1098
|
+
* para tests y escenarios de hot reload.
|
|
1099
|
+
*
|
|
1100
|
+
*/
|
|
1101
|
+
export declare function resetDefaultLogger(): void;
|
|
1102
|
+
/**
|
|
1103
|
+
* Lazy default export — every property access defers to `getDefaultLogger()`.
|
|
1104
|
+
* Sin side-effects al importar el módulo (la primera llamada al singleton
|
|
1105
|
+
* se produce en el primer acceso a una propiedad, no en el `import`).
|
|
1106
|
+
*
|
|
1107
|
+
* @example
|
|
1108
|
+
* import logger from 'better-logger';
|
|
1109
|
+
* logger.info('hello'); // first call here triggers singleton init
|
|
663
1110
|
*/
|
|
664
|
-
declare const
|
|
665
|
-
export default
|
|
1111
|
+
declare const loggerProxy: Logger;
|
|
1112
|
+
export default loggerProxy;
|
|
666
1113
|
/**
|
|
667
1114
|
* Métodos individuales exportados para conveniencia
|
|
668
|
-
* @description Todos los métodos están correctamente enlazados al singleton
|
|
669
|
-
* @since 0.3.0
|
|
1115
|
+
* @description Todos los métodos están correctamente enlazados al singleton lazy
|
|
670
1116
|
*/
|
|
671
|
-
export declare const debug: (...args:
|
|
672
|
-
export declare const info: (...args:
|
|
673
|
-
export declare const warn: (...args:
|
|
674
|
-
export declare const error: (...args:
|
|
675
|
-
export declare const success: (...args:
|
|
676
|
-
export declare const trace: (...args:
|
|
677
|
-
export declare const critical: (...args:
|
|
678
|
-
export declare const table: (data:
|
|
1117
|
+
export declare const debug: (...args: unknown[]) => Promise<void>;
|
|
1118
|
+
export declare const info: (...args: unknown[]) => Promise<void>;
|
|
1119
|
+
export declare const warn: (...args: unknown[]) => Promise<void>;
|
|
1120
|
+
export declare const error: (...args: unknown[]) => Promise<void>;
|
|
1121
|
+
export declare const success: (...args: unknown[]) => Promise<void>;
|
|
1122
|
+
export declare const trace: (...args: unknown[]) => void;
|
|
1123
|
+
export declare const critical: (...args: unknown[]) => Promise<void>;
|
|
1124
|
+
export declare const table: (data: unknown, columns?: string[]) => void;
|
|
679
1125
|
export declare const group: (label: string, collapsed?: boolean) => void;
|
|
680
1126
|
export declare const groupEnd: () => void;
|
|
681
1127
|
export declare const time: (label: string) => void;
|
|
682
|
-
export declare const timeEnd: (label: string) =>
|
|
1128
|
+
export declare const timeEnd: (label: string) => number;
|
|
683
1129
|
export declare const setGlobalPrefix: (prefix: string) => void;
|
|
684
1130
|
export declare const setVerbosity: (level: Verbosity) => void;
|
|
685
1131
|
export declare const addHandler: (handler: ILogHandler) => void;
|
|
@@ -689,20 +1135,34 @@ export declare const showBanner: (bannerType?: BannerType) => void;
|
|
|
689
1135
|
export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
|
|
690
1136
|
export declare const logAnimated: (message: string, duration?: number) => void;
|
|
691
1137
|
export declare const cli: (command: string) => Promise<void>;
|
|
692
|
-
export declare const cleanup: () => void
|
|
1138
|
+
export declare const cleanup: () => Promise<void>;
|
|
693
1139
|
export declare const preset: (name: string) => void;
|
|
694
1140
|
export declare const presets: () => string[];
|
|
695
|
-
export declare const hideTimestamp: () =>
|
|
696
|
-
export declare const showTimestamp: () =>
|
|
697
|
-
export declare const hideLocation: () =>
|
|
698
|
-
export declare const showLocation: () =>
|
|
699
|
-
export declare const hideBadges: () =>
|
|
700
|
-
export declare const showBadges: () =>
|
|
701
|
-
export declare const
|
|
702
|
-
export declare const
|
|
703
|
-
export declare const
|
|
704
|
-
export declare const
|
|
705
|
-
export declare const
|
|
706
|
-
export
|
|
1141
|
+
export declare const hideTimestamp: () => Logger;
|
|
1142
|
+
export declare const showTimestamp: () => Logger;
|
|
1143
|
+
export declare const hideLocation: () => Logger;
|
|
1144
|
+
export declare const showLocation: () => Logger;
|
|
1145
|
+
export declare const hideBadges: () => Logger;
|
|
1146
|
+
export declare const showBadges: () => Logger;
|
|
1147
|
+
export declare const badges: (badgeList: string[]) => Logger;
|
|
1148
|
+
export declare const badge: (badgeName: string) => Logger;
|
|
1149
|
+
export declare const clearBadges: () => Logger;
|
|
1150
|
+
export declare const component: (name: string) => ComponentLogger;
|
|
1151
|
+
export declare const api: (name: string) => APILogger;
|
|
1152
|
+
export declare const scope: (name: string) => ScopedLogger;
|
|
1153
|
+
export declare const customize: (overrides: Parameters<Logger["customize"]>[0]) => void;
|
|
1154
|
+
export declare const addSerializer: <T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number) => void;
|
|
1155
|
+
export declare const removeSerializer: <T>(type: new (...args: unknown[]) => T) => boolean;
|
|
1156
|
+
export declare const on: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
1157
|
+
export declare const once: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
1158
|
+
export declare const off: (event: HookEvent, callback: HookCallback) => boolean;
|
|
1159
|
+
export declare const use: (middleware: MiddlewareFn, priority?: number) => () => void;
|
|
1160
|
+
export declare const addTransport: (target: TransportTarget) => string;
|
|
1161
|
+
export declare const removeTransport: (id: string) => boolean;
|
|
1162
|
+
export declare const flushTransports: () => Promise<void>;
|
|
1163
|
+
export declare const closeTransports: () => Promise<void>;
|
|
707
1164
|
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
1165
|
+
export { SerializerRegistry } from './serializers/index.js';
|
|
1166
|
+
export { HookManager } from './hooks/index.js';
|
|
1167
|
+
export { TransportManager, ConsoleTransport, FileTransport, HttpTransport } from './transports/index.js';
|
|
708
1168
|
//# sourceMappingURL=Logger.d.ts.map
|