@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,180 @@
|
|
|
1
|
+
import type { TransportRecord, TransportOptions, IBufferedTransport, HookLogEntry } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuración para {@link HttpTransport}. Extiende {@link TransportOptions}
|
|
4
|
+
* con parámetros HTTP: URL destino, headers custom, buffer acotado,
|
|
5
|
+
* retry con backoff para fallos transitorios, timeout de fetch por intento, y
|
|
6
|
+
* un hook `onError` que reporta drops (overflow / 4xx / retry exhausto)
|
|
7
|
+
* sin escalar excepciones al caller.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* // Mínimo: solo URL
|
|
11
|
+
* new HttpTransport({ url: 'https://logs.example.com/ingest' });
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Con retry/backoff ajustado y hook de errores
|
|
15
|
+
* new HttpTransport({
|
|
16
|
+
* url: 'https://logs.example.com/ingest',
|
|
17
|
+
* headers: { Authorization: 'Bearer <REDACTED>' },
|
|
18
|
+
* maxRetries: 5,
|
|
19
|
+
* initialBackoffMs: 500,
|
|
20
|
+
* maxBackoffMs: 30_000,
|
|
21
|
+
* fetchTimeoutMs: 5_000,
|
|
22
|
+
* onError: (entry) => metrics.increment('log_drop', { reason: entry.message })
|
|
23
|
+
* });
|
|
24
|
+
*/
|
|
25
|
+
export interface HttpTransportOptions extends TransportOptions {
|
|
26
|
+
/** URL destino. Se usa POST con body JSON. */
|
|
27
|
+
url?: string;
|
|
28
|
+
/** Headers extra de la request (ej. `Authorization: Bearer ...`). */
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
/** Tope máximo de records en buffer. En overflow se dropea el más viejo. */
|
|
31
|
+
maxBufferSize?: number;
|
|
32
|
+
/** Reintentos consecutivos por batch antes de dropear los records. */
|
|
33
|
+
maxRetries?: number;
|
|
34
|
+
/** Backoff inicial en ms. Duplica por intento hasta `maxBackoffMs`. */
|
|
35
|
+
initialBackoffMs?: number;
|
|
36
|
+
/** Techo de backoff en ms. */
|
|
37
|
+
maxBackoffMs?: number;
|
|
38
|
+
/** Timeout del fetch en ms (por intento). Default 10_000. */
|
|
39
|
+
fetchTimeoutMs?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Hook opcional que se dispara cuando el buffer hace overflow o un batch
|
|
42
|
+
* se dropea tras `maxRetries`. Recibe una entrada {@link HookLogEntry}
|
|
43
|
+
* sintética.
|
|
44
|
+
*/
|
|
45
|
+
onError?: (entry: HookLogEntry) => void | Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Transport basado en HTTP. Bufferea records, los batcha por tamaño o
|
|
49
|
+
* intervalo, POSTea el batch como JSON, y reporta fallos vía retry, buffer
|
|
50
|
+
* acotado y un hook `onError` — nunca un `.catch(() => {})` silencioso.
|
|
51
|
+
*
|
|
52
|
+
* Lifecycle de cada batch (driveado internamente por `sendWithRetry`):
|
|
53
|
+
* 1. `fetch(url, { method: 'POST', body, signal })` con un `AbortController`
|
|
54
|
+
* que aborta tras `fetchTimeoutMs`.
|
|
55
|
+
* 2. Si `response.ok` → batch considerado entregado.
|
|
56
|
+
* 3. Si `4xx` → dropeado sin reintento: el cliente nunca se recupera de un
|
|
57
|
+
* error de URL/auth/payload mal formado. Se dispara `onError`.
|
|
58
|
+
* 4. Si `5xx` o `fetch` lanza (red caída / abort por timeout) → reintento con
|
|
59
|
+
* backoff exponencial: arranca en `initialBackoffMs`, duplica por intento,
|
|
60
|
+
* techo `maxBackoffMs`, hasta `maxRetries` intentos. Tras el agotamiento
|
|
61
|
+
* el batch se re-bufferiza (o se trimea contra `maxBufferSize`) y se
|
|
62
|
+
* dispara `onError` con `droppedCount`.
|
|
63
|
+
*
|
|
64
|
+
* El body por defecto es el envelope JSON `{ logs: TransportRecord[] }`.
|
|
65
|
+
* Para cambiar el wire format, sobrescribe los hooks `protected`
|
|
66
|
+
* {@link HttpTransport.serializeBody} y {@link HttpTransport.buildHeaders}
|
|
67
|
+
* (referencia: {@link OtlpTransport}).
|
|
68
|
+
*
|
|
69
|
+
* Extender esta clase es la vía recomendada para shippear un transport
|
|
70
|
+
* nuevo orientado a HTTP.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // Registro en un logger
|
|
74
|
+
* import logger from '@mks2508/better-logger';
|
|
75
|
+
* import { HttpTransport } from '@mks2508/better-logger/transports';
|
|
76
|
+
*
|
|
77
|
+
* logger.addTransport({
|
|
78
|
+
* target: new HttpTransport({
|
|
79
|
+
* url: 'https://logs.example.com/ingest',
|
|
80
|
+
* flushInterval: 5_000,
|
|
81
|
+
* batchSize: 100,
|
|
82
|
+
* onError: (entry) => console.error('[log-drop]', entry.message)
|
|
83
|
+
* })
|
|
84
|
+
* });
|
|
85
|
+
*
|
|
86
|
+
* @see {@link HttpTransportOptions}
|
|
87
|
+
* @see {@link OtlpTransport}
|
|
88
|
+
*/
|
|
89
|
+
export declare class HttpTransport implements IBufferedTransport {
|
|
90
|
+
/** Identificador del transport. Los loggers lo usan para lookup, dedup y logs de diagnóstico. */
|
|
91
|
+
readonly name: string;
|
|
92
|
+
private buffer;
|
|
93
|
+
private flushTimer?;
|
|
94
|
+
private closed;
|
|
95
|
+
/** Bag de options — `protected` para que subclasses (ej. {@link OtlpTransport}) puedan leerlo o extenderlo. */
|
|
96
|
+
protected options: HttpTransportOptions;
|
|
97
|
+
/**
|
|
98
|
+
* Crea una instancia de {@link HttpTransport}.
|
|
99
|
+
*
|
|
100
|
+
* Los campos omitidos en `options` se rellenan con defaults sensatos
|
|
101
|
+
* (`batchSize=50`, `maxBufferSize=10_000`, `maxRetries=3`,
|
|
102
|
+
* `initialBackoffMs=250`, `maxBackoffMs=5_000`, `fetchTimeoutMs=10_000`).
|
|
103
|
+
* Si se pasa `flushInterval`, arranca un `setInterval` que flushea cada
|
|
104
|
+
* N ms; si se omite, el flush solo dispara por llenado de `batchSize`.
|
|
105
|
+
*
|
|
106
|
+
* @param {HttpTransportOptions} [options] - Configuración opcional. Si se omite por completo, el transport queda inactivo hasta que se setee `options.url` por otra vía (subclasses).
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* const t = new HttpTransport({
|
|
110
|
+
* url: 'https://logs.example.com/ingest',
|
|
111
|
+
* flushInterval: 5_000
|
|
112
|
+
* });
|
|
113
|
+
*/
|
|
114
|
+
constructor(options?: HttpTransportOptions);
|
|
115
|
+
/** Records actualmente encolados esperando el próximo flush. */
|
|
116
|
+
get bufferSize(): number;
|
|
117
|
+
/** Capacidad máxima del buffer. Al superarla, el registro más viejo se dropea y se notifica vía `onError`. */
|
|
118
|
+
get maxBufferSize(): number;
|
|
119
|
+
/**
|
|
120
|
+
* Indica si el transport está listo para aceptar y entregar records.
|
|
121
|
+
* Devuelve `false` tras {@link close} o si no se configuró `url`.
|
|
122
|
+
*
|
|
123
|
+
* @returns {boolean} `true` si el transport puede enviar.
|
|
124
|
+
*/
|
|
125
|
+
isReady(): boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Encola un record en el buffer. Si el buffer está lleno, aplica la
|
|
128
|
+
* política de overflow (dropea el más viejo + dispara `onError`). Si tras
|
|
129
|
+
* el push se alcanza `batchSize`, dispara un flush asíncrono (sin await).
|
|
130
|
+
*
|
|
131
|
+
* No-op si el transport ya fue cerrado ({@link close}).
|
|
132
|
+
*
|
|
133
|
+
* @param {TransportRecord} record - Registro a encolar.
|
|
134
|
+
*/
|
|
135
|
+
write(record: TransportRecord): void;
|
|
136
|
+
/**
|
|
137
|
+
* Serializa un batch al body de la request. Las subclasses sobrescriben
|
|
138
|
+
* para cambiar la codificación (ej. {@link OtlpTransport} produce OTLP/HTTP
|
|
139
|
+
* JSON en vez del envelope default `{ logs: [...] }`).
|
|
140
|
+
*
|
|
141
|
+
*/
|
|
142
|
+
protected serializeBody(records: TransportRecord[]): string;
|
|
143
|
+
/**
|
|
144
|
+
* Construye los headers de la request. Las subclasses pueden prependear
|
|
145
|
+
* headers transport-specific (ej. `signoz-ingestion-key`).
|
|
146
|
+
*
|
|
147
|
+
*/
|
|
148
|
+
protected buildHeaders(): Record<string, string>;
|
|
149
|
+
private applyOverflowPolicy;
|
|
150
|
+
/**
|
|
151
|
+
* Flushea el buffer actual: toma un snapshot de los records pendientes,
|
|
152
|
+
* los envía con retry/backoff vía `sendWithRetry`, y ante fallo los
|
|
153
|
+
* re-bufferiza preservando el orden. Si la re-bufferización excede
|
|
154
|
+
* `maxBufferSize`, trimea los más viejos y dispara `onError` con
|
|
155
|
+
* `droppedCount`.
|
|
156
|
+
*
|
|
157
|
+
* No-op si el transport está cerrado, el buffer está vacío o no hay
|
|
158
|
+
* `url` configurada.
|
|
159
|
+
*
|
|
160
|
+
* @returns {Promise<void>} Resuelve cuando el intento de entrega del batch actual terminó (success, drop definitivo o no-op).
|
|
161
|
+
*
|
|
162
|
+
* @see {@link HttpTransportOptions.onError}
|
|
163
|
+
*/
|
|
164
|
+
flush(): Promise<void>;
|
|
165
|
+
private sendWithRetry;
|
|
166
|
+
/**
|
|
167
|
+
* Cierra el transport: marca el flag `closed`, detiene el timer de
|
|
168
|
+
* `flushInterval` si estaba corriendo, y ejecuta un flush final para
|
|
169
|
+
* entregar lo pendiente.
|
|
170
|
+
*
|
|
171
|
+
* Tras `close()`, todo {@link write} posterior es no-op y
|
|
172
|
+
* {@link isReady} devuelve `false`.
|
|
173
|
+
*
|
|
174
|
+
* @returns {Promise<void>} Resuelve cuando el flush final termina.
|
|
175
|
+
*
|
|
176
|
+
* @see {@link flush}
|
|
177
|
+
*/
|
|
178
|
+
close(): Promise<void>;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=HttpTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/HttpTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,gBAAgB,EAEhB,kBAAkB,EAElB,YAAY,EACf,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACpD,iGAAiG;IACjG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IAE/B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,MAAM,CAAS;IAEvB,+GAA+G;IAC/G,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;IAExC;;;;;;;;;;;;;;;;OAgBG;gBACS,OAAO,CAAC,EAAE,oBAAoB;IAkB1C,gEAAgE;IAChE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,8GAA8G;IAC9G,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAepC;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAI3D;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOhD,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;;;;;;;;OAaG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCd,aAAa;IA4E3B;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { TransportRecord, HookLogEntry } from '../types/index.js';
|
|
2
|
+
import { HttpTransport } from './HttpTransport.js';
|
|
3
|
+
/**
|
|
4
|
+
* Opciones de configuración para {@link OtlpTransport}.
|
|
5
|
+
*/
|
|
6
|
+
export interface OtlpTransportOptions {
|
|
7
|
+
/**
|
|
8
|
+
* URL base del collector OTLP/HTTP, p.ej. `https://collector.example.com:4318`.
|
|
9
|
+
* El transport hace POST a `<endpoint>/v1/logs`.
|
|
10
|
+
*/
|
|
11
|
+
endpoint: string;
|
|
12
|
+
/** Atributo de resource `service.name`. Requerido por la spec OTel. */
|
|
13
|
+
serviceName: string;
|
|
14
|
+
/** Atributo de resource `service.version`. Recomendado. */
|
|
15
|
+
serviceVersion?: string;
|
|
16
|
+
/** Atributo de resource `deployment.environment` (production/staging/dev). */
|
|
17
|
+
environment?: string;
|
|
18
|
+
/** Atributos de resource adicionales que se merguean en el bloque `resource`. */
|
|
19
|
+
resourceAttributes?: Record<string, string>;
|
|
20
|
+
/**
|
|
21
|
+
* Nombre de la env var cuyo valor se envía como header
|
|
22
|
+
* `signoz-ingestion-key`. El transport lee `process.env[ingestKeyEnvVar]`
|
|
23
|
+
* al construirse — nunca desde un string literal. Si la env var no está
|
|
24
|
+
* seteada, el header se omite silenciosamente (el collector OTLP usa el
|
|
25
|
+
* path default sin auth).
|
|
26
|
+
*/
|
|
27
|
+
ingestKeyEnvVar?: string;
|
|
28
|
+
/** Headers extra que se merguean (Authorization, X-* custom). */
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
/** Tamaño del batch (records por POST). Default 50. */
|
|
31
|
+
batchSize?: number;
|
|
32
|
+
/** Intervalo de flush en ms. */
|
|
33
|
+
flushInterval?: number;
|
|
34
|
+
/** Tope duro de records bufferizados. Default 10_000. */
|
|
35
|
+
maxBufferSize?: number;
|
|
36
|
+
/** Reintentos máximos por batch. Default 3. */
|
|
37
|
+
maxRetries?: number;
|
|
38
|
+
/** Backoff inicial en ms. Default 250. */
|
|
39
|
+
initialBackoffMs?: number;
|
|
40
|
+
/** Techo de backoff en ms. Default 5_000. */
|
|
41
|
+
maxBackoffMs?: number;
|
|
42
|
+
/** Timeout por fetch en ms. Default 10_000. */
|
|
43
|
+
fetchTimeoutMs?: number;
|
|
44
|
+
/** Hook que se dispara ante falla del transport (drop, agotamiento de reintentos, ...). */
|
|
45
|
+
onError?: (entry: HookLogEntry) => void | Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Shape del body JSON de un request OTLP/HTTP. Coincide con el JSON mapping
|
|
49
|
+
* del proto `LogsData` para `/v1/logs`. Ver
|
|
50
|
+
* https://opentelemetry.io/docs/specs/otlp/#json-protobuf-encoding
|
|
51
|
+
*/
|
|
52
|
+
interface OtlpLogsPayload {
|
|
53
|
+
resourceLogs: Array<{
|
|
54
|
+
resource: {
|
|
55
|
+
attributes: Array<{
|
|
56
|
+
key: string;
|
|
57
|
+
value: {
|
|
58
|
+
stringValue: string;
|
|
59
|
+
};
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
scopeLogs: Array<{
|
|
63
|
+
scope: {
|
|
64
|
+
name: string;
|
|
65
|
+
version: string;
|
|
66
|
+
};
|
|
67
|
+
logRecords: Array<OtlpLogRecord>;
|
|
68
|
+
}>;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Registro individual de log dentro del payload OTLP. Mappea mensaje,
|
|
73
|
+
* severidad, timestamp (en nanosegundos), atributos y contexto de trace al
|
|
74
|
+
* formato `LogRecord` definido por la spec OTel Logs.
|
|
75
|
+
* @see https://opentelemetry.io/docs/specs/otel/logs/data-model/
|
|
76
|
+
*/
|
|
77
|
+
interface OtlpLogRecord {
|
|
78
|
+
timeUnixNano: string;
|
|
79
|
+
observedTimeUnixNano: string;
|
|
80
|
+
severityNumber: number;
|
|
81
|
+
severityText: string;
|
|
82
|
+
body: {
|
|
83
|
+
stringValue: string;
|
|
84
|
+
};
|
|
85
|
+
attributes?: Array<{
|
|
86
|
+
key: string;
|
|
87
|
+
value: OtlpAttributeValue;
|
|
88
|
+
}>;
|
|
89
|
+
traceId?: string;
|
|
90
|
+
spanId?: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Unión discriminada que representa un `AnyValue` de OTel para atributos de
|
|
94
|
+
* log. Soporta string, int, double, bool y arrays anidados (homogéneos o
|
|
95
|
+
* mixtos).
|
|
96
|
+
* @see https://opentelemetry.io/docs/specs/otel/common/
|
|
97
|
+
*/
|
|
98
|
+
type OtlpAttributeValue = {
|
|
99
|
+
stringValue: string;
|
|
100
|
+
} | {
|
|
101
|
+
intValue: number;
|
|
102
|
+
} | {
|
|
103
|
+
doubleValue: number;
|
|
104
|
+
} | {
|
|
105
|
+
boolValue: boolean;
|
|
106
|
+
} | {
|
|
107
|
+
arrayValue: {
|
|
108
|
+
values: OtlpAttributeValue[];
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Transport OTLP/HTTP para SigNoz (o cualquier backend compatible con OTLP).
|
|
113
|
+
*
|
|
114
|
+
* Extiende {@link HttpTransport} — hereda retry, buffer acotado, status check,
|
|
115
|
+
* close asincrónico y el hook on-error. Overridea únicamente la shape del
|
|
116
|
+
* payload y los headers del request.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* logger.addTransport({
|
|
121
|
+
* target: new OtlpTransport({
|
|
122
|
+
* endpoint: 'https://otelcollector.example.com:4318',
|
|
123
|
+
* serviceName: 'my-app',
|
|
124
|
+
* serviceVersion: '1.2.3',
|
|
125
|
+
* environment: 'production',
|
|
126
|
+
* ingestKeyEnvVar: 'SIGNOZ_KEY'
|
|
127
|
+
* })
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export declare class OtlpTransport extends HttpTransport {
|
|
132
|
+
readonly name = "otlp";
|
|
133
|
+
private readonly resource;
|
|
134
|
+
/** Resuelto al construir. Nunca se loguea, nunca se escribe a source. */
|
|
135
|
+
private readonly ingestKeyValue;
|
|
136
|
+
constructor(options: OtlpTransportOptions);
|
|
137
|
+
/**
|
|
138
|
+
* Construye el payload JSON OTLP/HTTP a partir de los records bufferizados.
|
|
139
|
+
* Un bloque `resourceLogs` por batch (sigue la guía de batching del
|
|
140
|
+
* collector OTel). Expuesto para tests y para subclasses custom de transport.
|
|
141
|
+
*
|
|
142
|
+
* @param records - Records de log a serializar dentro del payload.
|
|
143
|
+
* @returns Objeto `LogsData` listo para `JSON.stringify`.
|
|
144
|
+
* @see {@link OtlpLogsPayload}
|
|
145
|
+
*/
|
|
146
|
+
buildPayload(records: TransportRecord[]): OtlpLogsPayload;
|
|
147
|
+
/**
|
|
148
|
+
* Serializa un batch al body JSON del request OTLP/HTTP. Override de
|
|
149
|
+
* {@link HttpTransport.serializeBody}.
|
|
150
|
+
*
|
|
151
|
+
* @param records - Records del batch a serializar.
|
|
152
|
+
* @returns String JSON listo para usar como `body` del fetch POST.
|
|
153
|
+
*/
|
|
154
|
+
protected serializeBody(records: TransportRecord[]): string;
|
|
155
|
+
/**
|
|
156
|
+
* Construye los headers del request. Agrega `signoz-ingestion-key` con el
|
|
157
|
+
* valor resuelto al construir (nunca se loguea, nunca se escribe a source).
|
|
158
|
+
*
|
|
159
|
+
* @returns Record de headers a merguear en el fetch.
|
|
160
|
+
*/
|
|
161
|
+
protected buildHeaders(): Record<string, string>;
|
|
162
|
+
private toLogRecord;
|
|
163
|
+
}
|
|
164
|
+
export {};
|
|
165
|
+
//# sourceMappingURL=OtlpTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpTransport.d.ts","sourceRoot":"","sources":["../../src/transports/OtlpTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED;;;;GAIG;AACH,UAAU,eAAe;IACrB,YAAY,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE;YACN,UAAU,EAAE,KAAK,CAAC;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE;oBAAE,WAAW,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACtE,CAAC;QACF,SAAS,EAAE,KAAK,CAAC;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,MAAM,CAAC;gBACb,OAAO,EAAE,MAAM,CAAC;aACnB,CAAC;YACF,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;SACpC,CAAC,CAAC;KACN,CAAC,CAAC;CACN;AAED;;;;;GAKG;AACH,UAAU,aAAa;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,KAAK,kBAAkB,GACjB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GACtB;IAAE,UAAU,EAAE;QAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC5C,SAAkB,IAAI,UAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,oBAAoB;IAqCzC;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe;IAuBzD;;;;;;OAMG;cACgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAIpE;;;;;OAKG;cACgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQzD,OAAO,CAAC,WAAW;CAuBtB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview TransportBridge — facade de TransportManager.
|
|
3
|
+
* Encapsula el lifecycle de transports: add, remove, flush, close.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
import type { TransportTarget } from '../types/index.js';
|
|
8
|
+
import { TransportManager } from '../transports/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resultado de añadir un transport.
|
|
11
|
+
*/
|
|
12
|
+
export interface AddTransportResult {
|
|
13
|
+
/** ID único del transport. */
|
|
14
|
+
id: string;
|
|
15
|
+
/** La instancia de TransportManager (creada al primer add). */
|
|
16
|
+
manager: TransportManager;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Bridge para la gestión del lifecycle de transports.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export interface TransportBridge {
|
|
24
|
+
/** Añade un transport y devuelve su ID. */
|
|
25
|
+
addTransport(target: TransportTarget): string;
|
|
26
|
+
/** Elimina un transport por ID. Devuelve `true` si se eliminó. */
|
|
27
|
+
removeTransport(id: string): boolean;
|
|
28
|
+
/** Fuerza el flush de todos los buffers de transports. */
|
|
29
|
+
flushTransports(): Promise<void>;
|
|
30
|
+
/** Cierra todos los transports de forma graceful. */
|
|
31
|
+
closeTransports(): Promise<void>;
|
|
32
|
+
/** Devuelve el manager subyacente (o `undefined` si nunca se usó). */
|
|
33
|
+
getTransportManager(): TransportManager | undefined;
|
|
34
|
+
/** Escribe un transport record (fire-and-forget). No-op si el manager no está inicializado. */
|
|
35
|
+
writeRecord(record: Parameters<TransportManager['write']>[0]): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Crea una instancia de {@link TransportBridge}.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function createTransportBridge(): TransportBridge;
|
|
43
|
+
//# sourceMappingURL=TransportBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportBridge.d.ts","sourceRoot":"","sources":["../../src/transports/TransportBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IAC9C,kEAAkE;IAClE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,0DAA0D;IAC1D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,qDAAqD;IACrD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,sEAAsE;IACtE,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACpD,+FAA+F;IAC/F,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAiCvD"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import type { TransportRecord, TransportTarget, TransportOptions, ITransport, ITransportManager, LogLevel } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Firma del constructor de los transports registrados en el registry
|
|
4
|
+
* built-in. Acepta el tipo propio de options del transport; el pass-through
|
|
5
|
+
* se enforcea en registro vía TypeScript pero se borra en runtime.
|
|
6
|
+
*/
|
|
7
|
+
export type TransportConstructor = new (options?: TransportOptions) => ITransport;
|
|
8
|
+
/**
|
|
9
|
+
* Registry y dispatcher de transports. Mantiene el set activo de destinos
|
|
10
|
+
* de log (console, file, http, otlp, o transports custom registrados vía
|
|
11
|
+
* {@link TransportManager.register}) y les dispatcha cada
|
|
12
|
+
* {@link TransportRecord} producido por el Logger.
|
|
13
|
+
*
|
|
14
|
+
* Cada transport added se identifica por un `id` opaco (generado por la
|
|
15
|
+
* propia instancia) que devuelven {@link add} y {@link list}, y que acepta
|
|
16
|
+
* {@link remove}. El registry arranca con los cuatro built-ins
|
|
17
|
+
* (`console` / `file` / `http` / `otlp`) ya cargados; {@link register}
|
|
18
|
+
* añade customs sin poder sobreescribir los built-ins (lanza).
|
|
19
|
+
*
|
|
20
|
+
* El dispatch ({@link write}) aplica el filtro de `level` por transport y
|
|
21
|
+
* el `transform` opcional de {@link TransportOptions}, y captura toda
|
|
22
|
+
* excepción / rechazo de cada transport para que un transport roto nunca
|
|
23
|
+
* rompa el log call del caller. El propio Logger habla con el manager a
|
|
24
|
+
* través del facade {@link TransportBridge} (ver
|
|
25
|
+
* `Logger.addTransport` / `Logger.getTransportManager`).
|
|
26
|
+
*
|
|
27
|
+
* Implementa {@link ITransportManager}.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Manager con nivel default y transports añadidos por nombre
|
|
31
|
+
* const tm = new TransportManager('info');
|
|
32
|
+
* tm.add({ target: 'console' });
|
|
33
|
+
* tm.add({ target: 'file', options: { path: './app.log' } });
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Registrar un transport custom y usarlo por nombre
|
|
37
|
+
* tm.register('datadog', DatadogTransport);
|
|
38
|
+
* tm.add({ target: 'datadog', options: { apiKey: env('DD_KEY') } });
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* // Pasar una instancia de ITransport directamente (sin pasar por registry)
|
|
42
|
+
* tm.add({ target: new MyTransport(), level: 'warn' });
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Dispatch + ciclo de vida
|
|
46
|
+
* await tm.write(record);
|
|
47
|
+
* await tm.flush(); // flusha todos los buffered
|
|
48
|
+
* await tm.close(); // flush + close + clear
|
|
49
|
+
*
|
|
50
|
+
* @see {@link ITransportManager}
|
|
51
|
+
* @see {@link TransportTarget}
|
|
52
|
+
* @see {@link TransportBridge}
|
|
53
|
+
*/
|
|
54
|
+
export declare class TransportManager implements ITransportManager {
|
|
55
|
+
private transports;
|
|
56
|
+
private defaultLevel;
|
|
57
|
+
private readonly registry;
|
|
58
|
+
/**
|
|
59
|
+
* Crea un nuevo manager.
|
|
60
|
+
*
|
|
61
|
+
* @param {LogLevel} [defaultLevel='info'] - Nivel mínimo por defecto
|
|
62
|
+
* para transports añadidos sin `level` explícito en su
|
|
63
|
+
* {@link TransportTarget}. Records con `levelValue` inferior al del
|
|
64
|
+
* transport se descartan en {@link write}.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const tm = new TransportManager('debug'); // todo pasa salvo filter propio
|
|
68
|
+
*/
|
|
69
|
+
constructor(defaultLevel?: LogLevel);
|
|
70
|
+
/**
|
|
71
|
+
* Registra un constructor de transport bajo un nombre string. Tras el
|
|
72
|
+
* registro, `add({ target: name, options })` instancia ese transport con
|
|
73
|
+
* las options pasadas.
|
|
74
|
+
*
|
|
75
|
+
* No se puede sobreescribir un built-in (`console` / `file` / `http` /
|
|
76
|
+
* `otlp`): lanza para evitar silenciar un transport crítico por un
|
|
77
|
+
* accidente de naming. El registro es por-instancia (no comparte entre
|
|
78
|
+
* managers).
|
|
79
|
+
*
|
|
80
|
+
* @param {string} name - Nombre bajo el que registrar (usado luego como
|
|
81
|
+
* `target` en {@link TransportTarget}).
|
|
82
|
+
* @param {TransportConstructor} ctor - Constructor que acepta
|
|
83
|
+
* {@link TransportOptions} y devuelve un {@link ITransport}.
|
|
84
|
+
* @throws {Error} Si `name` colisiona con un built-in del registry.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* tm.register('datadog', DatadogTransport);
|
|
88
|
+
* tm.add({ target: 'datadog', options: { apiKey: env('DD_KEY') } });
|
|
89
|
+
*
|
|
90
|
+
* @see {@link listRegistered}
|
|
91
|
+
*/
|
|
92
|
+
register(name: string, ctor: TransportConstructor): void;
|
|
93
|
+
/**
|
|
94
|
+
* Lista los nombres de transports registrados en esta instancia
|
|
95
|
+
* (built-ins + customs añadidos vía {@link register}).
|
|
96
|
+
*
|
|
97
|
+
* @returns {string[]} Nombres registrados. Incluye siempre los cuatro
|
|
98
|
+
* built-ins.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* tm.register('loki', LokiTransport);
|
|
102
|
+
* tm.listRegistered(); // ['console', 'file', 'http', 'otlp', 'loki']
|
|
103
|
+
*/
|
|
104
|
+
listRegistered(): string[];
|
|
105
|
+
/**
|
|
106
|
+
* Añade un transport al set activo y devuelve su id opaco.
|
|
107
|
+
*
|
|
108
|
+
* Acepta dos formas de `target`:
|
|
109
|
+
* - **string**: se resuelve contra el registry (built-ins + customs
|
|
110
|
+
* vía {@link register}). Lanza si el nombre no existe, listando los
|
|
111
|
+
* registrados para facilitar el debug.
|
|
112
|
+
* - **ITransport instancia**: se registra tal cual, sin pasar por el
|
|
113
|
+
* registry. Útil para transports one-off o cuya configuración no
|
|
114
|
+
* encaja en un constructor reutilizable.
|
|
115
|
+
*
|
|
116
|
+
* El `level` (explícito en el target o `defaultLevel` del manager) fija
|
|
117
|
+
* el filtro por transport — los records con `levelValue` inferior se
|
|
118
|
+
* descartan en {@link write}. El `transform` opcional de
|
|
119
|
+
* {@link TransportOptions} se aplica por transport antes de delegar al
|
|
120
|
+
* `write` concreto.
|
|
121
|
+
*
|
|
122
|
+
* @param {TransportTarget} target - Especificación del transport a añadir.
|
|
123
|
+
* @returns {string} Id opaco del transport añadido. Úsalo con
|
|
124
|
+
* {@link remove}; aparece en {@link list}.
|
|
125
|
+
* @throws {Error} Si `target.target` es un string no presente en el
|
|
126
|
+
* registry.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* // Por nombre (built-in o custom registrado)
|
|
130
|
+
* const id = tm.add({ target: 'console' });
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* // Instancia directa con nivel y transform propios
|
|
134
|
+
* const id = tm.add({
|
|
135
|
+
* target: new MyTransport(),
|
|
136
|
+
* level: 'warn',
|
|
137
|
+
* options: { transform: r => r.level === 'debug' ? null : r }
|
|
138
|
+
* });
|
|
139
|
+
*
|
|
140
|
+
* @see {@link TransportTarget}
|
|
141
|
+
*/
|
|
142
|
+
add(target: TransportTarget): string;
|
|
143
|
+
/**
|
|
144
|
+
* Elimina un transport del set por su id. Si el transport expone
|
|
145
|
+
* `close()`, lo invoca para liberar recursos (timers, sockets, file
|
|
146
|
+
* handles). Si `close()` devuelve una Promise, su eventual rechazo se
|
|
147
|
+
* ignora de forma best-effort — los errores de close durante la
|
|
148
|
+
* remoción no se propagan al caller.
|
|
149
|
+
*
|
|
150
|
+
* @param {string} id - Id devuelto por {@link add}.
|
|
151
|
+
* @returns {boolean} `true` si había un transport con ese id (y se
|
|
152
|
+
* eliminó), `false` si el id no existía.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* const id = tm.add({ target: 'file', options: { path: './app.log' } });
|
|
156
|
+
* tm.remove(id); // true — FileTransport.close() se invoca
|
|
157
|
+
*/
|
|
158
|
+
remove(id: string): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Dispatcha un {@link TransportRecord} a todos los transports activos
|
|
161
|
+
* que pasen el filtro de nivel.
|
|
162
|
+
*
|
|
163
|
+
* Por cada transport, en orden:
|
|
164
|
+
* 1. **Filtro de nivel**: si `record.levelValue < entry.levelValue`,
|
|
165
|
+
* se skipa (ese transport no recibe este record).
|
|
166
|
+
* 2. **Transform**: si `entry.options.transform` está seteado, se
|
|
167
|
+
* aplica al record. Si devuelve `null`, el record se droppea para
|
|
168
|
+
* este transport (no para los demás).
|
|
169
|
+
* 3. **Write**: se llama a `transport.write(transformedRecord)`. Si
|
|
170
|
+
* devuelve una Promise, se añade al batch await. Toda excepción
|
|
171
|
+
* sincrónica o rechazo de Promise se captura y se loguea por
|
|
172
|
+
* consola — el log call original del caller nunca rompe por un
|
|
173
|
+
* transport roto.
|
|
174
|
+
*
|
|
175
|
+
* El método es async: retorna después de que todos los transports hayan
|
|
176
|
+
* resuelto (o fallado) su write. Para fire-and-forget desde el Logger,
|
|
177
|
+
* el caller puede ignorar la Promise.
|
|
178
|
+
*
|
|
179
|
+
* @param {TransportRecord} record - Record a dispatchar.
|
|
180
|
+
* @returns {Promise<void>} Resuelve cuando todos los writes terminaron
|
|
181
|
+
* (exitosos o fallidos). Nunca rechaza.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* await tm.write({
|
|
185
|
+
* level: 'info', levelValue: 1, severityNumber: 9, severityText: 'INFO',
|
|
186
|
+
* time: Date.now(), msg: 'boot ok'
|
|
187
|
+
* });
|
|
188
|
+
*
|
|
189
|
+
* @see {@link TransportRecord}
|
|
190
|
+
*/
|
|
191
|
+
write(record: TransportRecord): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Flushea todos los transports que expongan `flush()` (buffered transports
|
|
194
|
+
* como {@link HttpTransport}, {@link FileTransport}, {@link OtlpTransport}).
|
|
195
|
+
* Los transports sin `flush()` (p.ej. {@link ConsoleTransport}) se
|
|
196
|
+
* skipan sin error.
|
|
197
|
+
*
|
|
198
|
+
* Errores de flush (sync throw o Promise rejection) se capturan y
|
|
199
|
+
* loguean por consola — nunca propagan al caller. Útil para forzar el
|
|
200
|
+
* envío del batch pendiente antes de un graceful shutdown.
|
|
201
|
+
*
|
|
202
|
+
* @returns {Promise<void>} Resuelve cuando todos los flushes terminaron.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* await tm.flush();
|
|
206
|
+
*/
|
|
207
|
+
flush(): Promise<void>;
|
|
208
|
+
/**
|
|
209
|
+
* Shutdown ordenado: flushea todos los transports buffered, luego
|
|
210
|
+
* invoca `close()` en cada uno, y finalmente limpia el set interno.
|
|
211
|
+
* Tras esto la instancia queda sin transports — reusarla requiere
|
|
212
|
+
* `add()` de nuevo.
|
|
213
|
+
*
|
|
214
|
+
* Los errores de close (sync throw o Promise rejection) se capturan y
|
|
215
|
+
* loguean — nunca propagan al caller.
|
|
216
|
+
*
|
|
217
|
+
* @returns {Promise<void>} Resuelve cuando flush + close de todos los
|
|
218
|
+
* transports terminaron.
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* // Shutdown limpio del proceso
|
|
222
|
+
* process.on('SIGTERM', async () => {
|
|
223
|
+
* await logger.getTransportManager()?.close();
|
|
224
|
+
* process.exit(0);
|
|
225
|
+
* });
|
|
226
|
+
*/
|
|
227
|
+
close(): Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Número de transports actualmente en el set activo.
|
|
230
|
+
*
|
|
231
|
+
* @returns {number}
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* if (tm.count === 0) console.warn('no transports configured');
|
|
235
|
+
*/
|
|
236
|
+
get count(): number;
|
|
237
|
+
/**
|
|
238
|
+
* Lista los ids opacos de los transports actualmente activos.
|
|
239
|
+
*
|
|
240
|
+
* @returns {string[]} Array de ids (mismo formato opaco que devolvió
|
|
241
|
+
* {@link add}).
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* for (const id of tm.list()) {
|
|
245
|
+
* console.log('removing transport', id);
|
|
246
|
+
* tm.remove(id);
|
|
247
|
+
* }
|
|
248
|
+
*/
|
|
249
|
+
list(): string[];
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=TransportManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportManager.d.ts","sourceRoot":"","sources":["../../src/transports/TransportManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACX,MAAM,mBAAmB,CAAC;AAmB3B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,OAAO,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAuClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IAEzF;;;;;;;;;;OAUG;gBACS,YAAY,CAAC,EAAE,QAAQ;IAMnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAOxD;;;;;;;;;;OAUG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IA+BpC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAc3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;;;;;;;;;;;;;OAcG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,IAAI,MAAM,EAAE;CAGnB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { TransportManager } from './TransportManager.js';
|
|
2
|
+
export { ConsoleTransport } from './ConsoleTransport.js';
|
|
3
|
+
export { FileTransport, type FileTransportOptions } from './FileTransport.js';
|
|
4
|
+
export { HttpTransport, type HttpTransportOptions } from './HttpTransport.js';
|
|
5
|
+
export { OtlpTransport, type OtlpTransportOptions } from './OtlpTransport.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|