@mks2508/better-logger 0.14.0-alpha.2 → 0.18.2-alpha.1
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 +289 -185
- package/dist/Logger.d.ts +576 -205
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ScopedLogger.d.ts +48 -292
- package/dist/ScopedLogger.d.ts.map +1 -1
- package/dist/chunks/HookBridge-CiRfR67f.cjs +190 -0
- package/dist/chunks/HookBridge-CiRfR67f.cjs.map +1 -0
- package/dist/chunks/HookBridge-SgMmbXZB.js +173 -0
- package/dist/chunks/HookBridge-SgMmbXZB.js.map +1 -0
- package/dist/chunks/LogContext-Cwn-1Zzb.js +85 -0
- package/dist/chunks/LogContext-Cwn-1Zzb.js.map +1 -0
- package/dist/chunks/LogContext-L7HzynFw.cjs +90 -0
- package/dist/chunks/LogContext-L7HzynFw.cjs.map +1 -0
- package/dist/chunks/SerializerBridge-BaOQOb8q.cjs +166 -0
- package/dist/chunks/SerializerBridge-BaOQOb8q.cjs.map +1 -0
- package/dist/chunks/SerializerBridge-BkpQu5c9.js +149 -0
- package/dist/chunks/SerializerBridge-BkpQu5c9.js.map +1 -0
- package/dist/chunks/StyleManager-CIpd6wbO.cjs +92 -0
- package/dist/chunks/StyleManager-CIpd6wbO.cjs.map +1 -0
- package/dist/chunks/StyleManager-LCvVlVdx.js +87 -0
- package/dist/chunks/StyleManager-LCvVlVdx.js.map +1 -0
- package/dist/chunks/core-Dzz7agGa.cjs +39 -0
- package/dist/chunks/core-Dzz7agGa.cjs.map +1 -0
- package/dist/chunks/core-PoT7RrTK.js +34 -0
- package/dist/chunks/core-PoT7RrTK.js.map +1 -0
- package/dist/chunks/environment-detector-CI3TrWK_.js +110 -0
- package/dist/chunks/environment-detector-CI3TrWK_.js.map +1 -0
- package/dist/chunks/environment-detector-Cnn6wr6O.cjs +163 -0
- package/dist/chunks/environment-detector-Cnn6wr6O.cjs.map +1 -0
- package/dist/chunks/server-fallback-BUKjdLS7.cjs +42 -0
- package/dist/chunks/server-fallback-BUKjdLS7.cjs.map +1 -0
- package/dist/chunks/server-fallback-BsuWH1Dk.js +37 -0
- package/dist/chunks/server-fallback-BsuWH1Dk.js.map +1 -0
- package/dist/chunks/spinner-D3FsF78o.js +700 -0
- package/dist/chunks/spinner-D3FsF78o.js.map +1 -0
- package/dist/chunks/spinner-DNvxbM9a.cjs +747 -0
- package/dist/chunks/spinner-DNvxbM9a.cjs.map +1 -0
- package/dist/chunks/styling-84N8T97t.js +941 -0
- package/dist/chunks/styling-84N8T97t.js.map +1 -0
- package/dist/chunks/styling-Cg5saQ46.cjs +994 -0
- package/dist/chunks/styling-Cg5saQ46.cjs.map +1 -0
- package/dist/chunks/transports-BiDk345e.js +715 -0
- package/dist/chunks/transports-BiDk345e.js.map +1 -0
- package/dist/chunks/transports-COPWmlF1.cjs +756 -0
- package/dist/chunks/transports-COPWmlF1.cjs.map +1 -0
- package/dist/chunks/utils-BqlFYocD.cjs +698 -0
- package/dist/chunks/utils-BqlFYocD.cjs.map +1 -0
- package/dist/chunks/utils-VETbVpkR.js +579 -0
- package/dist/chunks/utils-VETbVpkR.js.map +1 -0
- package/dist/cli/commands/ExportCommand.d.ts +8 -26
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -1
- package/dist/cli/index.d.ts +1 -2
- 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 +146 -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 +281 -2
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +6 -7
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +258 -314
- package/dist/core.js.map +1 -1
- package/dist/example.d.ts.map +1 -1
- package/dist/hooks/HookBridge.d.ts +26 -0
- package/dist/hooks/HookBridge.d.ts.map +1 -0
- package/dist/hooks/HookManager.d.ts +26 -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 +2522 -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 +2447 -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 +46 -0
- package/dist/playground/TerminalBridge.d.ts.map +1 -0
- package/dist/playground/box.d.ts +14 -0
- package/dist/playground/box.d.ts.map +1 -0
- package/dist/playground/cli-table.d.ts +14 -0
- package/dist/playground/cli-table.d.ts.map +1 -0
- package/dist/playground/divider.d.ts +10 -0
- package/dist/playground/divider.d.ts.map +1 -0
- package/dist/playground/header.d.ts +11 -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 +27 -0
- package/dist/playground/server-fallback.d.ts.map +1 -0
- package/dist/playground/spinner.d.ts +48 -0
- package/dist/playground/spinner.d.ts.map +1 -0
- package/dist/playground/step.d.ts +14 -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 +21 -0
- package/dist/serializers/SerializerBridge.d.ts.map +1 -0
- package/dist/serializers/SerializerRegistry.d.ts +16 -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 +83 -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/banners.d.ts +6 -2
- 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/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 +9 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -0
- package/dist/transports/FileTransport.d.ts +56 -0
- package/dist/transports/FileTransport.d.ts.map +1 -0
- package/dist/transports/HttpTransport.d.ts +67 -0
- package/dist/transports/HttpTransport.d.ts.map +1 -0
- package/dist/transports/OtlpTransport.d.ts +148 -0
- package/dist/transports/OtlpTransport.d.ts.map +1 -0
- package/dist/transports/TransportBridge.d.ts +37 -0
- package/dist/transports/TransportBridge.d.ts.map +1 -0
- package/dist/transports/TransportManager.d.ts +36 -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 +188 -6
- 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 +60 -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 +25 -0
- package/dist/types/serializers.d.ts.map +1 -0
- package/dist/types/transports.d.ts +127 -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 +1 -0
- 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 +8 -11
- package/dist/utils/output.d.ts.map +1 -1
- 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 +96 -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.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.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,48 @@ 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
|
+
/** Set during success() so log() skips its own dispatch (N2 fix). */
|
|
53
|
+
private _successTagDispatched;
|
|
54
|
+
private styleManager;
|
|
55
|
+
/** Whether CLI primitives (step, box, header, etc.) should be shown*/
|
|
56
|
+
private _showPrimitives;
|
|
57
|
+
private terminalBridge;
|
|
58
|
+
/**
|
|
59
|
+
* Active smart-preset reference (set by `preset()`). Typed as `unknown`
|
|
60
|
+
* to keep the public surface clean; consumed by `createStyledOutput`.
|
|
61
|
+
*/
|
|
62
|
+
private _activePreset?;
|
|
63
|
+
/**
|
|
64
|
+
* Name of the active smart-preset. Stored separately so theme-change
|
|
65
|
+
* detection can re-render without re-running the preset body.
|
|
66
|
+
*/
|
|
67
|
+
private _activePresetName?;
|
|
68
|
+
/**
|
|
69
|
+
* Last-applied `customize()` overrides. Stored for later read by
|
|
70
|
+
* `createStyledOutput`.
|
|
71
|
+
*/
|
|
72
|
+
private _customization?;
|
|
73
|
+
/**
|
|
74
|
+
* This logger's own context bindings (from child() calls).
|
|
75
|
+
* Single source of truth for this logger's contribution to the context chain.
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
private _bindings;
|
|
79
|
+
/**
|
|
80
|
+
* Reference to the parent's merged context record at the time this logger
|
|
81
|
+
* was created. Together with _bindings, forms the context chain.
|
|
82
|
+
* Undefined for the root logger.
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
private _parentContextRecord;
|
|
47
86
|
/**
|
|
48
87
|
* Crea una nueva instancia del Logger
|
|
49
88
|
*
|
|
@@ -75,7 +114,6 @@ export declare class Logger {
|
|
|
75
114
|
* console.log('Verbosidad actual:', config.verbosity);
|
|
76
115
|
* console.log('Tema actual:', config.theme);
|
|
77
116
|
*
|
|
78
|
-
* @since 0.3.0
|
|
79
117
|
*/
|
|
80
118
|
getConfig(): LoggerConfig;
|
|
81
119
|
/**
|
|
@@ -90,7 +128,6 @@ export declare class Logger {
|
|
|
90
128
|
* theme: 'cyberpunk'
|
|
91
129
|
* });
|
|
92
130
|
*
|
|
93
|
-
* @since 0.3.0
|
|
94
131
|
*/
|
|
95
132
|
updateConfig(updates: Partial<LoggerConfig>): void;
|
|
96
133
|
/**
|
|
@@ -102,7 +139,6 @@ export declare class Logger {
|
|
|
102
139
|
* logger.setGlobalPrefix('MiApp');
|
|
103
140
|
* logger.info('Iniciado'); // [MiApp] Iniciado
|
|
104
141
|
*
|
|
105
|
-
* @since 0.3.0
|
|
106
142
|
*/
|
|
107
143
|
setGlobalPrefix(prefix: string): void;
|
|
108
144
|
/**
|
|
@@ -115,7 +151,6 @@ export declare class Logger {
|
|
|
115
151
|
* logger.setVerbosity('debug'); // Muestra todos los niveles
|
|
116
152
|
* logger.setVerbosity('silent'); // No muestra nada
|
|
117
153
|
*
|
|
118
|
-
* @since 0.3.0
|
|
119
154
|
*/
|
|
120
155
|
setVerbosity(level: Verbosity): void;
|
|
121
156
|
/**
|
|
@@ -128,7 +163,6 @@ export declare class Logger {
|
|
|
128
163
|
* logger.setTheme('minimal'); // Tema minimalista
|
|
129
164
|
* logger.setTheme('cyberpunk'); // Tema cyberpunk con efectos
|
|
130
165
|
*
|
|
131
|
-
* @since 0.3.0
|
|
132
166
|
*/
|
|
133
167
|
setTheme(theme: ThemeVariant): void;
|
|
134
168
|
/**
|
|
@@ -141,9 +175,95 @@ export declare class Logger {
|
|
|
141
175
|
* logger.setBannerType('unicode'); // Banner con caracteres Unicode
|
|
142
176
|
* logger.setBannerType('animated'); // Banner con animación
|
|
143
177
|
*
|
|
144
|
-
* @since 0.3.0
|
|
145
178
|
*/
|
|
146
179
|
setBannerType(bannerType: BannerType): void;
|
|
180
|
+
/**
|
|
181
|
+
* Runs `fn` within an AsyncLocalStorage scope where `bindings` are
|
|
182
|
+
* merged into the context for all log calls inside `fn`.
|
|
183
|
+
*
|
|
184
|
+
* Without `fn` (the old setter shape): no-op for backwards compatibility.
|
|
185
|
+
* Prefer `child()` for persistent bindings or `withContextAsync()` for
|
|
186
|
+
* async callbacks.
|
|
187
|
+
*
|
|
188
|
+
* @param bindings - Key-value pairs to attach for the duration of `fn`
|
|
189
|
+
* @param fn - Optional synchronous function to run with scoped bindings
|
|
190
|
+
* @returns The return value of `fn`, or undefined if no fn provided
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* // Scoped synchronous callback
|
|
194
|
+
* logger.withContext({ requestId: 'r-42' }, () => {
|
|
195
|
+
* doWork(); // logs inside see requestId in attributes
|
|
196
|
+
* });
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* // Persistent binding: use child()
|
|
200
|
+
* const reqLog = logger.child({ requestId: 'r-42' });
|
|
201
|
+
* reqLog.info('handling request'); // attributes include requestId
|
|
202
|
+
*
|
|
203
|
+
* @see {@link child} for an immutable copy with the merged context
|
|
204
|
+
* @see {@link withContextAsync} for async callback variant
|
|
205
|
+
*/
|
|
206
|
+
withContext<R>(bindings: Record<string, unknown>, fn?: () => R): R | undefined;
|
|
207
|
+
/**
|
|
208
|
+
* Async variant of `withContext`. Runs `fn` within an AsyncLocalStorage
|
|
209
|
+
* scope so bindings are available to all async log calls inside `fn`.
|
|
210
|
+
*
|
|
211
|
+
* @param bindings - Key-value pairs to attach for the duration of `fn`
|
|
212
|
+
* @param fn - Async function to run with the scoped bindings
|
|
213
|
+
* @returns The return value of `fn`
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* await logger.withContextAsync({ requestId: 'r-42' }, async () => {
|
|
217
|
+
* await fetchData(); // logs inside see requestId in attributes
|
|
218
|
+
* });
|
|
219
|
+
*
|
|
220
|
+
* @see {@link child} for a persistent child logger
|
|
221
|
+
* @see {@link withContext} for synchronous callback variant
|
|
222
|
+
*/
|
|
223
|
+
withContextAsync<R>(bindings: Record<string, unknown>, fn: () => Promise<R>): Promise<R>;
|
|
224
|
+
/**
|
|
225
|
+
* Returns an immutable copy of this logger with the extra context bound.
|
|
226
|
+
* Future calls on the child emit with the merged context, without
|
|
227
|
+
* mutating the parent — the canonical MDC pattern.
|
|
228
|
+
*
|
|
229
|
+
* @param extra - Key-value pairs to attach (requestId, userId, ...)
|
|
230
|
+
* @returns A new Logger with merged context
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* const reqLog = logger.child({ requestId: req.id });
|
|
234
|
+
* reqLog.info('start'); // emits attributes: { requestId }
|
|
235
|
+
* logger.info('unrelated'); // NOT affected — parent's context untouched
|
|
236
|
+
*
|
|
237
|
+
*/
|
|
238
|
+
child(extra: Record<string, unknown>): Logger;
|
|
239
|
+
/**
|
|
240
|
+
* Drops every key from the bound context. After this call, emitted
|
|
241
|
+
* records no longer carry `attributes` until {@link withContext} or
|
|
242
|
+
* {@link child} re-establish one.
|
|
243
|
+
*
|
|
244
|
+
* @returns The same logger instance, now context-free
|
|
245
|
+
*/
|
|
246
|
+
clearContext(): this;
|
|
247
|
+
/**
|
|
248
|
+
* Snapshot of the bound context. Returned object is a shallow copy:
|
|
249
|
+
* mutating it does NOT affect what subsequent log calls emit.
|
|
250
|
+
*
|
|
251
|
+
* @returns A read-only snapshot of the current context
|
|
252
|
+
*/
|
|
253
|
+
getContext(): Readonly<Record<string, unknown>>;
|
|
254
|
+
/**
|
|
255
|
+
* Updates the default OTel resource (service.name, version, env).
|
|
256
|
+
* Persisted into every emitted record's `resource` field unless the
|
|
257
|
+
* record itself overrides it.
|
|
258
|
+
*
|
|
259
|
+
* @param resource - Partial OTel resource to merge into the current one
|
|
260
|
+
* @returns The same logger instance, for chaining
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* logger.setResource({ 'service.name': 'api', 'service.version': '1.2.3' });
|
|
264
|
+
*
|
|
265
|
+
*/
|
|
266
|
+
setResource(resource: Partial<ILogResourceRef>): this;
|
|
147
267
|
/**
|
|
148
268
|
* Reinicia el logger a la configuración por defecto
|
|
149
269
|
*
|
|
@@ -151,7 +271,6 @@ export declare class Logger {
|
|
|
151
271
|
* logger.resetConfig();
|
|
152
272
|
* // Todo vuelve a la configuración inicial
|
|
153
273
|
*
|
|
154
|
-
* @since 0.3.0
|
|
155
274
|
*/
|
|
156
275
|
resetConfig(): void;
|
|
157
276
|
/**
|
|
@@ -161,9 +280,17 @@ export declare class Logger {
|
|
|
161
280
|
* // Antes de cerrar la aplicación
|
|
162
281
|
* logger.cleanup();
|
|
163
282
|
*
|
|
164
|
-
* @since 0.3.0
|
|
165
283
|
*/
|
|
166
|
-
|
|
284
|
+
/**
|
|
285
|
+
* Tears down every resource held by this Logger. Safe to call multiple
|
|
286
|
+
* times. Fixed in 5.1.0 to fully drain transports + clear timers +
|
|
287
|
+
* drop the legacy handler list + reset group depth + clear context.
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* await logger.cleanup(); // before process exit / hot reload
|
|
291
|
+
*
|
|
292
|
+
*/
|
|
293
|
+
cleanup(): Promise<void>;
|
|
167
294
|
/**
|
|
168
295
|
* Aplica un preset inteligente - funciona perfectamente sin configuración
|
|
169
296
|
*
|
|
@@ -178,7 +305,6 @@ export declare class Logger {
|
|
|
178
305
|
* logger.preset('debug'); // Modo desarrollo detallado
|
|
179
306
|
* logger.preset('production'); // Optimizado para producción
|
|
180
307
|
*
|
|
181
|
-
* @since 0.3.0
|
|
182
308
|
*/
|
|
183
309
|
preset(name: string): void;
|
|
184
310
|
/**
|
|
@@ -190,7 +316,6 @@ export declare class Logger {
|
|
|
190
316
|
* const disponibles = logger.presets();
|
|
191
317
|
* console.log(disponibles); // ['default', 'cyberpunk', 'glassmorphism', ...]
|
|
192
318
|
*
|
|
193
|
-
* @since 0.3.0
|
|
194
319
|
*/
|
|
195
320
|
presets(): string[];
|
|
196
321
|
/**
|
|
@@ -200,9 +325,8 @@ export declare class Logger {
|
|
|
200
325
|
* logger.hideTimestamp();
|
|
201
326
|
* logger.info('Sin marca de tiempo'); // Sin timestamp visible
|
|
202
327
|
*
|
|
203
|
-
* @since 0.3.0
|
|
204
328
|
*/
|
|
205
|
-
hideTimestamp():
|
|
329
|
+
hideTimestamp(): this;
|
|
206
330
|
/**
|
|
207
331
|
* Muestra el timestamp en los logs
|
|
208
332
|
*
|
|
@@ -210,9 +334,8 @@ export declare class Logger {
|
|
|
210
334
|
* logger.showTimestamp();
|
|
211
335
|
* logger.info('Con marca de tiempo'); // [2024-01-15 10:30:45] Con marca de tiempo
|
|
212
336
|
*
|
|
213
|
-
* @since 0.3.0
|
|
214
337
|
*/
|
|
215
|
-
showTimestamp():
|
|
338
|
+
showTimestamp(): this;
|
|
216
339
|
/**
|
|
217
340
|
* Oculta la información de ubicación (archivo:línea) en los logs
|
|
218
341
|
*
|
|
@@ -220,9 +343,8 @@ export declare class Logger {
|
|
|
220
343
|
* logger.hideLocation();
|
|
221
344
|
* logger.debug('Sin ubicación'); // Sin mostrar archivo:línea
|
|
222
345
|
*
|
|
223
|
-
* @since 0.3.0
|
|
224
346
|
*/
|
|
225
|
-
hideLocation():
|
|
347
|
+
hideLocation(): this;
|
|
226
348
|
/**
|
|
227
349
|
* Muestra la información de ubicación (archivo:línea) en los logs
|
|
228
350
|
*
|
|
@@ -230,9 +352,8 @@ export declare class Logger {
|
|
|
230
352
|
* logger.showLocation();
|
|
231
353
|
* logger.debug('Con ubicación'); // app.js:42 Con ubicación
|
|
232
354
|
*
|
|
233
|
-
* @since 0.3.0
|
|
234
355
|
*/
|
|
235
|
-
showLocation():
|
|
356
|
+
showLocation(): this;
|
|
236
357
|
/**
|
|
237
358
|
* Oculta los badges en los logs
|
|
238
359
|
*
|
|
@@ -241,9 +362,8 @@ export declare class Logger {
|
|
|
241
362
|
* const api = logger.api('REST');
|
|
242
363
|
* api.info('Sin badges'); // Sin mostrar [API] [REST]
|
|
243
364
|
*
|
|
244
|
-
* @since 0.3.0
|
|
245
365
|
*/
|
|
246
|
-
hideBadges():
|
|
366
|
+
hideBadges(): this;
|
|
247
367
|
/**
|
|
248
368
|
* Muestra los badges en los logs
|
|
249
369
|
*
|
|
@@ -252,62 +372,44 @@ export declare class Logger {
|
|
|
252
372
|
* const api = logger.api('GraphQL');
|
|
253
373
|
* api.info('Con badges'); // [API] [GraphQL] Con badges
|
|
254
374
|
*
|
|
255
|
-
* @since 0.3.0
|
|
256
375
|
*/
|
|
257
|
-
showBadges():
|
|
376
|
+
showBadges(): this;
|
|
258
377
|
/**
|
|
259
|
-
*
|
|
378
|
+
* Establece múltiples badges para los logs
|
|
260
379
|
*
|
|
261
|
-
* @param {string}
|
|
262
|
-
* @returns {
|
|
380
|
+
* @param {string[]} badges - Array de badges a mostrar
|
|
381
|
+
* @returns {this} Logger instance para encadenamiento
|
|
263
382
|
*
|
|
264
383
|
* @example
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
* // [COMPONENT] [Autenticación] Validando credenciales
|
|
268
|
-
*
|
|
269
|
-
* authLogger.success('Usuario autenticado');
|
|
270
|
-
* // [COMPONENT] [Autenticación] ✓ Usuario autenticado
|
|
384
|
+
* logger.badges(['v3', 'stable']).info('Release publicado');
|
|
385
|
+
* logger.badges(['API', 'v2']).warn('Endpoint deprecado');
|
|
271
386
|
*
|
|
272
|
-
* @since 0.3.0
|
|
273
387
|
*/
|
|
274
|
-
|
|
388
|
+
badges(badges: string[]): this;
|
|
275
389
|
/**
|
|
276
|
-
*
|
|
390
|
+
* Añade un badge individual a la lista
|
|
277
391
|
*
|
|
278
|
-
* @param {string}
|
|
279
|
-
* @returns {
|
|
392
|
+
* @param {string} badge - Badge a añadir
|
|
393
|
+
* @returns {this} Logger instance para encadenamiento
|
|
280
394
|
*
|
|
281
395
|
* @example
|
|
282
|
-
*
|
|
283
|
-
* api.info('GET /users');
|
|
284
|
-
* // [API] [REST] GET /users
|
|
396
|
+
* logger.badge('DEBUG').badge('AUTH').info('Token validado');
|
|
285
397
|
*
|
|
286
|
-
* // Con badges adicionales
|
|
287
|
-
* api.badges(['v2', 'cached']).info('Respuesta desde caché');
|
|
288
|
-
* // [API] [v2] [cached] [REST] Respuesta desde caché
|
|
289
|
-
*
|
|
290
|
-
* @since 0.3.0
|
|
291
398
|
*/
|
|
292
|
-
|
|
399
|
+
badge(badge: string): this;
|
|
293
400
|
/**
|
|
294
|
-
*
|
|
401
|
+
* Limpia todos los badges activos
|
|
295
402
|
*
|
|
296
|
-
* @
|
|
297
|
-
* @returns {ScopedLogger} Logger con scope personalizado
|
|
403
|
+
* @returns {this} Logger instance para encadenamiento
|
|
298
404
|
*
|
|
299
405
|
* @example
|
|
300
|
-
*
|
|
301
|
-
* dbLogger.info('Conectando a MongoDB');
|
|
302
|
-
* // [Database] Conectando a MongoDB
|
|
303
|
-
*
|
|
304
|
-
* // Con badges personalizados
|
|
305
|
-
* dbLogger.badge('SLOW').warn('Query tardó 5s');
|
|
306
|
-
* // [SLOW] [Database] Query tardó 5s
|
|
406
|
+
* logger.clearBadges().info('Sin badges');
|
|
307
407
|
*
|
|
308
|
-
* @since 0.3.0
|
|
309
408
|
*/
|
|
310
|
-
|
|
409
|
+
clearBadges(): this;
|
|
410
|
+
component(name: string): ComponentLogger;
|
|
411
|
+
api(name: string): APILogger;
|
|
412
|
+
scope(name: string): ScopedLogger;
|
|
311
413
|
/**
|
|
312
414
|
* Personalización simple con configuración mínima
|
|
313
415
|
*
|
|
@@ -326,7 +428,6 @@ export declare class Logger {
|
|
|
326
428
|
* spacing: 'compact'
|
|
327
429
|
* });
|
|
328
430
|
*
|
|
329
|
-
* @since 0.3.0
|
|
330
431
|
*/
|
|
331
432
|
customize(overrides: {
|
|
332
433
|
message?: {
|
|
@@ -352,10 +453,6 @@ export declare class Logger {
|
|
|
352
453
|
};
|
|
353
454
|
spacing?: 'compact' | 'normal' | 'spacious';
|
|
354
455
|
}): void;
|
|
355
|
-
/**
|
|
356
|
-
* Access advanced styling API (for power users)
|
|
357
|
-
*/
|
|
358
|
-
styles(): any;
|
|
359
456
|
/**
|
|
360
457
|
* Añade un handler personalizado para extender funcionalidad
|
|
361
458
|
*
|
|
@@ -363,38 +460,205 @@ export declare class Logger {
|
|
|
363
460
|
*
|
|
364
461
|
* @example
|
|
365
462
|
* // Handler personalizado para enviar logs a servidor
|
|
366
|
-
*
|
|
367
|
-
*
|
|
463
|
+
* logger.addHandler({
|
|
464
|
+
* handle(level, message, args, metadata) {
|
|
465
|
+
* fetch('/logs', { method: 'POST', body: JSON.stringify({ level, message }) });
|
|
466
|
+
* }
|
|
467
|
+
* });
|
|
368
468
|
*
|
|
369
469
|
* @example
|
|
370
|
-
* //
|
|
371
|
-
*
|
|
372
|
-
* logger.addHandler(fileHandler);
|
|
470
|
+
* // Para escribir a archivo, usa `addTransport` con un `FileTransport`
|
|
471
|
+
* logger.addTransport({ target: new FileTransport({ destination: 'app.log' }) });
|
|
373
472
|
*
|
|
374
|
-
* @since 0.3.0
|
|
375
473
|
*/
|
|
376
474
|
addHandler(handler: ILogHandler): void;
|
|
377
475
|
/**
|
|
378
476
|
* Obtiene todos los handlers registrados
|
|
379
477
|
*
|
|
380
478
|
* @returns {ILogHandler[]} Array de handlers activos
|
|
381
|
-
* @since 0.3.0
|
|
382
479
|
*/
|
|
383
480
|
getHandlers(): ILogHandler[];
|
|
384
481
|
/**
|
|
385
|
-
*
|
|
482
|
+
* Añade un serializador personalizado para un tipo específico
|
|
483
|
+
*
|
|
484
|
+
* @param type - Constructor del tipo a serializar
|
|
485
|
+
* @param serializer - Función de serialización
|
|
486
|
+
* @param priority - Prioridad (mayor = primero)
|
|
487
|
+
*
|
|
488
|
+
* @example
|
|
489
|
+
* logger.addSerializer(Error, (err) => ({
|
|
490
|
+
* name: err.name,
|
|
491
|
+
* message: err.message,
|
|
492
|
+
* stack: err.stack?.split('\n').slice(0, 5)
|
|
493
|
+
* }));
|
|
494
|
+
*
|
|
495
|
+
*/
|
|
496
|
+
addSerializer<T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number): void;
|
|
497
|
+
/**
|
|
498
|
+
* Elimina un serializador registrado
|
|
499
|
+
*
|
|
500
|
+
* @param type - Constructor del tipo a remover
|
|
501
|
+
* @returns true si se eliminó
|
|
502
|
+
*
|
|
503
|
+
*/
|
|
504
|
+
removeSerializer<T>(type: new (...args: unknown[]) => T): boolean;
|
|
505
|
+
/**
|
|
506
|
+
* Obtiene el registry de serializadores
|
|
507
|
+
*
|
|
508
|
+
* @returns SerializerRegistry
|
|
509
|
+
*/
|
|
510
|
+
getSerializerRegistry(): SerializerRegistry;
|
|
511
|
+
/**
|
|
512
|
+
* Registra un hook para un evento
|
|
513
|
+
*
|
|
514
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
515
|
+
* @param callback - Función a ejecutar
|
|
516
|
+
* @param priority - Prioridad (mayor = primero)
|
|
517
|
+
* @returns Función para desregistrar
|
|
518
|
+
*
|
|
519
|
+
* @example
|
|
520
|
+
* const unsubscribe = logger.on('beforeLog', (entry) => {
|
|
521
|
+
* entry.correlationId = getCorrelationId();
|
|
522
|
+
* return entry;
|
|
523
|
+
* });
|
|
524
|
+
*
|
|
525
|
+
*/
|
|
526
|
+
on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
527
|
+
/**
|
|
528
|
+
* Registra un hook que se ejecuta solo una vez
|
|
529
|
+
*
|
|
530
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
531
|
+
* @param callback - Función a ejecutar
|
|
532
|
+
* @param priority - Prioridad (mayor = primero)
|
|
533
|
+
* @returns Función para desregistrar
|
|
534
|
+
*
|
|
535
|
+
*/
|
|
536
|
+
once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
537
|
+
/**
|
|
538
|
+
* Elimina un hook registrado
|
|
539
|
+
*
|
|
540
|
+
* @param event - Evento del hook
|
|
541
|
+
* @param callback - Callback a remover
|
|
542
|
+
* @returns true si se eliminó
|
|
543
|
+
*
|
|
544
|
+
*/
|
|
545
|
+
off(event: HookEvent, callback: HookCallback): boolean;
|
|
546
|
+
/**
|
|
547
|
+
* Añade un middleware al pipeline
|
|
548
|
+
*
|
|
549
|
+
* @param middleware - Función middleware
|
|
550
|
+
* @param priority - Prioridad (mayor = primero)
|
|
551
|
+
* @returns Función para desregistrar
|
|
552
|
+
*
|
|
553
|
+
* @example
|
|
554
|
+
* logger.use((entry, next) => {
|
|
555
|
+
* entry.requestId = asyncLocalStorage.getStore()?.requestId;
|
|
556
|
+
* next();
|
|
557
|
+
* });
|
|
558
|
+
*
|
|
559
|
+
*/
|
|
560
|
+
use(middleware: MiddlewareFn, priority?: number): () => void;
|
|
561
|
+
/**
|
|
562
|
+
* Obtiene el HookManager
|
|
563
|
+
*
|
|
564
|
+
* @returns HookManager
|
|
565
|
+
*/
|
|
566
|
+
getHookManager(): HookManager;
|
|
567
|
+
/**
|
|
568
|
+
* Añade un transport para envío de logs
|
|
569
|
+
*
|
|
570
|
+
* @param target - Configuración del transport
|
|
571
|
+
* @returns ID único del transport
|
|
572
|
+
*
|
|
573
|
+
* @example
|
|
574
|
+
* // File transport
|
|
575
|
+
* logger.addTransport({
|
|
576
|
+
* target: 'file',
|
|
577
|
+
* options: { destination: '/var/log/app.log' }
|
|
578
|
+
* });
|
|
579
|
+
*
|
|
580
|
+
* @example
|
|
581
|
+
* // HTTP transport con batching
|
|
582
|
+
* logger.addTransport({
|
|
583
|
+
* target: 'http',
|
|
584
|
+
* options: {
|
|
585
|
+
* url: 'https://logs.example.com',
|
|
586
|
+
* batchSize: 100,
|
|
587
|
+
* flushInterval: 5000
|
|
588
|
+
* },
|
|
589
|
+
* level: 'warn'
|
|
590
|
+
* });
|
|
591
|
+
*
|
|
592
|
+
*/
|
|
593
|
+
addTransport(target: TransportTarget): string;
|
|
594
|
+
/**
|
|
595
|
+
* Elimina un transport
|
|
596
|
+
*
|
|
597
|
+
* @param id - ID del transport a remover
|
|
598
|
+
* @returns true si se eliminó
|
|
599
|
+
*
|
|
600
|
+
*/
|
|
601
|
+
removeTransport(id: string): boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Fuerza el flush de todos los transports
|
|
604
|
+
*
|
|
605
|
+
* @returns Promise que resuelve cuando todos los buffers están vaciados
|
|
606
|
+
*
|
|
607
|
+
*/
|
|
608
|
+
flushTransports(): Promise<void>;
|
|
609
|
+
/**
|
|
610
|
+
* Cierra todos los transports
|
|
611
|
+
*
|
|
612
|
+
* @returns Promise que resuelve cuando todos están cerrados
|
|
613
|
+
*
|
|
614
|
+
*/
|
|
615
|
+
closeTransports(): Promise<void>;
|
|
616
|
+
/**
|
|
617
|
+
* Obtiene el TransportManager
|
|
386
618
|
*
|
|
387
|
-
* @returns
|
|
388
|
-
* @since 0.3.0
|
|
619
|
+
* @returns TransportManager o undefined si no hay transports
|
|
389
620
|
*/
|
|
390
|
-
|
|
621
|
+
getTransportManager(): TransportManager | undefined;
|
|
391
622
|
/**
|
|
392
|
-
* Verifica si un nivel de log debe mostrarse según la verbosidad actual
|
|
623
|
+
* Verifica si un nivel de log debe mostrarse según la verbosidad actual.
|
|
393
624
|
* @private
|
|
394
625
|
* @param {LogLevel} level - Nivel de log a verificar
|
|
395
626
|
* @returns {boolean} True si debe mostrarse, false si no
|
|
396
627
|
*/
|
|
397
628
|
private shouldLog;
|
|
629
|
+
/**
|
|
630
|
+
* Builds and dispatches a `TransportRecord` to the {@link TransportManager}
|
|
631
|
+
* (no-op if no transports are registered). Shared by every log path —
|
|
632
|
+
* `log()`, `success()`, and visual methods like `table()` / `group()` /
|
|
633
|
+
* `time()` — so all emissions hit the same transport pipeline.
|
|
634
|
+
*
|
|
635
|
+
* @param level - The canonical log level (trace/debug/info/warn/error/critical)
|
|
636
|
+
* @param message - Final, post-hook message text
|
|
637
|
+
* @param prefix - Effective prefix (global + scope)
|
|
638
|
+
* @param stackInfo - Optional caller location
|
|
639
|
+
* @param extra - Optional fields to merge into the record (e.g. `{ tag: 'success' }`)
|
|
640
|
+
*/
|
|
641
|
+
protected _dispatchTag: string | undefined;
|
|
642
|
+
/**
|
|
643
|
+
* Computes the fully-merged context for this logger.
|
|
644
|
+
*
|
|
645
|
+
* The context chain is built at child-creation time: each child stores
|
|
646
|
+
* its parent's fully-merged context (at that moment) as _parentContextRecord.
|
|
647
|
+
* This means _parentContextRecord already contains all ancestors' bindings
|
|
648
|
+
* in the correct precedence order (root first, nearest child last).
|
|
649
|
+
*
|
|
650
|
+
* Merge order (later wins):
|
|
651
|
+
* 1. _parentContextRecord — parent's merged context snapshot at creation time
|
|
652
|
+
* 2. _bindings — this logger's own bindings (child() calls)
|
|
653
|
+
* 3. ALS store — withContext/withContextAsync scope (highest priority)
|
|
654
|
+
*
|
|
655
|
+
* @internal
|
|
656
|
+
* @returns The merged context record
|
|
657
|
+
*/
|
|
658
|
+
private _getMergedContext;
|
|
659
|
+
/** @internal Exposes base merged context (no ALS) to LogContext child factory closure. */
|
|
660
|
+
_captureMergedContext(): Record<string, unknown>;
|
|
661
|
+
protected dispatchToTransports(level: LogLevel, message: string, prefix: string | undefined, stackInfo: StackInfo | null, extra?: Partial<TransportRecord>): void;
|
|
398
662
|
/**
|
|
399
663
|
* Obtiene el prefijo efectivo (global + scope)
|
|
400
664
|
* @private
|
|
@@ -402,149 +666,146 @@ export declare class Logger {
|
|
|
402
666
|
*/
|
|
403
667
|
private getEffectivePrefix;
|
|
404
668
|
/**
|
|
405
|
-
* Método central de logging
|
|
669
|
+
* Método central de logging. Awaits the `beforeLog` hook pipeline
|
|
670
|
+
* synchronously (so redactions / enrichments are reflected in the
|
|
671
|
+
* emitted message before console + transport dispatch).
|
|
672
|
+
*
|
|
673
|
+
* Fire-and-forget callers (e.g. `logger.info(...)` without `await`)
|
|
674
|
+
* still work — the resulting `Promise<void>` is dropped on the floor.
|
|
675
|
+
* Awaiting is recommended when `beforeLog` hooks mutate `message`
|
|
676
|
+
* (e.g. PII redaction, correlation IDs).
|
|
677
|
+
*
|
|
406
678
|
* @protected
|
|
407
|
-
* @param
|
|
408
|
-
* @param
|
|
679
|
+
* @param level - Nivel del log
|
|
680
|
+
* @param args - Argumentos a loggear
|
|
681
|
+
* @returns Promise that resolves once the record has been dispatched
|
|
682
|
+
*
|
|
409
683
|
*/
|
|
410
|
-
protected log(level: LogLevel, ...args: any[]): void;
|
|
411
684
|
/**
|
|
412
|
-
*
|
|
685
|
+
* Protected logging method. Awaits the `beforeLog` hook pipeline
|
|
686
|
+
* synchronously (so redactions / enrichments are reflected in the
|
|
687
|
+
* emitted message before console + transport dispatch).
|
|
413
688
|
*
|
|
414
|
-
*
|
|
689
|
+
* Fire-and-forget callers (e.g. `logger.info(...)` without `await`)
|
|
690
|
+
* still work — the resulting `Promise<void>` is dropped on the floor.
|
|
691
|
+
* Awaiting is recommended when `beforeLog` hooks mutate `message`
|
|
692
|
+
* (e.g. PII redaction, correlation IDs).
|
|
415
693
|
*
|
|
416
|
-
* @
|
|
417
|
-
*
|
|
418
|
-
*
|
|
694
|
+
* @protected
|
|
695
|
+
* @param level - Nivel del log
|
|
696
|
+
* @param args - Argumentos a loggear
|
|
697
|
+
* @param tag - Optional tag forwarded to `dispatchToTransports` as
|
|
698
|
+
* `TransportRecord.tag` (e.g. `'success'` for success records).
|
|
699
|
+
* @returns Promise that resolves once the record has been dispatched
|
|
419
700
|
*
|
|
420
|
-
* @since 0.3.0
|
|
421
701
|
*/
|
|
422
|
-
|
|
702
|
+
protected log(level: LogLevel, ...args: unknown[]): Promise<void>;
|
|
703
|
+
logWithBindings(bindings: Bindings, level: LogLevel, ...args: unknown[]): Promise<void>;
|
|
704
|
+
/**
|
|
705
|
+
* Like `logWithBindings()` but sets _dispatchTag first so that
|
|
706
|
+
* `log()` dispatches with the tag. Used by ScopedLogger.success()
|
|
707
|
+
* to propagate tag:'success' through the normal log() pipeline.
|
|
708
|
+
*/
|
|
709
|
+
logWithBindingsAndTag(bindings: Bindings, level: LogLevel, tag: LogTag, ...args: unknown[]): Promise<void>;
|
|
710
|
+
debug(...args: unknown[]): Promise<void>;
|
|
423
711
|
/**
|
|
424
|
-
* Registra mensajes informativos
|
|
712
|
+
* Registra mensajes informativos. Devuelve `Promise<void>` desde 5.1.0.
|
|
425
713
|
*
|
|
426
|
-
* @param
|
|
714
|
+
* @param args - Mensajes y datos informativos
|
|
427
715
|
*
|
|
428
716
|
* @example
|
|
429
717
|
* logger.info('Servidor iniciado en puerto 3000');
|
|
430
|
-
* logger.info('
|
|
431
|
-
* logger.info('Procesando', totalItems, 'elementos');
|
|
718
|
+
* await logger.info('Procesando', totalItems, 'elementos'); // espera hooks
|
|
432
719
|
*
|
|
433
|
-
* @since 0.3.0
|
|
434
720
|
*/
|
|
435
|
-
info(...args:
|
|
721
|
+
info(...args: unknown[]): Promise<void>;
|
|
436
722
|
/**
|
|
437
|
-
* Registra mensajes de advertencia
|
|
438
|
-
*
|
|
439
|
-
* @param {...any} args - Mensajes de advertencia
|
|
723
|
+
* Registra mensajes de advertencia. Devuelve `Promise<void>` desde 5.1.0.
|
|
440
724
|
*
|
|
441
|
-
* @
|
|
442
|
-
* logger.warn('Memoria al 85% de capacidad');
|
|
443
|
-
* logger.warn('API deprecada, usar v2');
|
|
444
|
-
* logger.warn('Reintentos agotados:', maxRetries);
|
|
725
|
+
* @param args - Mensajes de advertencia
|
|
445
726
|
*
|
|
446
|
-
* @since 0.3.0
|
|
447
727
|
*/
|
|
448
|
-
warn(...args:
|
|
728
|
+
warn(...args: unknown[]): Promise<void>;
|
|
449
729
|
/**
|
|
450
|
-
* Registra mensajes de error
|
|
730
|
+
* Registra mensajes de error. Devuelve `Promise<void>` desde 5.1.0.
|
|
451
731
|
*
|
|
452
|
-
* @param
|
|
732
|
+
* @param args - Mensaje de error y stack traces
|
|
453
733
|
*
|
|
454
|
-
* @example
|
|
455
|
-
* logger.error('Fallo en conexión a base de datos');
|
|
456
|
-
* logger.error('Error al procesar:', error.message, error.stack);
|
|
457
|
-
* logger.error('Código de error:', errorCode);
|
|
458
|
-
*
|
|
459
|
-
* @since 0.3.0
|
|
460
734
|
*/
|
|
461
|
-
error(...args:
|
|
735
|
+
error(...args: unknown[]): Promise<void>;
|
|
462
736
|
/**
|
|
463
|
-
* Registra mensajes de éxito
|
|
737
|
+
* Registra mensajes de éxito. Mapeado internamente a nivel `info` con
|
|
738
|
+
* styling de success y `record.tag = 'success'` para que los transports
|
|
739
|
+
* puedan distinguirlo (sin perder info semantics para filtering).
|
|
464
740
|
*
|
|
465
|
-
* @param
|
|
741
|
+
* @param args - Mensaje + datos adicionales
|
|
466
742
|
*
|
|
467
743
|
* @example
|
|
468
744
|
* logger.success('Base de datos conectada');
|
|
469
745
|
* logger.success('Usuario creado con ID:', userId);
|
|
470
746
|
* logger.success('✓ Tests pasados: 42/42');
|
|
471
747
|
*
|
|
472
|
-
* @since 0.3.0
|
|
473
748
|
*/
|
|
474
|
-
success(...args:
|
|
749
|
+
success(...args: unknown[]): Promise<void>;
|
|
475
750
|
/**
|
|
476
|
-
* Registra información de trace (
|
|
751
|
+
* Registra información de trace (nivel más bajo, debajo de debug).
|
|
752
|
+
* Alineado con OpenTelemetry `TRACE` severity (1-4).
|
|
477
753
|
*
|
|
478
|
-
* @param
|
|
754
|
+
* @param args - Datos muy verbosos (entrada/salida de funciones, valores intermedios)
|
|
479
755
|
*
|
|
480
756
|
* @example
|
|
481
757
|
* logger.trace('Entrando en función processData');
|
|
482
|
-
* logger.trace('
|
|
758
|
+
* logger.trace('Variables intermedias:', { a, b, c });
|
|
483
759
|
*
|
|
484
|
-
* @since 0.3.0
|
|
485
760
|
*/
|
|
486
|
-
trace(...args:
|
|
761
|
+
trace(...args: unknown[]): void;
|
|
487
762
|
/**
|
|
488
|
-
* Registra errores críticos (prioridad más alta)
|
|
763
|
+
* Registra errores críticos (prioridad más alta). Devuelve `Promise<void>` desde 5.1.0.
|
|
489
764
|
*
|
|
490
|
-
* @param
|
|
765
|
+
* @param args - Errores críticos del sistema
|
|
491
766
|
*
|
|
492
767
|
* @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);
|
|
768
|
+
* await logger.critical('Sistema caído - reinicio inmediato requerido');
|
|
496
769
|
*
|
|
497
|
-
* @since 0.3.0
|
|
498
770
|
*/
|
|
499
|
-
critical(...args:
|
|
771
|
+
critical(...args: unknown[]): Promise<void>;
|
|
500
772
|
/**
|
|
501
|
-
* Muestra datos en formato de tabla
|
|
773
|
+
* Muestra datos en formato de tabla. Pasa por la pipeline completa
|
|
774
|
+
* (outputMode-respecting writeOutput + transports + hooks).
|
|
502
775
|
*
|
|
503
|
-
* @param
|
|
504
|
-
* @param
|
|
776
|
+
* @param data - Array de objetos o matriz
|
|
777
|
+
* @param columns - Columnas específicas a mostrar (opcional)
|
|
505
778
|
*
|
|
506
779
|
* @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
|
|
780
|
+
* logger.table([{ id: 1, nombre: 'Juan' }, { id: 2, nombre: 'María' }]);
|
|
513
781
|
*
|
|
514
|
-
* @since 0.3.0
|
|
515
782
|
*/
|
|
516
|
-
table(data:
|
|
783
|
+
table(data: unknown, columns?: string[]): void;
|
|
517
784
|
/**
|
|
518
|
-
* Inicia un grupo colapsable en la consola
|
|
785
|
+
* Inicia un grupo colapsable en la consola. Emite un marker a
|
|
786
|
+
* transports con `attributes.logger.visual = 'groupStart'` para que
|
|
787
|
+
* backends puedan reconstruir la jerarquía.
|
|
519
788
|
*
|
|
520
|
-
* @param
|
|
521
|
-
* @param
|
|
789
|
+
* @param label - Etiqueta del grupo
|
|
790
|
+
* @param collapsed - Si el grupo inicia colapsado (default: false)
|
|
522
791
|
*
|
|
523
792
|
* @example
|
|
524
793
|
* logger.group('Procesando usuarios');
|
|
525
794
|
* 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
795
|
* logger.groupEnd();
|
|
534
796
|
*
|
|
535
|
-
* @since 0.3.0
|
|
536
797
|
*/
|
|
537
798
|
group(label: string, collapsed?: boolean): void;
|
|
538
799
|
/**
|
|
539
|
-
* Finaliza el grupo actual de la consola
|
|
800
|
+
* Finaliza el grupo actual de la consola. Emite un marker a transports
|
|
801
|
+
* simétrico al `group()` start, para que backends puedan cerrar la
|
|
802
|
+
* jerarquía correctamente.
|
|
540
803
|
*
|
|
541
804
|
* @example
|
|
542
805
|
* logger.group('Operaciones');
|
|
543
806
|
* logger.info('Operación 1');
|
|
544
|
-
* logger.
|
|
545
|
-
* logger.groupEnd(); // Cierra el grupo
|
|
807
|
+
* logger.groupEnd();
|
|
546
808
|
*
|
|
547
|
-
* @since 0.3.0
|
|
548
809
|
*/
|
|
549
810
|
groupEnd(): void;
|
|
550
811
|
/**
|
|
@@ -557,22 +818,21 @@ export declare class Logger {
|
|
|
557
818
|
* // ... operación costosa ...
|
|
558
819
|
* logger.timeEnd('proceso-datos'); // ⏱️ Timer ended: proceso-datos - 1523.45ms
|
|
559
820
|
*
|
|
560
|
-
* @since 0.3.0
|
|
561
821
|
*/
|
|
562
822
|
time(label: string): void;
|
|
563
823
|
/**
|
|
564
824
|
* Finaliza un temporizador y muestra el tiempo transcurrido
|
|
565
825
|
*
|
|
566
826
|
* @param {string} label - Etiqueta del temporizador a finalizar
|
|
827
|
+
* @returns {number} Elapsed milliseconds, or -1 if timer not found
|
|
567
828
|
*
|
|
568
829
|
* @example
|
|
569
830
|
* logger.time('consulta-db');
|
|
570
831
|
* await consultarBaseDatos();
|
|
571
|
-
* logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
|
|
832
|
+
* const elapsed = logger.timeEnd('consulta-db'); // ⏱️ Timer ended: consulta-db - 234.56ms
|
|
572
833
|
*
|
|
573
|
-
* @since 0.3.0
|
|
574
834
|
*/
|
|
575
|
-
timeEnd(label: string):
|
|
835
|
+
timeEnd(label: string): number;
|
|
576
836
|
/**
|
|
577
837
|
* Muestra un banner con el tipo especificado o configurado
|
|
578
838
|
*
|
|
@@ -584,7 +844,6 @@ export declare class Logger {
|
|
|
584
844
|
* logger.showBanner('svg'); // Banner con gráfico SVG
|
|
585
845
|
* logger.showBanner(); // Usa el tipo configurado
|
|
586
846
|
*
|
|
587
|
-
* @since 0.3.0
|
|
588
847
|
*/
|
|
589
848
|
showBanner(bannerType?: BannerType): void;
|
|
590
849
|
/**
|
|
@@ -603,7 +862,6 @@ export declare class Logger {
|
|
|
603
862
|
* const customSVG = '<svg>...</svg>';
|
|
604
863
|
* logger.logWithSVG('Logo', customSVG, { width: 400, height: 100 });
|
|
605
864
|
*
|
|
606
|
-
* @since 0.3.0
|
|
607
865
|
*/
|
|
608
866
|
logWithSVG(message: string, svgContent?: string, options?: StyleOptions): void;
|
|
609
867
|
/**
|
|
@@ -616,26 +874,116 @@ export declare class Logger {
|
|
|
616
874
|
* logger.logAnimated('🌈 Animación en progreso');
|
|
617
875
|
* logger.logAnimated('Cargando...', 5); // Animación de 5 segundos
|
|
618
876
|
*
|
|
619
|
-
* @since 0.3.0
|
|
620
877
|
*/
|
|
621
878
|
logAnimated(message: string, duration?: number): void;
|
|
622
879
|
/**
|
|
623
|
-
*
|
|
880
|
+
* Displays a step progress indicator in the terminal
|
|
881
|
+
*
|
|
882
|
+
* @param {number} current - Current step number
|
|
883
|
+
* @param {number} total - Total number of steps
|
|
884
|
+
* @param {string} message - Step description
|
|
885
|
+
*
|
|
886
|
+
* @example
|
|
887
|
+
* logger.step(1, 5, 'Analyzing repository...');
|
|
888
|
+
* logger.step(2, 5, 'Generating commit message...');
|
|
889
|
+
*
|
|
890
|
+
*/
|
|
891
|
+
step(current: number, total: number, message: string): void;
|
|
892
|
+
/**
|
|
893
|
+
* Displays a styled header with optional subtitle
|
|
894
|
+
*
|
|
895
|
+
* @param {string} title - Main title text
|
|
896
|
+
* @param {string} subtitle - Optional subtitle (rendered dimmed)
|
|
897
|
+
*
|
|
898
|
+
* @example
|
|
899
|
+
* logger.header('Commit Wizard', 'v2.0.0');
|
|
900
|
+
*
|
|
901
|
+
*/
|
|
902
|
+
header(title: string, subtitle?: string): void;
|
|
903
|
+
/**
|
|
904
|
+
* Displays a horizontal divider line
|
|
905
|
+
*
|
|
906
|
+
* @example
|
|
907
|
+
* logger.divider();
|
|
908
|
+
*
|
|
909
|
+
*/
|
|
910
|
+
divider(): void;
|
|
911
|
+
/**
|
|
912
|
+
* Outputs a blank line
|
|
913
|
+
*
|
|
914
|
+
* @example
|
|
915
|
+
* logger.blank();
|
|
916
|
+
*
|
|
917
|
+
*/
|
|
918
|
+
blank(): void;
|
|
919
|
+
/**
|
|
920
|
+
* Renders content inside a bordered box
|
|
921
|
+
*
|
|
922
|
+
* @param {string} content - Content string (may contain newlines)
|
|
923
|
+
* @param {IBoxOptions} options - Box rendering options
|
|
924
|
+
*
|
|
925
|
+
* @example
|
|
926
|
+
* logger.box('3 commits generated\nProvider: Groq', { title: 'Done', borderColor: '#00ff00' });
|
|
927
|
+
*
|
|
928
|
+
*/
|
|
929
|
+
box(content: string, options?: IBoxOptions): void;
|
|
930
|
+
/**
|
|
931
|
+
* Renders an array of objects as a formatted ASCII table.
|
|
932
|
+
* Note: This is distinct from the existing table() method which uses console.table.
|
|
933
|
+
*
|
|
934
|
+
* @param {Record<string, unknown>[]} rows - Array of row objects
|
|
935
|
+
* @param {ITableOptions} options - Table rendering options
|
|
936
|
+
*
|
|
937
|
+
* @example
|
|
938
|
+
* logger.cliTable([
|
|
939
|
+
* { provider: 'Groq', status: 'Available', model: 'llama-3.3-70b' },
|
|
940
|
+
* { provider: 'Gemini', status: 'Configured', model: 'gemini-2.5-flash' },
|
|
941
|
+
* ]);
|
|
942
|
+
*
|
|
943
|
+
*/
|
|
944
|
+
cliTable(rows: Record<string, unknown>[], options?: ITableOptions): void;
|
|
945
|
+
/**
|
|
946
|
+
* Creates a spinner handle for showing progress during async operations.
|
|
947
|
+
* Returns a NoopSpinner in non-TTY environments.
|
|
948
|
+
*
|
|
949
|
+
* @param {string} message - Initial spinner text
|
|
950
|
+
* @returns {ISpinnerHandle} Spinner controller
|
|
951
|
+
*
|
|
952
|
+
* @example
|
|
953
|
+
* const s = logger.spinner('Analyzing repository...');
|
|
954
|
+
* s.start();
|
|
955
|
+
* await analyzeRepo();
|
|
956
|
+
* s.succeed('Analysis complete (1.2s)');
|
|
957
|
+
*
|
|
958
|
+
*/
|
|
959
|
+
spinner(message: string): ISpinnerHandle;
|
|
960
|
+
/**
|
|
961
|
+
* Sets the CLI verbosity level, controlling both log verbosity and primitive visibility
|
|
624
962
|
*
|
|
625
|
-
* @param {
|
|
626
|
-
* @param {Function} groupBy - Función que retorna la clave de agrupación
|
|
963
|
+
* @param {CLILogLevel} level - CLI log level
|
|
627
964
|
*
|
|
628
965
|
* @example
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
*
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
966
|
+
* logger.setCLILevel('quiet'); // Only errors, no CLI primitives
|
|
967
|
+
* logger.setCLILevel('verbose'); // Debug logs + all CLI primitives
|
|
968
|
+
*
|
|
969
|
+
*/
|
|
970
|
+
setCLILevel(level: CLILogLevel): void;
|
|
971
|
+
/**
|
|
972
|
+
* Returns the current CLI log level
|
|
973
|
+
* @returns {CLILogLevel} Current CLI log level
|
|
974
|
+
*/
|
|
975
|
+
get cliLevel(): CLILogLevel;
|
|
976
|
+
/**
|
|
977
|
+
* Writes formatted output to the configured destination.
|
|
978
|
+
* Respects outputMode configuration for console, silent, or custom output.
|
|
635
979
|
*
|
|
636
|
-
* @
|
|
980
|
+
* @private
|
|
981
|
+
* @param {string} message - Formatted log message
|
|
982
|
+
* @param {LogLevel} level - Log level
|
|
983
|
+
* @param {string[]} styles - CSS styles for browser console
|
|
984
|
+
* @param {unknown[]} additionalArgs - Additional arguments to log
|
|
637
985
|
*/
|
|
638
|
-
|
|
986
|
+
private writeOutput;
|
|
639
987
|
/**
|
|
640
988
|
* Procesador de comandos CLI para configuración y exportación del logger
|
|
641
989
|
*
|
|
@@ -653,33 +1001,42 @@ export declare class Logger {
|
|
|
653
1001
|
* await logger.cli('status'); // Muestra estado del logger
|
|
654
1002
|
* await logger.cli('help'); // Muestra ayuda de comandos
|
|
655
1003
|
*
|
|
656
|
-
* @since 0.3.0
|
|
657
1004
|
*/
|
|
658
1005
|
cli(command: string): Promise<void>;
|
|
659
1006
|
}
|
|
660
1007
|
/**
|
|
661
|
-
*
|
|
662
|
-
*
|
|
1008
|
+
* Resets the default singleton. Clears the cached instance so the next call
|
|
1009
|
+
* to `getDefaultLogger()` rebuilds it from defaults. Useful for tests and
|
|
1010
|
+
* hot reload scenarios.
|
|
1011
|
+
*
|
|
1012
|
+
*/
|
|
1013
|
+
export declare function resetDefaultLogger(): void;
|
|
1014
|
+
/**
|
|
1015
|
+
* Lazy default export — every property access defers to `getDefaultLogger()`.
|
|
1016
|
+
* Side-effect-free at module import (BUG-N11).
|
|
1017
|
+
*
|
|
1018
|
+
* @example
|
|
1019
|
+
* import logger from 'better-logger';
|
|
1020
|
+
* logger.info('hello'); // first call here triggers singleton init
|
|
663
1021
|
*/
|
|
664
|
-
declare const
|
|
665
|
-
export default
|
|
1022
|
+
declare const loggerProxy: Logger;
|
|
1023
|
+
export default loggerProxy;
|
|
666
1024
|
/**
|
|
667
1025
|
* Métodos individuales exportados para conveniencia
|
|
668
|
-
* @description Todos los métodos están correctamente enlazados al singleton
|
|
669
|
-
* @since 0.3.0
|
|
1026
|
+
* @description Todos los métodos están correctamente enlazados al singleton lazy
|
|
670
1027
|
*/
|
|
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:
|
|
1028
|
+
export declare const debug: (...args: unknown[]) => Promise<void>;
|
|
1029
|
+
export declare const info: (...args: unknown[]) => Promise<void>;
|
|
1030
|
+
export declare const warn: (...args: unknown[]) => Promise<void>;
|
|
1031
|
+
export declare const error: (...args: unknown[]) => Promise<void>;
|
|
1032
|
+
export declare const success: (...args: unknown[]) => Promise<void>;
|
|
1033
|
+
export declare const trace: (...args: unknown[]) => void;
|
|
1034
|
+
export declare const critical: (...args: unknown[]) => Promise<void>;
|
|
1035
|
+
export declare const table: (data: unknown, columns?: string[]) => void;
|
|
679
1036
|
export declare const group: (label: string, collapsed?: boolean) => void;
|
|
680
1037
|
export declare const groupEnd: () => void;
|
|
681
1038
|
export declare const time: (label: string) => void;
|
|
682
|
-
export declare const timeEnd: (label: string) =>
|
|
1039
|
+
export declare const timeEnd: (label: string) => number;
|
|
683
1040
|
export declare const setGlobalPrefix: (prefix: string) => void;
|
|
684
1041
|
export declare const setVerbosity: (level: Verbosity) => void;
|
|
685
1042
|
export declare const addHandler: (handler: ILogHandler) => void;
|
|
@@ -689,20 +1046,34 @@ export declare const showBanner: (bannerType?: BannerType) => void;
|
|
|
689
1046
|
export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
|
|
690
1047
|
export declare const logAnimated: (message: string, duration?: number) => void;
|
|
691
1048
|
export declare const cli: (command: string) => Promise<void>;
|
|
692
|
-
export declare const cleanup: () => void
|
|
1049
|
+
export declare const cleanup: () => Promise<void>;
|
|
693
1050
|
export declare const preset: (name: string) => void;
|
|
694
1051
|
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
|
|
1052
|
+
export declare const hideTimestamp: () => Logger;
|
|
1053
|
+
export declare const showTimestamp: () => Logger;
|
|
1054
|
+
export declare const hideLocation: () => Logger;
|
|
1055
|
+
export declare const showLocation: () => Logger;
|
|
1056
|
+
export declare const hideBadges: () => Logger;
|
|
1057
|
+
export declare const showBadges: () => Logger;
|
|
1058
|
+
export declare const badges: (badgeList: string[]) => Logger;
|
|
1059
|
+
export declare const badge: (badgeName: string) => Logger;
|
|
1060
|
+
export declare const clearBadges: () => Logger;
|
|
1061
|
+
export declare const component: (name: string) => ComponentLogger;
|
|
1062
|
+
export declare const api: (name: string) => APILogger;
|
|
1063
|
+
export declare const scope: (name: string) => ScopedLogger;
|
|
1064
|
+
export declare const customize: (overrides: Parameters<Logger["customize"]>[0]) => void;
|
|
1065
|
+
export declare const addSerializer: <T>(type: new (...args: unknown[]) => T, serializer: SerializerFn<T>, priority?: number) => void;
|
|
1066
|
+
export declare const removeSerializer: <T>(type: new (...args: unknown[]) => T) => boolean;
|
|
1067
|
+
export declare const on: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
1068
|
+
export declare const once: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
1069
|
+
export declare const off: (event: HookEvent, callback: HookCallback) => boolean;
|
|
1070
|
+
export declare const use: (middleware: MiddlewareFn, priority?: number) => () => void;
|
|
1071
|
+
export declare const addTransport: (target: TransportTarget) => string;
|
|
1072
|
+
export declare const removeTransport: (id: string) => boolean;
|
|
1073
|
+
export declare const flushTransports: () => Promise<void>;
|
|
1074
|
+
export declare const closeTransports: () => Promise<void>;
|
|
707
1075
|
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
1076
|
+
export { SerializerRegistry } from './serializers/index.js';
|
|
1077
|
+
export { HookManager } from './hooks/index.js';
|
|
1078
|
+
export { TransportManager, ConsoleTransport, FileTransport, HttpTransport } from './transports/index.js';
|
|
708
1079
|
//# sourceMappingURL=Logger.d.ts.map
|