@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/core.cjs
CHANGED
|
@@ -1,2 +1,304 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_core = require("./chunks/core-CqS_UBzJ.cjs");
|
|
6
|
+
const require_utils = require("./chunks/utils-W_cxqriN.cjs");
|
|
7
|
+
const require_environment_detector = require("./chunks/environment-detector-D-tHkKWA.cjs");
|
|
8
|
+
//#region src/core.ts
|
|
9
|
+
/**
|
|
10
|
+
* Logger minimal con solo la funcionalidad core.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { CoreLogger } from '@mks2508/better-logger/core';
|
|
15
|
+
*
|
|
16
|
+
* const logger = new CoreLogger();
|
|
17
|
+
* logger.info('Hello world');
|
|
18
|
+
* logger.error('Something went wrong', error);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
var CoreLogger = class CoreLogger {
|
|
22
|
+
config;
|
|
23
|
+
scopedPrefix;
|
|
24
|
+
handlers = [];
|
|
25
|
+
timers = /* @__PURE__ */ new Map();
|
|
26
|
+
groupDepth = 0;
|
|
27
|
+
/**
|
|
28
|
+
* Crea una nueva instancia de CoreLogger.
|
|
29
|
+
* @param config - Configuración opcional.
|
|
30
|
+
*/
|
|
31
|
+
constructor(config = {}) {
|
|
32
|
+
this.config = {
|
|
33
|
+
...require_utils.DEFAULT_CONFIG,
|
|
34
|
+
...config,
|
|
35
|
+
enableColors: config.enableColors ?? (require_environment_detector.isBrowser ? true : false),
|
|
36
|
+
enableTimestamps: config.enableTimestamps ?? true,
|
|
37
|
+
enableStackTrace: config.enableStackTrace ?? false,
|
|
38
|
+
autoDetectTheme: config.autoDetectTheme ?? true,
|
|
39
|
+
outputFormat: config.outputFormat ?? "auto"
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Obtiene la configuración actual.
|
|
44
|
+
*/
|
|
45
|
+
getConfig() {
|
|
46
|
+
return { ...this.config };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Define el prefijo global para todos los mensajes de log.
|
|
50
|
+
* @param prefix - Prefijo a aplicar a todos los mensajes.
|
|
51
|
+
*/
|
|
52
|
+
setGlobalPrefix(prefix) {
|
|
53
|
+
this.config.globalPrefix = prefix;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Define el nivel de verbosity para filtrar la salida de log.
|
|
57
|
+
* @param level - Nivel de verbosity.
|
|
58
|
+
*/
|
|
59
|
+
setVerbosity(level) {
|
|
60
|
+
this.config.verbosity = level;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Crea un logger con scope y un prefijo específico.
|
|
64
|
+
* @param prefix - Prefijo del scope.
|
|
65
|
+
* @returns Nueva instancia de CoreLogger con el prefijo asignado.
|
|
66
|
+
*/
|
|
67
|
+
scope(prefix) {
|
|
68
|
+
const scopedLogger = new CoreLogger(this.config);
|
|
69
|
+
scopedLogger.scopedPrefix = prefix;
|
|
70
|
+
scopedLogger.handlers = [...this.handlers];
|
|
71
|
+
return scopedLogger;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Añade un handler personalizado para extensibilidad.
|
|
75
|
+
* @param handler - Handler que implementa la interfaz ILogHandler.
|
|
76
|
+
*/
|
|
77
|
+
addHandler(handler) {
|
|
78
|
+
this.handlers.push(handler);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Comprueba si un nivel debe emitirse según el verbosity actual.
|
|
82
|
+
* @param level - Nivel a evaluar.
|
|
83
|
+
* @returns `true` si el nivel debe emitirse.
|
|
84
|
+
*/
|
|
85
|
+
shouldLog(level) {
|
|
86
|
+
if (this.config.verbosity === "silent") return false;
|
|
87
|
+
const verbosity = this.config.verbosity;
|
|
88
|
+
return require_core.LOG_LEVELS[level] >= require_core.LOG_LEVELS[verbosity];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Obtiene el prefijo efectivo (global + scope).
|
|
92
|
+
* @returns Prefijo combinado o `undefined` si no hay ninguno.
|
|
93
|
+
*/
|
|
94
|
+
getEffectivePrefix() {
|
|
95
|
+
const parts = [this.config.globalPrefix, this.scopedPrefix].filter(Boolean);
|
|
96
|
+
return parts.length > 0 ? parts.join(":") : void 0;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Método principal de log con formato universal.
|
|
100
|
+
* @param level - Nivel del mensaje.
|
|
101
|
+
* @param args - Argumentos del mensaje.
|
|
102
|
+
*/
|
|
103
|
+
log(level, ...args) {
|
|
104
|
+
if (!this.shouldLog(level)) return;
|
|
105
|
+
const prefix = this.getEffectivePrefix();
|
|
106
|
+
const message = String(args[0] || "");
|
|
107
|
+
const stackInfo = this.config.enableStackTrace ? require_utils.parseStackTrace() : null;
|
|
108
|
+
const consoleMethod = require_utils.getConsoleMethod(level);
|
|
109
|
+
if (require_environment_detector.isBrowser && this.config.enableColors) try {
|
|
110
|
+
const [format, ...styles] = require_utils.createStyledOutput(level, require_utils.LEVEL_STYLES, prefix, message, stackInfo, this.config.autoDetectTheme);
|
|
111
|
+
console[consoleMethod](format, ...styles, ...args.slice(1));
|
|
112
|
+
} catch (error) {
|
|
113
|
+
const output = require_utils.createPlainOutput(level, message, prefix, stackInfo);
|
|
114
|
+
console[consoleMethod](output, ...args.slice(1));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const output = " ".repeat(this.groupDepth) + require_utils.createPlainOutput(level, message, prefix, stackInfo);
|
|
118
|
+
console[consoleMethod](output, ...args.slice(1));
|
|
119
|
+
}
|
|
120
|
+
const logEntry = require_utils.createLogEntry(level, message, args, prefix, stackInfo);
|
|
121
|
+
const metadata = {
|
|
122
|
+
timestamp: logEntry.timestamp,
|
|
123
|
+
level,
|
|
124
|
+
prefix,
|
|
125
|
+
stackInfo: logEntry.location
|
|
126
|
+
};
|
|
127
|
+
this.handlers.forEach((handler) => {
|
|
128
|
+
try {
|
|
129
|
+
handler.handle(level, message, args, metadata);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error("Log handler failed:", error);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Emite mensajes de debug (prioridad más baja).
|
|
137
|
+
* @param args - Argumentos del mensaje.
|
|
138
|
+
*/
|
|
139
|
+
debug(...args) {
|
|
140
|
+
this.log("debug", ...args);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Emite mensajes informativos.
|
|
144
|
+
* @param args - Argumentos del mensaje.
|
|
145
|
+
*/
|
|
146
|
+
info(...args) {
|
|
147
|
+
this.log("info", ...args);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Emite mensajes de advertencia.
|
|
151
|
+
* @param args - Argumentos del mensaje.
|
|
152
|
+
*/
|
|
153
|
+
warn(...args) {
|
|
154
|
+
this.log("warn", ...args);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Emite mensajes de error.
|
|
158
|
+
* @param args - Argumentos del mensaje.
|
|
159
|
+
*/
|
|
160
|
+
error(...args) {
|
|
161
|
+
this.log("error", ...args);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Emite errores críticos (prioridad más alta).
|
|
165
|
+
* @param args - Argumentos del mensaje.
|
|
166
|
+
*/
|
|
167
|
+
critical(...args) {
|
|
168
|
+
this.log("critical", ...args);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Emite información de trace (debugging detallado).
|
|
172
|
+
* @param args - Argumentos del mensaje.
|
|
173
|
+
*/
|
|
174
|
+
trace(...args) {
|
|
175
|
+
this.log("debug", ...args);
|
|
176
|
+
if (this.shouldLog("debug")) console.trace(...args);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Muestra datos en formato tabla.
|
|
180
|
+
* @param data - Datos a mostrar.
|
|
181
|
+
* @param columns - Columnas opcionales a incluir.
|
|
182
|
+
*/
|
|
183
|
+
table(data, columns) {
|
|
184
|
+
if (!this.shouldLog("info")) return;
|
|
185
|
+
const prefix = this.getEffectivePrefix();
|
|
186
|
+
const tableHeader = `[TABLE]${prefix ? ` [${prefix}]` : ""}:`;
|
|
187
|
+
if (require_environment_detector.isBrowser && typeof console.table === "function") {
|
|
188
|
+
console.log(tableHeader);
|
|
189
|
+
if (columns) console.table(data, columns);
|
|
190
|
+
else console.table(data);
|
|
191
|
+
} else {
|
|
192
|
+
console.log(tableHeader);
|
|
193
|
+
const tableText = require_utils.formatTablePlain(data, columns);
|
|
194
|
+
console.log(tableText);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Inicia un grupo colapsable en la console.
|
|
199
|
+
* @param label - Etiqueta del grupo.
|
|
200
|
+
* @param collapsed - Si el grupo inicia colapsado.
|
|
201
|
+
*/
|
|
202
|
+
group(label, collapsed = false) {
|
|
203
|
+
const prefix = this.getEffectivePrefix();
|
|
204
|
+
const fullLabel = `${prefix ? `[${prefix}] ` : ""}${label}`;
|
|
205
|
+
if (require_environment_detector.isBrowser && console.group && console.groupCollapsed) if (collapsed) console.groupCollapsed(fullLabel);
|
|
206
|
+
else console.group(fullLabel);
|
|
207
|
+
else {
|
|
208
|
+
const groupStart = "┌─ " + fullLabel;
|
|
209
|
+
console.log(groupStart);
|
|
210
|
+
}
|
|
211
|
+
this.groupDepth++;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Cierra el grupo actual de la console.
|
|
215
|
+
*/
|
|
216
|
+
groupEnd() {
|
|
217
|
+
if (this.groupDepth > 0) {
|
|
218
|
+
if (require_environment_detector.isBrowser && console.groupEnd) console.groupEnd();
|
|
219
|
+
else console.log("└─ (end group)");
|
|
220
|
+
this.groupDepth--;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Inicia un timer con el label indicado.
|
|
225
|
+
* @param label - Identificador del timer.
|
|
226
|
+
*/
|
|
227
|
+
time(label) {
|
|
228
|
+
const timer = {
|
|
229
|
+
label,
|
|
230
|
+
startTime: this.getPerformanceNow()
|
|
231
|
+
};
|
|
232
|
+
this.timers.set(label, timer);
|
|
233
|
+
const prefix = this.getEffectivePrefix();
|
|
234
|
+
const output = require_utils.createPlainOutput("info", `Timer started: ${label}`, prefix);
|
|
235
|
+
console.log(output);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Detiene un timer y emite el tiempo transcurrido.
|
|
239
|
+
* @param label - Identificador del timer previamente iniciado.
|
|
240
|
+
*/
|
|
241
|
+
timeEnd(label) {
|
|
242
|
+
const timer = this.timers.get(label);
|
|
243
|
+
if (!timer) {
|
|
244
|
+
this.warn(`Timer '${label}' does not exist`);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const elapsed = this.getPerformanceNow() - timer.startTime;
|
|
248
|
+
this.timers.delete(label);
|
|
249
|
+
const prefix = this.getEffectivePrefix();
|
|
250
|
+
const output = require_utils.createPlainOutput("info", `Timer ended: ${label} - ${elapsed.toFixed(2)}ms`, prefix);
|
|
251
|
+
console.log(output);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Obtiene `performance.now()` o un fallback para entornos antiguos.
|
|
255
|
+
* @returns Timestamp en milisegundos.
|
|
256
|
+
*/
|
|
257
|
+
getPerformanceNow() {
|
|
258
|
+
if (typeof performance !== "undefined" && performance.now) return performance.now();
|
|
259
|
+
if (require_environment_detector.isNode && process.hrtime) {
|
|
260
|
+
const [seconds, nanoseconds] = process.hrtime();
|
|
261
|
+
return seconds * 1e3 + nanoseconds / 1e6;
|
|
262
|
+
}
|
|
263
|
+
return Date.now();
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
const coreLogger = new CoreLogger();
|
|
267
|
+
/**
|
|
268
|
+
* Exporta métodos individuales por conveniencia (con binding correcto).
|
|
269
|
+
*/
|
|
270
|
+
const debug = (...args) => coreLogger.debug(...args);
|
|
271
|
+
const info = (...args) => coreLogger.info(...args);
|
|
272
|
+
const warn = (...args) => coreLogger.warn(...args);
|
|
273
|
+
const error = (...args) => coreLogger.error(...args);
|
|
274
|
+
const critical = (...args) => coreLogger.critical(...args);
|
|
275
|
+
const trace = (...args) => coreLogger.trace(...args);
|
|
276
|
+
const table = (data, columns) => coreLogger.table(data, columns);
|
|
277
|
+
const group = (label, collapsed) => coreLogger.group(label, collapsed);
|
|
278
|
+
const groupEnd = () => coreLogger.groupEnd();
|
|
279
|
+
const time = (label) => coreLogger.time(label);
|
|
280
|
+
const timeEnd = (label) => coreLogger.timeEnd(label);
|
|
281
|
+
const setGlobalPrefix = (prefix) => coreLogger.setGlobalPrefix(prefix);
|
|
282
|
+
const scope = (prefix) => coreLogger.scope(prefix);
|
|
283
|
+
const setVerbosity = (level) => coreLogger.setVerbosity(level);
|
|
284
|
+
const addHandler = (handler) => coreLogger.addHandler(handler);
|
|
285
|
+
//#endregion
|
|
286
|
+
exports.CoreLogger = CoreLogger;
|
|
287
|
+
exports.addHandler = addHandler;
|
|
288
|
+
exports.critical = critical;
|
|
289
|
+
exports.debug = debug;
|
|
290
|
+
exports.default = coreLogger;
|
|
291
|
+
exports.error = error;
|
|
292
|
+
exports.group = group;
|
|
293
|
+
exports.groupEnd = groupEnd;
|
|
294
|
+
exports.info = info;
|
|
295
|
+
exports.scope = scope;
|
|
296
|
+
exports.setGlobalPrefix = setGlobalPrefix;
|
|
297
|
+
exports.setVerbosity = setVerbosity;
|
|
298
|
+
exports.table = table;
|
|
299
|
+
exports.time = time;
|
|
300
|
+
exports.timeEnd = timeEnd;
|
|
301
|
+
exports.trace = trace;
|
|
302
|
+
exports.warn = warn;
|
|
303
|
+
|
|
304
|
+
//# sourceMappingURL=core.cjs.map
|
package/dist/core.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.cjs","sources":["../src/core.ts"],"sourcesContent":["/**\n * @fileoverview Core Logger Module - Minimal logging without advanced features\n * @version 0.0.1\n * \n * This module provides the essential logging functionality without visual enhancements,\n * SVG support, or advanced styling. Perfect for lightweight applications or server-side usage.\n */\n\n// Core types\nimport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata,\n TimerEntry\n} from './types/index.js';\n\n// Core utilities\nimport {\n parseStackTrace,\n formatTimestamp\n} from './utils/index.js';\n\n// Universal formatting and environment detection\nimport {\n createPlainOutput,\n getConsoleMethod,\n createLogEntry,\n formatTablePlain,\n safeSerialize\n} from './utils/formatting.js';\n\nimport {\n isBrowser,\n isNode,\n getRuntimeEnvironment,\n supportsColors,\n supportsCSSColors\n} from './utils/environment.js';\n\nimport { createStyledOutput } from './utils/output.js';\n\n// Constants\nimport { DEFAULT_CONFIG, LEVEL_STYLES } from './constants.js';\n\n/**\n * Minimal Logger class with core functionality only\n * \n * @example\n * ```typescript\n * import { CoreLogger } from '@mks2508/better-logger/core';\n * \n * const logger = new CoreLogger();\n * logger.info('Hello world');\n * logger.error('Something went wrong', error);\n * ```\n */\nexport class CoreLogger {\n private config: LoggerConfig;\n private scopedPrefix?: string;\n private handlers: ILogHandler[] = [];\n private timers: Map<string, TimerEntry> = new Map();\n private groupDepth: number = 0;\n\n /**\n * Creates a new CoreLogger instance\n * @param config - Optional configuration\n */\n constructor(config: Partial<LoggerConfig> = {}) {\n this.config = {\n ...DEFAULT_CONFIG,\n ...config,\n // Auto-configure based on environment\n enableColors: config.enableColors ?? (isBrowser ? true : false),\n enableTimestamps: config.enableTimestamps ?? true,\n enableStackTrace: config.enableStackTrace ?? false,\n autoDetectTheme: config.autoDetectTheme ?? true\n };\n }\n\n // ===== CONFIGURATION METHODS =====\n\n /**\n * Get current configuration\n */\n getConfig(): LoggerConfig {\n return { ...this.config };\n }\n\n /**\n * Sets the global prefix for all log messages\n */\n setGlobalPrefix(prefix: string): void {\n this.config.globalPrefix = prefix;\n }\n\n /**\n * Sets the verbosity level for filtering log output\n */\n setVerbosity(level: Verbosity): void {\n this.config.verbosity = level;\n }\n\n /**\n * Creates a scoped logger with a specific prefix\n */\n scope(prefix: string): CoreLogger {\n const scopedLogger = new CoreLogger(this.config);\n scopedLogger.scopedPrefix = prefix;\n scopedLogger.handlers = [...this.handlers];\n return scopedLogger;\n }\n\n /**\n * Adds a custom log handler for extensibility\n */\n addHandler(handler: ILogHandler): void {\n this.handlers.push(handler);\n }\n\n // ===== CORE LOGGING METHODS =====\n\n /**\n * Checks if a log level should be output based on current verbosity\n */\n private shouldLog(level: LogLevel): boolean {\n if (this.config.verbosity === 'silent') return false;\n const levels = { debug: 0, info: 1, warn: 2, error: 3, critical: 4 };\n return levels[level] >= levels[this.config.verbosity];\n }\n\n /**\n * Gets the effective prefix (global + scoped)\n */\n private getEffectivePrefix(): string | undefined {\n const parts = [this.config.globalPrefix, this.scopedPrefix].filter(Boolean);\n return parts.length > 0 ? parts.join(':') : undefined;\n }\n\n /**\n * Core logging method with universal formatting\n */\n private log(level: LogLevel, ...args: any[]): void {\n if (!this.shouldLog(level)) return;\n\n const prefix = this.getEffectivePrefix();\n const message = String(args[0] || '');\n const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;\n const consoleMethod = getConsoleMethod(level);\n \n // Choose formatting based on environment and configuration\n if (isBrowser && this.config.enableColors && supportsCSSColors()) {\n // Browser with CSS styling\n try {\n const [format, ...styles] = createStyledOutput(\n level,\n LEVEL_STYLES,\n prefix,\n message,\n stackInfo,\n this.config.autoDetectTheme\n );\n console[consoleMethod](format, ...styles, ...args.slice(1));\n } catch (error) {\n // Fallback to plain text if CSS fails\n const output = createPlainOutput(level, message, prefix, stackInfo);\n console[consoleMethod](output, ...args.slice(1));\n }\n } else {\n // Node.js or browser without colors - use plain text\n const groupIndent = ' '.repeat(this.groupDepth);\n const output = groupIndent + createPlainOutput(level, message, prefix, stackInfo);\n console[consoleMethod](output, ...args.slice(1));\n }\n\n // Call custom handlers with structured metadata\n const logEntry = createLogEntry(level, message, args, prefix, stackInfo);\n const metadata: LogMetadata = {\n timestamp: logEntry.timestamp,\n level,\n prefix,\n stackInfo: logEntry.location,\n };\n\n this.handlers.forEach(handler => {\n try {\n handler.handle(level, message, args, metadata);\n } catch (error) {\n console.error('Log handler failed:', error);\n }\n });\n }\n\n /**\n * Logs debug information (lowest priority)\n */\n debug(...args: any[]): void {\n this.log('debug', ...args);\n }\n\n /**\n * Logs informational messages\n */\n info(...args: any[]): void {\n this.log('info', ...args);\n }\n\n /**\n * Logs warning messages\n */\n warn(...args: any[]): void {\n this.log('warn', ...args);\n }\n\n /**\n * Logs error messages\n */\n error(...args: any[]): void {\n this.log('error', ...args);\n }\n\n /**\n * Logs critical errors (highest priority)\n */\n critical(...args: any[]): void {\n this.log('critical', ...args);\n }\n\n /**\n * Logs trace information (detailed debugging)\n */\n trace(...args: any[]): void {\n this.log('debug', ...args);\n if (this.shouldLog('debug')) {\n console.trace(...args);\n }\n }\n\n // ===== BASIC ADVANCED FEATURES =====\n\n /**\n * Displays data in a table format\n */\n table(data: any, columns?: string[]): void {\n if (!this.shouldLog('info')) return;\n\n const prefix = this.getEffectivePrefix();\n const tableHeader = `[TABLE]${prefix ? ` [${prefix}]` : ''}:`;\n \n if (isBrowser && typeof console.table === 'function') {\n // Browser has native table support\n console.log(tableHeader);\n if (columns) {\n console.table(data, columns);\n } else {\n console.table(data);\n }\n } else {\n // Node.js or fallback - use plain text formatting\n console.log(tableHeader);\n const tableText = formatTablePlain(data, columns);\n console.log(tableText);\n }\n }\n\n /**\n * Starts a collapsible group in the console\n */\n group(label: string, collapsed: boolean = false): void {\n const prefix = this.getEffectivePrefix();\n const fullLabel = `${prefix ? `[${prefix}] ` : ''}${label}`;\n \n if (isBrowser && console.group && console.groupCollapsed) {\n // Browser supports native grouping\n if (collapsed) {\n console.groupCollapsed(fullLabel);\n } else {\n console.group(fullLabel);\n }\n } else {\n // Node.js fallback - just log the group label\n const groupStart = '┌─ ' + fullLabel;\n console.log(groupStart);\n }\n \n this.groupDepth++;\n }\n\n /**\n * Ends the current console group\n */\n groupEnd(): void {\n if (this.groupDepth > 0) {\n if (isBrowser && console.groupEnd) {\n console.groupEnd();\n } else {\n // Node.js fallback - log group end\n const groupEnd = '└─ (end group)';\n console.log(groupEnd);\n }\n this.groupDepth--;\n }\n }\n\n /**\n * Starts a timer with the given label\n */\n time(label: string): void {\n const startTime = this.getPerformanceNow();\n const timer: TimerEntry = {\n label,\n startTime,\n };\n this.timers.set(label, timer);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer started: ${label}`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Ends a timer and logs the elapsed time\n */\n timeEnd(label: string): void {\n const timer = this.timers.get(label);\n if (!timer) {\n this.warn(`Timer '${label}' does not exist`);\n return;\n }\n\n const elapsed = this.getPerformanceNow() - timer.startTime;\n this.timers.delete(label);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer ended: ${label} - ${elapsed.toFixed(2)}ms`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Gets performance.now() or fallback for older environments\n */\n private getPerformanceNow(): number {\n if (typeof performance !== 'undefined' && performance.now) {\n return performance.now();\n }\n \n if (isNode && process.hrtime) {\n // Node.js high-resolution time\n const [seconds, nanoseconds] = process.hrtime();\n return seconds * 1000 + nanoseconds / 1000000;\n }\n \n // Fallback to Date.now()\n return Date.now();\n }\n}\n\n// Create and export singleton instance for convenience\nconst coreLogger = new CoreLogger();\n\n/**\n * Export individual methods for convenience (with proper binding)\n */\nexport const debug = (...args: any[]) => coreLogger.debug(...args);\nexport const info = (...args: any[]) => coreLogger.info(...args);\nexport const warn = (...args: any[]) => coreLogger.warn(...args);\nexport const error = (...args: any[]) => coreLogger.error(...args);\nexport const critical = (...args: any[]) => coreLogger.critical(...args);\nexport const trace = (...args: any[]) => coreLogger.trace(...args);\nexport const table = (data: any, columns?: string[]) => coreLogger.table(data, columns);\nexport const group = (label: string, collapsed?: boolean) => coreLogger.group(label, collapsed);\nexport const groupEnd = () => coreLogger.groupEnd();\nexport const time = (label: string) => coreLogger.time(label);\nexport const timeEnd = (label: string) => coreLogger.timeEnd(label);\nexport const setGlobalPrefix = (prefix: string) => coreLogger.setGlobalPrefix(prefix);\nexport const scope = (prefix: string) => coreLogger.scope(prefix);\nexport const setVerbosity = (level: Verbosity) => coreLogger.setVerbosity(level);\nexport const addHandler = (handler: ILogHandler) => coreLogger.addHandler(handler);\n\n// Export the singleton as default\nexport default coreLogger;\n\n// Re-export core types\nexport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata\n} from './types/index.js';"],"names":["CoreLogger","config","scopedPrefix","handlers","timers","Map","groupDepth","constructor","this","DEFAULT_CONFIG","enableColors","isBrowser","enableTimestamps","enableStackTrace","autoDetectTheme","getConfig","setGlobalPrefix","prefix","globalPrefix","setVerbosity","level","verbosity","scope","scopedLogger","addHandler","handler","push","shouldLog","levels","debug","info","warn","error","critical","getEffectivePrefix","parts","filter","Boolean","length","join","log","args","message","String","stackInfo","parseStackTrace","consoleMethod","getConsoleMethod","supportsCSSColors","format","styles","createStyledOutput","LEVEL_STYLES","console","slice","output","createPlainOutput","repeat","logEntry","createLogEntry","metadata","timestamp","location","forEach","handle","trace","table","data","columns","tableHeader","tableText","formatTablePlain","group","label","collapsed","fullLabel","groupCollapsed","groupStart","groupEnd","time","timer","startTime","getPerformanceNow","set","timeEnd","get","elapsed","delete","toFixed","performance","now","isNode","process","hrtime","seconds","nanoseconds","Date","coreLogger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.cjs","names":["DEFAULT_CONFIG","isBrowser","LOG_LEVELS","parseStackTrace","getConsoleMethod","createStyledOutput","LEVEL_STYLES","createPlainOutput","createLogEntry","formatTablePlain","isNode"],"sources":["../src/core.ts"],"sourcesContent":["/**\n * @fileoverview Módulo Core Logger — logging minimal sin features avanzadas\n *\n * Provee la funcionalidad esencial de logging sin mejoras visuales,\n * soporte SVG ni styling avanzado. Adecuado para apps ligeras o uso server-side.\n */\n\n// Tipos core\nimport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata,\n TimerEntry\n} from './types/index.js';\n\n// Utilidades core\nimport {\n parseStackTrace,\n formatTimestamp\n} from './utils/index.js';\n\n// Formato universal y detección de entorno\nimport {\n createPlainOutput,\n getConsoleMethod,\n createLogEntry,\n formatTablePlain,\n safeSerialize,\n type OutputFormat\n} from './utils/formatting.js';\n\nimport {\n isBrowser,\n isNode\n} from './utils/environment-detector.js';\n\nimport { createStyledOutput } from './utils/output.js';\n\n// Constantes\nimport { DEFAULT_CONFIG, LEVEL_STYLES } from './constants.js';\nimport { LOG_LEVELS } from './types/core.js';\n\n/**\n * Logger minimal con solo la funcionalidad core.\n *\n * @example\n * ```typescript\n * import { CoreLogger } from '@mks2508/better-logger/core';\n *\n * const logger = new CoreLogger();\n * logger.info('Hello world');\n * logger.error('Something went wrong', error);\n * ```\n */\nexport class CoreLogger {\n private config: LoggerConfig;\n private scopedPrefix?: string;\n private handlers: ILogHandler[] = [];\n private timers: Map<string, TimerEntry> = new Map();\n private groupDepth: number = 0;\n\n /**\n * Crea una nueva instancia de CoreLogger.\n * @param config - Configuración opcional.\n */\n constructor(config: Partial<LoggerConfig> = {}) {\n this.config = {\n ...DEFAULT_CONFIG,\n ...config,\n // Auto-configurar según entorno\n enableColors: config.enableColors ?? (isBrowser ? true : false),\n enableTimestamps: config.enableTimestamps ?? true,\n enableStackTrace: config.enableStackTrace ?? false,\n autoDetectTheme: config.autoDetectTheme ?? true,\n outputFormat: config.outputFormat ?? 'auto'\n };\n }\n\n // ===== MÉTODOS DE CONFIGURACIÓN =====\n\n /**\n * Obtiene la configuración actual.\n */\n getConfig(): LoggerConfig {\n return { ...this.config };\n }\n\n /**\n * Define el prefijo global para todos los mensajes de log.\n * @param prefix - Prefijo a aplicar a todos los mensajes.\n */\n setGlobalPrefix(prefix: string): void {\n this.config.globalPrefix = prefix;\n }\n\n /**\n * Define el nivel de verbosity para filtrar la salida de log.\n * @param level - Nivel de verbosity.\n */\n setVerbosity(level: Verbosity): void {\n this.config.verbosity = level;\n }\n\n /**\n * Crea un logger con scope y un prefijo específico.\n * @param prefix - Prefijo del scope.\n * @returns Nueva instancia de CoreLogger con el prefijo asignado.\n */\n scope(prefix: string): CoreLogger {\n const scopedLogger = new CoreLogger(this.config);\n scopedLogger.scopedPrefix = prefix;\n scopedLogger.handlers = [...this.handlers];\n return scopedLogger;\n }\n\n /**\n * Añade un handler personalizado para extensibilidad.\n * @param handler - Handler que implementa la interfaz ILogHandler.\n */\n addHandler(handler: ILogHandler): void {\n this.handlers.push(handler);\n }\n\n // ===== MÉTODOS CORE DE LOGGING =====\n\n /**\n * Comprueba si un nivel debe emitirse según el verbosity actual.\n * @param level - Nivel a evaluar.\n * @returns `true` si el nivel debe emitirse.\n */\n private shouldLog(level: LogLevel): boolean {\n if (this.config.verbosity === 'silent') return false;\n const verbosity = this.config.verbosity as LogLevel;\n return LOG_LEVELS[level] >= LOG_LEVELS[verbosity];\n }\n\n /**\n * Obtiene el prefijo efectivo (global + scope).\n * @returns Prefijo combinado o `undefined` si no hay ninguno.\n */\n private getEffectivePrefix(): string | undefined {\n const parts = [this.config.globalPrefix, this.scopedPrefix].filter(Boolean);\n return parts.length > 0 ? parts.join(':') : undefined;\n }\n\n /**\n * Método principal de log con formato universal.\n * @param level - Nivel del mensaje.\n * @param args - Argumentos del mensaje.\n */\n private log(level: LogLevel, ...args: unknown[]): void {\n if (!this.shouldLog(level)) return;\n\n const prefix = this.getEffectivePrefix();\n const message = String(args[0] || '');\n const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;\n const consoleMethod = getConsoleMethod(level);\n\n // Elegir formato según entorno y configuración\n if (isBrowser && this.config.enableColors) {\n // Browser con styling CSS\n try {\n const [format, ...styles] = createStyledOutput(\n level,\n LEVEL_STYLES,\n prefix,\n message,\n stackInfo,\n this.config.autoDetectTheme\n );\n console[consoleMethod](format, ...styles, ...args.slice(1));\n } catch (error) {\n // Fallback a formato plano si falla el CSS\n const output = createPlainOutput(level, message, prefix, stackInfo);\n console[consoleMethod](output, ...args.slice(1));\n }\n } else {\n // Node.js o browser sin colores: formato plano\n const groupIndent = ' '.repeat(this.groupDepth);\n const output = groupIndent + createPlainOutput(level, message, prefix, stackInfo);\n console[consoleMethod](output, ...args.slice(1));\n }\n\n // Llama a los handlers con metadata estructurada\n const logEntry = createLogEntry(level, message, args, prefix, stackInfo);\n const metadata: LogMetadata = {\n timestamp: logEntry.timestamp,\n level,\n prefix,\n stackInfo: logEntry.location,\n };\n\n this.handlers.forEach(handler => {\n try {\n handler.handle(level, message, args, metadata);\n } catch (error) {\n console.error('Log handler failed:', error);\n }\n });\n }\n\n /**\n * Emite mensajes de debug (prioridad más baja).\n * @param args - Argumentos del mensaje.\n */\n debug(...args: unknown[]): void {\n this.log('debug', ...args);\n }\n\n /**\n * Emite mensajes informativos.\n * @param args - Argumentos del mensaje.\n */\n info(...args: unknown[]): void {\n this.log('info', ...args);\n }\n\n /**\n * Emite mensajes de advertencia.\n * @param args - Argumentos del mensaje.\n */\n warn(...args: unknown[]): void {\n this.log('warn', ...args);\n }\n\n /**\n * Emite mensajes de error.\n * @param args - Argumentos del mensaje.\n */\n error(...args: unknown[]): void {\n this.log('error', ...args);\n }\n\n /**\n * Emite errores críticos (prioridad más alta).\n * @param args - Argumentos del mensaje.\n */\n critical(...args: unknown[]): void {\n this.log('critical', ...args);\n }\n\n /**\n * Emite información de trace (debugging detallado).\n * @param args - Argumentos del mensaje.\n */\n trace(...args: unknown[]): void {\n this.log('debug', ...args);\n if (this.shouldLog('debug')) {\n console.trace(...args);\n }\n }\n\n // ===== FEATURES AVANZADAS BÁSICAS =====\n\n /**\n * Muestra datos en formato tabla.\n * @param data - Datos a mostrar.\n * @param columns - Columnas opcionales a incluir.\n */\n table(data: any, columns?: string[]): void {\n if (!this.shouldLog('info')) return;\n\n const prefix = this.getEffectivePrefix();\n const tableHeader = `[TABLE]${prefix ? ` [${prefix}]` : ''}:`;\n \n if (isBrowser && typeof console.table === 'function') {\n // Browser con soporte nativo de table\n console.log(tableHeader);\n if (columns) {\n console.table(data, columns);\n } else {\n console.table(data);\n }\n } else {\n // Node.js o fallback: formato de texto plano\n console.log(tableHeader);\n const tableText = formatTablePlain(data, columns);\n console.log(tableText);\n }\n }\n\n /**\n * Inicia un grupo colapsable en la console.\n * @param label - Etiqueta del grupo.\n * @param collapsed - Si el grupo inicia colapsado.\n */\n group(label: string, collapsed: boolean = false): void {\n const prefix = this.getEffectivePrefix();\n const fullLabel = `${prefix ? `[${prefix}] ` : ''}${label}`;\n \n if (isBrowser && console.group && console.groupCollapsed) {\n // Browser soporta grouping nativo\n if (collapsed) {\n console.groupCollapsed(fullLabel);\n } else {\n console.group(fullLabel);\n }\n } else {\n // Fallback Node.js: solo emite el label del grupo\n const groupStart = '┌─ ' + fullLabel;\n console.log(groupStart);\n }\n \n this.groupDepth++;\n }\n\n /**\n * Cierra el grupo actual de la console.\n */\n groupEnd(): void {\n if (this.groupDepth > 0) {\n if (isBrowser && console.groupEnd) {\n console.groupEnd();\n } else {\n // Fallback Node.js: emite el cierre del grupo\n const groupEnd = '└─ (end group)';\n console.log(groupEnd);\n }\n this.groupDepth--;\n }\n }\n\n /**\n * Inicia un timer con el label indicado.\n * @param label - Identificador del timer.\n */\n time(label: string): void {\n const startTime = this.getPerformanceNow();\n const timer: TimerEntry = {\n label,\n startTime,\n };\n this.timers.set(label, timer);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer started: ${label}`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Detiene un timer y emite el tiempo transcurrido.\n * @param label - Identificador del timer previamente iniciado.\n */\n timeEnd(label: string): void {\n const timer = this.timers.get(label);\n if (!timer) {\n this.warn(`Timer '${label}' does not exist`);\n return;\n }\n\n const elapsed = this.getPerformanceNow() - timer.startTime;\n this.timers.delete(label);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer ended: ${label} - ${elapsed.toFixed(2)}ms`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Obtiene `performance.now()` o un fallback para entornos antiguos.\n * @returns Timestamp en milisegundos.\n */\n private getPerformanceNow(): number {\n if (typeof performance !== 'undefined' && performance.now) {\n return performance.now();\n }\n \n if (isNode && process.hrtime) {\n // Node.js high-resolution time\n const [seconds, nanoseconds] = process.hrtime();\n return seconds * 1000 + nanoseconds / 1000000;\n }\n \n // Fallback a Date.now()\n return Date.now();\n }\n}\n\n// Crea y exporta una instancia singleton por conveniencia\nconst coreLogger = new CoreLogger();\n\n/**\n * Exporta métodos individuales por conveniencia (con binding correcto).\n */\nexport const debug = (...args: any[]) => coreLogger.debug(...args);\nexport const info = (...args: any[]) => coreLogger.info(...args);\nexport const warn = (...args: any[]) => coreLogger.warn(...args);\nexport const error = (...args: any[]) => coreLogger.error(...args);\nexport const critical = (...args: any[]) => coreLogger.critical(...args);\nexport const trace = (...args: any[]) => coreLogger.trace(...args);\nexport const table = (data: any, columns?: string[]) => coreLogger.table(data, columns);\nexport const group = (label: string, collapsed?: boolean) => coreLogger.group(label, collapsed);\nexport const groupEnd = () => coreLogger.groupEnd();\nexport const time = (label: string) => coreLogger.time(label);\nexport const timeEnd = (label: string) => coreLogger.timeEnd(label);\nexport const setGlobalPrefix = (prefix: string) => coreLogger.setGlobalPrefix(prefix);\nexport const scope = (prefix: string) => coreLogger.scope(prefix);\nexport const setVerbosity = (level: Verbosity) => coreLogger.setVerbosity(level);\nexport const addHandler = (handler: ILogHandler) => coreLogger.addHandler(handler);\n\n// Exporta el singleton como default\nexport default coreLogger;\n\n// Re-exporta tipos core\nexport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata\n} from './types/index.js';"],"mappings":"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"}
|
package/dist/core.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Core Logger
|
|
3
|
-
* @version 0.0.1
|
|
2
|
+
* @fileoverview Módulo Core Logger — logging minimal sin features avanzadas
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
* SVG
|
|
4
|
+
* Provee la funcionalidad esencial de logging sin mejoras visuales,
|
|
5
|
+
* soporte SVG ni styling avanzado. Adecuado para apps ligeras o uso server-side.
|
|
7
6
|
*/
|
|
8
7
|
import type { Verbosity, LoggerConfig, ILogHandler } from './types/index.js';
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
9
|
+
* Logger minimal con solo la funcionalidad core.
|
|
11
10
|
*
|
|
12
11
|
* @example
|
|
13
12
|
* ```typescript
|
|
@@ -25,94 +24,117 @@ export declare class CoreLogger {
|
|
|
25
24
|
private timers;
|
|
26
25
|
private groupDepth;
|
|
27
26
|
/**
|
|
28
|
-
*
|
|
29
|
-
* @param config -
|
|
27
|
+
* Crea una nueva instancia de CoreLogger.
|
|
28
|
+
* @param config - Configuración opcional.
|
|
30
29
|
*/
|
|
31
30
|
constructor(config?: Partial<LoggerConfig>);
|
|
32
31
|
/**
|
|
33
|
-
*
|
|
32
|
+
* Obtiene la configuración actual.
|
|
34
33
|
*/
|
|
35
34
|
getConfig(): LoggerConfig;
|
|
36
35
|
/**
|
|
37
|
-
*
|
|
36
|
+
* Define el prefijo global para todos los mensajes de log.
|
|
37
|
+
* @param prefix - Prefijo a aplicar a todos los mensajes.
|
|
38
38
|
*/
|
|
39
39
|
setGlobalPrefix(prefix: string): void;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Define el nivel de verbosity para filtrar la salida de log.
|
|
42
|
+
* @param level - Nivel de verbosity.
|
|
42
43
|
*/
|
|
43
44
|
setVerbosity(level: Verbosity): void;
|
|
44
45
|
/**
|
|
45
|
-
*
|
|
46
|
+
* Crea un logger con scope y un prefijo específico.
|
|
47
|
+
* @param prefix - Prefijo del scope.
|
|
48
|
+
* @returns Nueva instancia de CoreLogger con el prefijo asignado.
|
|
46
49
|
*/
|
|
47
50
|
scope(prefix: string): CoreLogger;
|
|
48
51
|
/**
|
|
49
|
-
*
|
|
52
|
+
* Añade un handler personalizado para extensibilidad.
|
|
53
|
+
* @param handler - Handler que implementa la interfaz ILogHandler.
|
|
50
54
|
*/
|
|
51
55
|
addHandler(handler: ILogHandler): void;
|
|
52
56
|
/**
|
|
53
|
-
*
|
|
57
|
+
* Comprueba si un nivel debe emitirse según el verbosity actual.
|
|
58
|
+
* @param level - Nivel a evaluar.
|
|
59
|
+
* @returns `true` si el nivel debe emitirse.
|
|
54
60
|
*/
|
|
55
61
|
private shouldLog;
|
|
56
62
|
/**
|
|
57
|
-
*
|
|
63
|
+
* Obtiene el prefijo efectivo (global + scope).
|
|
64
|
+
* @returns Prefijo combinado o `undefined` si no hay ninguno.
|
|
58
65
|
*/
|
|
59
66
|
private getEffectivePrefix;
|
|
60
67
|
/**
|
|
61
|
-
*
|
|
68
|
+
* Método principal de log con formato universal.
|
|
69
|
+
* @param level - Nivel del mensaje.
|
|
70
|
+
* @param args - Argumentos del mensaje.
|
|
62
71
|
*/
|
|
63
72
|
private log;
|
|
64
73
|
/**
|
|
65
|
-
*
|
|
74
|
+
* Emite mensajes de debug (prioridad más baja).
|
|
75
|
+
* @param args - Argumentos del mensaje.
|
|
66
76
|
*/
|
|
67
|
-
debug(...args:
|
|
77
|
+
debug(...args: unknown[]): void;
|
|
68
78
|
/**
|
|
69
|
-
*
|
|
79
|
+
* Emite mensajes informativos.
|
|
80
|
+
* @param args - Argumentos del mensaje.
|
|
70
81
|
*/
|
|
71
|
-
info(...args:
|
|
82
|
+
info(...args: unknown[]): void;
|
|
72
83
|
/**
|
|
73
|
-
*
|
|
84
|
+
* Emite mensajes de advertencia.
|
|
85
|
+
* @param args - Argumentos del mensaje.
|
|
74
86
|
*/
|
|
75
|
-
warn(...args:
|
|
87
|
+
warn(...args: unknown[]): void;
|
|
76
88
|
/**
|
|
77
|
-
*
|
|
89
|
+
* Emite mensajes de error.
|
|
90
|
+
* @param args - Argumentos del mensaje.
|
|
78
91
|
*/
|
|
79
|
-
error(...args:
|
|
92
|
+
error(...args: unknown[]): void;
|
|
80
93
|
/**
|
|
81
|
-
*
|
|
94
|
+
* Emite errores críticos (prioridad más alta).
|
|
95
|
+
* @param args - Argumentos del mensaje.
|
|
82
96
|
*/
|
|
83
|
-
critical(...args:
|
|
97
|
+
critical(...args: unknown[]): void;
|
|
84
98
|
/**
|
|
85
|
-
*
|
|
99
|
+
* Emite información de trace (debugging detallado).
|
|
100
|
+
* @param args - Argumentos del mensaje.
|
|
86
101
|
*/
|
|
87
|
-
trace(...args:
|
|
102
|
+
trace(...args: unknown[]): void;
|
|
88
103
|
/**
|
|
89
|
-
*
|
|
104
|
+
* Muestra datos en formato tabla.
|
|
105
|
+
* @param data - Datos a mostrar.
|
|
106
|
+
* @param columns - Columnas opcionales a incluir.
|
|
90
107
|
*/
|
|
91
108
|
table(data: any, columns?: string[]): void;
|
|
92
109
|
/**
|
|
93
|
-
*
|
|
110
|
+
* Inicia un grupo colapsable en la console.
|
|
111
|
+
* @param label - Etiqueta del grupo.
|
|
112
|
+
* @param collapsed - Si el grupo inicia colapsado.
|
|
94
113
|
*/
|
|
95
114
|
group(label: string, collapsed?: boolean): void;
|
|
96
115
|
/**
|
|
97
|
-
*
|
|
116
|
+
* Cierra el grupo actual de la console.
|
|
98
117
|
*/
|
|
99
118
|
groupEnd(): void;
|
|
100
119
|
/**
|
|
101
|
-
*
|
|
120
|
+
* Inicia un timer con el label indicado.
|
|
121
|
+
* @param label - Identificador del timer.
|
|
102
122
|
*/
|
|
103
123
|
time(label: string): void;
|
|
104
124
|
/**
|
|
105
|
-
*
|
|
125
|
+
* Detiene un timer y emite el tiempo transcurrido.
|
|
126
|
+
* @param label - Identificador del timer previamente iniciado.
|
|
106
127
|
*/
|
|
107
128
|
timeEnd(label: string): void;
|
|
108
129
|
/**
|
|
109
|
-
*
|
|
130
|
+
* Obtiene `performance.now()` o un fallback para entornos antiguos.
|
|
131
|
+
* @returns Timestamp en milisegundos.
|
|
110
132
|
*/
|
|
111
133
|
private getPerformanceNow;
|
|
112
134
|
}
|
|
113
135
|
declare const coreLogger: CoreLogger;
|
|
114
136
|
/**
|
|
115
|
-
*
|
|
137
|
+
* Exporta métodos individuales por conveniencia (con binding correcto).
|
|
116
138
|
*/
|
|
117
139
|
export declare const debug: (...args: any[]) => void;
|
|
118
140
|
export declare const info: (...args: any[]) => void;
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|