@camstack/core 0.1.14 → 0.1.16
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/dist/addon/addon-api-factory.d.ts +36 -0
- package/dist/addon/addon-api-factory.d.ts.map +1 -0
- package/dist/addon-routes/addon-route-registry.d.ts +38 -0
- package/dist/addon-routes/addon-route-registry.d.ts.map +1 -0
- package/dist/auth/api-key-manager.d.ts +27 -0
- package/dist/auth/api-key-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.d.ts +47 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/parse-record.d.ts +19 -0
- package/dist/auth/parse-record.d.ts.map +1 -0
- package/dist/auth/scoped-token-manager.d.ts +18 -0
- package/dist/auth/scoped-token-manager.d.ts.map +1 -0
- package/dist/auth/user-manager.d.ts +34 -0
- package/dist/auth/user-manager.d.ts.map +1 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts.map +1 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +226 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js.map +1 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +218 -0
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs.map +1 -0
- package/dist/builtins/addon-pages-aggregator/index.d.ts +2 -0
- package/dist/builtins/addon-pages-aggregator/index.d.ts.map +1 -0
- package/dist/builtins/addon-pages-aggregator/index.js +7 -0
- package/dist/builtins/addon-pages-aggregator/index.mjs +2 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +33 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts.map +1 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +202 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js.map +1 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +194 -0
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs.map +1 -0
- package/dist/builtins/addon-widgets-aggregator/index.d.ts +2 -0
- package/dist/builtins/addon-widgets-aggregator/index.d.ts.map +1 -0
- package/dist/builtins/addon-widgets-aggregator/index.js +7 -0
- package/dist/builtins/addon-widgets-aggregator/index.mjs +2 -0
- package/dist/builtins/alerts/alerts.addon.d.ts +82 -0
- package/dist/builtins/alerts/alerts.addon.d.ts.map +1 -0
- package/dist/builtins/alerts/alerts.addon.js +603 -0
- package/dist/builtins/alerts/alerts.addon.js.map +1 -0
- package/dist/builtins/alerts/alerts.addon.mjs +597 -0
- package/dist/builtins/alerts/alerts.addon.mjs.map +1 -0
- package/dist/builtins/alerts/index.d.ts +2 -0
- package/dist/builtins/alerts/index.d.ts.map +1 -0
- package/dist/builtins/alerts/index.js +3 -0
- package/dist/builtins/alerts/index.mjs +2 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts +8 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js +56 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js.map +1 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs +50 -0
- package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/auth-orchestrator/index.d.ts +2 -0
- package/dist/builtins/auth-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/auth-orchestrator/index.js +7 -0
- package/dist/builtins/auth-orchestrator/index.mjs +2 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +148 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +7639 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js.map +1 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +7627 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +24 -0
- package/dist/builtins/backup-orchestrator/cron-helpers.d.ts.map +1 -0
- package/dist/builtins/backup-orchestrator/destination-policy.d.ts +73 -0
- package/dist/builtins/backup-orchestrator/destination-policy.d.ts.map +1 -0
- package/dist/builtins/backup-orchestrator/download-helpers.d.ts +13 -0
- package/dist/builtins/backup-orchestrator/download-helpers.d.ts.map +1 -0
- package/dist/builtins/backup-orchestrator/index.d.ts +3 -0
- package/dist/builtins/backup-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/backup-orchestrator/index.js +7 -0
- package/dist/builtins/backup-orchestrator/index.mjs +2 -0
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts +78 -0
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts.map +1 -0
- package/dist/builtins/console-logging/console-destination.d.ts +14 -0
- package/dist/builtins/console-logging/console-destination.d.ts.map +1 -0
- package/dist/builtins/console-logging/console-logging.addon.d.ts +26 -0
- package/dist/builtins/console-logging/console-logging.addon.d.ts.map +1 -0
- package/dist/builtins/console-logging/index.d.ts +4 -0
- package/dist/builtins/console-logging/index.d.ts.map +1 -0
- package/dist/builtins/console-logging/index.js +106 -0
- package/dist/builtins/console-logging/index.js.map +1 -0
- package/dist/builtins/console-logging/index.mjs +97 -0
- package/dist/builtins/console-logging/index.mjs.map +1 -0
- package/dist/builtins/device-manager/device-event-propagator.d.ts +27 -0
- package/dist/builtins/device-manager/device-event-propagator.d.ts.map +1 -0
- package/dist/builtins/device-manager/device-manager.addon.d.ts +259 -0
- package/dist/builtins/device-manager/device-manager.addon.d.ts.map +1 -0
- package/dist/builtins/device-manager/device-manager.addon.js +2153 -0
- package/dist/builtins/device-manager/device-manager.addon.js.map +1 -0
- package/dist/builtins/device-manager/device-manager.addon.mjs +2147 -0
- package/dist/builtins/device-manager/device-manager.addon.mjs.map +1 -0
- package/dist/builtins/device-manager/index.d.ts +3 -0
- package/dist/builtins/device-manager/index.d.ts.map +1 -0
- package/dist/builtins/device-manager/index.js +7 -0
- package/dist/builtins/device-manager/index.mjs +2 -0
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +45 -0
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts.map +1 -0
- package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +16 -0
- package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts.map +1 -0
- package/dist/builtins/hub-forwarder/index.d.ts +4 -0
- package/dist/builtins/hub-forwarder/index.d.ts.map +1 -0
- package/dist/builtins/hub-forwarder/index.js +156 -0
- package/dist/builtins/hub-forwarder/index.js.map +1 -0
- package/dist/builtins/hub-forwarder/index.mjs +147 -0
- package/dist/builtins/hub-forwarder/index.mjs.map +1 -0
- package/dist/builtins/local-auth/auth-schema.d.ts +12 -0
- package/dist/builtins/local-auth/auth-schema.d.ts.map +1 -0
- package/dist/builtins/local-auth/index.d.ts +2 -0
- package/dist/builtins/local-auth/index.d.ts.map +1 -0
- package/dist/builtins/local-auth/index.js +3 -0
- package/dist/builtins/local-auth/index.mjs +2 -0
- package/dist/builtins/local-auth/local-auth.addon.d.ts +17 -0
- package/dist/builtins/local-auth/local-auth.addon.d.ts.map +1 -0
- package/dist/builtins/local-auth/local-auth.addon.js +6895 -0
- package/dist/builtins/local-auth/local-auth.addon.js.map +1 -0
- package/dist/builtins/local-auth/local-auth.addon.mjs +6885 -0
- package/dist/builtins/local-auth/local-auth.addon.mjs.map +1 -0
- package/dist/builtins/local-network/index.d.ts +3 -0
- package/dist/builtins/local-network/index.d.ts.map +1 -0
- package/dist/builtins/local-network/index.js +9 -0
- package/dist/builtins/local-network/index.mjs +2 -0
- package/dist/builtins/local-network/local-network.addon.d.ts +102 -0
- package/dist/builtins/local-network/local-network.addon.d.ts.map +1 -0
- package/dist/builtins/local-network/local-network.addon.js +404 -0
- package/dist/builtins/local-network/local-network.addon.js.map +1 -0
- package/dist/builtins/local-network/local-network.addon.mjs +392 -0
- package/dist/builtins/local-network/local-network.addon.mjs.map +1 -0
- package/dist/builtins/mesh-orchestrator/index.d.ts +2 -0
- package/dist/builtins/mesh-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/mesh-orchestrator/index.js +7 -0
- package/dist/builtins/mesh-orchestrator/index.mjs +2 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts +9 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js +83 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js.map +1 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs +77 -0
- package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/native-metrics/index.d.ts +3 -0
- package/dist/builtins/native-metrics/index.d.ts.map +1 -0
- package/dist/builtins/native-metrics/native-metrics-provider.d.ts +49 -0
- package/dist/builtins/native-metrics/native-metrics-provider.d.ts.map +1 -0
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +74 -0
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts.map +1 -0
- package/dist/builtins/native-metrics/native-metrics.addon.js +924 -0
- package/dist/builtins/native-metrics/native-metrics.addon.js.map +1 -0
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +916 -0
- package/dist/builtins/native-metrics/native-metrics.addon.mjs.map +1 -0
- package/dist/builtins/platform-probe/index.d.ts +12 -0
- package/dist/builtins/platform-probe/index.d.ts.map +1 -0
- package/dist/builtins/platform-probe/index.js +539 -0
- package/dist/builtins/platform-probe/index.js.map +1 -0
- package/dist/builtins/platform-probe/index.mjs +530 -0
- package/dist/builtins/platform-probe/index.mjs.map +1 -0
- package/dist/builtins/platform-probe/inference-config-resolver.d.ts +30 -0
- package/dist/builtins/platform-probe/inference-config-resolver.d.ts.map +1 -0
- package/dist/builtins/platform-probe/platform-scorer.d.ts +22 -0
- package/dist/builtins/platform-probe/platform-scorer.d.ts.map +1 -0
- package/dist/builtins/remote-access-orchestrator/index.d.ts +2 -0
- package/dist/builtins/remote-access-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/remote-access-orchestrator/index.js +7 -0
- package/dist/builtins/remote-access-orchestrator/index.mjs +2 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +9 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +72 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js.map +1 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +66 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/snapshot/index.d.ts +3 -0
- package/dist/builtins/snapshot/index.d.ts.map +1 -0
- package/dist/builtins/snapshot/index.js +494 -0
- package/dist/builtins/snapshot/index.js.map +1 -0
- package/dist/builtins/snapshot/index.mjs +488 -0
- package/dist/builtins/snapshot/index.mjs.map +1 -0
- package/dist/builtins/snapshot/snapshot.addon.d.ts +121 -0
- package/dist/builtins/snapshot/snapshot.addon.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/config-store.d.ts +9 -0
- package/dist/builtins/sqlite-storage/config-store.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/device-store.d.ts +24 -0
- package/dist/builtins/sqlite-storage/device-store.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +87 -0
- package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +32 -2
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +311 -205
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js.map +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +305 -7
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs.map +1 -1
- package/dist/builtins/sqlite-storage/index.d.ts +12 -4
- package/dist/builtins/sqlite-storage/index.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/index.js +258 -1097
- package/dist/builtins/sqlite-storage/index.js.map +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +268 -28
- package/dist/builtins/sqlite-storage/index.mjs.map +1 -1
- package/dist/builtins/sqlite-storage/integration-registry.d.ts +28 -0
- package/dist/builtins/sqlite-storage/integration-registry.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/settings-store.d.ts +40 -0
- package/dist/builtins/sqlite-storage/settings-store.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/sql-schema.d.ts +33 -0
- package/dist/builtins/sqlite-storage/sql-schema.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +94 -0
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +15 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts.map +1 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +588 -417
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js.map +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +582 -7
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs.map +1 -1
- package/dist/builtins/storage-orchestrator/index.d.ts +7 -0
- package/dist/builtins/storage-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/storage-orchestrator/index.js +9 -0
- package/dist/builtins/storage-orchestrator/index.mjs +2 -0
- package/dist/builtins/storage-orchestrator/location-store.d.ts +50 -0
- package/dist/builtins/storage-orchestrator/location-store.d.ts.map +1 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +60 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +755 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js.map +1 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +746 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +121 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts.map +1 -0
- package/dist/builtins/system-backup/system-backup.service.d.ts +138 -0
- package/dist/builtins/system-backup/system-backup.service.d.ts.map +1 -0
- package/dist/builtins/system-config/index.d.ts +2 -0
- package/dist/builtins/system-config/index.d.ts.map +1 -0
- package/dist/builtins/system-config/index.js +7 -0
- package/dist/builtins/system-config/index.mjs +2 -0
- package/dist/builtins/system-config/system-config.addon.d.ts +11 -0
- package/dist/builtins/system-config/system-config.addon.d.ts.map +1 -0
- package/dist/builtins/system-config/system-config.addon.js +234 -0
- package/dist/builtins/system-config/system-config.addon.js.map +1 -0
- package/dist/builtins/system-config/system-config.addon.mjs +228 -0
- package/dist/builtins/system-config/system-config.addon.mjs.map +1 -0
- package/dist/builtins/turn-orchestrator/index.d.ts +2 -0
- package/dist/builtins/turn-orchestrator/index.d.ts.map +1 -0
- package/dist/builtins/turn-orchestrator/index.js +7 -0
- package/dist/builtins/turn-orchestrator/index.mjs +2 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts +10 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts.map +1 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js +78 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js.map +1 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs +72 -0
- package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs.map +1 -0
- package/dist/builtins/winston-logging/index.d.ts +4 -30
- package/dist/builtins/winston-logging/index.d.ts.map +1 -0
- package/dist/builtins/winston-logging/index.js +153 -180
- package/dist/builtins/winston-logging/index.js.map +1 -1
- package/dist/builtins/winston-logging/index.mjs +144 -8
- package/dist/builtins/winston-logging/index.mjs.map +1 -1
- package/dist/builtins/winston-logging/winston-destination.d.ts +22 -0
- package/dist/builtins/winston-logging/winston-destination.d.ts.map +1 -0
- package/dist/builtins/winston-logging/winston-logging.addon.d.ts +20 -0
- package/dist/builtins/winston-logging/winston-logging.addon.d.ts.map +1 -0
- package/dist/chunk-C13QxCFV.js +50 -0
- package/dist/chunk-hT5z_Zn9.mjs +35 -0
- package/dist/download/model-download-service.d.ts +42 -0
- package/dist/download/model-download-service.d.ts.map +1 -0
- package/dist/download/model-downloader.d.ts +32 -0
- package/dist/download/model-downloader.d.ts.map +1 -0
- package/dist/events/event-bus.d.ts +11 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/system-event-bus.d.ts +15 -0
- package/dist/events/system-event-bus.d.ts.map +1 -0
- package/dist/feature/feature-manager.d.ts +12 -0
- package/dist/feature/feature-manager.d.ts.map +1 -0
- package/dist/formatter-C-5An4Bl.mjs +164 -0
- package/dist/formatter-C-5An4Bl.mjs.map +1 -0
- package/dist/formatter-Dr_6NNZc.js +169 -0
- package/dist/formatter-Dr_6NNZc.js.map +1 -0
- package/dist/index.d.ts +76 -1137
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7761 -7017
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7699 -3798
- package/dist/index.mjs.map +1 -1
- package/dist/lifecycle/lifecycle-state-machine.d.ts +29 -0
- package/dist/lifecycle/lifecycle-state-machine.d.ts.map +1 -0
- package/dist/logging/formatter.d.ts +31 -0
- package/dist/logging/formatter.d.ts.map +1 -0
- package/dist/logging/log-manager.d.ts +52 -0
- package/dist/logging/log-manager.d.ts.map +1 -0
- package/dist/logging/log-ring-buffer.d.ts +48 -0
- package/dist/logging/log-ring-buffer.d.ts.map +1 -0
- package/dist/logging/scoped-logger.d.ts +18 -0
- package/dist/logging/scoped-logger.d.ts.map +1 -0
- package/dist/network/network-quality.d.ts +12 -0
- package/dist/network/network-quality.d.ts.map +1 -0
- package/dist/notification/notification-service.d.ts +38 -0
- package/dist/notification/notification-service.d.ts.map +1 -0
- package/dist/notification/toast-service.d.ts +23 -0
- package/dist/notification/toast-service.d.ts.map +1 -0
- package/dist/pipeline/engine-manager-resolver.d.ts +16 -0
- package/dist/pipeline/engine-manager-resolver.d.ts.map +1 -0
- package/dist/pipeline/pipeline-runner.d.ts +9 -0
- package/dist/pipeline/pipeline-runner.d.ts.map +1 -0
- package/dist/pipeline/pipeline-validator.d.ts +14 -0
- package/dist/pipeline/pipeline-validator.d.ts.map +1 -0
- package/dist/process/resource-monitor.d.ts +12 -0
- package/dist/process/resource-monitor.d.ts.map +1 -0
- package/dist/python/python-env-manager.d.ts +13 -0
- package/dist/python/python-env-manager.d.ts.map +1 -0
- package/dist/repl/interfaces.d.ts +32 -0
- package/dist/repl/interfaces.d.ts.map +1 -0
- package/dist/repl/repl-engine.d.ts +9 -0
- package/dist/repl/repl-engine.d.ts.map +1 -0
- package/dist/resource-monitor-CmuWlmap.js +76 -0
- package/dist/resource-monitor-CmuWlmap.js.map +1 -0
- package/dist/resource-monitor-DcQdKGYU.mjs +59 -0
- package/dist/resource-monitor-DcQdKGYU.mjs.map +1 -0
- package/dist/storage/fs-storage-backend.d.ts +41 -0
- package/dist/storage/fs-storage-backend.d.ts.map +1 -0
- package/dist/storage/storage-location-manager.d.ts +24 -0
- package/dist/storage/storage-location-manager.d.ts.map +1 -0
- package/dist/storage/storage-manager.d.ts +77 -0
- package/dist/storage/storage-manager.d.ts.map +1 -0
- package/dist/tls/cert-manager.d.ts +27 -0
- package/dist/tls/cert-manager.d.ts.map +1 -0
- package/dist/tls/index.d.ts +2 -0
- package/dist/tls/index.d.ts.map +1 -0
- package/package.json +230 -13
- package/dist/builtins/local-backup/index.d.mts +0 -42
- package/dist/builtins/local-backup/index.d.ts +0 -42
- package/dist/builtins/local-backup/index.js +0 -188
- package/dist/builtins/local-backup/index.js.map +0 -1
- package/dist/builtins/local-backup/index.mjs +0 -10
- package/dist/builtins/local-backup/index.mjs.map +0 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.mts +0 -2
- package/dist/builtins/sqlite-storage/index.d.mts +0 -4
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.mts +0 -2
- package/dist/builtins/winston-logging/index.d.mts +0 -30
- package/dist/chunk-2F3XZYRW.mjs +0 -89
- package/dist/chunk-2F3XZYRW.mjs.map +0 -1
- package/dist/chunk-LQFPAEQF.mjs +0 -147
- package/dist/chunk-LQFPAEQF.mjs.map +0 -1
- package/dist/chunk-R3DIIBBX.mjs +0 -532
- package/dist/chunk-R3DIIBBX.mjs.map +0 -1
- package/dist/chunk-SMNR44VG.mjs +0 -386
- package/dist/chunk-SMNR44VG.mjs.map +0 -1
- package/dist/chunk-SO4LROOT.mjs +0 -150
- package/dist/chunk-SO4LROOT.mjs.map +0 -1
- package/dist/chunk-SPA4JBKN.mjs +0 -175
- package/dist/chunk-SPA4JBKN.mjs.map +0 -1
- package/dist/dist-3BY63UQ5.mjs +0 -2151
- package/dist/dist-3BY63UQ5.mjs.map +0 -1
- package/dist/filesystem-storage.addon-C42r589X.d.mts +0 -57
- package/dist/filesystem-storage.addon-C42r589X.d.ts +0 -57
- package/dist/index.d.mts +0 -1137
- package/dist/sql-schema-CKz78rId.d.mts +0 -97
- package/dist/sql-schema-CKz78rId.d.ts +0 -97
- package/dist/sqlite-settings.addon-KwG-uKMP.d.mts +0 -79
- package/dist/sqlite-settings.addon-KwG-uKMP.d.ts +0 -79
- package/dist/storage-location-manager-KKDQNAKA.mjs +0 -7
- package/dist/storage-location-manager-KKDQNAKA.mjs.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate a cron expression and return its next firing time strictly
|
|
3
|
+
* after `after`, expressed as ms-epoch. Returns `null` when the
|
|
4
|
+
* expression has no future runs (croner returns null e.g. for
|
|
5
|
+
* fully-bounded patterns that have already elapsed). Throws when the
|
|
6
|
+
* expression is syntactically invalid — callers are expected to
|
|
7
|
+
* surface that to the operator.
|
|
8
|
+
*/
|
|
9
|
+
export declare function computeNextDue(cron: string, after: number): number | null;
|
|
10
|
+
/**
|
|
11
|
+
* Validate without computing — returns true when `cron` parses, false
|
|
12
|
+
* otherwise. Used by the cap-router input zod schema's `.refine`
|
|
13
|
+
* callback to reject malformed expressions at the boundary instead
|
|
14
|
+
* of at scheduler-tick time.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isValidCron(cron: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Peek the next N firing times after `after` (default: now). Used by
|
|
19
|
+
* the admin UI's CronEditor preview pane — operators see the next
|
|
20
|
+
* 3–5 runs as they edit the expression so a wrong pattern is
|
|
21
|
+
* obvious before save.
|
|
22
|
+
*/
|
|
23
|
+
export declare function previewNextRuns(cron: string, count: number, after?: number): readonly number[];
|
|
24
|
+
//# sourceMappingURL=cron-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron-helpers.d.ts","sourceRoot":"","sources":["../../../src/builtins/backup-orchestrator/cron-helpers.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAW9F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ISettingsBackend, TableSchema } from '@camstack/types';
|
|
2
|
+
/**
|
|
3
|
+
* Per-`backups`-location policy. `locationId` is the foreign-key into
|
|
4
|
+
* the storage orchestrator's `storage_locations` table.
|
|
5
|
+
*
|
|
6
|
+
* `enabled` gates whether scheduled / unspecified-target backups fan out
|
|
7
|
+
* to this destination; operators can disable a destination temporarily
|
|
8
|
+
* without deleting the underlying `StorageLocation`.
|
|
9
|
+
*
|
|
10
|
+
* `retentionCount` is independent per destination — destination A may
|
|
11
|
+
* keep 3 archives while B keeps 30.
|
|
12
|
+
*
|
|
13
|
+
* `label` is an optional operator-defined display string. When omitted
|
|
14
|
+
* the orchestrator falls back to the `StorageLocation.displayName`.
|
|
15
|
+
*/
|
|
16
|
+
export interface BackupDestinationPolicy {
|
|
17
|
+
readonly locationId: string;
|
|
18
|
+
readonly enabled: boolean;
|
|
19
|
+
readonly retentionCount: number;
|
|
20
|
+
readonly label?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Cron expression for scheduled backups to this destination. When
|
|
23
|
+
* undefined / empty the destination only receives backups from
|
|
24
|
+
* manual `runNow()` calls. Each destination has its own cadence —
|
|
25
|
+
* an offsite SFTP can run weekly while local stays nightly. The
|
|
26
|
+
* orchestrator parses with `cron-parser` (5-field POSIX cron, no
|
|
27
|
+
* seconds field).
|
|
28
|
+
*/
|
|
29
|
+
readonly cron?: string;
|
|
30
|
+
/** ms-epoch of the last successful backup completion to this destination. */
|
|
31
|
+
readonly lastRunAt?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare const BACKUP_DESTINATION_POLICIES_SCHEMA: TableSchema;
|
|
34
|
+
export declare class BackupDestinationPolicyService {
|
|
35
|
+
private readonly backend;
|
|
36
|
+
private tableEnsured;
|
|
37
|
+
constructor(backend: ISettingsBackend);
|
|
38
|
+
/**
|
|
39
|
+
* Lazy `ensureTable` — called from every read/write path. The
|
|
40
|
+
* settings backend's own `ensureTable` is idempotent (additive
|
|
41
|
+
* migration), so repeated calls collapse to a no-op after the first.
|
|
42
|
+
* This keeps the constructor synchronous and avoids a separate
|
|
43
|
+
* `initialize()` step that callers could forget.
|
|
44
|
+
*/
|
|
45
|
+
initialize(): Promise<void>;
|
|
46
|
+
private ensureTable;
|
|
47
|
+
list(): Promise<readonly BackupDestinationPolicy[]>;
|
|
48
|
+
get(locationId: string): Promise<BackupDestinationPolicy | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Replace-or-insert. Implemented as `delete` + `insert` (mirrors the
|
|
51
|
+
* `SqliteLocationStore` contract) so backends that don't surface
|
|
52
|
+
* `tableUpdate` still work.
|
|
53
|
+
*/
|
|
54
|
+
upsert(p: BackupDestinationPolicy): Promise<void>;
|
|
55
|
+
delete(locationId: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Auto-create a default policy for a `backups` location seen for the
|
|
58
|
+
* first time (returns the existing policy unchanged when present).
|
|
59
|
+
* The orchestrator calls this lazily on the first `listDestinations`
|
|
60
|
+
* pass so newly-added storage locations are surfaced as enabled
|
|
61
|
+
* destinations without an explicit configuration step.
|
|
62
|
+
*
|
|
63
|
+
* Defaults are passed by the orchestrator (currently:
|
|
64
|
+
* `retentionCount=7` + `cron='0 3 * * *'`) so a fresh destination
|
|
65
|
+
* starts running daily at 03:00 with 7 archives kept. Operator can
|
|
66
|
+
* tune both inline on the destinations table.
|
|
67
|
+
*/
|
|
68
|
+
ensureDefault(locationId: string, defaults: {
|
|
69
|
+
retentionCount: number;
|
|
70
|
+
cron?: string;
|
|
71
|
+
}): Promise<BackupDestinationPolicy>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=destination-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destination-policy.d.ts","sourceRoot":"","sources":["../../../src/builtins/backup-orchestrator/destination-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEpE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAID,eAAO,MAAM,kCAAkC,EAAE,WAShD,CAAA;AAED,qBAAa,8BAA8B;IAG7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,YAAY,CAAQ;gBAEC,OAAO,EAAE,gBAAgB;IAEtD;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAInB,WAAW;IAYnB,IAAI,IAAI,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC;IAcnD,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAOtE;;;;OAIG;IACG,MAAM,CAAC,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C;;;;;;;;;;;OAWG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,uBAAuB,CAAC;CAYpC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IScopedLogger } from '@camstack/types';
|
|
2
|
+
import { ChunkedDownloadApi } from './manifest-store.js';
|
|
3
|
+
export interface DownloadArchiveInput {
|
|
4
|
+
readonly api: ChunkedDownloadApi;
|
|
5
|
+
readonly locationId: string;
|
|
6
|
+
readonly filename: string;
|
|
7
|
+
readonly cachePath: string;
|
|
8
|
+
/** Per-chunk byte budget. Matches the upload helper's 8 MiB. */
|
|
9
|
+
readonly chunkBytes: number;
|
|
10
|
+
readonly logger: IScopedLogger;
|
|
11
|
+
}
|
|
12
|
+
export declare function downloadArchiveToCache(input: DownloadArchiveInput): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=download-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download-helpers.d.ts","sourceRoot":"","sources":["../../../src/builtins/backup-orchestrator/download-helpers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builtins/backup-orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_builtins_backup_orchestrator_backup_orchestrator_addon = require("./backup-orchestrator.addon.js");
|
|
6
|
+
exports.BackupOrchestratorAddon = require_builtins_backup_orchestrator_backup_orchestrator_addon.BackupOrchestratorAddon;
|
|
7
|
+
exports.default = require_builtins_backup_orchestrator_backup_orchestrator_addon.BackupOrchestratorAddon;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { AddonApi } from '@camstack/types';
|
|
2
|
+
import { ArchiveManifest } from '../system-backup/system-backup.service.js';
|
|
3
|
+
/** File path (relative to the location root) where the index lives. */
|
|
4
|
+
export declare const MANIFESTS_FILENAME = "manifests.json";
|
|
5
|
+
export interface ManifestArchiveEntry {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
/** Filename inside the location (e.g. `<id>.tar.gz`). */
|
|
8
|
+
readonly filename: string;
|
|
9
|
+
readonly createdAt: number;
|
|
10
|
+
readonly sizeBytes: number;
|
|
11
|
+
readonly label?: string;
|
|
12
|
+
/** Snapshot of the embedded `.camstack-backup-manifest.json`. */
|
|
13
|
+
readonly manifest: ArchiveManifest;
|
|
14
|
+
}
|
|
15
|
+
export interface LocationBackupManifest {
|
|
16
|
+
readonly version: 1;
|
|
17
|
+
readonly archives: readonly ManifestArchiveEntry[];
|
|
18
|
+
}
|
|
19
|
+
/** Subset of `AddonApi['storage']` the manifest store consumes. */
|
|
20
|
+
export type ManifestStorageApi = Pick<AddonApi['storage'], 'read' | 'write' | 'exists'>;
|
|
21
|
+
/**
|
|
22
|
+
* Subset of `AddonApi['storage']` consumed by the chunked-download
|
|
23
|
+
* helper. Sourced from the same generated type so the contract stays
|
|
24
|
+
* in lockstep with the live cap surface.
|
|
25
|
+
*/
|
|
26
|
+
export type ChunkedDownloadApi = Pick<AddonApi['storage'], 'beginDownload' | 'readChunk' | 'endDownload'>;
|
|
27
|
+
/**
|
|
28
|
+
* Read the per-location manifest. Returns an empty manifest on first
|
|
29
|
+
* use (when `manifests.json` doesn't exist) or when the file is
|
|
30
|
+
* unreadable / corrupt — operators see destination state degrade
|
|
31
|
+
* gracefully rather than the orchestrator crashing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readLocationManifest(api: ManifestStorageApi, locationId: string): Promise<LocationBackupManifest>;
|
|
34
|
+
export declare function writeLocationManifest(api: ManifestStorageApi, locationId: string, manifest: LocationBackupManifest): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Decode the raw bytes of `manifests.json`. Falls back to an empty
|
|
37
|
+
* manifest on JSON-parse / shape-validation failure — same defensive
|
|
38
|
+
* stance as the legacy `LocalBackupService.ensureManifestsLoaded`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseManifestBytes(bytes: Uint8Array): LocationBackupManifest;
|
|
41
|
+
/**
|
|
42
|
+
* Build a `ManifestArchiveEntry` from the raw inputs collected during
|
|
43
|
+
* a successful upload. Pure transform — no I/O — kept here so the
|
|
44
|
+
* triggerBackup path stays terse.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildArchiveEntry(input: {
|
|
47
|
+
id: string;
|
|
48
|
+
filename: string;
|
|
49
|
+
createdAt: number;
|
|
50
|
+
sizeBytes: number;
|
|
51
|
+
label?: string;
|
|
52
|
+
manifest: ArchiveManifest;
|
|
53
|
+
}): ManifestArchiveEntry;
|
|
54
|
+
/**
|
|
55
|
+
* Pure retention split: given an archive list and the operator's
|
|
56
|
+
* `retentionCount`, return `{ keep, drop }` where `keep` is the most-
|
|
57
|
+
* recent N archives (newest first) and `drop` is the older overflow.
|
|
58
|
+
*
|
|
59
|
+
* `retentionCount <= 0` is treated as "no pruning" — defensive against
|
|
60
|
+
* a config value that would otherwise wipe every archive on the next
|
|
61
|
+
* write.
|
|
62
|
+
*/
|
|
63
|
+
export declare function applyRetention(archives: readonly ManifestArchiveEntry[], retentionCount: number): {
|
|
64
|
+
readonly keep: readonly ManifestArchiveEntry[];
|
|
65
|
+
readonly drop: readonly ManifestArchiveEntry[];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Per-location async mutex. The orchestrator owns one instance and
|
|
69
|
+
* funnels every read-modify-write of `manifests.json` through it so
|
|
70
|
+
* parallel destination uploads (within the same location) commit in
|
|
71
|
+
* arrival order. Across locations the operations run in parallel —
|
|
72
|
+
* each location keys its own promise chain.
|
|
73
|
+
*/
|
|
74
|
+
export declare class LocationManifestLock {
|
|
75
|
+
private readonly chains;
|
|
76
|
+
run<T>(locationId: string, fn: () => Promise<T>): Promise<T>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=manifest-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-store.d.ts","sourceRoot":"","sources":["../../../src/builtins/backup-orchestrator/manifest-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAEhF,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD;AAED,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;AAEvF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC,CAAA;AAEzG;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAgBjC;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,sBAAsB,CAS5E;AAmCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,eAAe,CAAA;CAC1B,GAAG,oBAAoB,CASvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,cAAc,EAAE,MAAM,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAAE,CAUpG;AAED;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAEpD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CA0BnE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ILogDestination, LogEntry, LogFilter } from '@camstack/types';
|
|
2
|
+
interface ConsoleConfig {
|
|
3
|
+
/** Minimum log level to emit. Entries below this level are dropped. */
|
|
4
|
+
readonly level?: 'debug' | 'info' | 'warn' | 'error';
|
|
5
|
+
}
|
|
6
|
+
export declare class ConsoleDestination implements ILogDestination {
|
|
7
|
+
private minLevel;
|
|
8
|
+
initialize(config?: ConsoleConfig): Promise<void>;
|
|
9
|
+
write(entry: LogEntry): void;
|
|
10
|
+
query(_filter: LogFilter): Promise<readonly LogEntry[]>;
|
|
11
|
+
shutdown(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=console-destination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-destination.d.ts","sourceRoot":"","sources":["../../../src/builtins/console-logging/console-destination.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3E,UAAU,aAAa;IACrB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CACrD;AAMD,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,QAAQ,CAAI;IAEd,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAWtB,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAKvD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ProviderRegistration, BaseAddon } from '@camstack/types';
|
|
2
|
+
import { ConsoleDestination } from './console-destination.js';
|
|
3
|
+
interface ConsoleConfig {
|
|
4
|
+
readonly level: 'debug' | 'info' | 'warn' | 'error';
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Console logging addon — zero-dependency stdout/stderr sink that
|
|
8
|
+
* produces the same canonical line format as the Winston built-in.
|
|
9
|
+
* Registers as a `log-destination` capability provider so the shared
|
|
10
|
+
* LogManager fans every entry to both sinks when both are active.
|
|
11
|
+
*
|
|
12
|
+
* Settings live under Cluster → NodeDetail → Settings alongside the
|
|
13
|
+
* Winston addon. Disable one without disabling the other — the
|
|
14
|
+
* LogManager keeps working as long as at least one destination is
|
|
15
|
+
* registered.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ConsoleLoggingAddon extends BaseAddon<ConsoleConfig> {
|
|
18
|
+
private destination;
|
|
19
|
+
constructor();
|
|
20
|
+
protected onInitialize(): Promise<ProviderRegistration[]>;
|
|
21
|
+
protected onShutdown(): Promise<void>;
|
|
22
|
+
getDestination(): ConsoleDestination;
|
|
23
|
+
protected globalSettingsSchema(): import('@camstack/types').ConfigUISchema;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=console-logging.addon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-logging.addon.d.ts","sourceRoot":"","sources":["../../../src/builtins/console-logging/console-logging.addon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAA4B,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,UAAU,aAAa;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CACpD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC/D,OAAO,CAAC,WAAW,CAAkC;;cAMrC,YAAY,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;cAO/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,cAAc,IAAI,kBAAkB;IAKpC,SAAS,CAAC,oBAAoB;CA0B/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builtins/console-logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
require("../../chunk-C13QxCFV.js");
|
|
6
|
+
const require_formatter = require("../../formatter-Dr_6NNZc.js");
|
|
7
|
+
let _camstack_types = require("@camstack/types");
|
|
8
|
+
//#region src/builtins/console-logging/console-destination.ts
|
|
9
|
+
var LEVEL_RANK = {
|
|
10
|
+
debug: 0,
|
|
11
|
+
info: 1,
|
|
12
|
+
warn: 2,
|
|
13
|
+
error: 3
|
|
14
|
+
};
|
|
15
|
+
var ConsoleDestination = class {
|
|
16
|
+
minLevel = 0;
|
|
17
|
+
async initialize(config) {
|
|
18
|
+
this.minLevel = LEVEL_RANK[config?.level ?? "info"] ?? 1;
|
|
19
|
+
}
|
|
20
|
+
write(entry) {
|
|
21
|
+
if ((LEVEL_RANK[entry.level] ?? 1) < this.minLevel) return;
|
|
22
|
+
const line = require_formatter.formatLogLine(entry, { colorize: true });
|
|
23
|
+
if (entry.level === "error") console.error(line);
|
|
24
|
+
else if (entry.level === "warn") console.warn(line);
|
|
25
|
+
else console.log(line);
|
|
26
|
+
}
|
|
27
|
+
async query(_filter) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
async shutdown() {}
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/builtins/console-logging/console-logging.addon.ts
|
|
34
|
+
/**
|
|
35
|
+
* Console logging addon — zero-dependency stdout/stderr sink that
|
|
36
|
+
* produces the same canonical line format as the Winston built-in.
|
|
37
|
+
* Registers as a `log-destination` capability provider so the shared
|
|
38
|
+
* LogManager fans every entry to both sinks when both are active.
|
|
39
|
+
*
|
|
40
|
+
* Settings live under Cluster → NodeDetail → Settings alongside the
|
|
41
|
+
* Winston addon. Disable one without disabling the other — the
|
|
42
|
+
* LogManager keeps working as long as at least one destination is
|
|
43
|
+
* registered.
|
|
44
|
+
*/
|
|
45
|
+
var ConsoleLoggingAddon = class extends _camstack_types.BaseAddon {
|
|
46
|
+
destination = null;
|
|
47
|
+
constructor() {
|
|
48
|
+
super({ level: "info" });
|
|
49
|
+
}
|
|
50
|
+
async onInitialize() {
|
|
51
|
+
this.destination = new ConsoleDestination();
|
|
52
|
+
await this.destination.initialize({ level: this.config.level });
|
|
53
|
+
this.ctx.logger.info("Console logging initialized");
|
|
54
|
+
return [{
|
|
55
|
+
capability: _camstack_types.logDestinationCapability,
|
|
56
|
+
provider: this.destination
|
|
57
|
+
}];
|
|
58
|
+
}
|
|
59
|
+
async onShutdown() {
|
|
60
|
+
await this.destination?.shutdown();
|
|
61
|
+
}
|
|
62
|
+
getDestination() {
|
|
63
|
+
if (!this.destination) throw new Error("Console logging not initialized");
|
|
64
|
+
return this.destination;
|
|
65
|
+
}
|
|
66
|
+
globalSettingsSchema() {
|
|
67
|
+
return this.schema({ sections: [{
|
|
68
|
+
id: "console-logging",
|
|
69
|
+
title: "Console Logging",
|
|
70
|
+
description: "Minimum log level to emit on stdout/stderr. Independent from the rotated-file (Winston) destination.",
|
|
71
|
+
columns: 2,
|
|
72
|
+
fields: [this.field({
|
|
73
|
+
type: "select",
|
|
74
|
+
key: "level",
|
|
75
|
+
label: "Log Level",
|
|
76
|
+
default: "info",
|
|
77
|
+
options: [
|
|
78
|
+
{
|
|
79
|
+
value: "debug",
|
|
80
|
+
label: "Debug"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
value: "info",
|
|
84
|
+
label: "Info"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
value: "warn",
|
|
88
|
+
label: "Warn"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
value: "error",
|
|
92
|
+
label: "Error"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
})]
|
|
96
|
+
}] });
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
//#endregion
|
|
100
|
+
exports.ConsoleDestination = ConsoleDestination;
|
|
101
|
+
exports.ConsoleDestination$1 = ConsoleDestination;
|
|
102
|
+
exports.ConsoleLoggingAddon = ConsoleLoggingAddon;
|
|
103
|
+
exports.ConsoleLoggingAddon$1 = ConsoleLoggingAddon;
|
|
104
|
+
exports.default = ConsoleLoggingAddon;
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/builtins/console-logging/console-destination.ts","../../../src/builtins/console-logging/console-logging.addon.ts"],"sourcesContent":["/**\n * Zero-dependency log destination that writes every entry to stdout /\n * stderr via the shared `formatLogLine` formatter. Same surface as\n * `WinstonDestination` (full `ILogDestination` contract) but without\n * the rotating-file transport — ideal fallback when the Winston addon\n * is disabled or unavailable (e.g. bare-bones agents, tests).\n */\nimport type { ILogDestination, LogEntry, LogFilter } from '@camstack/types'\nimport { formatLogLine } from '../../logging/formatter.js'\n\ninterface ConsoleConfig {\n /** Minimum log level to emit. Entries below this level are dropped. */\n readonly level?: 'debug' | 'info' | 'warn' | 'error'\n}\n\nconst LEVEL_RANK: Readonly<Record<string, number>> = {\n debug: 0, info: 1, warn: 2, error: 3,\n}\n\nexport class ConsoleDestination implements ILogDestination {\n private minLevel = 0\n\n async initialize(config?: ConsoleConfig): Promise<void> {\n this.minLevel = LEVEL_RANK[config?.level ?? 'info'] ?? 1\n }\n\n write(entry: LogEntry): void {\n const rank = LEVEL_RANK[entry.level] ?? 1\n if (rank < this.minLevel) return\n // Always request ANSI colours for the console sink. The formatter still\n // respects `NO_COLOR` so operators can opt out globally.\n const line = formatLogLine(entry, { colorize: true })\n if (entry.level === 'error') console.error(line)\n else if (entry.level === 'warn') console.warn(line)\n else console.log(line)\n }\n\n async query(_filter: LogFilter): Promise<readonly LogEntry[]> {\n // Console has no persistence — queries are served by other destinations.\n return []\n }\n\n async shutdown(): Promise<void> {\n // Nothing to flush — stdout/stderr are process-owned.\n }\n}\n","import type { ProviderRegistration } from '@camstack/types'\nimport { BaseAddon, logDestinationCapability } from '@camstack/types'\nimport { ConsoleDestination } from './console-destination.js'\n\ninterface ConsoleConfig {\n readonly level: 'debug' | 'info' | 'warn' | 'error'\n}\n\n/**\n * Console logging addon — zero-dependency stdout/stderr sink that\n * produces the same canonical line format as the Winston built-in.\n * Registers as a `log-destination` capability provider so the shared\n * LogManager fans every entry to both sinks when both are active.\n *\n * Settings live under Cluster → NodeDetail → Settings alongside the\n * Winston addon. Disable one without disabling the other — the\n * LogManager keeps working as long as at least one destination is\n * registered.\n */\nexport class ConsoleLoggingAddon extends BaseAddon<ConsoleConfig> {\n private destination: ConsoleDestination | null = null\n\n constructor() {\n super({ level: 'info' })\n }\n\n protected async onInitialize(): Promise<ProviderRegistration[]> {\n this.destination = new ConsoleDestination()\n await this.destination.initialize({ level: this.config.level })\n this.ctx.logger.info('Console logging initialized')\n return [{ capability: logDestinationCapability, provider: this.destination }]\n }\n\n protected async onShutdown(): Promise<void> {\n await this.destination?.shutdown()\n }\n\n getDestination(): ConsoleDestination {\n if (!this.destination) throw new Error('Console logging not initialized')\n return this.destination\n }\n\n protected globalSettingsSchema() {\n return this.schema({\n sections: [\n {\n id: 'console-logging',\n title: 'Console Logging',\n description: 'Minimum log level to emit on stdout/stderr. Independent from the rotated-file (Winston) destination.',\n columns: 2,\n fields: [\n this.field({\n type: 'select',\n key: 'level',\n label: 'Log Level',\n default: 'info',\n options: [\n { value: 'debug', label: 'Debug' },\n { value: 'info', label: 'Info' },\n { value: 'warn', label: 'Warn' },\n { value: 'error', label: 'Error' },\n ],\n }),\n ],\n },\n ],\n })\n }\n}\n"],"mappings":";;;;;;;;AAeA,IAAM,aAA+C;CACnD,OAAO;CAAG,MAAM;CAAG,MAAM;CAAG,OAAO;CACpC;AAED,IAAa,qBAAb,MAA2D;CACzD,WAAmB;CAEnB,MAAM,WAAW,QAAuC;EACtD,KAAK,WAAW,WAAW,QAAQ,SAAS,WAAW;;CAGzD,MAAM,OAAuB;EAE3B,KADa,WAAW,MAAM,UAAU,KAC7B,KAAK,UAAU;EAG1B,MAAM,OAAO,kBAAA,cAAc,OAAO,EAAE,UAAU,MAAM,CAAC;EACrD,IAAI,MAAM,UAAU,SAAS,QAAQ,MAAM,KAAK;OAC3C,IAAI,MAAM,UAAU,QAAQ,QAAQ,KAAK,KAAK;OAC9C,QAAQ,IAAI,KAAK;;CAGxB,MAAM,MAAM,SAAkD;EAE5D,OAAO,EAAE;;CAGX,MAAM,WAA0B;;;;;;;;;;;;;;;ACvBlC,IAAa,sBAAb,cAAyC,gBAAA,UAAyB;CAChE,cAAiD;CAEjD,cAAc;EACZ,MAAM,EAAE,OAAO,QAAQ,CAAC;;CAG1B,MAAgB,eAAgD;EAC9D,KAAK,cAAc,IAAI,oBAAoB;EAC3C,MAAM,KAAK,YAAY,WAAW,EAAE,OAAO,KAAK,OAAO,OAAO,CAAC;EAC/D,KAAK,IAAI,OAAO,KAAK,8BAA8B;EACnD,OAAO,CAAC;GAAE,YAAY,gBAAA;GAA0B,UAAU,KAAK;GAAa,CAAC;;CAG/E,MAAgB,aAA4B;EAC1C,MAAM,KAAK,aAAa,UAAU;;CAGpC,iBAAqC;EACnC,IAAI,CAAC,KAAK,aAAa,MAAM,IAAI,MAAM,kCAAkC;EACzE,OAAO,KAAK;;CAGd,uBAAiC;EAC/B,OAAO,KAAK,OAAO,EACjB,UAAU,CACR;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,SAAS;GACT,QAAQ,CACN,KAAK,MAAM;IACT,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;KACP;MAAE,OAAO;MAAS,OAAO;MAAS;KAClC;MAAE,OAAO;MAAQ,OAAO;MAAQ;KAChC;MAAE,OAAO;MAAQ,OAAO;MAAQ;KAChC;MAAE,OAAO;MAAS,OAAO;MAAS;KACnC;IACF,CAAC,CACH;GACF,CACF,EACF,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { t as formatLogLine } from "../../formatter-C-5An4Bl.mjs";
|
|
2
|
+
import { BaseAddon, logDestinationCapability } from "@camstack/types";
|
|
3
|
+
//#region src/builtins/console-logging/console-destination.ts
|
|
4
|
+
var LEVEL_RANK = {
|
|
5
|
+
debug: 0,
|
|
6
|
+
info: 1,
|
|
7
|
+
warn: 2,
|
|
8
|
+
error: 3
|
|
9
|
+
};
|
|
10
|
+
var ConsoleDestination = class {
|
|
11
|
+
minLevel = 0;
|
|
12
|
+
async initialize(config) {
|
|
13
|
+
this.minLevel = LEVEL_RANK[config?.level ?? "info"] ?? 1;
|
|
14
|
+
}
|
|
15
|
+
write(entry) {
|
|
16
|
+
if ((LEVEL_RANK[entry.level] ?? 1) < this.minLevel) return;
|
|
17
|
+
const line = formatLogLine(entry, { colorize: true });
|
|
18
|
+
if (entry.level === "error") console.error(line);
|
|
19
|
+
else if (entry.level === "warn") console.warn(line);
|
|
20
|
+
else console.log(line);
|
|
21
|
+
}
|
|
22
|
+
async query(_filter) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
async shutdown() {}
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/builtins/console-logging/console-logging.addon.ts
|
|
29
|
+
/**
|
|
30
|
+
* Console logging addon — zero-dependency stdout/stderr sink that
|
|
31
|
+
* produces the same canonical line format as the Winston built-in.
|
|
32
|
+
* Registers as a `log-destination` capability provider so the shared
|
|
33
|
+
* LogManager fans every entry to both sinks when both are active.
|
|
34
|
+
*
|
|
35
|
+
* Settings live under Cluster → NodeDetail → Settings alongside the
|
|
36
|
+
* Winston addon. Disable one without disabling the other — the
|
|
37
|
+
* LogManager keeps working as long as at least one destination is
|
|
38
|
+
* registered.
|
|
39
|
+
*/
|
|
40
|
+
var ConsoleLoggingAddon = class extends BaseAddon {
|
|
41
|
+
destination = null;
|
|
42
|
+
constructor() {
|
|
43
|
+
super({ level: "info" });
|
|
44
|
+
}
|
|
45
|
+
async onInitialize() {
|
|
46
|
+
this.destination = new ConsoleDestination();
|
|
47
|
+
await this.destination.initialize({ level: this.config.level });
|
|
48
|
+
this.ctx.logger.info("Console logging initialized");
|
|
49
|
+
return [{
|
|
50
|
+
capability: logDestinationCapability,
|
|
51
|
+
provider: this.destination
|
|
52
|
+
}];
|
|
53
|
+
}
|
|
54
|
+
async onShutdown() {
|
|
55
|
+
await this.destination?.shutdown();
|
|
56
|
+
}
|
|
57
|
+
getDestination() {
|
|
58
|
+
if (!this.destination) throw new Error("Console logging not initialized");
|
|
59
|
+
return this.destination;
|
|
60
|
+
}
|
|
61
|
+
globalSettingsSchema() {
|
|
62
|
+
return this.schema({ sections: [{
|
|
63
|
+
id: "console-logging",
|
|
64
|
+
title: "Console Logging",
|
|
65
|
+
description: "Minimum log level to emit on stdout/stderr. Independent from the rotated-file (Winston) destination.",
|
|
66
|
+
columns: 2,
|
|
67
|
+
fields: [this.field({
|
|
68
|
+
type: "select",
|
|
69
|
+
key: "level",
|
|
70
|
+
label: "Log Level",
|
|
71
|
+
default: "info",
|
|
72
|
+
options: [
|
|
73
|
+
{
|
|
74
|
+
value: "debug",
|
|
75
|
+
label: "Debug"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
value: "info",
|
|
79
|
+
label: "Info"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
value: "warn",
|
|
83
|
+
label: "Warn"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
value: "error",
|
|
87
|
+
label: "Error"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
})]
|
|
91
|
+
}] });
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
//#endregion
|
|
95
|
+
export { ConsoleDestination, ConsoleLoggingAddon, ConsoleLoggingAddon as default };
|
|
96
|
+
|
|
97
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/builtins/console-logging/console-destination.ts","../../../src/builtins/console-logging/console-logging.addon.ts"],"sourcesContent":["/**\n * Zero-dependency log destination that writes every entry to stdout /\n * stderr via the shared `formatLogLine` formatter. Same surface as\n * `WinstonDestination` (full `ILogDestination` contract) but without\n * the rotating-file transport — ideal fallback when the Winston addon\n * is disabled or unavailable (e.g. bare-bones agents, tests).\n */\nimport type { ILogDestination, LogEntry, LogFilter } from '@camstack/types'\nimport { formatLogLine } from '../../logging/formatter.js'\n\ninterface ConsoleConfig {\n /** Minimum log level to emit. Entries below this level are dropped. */\n readonly level?: 'debug' | 'info' | 'warn' | 'error'\n}\n\nconst LEVEL_RANK: Readonly<Record<string, number>> = {\n debug: 0, info: 1, warn: 2, error: 3,\n}\n\nexport class ConsoleDestination implements ILogDestination {\n private minLevel = 0\n\n async initialize(config?: ConsoleConfig): Promise<void> {\n this.minLevel = LEVEL_RANK[config?.level ?? 'info'] ?? 1\n }\n\n write(entry: LogEntry): void {\n const rank = LEVEL_RANK[entry.level] ?? 1\n if (rank < this.minLevel) return\n // Always request ANSI colours for the console sink. The formatter still\n // respects `NO_COLOR` so operators can opt out globally.\n const line = formatLogLine(entry, { colorize: true })\n if (entry.level === 'error') console.error(line)\n else if (entry.level === 'warn') console.warn(line)\n else console.log(line)\n }\n\n async query(_filter: LogFilter): Promise<readonly LogEntry[]> {\n // Console has no persistence — queries are served by other destinations.\n return []\n }\n\n async shutdown(): Promise<void> {\n // Nothing to flush — stdout/stderr are process-owned.\n }\n}\n","import type { ProviderRegistration } from '@camstack/types'\nimport { BaseAddon, logDestinationCapability } from '@camstack/types'\nimport { ConsoleDestination } from './console-destination.js'\n\ninterface ConsoleConfig {\n readonly level: 'debug' | 'info' | 'warn' | 'error'\n}\n\n/**\n * Console logging addon — zero-dependency stdout/stderr sink that\n * produces the same canonical line format as the Winston built-in.\n * Registers as a `log-destination` capability provider so the shared\n * LogManager fans every entry to both sinks when both are active.\n *\n * Settings live under Cluster → NodeDetail → Settings alongside the\n * Winston addon. Disable one without disabling the other — the\n * LogManager keeps working as long as at least one destination is\n * registered.\n */\nexport class ConsoleLoggingAddon extends BaseAddon<ConsoleConfig> {\n private destination: ConsoleDestination | null = null\n\n constructor() {\n super({ level: 'info' })\n }\n\n protected async onInitialize(): Promise<ProviderRegistration[]> {\n this.destination = new ConsoleDestination()\n await this.destination.initialize({ level: this.config.level })\n this.ctx.logger.info('Console logging initialized')\n return [{ capability: logDestinationCapability, provider: this.destination }]\n }\n\n protected async onShutdown(): Promise<void> {\n await this.destination?.shutdown()\n }\n\n getDestination(): ConsoleDestination {\n if (!this.destination) throw new Error('Console logging not initialized')\n return this.destination\n }\n\n protected globalSettingsSchema() {\n return this.schema({\n sections: [\n {\n id: 'console-logging',\n title: 'Console Logging',\n description: 'Minimum log level to emit on stdout/stderr. Independent from the rotated-file (Winston) destination.',\n columns: 2,\n fields: [\n this.field({\n type: 'select',\n key: 'level',\n label: 'Log Level',\n default: 'info',\n options: [\n { value: 'debug', label: 'Debug' },\n { value: 'info', label: 'Info' },\n { value: 'warn', label: 'Warn' },\n { value: 'error', label: 'Error' },\n ],\n }),\n ],\n },\n ],\n })\n }\n}\n"],"mappings":";;;AAeA,IAAM,aAA+C;CACnD,OAAO;CAAG,MAAM;CAAG,MAAM;CAAG,OAAO;CACpC;AAED,IAAa,qBAAb,MAA2D;CACzD,WAAmB;CAEnB,MAAM,WAAW,QAAuC;EACtD,KAAK,WAAW,WAAW,QAAQ,SAAS,WAAW;;CAGzD,MAAM,OAAuB;EAE3B,KADa,WAAW,MAAM,UAAU,KAC7B,KAAK,UAAU;EAG1B,MAAM,OAAO,cAAc,OAAO,EAAE,UAAU,MAAM,CAAC;EACrD,IAAI,MAAM,UAAU,SAAS,QAAQ,MAAM,KAAK;OAC3C,IAAI,MAAM,UAAU,QAAQ,QAAQ,KAAK,KAAK;OAC9C,QAAQ,IAAI,KAAK;;CAGxB,MAAM,MAAM,SAAkD;EAE5D,OAAO,EAAE;;CAGX,MAAM,WAA0B;;;;;;;;;;;;;;;ACvBlC,IAAa,sBAAb,cAAyC,UAAyB;CAChE,cAAiD;CAEjD,cAAc;EACZ,MAAM,EAAE,OAAO,QAAQ,CAAC;;CAG1B,MAAgB,eAAgD;EAC9D,KAAK,cAAc,IAAI,oBAAoB;EAC3C,MAAM,KAAK,YAAY,WAAW,EAAE,OAAO,KAAK,OAAO,OAAO,CAAC;EAC/D,KAAK,IAAI,OAAO,KAAK,8BAA8B;EACnD,OAAO,CAAC;GAAE,YAAY;GAA0B,UAAU,KAAK;GAAa,CAAC;;CAG/E,MAAgB,aAA4B;EAC1C,MAAM,KAAK,aAAa,UAAU;;CAGpC,iBAAqC;EACnC,IAAI,CAAC,KAAK,aAAa,MAAM,IAAI,MAAM,kCAAkC;EACzE,OAAO,KAAK;;CAGd,uBAAiC;EAC/B,OAAO,KAAK,OAAO,EACjB,UAAU,CACR;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,SAAS;GACT,QAAQ,CACN,KAAK,MAAM;IACT,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;KACP;MAAE,OAAO;MAAS,OAAO;MAAS;KAClC;MAAE,OAAO;MAAQ,OAAO;MAAQ;KAChC;MAAE,OAAO;MAAQ,OAAO;MAAQ;KAChC;MAAE,OAAO;MAAS,OAAO;MAAS;KACnC;IACF,CAAC,CACH;GACF,CACF,EACF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IEventBus, SystemEvent } from '@camstack/types';
|
|
2
|
+
export interface DeviceEventPropagatorOptions {
|
|
3
|
+
readonly eventBus: IEventBus;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the numeric parent id of a device, or `null` when the
|
|
6
|
+
* device has no parent (or was deleted). The propagator injects a
|
|
7
|
+
* closure over the hub's `DeviceRegistry` so the lookup is in-
|
|
8
|
+
* process and O(1) per call.
|
|
9
|
+
*/
|
|
10
|
+
readonly getParentOf: (deviceId: number) => number | null;
|
|
11
|
+
/** Structured logger for anti-cycle + anti-loop diagnostics. */
|
|
12
|
+
readonly logger: {
|
|
13
|
+
warn: (msg: string, meta?: Record<string, unknown>) => void;
|
|
14
|
+
debug: (msg: string, meta?: Record<string, unknown>) => void;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare class DeviceEventPropagator {
|
|
18
|
+
private readonly opts;
|
|
19
|
+
private unsubscribe;
|
|
20
|
+
constructor(opts: DeviceEventPropagatorOptions);
|
|
21
|
+
start(): void;
|
|
22
|
+
stop(): void;
|
|
23
|
+
/** Exposed for tests — lets them inject events without the full bus. */
|
|
24
|
+
handle(ev: SystemEvent): void;
|
|
25
|
+
private resolveParentChain;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=device-event-propagator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-event-propagator.d.ts","sourceRoot":"","sources":["../../../src/builtins/device-manager/device-event-propagator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAqC1E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IACzD,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE;QACf,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;QAC3D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;KAC7D,CAAA;CACF;AAED,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,WAAW,CAA4B;gBAElB,IAAI,EAAE,4BAA4B;IAE/D,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAMZ,wEAAwE;IACxE,MAAM,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAyB7B,OAAO,CAAC,kBAAkB;CAyB3B"}
|