lograil 0.1.0
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/CHANGELOG.md +38 -0
- package/LICENSE +21 -0
- package/README.md +40 -0
- package/dist/cjs/context/async-context.browser.d.ts +16 -0
- package/dist/cjs/context/async-context.browser.d.ts.map +1 -0
- package/dist/cjs/context/async-context.browser.js +29 -0
- package/dist/cjs/context/async-context.browser.js.map +1 -0
- package/dist/cjs/context/async-context.d.ts +10 -0
- package/dist/cjs/context/async-context.d.ts.map +1 -0
- package/dist/cjs/context/async-context.js +37 -0
- package/dist/cjs/context/async-context.js.map +1 -0
- package/dist/cjs/context/context.d.ts +33 -0
- package/dist/cjs/context/context.d.ts.map +1 -0
- package/dist/cjs/context/context.js +57 -0
- package/dist/cjs/context/context.js.map +1 -0
- package/dist/cjs/context/index.d.ts +3 -0
- package/dist/cjs/context/index.d.ts.map +1 -0
- package/dist/cjs/context/index.js +19 -0
- package/dist/cjs/context/index.js.map +1 -0
- package/dist/cjs/core/entry.d.ts +30 -0
- package/dist/cjs/core/entry.d.ts.map +1 -0
- package/dist/cjs/core/entry.js +37 -0
- package/dist/cjs/core/entry.js.map +1 -0
- package/dist/cjs/core/index.d.ts +7 -0
- package/dist/cjs/core/index.d.ts.map +1 -0
- package/dist/cjs/core/index.js +24 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/level.d.ts +12 -0
- package/dist/cjs/core/level.d.ts.map +1 -0
- package/dist/cjs/core/level.js +31 -0
- package/dist/cjs/core/level.js.map +1 -0
- package/dist/cjs/core/logger.d.ts +271 -0
- package/dist/cjs/core/logger.d.ts.map +1 -0
- package/dist/cjs/core/logger.js +751 -0
- package/dist/cjs/core/logger.js.map +1 -0
- package/dist/cjs/core/printf.d.ts +34 -0
- package/dist/cjs/core/printf.d.ts.map +1 -0
- package/dist/cjs/core/printf.js +133 -0
- package/dist/cjs/core/printf.js.map +1 -0
- package/dist/cjs/index.d.ts +40 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +56 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/pipeline/filter.d.ts +10 -0
- package/dist/cjs/pipeline/filter.d.ts.map +1 -0
- package/dist/cjs/pipeline/filter.js +16 -0
- package/dist/cjs/pipeline/filter.js.map +1 -0
- package/dist/cjs/pipeline/formatter.d.ts +19 -0
- package/dist/cjs/pipeline/formatter.d.ts.map +1 -0
- package/dist/cjs/pipeline/formatter.js +183 -0
- package/dist/cjs/pipeline/formatter.js.map +1 -0
- package/dist/cjs/pipeline/index.d.ts +6 -0
- package/dist/cjs/pipeline/index.d.ts.map +1 -0
- package/dist/cjs/pipeline/index.js +22 -0
- package/dist/cjs/pipeline/index.js.map +1 -0
- package/dist/cjs/pipeline/pipeline.d.ts +45 -0
- package/dist/cjs/pipeline/pipeline.d.ts.map +1 -0
- package/dist/cjs/pipeline/pipeline.js +80 -0
- package/dist/cjs/pipeline/pipeline.js.map +1 -0
- package/dist/cjs/pipeline/processor.d.ts +67 -0
- package/dist/cjs/pipeline/processor.d.ts.map +1 -0
- package/dist/cjs/pipeline/processor.js +284 -0
- package/dist/cjs/pipeline/processor.js.map +1 -0
- package/dist/cjs/pipeline/sampler.d.ts +45 -0
- package/dist/cjs/pipeline/sampler.d.ts.map +1 -0
- package/dist/cjs/pipeline/sampler.js +62 -0
- package/dist/cjs/pipeline/sampler.js.map +1 -0
- package/dist/cjs/plugin/index.d.ts +4 -0
- package/dist/cjs/plugin/index.d.ts.map +1 -0
- package/dist/cjs/plugin/index.js +20 -0
- package/dist/cjs/plugin/index.js.map +1 -0
- package/dist/cjs/plugin/manager.d.ts +38 -0
- package/dist/cjs/plugin/manager.d.ts.map +1 -0
- package/dist/cjs/plugin/manager.js +79 -0
- package/dist/cjs/plugin/manager.js.map +1 -0
- package/dist/cjs/plugin/otel-trace.d.ts +19 -0
- package/dist/cjs/plugin/otel-trace.d.ts.map +1 -0
- package/dist/cjs/plugin/otel-trace.js +91 -0
- package/dist/cjs/plugin/otel-trace.js.map +1 -0
- package/dist/cjs/plugin/plugin.d.ts +41 -0
- package/dist/cjs/plugin/plugin.d.ts.map +1 -0
- package/dist/cjs/plugin/plugin.js +3 -0
- package/dist/cjs/plugin/plugin.js.map +1 -0
- package/dist/cjs/runtime/adapter.d.ts +81 -0
- package/dist/cjs/runtime/adapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapter.js +3 -0
- package/dist/cjs/runtime/adapter.js.map +1 -0
- package/dist/cjs/runtime/defaults.d.ts +27 -0
- package/dist/cjs/runtime/defaults.d.ts.map +1 -0
- package/dist/cjs/runtime/defaults.js +30 -0
- package/dist/cjs/runtime/defaults.js.map +1 -0
- package/dist/cjs/runtime/electron-binding.browser.d.ts +10 -0
- package/dist/cjs/runtime/electron-binding.browser.d.ts.map +1 -0
- package/dist/cjs/runtime/electron-binding.browser.js +18 -0
- package/dist/cjs/runtime/electron-binding.browser.js.map +1 -0
- package/dist/cjs/runtime/electron-binding.d.ts +24 -0
- package/dist/cjs/runtime/electron-binding.d.ts.map +1 -0
- package/dist/cjs/runtime/electron-binding.js +49 -0
- package/dist/cjs/runtime/electron-binding.js.map +1 -0
- package/dist/cjs/runtime/electron-lifecycle.d.ts +17 -0
- package/dist/cjs/runtime/electron-lifecycle.d.ts.map +1 -0
- package/dist/cjs/runtime/electron-lifecycle.js +47 -0
- package/dist/cjs/runtime/electron-lifecycle.js.map +1 -0
- package/dist/cjs/runtime/electron-main.d.ts +24 -0
- package/dist/cjs/runtime/electron-main.d.ts.map +1 -0
- package/dist/cjs/runtime/electron-main.js +102 -0
- package/dist/cjs/runtime/electron-main.js.map +1 -0
- package/dist/cjs/runtime/electron-renderer.d.ts +26 -0
- package/dist/cjs/runtime/electron-renderer.d.ts.map +1 -0
- package/dist/cjs/runtime/electron-renderer.js +33 -0
- package/dist/cjs/runtime/electron-renderer.js.map +1 -0
- package/dist/cjs/runtime/electron.d.ts +20 -0
- package/dist/cjs/runtime/electron.d.ts.map +1 -0
- package/dist/cjs/runtime/electron.js +27 -0
- package/dist/cjs/runtime/electron.js.map +1 -0
- package/dist/cjs/runtime/index.d.ts +21 -0
- package/dist/cjs/runtime/index.d.ts.map +1 -0
- package/dist/cjs/runtime/index.js +41 -0
- package/dist/cjs/runtime/index.js.map +1 -0
- package/dist/cjs/runtime/node.d.ts +27 -0
- package/dist/cjs/runtime/node.d.ts.map +1 -0
- package/dist/cjs/runtime/node.js +126 -0
- package/dist/cjs/runtime/node.js.map +1 -0
- package/dist/cjs/runtime/process-lifecycle.d.ts +13 -0
- package/dist/cjs/runtime/process-lifecycle.d.ts.map +1 -0
- package/dist/cjs/runtime/process-lifecycle.js +80 -0
- package/dist/cjs/runtime/process-lifecycle.js.map +1 -0
- package/dist/cjs/runtime/web-lifecycle.d.ts +13 -0
- package/dist/cjs/runtime/web-lifecycle.d.ts.map +1 -0
- package/dist/cjs/runtime/web-lifecycle.js +39 -0
- package/dist/cjs/runtime/web-lifecycle.js.map +1 -0
- package/dist/cjs/runtime/web.d.ts +14 -0
- package/dist/cjs/runtime/web.d.ts.map +1 -0
- package/dist/cjs/runtime/web.js +61 -0
- package/dist/cjs/runtime/web.js.map +1 -0
- package/dist/cjs/shims/index.browser.d.ts +26 -0
- package/dist/cjs/shims/index.browser.d.ts.map +1 -0
- package/dist/cjs/shims/index.browser.js +67 -0
- package/dist/cjs/shims/index.browser.js.map +1 -0
- package/dist/cjs/shims/index.d.ts +15 -0
- package/dist/cjs/shims/index.d.ts.map +1 -0
- package/dist/cjs/shims/index.js +39 -0
- package/dist/cjs/shims/index.js.map +1 -0
- package/dist/cjs/transport/cluster-ipc.d.ts +36 -0
- package/dist/cjs/transport/cluster-ipc.d.ts.map +1 -0
- package/dist/cjs/transport/cluster-ipc.js +76 -0
- package/dist/cjs/transport/cluster-ipc.js.map +1 -0
- package/dist/cjs/transport/console.d.ts +28 -0
- package/dist/cjs/transport/console.d.ts.map +1 -0
- package/dist/cjs/transport/console.js +48 -0
- package/dist/cjs/transport/console.js.map +1 -0
- package/dist/cjs/transport/electron-ipc.d.ts +69 -0
- package/dist/cjs/transport/electron-ipc.d.ts.map +1 -0
- package/dist/cjs/transport/electron-ipc.js +153 -0
- package/dist/cjs/transport/electron-ipc.js.map +1 -0
- package/dist/cjs/transport/file.d.ts +190 -0
- package/dist/cjs/transport/file.d.ts.map +1 -0
- package/dist/cjs/transport/file.js +666 -0
- package/dist/cjs/transport/file.js.map +1 -0
- package/dist/cjs/transport/index.d.ts +9 -0
- package/dist/cjs/transport/index.d.ts.map +1 -0
- package/dist/cjs/transport/index.js +25 -0
- package/dist/cjs/transport/index.js.map +1 -0
- package/dist/cjs/transport/live.d.ts +72 -0
- package/dist/cjs/transport/live.d.ts.map +1 -0
- package/dist/cjs/transport/live.js +104 -0
- package/dist/cjs/transport/live.js.map +1 -0
- package/dist/cjs/transport/otlp.d.ts +97 -0
- package/dist/cjs/transport/otlp.d.ts.map +1 -0
- package/dist/cjs/transport/otlp.js +194 -0
- package/dist/cjs/transport/otlp.js.map +1 -0
- package/dist/cjs/transport/rotating-file.d.ts +67 -0
- package/dist/cjs/transport/rotating-file.d.ts.map +1 -0
- package/dist/cjs/transport/rotating-file.js +179 -0
- package/dist/cjs/transport/rotating-file.js.map +1 -0
- package/dist/cjs/transport/transport.d.ts +35 -0
- package/dist/cjs/transport/transport.d.ts.map +1 -0
- package/dist/cjs/transport/transport.js +3 -0
- package/dist/cjs/transport/transport.js.map +1 -0
- package/dist/cjs/transport/worker-ipc.d.ts +43 -0
- package/dist/cjs/transport/worker-ipc.d.ts.map +1 -0
- package/dist/cjs/transport/worker-ipc.js +106 -0
- package/dist/cjs/transport/worker-ipc.js.map +1 -0
- package/dist/cjs/types.d.ts +72 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +45 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/context/async-context.browser.d.ts +16 -0
- package/dist/esm/context/async-context.browser.d.ts.map +1 -0
- package/dist/esm/context/async-context.browser.js +25 -0
- package/dist/esm/context/async-context.browser.js.map +1 -0
- package/dist/esm/context/async-context.d.ts +10 -0
- package/dist/esm/context/async-context.d.ts.map +1 -0
- package/dist/esm/context/async-context.js +33 -0
- package/dist/esm/context/async-context.js.map +1 -0
- package/dist/esm/context/context.d.ts +33 -0
- package/dist/esm/context/context.d.ts.map +1 -0
- package/dist/esm/context/context.js +52 -0
- package/dist/esm/context/context.js.map +1 -0
- package/dist/esm/context/index.d.ts +3 -0
- package/dist/esm/context/index.d.ts.map +1 -0
- package/dist/esm/context/index.js +3 -0
- package/dist/esm/context/index.js.map +1 -0
- package/dist/esm/core/entry.d.ts +30 -0
- package/dist/esm/core/entry.d.ts.map +1 -0
- package/dist/esm/core/entry.js +34 -0
- package/dist/esm/core/entry.js.map +1 -0
- package/dist/esm/core/index.d.ts +7 -0
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/core/index.js +6 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/level.d.ts +12 -0
- package/dist/esm/core/level.d.ts.map +1 -0
- package/dist/esm/core/level.js +25 -0
- package/dist/esm/core/level.js.map +1 -0
- package/dist/esm/core/logger.d.ts +271 -0
- package/dist/esm/core/logger.d.ts.map +1 -0
- package/dist/esm/core/logger.js +747 -0
- package/dist/esm/core/logger.js.map +1 -0
- package/dist/esm/core/printf.d.ts +34 -0
- package/dist/esm/core/printf.d.ts.map +1 -0
- package/dist/esm/core/printf.js +129 -0
- package/dist/esm/core/printf.js.map +1 -0
- package/dist/esm/index.d.ts +40 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/pipeline/filter.d.ts +10 -0
- package/dist/esm/pipeline/filter.d.ts.map +1 -0
- package/dist/esm/pipeline/filter.js +11 -0
- package/dist/esm/pipeline/filter.js.map +1 -0
- package/dist/esm/pipeline/formatter.d.ts +19 -0
- package/dist/esm/pipeline/formatter.d.ts.map +1 -0
- package/dist/esm/pipeline/formatter.js +179 -0
- package/dist/esm/pipeline/formatter.js.map +1 -0
- package/dist/esm/pipeline/index.d.ts +6 -0
- package/dist/esm/pipeline/index.d.ts.map +1 -0
- package/dist/esm/pipeline/index.js +6 -0
- package/dist/esm/pipeline/index.js.map +1 -0
- package/dist/esm/pipeline/pipeline.d.ts +45 -0
- package/dist/esm/pipeline/pipeline.d.ts.map +1 -0
- package/dist/esm/pipeline/pipeline.js +76 -0
- package/dist/esm/pipeline/pipeline.js.map +1 -0
- package/dist/esm/pipeline/processor.d.ts +67 -0
- package/dist/esm/pipeline/processor.d.ts.map +1 -0
- package/dist/esm/pipeline/processor.js +277 -0
- package/dist/esm/pipeline/processor.js.map +1 -0
- package/dist/esm/pipeline/sampler.d.ts +45 -0
- package/dist/esm/pipeline/sampler.d.ts.map +1 -0
- package/dist/esm/pipeline/sampler.js +59 -0
- package/dist/esm/pipeline/sampler.js.map +1 -0
- package/dist/esm/plugin/index.d.ts +4 -0
- package/dist/esm/plugin/index.d.ts.map +1 -0
- package/dist/esm/plugin/index.js +4 -0
- package/dist/esm/plugin/index.js.map +1 -0
- package/dist/esm/plugin/manager.d.ts +38 -0
- package/dist/esm/plugin/manager.d.ts.map +1 -0
- package/dist/esm/plugin/manager.js +75 -0
- package/dist/esm/plugin/manager.js.map +1 -0
- package/dist/esm/plugin/otel-trace.d.ts +19 -0
- package/dist/esm/plugin/otel-trace.d.ts.map +1 -0
- package/dist/esm/plugin/otel-trace.js +55 -0
- package/dist/esm/plugin/otel-trace.js.map +1 -0
- package/dist/esm/plugin/plugin.d.ts +41 -0
- package/dist/esm/plugin/plugin.d.ts.map +1 -0
- package/dist/esm/plugin/plugin.js +2 -0
- package/dist/esm/plugin/plugin.js.map +1 -0
- package/dist/esm/runtime/adapter.d.ts +81 -0
- package/dist/esm/runtime/adapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapter.js +2 -0
- package/dist/esm/runtime/adapter.js.map +1 -0
- package/dist/esm/runtime/defaults.d.ts +27 -0
- package/dist/esm/runtime/defaults.d.ts.map +1 -0
- package/dist/esm/runtime/defaults.js +27 -0
- package/dist/esm/runtime/defaults.js.map +1 -0
- package/dist/esm/runtime/electron-binding.browser.d.ts +10 -0
- package/dist/esm/runtime/electron-binding.browser.d.ts.map +1 -0
- package/dist/esm/runtime/electron-binding.browser.js +13 -0
- package/dist/esm/runtime/electron-binding.browser.js.map +1 -0
- package/dist/esm/runtime/electron-binding.d.ts +24 -0
- package/dist/esm/runtime/electron-binding.d.ts.map +1 -0
- package/dist/esm/runtime/electron-binding.js +44 -0
- package/dist/esm/runtime/electron-binding.js.map +1 -0
- package/dist/esm/runtime/electron-lifecycle.d.ts +17 -0
- package/dist/esm/runtime/electron-lifecycle.d.ts.map +1 -0
- package/dist/esm/runtime/electron-lifecycle.js +44 -0
- package/dist/esm/runtime/electron-lifecycle.js.map +1 -0
- package/dist/esm/runtime/electron-main.d.ts +24 -0
- package/dist/esm/runtime/electron-main.d.ts.map +1 -0
- package/dist/esm/runtime/electron-main.js +99 -0
- package/dist/esm/runtime/electron-main.js.map +1 -0
- package/dist/esm/runtime/electron-renderer.d.ts +26 -0
- package/dist/esm/runtime/electron-renderer.d.ts.map +1 -0
- package/dist/esm/runtime/electron-renderer.js +30 -0
- package/dist/esm/runtime/electron-renderer.js.map +1 -0
- package/dist/esm/runtime/electron.d.ts +20 -0
- package/dist/esm/runtime/electron.d.ts.map +1 -0
- package/dist/esm/runtime/electron.js +21 -0
- package/dist/esm/runtime/electron.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +21 -0
- package/dist/esm/runtime/index.d.ts.map +1 -0
- package/dist/esm/runtime/index.js +29 -0
- package/dist/esm/runtime/index.js.map +1 -0
- package/dist/esm/runtime/node.d.ts +27 -0
- package/dist/esm/runtime/node.d.ts.map +1 -0
- package/dist/esm/runtime/node.js +123 -0
- package/dist/esm/runtime/node.js.map +1 -0
- package/dist/esm/runtime/process-lifecycle.d.ts +13 -0
- package/dist/esm/runtime/process-lifecycle.d.ts.map +1 -0
- package/dist/esm/runtime/process-lifecycle.js +77 -0
- package/dist/esm/runtime/process-lifecycle.js.map +1 -0
- package/dist/esm/runtime/web-lifecycle.d.ts +13 -0
- package/dist/esm/runtime/web-lifecycle.d.ts.map +1 -0
- package/dist/esm/runtime/web-lifecycle.js +36 -0
- package/dist/esm/runtime/web-lifecycle.js.map +1 -0
- package/dist/esm/runtime/web.d.ts +14 -0
- package/dist/esm/runtime/web.d.ts.map +1 -0
- package/dist/esm/runtime/web.js +58 -0
- package/dist/esm/runtime/web.js.map +1 -0
- package/dist/esm/shims/index.browser.d.ts +26 -0
- package/dist/esm/shims/index.browser.d.ts.map +1 -0
- package/dist/esm/shims/index.browser.js +54 -0
- package/dist/esm/shims/index.browser.js.map +1 -0
- package/dist/esm/shims/index.d.ts +15 -0
- package/dist/esm/shims/index.d.ts.map +1 -0
- package/dist/esm/shims/index.js +22 -0
- package/dist/esm/shims/index.js.map +1 -0
- package/dist/esm/transport/cluster-ipc.d.ts +36 -0
- package/dist/esm/transport/cluster-ipc.d.ts.map +1 -0
- package/dist/esm/transport/cluster-ipc.js +71 -0
- package/dist/esm/transport/cluster-ipc.js.map +1 -0
- package/dist/esm/transport/console.d.ts +28 -0
- package/dist/esm/transport/console.d.ts.map +1 -0
- package/dist/esm/transport/console.js +44 -0
- package/dist/esm/transport/console.js.map +1 -0
- package/dist/esm/transport/electron-ipc.d.ts +69 -0
- package/dist/esm/transport/electron-ipc.d.ts.map +1 -0
- package/dist/esm/transport/electron-ipc.js +146 -0
- package/dist/esm/transport/electron-ipc.js.map +1 -0
- package/dist/esm/transport/file.d.ts +190 -0
- package/dist/esm/transport/file.d.ts.map +1 -0
- package/dist/esm/transport/file.js +662 -0
- package/dist/esm/transport/file.js.map +1 -0
- package/dist/esm/transport/index.d.ts +9 -0
- package/dist/esm/transport/index.d.ts.map +1 -0
- package/dist/esm/transport/index.js +9 -0
- package/dist/esm/transport/index.js.map +1 -0
- package/dist/esm/transport/live.d.ts +72 -0
- package/dist/esm/transport/live.d.ts.map +1 -0
- package/dist/esm/transport/live.js +100 -0
- package/dist/esm/transport/live.js.map +1 -0
- package/dist/esm/transport/otlp.d.ts +97 -0
- package/dist/esm/transport/otlp.d.ts.map +1 -0
- package/dist/esm/transport/otlp.js +190 -0
- package/dist/esm/transport/otlp.js.map +1 -0
- package/dist/esm/transport/rotating-file.d.ts +67 -0
- package/dist/esm/transport/rotating-file.d.ts.map +1 -0
- package/dist/esm/transport/rotating-file.js +175 -0
- package/dist/esm/transport/rotating-file.js.map +1 -0
- package/dist/esm/transport/transport.d.ts +35 -0
- package/dist/esm/transport/transport.d.ts.map +1 -0
- package/dist/esm/transport/transport.js +2 -0
- package/dist/esm/transport/transport.js.map +1 -0
- package/dist/esm/transport/worker-ipc.d.ts +43 -0
- package/dist/esm/transport/worker-ipc.d.ts.map +1 -0
- package/dist/esm/transport/worker-ipc.js +101 -0
- package/dist/esm/transport/worker-ipc.js.map +1 -0
- package/dist/esm/types.d.ts +72 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +39 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +128 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { LogEntry } from '../types.js';
|
|
2
|
+
import type { Transport } from '../transport/transport.js';
|
|
3
|
+
import type { Plugin, PluginContext } from './plugin.js';
|
|
4
|
+
/**
|
|
5
|
+
* Manages plugin registration and lifecycle. The logger delegates entry
|
|
6
|
+
* interception and transport registration to this manager.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PluginManager {
|
|
9
|
+
private plugins;
|
|
10
|
+
private host;
|
|
11
|
+
/** Count of plugins with an `onEntry` hook; gates the async intercept path. */
|
|
12
|
+
private entryInterceptors;
|
|
13
|
+
/**
|
|
14
|
+
* Error sink for a plugin's `onEntry` hook. A throwing hook must never drop
|
|
15
|
+
* the entry silently or crash logging; the error is reported and the entry
|
|
16
|
+
* proceeds unchanged.
|
|
17
|
+
*/
|
|
18
|
+
onError?: (pluginName: string, err: unknown, entry: LogEntry) => void;
|
|
19
|
+
constructor(host: PluginContext);
|
|
20
|
+
register(plugin: Plugin): Promise<void>;
|
|
21
|
+
/** Unregister a plugin by name. Its `onDestroy` hook (if any) is invoked. */
|
|
22
|
+
unregister(name: string): void;
|
|
23
|
+
has(name: string): boolean;
|
|
24
|
+
/** True when at least one plugin can intercept entries via `onEntry`. */
|
|
25
|
+
hasEntryInterceptors(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Notify plugins that a transport was added (so `onTransport` hooks run).
|
|
28
|
+
* Called by the logger's `addTransport`.
|
|
29
|
+
*/
|
|
30
|
+
notifyTransport(transport: Transport): void;
|
|
31
|
+
/**
|
|
32
|
+
* Run every plugin's `onEntry` hook in registration order. A plugin may
|
|
33
|
+
* return `null` to drop the entry, or a modified entry to pass downstream.
|
|
34
|
+
*/
|
|
35
|
+
intercept(entry: LogEntry): Promise<LogEntry | null>;
|
|
36
|
+
destroy(): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/plugin/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,IAAI,CAAgB;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAAK;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;gBAE1D,IAAI,EAAE,aAAa;IAIzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,6EAA6E;IAC7E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,yEAAyE;IACzE,oBAAoB,IAAI,OAAO;IAI/B;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAM3C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PluginManager = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Manages plugin registration and lifecycle. The logger delegates entry
|
|
6
|
+
* interception and transport registration to this manager.
|
|
7
|
+
*/
|
|
8
|
+
class PluginManager {
|
|
9
|
+
constructor(host) {
|
|
10
|
+
this.plugins = new Map();
|
|
11
|
+
/** Count of plugins with an `onEntry` hook; gates the async intercept path. */
|
|
12
|
+
this.entryInterceptors = 0;
|
|
13
|
+
this.host = host;
|
|
14
|
+
}
|
|
15
|
+
async register(plugin) {
|
|
16
|
+
if (this.plugins.has(plugin.name)) {
|
|
17
|
+
throw new Error(`Plugin already registered: ${plugin.name}`);
|
|
18
|
+
}
|
|
19
|
+
this.plugins.set(plugin.name, plugin);
|
|
20
|
+
if (plugin.onEntry)
|
|
21
|
+
this.entryInterceptors++;
|
|
22
|
+
await plugin.onInit?.(this.host);
|
|
23
|
+
}
|
|
24
|
+
/** Unregister a plugin by name. Its `onDestroy` hook (if any) is invoked. */
|
|
25
|
+
unregister(name) {
|
|
26
|
+
const plugin = this.plugins.get(name);
|
|
27
|
+
if (!plugin)
|
|
28
|
+
return;
|
|
29
|
+
if (plugin.onEntry)
|
|
30
|
+
this.entryInterceptors--;
|
|
31
|
+
this.plugins.delete(name);
|
|
32
|
+
void plugin.onDestroy?.();
|
|
33
|
+
}
|
|
34
|
+
has(name) {
|
|
35
|
+
return this.plugins.has(name);
|
|
36
|
+
}
|
|
37
|
+
/** True when at least one plugin can intercept entries via `onEntry`. */
|
|
38
|
+
hasEntryInterceptors() {
|
|
39
|
+
return this.entryInterceptors > 0;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Notify plugins that a transport was added (so `onTransport` hooks run).
|
|
43
|
+
* Called by the logger's `addTransport`.
|
|
44
|
+
*/
|
|
45
|
+
notifyTransport(transport) {
|
|
46
|
+
for (const plugin of this.plugins.values()) {
|
|
47
|
+
plugin.onTransport?.(transport);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Run every plugin's `onEntry` hook in registration order. A plugin may
|
|
52
|
+
* return `null` to drop the entry, or a modified entry to pass downstream.
|
|
53
|
+
*/
|
|
54
|
+
async intercept(entry) {
|
|
55
|
+
let current = entry;
|
|
56
|
+
for (const plugin of this.plugins.values()) {
|
|
57
|
+
if (!current)
|
|
58
|
+
break;
|
|
59
|
+
if (plugin.onEntry) {
|
|
60
|
+
try {
|
|
61
|
+
current = await plugin.onEntry(current);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
this.onError?.(plugin.name, err, entry);
|
|
65
|
+
// Keep the entry as-is; a faulty plugin must not drop or mutate it.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return current;
|
|
70
|
+
}
|
|
71
|
+
async destroy() {
|
|
72
|
+
for (const plugin of this.plugins.values()) {
|
|
73
|
+
await plugin.onDestroy?.();
|
|
74
|
+
}
|
|
75
|
+
this.plugins.clear();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.PluginManager = PluginManager;
|
|
79
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/plugin/manager.ts"],"names":[],"mappings":";;;AAIA;;;GAGG;AACH,MAAa,aAAa;IAYxB,YAAY,IAAmB;QAXvB,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,+EAA+E;QACvE,sBAAiB,GAAG,CAAC,CAAC;QAS5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,6EAA6E;IAC7E,UAAU,CAAC,IAAY;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACzE,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,SAAoB;QAClC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,IAAI,OAAO,GAAoB,KAAK,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,MAAM;YACpB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACxC,oEAAoE;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AA/ED,sCA+EC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Plugin } from './plugin.js';
|
|
2
|
+
/**
|
|
3
|
+
* Plugin that injects the active OpenTelemetry trace/span identifiers into each
|
|
4
|
+
* entry's `metadata` (`traceId` / `spanId`), so an `OtlpTransport` (or any
|
|
5
|
+
* backend that reads those fields) can correlate logs with their span without
|
|
6
|
+
* you having to thread the context manually.
|
|
7
|
+
*
|
|
8
|
+
* `@opentelemetry/api` is an **optional** peer dependency: if it isn't installed,
|
|
9
|
+
* or no span is active, the plugin is a no-op and entries are unaffected. Load
|
|
10
|
+
* it once via `logger.use(createOtelTracePlugin())`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { trace } from '@opentelemetry/api';
|
|
14
|
+
* const span = tracer.startSpan('op');
|
|
15
|
+
* trace.setSpan(context.active(), span);
|
|
16
|
+
* logger.info('inside span'); // => metadata: { traceId, spanId }
|
|
17
|
+
*/
|
|
18
|
+
export declare function createOtelTracePlugin(): Plugin;
|
|
19
|
+
//# sourceMappingURL=otel-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-trace.d.ts","sourceRoot":"","sources":["../../../src/plugin/otel-trace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAW1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgC9C"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createOtelTracePlugin = createOtelTracePlugin;
|
|
37
|
+
/**
|
|
38
|
+
* Plugin that injects the active OpenTelemetry trace/span identifiers into each
|
|
39
|
+
* entry's `metadata` (`traceId` / `spanId`), so an `OtlpTransport` (or any
|
|
40
|
+
* backend that reads those fields) can correlate logs with their span without
|
|
41
|
+
* you having to thread the context manually.
|
|
42
|
+
*
|
|
43
|
+
* `@opentelemetry/api` is an **optional** peer dependency: if it isn't installed,
|
|
44
|
+
* or no span is active, the plugin is a no-op and entries are unaffected. Load
|
|
45
|
+
* it once via `logger.use(createOtelTracePlugin())`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* import { trace } from '@opentelemetry/api';
|
|
49
|
+
* const span = tracer.startSpan('op');
|
|
50
|
+
* trace.setSpan(context.active(), span);
|
|
51
|
+
* logger.info('inside span'); // => metadata: { traceId, spanId }
|
|
52
|
+
*/
|
|
53
|
+
function createOtelTracePlugin() {
|
|
54
|
+
let traceApi;
|
|
55
|
+
return {
|
|
56
|
+
name: 'otel-trace',
|
|
57
|
+
async onInit() {
|
|
58
|
+
try {
|
|
59
|
+
// Lazy, optional resolution — never fails if the package is absent.
|
|
60
|
+
// The specifier is held in a variable so TypeScript does not try to
|
|
61
|
+
// resolve the (optional) module at compile time.
|
|
62
|
+
const specifier = '@opentelemetry/api';
|
|
63
|
+
const mod = (await Promise.resolve(`${specifier}`).then(s => __importStar(require(s))));
|
|
64
|
+
traceApi = mod.trace;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
traceApi = undefined;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
onEntry(entry) {
|
|
71
|
+
if (!traceApi)
|
|
72
|
+
return entry;
|
|
73
|
+
const span = traceApi.getActiveSpan();
|
|
74
|
+
if (!span)
|
|
75
|
+
return entry;
|
|
76
|
+
// Some tracer implementations return a span object without a
|
|
77
|
+
// `spanContext` method; tolerate that instead of throwing on the hot
|
|
78
|
+
// path.
|
|
79
|
+
if (typeof span.spanContext !== 'function')
|
|
80
|
+
return entry;
|
|
81
|
+
const ctx = span.spanContext();
|
|
82
|
+
if (!ctx)
|
|
83
|
+
return entry;
|
|
84
|
+
return {
|
|
85
|
+
...entry,
|
|
86
|
+
metadata: { ...entry.metadata, traceId: ctx.traceId, spanId: ctx.spanId },
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=otel-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-trace.js","sourceRoot":"","sources":["../../../src/plugin/otel-trace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,sDAgCC;AAhDD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,qBAAqB;IACnC,IAAI,QAAkC,CAAC;IACvC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK,CAAC,MAAM;YACV,IAAI,CAAC;gBACH,oEAAoE;gBACpE,oEAAoE;gBACpE,iDAAiD;gBACjD,MAAM,SAAS,GAAG,oBAAoB,CAAC;gBACvC,MAAM,GAAG,GAAG,CAAC,yBAAa,SAAS,uCAAC,CAAwC,CAAC;gBAC7E,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAe;YACrB,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YACxB,6DAA6D;YAC7D,qEAAqE;YACrE,QAAQ;YACR,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YACvB,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;aAC1E,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { LogEntry } from '../types.js';
|
|
2
|
+
import type { Transport } from '../transport/transport.js';
|
|
3
|
+
import type { Pipeline } from '../pipeline/pipeline.js';
|
|
4
|
+
import type { Logger } from '../core/logger.js';
|
|
5
|
+
/**
|
|
6
|
+
* A Plugin extends the logger's behavior through lifecycle hooks. All hooks
|
|
7
|
+
* are optional. A plugin that needs to transform entries should implement
|
|
8
|
+
* `onEntry`, returning the (possibly new) entry or `null` to drop it.
|
|
9
|
+
*/
|
|
10
|
+
export interface Plugin {
|
|
11
|
+
/** Unique plugin name. */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
/** Called once when the plugin is registered (or via `ctx.use`). */
|
|
14
|
+
onInit?(ctx: PluginContext): void | Promise<void>;
|
|
15
|
+
/** Called for every entry before it reaches the pipeline's formatter. */
|
|
16
|
+
onEntry?(entry: LogEntry): LogEntry | null | Promise<LogEntry | null>;
|
|
17
|
+
/** Called when a transport is added (incl. by other plugins). */
|
|
18
|
+
onTransport?(transport: Transport): void;
|
|
19
|
+
/** Called when the plugin is unregistered or the logger is destroyed. */
|
|
20
|
+
onDestroy?(): void | Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Capabilities handed to a plugin so it can reconfigure the logger at runtime.
|
|
24
|
+
* This is the bridge that lets plugins dynamically add/remove transports,
|
|
25
|
+
* reshape the processing pipeline, and even register/unregister other plugins.
|
|
26
|
+
*/
|
|
27
|
+
export interface PluginContext {
|
|
28
|
+
/** Add a transport at runtime. */
|
|
29
|
+
addTransport(transport: Transport): void;
|
|
30
|
+
/** Remove a transport by name. */
|
|
31
|
+
removeTransport(name: string): void;
|
|
32
|
+
/** The processing pipeline — add/remove filters & processors, change the formatter. */
|
|
33
|
+
pipeline: Pipeline;
|
|
34
|
+
/** Register another plugin at runtime. */
|
|
35
|
+
use(plugin: Plugin): Promise<void>;
|
|
36
|
+
/** Unregister a plugin by name. */
|
|
37
|
+
unregisterPlugin(name: string): void;
|
|
38
|
+
/** The owning logger (e.g. to call `setLevel`). */
|
|
39
|
+
logger: Logger;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,MAAM,CAAC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,yEAAyE;IACzE,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtE,iEAAiE;IACjE,WAAW,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,yEAAyE;IACzE,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,kCAAkC;IAClC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uFAAuF;IACvF,QAAQ,EAAE,QAAQ,CAAC;IACnB,0CAA0C;IAC1C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,mCAAmC;IACnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugin/plugin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Transport } from '../transport/transport.js';
|
|
2
|
+
import type { LogEntry } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Supported runtime environments:
|
|
5
|
+
* - `web` : browsers, no filesystem / process id.
|
|
6
|
+
* - `node` : plain Node.js (CLI / server), has filesystem and process id.
|
|
7
|
+
* - `electron` : Electron, further differentiated by {@link processType}.
|
|
8
|
+
*/
|
|
9
|
+
export type RuntimeName = 'web' | 'node' | 'electron';
|
|
10
|
+
/**
|
|
11
|
+
* For Electron, whether we run in the main process (owns the filesystem) or a
|
|
12
|
+
* renderer process (sandboxed, console only by default).
|
|
13
|
+
*/
|
|
14
|
+
export type ElectronProcessType = 'main' | 'renderer';
|
|
15
|
+
/** Callback that feeds a received entry back into a logger. */
|
|
16
|
+
export type IngestFn = (entry: LogEntry) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Host lifecycle hooks. A runtime implements these to tell the logger *when*
|
|
19
|
+
* it should flush pending entries before the host goes away (process exit,
|
|
20
|
+
* page unload, app quit) and *when* a fatal, uncaught host error occurs.
|
|
21
|
+
*
|
|
22
|
+
* The logger supplies the actual flush/fatal behaviour (and its timeout
|
|
23
|
+
* safety); the runtime owns the trigger and any host-specific exit semantics
|
|
24
|
+
* (e.g. `process.exit` on a signal, or simply letting the browser unload).
|
|
25
|
+
* This keeps {@link Logger} runtime-agnostic — it never references `process`
|
|
26
|
+
* or `window` directly.
|
|
27
|
+
*/
|
|
28
|
+
export interface LifecycleHooks {
|
|
29
|
+
/**
|
|
30
|
+
* Register `cb` to run when the host is about to exit/close. The runtime
|
|
31
|
+
* decides the actual trigger (Node/Electron `process` `beforeExit`/signals,
|
|
32
|
+
* Web `pagehide`/`visibilitychange`, Electron `app` `before-quit`) and owns
|
|
33
|
+
* any `process.exit()` it needs. Returns an unregister function; a no-op
|
|
34
|
+
* host returns a no-op detach.
|
|
35
|
+
*/
|
|
36
|
+
onFlushBeforeExit(cb: () => void | Promise<void>): () => void;
|
|
37
|
+
/**
|
|
38
|
+
* Register `cb` for fatal, uncaught host errors (Node/Electron
|
|
39
|
+
* `uncaughtException` / `unhandledRejection`). Optional — omit it on runtimes
|
|
40
|
+
* with no such concept (e.g. web). Returns an unregister function.
|
|
41
|
+
*/
|
|
42
|
+
onUncaughtError?(cb: (err: unknown) => void): () => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* RuntimeAdapter isolates differences between the Web, Node.js and Electron
|
|
46
|
+
* environments: time source, process id, filesystem availability and the set
|
|
47
|
+
* of transports enabled by default.
|
|
48
|
+
*/
|
|
49
|
+
export interface RuntimeAdapter {
|
|
50
|
+
readonly name: RuntimeName;
|
|
51
|
+
/** `main` / `renderer` for Electron, otherwise `undefined`. */
|
|
52
|
+
readonly processType?: ElectronProcessType;
|
|
53
|
+
/** Current epoch milliseconds. */
|
|
54
|
+
now(): number;
|
|
55
|
+
/** Process id when available (Electron main / Node). */
|
|
56
|
+
pid(): number | undefined;
|
|
57
|
+
/** Whether persistent local file storage is available. */
|
|
58
|
+
hasFileSystem(): boolean;
|
|
59
|
+
/** Transports enabled by default for this runtime. */
|
|
60
|
+
defaultTransports(): Transport[];
|
|
61
|
+
/**
|
|
62
|
+
* For Electron main process: register a receiver that forwards entries sent
|
|
63
|
+
* by renderer processes (via IPC) into the host logger. Returns an
|
|
64
|
+
* unregister function. Undefined when not applicable.
|
|
65
|
+
*/
|
|
66
|
+
attachReceiver?: (ingest: IngestFn) => () => void;
|
|
67
|
+
/**
|
|
68
|
+
* Cross-process level-setting callback. When set on the runtime, any
|
|
69
|
+
* `setLevel` call from a child process will invoke this with the new level.
|
|
70
|
+
* Undefined when not applicable.
|
|
71
|
+
*/
|
|
72
|
+
onLevelCommand?: (level: number) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Host lifecycle hooks. When present, the logger wires its flush-on-exit and
|
|
75
|
+
* crash-logging behaviour through these instead of touching `process` /
|
|
76
|
+
* `window` itself. Omit (or leave `undefined`) on runtimes where the logger
|
|
77
|
+
* should not react to host lifecycle.
|
|
78
|
+
*/
|
|
79
|
+
lifecycle?: LifecycleHooks;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;IAC9D;;;;OAIG;IACH,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC1D;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,kCAAkC;IAClC,GAAG,IAAI,MAAM,CAAC;IACd,wDAAwD;IACxD,GAAG,IAAI,MAAM,GAAG,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,aAAa,IAAI,OAAO,CAAC;IACzB,sDAAsD;IACtD,iBAAiB,IAAI,SAAS,EAAE,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC;IAClD;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/runtime/adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sensible disk-safety defaults for the built-in runtimes' default
|
|
3
|
+
* `FileTransport` (mode `rotate-time`, daily). A zero-config logger must never
|
|
4
|
+
* eat the disk, so the defaults bound every growth axis:
|
|
5
|
+
*
|
|
6
|
+
* - `maxSize` caps each file (the global caps never delete the active file,
|
|
7
|
+
* so the active file needs its own limit);
|
|
8
|
+
* - `maxFiles` keeps roughly two weeks of daily buckets;
|
|
9
|
+
* - `maxTotalSize` is the absolute disk ceiling (~200 MB) even if a single
|
|
10
|
+
* day produces far more data.
|
|
11
|
+
*
|
|
12
|
+
* Every value can be overridden via `fileTransportOptions`; passing `undefined`
|
|
13
|
+
* keeps the default, while explicit values replace it.
|
|
14
|
+
*/
|
|
15
|
+
/** Max bytes per file: 10 MB. */
|
|
16
|
+
export declare const DEFAULT_MAX_FILE_SIZE: number;
|
|
17
|
+
/** Max daily buckets kept: 14 (about two weeks). */
|
|
18
|
+
export declare const DEFAULT_MAX_FILES = 14;
|
|
19
|
+
/** Absolute disk ceiling for all owned files: 200 MB. */
|
|
20
|
+
export declare const DEFAULT_MAX_TOTAL_SIZE: number;
|
|
21
|
+
/** Default caps merged into the runtimes' default `FileTransport` options. */
|
|
22
|
+
export declare const DEFAULT_FILE_CAPS: {
|
|
23
|
+
readonly maxSize: number;
|
|
24
|
+
readonly maxFiles: 14;
|
|
25
|
+
readonly maxTotalSize: number;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/runtime/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iCAAiC;AACjC,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AACtD,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AAExD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sensible disk-safety defaults for the built-in runtimes' default
|
|
4
|
+
* `FileTransport` (mode `rotate-time`, daily). A zero-config logger must never
|
|
5
|
+
* eat the disk, so the defaults bound every growth axis:
|
|
6
|
+
*
|
|
7
|
+
* - `maxSize` caps each file (the global caps never delete the active file,
|
|
8
|
+
* so the active file needs its own limit);
|
|
9
|
+
* - `maxFiles` keeps roughly two weeks of daily buckets;
|
|
10
|
+
* - `maxTotalSize` is the absolute disk ceiling (~200 MB) even if a single
|
|
11
|
+
* day produces far more data.
|
|
12
|
+
*
|
|
13
|
+
* Every value can be overridden via `fileTransportOptions`; passing `undefined`
|
|
14
|
+
* keeps the default, while explicit values replace it.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DEFAULT_FILE_CAPS = exports.DEFAULT_MAX_TOTAL_SIZE = exports.DEFAULT_MAX_FILES = exports.DEFAULT_MAX_FILE_SIZE = void 0;
|
|
18
|
+
/** Max bytes per file: 10 MB. */
|
|
19
|
+
exports.DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
20
|
+
/** Max daily buckets kept: 14 (about two weeks). */
|
|
21
|
+
exports.DEFAULT_MAX_FILES = 14;
|
|
22
|
+
/** Absolute disk ceiling for all owned files: 200 MB. */
|
|
23
|
+
exports.DEFAULT_MAX_TOTAL_SIZE = 200 * 1024 * 1024;
|
|
24
|
+
/** Default caps merged into the runtimes' default `FileTransport` options. */
|
|
25
|
+
exports.DEFAULT_FILE_CAPS = {
|
|
26
|
+
maxSize: exports.DEFAULT_MAX_FILE_SIZE,
|
|
27
|
+
maxFiles: exports.DEFAULT_MAX_FILES,
|
|
28
|
+
maxTotalSize: exports.DEFAULT_MAX_TOTAL_SIZE,
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/runtime/defaults.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,iCAAiC;AACpB,QAAA,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,oDAAoD;AACvC,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACpC,yDAAyD;AAC5C,QAAA,sBAAsB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,8EAA8E;AACjE,QAAA,iBAAiB,GAAG;IAC/B,OAAO,EAAE,6BAAqB;IAC9B,QAAQ,EAAE,yBAAiB;IAC3B,YAAY,EAAE,8BAAsB;CAC5B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type of the `electron` module as returned by `require('electron')`. Mirrors
|
|
3
|
+
* the real binding (`Electron.CrossProcessExports`) so the web/browser swap
|
|
4
|
+
* stays type-compatible.
|
|
5
|
+
*/
|
|
6
|
+
export type ElectronModule = typeof Electron.CrossProcessExports;
|
|
7
|
+
export declare function isElectronProcess(): boolean;
|
|
8
|
+
export declare function getElectron(): ElectronModule;
|
|
9
|
+
export declare function getElectronApp(): undefined;
|
|
10
|
+
//# sourceMappingURL=electron-binding.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-binding.browser.d.ts","sourceRoot":"","sources":["../../../src/runtime/electron-binding.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,QAAQ,CAAC,mBAAmB,CAAC;AAKjE,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,WAAW,IAAI,cAAc,CAE5C;AAED,wBAAgB,cAAc,IAAI,SAAS,CAE1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isElectronProcess = isElectronProcess;
|
|
4
|
+
exports.getElectron = getElectron;
|
|
5
|
+
exports.getElectronApp = getElectronApp;
|
|
6
|
+
// Browser stub: the real `electron` module (and its binary) is never available
|
|
7
|
+
// in a web bundle. `package.json`'s `browser` field maps the runtime binding to
|
|
8
|
+
// this module so web builds stay free of any `require('electron')`.
|
|
9
|
+
function isElectronProcess() {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
function getElectron() {
|
|
13
|
+
throw new Error('electron is not available in browser builds');
|
|
14
|
+
}
|
|
15
|
+
function getElectronApp() {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=electron-binding.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-binding.browser.js","sourceRoot":"","sources":["../../../src/runtime/electron-binding.browser.ts"],"names":[],"mappings":";;AAUA,8CAEC;AAED,kCAEC;AAED,wCAEC;AAbD,+EAA+E;AAC/E,gFAAgF;AAChF,oEAAoE;AACpE,SAAgB,iBAAiB;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { App } from 'electron';
|
|
2
|
+
/**
|
|
3
|
+
* Type of the `electron` module as returned by `require('electron')`. We use
|
|
4
|
+
* electron's own `Electron.CrossProcessExports` type so we stay in sync with
|
|
5
|
+
* the real API without hand-writing interfaces.
|
|
6
|
+
*/
|
|
7
|
+
export type ElectronModule = typeof Electron.CrossProcessExports;
|
|
8
|
+
/** True when running inside an Electron process. */
|
|
9
|
+
export declare function isElectronProcess(): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the `electron` module. This is the **only** place in the library
|
|
12
|
+
* that performs `require('electron')`, so a web bundler can swap this whole
|
|
13
|
+
* module for `electron-binding.browser` (via package.json `browser`) and never
|
|
14
|
+
* touch the Electron binary.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getElectron(): ElectronModule;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the Electron `app` instance. Only meaningful inside a real Electron
|
|
19
|
+
* process; returns `undefined` when Electron is absent or `app` can't be read
|
|
20
|
+
* (e.g. a renderer process, or a bundler that stripped `electron`). This is the
|
|
21
|
+
* runtime layer's single entry point for `app`-level lifecycle wiring.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getElectronApp(): App | undefined;
|
|
24
|
+
//# sourceMappingURL=electron-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-binding.d.ts","sourceRoot":"","sources":["../../../src/runtime/electron-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,QAAQ,CAAC,mBAAmB,CAAC;AAIjE,oDAAoD;AACpD,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,cAAc,CAc5C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,GAAG,GAAG,SAAS,CAOhD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isElectronProcess = isElectronProcess;
|
|
4
|
+
exports.getElectron = getElectron;
|
|
5
|
+
exports.getElectronApp = getElectronApp;
|
|
6
|
+
let cached;
|
|
7
|
+
/** True when running inside an Electron process. */
|
|
8
|
+
function isElectronProcess() {
|
|
9
|
+
return (typeof process !== 'undefined' &&
|
|
10
|
+
!!process.versions?.electron);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the `electron` module. This is the **only** place in the library
|
|
14
|
+
* that performs `require('electron')`, so a web bundler can swap this whole
|
|
15
|
+
* module for `electron-binding.browser` (via package.json `browser`) and never
|
|
16
|
+
* touch the Electron binary.
|
|
17
|
+
*/
|
|
18
|
+
function getElectron() {
|
|
19
|
+
if (cached !== undefined) {
|
|
20
|
+
if (cached === null) {
|
|
21
|
+
throw new Error('electron is only available inside an Electron process');
|
|
22
|
+
}
|
|
23
|
+
return cached;
|
|
24
|
+
}
|
|
25
|
+
if (!isElectronProcess()) {
|
|
26
|
+
cached = null;
|
|
27
|
+
throw new Error('electron is only available inside an Electron process');
|
|
28
|
+
}
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
30
|
+
cached = require('electron');
|
|
31
|
+
return cached;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the Electron `app` instance. Only meaningful inside a real Electron
|
|
35
|
+
* process; returns `undefined` when Electron is absent or `app` can't be read
|
|
36
|
+
* (e.g. a renderer process, or a bundler that stripped `electron`). This is the
|
|
37
|
+
* runtime layer's single entry point for `app`-level lifecycle wiring.
|
|
38
|
+
*/
|
|
39
|
+
function getElectronApp() {
|
|
40
|
+
if (!isElectronProcess())
|
|
41
|
+
return undefined;
|
|
42
|
+
try {
|
|
43
|
+
return getElectron().app;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=electron-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-binding.js","sourceRoot":"","sources":["../../../src/runtime/electron-binding.ts"],"names":[],"mappings":";;AAYA,8CAKC;AAQD,kCAcC;AAQD,wCAOC;AA7CD,IAAI,MAAyC,CAAC;AAE9C,oDAAoD;AACpD,SAAgB,iBAAiB;IAC/B,OAAO,CACL,OAAO,OAAO,KAAK,WAAW;QAC9B,CAAC,CAAE,OAAgD,CAAC,QAAQ,EAAE,QAAQ,CACvE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW;IACzB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,iEAAiE;IACjE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAmB,CAAC;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc;IAC5B,IAAI,CAAC,iBAAiB,EAAE;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LifecycleHooks } from './adapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Electron **main process** lifecycle hooks.
|
|
4
|
+
*
|
|
5
|
+
* GUI-driven termination goes through the Electron `app` event surface
|
|
6
|
+
* (`before-quit` / `will-quit`) rather than Node's `process` events, which do
|
|
7
|
+
* not fire on a normal window close. We flush pending entries on those events,
|
|
8
|
+
* mirroring the existing Node `beforeExit` semantics (fire-and-forget, bounded
|
|
9
|
+
* by the logger's flush timeout). When `app` is unavailable (e.g. a plain Node
|
|
10
|
+
* host, or a test runtime), we fall back to the process-based hooks so the
|
|
11
|
+
* behaviour degrades gracefully.
|
|
12
|
+
*
|
|
13
|
+
* Uncaught-error handling stays on `process` (`uncaughtException` /
|
|
14
|
+
* `unhandledRejection`) — those are still the right surface inside Electron.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createElectronLifecycle(): LifecycleHooks;
|
|
17
|
+
//# sourceMappingURL=electron-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/runtime/electron-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CA4BxD"}
|