@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styling-Cel2wPRy.cjs","names":[],"sources":["../../src/styling/StyleBuilder.ts","../../src/styling/themes.ts","../../src/styling/banners.ts","../../src/styling/SmartPresets.ts"],"sourcesContent":["/**\n * @fileoverview StyleBuilder — constructor fluido de estilos CSS para\n * `%c`-formatting del console. Basis de todos los gradientes, badges,\n * presets y estilos por nivel del logger.\n */\n\n/**\n * Constructor fluido de estilos CSS orientado al `%c`-formatting del\n * DevTools console.\n *\n * Cada método empuja una declaración CSS a un buffer interno y retorna\n * `this`, lo que permite encadenar llamadas para componer un estilo\n * completo en una sola expresión. El string final se materializa con\n * {@link StyleBuilder.build}, que une todas las declaraciones con `\"; \"`\n * — exactamente el formato que espera `console.log(\"%c...\", style)`.\n *\n * Está pensado como bloque base de la capa de styling del logger: los\n * {@link StylePresets} se construyen con esta clase, y el proxy exportado\n * `$` no es más que una instancia fresca expuesta vía `Proxy` para\n * usarse ad-hoc sin instanciar manualmente.\n *\n * @example\n * // Estilo inline para un solo log\n * const banner = new StyleBuilder()\n * .bg('linear-gradient(135deg, #667eea 0%, #764ba2 100%)')\n * .color('#ffffff')\n * .padding('4px 8px')\n * .rounded('4px')\n * .bold()\n * .build();\n * console.log('%c MiApp ', banner);\n *\n * @example\n * // Clonar + variar sin mutar el builder original (útil para\n * // compartir una base entre variantes de badge)\n * const base = new StyleBuilder().padding('2px 6px').rounded('3px');\n * const ok = base.clone().color('#00b894').build();\n * const warn = base.clone().color('#fdcb6e').build();\n *\n * @see {@link StylePresets} para presets listos (success, error, warning, ...).\n * @see {@link $} para el proxy global reutilizable sin instanciar.\n */\nexport class StyleBuilder {\n private styles: string[] = [];\n\n /**\n * Crea un builder opcionalmente inicializado con una declaración CSS\n * base (p.ej. un fragmento de estilo compartido del que arrancar).\n *\n * @param {string} [baseStyle] - Declaración CSS inicial en formato\n * `\"prop: value\"`. Si se omite, el builder arranca vacío y se rellena\n * vía los métodos chainable.\n *\n * @example\n * const sb = new StyleBuilder('color: #333');\n * sb.bg('#eee').build(); // => \"color: #333; background: #eee\"\n */\n constructor(baseStyle = '') {\n if (baseStyle) this.styles.push(baseStyle);\n }\n\n /**\n * Define el `background` del estilo. Acepta tanto colores planos\n * (`#1e1e1e`) como gradientes CSS completos (`linear-gradient(...)`),\n * que es lo que da el efecto \"badge con color\" característico del\n * logger por nivel.\n *\n * @param {string} background - Valor crudo para la propiedad CSS\n * `background` (color, gradiente o shorthand).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().bg('linear-gradient(135deg, #00b894, #00a085)');\n */\n bg(background: string): StyleBuilder {\n this.styles.push(`background: ${background}`);\n return this;\n }\n\n /**\n * Define el `color` (color del texto). Es el principal contraste\n * contra el `background`: en badges con gradiente se suele usar\n * `#ffffff`, mientras que en logs \"muted\" se rebaja la opacidad o\n * se usa un gris (`#6c757d`).\n *\n * @param {string} color - Valor CSS de color (hex, rgb, named, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().bg('#1e1e1e').color('#00ffff');\n */\n color(color: string): StyleBuilder {\n this.styles.push(`color: ${color}`);\n return this;\n }\n\n /**\n * Define el shorthand `border`. Útil para tags tipo \"outline\" sobre\n * fondos neutros (ver preset `accent`) donde un borde sutil\n * (`1px solid #dee2e6`) separa el badge del contenido sin saturar.\n *\n * @param {string} border - Shorthand CSS `border` completo\n * (`\"1px solid #dee2e6\"`, `\"2px dashed #e84393\"`, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().border('1px solid #dee2e6').padding('2px 6px');\n */\n border(border: string): StyleBuilder {\n this.styles.push(`border: ${border}`);\n return this;\n }\n\n /**\n * Define el `box-shadow`. Se usa sobre todo para efectos neón o de\n * glow (preset `neon`), donde una sombra con alfa baja\n * (`0 0 10px rgba(0,255,255,0.5)`) genera el halo alrededor del\n * badge sin necesidad de animaciones.\n *\n * @param {string} shadow - Shorthand CSS `box-shadow`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().shadow('0 0 10px rgba(0, 255, 255, 0.5)');\n */\n shadow(shadow: string): StyleBuilder {\n this.styles.push(`box-shadow: ${shadow}`);\n return this;\n }\n\n /**\n * Define el `padding` interno del badge. El valor típico en los\n * presets del logger es `'4px 8px'` (vertical/horizontal), lo justo\n * para que el texto respire sin engordar demasiado la línea de log.\n *\n * @param {string} padding - Shorthand CSS `padding`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().padding('4px 8px').rounded('4px');\n */\n padding(padding: string): StyleBuilder {\n this.styles.push(`padding: ${padding}`);\n return this;\n }\n\n /**\n * Define el `margin` externo. Rara vez se usa en estilos de console\n * (el flujo del DevTools no respeta margin igual que el DOM), pero\n * queda expuesto para casos donde se quiera separar visualmente un\n * bloque de logs contiguos.\n *\n * @param {string} margin - Shorthand CSS `margin`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().margin('0 0 4px 0');\n */\n margin(margin: string): StyleBuilder {\n this.styles.push(`margin: ${margin}`);\n return this;\n }\n\n /**\n * Define el `border-radius`. Redondea las esquinas del badge para\n * darle acabado de \"pill\" / \"chip\" en lugar de bloque recto.\n *\n * @param {string} [radius='4px'] - Valor CSS de `border-radius`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().rounded('999px'); // pill completo\n */\n rounded(radius: string = '4px'): StyleBuilder {\n this.styles.push(`border-radius: ${radius}`);\n return this;\n }\n\n /**\n * Aplica `font-weight: bold`. Marca el texto del badge como enfatizado:\n * los presets por nivel (`success`, `error`, ...) lo incluyen para que\n * el severity destaque sobre el resto de la línea de log.\n *\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().bg('#e84393').color('#fff').bold();\n */\n bold(): StyleBuilder {\n this.styles.push('font-weight: bold');\n return this;\n }\n\n /**\n * Define el `font-family`. Recibe el stack completo (coma-incluido)\n * tal cual se inyecta en CSS. Para stacks ya probados en DevTools,\n * preferir los atajos {@link StyleBuilder.mono} y\n * {@link StyleBuilder.system} en lugar de escribir el stack a mano.\n *\n * @param {string} font - Stack de `font-family` CSS.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().font('\"JetBrains Mono\", monospace');\n */\n font(font: string): StyleBuilder {\n this.styles.push(`font-family: ${font}`);\n return this;\n }\n\n /**\n * Atajo de {@link StyleBuilder.font} con un stack monospace portable\n * (`Monaco, Consolas, \"Courier New\", monospace`). Es el stack que usa\n * el preset `muted` para logs de detalle/auxiliares, donde la\n * alineación monoespaciada ayuda a escanear tablas y pares k=v.\n *\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().mono().size('12px').color('#6c757d');\n */\n mono(): StyleBuilder {\n return this.font('Monaco, Consolas, \"Courier New\", monospace');\n }\n\n /**\n * Atajo de {@link StyleBuilder.font} con el stack \"system-ui\" nativo\n * del SO del usuario. Útil cuando se quiere que el log se integre\n * visualmente con la UI nativa en lugar de marcar como \"técnico\".\n *\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().system().size('14px');\n */\n system(): StyleBuilder {\n return this.font('system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif');\n }\n\n /**\n * Define el `font-size`. El valor por defecto del DevTools suele ser\n * suficiente; este método se usa para logs auxiliares (preset `muted`\n * baja a `12px`) o para encabezados tipo banner donde se sube a\n * `18px`-`24px`.\n *\n * @param {string} size - Valor CSS de `font-size` (`'12px'`, `'1.1em'`).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().size('20px').bold();\n */\n size(size: string): StyleBuilder {\n this.styles.push(`font-size: ${size}`);\n return this;\n }\n\n /**\n * Define el `line-height`. Aplicable cuando un badge envuelve varias\n * líneas o cuando se quiere controlar la altura visual del bloque de\n * log para que no \"salte\" respecto al texto adyacente.\n *\n * @param {string} height - Valor CSS de `line-height` (`'1.4'`, `'20px'`).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().lineHeight('1.5').padding('8px');\n */\n lineHeight(height: string): StyleBuilder {\n this.styles.push(`line-height: ${height}`);\n return this;\n }\n\n /**\n * Aplica `text-decoration: underline`. Útil para resaltar un token\n * concreto dentro del mensaje (p.ej. un ID o un path) cuando el\n * `color` por sí solo no basta para marcar jerarquía visual.\n *\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().underline().color('#0984e3');\n */\n underline(): StyleBuilder {\n this.styles.push('text-decoration: underline');\n return this;\n }\n\n /**\n * Aplica `text-transform: uppercase`. Convierte el texto a mayúsculas\n * sin mutar el string original: ideal para tags cortos como severity\n * (`INFO`, `WARN`) o siglas que conviene leer en bloque.\n *\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().uppercase().bold().padding('2px 6px');\n */\n uppercase(): StyleBuilder {\n this.styles.push('text-transform: uppercase');\n return this;\n }\n\n /**\n * Define la `opacity` global del estilo (0 a 1). Es el mecanismo\n * recomendado para \"apagar\" un log sin tener que oscurecer el color\n * a mano: sobre fondo oscuro, bajar opacity a `0.6` da el efecto\n * muted sin perder legibilidad del hue.\n *\n * @param {number} value - Valor de opacidad entre `0` (invisible) y\n * `1` (opaco).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().opacity(0.5).color('#999');\n */\n opacity(value: number): StyleBuilder {\n this.styles.push(`opacity: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `display`. Expuesta por completitud: en la\n * mayoría de estilos de console el `display` del badge es controlado\n * por el propio DevTools y este setter no tiene efecto visible, pero\n * queda disponible para casos de render en contenedores DOM reales\n * (preview components, overlays de playground).\n *\n * @param {string} value - Valor CSS de `display` (`'inline-block'`,\n * `'flex'`, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().display('inline-block').padding('4px 8px');\n */\n display(value: string): StyleBuilder {\n this.styles.push(`display: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `position`. Mismo alcance que\n * {@link StyleBuilder.display}: no afecta al flujo normal del\n * DevTools console, pero queda disponible para estilos que se\n * reutilizan fuera del console (playground DOM, tests visuales).\n *\n * @param {string} value - Valor CSS de `position` (`'relative'`,\n * `'absolute'`, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().position('relative').display('inline-block');\n */\n position(value: string): StyleBuilder {\n this.styles.push(`position: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `transform`. Permite aplicar traslaciones,\n * escalados o rotaciones al estilo. Útil en el playground DOM para\n * micro-interacciones (hover scale, énfasis de banner); en el console\n * crudo el soporte varía según navegador.\n *\n * @param {string} value - Valor CSS de `transform` (`'scale(1.1)'`,\n * `'translateY(-2px)'`, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().transform('scale(1.05)');\n */\n transform(value: string): StyleBuilder {\n this.styles.push(`transform: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `animation`. Aplica keyframes definidos en el\n * contexto de render; en el DevTools console el soporte de animaciones\n * es limitado y solo se materializa en el playground DOM o en\n * overlays HTML, no en el flujo plano de logs.\n *\n * @param {string} value - Shorthand CSS `animation`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().animation('pulse 1s ease-in-out infinite');\n */\n animation(value: string): StyleBuilder {\n this.styles.push(`animation: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `transition`. Mismo alcance que\n * {@link StyleBuilder.animation}: pensado para el playground DOM,\n * donde los estilos del logger se reutilizan en elementos que sí\n * soportan transiciones (hover, focus, state changes).\n *\n * @param {string} value - Shorthand CSS `transition`.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().transition('background 200ms ease');\n */\n transition(value: string): StyleBuilder {\n this.styles.push(`transition: ${value}`);\n return this;\n }\n\n /**\n * Define la propiedad `cursor`. Aplicable cuando el estilo se reutiliza\n * en elementos interactivos del playground (chips clicables, badges con\n * tooltip) donde se quiere sugerir affordance de click.\n *\n * @param {string} value - Valor CSS de `cursor` (`'pointer'`,\n * `'help'`, ...).\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().cursor('pointer').rounded('4px');\n */\n cursor(value: string): StyleBuilder {\n this.styles.push(`cursor: ${value}`);\n return this;\n }\n\n /**\n * Escape hatch para cualquier propiedad CSS que no tenga método\n * dedicado. Empuja la declaración `property: value` tal cual al\n * buffer, sin validación — útil para props modernas\n * (`backdrop-filter`, `clip-path`, `text-shadow`) o vendor prefixes.\n *\n * @param {string} property - Nombre de la propiedad CSS.\n * @param {string} value - Valor crudo de la propiedad.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().custom('backdrop-filter', 'blur(8px)');\n */\n custom(property: string, value: string): StyleBuilder {\n this.styles.push(`${property}: ${value}`);\n return this;\n }\n\n /**\n * Alias de {@link StyleBuilder.custom}. Mismo comportamiento exacto,\n * expuesto solo porque `css(prop, val)` lee mejor como DSL inline\n * cuando se está encadenando mucho.\n *\n * @param {string} property - Nombre de la propiedad CSS.\n * @param {string} value - Valor crudo de la propiedad.\n * @returns {StyleBuilder} `this` para encadenar más reglas.\n *\n * @example\n * new StyleBuilder().css('letter-spacing', '0.5px');\n */\n css(property: string, value: string): StyleBuilder {\n return this.custom(property, value);\n }\n\n /**\n * Materializa el string CSS final uniendo todas las declaraciones\n * acumuladas con `\"; \"`. Es el formato exacto que espera el segundo\n * argumento de `console.log(\"%c…\", style)` — el resultado se puede\n * pasar directo al logger o al DevTools.\n *\n * @returns {string} String CSS listo para `%c`-formatting.\n *\n * @example\n * const css = new StyleBuilder().bg('#000').color('#0ff').build();\n * console.log('%c DEBUG ', css);\n */\n build(): string {\n return this.styles.join('; ');\n }\n\n /**\n * Vacía el buffer de estilos y reinicia el builder al estado inicial.\n * Útil cuando se reutiliza la misma instancia en un bucle para\n * generar variantes (p.ej. render de N badges con estilo derivado)\n * sin pagar el costo de instanciar un builder nuevo en cada pasada.\n *\n * @returns {StyleBuilder} `this` ya vaciado, listo para reutilizar.\n *\n * @example\n * const sb = new StyleBuilder();\n * for (const lvl of ['info', 'warn', 'error']) {\n * sb.clear().bg(COLORS[lvl]).color('#fff').build();\n * }\n */\n clear(): StyleBuilder {\n this.styles = [];\n return this;\n }\n\n /**\n * Devuelve una copia independiente del builder con los mismos estilos\n * acumulados. La clave para variar un estilo base sin mutar el\n * original: el clone comparte las declaraciones hasta el momento del\n * `clone()`, pero a partir de ahí cada uno acumula por su lado.\n *\n * @returns {StyleBuilder} Nuevo builder con el mismo buffer de estilos.\n *\n * @example\n * const base = new StyleBuilder().padding('2px 6px').rounded('3px');\n * const ok = base.clone().color('#00b894').build();\n * const err = base.clone().color('#e84393').build();\n */\n clone(): StyleBuilder {\n const cloned = new StyleBuilder();\n cloned.styles = [...this.styles];\n return cloned;\n }\n\n /**\n * Anexa las declaraciones de otro builder al final del buffer actual.\n * Útil para componer un estilo a partir de capas (p.ej. base común +\n * override por tema) sin perder la trazabilidad de quién aportó qué.\n *\n * No deduplica: si ambos builders setean `color`, el resultado tendrá\n * dos declaraciones y el navegador se queda con la última.\n *\n * @param {StyleBuilder} other - Builder cuyas declaraciones se anexan.\n * @returns {StyleBuilder} `this` con los estilos mergueados.\n *\n * @example\n * const base = new StyleBuilder().padding('4px 8px');\n * const theme = new StyleBuilder().bg('#222').color('#eee');\n * base.merge(theme).build();\n */\n merge(other: StyleBuilder): StyleBuilder {\n this.styles.push(...other.styles);\n return this;\n }\n}\n\n/**\n * Construye el `Proxy` que envuelve un {@link StyleBuilder} fresco para\n * exponer una instancia \"always-on\" sin necesidad de instanciar la clase\n * a mano. El handler bindea cada método al builder interno al primer\n * acceso, de forma que las llamadas encadenadas (`$.bg(...).color(...)`)\n * operan sobre la misma instancia subyacente.\n *\n * @internal Helper del proxy exportado {@link $}; no es API pública.\n * @returns Instancia proxy sobre un `StyleBuilder`.\n */\nfunction createStyler(): any {\n const builder = new StyleBuilder();\n return new Proxy(builder, {\n get(target: StyleBuilder, prop: string) {\n if (prop in target) {\n const method = (target as any)[prop];\n if (typeof method === 'function') {\n return method.bind(target);\n }\n return method;\n }\n return undefined;\n }\n });\n}\n\n/**\n * Instancia global del styler expuesta vía `Proxy` para uso ad-hoc.\n *\n * Es la vía más cómoda de construir un estilo inline sin instanciar\n * `new StyleBuilder()`: se llama directamente como `$.bg(...).color(...)`\n * y se cierra con `.build()`. Internamente delega en un\n * {@link StyleBuilder} envuelto por {@link createStyler}, así que\n * soporta exactamente los mismos métodos.\n *\n * Como comparte estado entre llamadas, si se necesita un estilo aislado\n * (p.ej. para evitar que un `clear()` afecte a otros usos), instanciar\n * `new StyleBuilder()` directamente o usar {@link StyleBuilder.clone}.\n *\n * @example\n * // Badge rápido sin instanciar la clase\n * console.log('%c HLLO ', $.bg('#222').color('#0ff').bold().build());\n *\n * @example\n * // Reutilizar para varios logs (mismo builder subyacente)\n * $.bg('#1e1e1e').color('#eee').padding('4px 8px').rounded('4px');\n * const badge = $.build();\n */\nexport const $ = createStyler();\n\n/**\n * Catálogo de factories de estilos pre-armados para los casos de uso más\n * comunes en logging: un preset por severity (`success`/`error`/`warning`/\n * `info`/`debug`), uno para texto secundario (`muted`), uno para tags\n * neutros (`accent`) y uno decorativo (`neon`).\n *\n * Cada preset es una función zero-arg que devuelve un {@link StyleBuilder}\n * nuevo, ya configurado y listo para `.build()` o para extender con más\n * reglas antes del build. El patrón factory evita compartir estado entre\n * llamadas: cada invocación es independiente.\n *\n * @example\n * // Usar un preset tal cual\n * console.log('%c OK ', StylePresets.success().build());\n *\n * @example\n * // Extender un preset con reglas extra antes de materializar\n * const css = StylePresets.info()\n * .custom('text-shadow', '0 1px 0 rgba(0,0,0,0.3)')\n * .build();\n *\n * @see {@link StyleBuilder} para la API completa de reglas encadenables.\n */\nexport const StylePresets = {\n /**\n * Preset para severity \"success\" (operación completada OK). Gradiente\n * verde → verde oscuro, texto blanco, badge con padding/bold/radius\n * estándar.\n *\n * @returns {StyleBuilder} Estilo verde de éxito.\n *\n * @example\n * console.log('%c LOGIN OK ', StylePresets.success().build());\n */\n success: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #00b894 0%, #00a085 100%)')\n .color('#ffffff')\n .padding('4px 8px')\n .rounded('4px')\n .bold(),\n\n /**\n * Preset para severity \"error\" (fallo que requiere atención). Gradiente\n * rosa → rojo intenso, texto blanco, badge bold para destacar sobre\n * el resto de la línea.\n *\n * @returns {StyleBuilder} Estilo rojo de error.\n *\n * @example\n * console.log('%c DB DOWN ', StylePresets.error().build());\n */\n error: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #e84393 0%, #d63031 100%)')\n .color('#ffffff')\n .padding('4px 8px')\n .rounded('4px')\n .bold(),\n\n /**\n * Preset para severity \"warning\" (situación recuperable pero a vigilar).\n * Gradiente ámbar → naranja cálido, texto oscuro (`#2d3436`) para\n * mantener contraste sobre fondo claro.\n *\n * @returns {StyleBuilder} Estilo ámbar de advertencia.\n *\n * @example\n * console.log('%c RATE LIMIT ', StylePresets.warning().build());\n */\n warning: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #fdcb6e 0%, #e17055 100%)')\n .color('#2d3436')\n .padding('4px 8px')\n .rounded('4px')\n .bold(),\n\n /**\n * Preset para severity \"info\" (mensaje informativo, flujo normal).\n * Gradiente azul claro → azul medio, texto blanco, badge estándar.\n *\n * @returns {StyleBuilder} Estilo azul informativo.\n *\n * @example\n * console.log('%c USER LOGIN ', StylePresets.info().build());\n */\n info: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #74b9ff 0%, #0984e3 100%)')\n .color('#ffffff')\n .padding('4px 8px')\n .rounded('4px')\n .bold(),\n\n /**\n * Preset para severity \"debug\" (traza de diagnóstico, normalmente\n * oculta en producción). Gradiente índigo → púrpura, distinto del\n * azul de `info` para que se distinga visualmente.\n *\n * @returns {StyleBuilder} Estilo púrpura de debug.\n *\n * @example\n * console.log('%c CACHE MISS ', StylePresets.debug().build());\n */\n debug: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #667eea 0%, #764ba2 100%)')\n .color('#ffffff')\n .padding('4px 8px')\n .rounded('4px')\n .bold(),\n\n /**\n * Preset para texto secundario (timestamps, metadatos, contexto\n * auxiliar). Sin fondo, color gris y font monospace pequeño (`12px`):\n * pensado para que el ojo lo lea como \"de apoyo\" y no compita con el\n * severity principal.\n *\n * @returns {StyleBuilder} Estilo gris monoespaciado y reducido.\n *\n * @example\n * console.log('%c 2026-01-01T12:00:00Z ', StylePresets.muted().build());\n */\n muted: () => new StyleBuilder()\n .color('#6c757d')\n .font('Monaco, Consolas, monospace')\n .size('12px'),\n\n /**\n * Preset para tags neutros sobre fondo claro (categorías, IDs, labels\n * que no son severity). Fondo gris muy claro, texto gris medio, borde\n * sutil y padding más ajustado que los presets de severity para que\n * conviva visualmente con ellos.\n *\n * @returns {StyleBuilder} Estilo \"chip\" neutro con borde.\n *\n * @example\n * console.log('%c svc:auth ', StylePresets.accent().build());\n */\n accent: () => new StyleBuilder()\n .bg('#f8f9fa')\n .color('#495057')\n .padding('2px 6px')\n .rounded('3px')\n .border('1px solid #dee2e6'),\n\n /**\n * Preset decorativo neón (gradiente azul oscuro → rojo coral con halo\n * cyan). Pensado para banners o highlights puntuales que quieren llamar\n * la atención por estética, no por severity. El `box-shadow` con alfa\n * baja genera el glow característico.\n *\n * @returns {StyleBuilder} Estilo neón con sombra glow.\n *\n * @example\n * console.log('%c ★ BANNER ★ ', StylePresets.neon().build());\n */\n neon: () => new StyleBuilder()\n .bg('linear-gradient(135deg, #0f3460 0%, #e94560 100%)')\n .color('#00ffff')\n .padding('4px 8px')\n .rounded('4px')\n .bold()\n .shadow('0 0 10px rgba(0, 255, 255, 0.5)'),\n};","/**\n * @fileoverview Presets de themes visuales para Advanced Logger.\n */\n\nimport type { ThemeVariant } from '../types/index.js';\nimport type { LevelStyleConfig } from '../utils/index.js';\n\n/**\n * Catálogo de themes visuales para los badges de cada log level.\n *\n * Cada {@link ThemeVariant} mapea a un record de {@link LevelStyleConfig}\n * indexado por nivel (`debug`, `info`, `warn`, `error`, `success`,\n * `critical`). El {@link StyleManager} consume este mappeo para resolver\n * los estilos CSS del badge que rodea al label del nivel en la consola\n * del navegador.\n *\n * Un {@link LevelStyleConfig} por nivel define seis campos visuales:\n * - `emoji` — glyph que precede al label (vacío en themes minimal).\n * - `label` — texto en mayúsculas renderizado dentro del badge.\n * - `background` — CSS background (típicamente un `linear-gradient`).\n * - `color` — color del texto interior del badge.\n * - `border` — CSS border completo (`<width> <style> <color>`).\n * - `shadow` — box-shadow alrededor del badge; `'none'` lo desactiva.\n *\n * Themes disponibles: `default` (gradientes vivos), `dark` (paleta oscura\n * para DevTools oscuro), `neon` (glow neón sobre fondo oscuro), `minimal`\n * (badges planos sin sombras ni emojis), `light` (paleta pastel para\n * DevTools claro) y `cyberpunk` (cian/magenta con sombras extendidas).\n *\n * @example\n * ```ts\n * import { THEME_PRESETS } from '@mks2508/better-logger/styles';\n *\n * // Inspeccionar el badge `error` del theme `neon`\n * const { emoji, label, background, color } = THEME_PRESETS.neon.error;\n * console.log(`${emoji} ${label} → ${background}`);\n * ```\n *\n * @example\n * ```ts\n * // Aplicar un theme al logger entero\n * import logger from '@mks2508/better-logger';\n * logger.configure({ theme: 'cyberpunk' });\n * logger.error('Algo se rompió'); // badge con glow magenta\n * ```\n *\n * @see {@link ThemeVariant} para la lista de claves válidas.\n * @see {@link LevelStyleConfig} para la shape exacta de cada entrada.\n */\nexport const THEME_PRESETS: Record<ThemeVariant, Record<string, LevelStyleConfig>> = {\n default: {\n trace: {\n emoji: '🔬', label: 'TRACE',\n background: 'linear-gradient(135deg, #b2bec3 0%, #636e72 100%)',\n color: '#ffffff', border: '1px solid #b2bec3',\n shadow: '0 1px 2px rgba(178, 190, 195, 0.3)',\n },\n debug: {\n emoji: '🐞', label: 'DEBUG',\n background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n color: '#ffffff', border: '1px solid #667eea',\n shadow: '0 2px 4px rgba(102, 126, 234, 0.3)',\n },\n info: {\n emoji: 'ℹ️', label: 'INFO',\n background: 'linear-gradient(135deg, #74b9ff 0%, #0984e3 100%)',\n color: '#ffffff', border: '1px solid #74b9ff',\n shadow: '0 2px 4px rgba(116, 185, 255, 0.3)',\n },\n warn: {\n emoji: '⚠️', label: 'WARN',\n background: 'linear-gradient(135deg, #fdcb6e 0%, #e17055 100%)',\n color: '#2d3436', border: '1px solid #fdcb6e',\n shadow: '0 2px 4px rgba(253, 203, 110, 0.3)',\n },\n error: {\n emoji: '❌', label: 'ERROR',\n background: 'linear-gradient(135deg, #e84393 0%, #d63031 100%)',\n color: '#ffffff', border: '1px solid #e84393',\n shadow: '0 2px 4px rgba(232, 67, 147, 0.3)',\n },\n success: {\n emoji: '✅', label: 'SUCCESS',\n background: 'linear-gradient(135deg, #00b894 0%, #00a085 100%)',\n color: '#ffffff', border: '1px solid #00b894',\n shadow: '0 2px 4px rgba(0, 184, 148, 0.3)',\n },\n critical: {\n emoji: '🔥', label: 'CRITICAL',\n background: 'linear-gradient(135deg, #ff3838 0%, #ff1744 100%)',\n color: '#ffffff', border: '2px solid #ff3838',\n shadow: '0 4px 8px rgba(255, 56, 56, 0.5)',\n },\n },\n dark: {\n trace: {\n emoji: '🔬', label: 'TRACE',\n background: 'linear-gradient(135deg, #4a5568 0%, #2d3748 100%)',\n color: '#cbd5e0', border: '1px solid #4a5568',\n shadow: '0 1px 3px rgba(74, 85, 104, 0.8)',\n },\n debug: {\n emoji: '🌙', label: 'DEBUG',\n background: 'linear-gradient(135deg, #2d3748 0%, #4a5568 100%)',\n color: '#e2e8f0', border: '1px solid #4a5568',\n shadow: '0 2px 4px rgba(45, 55, 72, 0.8)',\n },\n info: {\n emoji: '💡', label: 'INFO',\n background: 'linear-gradient(135deg, #1a202c 0%, #2d3748 100%)',\n color: '#90cdf4', border: '1px solid #3182ce',\n shadow: '0 2px 4px rgba(26, 32, 44, 0.8)',\n },\n warn: {\n emoji: '⚡', label: 'WARN',\n background: 'linear-gradient(135deg, #744210 0%, #975a16 100%)',\n color: '#faf089', border: '1px solid #d69e2e',\n shadow: '0 2px 4px rgba(116, 66, 16, 0.8)',\n },\n error: {\n emoji: '💀', label: 'ERROR',\n background: 'linear-gradient(135deg, #742a2a 0%, #9b2c2c 100%)',\n color: '#feb2b2', border: '1px solid #e53e3e',\n shadow: '0 2px 4px rgba(116, 42, 42, 0.8)',\n },\n success: {\n emoji: '🎯', label: 'SUCCESS',\n background: 'linear-gradient(135deg, #276749 0%, #2f855a 100%)',\n color: '#9ae6b4', border: '1px solid #38a169',\n shadow: '0 2px 4px rgba(39, 103, 73, 0.8)',\n },\n critical: {\n emoji: '💥', label: 'CRITICAL',\n background: 'linear-gradient(135deg, #1a1a1a 0%, #ff0000 100%)',\n color: '#ffffff', border: '2px solid #ff0000',\n shadow: '0 4px 8px rgba(255, 0, 0, 0.9)',\n },\n },\n neon: {\n trace: {\n emoji: '🔬', label: 'TRACE',\n background: 'linear-gradient(135deg, #16213e 0%, #0a0a23 100%)',\n color: '#00ffff', border: '1px solid #00ffff',\n shadow: '0 0 10px rgba(0, 255, 255, 0.5)',\n },\n debug: {\n emoji: '⚡', label: 'DEBUG',\n background: 'linear-gradient(135deg, #0f3460 0%, #e94560 100%)',\n color: '#00ffff', border: '1px solid #00ffff',\n shadow: '0 0 10px rgba(0, 255, 255, 0.5)',\n },\n info: {\n emoji: '🔮', label: 'INFO',\n background: 'linear-gradient(135deg, #16213e 0%, #0f3460 100%)',\n color: '#00ff41', border: '1px solid #00ff41',\n shadow: '0 0 10px rgba(0, 255, 65, 0.5)',\n },\n warn: {\n emoji: '⚠️', label: 'WARN',\n background: 'linear-gradient(135deg, #533a03 0%, #e94560 100%)',\n color: '#ffff00', border: '1px solid #ffff00',\n shadow: '0 0 10px rgba(255, 255, 0, 0.5)',\n },\n error: {\n emoji: '💥', label: 'ERROR',\n background: 'linear-gradient(135deg, #5c0a0a 0%, #ff073a 100%)',\n color: '#ff073a', border: '1px solid #ff073a',\n shadow: '0 0 10px rgba(255, 7, 58, 0.8)',\n },\n success: {\n emoji: '✨', label: 'SUCCESS',\n background: 'linear-gradient(135deg, #0a5c0a 0%, #39ff14 100%)',\n color: '#39ff14', border: '1px solid #39ff14',\n shadow: '0 0 10px rgba(57, 255, 20, 0.8)',\n },\n critical: {\n emoji: '🌟', label: 'CRITICAL',\n background: 'linear-gradient(135deg, #000000 0%, #ff0080 100%)',\n color: '#ff0080', border: '2px solid #ff0080',\n shadow: '0 0 20px rgba(255, 0, 128, 1)',\n },\n },\n minimal: {\n trace: {\n emoji: '', label: 'TRACE',\n background: '#fafafa', color: '#9e9e9e',\n border: '1px solid #eeeeee', shadow: 'none',\n },\n debug: {\n emoji: '', label: 'DEBUG',\n background: '#f7fafc', color: '#4a5568',\n border: '1px solid #e2e8f0', shadow: 'none',\n },\n info: {\n emoji: '', label: 'INFO',\n background: '#ebf8ff', color: '#2b6cb0',\n border: '1px solid #bee3f8', shadow: 'none',\n },\n warn: {\n emoji: '', label: 'WARN',\n background: '#fffbf0', color: '#c05621',\n border: '1px solid #fed7aa', shadow: 'none',\n },\n error: {\n emoji: '', label: 'ERROR',\n background: '#fef5f5', color: '#c53030',\n border: '1px solid #fca5a5', shadow: 'none',\n },\n success: {\n emoji: '', label: 'SUCCESS',\n background: '#f0fff4', color: '#2f855a',\n border: '1px solid #9ae6b4', shadow: 'none',\n },\n critical: {\n emoji: '', label: 'CRITICAL',\n background: '#fef5f5', color: '#e53e3e',\n border: '2px solid #f56565', shadow: 'none',\n },\n },\n // Nuevas variantes de theme pueden añadirse aquí\n light: {\n trace: {\n emoji: '🔬', label: 'TRACE',\n background: 'linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%)',\n color: '#616161', border: '1px solid #bdbdbd',\n shadow: '0 1px 3px rgba(189, 189, 189, 0.2)',\n },\n debug: {\n emoji: '🔍', label: 'DEBUG',\n background: 'linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%)',\n color: '#1565c0', border: '1px solid #90caf9',\n shadow: '0 1px 3px rgba(33, 150, 243, 0.2)',\n },\n info: {\n emoji: 'ℹ️', label: 'INFO',\n background: 'linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%)',\n color: '#7b1fa2', border: '1px solid #ce93d8',\n shadow: '0 1px 3px rgba(156, 39, 176, 0.2)',\n },\n warn: {\n emoji: '⚠️', label: 'WARN',\n background: 'linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%)',\n color: '#f57c00', border: '1px solid #ffcc02',\n shadow: '0 1px 3px rgba(255, 152, 0, 0.2)',\n },\n error: {\n emoji: '❌', label: 'ERROR',\n background: 'linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%)',\n color: '#d32f2f', border: '1px solid #f44336',\n shadow: '0 1px 3px rgba(244, 67, 54, 0.2)',\n },\n success: {\n emoji: '✅', label: 'SUCCESS',\n background: 'linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%)',\n color: '#388e3c', border: '1px solid #4caf50',\n shadow: '0 1px 3px rgba(76, 175, 80, 0.2)',\n },\n critical: {\n emoji: '🚨', label: 'CRITICAL',\n background: 'linear-gradient(135deg, #fce4ec 0%, #f8bbd9 100%)',\n color: '#c2185b', border: '2px solid #e91e63',\n shadow: '0 2px 6px rgba(233, 30, 99, 0.3)',\n },\n },\n cyberpunk: {\n trace: {\n emoji: '🔬', label: 'TRACE',\n background: 'linear-gradient(135deg, #1b263b 0%, #0d1b2a 100%)',\n color: '#48bfe3', border: '1px solid #48bfe3',\n shadow: '0 0 15px rgba(72, 191, 227, 0.4)',\n },\n debug: {\n emoji: '🤖', label: 'DEBUG',\n background: 'linear-gradient(135deg, #0d1b2a 0%, #415a77 100%)',\n color: '#00d4aa', border: '1px solid #00d4aa',\n shadow: '0 0 15px rgba(0, 212, 170, 0.4)',\n },\n info: {\n emoji: '🔗', label: 'INFO',\n background: 'linear-gradient(135deg, #1b263b 0%, #0d1b2a 100%)',\n color: '#00b4d8', border: '1px solid #00b4d8',\n shadow: '0 0 15px rgba(0, 180, 216, 0.4)',\n },\n warn: {\n emoji: '⚡', label: 'WARN',\n background: 'linear-gradient(135deg, #f72585 0%, #b5179e 100%)',\n color: '#ffff3f', border: '1px solid #ffff3f',\n shadow: '0 0 15px rgba(255, 255, 63, 0.4)',\n },\n error: {\n emoji: '💀', label: 'ERROR',\n background: 'linear-gradient(135deg, #7209b7 0%, #480ca8 100%)',\n color: '#ff006e', border: '1px solid #ff006e',\n shadow: '0 0 15px rgba(255, 0, 110, 0.6)',\n },\n success: {\n emoji: '⚡', label: 'SUCCESS',\n background: 'linear-gradient(135deg, #003566 0%, #001d3d 100%)',\n color: '#00f5ff', border: '1px solid #00f5ff',\n shadow: '0 0 15px rgba(0, 245, 255, 0.4)',\n },\n critical: {\n emoji: '💥', label: 'CRITICAL',\n background: 'linear-gradient(135deg, #000000 0%, #ff0040 100%)',\n color: '#ff0040', border: '2px solid #ff0040',\n shadow: '0 0 25px rgba(255, 0, 64, 0.8)',\n },\n },\n};","/**\n * @fileoverview Configuraciones de banner para Advanced Logger.\n */\n\nimport type { BannerType, ThemeVariant } from '../types/index.js';\n\n/**\n * Catálogo de variantes del banner de inicialización del logger.\n *\n * Cada variante es un par `{ text, style }` listo para pasar a\n * `console.log(\\`%c${text}\\`, style)`. Las variantes escalan en complejidad\n * visual según las capacidades del navegador:\n * - `simple` — una sola línea con gradiente.\n * - `ascii` — ASCII art multiníveles (Safari, sin SVG).\n * - `unicode` — caja Unicode con gradiente de fondo.\n * - `svg` — `background-image` SVG con texto vectorial.\n * - `animated` — gradiente animado vía `@keyframes gradientShift`.\n *\n * La función {@link detectBannerCapabilities} elige automáticamente la\n * variante más rica soportada por el entorno actual.\n *\n * @example\n * ```ts\n * import { BANNER_VARIANTS } from '@mks2508/better-logger/styles';\n *\n * const { text, style } = BANNER_VARIANTS.unicode;\n * console.log(`%c${text}`, style);\n * ```\n *\n * @see {@link BannerType} para la unión de claves válidas.\n * @see {@link displayInitBanner} para pintar el banner auto-detectado.\n */\nexport const BANNER_VARIANTS = {\n simple: {\n text: '🚀 ADVANCED LOGGER v2.0.0 - State-of-the-art Console Styling 🚀',\n style: 'background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 12px 20px; border-radius: 8px; font-weight: bold; font-size: 14px;'\n },\n ascii: {\n text: `\n ___ ____ _ __ ___ _ __ _____ _____ ____ __ ___ _____ _____ _____ ____ \n / _ \\\\ / __ \\\\| | / / / _ \\\\ | \\\\ | |/ ____| ____| _ \\\\ | | / _ \\\\ / ____| ___| _ | _ \\\\ \n / /_\\\\ \\\\ / / _\\` | |/ / / /_\\\\ \\\\ | \\\\| | | | |__ | | | | | | / / \\\\ \\\\| | __| |_ | |_| | |_) |\n | _ || | (_| | < | _ | | . \\` | | | __| | | | | | | | | | | | |_ | _| | /| _ < \n | | | |\\\\ \\\\__,_|_|\\\\_\\\\ | | | | | |\\\\ | |___| |____| |_| | | |__\\\\ \\\\_/ /| |__| | |___| |\\\\ \\\\| |_) |\n \\\\_| |_/ \\\\____/ \\\\_| |_/ |_| \\\\_|\\\\_____|______|____/ |_____/\\\\___/ \\\\_____|_____|_| \\\\_|____/\n\n Advanced Logger v2.0.0 - Console Excellence`,\n style: 'font-family: \"Courier New\", Consolas, Monaco, monospace; color: #667eea; font-size: 11px; line-height: 1.2;'\n },\n unicode: {\n text: `\n╔══════════════════════════════════════════════════════════════════════════╗\n║ 🚀 ADVANCED LOGGER v2.0.0 ║\n║ State-of-the-art Console Styling ║ \n╚══════════════════════════════════════════════════════════════════════════╝`,\n style: 'font-family: \"Courier New\", Consolas, Monaco, monospace; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 15px; border-radius: 8px; font-size: 12px; line-height: 1.3;'\n },\n svg: {\n text: ' ',\n style: `\n background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 80'><defs><linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='0%'><stop offset='0%' style='stop-color:%23667eea'/><stop offset='100%' style='stop-color:%23764ba2'/></linearGradient></defs><rect width='100%' height='100%' fill='url(%23grad)' rx='8'/><text x='200' y='30' text-anchor='middle' fill='white' font-family='monospace' font-size='14' font-weight='bold'>🚀 ADVANCED LOGGER</text><text x='200' y='50' text-anchor='middle' fill='white' font-family='monospace' font-size='12'>State-of-the-art Console Styling</text><text x='200' y='65' text-anchor='middle' fill='white' font-family='monospace' font-size='10'>v2.0.0</text></svg>\");\n background-repeat: no-repeat;\n background-size: 400px 80px;\n padding: 40px 200px;\n color: transparent;\n display: inline-block;\n border-radius: 8px;\n `\n },\n animated: {\n text: ' 🚀 ADVANCED LOGGER v2.0.0 ',\n style: `\n background: linear-gradient(-45deg, #667eea, #764ba2, #667eea, #764ba2);\n background-size: 400% 400%;\n color: white;\n padding: 15px 25px;\n border-radius: 10px;\n font-weight: bold;\n font-size: 14px;\n font-family: monospace;\n animation: gradientShift 3s ease infinite;\n display: inline-block;\n `\n }\n};\n\n/**\n * Banners de inicialización específicos por {@link ThemeVariant}.\n *\n * Cada theme trae su propio par `{ simple, style }` (banner de una línea\n * + CSS) que combina con la paleta del theme. El texto del banner es\n * siempre una sola línea (sin ASCII art), por lo que es la variante\n * usada por defecto cuando el logger arranca con un theme concreto.\n *\n * @example\n * ```ts\n * import { THEME_BANNERS } from '@mks2508/better-logger/styles';\n *\n * const { simple, style } = THEME_BANNERS.cyberpunk;\n * console.log(`%c${simple}`, style);\n * ```\n *\n * @see {@link THEME_PRESETS} para los estilos de badge por nivel de cada theme.\n * @see {@link ThemeVariant} para la lista de themes disponibles.\n */\nexport const THEME_BANNERS: Record<ThemeVariant, { simple: string; style: string }> = {\n default: {\n simple: '🚀 ADVANCED LOGGER v2.0.0 - State-of-the-art Console Styling 🚀',\n style: 'background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 12px 20px; border-radius: 8px; font-weight: bold;'\n },\n dark: {\n simple: '🌙 ADVANCED LOGGER v2.0.0 - Dark Mode Console Excellence 🌙',\n style: 'background: linear-gradient(135deg, #1a202c 0%, #2d3748 100%); color: #e2e8f0; padding: 12px 20px; border-radius: 8px; font-weight: bold; border: 1px solid #4a5568;'\n },\n neon: {\n simple: '⚡ ADVANCED LOGGER v2.0.0 - Cyberpunk Console Experience ⚡',\n style: 'background: linear-gradient(135deg, #0f3460 0%, #e94560 100%); color: #00ffff; padding: 12px 20px; border-radius: 8px; font-weight: bold; text-shadow: 0 0 10px #00ffff;'\n },\n minimal: {\n simple: 'ADVANCED LOGGER v2.0.0 - Clean Console Styling',\n style: 'background: #f7fafc; color: #2d3748; padding: 8px 16px; border: 1px solid #e2e8f0; border-radius: 4px; font-weight: 500;'\n },\n light: {\n simple: '☀️ ADVANCED LOGGER v2.0.0 - Bright Console Styling ☀️',\n style: 'background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); color: #495057; padding: 12px 20px; border-radius: 8px; font-weight: bold; border: 1px solid #dee2e6;'\n },\n cyberpunk: {\n simple: '🤖 ADVANCED LOGGER v2.0.0 - Neural Console Interface 🤖',\n style: 'background: linear-gradient(135deg, #0d1b2a 0%, #415a77 100%); color: #00d4aa; padding: 12px 20px; border-radius: 8px; font-weight: bold; text-shadow: 0 0 10px #00d4aa; border: 1px solid #00d4aa;'\n }\n};\n\n/**\n * Detecta la variante de banner más rica que el entorno puede renderizar.\n *\n * Usa `navigator.userAgent` y probes sobre `document` para decidir entre\n * `animated` (Chrome con CSS animations), `svg` (Chrome/Firefox con SVG),\n * `unicode` (Chrome/Firefox fallback), `ascii` (Safari) o `simple`\n * (todo lo demás). En entornos sin `navigator` o `document` retorna\n * `'simple'` inmediatamente (Node, SSR, Web Workers).\n *\n * @returns {BannerType} Variante de banner recomendada para el entorno.\n *\n * @example\n * ```ts\n * import { detectBannerCapabilities } from '@mks2508/better-logger/styles';\n *\n * const capable = detectBannerCapabilities();\n * console.log(`Best banner for this env: ${capable}`);\n * ```\n *\n * @see {@link BANNER_VARIANTS} para el catálogo que indexa este resultado.\n */\nexport function detectBannerCapabilities(): BannerType {\n if (typeof navigator === 'undefined' || typeof document === 'undefined') {\n return 'simple';\n }\n\n // Detectar capacidades del navegador\n const userAgent = navigator.userAgent;\n const isChrome = /Chrome/.test(userAgent);\n const isFirefox = /Firefox/.test(userAgent);\n const isSafari = /Safari/.test(userAgent) && !/Chrome/.test(userAgent);\n\n // SVG support (la mayoría de navegadores modernos)\n const supportsSVG = !!document.createElementNS &&\n !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;\n\n // CSS animation support\n const supportsAnimations = 'animationName' in document.createElement('div').style;\n\n // Progressive enhancement: elegir la variante más rica soportada\n if (supportsAnimations && isChrome) {\n return 'animated';\n } else if (supportsSVG && (isChrome || isFirefox)) {\n return 'svg';\n } else if (isChrome || isFirefox) {\n return 'unicode';\n } else if (isSafari) {\n return 'ascii';\n }\n\n return 'simple';\n}\n\n/**\n * Pinta el banner de inicialización del logger en la consola del navegador.\n *\n * Si no se pasa `bannerType`, se auto-detecta vía\n * {@link detectBannerCapabilities}. Además del banner, abre un\n * `console.group` con la lista de features soportadas (styling, stack\n * traces, performance timers, handlers, ...).\n *\n * No-op cuando `document` no está disponible (Node, SSR, Web Workers),\n * para evitar referencias a APIs inexistentes.\n *\n * @param {BannerType} [bannerType] - Variante de banner a pintar. Si se\n * omite, se detecta automáticamente la mejor soportada.\n * @returns {void}\n *\n * @example\n * ```ts\n * import { displayInitBanner } from '@mks2508/better-logger/styles';\n *\n * displayInitBanner(); // auto-detecta\n * displayInitBanner('ascii'); // fuerza ASCII art\n * ```\n *\n * @see {@link BANNER_VARIANTS} para las variantes disponibles.\n * @see {@link THEME_BANNERS} para banners específicos por theme.\n */\nexport function displayInitBanner(bannerType?: BannerType): void {\n if (typeof document === 'undefined') return;\n\n const selectedType = bannerType || detectBannerCapabilities();\n const banner = BANNER_VARIANTS[selectedType];\n\n // Añadir @keyframes CSS si hace falta\n if (selectedType === 'animated') {\n const style = document.createElement('style');\n style.textContent = `\n @keyframes gradientShift {\n 0% { background-position: 0% 50%; }\n 50% { background-position: 100% 50%; }\n 100% { background-position: 0% 50%; }\n }\n `;\n document.head.appendChild(style);\n }\n\n console.log(`%c${banner.text}`, banner.style);\n\n // Mostrar features destacadas\n const features = [\n '🎨 Advanced CSS Console Styling',\n '📍 Automatic Stack Trace Parsing',\n '🔧 Scoped Loggers & Prefixes',\n '⚡ Performance Timers',\n '🎯 Verbosity Filtering',\n '🔌 Extensible Handlers',\n '📱 Modern TypeScript Patterns',\n '📤 Export & Clipboard Support'\n ];\n\n console.group(`%c✨ Features`, 'background: #f8f9fa; color: #495057; padding: 4px 8px; border-radius: 4px; font-weight: bold;');\n\n features.forEach(feature => {\n console.log(`%c${feature}`, 'color: #6c757d; font-size: 13px;');\n });\n\n console.groupEnd();\n console.log(''); // Espaciado final\n}","/**\n * @fileoverview Smart presets para configurar el layout del logger.\n */\n\nimport type { LogStyles, LogLayout } from '../types/index.js';\n\n/**\n * Catálogo de smart presets que configuran el layout completo de un log.\n *\n * A diferencia de {@link THEME_PRESETS} — que solo controla los colores\n * y emojis del badge del nivel — los smart presets controlan la\n * composición entera del output: timestamp, badge de nivel, prefix,\n * mensaje, location, fuentes, padding/spacing y efectos visuales\n * (blur, transparency). Cada clave es un {@link LogStyles} completo.\n *\n * Presets disponibles:\n * - `default` — adaptativo (claro/oscuro según DevTools), legible.\n * - `cyberpunk` — neón, glow, fondo oscuro, location oculta.\n * - `glassmorphism` — blur + transparencia, layout spacious.\n * - `minimal` — sin timestamp, sin location, badges flat.\n * - `debug` — monospace, todo visible, compacto para dev.\n * - `production` — solo lo esencial: timestamp + level + mensaje.\n *\n * Los presets son ortogonales a los themes: pueden combinarse (por\n * ejemplo, `theme: 'dark'` + `preset: 'debug'` aplica el layout debug\n * sobre la paleta oscura).\n *\n * @example\n * ```ts\n * import logger from '@mks2508/better-logger';\n *\n * logger.preset('glassmorphism');\n * logger.info('Vidrio esmerilado en DevTools');\n * ```\n *\n * @example\n * ```ts\n * // Componer: theme custom + preset de layout\n * logger.configure({ theme: 'dark' });\n * logger.preset('debug');\n * logger.warn('Layout debug sobre theme dark');\n * ```\n *\n * @see {@link getSmartPreset} para resolver un preset por nombre.\n * @see {@link LogStyles} para la shape completa de un preset.\n */\nexport const SMART_PRESETS: Record<string, LogStyles> = {\n /**\n * Preset por defecto — funciona out-of-the-box.\n * Limpio, legible, adaptativo a themes claro/oscuro.\n */\n default: {\n layout: {\n spacing: 'normal',\n innerPadding: '2px',\n outerMargin: '1px'\n },\n timestamp: {\n show: true,\n color: 'auto', // Adaptativo automático\n font: 'Monaco, Consolas, monospace',\n size: '11px'\n },\n level: {\n show: true,\n style: 'badge',\n uppercase: false,\n padding: '2px 8px'\n },\n prefix: {\n show: true,\n style: 'dark', // Adaptativo automático\n padding: '2px 6px'\n },\n message: {\n show: true,\n color: 'auto', // Adaptativo automático\n font: 'system-ui, -apple-system, sans-serif',\n size: '14px'\n },\n location: {\n show: true,\n color: 'auto', // Adaptativo automático\n font: 'Monaco, Consolas, monospace',\n size: '11px'\n }\n },\n\n /**\n * Preset cyberpunk — neón, glow y fondo oscuro.\n */\n cyberpunk: {\n layout: {\n spacing: 'compact',\n innerPadding: '1px',\n outerMargin: '0px'\n },\n timestamp: {\n show: true,\n color: '#00ffff',\n font: 'Monaco, Consolas, monospace',\n size: '10px',\n style: 'neon'\n },\n level: {\n show: true,\n style: 'glowing',\n uppercase: true,\n padding: '2px 8px'\n },\n prefix: {\n show: true,\n color: '#ff0080',\n background: 'rgba(255, 0, 128, 0.1)',\n border: '1px solid #ff0080',\n style: 'neon'\n },\n message: {\n show: true,\n color: '#00ff41',\n font: 'Monaco, Consolas, monospace',\n size: '13px'\n },\n location: {\n show: false // Oculto para un look más limpio\n },\n backdrop: 'blur(2px)',\n transparency: 0.9\n },\n\n /**\n * Preset glassmorphism — blur moderno y transparencia.\n */\n glassmorphism: {\n layout: {\n spacing: 'spacious',\n innerPadding: '4px',\n outerMargin: '2px'\n },\n timestamp: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '11px',\n style: 'glassmorphic'\n },\n level: {\n show: true,\n style: 'glassmorphic',\n uppercase: false,\n padding: '4px 12px'\n },\n prefix: {\n show: true,\n style: 'glassmorphic',\n padding: '3px 8px'\n },\n message: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '14px'\n },\n location: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '11px',\n style: 'glassmorphic'\n },\n backdrop: 'blur(10px)',\n transparency: 0.8\n },\n\n /**\n * Preset minimal — limpio, sin decoraciones, máxima legibilidad.\n */\n minimal: {\n layout: {\n spacing: 'compact',\n innerPadding: '0px',\n outerMargin: '0px'\n },\n timestamp: {\n show: false // Oculto para look minimal\n },\n level: {\n show: true,\n style: 'flat',\n uppercase: true,\n padding: '0px 4px',\n border: 'none',\n background: 'transparent'\n },\n prefix: {\n show: true,\n style: 'flat',\n padding: '0px 4px',\n border: 'none',\n background: 'transparent'\n },\n message: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '14px'\n },\n location: {\n show: false // Oculto para look minimal\n }\n },\n\n /**\n * Preset debug — monospace, detallado, compacto para desarrollo.\n */\n debug: {\n layout: {\n spacing: 'compact',\n innerPadding: '1px',\n outerMargin: '0px'\n },\n timestamp: {\n show: true,\n color: 'auto',\n font: 'Monaco, Consolas, monospace',\n size: '10px'\n },\n level: {\n show: true,\n style: 'compact',\n uppercase: true,\n padding: '1px 4px',\n font: 'Monaco, Consolas, monospace',\n size: '10px'\n },\n prefix: {\n show: true,\n style: 'compact',\n padding: '1px 4px',\n font: 'Monaco, Consolas, monospace',\n size: '10px'\n },\n message: {\n show: true,\n color: 'auto',\n font: 'Monaco, Consolas, monospace',\n size: '12px'\n },\n location: {\n show: true,\n color: 'auto',\n font: 'Monaco, Consolas, monospace',\n size: '10px',\n style: 'clickable'\n }\n },\n\n /**\n * Preset production — limpio, solo info esencial.\n */\n production: {\n layout: {\n spacing: 'normal',\n innerPadding: '2px',\n outerMargin: '1px'\n },\n timestamp: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '11px'\n },\n level: {\n show: true,\n style: 'badge',\n uppercase: false,\n padding: '2px 6px'\n },\n prefix: {\n show: false // Oculto en production\n },\n message: {\n show: true,\n color: 'auto',\n font: 'system-ui, sans-serif',\n size: '14px'\n },\n location: {\n show: false // Oculto en production\n }\n }\n};\n\n/**\n * Resuelve un smart preset por nombre desde {@link SMART_PRESETS}.\n *\n * @param {string} name - Nombre del preset (`'default'`, `'cyberpunk'`,\n * `'glassmorphism'`, `'minimal'`, `'debug'`, `'production'`).\n * @returns {LogStyles | null} El preset encontrado, o `null` si el nombre\n * no existe en el catálogo.\n *\n * @example\n * ```ts\n * import { getSmartPreset } from '@mks2508/better-logger/styles';\n *\n * const preset = getSmartPreset('cyberpunk');\n * if (preset) {\n * console.log(preset.level?.style); // 'glowing'\n * }\n * ```\n *\n * @see {@link hasPreset} para un check booleano sin traer el objeto.\n */\nexport function getSmartPreset(name: string): LogStyles | null {\n return SMART_PRESETS[name] || null;\n}\n\n/**\n * Lista los nombres de todos los smart presets registrados.\n *\n * Útil para alimentar menús de configuración, CLIs o help text.\n *\n * @returns {string[]} Array con las claves de {@link SMART_PRESETS}.\n *\n * @example\n * ```ts\n * import { getAvailablePresets } from '@mks2508/better-logger/styles';\n *\n * console.log(getAvailablePresets());\n * // ['default', 'cyberpunk', 'glassmorphism', 'minimal', 'debug', 'production']\n * ```\n */\nexport function getAvailablePresets(): string[] {\n return Object.keys(SMART_PRESETS);\n}\n\n/**\n * Comprueba si un smart preset existe en el catálogo.\n *\n * @param {string} name - Nombre del preset a verificar.\n * @returns {boolean} `true` si el preset está registrado, `false` en caso contrario.\n *\n * @example\n * ```ts\n * import { hasPreset, getSmartPreset } from '@mks2508/better-logger/styles';\n *\n * const name = 'glassmorphism';\n * const preset = hasPreset(name) ? getSmartPreset(name) : null;\n * ```\n *\n * @see {@link getSmartPreset} para resolver el preset (retorna `null` si no existe).\n */\nexport function hasPreset(name: string): boolean {\n return name in SMART_PRESETS;\n}\n\n/**\n * Descripciones cortas y legibles para humanos de cada smart preset.\n *\n * Pensadas para help text, CLI output o UI de selección. Las claves\n * coinciden con {@link SMART_PRESETS}; los valores son strings de una\n * línea describiendo el propósito del preset.\n *\n * @example\n * ```ts\n * import { PRESET_DESCRIPTIONS, getAvailablePresets } from '@mks2508/better-logger/styles';\n *\n * for (const name of getAvailablePresets()) {\n * console.log(`${name.padEnd(14)} — ${PRESET_DESCRIPTIONS[name]}`);\n * }\n * ```\n *\n * @see {@link SMART_PRESETS} para los objetos {@link LogStyles} completos.\n */\nexport const PRESET_DESCRIPTIONS: Record<string, string> = {\n default: 'Clean, readable, automatically adaptive to dark/light themes',\n cyberpunk: 'Neon colors, glowing effects, perfect for dark themes',\n glassmorphism: 'Modern blur effects with transparency and spacious layout',\n minimal: 'Clean and simple, no decorations, maximum readability',\n debug: 'Monospace fonts, detailed info, compact layout for development',\n production: 'Professional look with essential information only'\n};"],"mappings":"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"}
|