@omnitron-dev/omnitron 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/BUILD.json +5 -0
- package/dist/cli/omnitron.js +375 -29
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/cluster/cluster.rpc-service.d.ts +40 -0
- package/dist/cluster/cluster.rpc-service.d.ts.map +1 -1
- package/dist/cluster/cluster.rpc-service.js +49 -3
- package/dist/cluster/cluster.rpc-service.js.map +1 -1
- package/dist/cluster/config-sync.d.ts.map +1 -1
- package/dist/cluster/config-sync.js.map +1 -1
- package/dist/cluster/leader-election.d.ts +90 -2
- package/dist/cluster/leader-election.d.ts.map +1 -1
- package/dist/cluster/leader-election.js +176 -22
- package/dist/cluster/leader-election.js.map +1 -1
- package/dist/cluster/mesh-link.d.ts +136 -0
- package/dist/cluster/mesh-link.d.ts.map +1 -0
- package/dist/cluster/mesh-link.js +212 -0
- package/dist/cluster/mesh-link.js.map +1 -0
- package/dist/cluster/mesh.d.ts +59 -0
- package/dist/cluster/mesh.d.ts.map +1 -0
- package/dist/cluster/mesh.js +117 -0
- package/dist/cluster/mesh.js.map +1 -0
- package/dist/cluster/slave-connector.d.ts +193 -9
- package/dist/cluster/slave-connector.d.ts.map +1 -1
- package/dist/cluster/slave-connector.js +409 -37
- package/dist/cluster/slave-connector.js.map +1 -1
- package/dist/commands/audit.d.ts +65 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +233 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/backup.d.ts +4 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +255 -33
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cluster.d.ts.map +1 -1
- package/dist/commands/cluster.js +78 -47
- package/dist/commands/cluster.js.map +1 -1
- package/dist/commands/daemon-cmd.d.ts +7 -1
- package/dist/commands/daemon-cmd.d.ts.map +1 -1
- package/dist/commands/daemon-cmd.js +87 -21
- package/dist/commands/daemon-cmd.js.map +1 -1
- package/dist/commands/daemon-required.d.ts +34 -0
- package/dist/commands/daemon-required.d.ts.map +1 -0
- package/dist/commands/daemon-required.js +92 -0
- package/dist/commands/daemon-required.js.map +1 -0
- package/dist/commands/deploy.d.ts +70 -8
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +99 -64
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/discover.d.ts +25 -4
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +155 -102
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts +293 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +1706 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/env.d.ts +8 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +13 -8
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +3 -2
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/fleet-asking.d.ts +87 -0
- package/dist/commands/fleet-asking.d.ts.map +1 -0
- package/dist/commands/fleet-asking.js +176 -0
- package/dist/commands/fleet-asking.js.map +1 -0
- package/dist/commands/fleet-recover.d.ts +2 -0
- package/dist/commands/fleet-recover.d.ts.map +1 -0
- package/dist/commands/fleet-recover.js +30 -0
- package/dist/commands/fleet-recover.js.map +1 -0
- package/dist/commands/fleet.d.ts +18 -0
- package/dist/commands/fleet.d.ts.map +1 -1
- package/dist/commands/fleet.js +314 -74
- package/dist/commands/fleet.js.map +1 -1
- package/dist/commands/health-check.d.ts +8 -6
- package/dist/commands/health-check.d.ts.map +1 -1
- package/dist/commands/health-check.js +26 -23
- package/dist/commands/health-check.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +22 -8
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host-ingress.d.ts +3 -0
- package/dist/commands/host-ingress.d.ts.map +1 -0
- package/dist/commands/host-ingress.js +31 -0
- package/dist/commands/host-ingress.js.map +1 -0
- package/dist/commands/infra.d.ts +42 -1
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +418 -49
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect-graph.d.ts.map +1 -1
- package/dist/commands/inspect-graph.js +2 -6
- package/dist/commands/inspect-graph.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +110 -14
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/k8s.d.ts.map +1 -1
- package/dist/commands/k8s.js +23 -18
- package/dist/commands/k8s.js.map +1 -1
- package/dist/commands/kb.d.ts.map +1 -1
- package/dist/commands/kb.js +88 -29
- package/dist/commands/kb.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +21 -9
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/log-health.d.ts +120 -0
- package/dist/commands/log-health.d.ts.map +1 -0
- package/dist/commands/log-health.js +212 -0
- package/dist/commands/log-health.js.map +1 -0
- package/dist/commands/logs.d.ts +96 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +522 -196
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +35 -17
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/monit.d.ts.map +1 -1
- package/dist/commands/monit.js +3 -2
- package/dist/commands/monit.js.map +1 -1
- package/dist/commands/node.d.ts +56 -0
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +297 -69
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/output.d.ts +10 -0
- package/dist/commands/output.d.ts.map +1 -1
- package/dist/commands/output.js +41 -1
- package/dist/commands/output.js.map +1 -1
- package/dist/commands/pipeline.d.ts.map +1 -1
- package/dist/commands/pipeline.js +33 -19
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/project.d.ts +19 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +125 -27
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/release-store.d.ts +28 -0
- package/dist/commands/release-store.d.ts.map +1 -0
- package/dist/commands/release-store.js +158 -0
- package/dist/commands/release-store.js.map +1 -0
- package/dist/commands/release.d.ts +61 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +555 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/reload.d.ts +16 -0
- package/dist/commands/reload.d.ts.map +1 -1
- package/dist/commands/reload.js +21 -5
- package/dist/commands/reload.js.map +1 -1
- package/dist/commands/remote.d.ts +40 -0
- package/dist/commands/remote.d.ts.map +1 -1
- package/dist/commands/remote.js +146 -35
- package/dist/commands/remote.js.map +1 -1
- package/dist/commands/restart.d.ts +16 -0
- package/dist/commands/restart.d.ts.map +1 -1
- package/dist/commands/restart.js +21 -5
- package/dist/commands/restart.js.map +1 -1
- package/dist/commands/scale.d.ts.map +1 -1
- package/dist/commands/scale.js +4 -3
- package/dist/commands/scale.js.map +1 -1
- package/dist/commands/secret.d.ts +54 -0
- package/dist/commands/secret.d.ts.map +1 -1
- package/dist/commands/secret.js +236 -34
- package/dist/commands/secret.js.map +1 -1
- package/dist/commands/service-units.d.ts +181 -0
- package/dist/commands/service-units.d.ts.map +1 -0
- package/dist/commands/service-units.js +291 -0
- package/dist/commands/service-units.js.map +1 -0
- package/dist/commands/service.d.ts +39 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +370 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/spinner.d.ts +29 -0
- package/dist/commands/spinner.d.ts.map +1 -0
- package/dist/commands/spinner.js +44 -0
- package/dist/commands/spinner.js.map +1 -0
- package/dist/commands/stack.d.ts +49 -1
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +325 -12
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/start.d.ts +16 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +20 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +45 -29
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts +16 -0
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +34 -6
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tor.d.ts +14 -7
- package/dist/commands/tor.d.ts.map +1 -1
- package/dist/commands/tor.js +113 -33
- package/dist/commands/tor.js.map +1 -1
- package/dist/commands/up.d.ts +85 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +180 -32
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/webapp.d.ts.map +1 -1
- package/dist/commands/webapp.js +2 -1
- package/dist/commands/webapp.js.map +1 -1
- package/dist/config/defaults.d.ts +16 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +26 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/define-ecosystem.d.ts.map +1 -1
- package/dist/config/define-ecosystem.js +2 -0
- package/dist/config/define-ecosystem.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +45 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +64 -6
- package/dist/config/loader.js.map +1 -1
- package/dist/config/omnitron-config.schema.d.ts.map +1 -1
- package/dist/config/omnitron-config.schema.js +16 -0
- package/dist/config/omnitron-config.schema.js.map +1 -1
- package/dist/config/types.d.ts +416 -44
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/config-reload.d.ts +27 -0
- package/dist/daemon/config-reload.d.ts.map +1 -0
- package/dist/daemon/config-reload.js +42 -0
- package/dist/daemon/config-reload.js.map +1 -0
- package/dist/daemon/daemon-client.d.ts +136 -2
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +307 -21
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.js +90 -30
- package/dist/daemon/daemon-entry.js.map +1 -1
- package/dist/daemon/daemon-scheduler.d.ts +4 -0
- package/dist/daemon/daemon-scheduler.d.ts.map +1 -1
- package/dist/daemon/daemon-scheduler.js +137 -7
- package/dist/daemon/daemon-scheduler.js.map +1 -1
- package/dist/daemon/daemon-state-store.service.d.ts +263 -0
- package/dist/daemon/daemon-state-store.service.d.ts.map +1 -0
- package/dist/daemon/daemon-state-store.service.js +446 -0
- package/dist/daemon/daemon-state-store.service.js.map +1 -0
- package/dist/daemon/daemon.d.ts +194 -4
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +1160 -157
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +163 -85
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +90 -1
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +439 -97
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/pid-manager.d.ts +16 -3
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +31 -4
- package/dist/daemon/pid-manager.js.map +1 -1
- package/dist/daemon/spawn-daemon.d.ts +73 -0
- package/dist/daemon/spawn-daemon.d.ts.map +1 -0
- package/dist/daemon/spawn-daemon.js +101 -0
- package/dist/daemon/spawn-daemon.js.map +1 -0
- package/dist/daemon/state-store.d.ts +65 -3
- package/dist/daemon/state-store.d.ts.map +1 -1
- package/dist/daemon/state-store.js +100 -58
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/database/connection.d.ts +71 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +129 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/dialect.d.ts +60 -0
- package/dist/database/dialect.d.ts.map +1 -0
- package/dist/database/dialect.js +80 -0
- package/dist/database/dialect.js.map +1 -0
- package/dist/database/migrate.d.ts +5 -2
- package/dist/database/migrate.d.ts.map +1 -1
- package/dist/database/migrate.js +23 -33
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/migration-runner.d.ts +50 -0
- package/dist/database/migration-runner.d.ts.map +1 -0
- package/dist/database/migration-runner.js +143 -0
- package/dist/database/migration-runner.js.map +1 -0
- package/dist/database/migrations/006_login_throttle.d.ts +17 -0
- package/dist/database/migrations/006_login_throttle.d.ts.map +1 -0
- package/dist/database/migrations/006_login_throttle.js +33 -0
- package/dist/database/migrations/006_login_throttle.js.map +1 -0
- package/dist/database/migrations/007_sync_ingested.d.ts +21 -0
- package/dist/database/migrations/007_sync_ingested.d.ts.map +1 -0
- package/dist/database/migrations/007_sync_ingested.js +39 -0
- package/dist/database/migrations/007_sync_ingested.js.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts +24 -0
- package/dist/database/migrations/008_node_health_version_text.d.ts.map +1 -0
- package/dist/database/migrations/008_node_health_version_text.js +35 -0
- package/dist/database/migrations/008_node_health_version_text.js.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts +40 -0
- package/dist/database/migrations/009_node_health_unmeasured.d.ts.map +1 -0
- package/dist/database/migrations/009_node_health_unmeasured.js +63 -0
- package/dist/database/migrations/009_node_health_unmeasured.js.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts +22 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.d.ts.map +1 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js +26 -0
- package/dist/database/migrations/010_metrics_raw_had_no_reader.js.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts +56 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.d.ts.map +1 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js +79 -0
- package/dist/database/migrations/011_alerts_nobody_had_to_write.js.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts +26 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.d.ts.map +1 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js +40 -0
- package/dist/database/migrations/012_a_disk_nobody_watched.js.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts +14 -0
- package/dist/database/migrations/013_an_alarm_delivered.d.ts.map +1 -0
- package/dist/database/migrations/013_an_alarm_delivered.js +28 -0
- package/dist/database/migrations/013_an_alarm_delivered.js.map +1 -0
- package/dist/database/migrations/index.d.ts +21 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +47 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/schema.d.ts +27 -11
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/sqlite-date-binding.d.ts +71 -0
- package/dist/database/sqlite-date-binding.d.ts.map +1 -0
- package/dist/database/sqlite-date-binding.js +174 -0
- package/dist/database/sqlite-date-binding.js.map +1 -0
- package/dist/execution/data-channel.d.ts +48 -0
- package/dist/execution/data-channel.d.ts.map +1 -0
- package/dist/execution/data-channel.js +55 -0
- package/dist/execution/data-channel.js.map +1 -0
- package/dist/execution/execution.service.d.ts +146 -0
- package/dist/execution/execution.service.d.ts.map +1 -1
- package/dist/execution/execution.service.js +330 -10
- package/dist/execution/execution.service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/infrastructure/bare-metal-plan.d.ts +208 -0
- package/dist/infrastructure/bare-metal-plan.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-plan.js +363 -0
- package/dist/infrastructure/bare-metal-plan.js.map +1 -0
- package/dist/infrastructure/bare-metal-runner.d.ts +65 -0
- package/dist/infrastructure/bare-metal-runner.d.ts.map +1 -0
- package/dist/infrastructure/bare-metal-runner.js +354 -0
- package/dist/infrastructure/bare-metal-runner.js.map +1 -0
- package/dist/infrastructure/config-payload.d.ts +149 -0
- package/dist/infrastructure/config-payload.d.ts.map +1 -0
- package/dist/infrastructure/config-payload.js +235 -0
- package/dist/infrastructure/config-payload.js.map +1 -0
- package/dist/infrastructure/container-runtime.d.ts +170 -10
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +565 -52
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/gateway-reachability.d.ts +85 -0
- package/dist/infrastructure/gateway-reachability.d.ts.map +1 -0
- package/dist/infrastructure/gateway-reachability.js +116 -0
- package/dist/infrastructure/gateway-reachability.js.map +1 -0
- package/dist/infrastructure/gateway-redis-db.d.ts +29 -0
- package/dist/infrastructure/gateway-redis-db.d.ts.map +1 -0
- package/dist/infrastructure/gateway-redis-db.js +32 -0
- package/dist/infrastructure/gateway-redis-db.js.map +1 -0
- package/dist/infrastructure/host-ingress-config.d.ts +12 -0
- package/dist/infrastructure/host-ingress-config.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-config.js +197 -0
- package/dist/infrastructure/host-ingress-config.js.map +1 -0
- package/dist/infrastructure/host-ingress-lock.d.ts +4 -0
- package/dist/infrastructure/host-ingress-lock.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-lock.js +36 -0
- package/dist/infrastructure/host-ingress-lock.js.map +1 -0
- package/dist/infrastructure/host-ingress-runtime.d.ts +25 -0
- package/dist/infrastructure/host-ingress-runtime.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-runtime.js +114 -0
- package/dist/infrastructure/host-ingress-runtime.js.map +1 -0
- package/dist/infrastructure/host-ingress-takeover.d.ts +18 -0
- package/dist/infrastructure/host-ingress-takeover.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-takeover.js +142 -0
- package/dist/infrastructure/host-ingress-takeover.js.map +1 -0
- package/dist/infrastructure/host-ingress-types.d.ts +173 -0
- package/dist/infrastructure/host-ingress-types.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress-types.js +2 -0
- package/dist/infrastructure/host-ingress-types.js.map +1 -0
- package/dist/infrastructure/host-ingress.service.d.ts +47 -0
- package/dist/infrastructure/host-ingress.service.d.ts.map +1 -0
- package/dist/infrastructure/host-ingress.service.js +514 -0
- package/dist/infrastructure/host-ingress.service.js.map +1 -0
- package/dist/infrastructure/host-inspection.d.ts +223 -0
- package/dist/infrastructure/host-inspection.d.ts.map +1 -0
- package/dist/infrastructure/host-inspection.js +501 -0
- package/dist/infrastructure/host-inspection.js.map +1 -0
- package/dist/infrastructure/infrastructure-gate.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +223 -7
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +500 -93
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/known-machines.d.ts +76 -0
- package/dist/infrastructure/known-machines.d.ts.map +1 -0
- package/dist/infrastructure/known-machines.js +94 -0
- package/dist/infrastructure/known-machines.js.map +1 -0
- package/dist/infrastructure/node-credentials.d.ts +45 -0
- package/dist/infrastructure/node-credentials.d.ts.map +1 -0
- package/dist/infrastructure/node-credentials.js +80 -0
- package/dist/infrastructure/node-credentials.js.map +1 -0
- package/dist/infrastructure/orphan-containers.d.ts +99 -0
- package/dist/infrastructure/orphan-containers.d.ts.map +1 -0
- package/dist/infrastructure/orphan-containers.js +106 -0
- package/dist/infrastructure/orphan-containers.js.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts +20 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -1
- package/dist/infrastructure/phantom-endpoint-janitor.js +56 -6
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -1
- package/dist/infrastructure/presets/gateway-openresty.d.ts.map +1 -1
- package/dist/infrastructure/presets/gateway-openresty.js +29 -3
- package/dist/infrastructure/presets/gateway-openresty.js.map +1 -1
- package/dist/infrastructure/presets/minio.d.ts.map +1 -1
- package/dist/infrastructure/presets/minio.js +36 -3
- package/dist/infrastructure/presets/minio.js.map +1 -1
- package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
- package/dist/infrastructure/presets/postgres.js +69 -2
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/redis.d.ts.map +1 -1
- package/dist/infrastructure/presets/redis.js +13 -0
- package/dist/infrastructure/presets/redis.js.map +1 -1
- package/dist/infrastructure/presets/registry.d.ts.map +1 -1
- package/dist/infrastructure/presets/registry.js +81 -12
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +38 -0
- package/dist/infrastructure/presets/tor.d.ts.map +1 -1
- package/dist/infrastructure/presets/tor.js +78 -69
- package/dist/infrastructure/presets/tor.js.map +1 -1
- package/dist/infrastructure/presets/torrc.d.ts +54 -0
- package/dist/infrastructure/presets/torrc.d.ts.map +1 -0
- package/dist/infrastructure/presets/torrc.js +153 -0
- package/dist/infrastructure/presets/torrc.js.map +1 -0
- package/dist/infrastructure/presets/types.d.ts +17 -0
- package/dist/infrastructure/presets/types.d.ts.map +1 -1
- package/dist/infrastructure/provisioning-outcome.d.ts +85 -0
- package/dist/infrastructure/provisioning-outcome.d.ts.map +1 -0
- package/dist/infrastructure/provisioning-outcome.js +122 -0
- package/dist/infrastructure/provisioning-outcome.js.map +1 -0
- package/dist/infrastructure/server-registry.d.ts +27 -0
- package/dist/infrastructure/server-registry.d.ts.map +1 -1
- package/dist/infrastructure/server-registry.js +60 -5
- package/dist/infrastructure/server-registry.js.map +1 -1
- package/dist/infrastructure/service-binding.d.ts +60 -0
- package/dist/infrastructure/service-binding.d.ts.map +1 -0
- package/dist/infrastructure/service-binding.js +90 -0
- package/dist/infrastructure/service-binding.js.map +1 -0
- package/dist/infrastructure/service-credentials.d.ts +105 -0
- package/dist/infrastructure/service-credentials.d.ts.map +1 -0
- package/dist/infrastructure/service-credentials.js +141 -0
- package/dist/infrastructure/service-credentials.js.map +1 -0
- package/dist/infrastructure/service-resolver.d.ts +166 -12
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +535 -82
- package/dist/infrastructure/service-resolver.js.map +1 -1
- package/dist/infrastructure/shipped-config.d.ts +43 -0
- package/dist/infrastructure/shipped-config.d.ts.map +1 -0
- package/dist/infrastructure/shipped-config.js +159 -0
- package/dist/infrastructure/shipped-config.js.map +1 -0
- package/dist/infrastructure/stack-infra-manager.d.ts +16 -1
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +81 -53
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/infrastructure/types.d.ts +263 -6
- package/dist/infrastructure/types.d.ts.map +1 -1
- package/dist/mcp/mcp-bridge.d.ts.map +1 -1
- package/dist/mcp/mcp-bridge.js.map +1 -1
- package/dist/mcp/tool-groups/apps.tools.d.ts +2 -1
- package/dist/mcp/tool-groups/apps.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/apps.tools.js +2 -2
- package/dist/mcp/tool-groups/apps.tools.js.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.d.ts +16 -2
- package/dist/mcp/tool-groups/infra.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.js +51 -41
- package/dist/mcp/tool-groups/infra.tools.js.map +1 -1
- package/dist/mcp/tool-groups/kb.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/kb.tools.js +4 -6
- package/dist/mcp/tool-groups/kb.tools.js.map +1 -1
- package/dist/mcp/tool-groups/management.tools.d.ts +20 -3
- package/dist/mcp/tool-groups/management.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/management.tools.js +158 -125
- package/dist/mcp/tool-groups/management.tools.js.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.d.ts +10 -1
- package/dist/mcp/tool-groups/monitoring.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.js +65 -18
- package/dist/mcp/tool-groups/monitoring.tools.js.map +1 -1
- package/dist/mcp/unavailable-tools.d.ts +35 -0
- package/dist/mcp/unavailable-tools.d.ts.map +1 -0
- package/dist/mcp/unavailable-tools.js +59 -0
- package/dist/mcp/unavailable-tools.js.map +1 -0
- package/dist/monitoring/app-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/app-health.indicator.js +12 -0
- package/dist/monitoring/app-health.indicator.js.map +1 -1
- package/dist/monitoring/desktop-notifier.d.ts +26 -0
- package/dist/monitoring/desktop-notifier.d.ts.map +1 -0
- package/dist/monitoring/desktop-notifier.js +49 -0
- package/dist/monitoring/desktop-notifier.js.map +1 -0
- package/dist/monitoring/docker-health.indicator.d.ts +17 -1
- package/dist/monitoring/docker-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/docker-health.indicator.js +38 -8
- package/dist/monitoring/docker-health.indicator.js.map +1 -1
- package/dist/monitoring/event-loop-stall.indicator.d.ts +26 -0
- package/dist/monitoring/event-loop-stall.indicator.d.ts.map +1 -0
- package/dist/monitoring/event-loop-stall.indicator.js +47 -0
- package/dist/monitoring/event-loop-stall.indicator.js.map +1 -0
- package/dist/monitoring/event-loop-watch.d.ts +124 -0
- package/dist/monitoring/event-loop-watch.d.ts.map +1 -0
- package/dist/monitoring/event-loop-watch.js +179 -0
- package/dist/monitoring/event-loop-watch.js.map +1 -0
- package/dist/monitoring/host-disk.d.ts +6 -0
- package/dist/monitoring/host-disk.d.ts.map +1 -0
- package/dist/monitoring/host-disk.js +26 -0
- package/dist/monitoring/host-disk.js.map +1 -0
- package/dist/monitoring/log-line.d.ts +188 -0
- package/dist/monitoring/log-line.d.ts.map +1 -0
- package/dist/monitoring/log-line.js +458 -0
- package/dist/monitoring/log-line.js.map +1 -0
- package/dist/monitoring/log-manager.d.ts +89 -8
- package/dist/monitoring/log-manager.d.ts.map +1 -1
- package/dist/monitoring/log-manager.js +246 -77
- package/dist/monitoring/log-manager.js.map +1 -1
- package/dist/observability/metrics-bridge.d.ts.map +1 -1
- package/dist/observability/metrics-server.d.ts.map +1 -1
- package/dist/operations.d.ts +16 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +13 -0
- package/dist/operations.js.map +1 -0
- package/dist/orchestrator/app-handle.d.ts +157 -2
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +165 -3
- package/dist/orchestrator/app-handle.js.map +1 -1
- package/dist/orchestrator/app-health.d.ts +33 -0
- package/dist/orchestrator/app-health.d.ts.map +1 -0
- package/dist/orchestrator/app-health.js +74 -0
- package/dist/orchestrator/app-health.js.map +1 -0
- package/dist/orchestrator/app-traffic.d.ts +14 -0
- package/dist/orchestrator/app-traffic.d.ts.map +1 -0
- package/dist/orchestrator/app-traffic.js +33 -0
- package/dist/orchestrator/app-traffic.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader-child.d.ts +19 -0
- package/dist/orchestrator/bootstrap-loader-child.d.ts.map +1 -0
- package/dist/orchestrator/bootstrap-loader-child.js +43 -0
- package/dist/orchestrator/bootstrap-loader-child.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader.d.ts +72 -0
- package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-loader.js +350 -5
- package/dist/orchestrator/bootstrap-loader.js.map +1 -1
- package/dist/orchestrator/bootstrap-process.d.ts +99 -4
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +332 -20
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts +6 -12
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js +120 -83
- package/dist/orchestrator/build-service.js.map +1 -1
- package/dist/orchestrator/call-exposed-service.d.ts +7 -0
- package/dist/orchestrator/call-exposed-service.d.ts.map +1 -0
- package/dist/orchestrator/call-exposed-service.js +50 -0
- package/dist/orchestrator/call-exposed-service.js.map +1 -0
- package/dist/orchestrator/classic-launcher.d.ts +1 -0
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +40 -4
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +79 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +193 -7
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/http-routes.d.ts +4 -0
- package/dist/orchestrator/http-routes.d.ts.map +1 -0
- package/dist/orchestrator/http-routes.js +19 -0
- package/dist/orchestrator/http-routes.js.map +1 -0
- package/dist/orchestrator/module-worker-process.d.ts.map +1 -1
- package/dist/orchestrator/module-worker-process.js +10 -0
- package/dist/orchestrator/module-worker-process.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +385 -11
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +1738 -364
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/orchestrator/owned-pids.d.ts +83 -0
- package/dist/orchestrator/owned-pids.d.ts.map +1 -0
- package/dist/orchestrator/owned-pids.js +93 -0
- package/dist/orchestrator/owned-pids.js.map +1 -0
- package/dist/orchestrator/port-conflict.d.ts +102 -0
- package/dist/orchestrator/port-conflict.d.ts.map +1 -0
- package/dist/orchestrator/port-conflict.js +131 -0
- package/dist/orchestrator/port-conflict.js.map +1 -0
- package/dist/orchestrator/process-janitor.d.ts +78 -4
- package/dist/orchestrator/process-janitor.d.ts.map +1 -1
- package/dist/orchestrator/process-janitor.js +246 -30
- package/dist/orchestrator/process-janitor.js.map +1 -1
- package/dist/orchestrator/ps-metrics.d.ts +37 -0
- package/dist/orchestrator/ps-metrics.d.ts.map +1 -0
- package/dist/orchestrator/ps-metrics.js +60 -0
- package/dist/orchestrator/ps-metrics.js.map +1 -0
- package/dist/orchestrator/service-router.d.ts +58 -2
- package/dist/orchestrator/service-router.d.ts.map +1 -1
- package/dist/orchestrator/service-router.js +157 -25
- package/dist/orchestrator/service-router.js.map +1 -1
- package/dist/orchestrator/topology-query.d.ts +49 -0
- package/dist/orchestrator/topology-query.d.ts.map +1 -0
- package/dist/orchestrator/topology-query.js +54 -0
- package/dist/orchestrator/topology-query.js.map +1 -0
- package/dist/project/artifact-builder.d.ts +174 -3
- package/dist/project/artifact-builder.d.ts.map +1 -1
- package/dist/project/artifact-builder.js +454 -42
- package/dist/project/artifact-builder.js.map +1 -1
- package/dist/project/build-decision.d.ts +58 -0
- package/dist/project/build-decision.d.ts.map +1 -0
- package/dist/project/build-decision.js +59 -0
- package/dist/project/build-decision.js.map +1 -0
- package/dist/project/config-resolver.d.ts +6 -4
- package/dist/project/config-resolver.d.ts.map +1 -1
- package/dist/project/config-resolver.js +128 -74
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/declared-config.d.ts +42 -0
- package/dist/project/declared-config.d.ts.map +1 -0
- package/dist/project/declared-config.js +60 -0
- package/dist/project/declared-config.js.map +1 -0
- package/dist/project/dependency-analyzer.d.ts.map +1 -1
- package/dist/project/dependency-analyzer.js.map +1 -1
- package/dist/project/deploy-phases.d.ts +35 -0
- package/dist/project/deploy-phases.d.ts.map +1 -0
- package/dist/project/deploy-phases.js +75 -0
- package/dist/project/deploy-phases.js.map +1 -0
- package/dist/project/exec-in-group.d.ts +49 -0
- package/dist/project/exec-in-group.d.ts.map +1 -0
- package/dist/project/exec-in-group.js +100 -0
- package/dist/project/exec-in-group.js.map +1 -0
- package/dist/project/node-app-config.d.ts +101 -0
- package/dist/project/node-app-config.d.ts.map +1 -0
- package/dist/project/node-app-config.js +134 -0
- package/dist/project/node-app-config.js.map +1 -0
- package/dist/project/node-app-health.d.ts +76 -0
- package/dist/project/node-app-health.d.ts.map +1 -0
- package/dist/project/node-app-health.js +119 -0
- package/dist/project/node-app-health.js.map +1 -0
- package/dist/project/operator-account.d.ts +293 -0
- package/dist/project/operator-account.d.ts.map +1 -0
- package/dist/project/operator-account.js +373 -0
- package/dist/project/operator-account.js.map +1 -0
- package/dist/project/registry.d.ts +45 -8
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +214 -64
- package/dist/project/registry.js.map +1 -1
- package/dist/project/requirements-scanner.d.ts +1 -0
- package/dist/project/requirements-scanner.d.ts.map +1 -1
- package/dist/project/requirements-scanner.js +28 -3
- package/dist/project/requirements-scanner.js.map +1 -1
- package/dist/project/stack-env.d.ts +37 -0
- package/dist/project/stack-env.d.ts.map +1 -0
- package/dist/project/stack-env.js +85 -0
- package/dist/project/stack-env.js.map +1 -0
- package/dist/project/stand-containers.d.ts +11 -0
- package/dist/project/stand-containers.d.ts.map +1 -0
- package/dist/project/stand-containers.js +27 -0
- package/dist/project/stand-containers.js.map +1 -0
- package/dist/project/working-tree.d.ts +62 -0
- package/dist/project/working-tree.d.ts.map +1 -0
- package/dist/project/working-tree.js +101 -0
- package/dist/project/working-tree.js.map +1 -0
- package/dist/release/artifact-store.d.ts +360 -0
- package/dist/release/artifact-store.d.ts.map +1 -0
- package/dist/release/artifact-store.js +1040 -0
- package/dist/release/artifact-store.js.map +1 -0
- package/dist/release/attest-on-node.d.ts +93 -0
- package/dist/release/attest-on-node.d.ts.map +1 -0
- package/dist/release/attest-on-node.js +207 -0
- package/dist/release/attest-on-node.js.map +1 -0
- package/dist/release/attest.d.ts +135 -0
- package/dist/release/attest.d.ts.map +1 -0
- package/dist/release/attest.js +199 -0
- package/dist/release/attest.js.map +1 -0
- package/dist/release/build-run.d.ts +151 -0
- package/dist/release/build-run.d.ts.map +1 -0
- package/dist/release/build-run.js +609 -0
- package/dist/release/build-run.js.map +1 -0
- package/dist/release/builder.d.ts +57 -0
- package/dist/release/builder.d.ts.map +1 -0
- package/dist/release/builder.js +120 -0
- package/dist/release/builder.js.map +1 -0
- package/dist/release/daemon-omni.d.ts +41 -0
- package/dist/release/daemon-omni.d.ts.map +1 -0
- package/dist/release/daemon-omni.js +59 -0
- package/dist/release/daemon-omni.js.map +1 -0
- package/dist/release/definition-inputs.d.ts +34 -0
- package/dist/release/definition-inputs.d.ts.map +1 -0
- package/dist/release/definition-inputs.js +90 -0
- package/dist/release/definition-inputs.js.map +1 -0
- package/dist/release/delivered.d.ts +53 -0
- package/dist/release/delivered.d.ts.map +1 -0
- package/dist/release/delivered.js +81 -0
- package/dist/release/delivered.js.map +1 -0
- package/dist/release/layout.d.ts +61 -0
- package/dist/release/layout.d.ts.map +1 -0
- package/dist/release/layout.js +114 -0
- package/dist/release/layout.js.map +1 -0
- package/dist/release/load.d.ts +44 -0
- package/dist/release/load.d.ts.map +1 -0
- package/dist/release/load.js +84 -0
- package/dist/release/load.js.map +1 -0
- package/dist/release/manifest.d.ts +299 -0
- package/dist/release/manifest.d.ts.map +1 -0
- package/dist/release/manifest.js +176 -0
- package/dist/release/manifest.js.map +1 -0
- package/dist/release/migrations.d.ts +32 -0
- package/dist/release/migrations.d.ts.map +1 -0
- package/dist/release/migrations.js +51 -0
- package/dist/release/migrations.js.map +1 -0
- package/dist/release/publish.d.ts +71 -0
- package/dist/release/publish.d.ts.map +1 -0
- package/dist/release/publish.js +102 -0
- package/dist/release/publish.js.map +1 -0
- package/dist/release/store.d.ts +174 -0
- package/dist/release/store.d.ts.map +1 -0
- package/dist/release/store.js +257 -0
- package/dist/release/store.js.map +1 -0
- package/dist/services/alert.rpc-service.d.ts +11 -15
- package/dist/services/alert.rpc-service.d.ts.map +1 -1
- package/dist/services/alert.rpc-service.js +29 -14
- package/dist/services/alert.rpc-service.js.map +1 -1
- package/dist/services/alert.service.d.ts +96 -59
- package/dist/services/alert.service.d.ts.map +1 -1
- package/dist/services/alert.service.js +455 -70
- package/dist/services/alert.service.js.map +1 -1
- package/dist/services/anonymous-input.d.ts +26 -0
- package/dist/services/anonymous-input.d.ts.map +1 -0
- package/dist/services/anonymous-input.js +44 -0
- package/dist/services/anonymous-input.js.map +1 -0
- package/dist/services/audit.rpc-service.d.ts +27 -0
- package/dist/services/audit.rpc-service.d.ts.map +1 -0
- package/dist/services/audit.rpc-service.js +57 -0
- package/dist/services/audit.rpc-service.js.map +1 -0
- package/dist/services/audit.service.d.ts +165 -0
- package/dist/services/audit.service.d.ts.map +1 -0
- package/dist/services/audit.service.js +242 -0
- package/dist/services/audit.service.js.map +1 -0
- package/dist/services/auth-context.d.ts +21 -1
- package/dist/services/auth-context.d.ts.map +1 -1
- package/dist/services/auth-context.js +51 -5
- package/dist/services/auth-context.js.map +1 -1
- package/dist/services/auth.rpc-service.d.ts +0 -1
- package/dist/services/auth.rpc-service.d.ts.map +1 -1
- package/dist/services/auth.rpc-service.js +23 -9
- package/dist/services/auth.rpc-service.js.map +1 -1
- package/dist/services/auth.service.d.ts +47 -33
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +155 -23
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/backup-pipeline.d.ts +97 -0
- package/dist/services/backup-pipeline.d.ts.map +1 -0
- package/dist/services/backup-pipeline.js +286 -0
- package/dist/services/backup-pipeline.js.map +1 -0
- package/dist/services/backup-schedule.d.ts +69 -0
- package/dist/services/backup-schedule.d.ts.map +1 -0
- package/dist/services/backup-schedule.js +132 -0
- package/dist/services/backup-schedule.js.map +1 -0
- package/dist/services/backup.rpc-service.d.ts +31 -2
- package/dist/services/backup.rpc-service.d.ts.map +1 -1
- package/dist/services/backup.rpc-service.js +53 -0
- package/dist/services/backup.rpc-service.js.map +1 -1
- package/dist/services/backup.service.d.ts +458 -14
- package/dist/services/backup.service.d.ts.map +1 -1
- package/dist/services/backup.service.js +1368 -170
- package/dist/services/backup.service.js.map +1 -1
- package/dist/services/bundle-build-worker.d.ts +19 -0
- package/dist/services/bundle-build-worker.d.ts.map +1 -0
- package/dist/services/bundle-build-worker.js +40 -0
- package/dist/services/bundle-build-worker.js.map +1 -0
- package/dist/services/bundle-builder.d.ts +490 -0
- package/dist/services/bundle-builder.d.ts.map +1 -0
- package/dist/services/bundle-builder.js +1159 -0
- package/dist/services/bundle-builder.js.map +1 -0
- package/dist/services/bundle-worker-protocol.d.ts +19 -0
- package/dist/services/bundle-worker-protocol.d.ts.map +1 -0
- package/dist/services/bundle-worker-protocol.js +32 -0
- package/dist/services/bundle-worker-protocol.js.map +1 -0
- package/dist/services/deploy.rpc-service.d.ts +4 -1
- package/dist/services/deploy.rpc-service.d.ts.map +1 -1
- package/dist/services/deploy.rpc-service.js +10 -0
- package/dist/services/deploy.rpc-service.js.map +1 -1
- package/dist/services/deploy.service.d.ts +14 -24
- package/dist/services/deploy.service.d.ts.map +1 -1
- package/dist/services/deploy.service.js +46 -5
- package/dist/services/deploy.service.js.map +1 -1
- package/dist/services/discovery.rpc-service.d.ts +2 -1
- package/dist/services/discovery.rpc-service.d.ts.map +1 -1
- package/dist/services/discovery.rpc-service.js.map +1 -1
- package/dist/services/discovery.service.d.ts +32 -28
- package/dist/services/discovery.service.d.ts.map +1 -1
- package/dist/services/discovery.service.js +108 -133
- package/dist/services/discovery.service.js.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.d.ts +36 -23
- package/dist/services/event-broadcaster.rpc-service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.js +70 -32
- package/dist/services/event-broadcaster.rpc-service.js.map +1 -1
- package/dist/services/event-broadcaster.service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.service.js.map +1 -1
- package/dist/services/fleet.rpc-service.d.ts +2 -1
- package/dist/services/fleet.rpc-service.d.ts.map +1 -1
- package/dist/services/fleet.rpc-service.js +3 -1
- package/dist/services/fleet.rpc-service.js.map +1 -1
- package/dist/services/fleet.service.d.ts +32 -34
- package/dist/services/fleet.service.d.ts.map +1 -1
- package/dist/services/fleet.service.js +66 -10
- package/dist/services/fleet.service.js.map +1 -1
- package/dist/services/health-check.rpc-service.d.ts +2 -1
- package/dist/services/health-check.rpc-service.d.ts.map +1 -1
- package/dist/services/health-check.rpc-service.js.map +1 -1
- package/dist/services/health-check.service.d.ts +50 -36
- package/dist/services/health-check.service.d.ts.map +1 -1
- package/dist/services/health-check.service.js +179 -182
- package/dist/services/health-check.service.js.map +1 -1
- package/dist/services/host-operation-barrier.d.ts +8 -0
- package/dist/services/host-operation-barrier.d.ts.map +1 -0
- package/dist/services/host-operation-barrier.js +44 -0
- package/dist/services/host-operation-barrier.js.map +1 -0
- package/dist/services/host-upgrade.d.ts +129 -0
- package/dist/services/host-upgrade.d.ts.map +1 -0
- package/dist/services/host-upgrade.js +352 -0
- package/dist/services/host-upgrade.js.map +1 -0
- package/dist/services/infrastructure.rpc-service.d.ts +312 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +584 -11
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.rpc-service.d.ts +2 -1
- package/dist/services/kubernetes.rpc-service.d.ts.map +1 -1
- package/dist/services/kubernetes.rpc-service.js.map +1 -1
- package/dist/services/kubernetes.service.d.ts +5 -39
- package/dist/services/kubernetes.service.d.ts.map +1 -1
- package/dist/services/kubernetes.service.js +29 -5
- package/dist/services/kubernetes.service.js.map +1 -1
- package/dist/services/local-bundle.d.ts +160 -0
- package/dist/services/local-bundle.d.ts.map +1 -0
- package/dist/services/local-bundle.js +242 -0
- package/dist/services/local-bundle.js.map +1 -0
- package/dist/services/lockout.d.ts +28 -0
- package/dist/services/lockout.d.ts.map +1 -0
- package/dist/services/lockout.js +41 -0
- package/dist/services/lockout.js.map +1 -0
- package/dist/services/log-collector.rpc-service.d.ts +16 -0
- package/dist/services/log-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/log-collector.rpc-service.js +16 -0
- package/dist/services/log-collector.rpc-service.js.map +1 -1
- package/dist/services/log-collector.service.d.ts +172 -54
- package/dist/services/log-collector.service.d.ts.map +1 -1
- package/dist/services/log-collector.service.js +492 -102
- package/dist/services/log-collector.service.js.map +1 -1
- package/dist/services/log-retention.d.ts +50 -0
- package/dist/services/log-retention.d.ts.map +1 -0
- package/dist/services/log-retention.js +52 -0
- package/dist/services/log-retention.js.map +1 -0
- package/dist/services/maintenance-lock.d.ts +162 -0
- package/dist/services/maintenance-lock.d.ts.map +1 -0
- package/dist/services/maintenance-lock.js +316 -0
- package/dist/services/maintenance-lock.js.map +1 -0
- package/dist/services/master-address.d.ts +107 -0
- package/dist/services/master-address.d.ts.map +1 -0
- package/dist/services/master-address.js +154 -0
- package/dist/services/master-address.js.map +1 -0
- package/dist/services/migration-output.d.ts +16 -0
- package/dist/services/migration-output.d.ts.map +1 -0
- package/dist/services/migration-output.js +22 -0
- package/dist/services/migration-output.js.map +1 -0
- package/dist/services/netron-telemetry-transport.d.ts.map +1 -1
- package/dist/services/netron-telemetry-transport.js.map +1 -1
- package/dist/services/node-deploy-lease.d.ts +171 -0
- package/dist/services/node-deploy-lease.d.ts.map +1 -0
- package/dist/services/node-deploy-lease.js +460 -0
- package/dist/services/node-deploy-lease.js.map +1 -0
- package/dist/services/node-health.repository.d.ts +63 -4
- package/dist/services/node-health.repository.d.ts.map +1 -1
- package/dist/services/node-health.repository.js +108 -67
- package/dist/services/node-health.repository.js.map +1 -1
- package/dist/services/node-manager.rpc-service.d.ts +360 -10
- package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
- package/dist/services/node-manager.rpc-service.js +754 -34
- package/dist/services/node-manager.rpc-service.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +267 -95
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +805 -103
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/node-upgrade.d.ts +129 -0
- package/dist/services/node-upgrade.d.ts.map +1 -0
- package/dist/services/node-upgrade.js +161 -0
- package/dist/services/node-upgrade.js.map +1 -0
- package/dist/services/node-upgrade.service.d.ts +232 -0
- package/dist/services/node-upgrade.service.d.ts.map +1 -0
- package/dist/services/node-upgrade.service.js +468 -0
- package/dist/services/node-upgrade.service.js.map +1 -0
- package/dist/services/pipeline.rpc-service.d.ts +6 -1
- package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
- package/dist/services/pipeline.rpc-service.js +9 -0
- package/dist/services/pipeline.rpc-service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +17 -46
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +84 -9
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +140 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +260 -22
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +687 -15
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +2846 -337
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/redeploy-decision.d.ts +176 -0
- package/dist/services/redeploy-decision.d.ts.map +1 -0
- package/dist/services/redeploy-decision.js +142 -0
- package/dist/services/redeploy-decision.js.map +1 -0
- package/dist/services/release.rpc-service.d.ts +159 -0
- package/dist/services/release.rpc-service.d.ts.map +1 -0
- package/dist/services/release.rpc-service.js +395 -0
- package/dist/services/release.rpc-service.js.map +1 -0
- package/dist/services/release.service.d.ts +114 -0
- package/dist/services/release.service.d.ts.map +1 -0
- package/dist/services/release.service.js +208 -0
- package/dist/services/release.service.js.map +1 -0
- package/dist/services/remote-deployer.service.d.ts +580 -8
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +1786 -169
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/remote-ops.service.d.ts +51 -9
- package/dist/services/remote-ops.service.d.ts.map +1 -1
- package/dist/services/remote-ops.service.js +235 -39
- package/dist/services/remote-ops.service.js.map +1 -1
- package/dist/services/remote-provisioner.d.ts +124 -0
- package/dist/services/remote-provisioner.d.ts.map +1 -0
- package/dist/services/remote-provisioner.js +258 -0
- package/dist/services/remote-provisioner.js.map +1 -0
- package/dist/services/secrets.rpc-service.d.ts +51 -2
- package/dist/services/secrets.rpc-service.d.ts.map +1 -1
- package/dist/services/secrets.rpc-service.js +81 -2
- package/dist/services/secrets.rpc-service.js.map +1 -1
- package/dist/services/secrets.service.d.ts +108 -9
- package/dist/services/secrets.service.d.ts.map +1 -1
- package/dist/services/secrets.service.js +313 -48
- package/dist/services/secrets.service.js.map +1 -1
- package/dist/services/slave-storage.service.d.ts +107 -0
- package/dist/services/slave-storage.service.d.ts.map +1 -1
- package/dist/services/slave-storage.service.js +171 -2
- package/dist/services/slave-storage.service.js.map +1 -1
- package/dist/services/static-carry-forward.d.ts +110 -0
- package/dist/services/static-carry-forward.d.ts.map +1 -0
- package/dist/services/static-carry-forward.js +433 -0
- package/dist/services/static-carry-forward.js.map +1 -0
- package/dist/services/sync-policy.d.ts +167 -0
- package/dist/services/sync-policy.d.ts.map +1 -0
- package/dist/services/sync-policy.js +161 -0
- package/dist/services/sync-policy.js.map +1 -0
- package/dist/services/sync-summary.d.ts +39 -0
- package/dist/services/sync-summary.d.ts.map +1 -0
- package/dist/services/sync-summary.js +62 -0
- package/dist/services/sync-summary.js.map +1 -0
- package/dist/services/sync.rpc-service.d.ts +19 -7
- package/dist/services/sync.rpc-service.d.ts.map +1 -1
- package/dist/services/sync.rpc-service.js +36 -5
- package/dist/services/sync.rpc-service.js.map +1 -1
- package/dist/services/sync.service.d.ts +350 -18
- package/dist/services/sync.service.d.ts.map +1 -1
- package/dist/services/sync.service.js +864 -116
- package/dist/services/sync.service.js.map +1 -1
- package/dist/services/system-info.rpc-service.d.ts +2 -1
- package/dist/services/system-info.rpc-service.d.ts.map +1 -1
- package/dist/services/system-info.rpc-service.js.map +1 -1
- package/dist/services/system-info.service.d.ts +56 -68
- package/dist/services/system-info.service.d.ts.map +1 -1
- package/dist/services/system-info.service.js +240 -127
- package/dist/services/system-info.service.js.map +1 -1
- package/dist/services/telemetry.rpc-service.d.ts.map +1 -1
- package/dist/services/telemetry.rpc-service.js +9 -3
- package/dist/services/telemetry.rpc-service.js.map +1 -1
- package/dist/services/telemetry.service.d.ts +4 -2
- package/dist/services/telemetry.service.d.ts.map +1 -1
- package/dist/services/telemetry.service.js +4 -2
- package/dist/services/telemetry.service.js.map +1 -1
- package/dist/services/trace-collector.rpc-service.d.ts +2 -1
- package/dist/services/trace-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/trace-collector.rpc-service.js.map +1 -1
- package/dist/services/trace-collector.service.d.ts +2 -41
- package/dist/services/trace-collector.service.d.ts.map +1 -1
- package/dist/services/trace-collector.service.js +27 -7
- package/dist/services/trace-collector.service.js.map +1 -1
- package/dist/services/wait-for-postgres.d.ts +28 -0
- package/dist/services/wait-for-postgres.d.ts.map +1 -0
- package/dist/services/wait-for-postgres.js +77 -0
- package/dist/services/wait-for-postgres.js.map +1 -0
- package/dist/shared/alert-expression.d.ts +60 -0
- package/dist/shared/alert-expression.d.ts.map +1 -0
- package/dist/shared/alert-expression.js +124 -0
- package/dist/shared/alert-expression.js.map +1 -0
- package/dist/shared/audit-outcome.d.ts +39 -0
- package/dist/shared/audit-outcome.d.ts.map +1 -0
- package/dist/shared/audit-outcome.js +45 -0
- package/dist/shared/audit-outcome.js.map +1 -0
- package/dist/shared/build-freshness.d.ts +59 -0
- package/dist/shared/build-freshness.d.ts.map +1 -0
- package/dist/shared/build-freshness.js +113 -0
- package/dist/shared/build-freshness.js.map +1 -0
- package/dist/shared/build-stamp.d.ts +26 -0
- package/dist/shared/build-stamp.d.ts.map +1 -0
- package/dist/shared/build-stamp.js +36 -0
- package/dist/shared/build-stamp.js.map +1 -0
- package/dist/shared/describe-error.d.ts +22 -0
- package/dist/shared/describe-error.d.ts.map +1 -0
- package/dist/shared/describe-error.js +39 -0
- package/dist/shared/describe-error.js.map +1 -0
- package/dist/shared/dto/alerts.d.ts +101 -0
- package/dist/shared/dto/alerts.d.ts.map +1 -0
- package/dist/shared/dto/alerts.js +9 -0
- package/dist/shared/dto/alerts.js.map +1 -0
- package/dist/shared/dto/auth.d.ts +49 -0
- package/dist/shared/dto/auth.d.ts.map +1 -0
- package/dist/shared/dto/auth.js +14 -0
- package/dist/shared/dto/auth.js.map +1 -0
- package/dist/shared/dto/backups.d.ts +16 -0
- package/dist/shared/dto/backups.d.ts.map +1 -0
- package/dist/shared/dto/backups.js +9 -0
- package/dist/shared/dto/backups.js.map +1 -0
- package/dist/shared/dto/deploy.d.ts +28 -0
- package/dist/shared/dto/deploy.d.ts.map +1 -0
- package/dist/shared/dto/deploy.js +8 -0
- package/dist/shared/dto/deploy.js.map +1 -0
- package/dist/shared/dto/discovery.d.ts +24 -0
- package/dist/shared/dto/discovery.d.ts.map +1 -0
- package/dist/shared/dto/discovery.js +9 -0
- package/dist/shared/dto/discovery.js.map +1 -0
- package/dist/shared/dto/fleet.d.ts +35 -0
- package/dist/shared/dto/fleet.d.ts.map +1 -0
- package/dist/shared/dto/fleet.js +8 -0
- package/dist/shared/dto/fleet.js.map +1 -0
- package/dist/shared/dto/health.d.ts +26 -0
- package/dist/shared/dto/health.d.ts.map +1 -0
- package/dist/shared/dto/health.js +9 -0
- package/dist/shared/dto/health.js.map +1 -0
- package/dist/shared/dto/kubernetes.d.ts +44 -0
- package/dist/shared/dto/kubernetes.d.ts.map +1 -0
- package/dist/shared/dto/kubernetes.js +9 -0
- package/dist/shared/dto/kubernetes.js.map +1 -0
- package/dist/shared/dto/logs.d.ts +77 -0
- package/dist/shared/dto/logs.d.ts.map +1 -0
- package/dist/shared/dto/logs.js +10 -0
- package/dist/shared/dto/logs.js.map +1 -0
- package/dist/shared/dto/metrics.d.ts +65 -0
- package/dist/shared/dto/metrics.d.ts.map +1 -0
- package/dist/shared/dto/metrics.js +17 -0
- package/dist/shared/dto/metrics.js.map +1 -0
- package/dist/shared/dto/nodes.d.ts +347 -0
- package/dist/shared/dto/nodes.d.ts.map +1 -0
- package/dist/shared/dto/nodes.js +8 -0
- package/dist/shared/dto/nodes.js.map +1 -0
- package/dist/shared/dto/pipelines.d.ts +53 -0
- package/dist/shared/dto/pipelines.d.ts.map +1 -0
- package/dist/shared/dto/pipelines.js +9 -0
- package/dist/shared/dto/pipelines.js.map +1 -0
- package/dist/shared/dto/project.d.ts +142 -8
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +858 -7
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/shared/dto/system-info.d.ts +93 -0
- package/dist/shared/dto/system-info.d.ts.map +1 -0
- package/dist/shared/dto/system-info.js +9 -0
- package/dist/shared/dto/system-info.js.map +1 -0
- package/dist/shared/dto/traces.d.ts +49 -0
- package/dist/shared/dto/traces.d.ts.map +1 -0
- package/dist/shared/dto/traces.js +9 -0
- package/dist/shared/dto/traces.js.map +1 -0
- package/dist/shared/env-config.d.ts +74 -0
- package/dist/shared/env-config.d.ts.map +1 -0
- package/dist/shared/env-config.js +99 -0
- package/dist/shared/env-config.js.map +1 -0
- package/dist/shared/events.d.ts +45 -39
- package/dist/shared/events.d.ts.map +1 -1
- package/dist/shared/events.js +6 -0
- package/dist/shared/events.js.map +1 -1
- package/dist/shared/format.d.ts +1 -1
- package/dist/shared/format.d.ts.map +1 -1
- package/dist/shared/format.js +4 -0
- package/dist/shared/format.js.map +1 -1
- package/dist/shared/local-infra-host.d.ts +28 -0
- package/dist/shared/local-infra-host.d.ts.map +1 -0
- package/dist/shared/local-infra-host.js +28 -0
- package/dist/shared/local-infra-host.js.map +1 -0
- package/dist/shared/node-check.d.ts +37 -0
- package/dist/shared/node-check.d.ts.map +1 -0
- package/dist/shared/node-check.js +41 -0
- package/dist/shared/node-check.js.map +1 -0
- package/dist/shared/paths.d.ts +29 -0
- package/dist/shared/paths.d.ts.map +1 -0
- package/dist/shared/paths.js +54 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/pnpm.d.ts +29 -0
- package/dist/shared/pnpm.d.ts.map +1 -0
- package/dist/shared/pnpm.js +57 -0
- package/dist/shared/pnpm.js.map +1 -0
- package/dist/shared/private-files.d.ts +29 -0
- package/dist/shared/private-files.d.ts.map +1 -0
- package/dist/shared/private-files.js +109 -0
- package/dist/shared/private-files.js.map +1 -0
- package/dist/shared/redact-env.d.ts +24 -0
- package/dist/shared/redact-env.d.ts.map +1 -0
- package/dist/shared/redact-env.js +36 -0
- package/dist/shared/redact-env.js.map +1 -0
- package/dist/shared/release-reading.d.ts +85 -0
- package/dist/shared/release-reading.d.ts.map +1 -0
- package/dist/shared/release-reading.js +81 -0
- package/dist/shared/release-reading.js.map +1 -0
- package/dist/shared/roles.d.ts +58 -3
- package/dist/shared/roles.d.ts.map +1 -1
- package/dist/shared/roles.js +55 -0
- package/dist/shared/roles.js.map +1 -1
- package/dist/shared/rpcauth.d.ts +13 -0
- package/dist/shared/rpcauth.d.ts.map +1 -0
- package/dist/shared/rpcauth.js +23 -0
- package/dist/shared/rpcauth.js.map +1 -0
- package/dist/shared/shell-escape.d.ts +9 -0
- package/dist/shared/shell-escape.d.ts.map +1 -0
- package/dist/shared/shell-escape.js +11 -0
- package/dist/shared/shell-escape.js.map +1 -0
- package/dist/shared/sync-reading.d.ts +45 -0
- package/dist/shared/sync-reading.d.ts.map +1 -0
- package/dist/shared/sync-reading.js +42 -0
- package/dist/shared/sync-reading.js.map +1 -0
- package/dist/shared/tokens.d.ts +19 -0
- package/dist/shared/tokens.d.ts.map +1 -1
- package/dist/shared/tokens.js +28 -0
- package/dist/shared/tokens.js.map +1 -1
- package/dist/webapp/webapp.service.d.ts +33 -2
- package/dist/webapp/webapp.service.d.ts.map +1 -1
- package/dist/webapp/webapp.service.js +143 -31
- package/dist/webapp/webapp.service.js.map +1 -1
- package/dist/workers/health-monitor-process.d.ts.map +1 -1
- package/dist/workers/health-monitor-process.js +10 -0
- package/dist/workers/health-monitor-process.js.map +1 -1
- package/dist/workers/health-monitor.service.d.ts +45 -3
- package/dist/workers/health-monitor.service.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.js +152 -25
- package/dist/workers/health-monitor.service.js.map +1 -1
- package/dist/workers/system-worker-manager.d.ts +43 -0
- package/dist/workers/system-worker-manager.d.ts.map +1 -1
- package/dist/workers/system-worker-manager.js +150 -3
- package/dist/workers/system-worker-manager.js.map +1 -1
- package/dist/workers/types.d.ts +8 -2
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +68 -30
- package/webapp/dist/BUILD.json +5 -0
- package/webapp/dist/assets/FormControlLabel-BbSxpQwN.js +1 -0
- package/webapp/dist/assets/Grid-DizFZYue.js +1 -0
- package/webapp/dist/assets/Switch-Bfiqzx8l.js +1 -0
- package/webapp/dist/assets/alerts-DH_RVRS3.js +1 -0
- package/webapp/dist/assets/apps-B96355sz.js +1 -0
- package/webapp/dist/assets/audit-CYGtbi4k.js +1 -0
- package/webapp/dist/assets/client-BmqFExWT.js +1 -0
- package/webapp/dist/assets/constants-veKGFkC6.js +1 -0
- package/webapp/dist/assets/containers-B_TpThln.js +2 -0
- package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +1 -0
- package/webapp/dist/assets/dashboard-DHf2_65N.js +1 -0
- package/webapp/dist/assets/dashboard-builder-CWY2pjeG.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-Dp-zpSAd.js +1 -0
- package/webapp/dist/assets/deployments-tJI6O3fK.js +1 -0
- package/webapp/dist/assets/detail-B2zP1Hto.js +8 -0
- package/webapp/dist/assets/detail-CoIrwmsy.js +1 -0
- package/webapp/dist/assets/detail-DWaGaOtL.js +2 -0
- package/webapp/dist/assets/formatters-BqjL73N3.js +1 -0
- package/webapp/dist/assets/index-Dvo0iprx.css +1 -0
- package/webapp/dist/assets/index-vMnY_4jR.js +412 -0
- package/webapp/dist/assets/logs-DTRjOfX8.js +12 -0
- package/webapp/dist/assets/maplibre-gl-DowHoZAx.js +814 -0
- package/webapp/dist/assets/metrics-UCajtdox.js +2 -0
- package/webapp/dist/assets/nodes-DuTVU0f6.js +7 -0
- package/webapp/dist/assets/pipelines-C8BeDcAl.js +4 -0
- package/webapp/dist/assets/projects-Dp_zFfLY.js +1 -0
- package/webapp/dist/assets/react-DlmbjZJV.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-C8pn45ml.js +97 -0
- package/webapp/dist/assets/release-bits-BzTKz5fM.js +1 -0
- package/webapp/dist/assets/release-build-panel-DcW9YcXQ.js +1 -0
- package/webapp/dist/assets/releases-B4hcr1bE.js +2 -0
- package/webapp/dist/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/webapp/dist/assets/settings-DIteZTbe.js +1 -0
- package/webapp/dist/assets/settled-pair-C7SjZuns.js +1 -0
- package/webapp/dist/assets/sign-in-D4kMBOHp.js +1 -0
- package/webapp/dist/assets/stacks-Brnf-EB7.js +1 -0
- package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +1 -0
- package/webapp/dist/assets/system-info-CFDNVKkU.js +1 -0
- package/webapp/dist/assets/topology-7WeTUsDN.js +12 -0
- package/webapp/dist/assets/topology-DLioOiRN.css +1 -0
- package/webapp/dist/assets/traces-9c3gwCN-.js +1 -0
- package/webapp/dist/assets/use-stack-context-CnA5FTHu.js +1 -0
- package/webapp/dist/index.html +6 -6
- package/dist/commands/dev.d.ts +0 -23
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -76
- package/dist/commands/dev.js.map +0 -1
- package/dist/config/define-app.d.ts +0 -6
- package/dist/config/define-app.d.ts.map +0 -1
- package/dist/config/define-app.js +0 -38
- package/dist/config/define-app.js.map +0 -1
- package/dist/infrastructure/gateway-generator.d.ts +0 -63
- package/dist/infrastructure/gateway-generator.d.ts.map +0 -1
- package/dist/infrastructure/gateway-generator.js +0 -253
- package/dist/infrastructure/gateway-generator.js.map +0 -1
- package/dist/monitoring/health.service.d.ts +0 -14
- package/dist/monitoring/health.service.d.ts.map +0 -1
- package/dist/monitoring/health.service.js +0 -50
- package/dist/monitoring/health.service.js.map +0 -1
- package/dist/monitoring/metrics.service.d.ts +0 -14
- package/dist/monitoring/metrics.service.d.ts.map +0 -1
- package/dist/monitoring/metrics.service.js +0 -40
- package/dist/monitoring/metrics.service.js.map +0 -1
- package/dist/orchestrator/bootstrap-runner.d.ts +0 -15
- package/dist/orchestrator/bootstrap-runner.d.ts.map +0 -1
- package/dist/orchestrator/bootstrap-runner.js +0 -152
- package/dist/orchestrator/bootstrap-runner.js.map +0 -1
- package/dist/orchestrator/topology-proxy.d.ts +0 -65
- package/dist/orchestrator/topology-proxy.d.ts.map +0 -1
- package/dist/orchestrator/topology-proxy.js +0 -209
- package/dist/orchestrator/topology-proxy.js.map +0 -1
- package/dist/orchestrator/topology-relay.d.ts +0 -111
- package/dist/orchestrator/topology-relay.d.ts.map +0 -1
- package/dist/orchestrator/topology-relay.js +0 -255
- package/dist/orchestrator/topology-relay.js.map +0 -1
- package/dist/services/auth-middleware.d.ts +0 -47
- package/dist/services/auth-middleware.d.ts.map +0 -1
- package/dist/services/auth-middleware.js +0 -158
- package/dist/services/auth-middleware.js.map +0 -1
- package/dist/services/environment.rpc-service.d.ts +0 -22
- package/dist/services/environment.rpc-service.d.ts.map +0 -1
- package/dist/services/environment.rpc-service.js +0 -65
- package/dist/services/environment.rpc-service.js.map +0 -1
- package/dist/services/environment.service.d.ts +0 -87
- package/dist/services/environment.service.d.ts.map +0 -1
- package/dist/services/environment.service.js +0 -220
- package/dist/services/environment.service.js.map +0 -1
- package/dist/services/metrics-collector.service.d.ts +0 -103
- package/dist/services/metrics-collector.service.d.ts.map +0 -1
- package/dist/services/metrics-collector.service.js +0 -235
- package/dist/services/metrics-collector.service.js.map +0 -1
- package/dist/services/metrics.rpc-service.d.ts +0 -41
- package/dist/services/metrics.rpc-service.d.ts.map +0 -1
- package/dist/services/metrics.rpc-service.js +0 -90
- package/dist/services/metrics.rpc-service.js.map +0 -1
- package/dist/services/metrics.service.d.ts +0 -72
- package/dist/services/metrics.service.d.ts.map +0 -1
- package/dist/services/metrics.service.js +0 -185
- package/dist/services/metrics.service.js.map +0 -1
- package/dist/supervisor/omnitron-supervisor.d.ts +0 -21
- package/dist/supervisor/omnitron-supervisor.d.ts.map +0 -1
- package/dist/supervisor/omnitron-supervisor.js +0 -43
- package/dist/supervisor/omnitron-supervisor.js.map +0 -1
- package/dist/webapp/static-server.d.ts +0 -24
- package/dist/webapp/static-server.d.ts.map +0 -1
- package/dist/webapp/static-server.js +0 -152
- package/dist/webapp/static-server.js.map +0 -1
- package/webapp/dist/assets/Badge-D2ZBP5iK.js +0 -1
- package/webapp/dist/assets/Card-vO88g06B.js +0 -1
- package/webapp/dist/assets/CardActions-C9h7Q2wW.js +0 -1
- package/webapp/dist/assets/CardContent-BA_Xmmhk.js +0 -1
- package/webapp/dist/assets/CardHeader-ceIs__6x.js +0 -1
- package/webapp/dist/assets/Chip-Ckk0xUhK.js +0 -1
- package/webapp/dist/assets/DialogActions-BhHM7hov.js +0 -1
- package/webapp/dist/assets/DialogContentText-BT2JQRmK.js +0 -1
- package/webapp/dist/assets/FormControlLabel-CcQByVS8.js +0 -1
- package/webapp/dist/assets/Grid-14PETRQW.js +0 -1
- package/webapp/dist/assets/InputAdornment-B8aHIsQ7.js +0 -1
- package/webapp/dist/assets/Skeleton-B74-Ds6O.js +0 -37
- package/webapp/dist/assets/Switch-DvWD2wh4.js +0 -1
- package/webapp/dist/assets/SwitchBase-CDU4nY8O.js +0 -1
- package/webapp/dist/assets/Tab-DcCOYYp5.js +0 -1
- package/webapp/dist/assets/TableContainer-CzTh4mu-.js +0 -1
- package/webapp/dist/assets/TableRow-BySEreZR.js +0 -2
- package/webapp/dist/assets/TextField-BLf-BHz2.js +0 -1
- package/webapp/dist/assets/alerts-DnRbT41C.js +0 -1
- package/webapp/dist/assets/apps-CdR0VH2d.js +0 -1
- package/webapp/dist/assets/chunk-DtcAfS_W.js +0 -1
- package/webapp/dist/assets/client-DU8I_lDc.js +0 -2
- package/webapp/dist/assets/constants-BgnT-Xdy.js +0 -1
- package/webapp/dist/assets/containers-Dw-rRXV1.js +0 -1
- package/webapp/dist/assets/dashboard-CzgB0uZz.js +0 -1
- package/webapp/dist/assets/dashboard-builder-DsA0yg33.js +0 -1
- package/webapp/dist/assets/deployments-DtQAoIcQ.js +0 -1
- package/webapp/dist/assets/detail-BJR-G7JG.js +0 -1
- package/webapp/dist/assets/detail-nlCeSltl.js +0 -8
- package/webapp/dist/assets/formatters-Do41SRmE.js +0 -1
- package/webapp/dist/assets/index-ByQDwp2r.js +0 -566
- package/webapp/dist/assets/index-CHVXOsTS.css +0 -1
- package/webapp/dist/assets/isMuiElement-DwF2naaF.js +0 -1
- package/webapp/dist/assets/logs-Kn8o4H7k.js +0 -11
- package/webapp/dist/assets/metrics-DN8Zu5wT.js +0 -2
- package/webapp/dist/assets/nodes-Bgch7AtN.js +0 -7
- package/webapp/dist/assets/pipelines-Cry3qm-S.js +0 -4
- package/webapp/dist/assets/popper-BJFSj6rc.js +0 -1
- package/webapp/dist/assets/preload-helper-DSXbuxSR.js +0 -1
- package/webapp/dist/assets/projects-Dym2GI1U.js +0 -1
- package/webapp/dist/assets/react-apexcharts.esm-CSGK5Cxn.js +0 -958
- package/webapp/dist/assets/react-apexcharts.esm-DEAWOwx5.js +0 -1003
- package/webapp/dist/assets/settings-va3zTcow.js +0 -1
- package/webapp/dist/assets/sign-in-ik35umbp.js +0 -1
- package/webapp/dist/assets/stacks-CVFOnxbF.js +0 -1
- package/webapp/dist/assets/system-info-npIXAjX2.js +0 -1
- package/webapp/dist/assets/topology-CHpVij2M.css +0 -1
- package/webapp/dist/assets/topology-bDe70vLs.js +0 -12
- package/webapp/dist/assets/traces-DIIcT8DF.js +0 -1
- package/webapp/dist/assets/use-stack-context-DHLwZv1r.js +0 -1
- /package/webapp/dist/assets/{fs-CgZLtHiQ.js → fs-Ccl3sAcp.js} +0 -0
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A chunk the last deployment took away.
|
|
3
|
+
*
|
|
4
|
+
* A page opened before a deployment keeps the build it loaded: its
|
|
5
|
+
* `index.html` and entry name every lazy chunk by its content hash. The
|
|
6
|
+
* deployment then points the gateway at a NEW build directory, and the next
|
|
7
|
+
* lazy route that tab opens asks for a chunk that directory does not have.
|
|
8
|
+
* Measured on sample/test on 2026-09-29, after release d531ab26: the owner's
|
|
9
|
+
* /admin/config answered «error loading dynamically imported module:
|
|
10
|
+
* …/assets/config-CUEyrA2c.js», which was 404 — while the current build was
|
|
11
|
+
* whole (243 files referenced by its index and entry, all 200) and the chunk
|
|
12
|
+
* sat, intact, in the previous build's directory on the same disk
|
|
13
|
+
* (`/opt/omnitron/stack-static/gateway/0d98bee79c410715/assets/`). Testers
|
|
14
|
+
* met it «everywhere»: every tab older than the deployment, on every route it
|
|
15
|
+
* had not opened yet. The gateway logs none of it — `/assets/` has
|
|
16
|
+
* `access_log off`.
|
|
17
|
+
*
|
|
18
|
+
* So a new build carries the assets of the build the gateway is serving now,
|
|
19
|
+
* hard-linked into its `assets/` (content-hashed names never collide, and a
|
|
20
|
+
* link costs no space): a tab from before the deployment keeps working until
|
|
21
|
+
* its reader reloads. One generation, from each build's OWN list
|
|
22
|
+
* (`<dir>.own-assets`, written here beside the directory, never served) —
|
|
23
|
+
* carrying what was carried would grow every build by every build before it.
|
|
24
|
+
*
|
|
25
|
+
* And the builds nobody serves are removed: 122 directories, 3.9 GB, had
|
|
26
|
+
* accumulated on the test node since 2026-09-10. Kept: the newest `keep`,
|
|
27
|
+
* the new one, and every directory ANY gateway container names — running or
|
|
28
|
+
* stopped, because a stopped stack's gateway comes back with the mount it
|
|
29
|
+
* has.
|
|
30
|
+
*/
|
|
31
|
+
import { shellEscape } from '../shared/shell-escape.js';
|
|
32
|
+
/** Directory names are the first 16 hex of the archive's sha256 (`uploadStaticBundle`). */
|
|
33
|
+
const BUILD_DIR = '[0-9a-f]{16}';
|
|
34
|
+
/**
|
|
35
|
+
* The script run on the node once a build is unpacked into `fresh`, before
|
|
36
|
+
* its `.delivered` marker is written. `serving` are the build directories the
|
|
37
|
+
* RUNNING gateways mount now (what open tabs loaded); `mounted` are those ANY
|
|
38
|
+
* gateway container mounts (never removed). Prints one line:
|
|
39
|
+
* `carried <n> from <k> build(s); pruned <m> build(s)`.
|
|
40
|
+
*/
|
|
41
|
+
export function carryForwardScript(options) {
|
|
42
|
+
const { root, fresh, serving, mounted, keep, dryRun = false } = options;
|
|
43
|
+
const q = shellEscape;
|
|
44
|
+
const servingList = serving.map(q).join(' ');
|
|
45
|
+
const keepList = [fresh, ...mounted].map(q).join(' ');
|
|
46
|
+
return [
|
|
47
|
+
'set -u',
|
|
48
|
+
`ROOT=${q(root)}; FRESH=${q(fresh)}; KEEP=${Math.max(1, Math.floor(keep))}`,
|
|
49
|
+
// The new build's own assets, beside it (a directory's contents are served).
|
|
50
|
+
//
|
|
51
|
+
// Written ONCE, and never again for the same directory. A rollback runs
|
|
52
|
+
// this for a build that is already on the node and has already been
|
|
53
|
+
// carried into — its `assets/` now holds another build's chunks as hard
|
|
54
|
+
// links. Rewriting the list there would record those as its own, and the
|
|
55
|
+
// next deployment carrying from it would carry a second generation, which
|
|
56
|
+
// is the growth this file exists to stop.
|
|
57
|
+
dryRun ? ':' : '[ -s "$FRESH.own-assets" ] || ls -1 "$FRESH/assets" 2>/dev/null > "$FRESH.own-assets"',
|
|
58
|
+
'carried=0; from=0',
|
|
59
|
+
`for S in ${servingList}; do`,
|
|
60
|
+
' case "$S" in "$ROOT"/*) ;; *) continue ;; esac',
|
|
61
|
+
' [ "$S" = "$FRESH" ] && continue',
|
|
62
|
+
' [ -d "$S/assets" ] || continue',
|
|
63
|
+
' from=$((from + 1))',
|
|
64
|
+
' if [ -s "$S.own-assets" ]; then LIST="$S.own-assets"; else LIST=$(mktemp); ls -1 "$S/assets" > "$LIST"; fi',
|
|
65
|
+
' while IFS= read -r f; do',
|
|
66
|
+
' case "$f" in ""|*/*|.*) continue ;; esac',
|
|
67
|
+
' [ -e "$FRESH/assets/$f" ] && continue',
|
|
68
|
+
' [ -f "$S/assets/$f" ] || continue',
|
|
69
|
+
dryRun
|
|
70
|
+
? ' :'
|
|
71
|
+
: ' ln "$S/assets/$f" "$FRESH/assets/$f" 2>/dev/null || cp -p "$S/assets/$f" "$FRESH/assets/$f" || continue',
|
|
72
|
+
' carried=$((carried + 1))',
|
|
73
|
+
' done < "$LIST"',
|
|
74
|
+
'done',
|
|
75
|
+
// Prune: the build directories, newest first; keep the newest KEEP and every named one.
|
|
76
|
+
'pruned=0; n=0',
|
|
77
|
+
`for D in $(ls -1dt "$ROOT"/* 2>/dev/null | grep -E "/${BUILD_DIR}$"); do`,
|
|
78
|
+
' [ -d "$D" ] || continue',
|
|
79
|
+
' n=$((n + 1))',
|
|
80
|
+
' [ "$n" -le "$KEEP" ] && continue',
|
|
81
|
+
' held=0',
|
|
82
|
+
` for K in ${keepList}; do [ "$D" = "$K" ] && held=1; done`,
|
|
83
|
+
' [ "$held" = 1 ] && continue',
|
|
84
|
+
dryRun
|
|
85
|
+
? ' echo "would remove $D"; pruned=$((pruned + 1))'
|
|
86
|
+
: ' rm -rf "$D" "$D.delivered" "$D.own-assets" "$D.tar.gz" && pruned=$((pruned + 1))',
|
|
87
|
+
'done',
|
|
88
|
+
`echo "${dryRun ? 'would carry' : 'carried'} $carried from $from build(s); ${dryRun ? 'would prune' : 'pruned'} $pruned build(s)"`,
|
|
89
|
+
].join('\n');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What a stack's `current` link is called, inside the static root.
|
|
93
|
+
*
|
|
94
|
+
* `current-<project>-<stack>`, because `/opt/omnitron/stack-static/gateway` is
|
|
95
|
+
* shared by every stack on the NODE — the literal is passed to
|
|
96
|
+
* `uploadStaticBundle` with no project and no stack in it — and several stacks
|
|
97
|
+
* do run on one node. A bare `current` would make one deployment repoint
|
|
98
|
+
* another stack's portal.
|
|
99
|
+
*
|
|
100
|
+
* Both sides spell it from here: the master when it swaps the link, and the
|
|
101
|
+
* shell below when it reads a container's back. `CONTAINER_PREFIX` is the same
|
|
102
|
+
* `<project>-<stack>`, which is why the container is `<project>-<stack>-gateway`.
|
|
103
|
+
*/
|
|
104
|
+
export function gatewayStaticLinkName(project, stack) {
|
|
105
|
+
return `current-${project}-${stack}`;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The build directories gateway containers on the node serve: running ones
|
|
109
|
+
* (what open tabs loaded) and all of them (what must stay).
|
|
110
|
+
*
|
|
111
|
+
* It used to read the mount SOURCE, which was the build directory itself. Once
|
|
112
|
+
* the gateway mounts the static ROOT and serves through `current-<stack>`, the
|
|
113
|
+
* source is the same constant for every gateway on the node — so the source
|
|
114
|
+
* answers «which build» with nothing, and both halves of the script below fail
|
|
115
|
+
* silently: the carry-forward finds no `assets/` under a root and copies
|
|
116
|
+
* nothing (printing `carried 0 from 0 build(s)`, a line that looks fine), and
|
|
117
|
+
* the prune stops holding any build, leaving only «newest 5 by mtime» — which
|
|
118
|
+
* is exactly the wrong rule on a ROLLBACK, where the wanted build is old.
|
|
119
|
+
*
|
|
120
|
+
* So it resolves the link instead. `readlink -f`, not `readlink`: the link is
|
|
121
|
+
* relative (it must be — it is resolved inside the container), and the reader
|
|
122
|
+
* below wants an absolute path. A gateway with no link yet — the first
|
|
123
|
+
* deployment — prints nothing, and there is nothing to carry.
|
|
124
|
+
*/
|
|
125
|
+
export const GATEWAY_MOUNTS_COMMAND = [
|
|
126
|
+
'for c in $(docker ps -aq --filter label=omnitron.service=gateway 2>/dev/null); do',
|
|
127
|
+
' src=$(docker inspect -f \'{{range .Mounts}}{{if eq .Destination "/var/www/portal"}}{{.Source}}{{end}}{{end}}\' "$c" 2>/dev/null)',
|
|
128
|
+
' state=$(docker inspect -f \'{{.State.Running}}\' "$c" 2>/dev/null)',
|
|
129
|
+
' [ -n "$src" ] || continue',
|
|
130
|
+
// The mount is either the build directory (before this change, and on a
|
|
131
|
+
// master serving a project-relative `staticDir`) or the root that holds
|
|
132
|
+
// `current-<project>-<stack>`. Ask the labels which stack, resolve the
|
|
133
|
+
// link, and fall back to the source itself when there is no link.
|
|
134
|
+
' proj=$(docker inspect -f \'{{index .Config.Labels "omnitron.project"}}\' "$c" 2>/dev/null)',
|
|
135
|
+
' stk=$(docker inspect -f \'{{index .Config.Labels "omnitron.stack"}}\' "$c" 2>/dev/null)',
|
|
136
|
+
' tgt=""',
|
|
137
|
+
// The link's name comes from `gatewayStaticLinkName` even here: given the
|
|
138
|
+
// shell's own variables it yields the shell's own string, so there is one
|
|
139
|
+
// spelling and not two that drift.
|
|
140
|
+
` [ -n "$proj" ] && [ -n "$stk" ] && tgt=$(readlink -f "$src/${gatewayStaticLinkName('$proj', '$stk')}" 2>/dev/null)`,
|
|
141
|
+
' [ -n "$tgt" ] || tgt="$src"',
|
|
142
|
+
' echo "$state $tgt"',
|
|
143
|
+
'done',
|
|
144
|
+
].join('\n');
|
|
145
|
+
/** `true /opt/…/abc` lines → the running and the mounted sources. */
|
|
146
|
+
export function readGatewayMounts(output) {
|
|
147
|
+
const serving = [];
|
|
148
|
+
const mounted = [];
|
|
149
|
+
for (const line of output.split('\n')) {
|
|
150
|
+
const m = /^(true|false)\s+(\/\S+)$/.exec(line.trim());
|
|
151
|
+
if (!m)
|
|
152
|
+
continue;
|
|
153
|
+
mounted.push(m[2]);
|
|
154
|
+
if (m[1] === 'true')
|
|
155
|
+
serving.push(m[2]);
|
|
156
|
+
}
|
|
157
|
+
return { serving: [...new Set(serving)], mounted: [...new Set(mounted)] };
|
|
158
|
+
}
|
|
159
|
+
const ASSET_STORAGE = '/opt/omnitron/stack-static/assets';
|
|
160
|
+
export function immutableAssetsRoot(owner) {
|
|
161
|
+
if (!owner ||
|
|
162
|
+
Object.keys(owner).sort().join(',') !== 'app,project,stack' ||
|
|
163
|
+
![owner.project, owner.stack, owner.app].every((part) => typeof part === 'string' && /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,79}$/.test(part)))
|
|
164
|
+
throw new Error('Invalid static asset owner');
|
|
165
|
+
return `${ASSET_STORAGE}/${owner.project}/${owner.stack}/${owner.app}/public`;
|
|
166
|
+
}
|
|
167
|
+
/** Self-contained destination program. Every writer MUST hold the native exclusive execution fence. */
|
|
168
|
+
function immutableAssetProgram(input, storage, replaying = false) {
|
|
169
|
+
const fs = require('node:fs');
|
|
170
|
+
const path = require('node:path');
|
|
171
|
+
const crypto = require('node:crypto');
|
|
172
|
+
const fail = (reason) => {
|
|
173
|
+
throw new Error('Immutable assets: ' + reason);
|
|
174
|
+
};
|
|
175
|
+
const object = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
176
|
+
const digest = (bytes) => crypto.createHash('sha256').update(bytes).digest('hex');
|
|
177
|
+
const safeName = (name) => name.length > 0 &&
|
|
178
|
+
name.length <= 1024 &&
|
|
179
|
+
name.split('/').every((part) => /^[a-zA-Z0-9_@+-][a-zA-Z0-9._@+-]*$/.test(part));
|
|
180
|
+
if (!object(input) ||
|
|
181
|
+
!object(input.owner) ||
|
|
182
|
+
Object.keys(input.owner).sort().join(',') !== 'app,project,stack' ||
|
|
183
|
+
![input.owner.project, input.owner.stack, input.owner.app].every((part) => typeof part === 'string' && /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,79}$/.test(part)) ||
|
|
184
|
+
!Array.isArray(input.sources) ||
|
|
185
|
+
input.sources.length === 0)
|
|
186
|
+
fail('invalid owner or sources');
|
|
187
|
+
const owner = {
|
|
188
|
+
project: input.owner.project,
|
|
189
|
+
stack: input.owner.stack,
|
|
190
|
+
app: input.owner.app,
|
|
191
|
+
};
|
|
192
|
+
if (!path.isAbsolute(storage) || path.resolve(storage) !== storage)
|
|
193
|
+
fail('noncanonical storage');
|
|
194
|
+
const ownerRoot = path.join(storage, owner.project, owner.stack, owner.app), publicRoot = path.join(ownerRoot, 'public');
|
|
195
|
+
const manifestFile = path.join(ownerRoot, 'manifest.json'), pendingFile = path.join(ownerRoot, 'pending.json');
|
|
196
|
+
const syncDir = (name) => {
|
|
197
|
+
const fd = fs.openSync(name, 'r');
|
|
198
|
+
try {
|
|
199
|
+
fs.fsyncSync(fd);
|
|
200
|
+
}
|
|
201
|
+
finally {
|
|
202
|
+
fs.closeSync(fd);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const directory = (name, create = false) => {
|
|
206
|
+
if (!path.isAbsolute(name) || path.resolve(name) !== name)
|
|
207
|
+
fail('noncanonical directory: ' + name);
|
|
208
|
+
let current = path.parse(name).root;
|
|
209
|
+
for (const component of name.slice(current.length).split('/').filter(Boolean)) {
|
|
210
|
+
const parent = current;
|
|
211
|
+
current = path.join(current, component);
|
|
212
|
+
let st;
|
|
213
|
+
try {
|
|
214
|
+
st = fs.lstatSync(current);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
if (!create || error.code !== 'ENOENT')
|
|
218
|
+
throw error;
|
|
219
|
+
fs.mkdirSync(current, { mode: 0o755 });
|
|
220
|
+
fs.chmodSync(current, 0o755); // native remote commands inherit umask 077
|
|
221
|
+
syncDir(parent);
|
|
222
|
+
st = fs.lstatSync(current);
|
|
223
|
+
}
|
|
224
|
+
if (!st.isDirectory() || st.isSymbolicLink())
|
|
225
|
+
fail('directory symlink or non-directory: ' + current);
|
|
226
|
+
}
|
|
227
|
+
if (fs.realpathSync(name) !== name)
|
|
228
|
+
fail('directory alias: ' + name);
|
|
229
|
+
};
|
|
230
|
+
const read = (file) => {
|
|
231
|
+
directory(path.dirname(file));
|
|
232
|
+
const fd = fs.openSync(file, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
|
|
233
|
+
try {
|
|
234
|
+
if (!fs.fstatSync(fd).isFile())
|
|
235
|
+
fail('nonregular file: ' + file);
|
|
236
|
+
return fs.readFileSync(fd);
|
|
237
|
+
}
|
|
238
|
+
finally {
|
|
239
|
+
fs.closeSync(fd);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
const inventory = (root) => {
|
|
243
|
+
directory(root);
|
|
244
|
+
const names = [];
|
|
245
|
+
const walk = (dir, prefix) => {
|
|
246
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
247
|
+
const name = prefix + entry.name;
|
|
248
|
+
if (!safeName(name) || entry.isSymbolicLink())
|
|
249
|
+
fail('unsafe asset: ' + name);
|
|
250
|
+
if (entry.isDirectory())
|
|
251
|
+
walk(path.join(dir, entry.name), name + '/');
|
|
252
|
+
else if (entry.isFile())
|
|
253
|
+
names.push(name);
|
|
254
|
+
else
|
|
255
|
+
fail('nonregular asset: ' + name);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
walk(root, '');
|
|
259
|
+
return names.sort();
|
|
260
|
+
};
|
|
261
|
+
const validateManifest = (value) => {
|
|
262
|
+
if (!object(value) ||
|
|
263
|
+
value['schema'] !== 1 ||
|
|
264
|
+
JSON.stringify(value['owner']) !== JSON.stringify(owner) ||
|
|
265
|
+
!object(value['files']))
|
|
266
|
+
fail('invalid pool manifest');
|
|
267
|
+
const parsed = value;
|
|
268
|
+
for (const [name, entry] of Object.entries(parsed.files)) {
|
|
269
|
+
if (!safeName(name) ||
|
|
270
|
+
!object(entry) ||
|
|
271
|
+
!/^[a-f0-9]{64}$/.test(entry.sha256) ||
|
|
272
|
+
!Number.isSafeInteger(entry.bytes) ||
|
|
273
|
+
entry.bytes < 0)
|
|
274
|
+
fail('invalid pool entry: ' + name);
|
|
275
|
+
}
|
|
276
|
+
return parsed;
|
|
277
|
+
};
|
|
278
|
+
const exists = (file) => {
|
|
279
|
+
try {
|
|
280
|
+
fs.lstatSync(file);
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
catch (e) {
|
|
284
|
+
if (e.code === 'ENOENT')
|
|
285
|
+
return false;
|
|
286
|
+
throw e;
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
const load = (file) => validateManifest(JSON.parse(read(file).toString('utf8')));
|
|
290
|
+
const encode = (manifest) => JSON.stringify({
|
|
291
|
+
schema: 1,
|
|
292
|
+
owner,
|
|
293
|
+
files: Object.fromEntries(Object.entries(manifest.files).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))),
|
|
294
|
+
}) + '\n';
|
|
295
|
+
const writeAtomic = (file, bytes) => {
|
|
296
|
+
const temp = file + '.' + crypto.randomUUID() + '.tmp', fd = fs.openSync(temp, 'wx', 0o600);
|
|
297
|
+
try {
|
|
298
|
+
fs.writeFileSync(fd, bytes);
|
|
299
|
+
fs.fsyncSync(fd);
|
|
300
|
+
}
|
|
301
|
+
finally {
|
|
302
|
+
fs.closeSync(fd);
|
|
303
|
+
}
|
|
304
|
+
fs.renameSync(temp, file);
|
|
305
|
+
syncDir(path.dirname(file));
|
|
306
|
+
};
|
|
307
|
+
directory(ownerRoot, true);
|
|
308
|
+
directory(publicRoot, true);
|
|
309
|
+
const baseline = exists(manifestFile) ? load(manifestFile) : { schema: 1, owner, files: {} };
|
|
310
|
+
const pending = exists(pendingFile) ? load(pendingFile) : null;
|
|
311
|
+
if (pending)
|
|
312
|
+
for (const [name, entry] of Object.entries(baseline.files)) {
|
|
313
|
+
if (JSON.stringify(pending.files[name]) !== JSON.stringify(entry))
|
|
314
|
+
fail('pending publication changes retained asset: ' + name);
|
|
315
|
+
}
|
|
316
|
+
const admitted = pending ?? baseline, present = new Set(inventory(publicRoot));
|
|
317
|
+
for (const name of present) {
|
|
318
|
+
const entry = Object.hasOwn(admitted.files, name) ? admitted.files[name] : undefined;
|
|
319
|
+
if (!entry)
|
|
320
|
+
fail('unrecorded public asset: ' + name);
|
|
321
|
+
const bytes = read(path.join(publicRoot, name));
|
|
322
|
+
if (bytes.length !== entry.bytes || digest(bytes) !== entry.sha256)
|
|
323
|
+
fail('retained asset integrity: ' + name);
|
|
324
|
+
}
|
|
325
|
+
for (const name of Object.keys(baseline.files))
|
|
326
|
+
if (!present.has(name))
|
|
327
|
+
fail('missing retained asset: ' + name);
|
|
328
|
+
if (pending && !replaying) {
|
|
329
|
+
const incomplete = Object.keys(pending.files).some((name) => !present.has(name));
|
|
330
|
+
if (incomplete) {
|
|
331
|
+
if (!Array.isArray(pending.sources) || pending.sources.length === 0)
|
|
332
|
+
fail('pending publication has no recoverable source descriptors');
|
|
333
|
+
// Complete the original validated intention first, even if this caller is a later release.
|
|
334
|
+
immutableAssetProgram({ owner, sources: pending.sources }, storage, true);
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
// All planned bytes already passed integrity verification; no source directory is needed.
|
|
338
|
+
writeAtomic(manifestFile, encode(pending));
|
|
339
|
+
fs.unlinkSync(pendingFile);
|
|
340
|
+
syncDir(ownerRoot);
|
|
341
|
+
}
|
|
342
|
+
return immutableAssetProgram(input, storage);
|
|
343
|
+
}
|
|
344
|
+
const stage = fs.mkdtempSync(path.join(ownerRoot, '.staging-'));
|
|
345
|
+
fs.chmodSync(stage, 0o700);
|
|
346
|
+
const requested = Object.create(null);
|
|
347
|
+
try {
|
|
348
|
+
// Copy and validate every requested byte before changing any public URL.
|
|
349
|
+
for (const source of input.sources) {
|
|
350
|
+
if (!object(source) ||
|
|
351
|
+
typeof source.root !== 'string' ||
|
|
352
|
+
!object(source.files) ||
|
|
353
|
+
Object.keys(source.files).length === 0)
|
|
354
|
+
fail('invalid or empty source');
|
|
355
|
+
directory(source.root);
|
|
356
|
+
const names = Object.keys(source.files).sort();
|
|
357
|
+
if (JSON.stringify(names) !== JSON.stringify(inventory(source.root)))
|
|
358
|
+
fail('source inventory differs from manifest: ' + source.root);
|
|
359
|
+
for (const name of names) {
|
|
360
|
+
const expected = source.files[name];
|
|
361
|
+
if (!safeName(name) || typeof expected !== 'string' || !/^[a-f0-9]{64}$/.test(expected))
|
|
362
|
+
fail('invalid source identity: ' + name);
|
|
363
|
+
const bytes = read(path.join(source.root, name));
|
|
364
|
+
if (digest(bytes) !== expected)
|
|
365
|
+
fail('source digest differs: ' + name);
|
|
366
|
+
const entry = { sha256: expected, bytes: bytes.length };
|
|
367
|
+
for (const prior of [Object.hasOwn(admitted.files, name) ? admitted.files[name] : undefined, requested[name]])
|
|
368
|
+
if (prior && (prior.sha256 !== entry.sha256 || prior.bytes !== entry.bytes))
|
|
369
|
+
fail('URL collision: ' + name);
|
|
370
|
+
if (!requested[name] && !present.has(name)) {
|
|
371
|
+
const file = path.join(stage, name);
|
|
372
|
+
directory(path.dirname(file), true);
|
|
373
|
+
const fd = fs.openSync(file, 'wx', 0o444);
|
|
374
|
+
try {
|
|
375
|
+
fs.writeFileSync(fd, bytes);
|
|
376
|
+
fs.fchmodSync(fd, 0o444); // readable through an app-owned nginx bind mount
|
|
377
|
+
fs.fsyncSync(fd);
|
|
378
|
+
}
|
|
379
|
+
finally {
|
|
380
|
+
fs.closeSync(fd);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
requested[name] = entry;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
for (const name of Object.keys(admitted.files))
|
|
387
|
+
if (!present.has(name) && !requested[name])
|
|
388
|
+
fail('unfinished publication requires its original sources: ' + name);
|
|
389
|
+
const next = {
|
|
390
|
+
schema: 1,
|
|
391
|
+
owner,
|
|
392
|
+
files: { ...admitted.files, ...requested },
|
|
393
|
+
}, encoded = encode(next);
|
|
394
|
+
// A durable intention identifies partial publication after a lost controller/acknowledgement.
|
|
395
|
+
writeAtomic(pendingFile, JSON.stringify({ ...next, sources: input.sources }) + '\n');
|
|
396
|
+
let added = 0;
|
|
397
|
+
for (const name of Object.keys(requested).sort()) {
|
|
398
|
+
if (present.has(name))
|
|
399
|
+
continue;
|
|
400
|
+
const destination = path.join(publicRoot, name), staged = path.join(stage, name);
|
|
401
|
+
directory(path.dirname(destination), true);
|
|
402
|
+
if (exists(destination))
|
|
403
|
+
fail('destination appeared before publication: ' + name);
|
|
404
|
+
const copied = read(staged);
|
|
405
|
+
if (digest(copied) !== requested[name].sha256 || copied.length !== requested[name].bytes)
|
|
406
|
+
fail('staged asset integrity: ' + name);
|
|
407
|
+
// All writers use the same native exclusive execution fence. No source inode is linked.
|
|
408
|
+
fs.renameSync(staged, destination);
|
|
409
|
+
syncDir(path.dirname(destination));
|
|
410
|
+
added++;
|
|
411
|
+
}
|
|
412
|
+
writeAtomic(manifestFile, encoded);
|
|
413
|
+
fs.unlinkSync(pendingFile);
|
|
414
|
+
syncDir(ownerRoot);
|
|
415
|
+
return {
|
|
416
|
+
assetsRoot: publicRoot,
|
|
417
|
+
manifestSha256: digest(encoded),
|
|
418
|
+
files: Object.keys(next.files).length,
|
|
419
|
+
added,
|
|
420
|
+
reused: Object.keys(requested).length - added,
|
|
421
|
+
bytes: Object.values(next.files).reduce((sum, entry) => sum + entry.bytes, 0),
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
finally {
|
|
425
|
+
fs.rmSync(stage, { recursive: true, force: true });
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/** Runs only inside the caller's native node execution fence; custom storage isolates integration tests. */
|
|
429
|
+
export function immutableAssetsScript(inputFile, storage = ASSET_STORAGE) {
|
|
430
|
+
const source = `const fs=require('node:fs');const input=JSON.parse(fs.readFileSync(process.argv[1],'utf8'));const receipt=(${immutableAssetProgram.toString()})(input,process.argv[2]);process.stdout.write(JSON.stringify(receipt)+'\\n');`;
|
|
431
|
+
return `node -e ${shellEscape(source)} ${shellEscape(inputFile)} ${shellEscape(storage)}`;
|
|
432
|
+
}
|
|
433
|
+
//# sourceMappingURL=static-carry-forward.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-carry-forward.js","sourceRoot":"","sources":["../../src/services/static-carry-forward.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The decisions the slave→master replication makes, separated from the
|
|
3
|
+
* database calls that carry them out.
|
|
4
|
+
*
|
|
5
|
+
* `sync.service.ts` opens with five numbered guarantees. Four of them were
|
|
6
|
+
* not implemented, and each failure is silent by construction — replication
|
|
7
|
+
* that drops data still reports success, because the thing that would have
|
|
8
|
+
* noticed is the thing that is missing.
|
|
9
|
+
*
|
|
10
|
+
* 1. "Zero data loss" The push path marked every entry synced after
|
|
11
|
+
* `receiveBatch` returned, and `receiveBatch` swallows per-entry
|
|
12
|
+
* ingestion failures into a warning. Forty rejected entries out of a
|
|
13
|
+
* hundred were marked delivered and evicted twenty-four hours later.
|
|
14
|
+
*
|
|
15
|
+
* The pull path was worse: `drainBuffer` marked entries synced *before*
|
|
16
|
+
* returning them, so a response lost in transit, a checksum mismatch or
|
|
17
|
+
* a rate-limit rejection lost the data outright — and the caller logged
|
|
18
|
+
* the failure at debug level.
|
|
19
|
+
*
|
|
20
|
+
* 4. "Idempotent (safe to retry)" There was no mechanism. `batchId` was
|
|
21
|
+
* generated, transmitted, and used only inside log and error strings.
|
|
22
|
+
* Retrying meant ingesting twice.
|
|
23
|
+
*
|
|
24
|
+
* 5. "Bounded buffer — oldest entries evicted when maxBufferSize reached"
|
|
25
|
+
* `maxBufferSize` was read from config, defaulted to 500 MB, and never
|
|
26
|
+
* referenced again. A slave that lost its master buffered until the
|
|
27
|
+
* disk filled.
|
|
28
|
+
*
|
|
29
|
+
* The three are entangled: making delivery honest (1) means entries are
|
|
30
|
+
* retried, which requires deduplication (4) or the loss becomes duplication;
|
|
31
|
+
* and retaining undelivered entries makes the unbounded buffer (5) reachable
|
|
32
|
+
* rather than theoretical. They are fixed together or not at all.
|
|
33
|
+
*/
|
|
34
|
+
/** What the master did with each entry of a batch. */
|
|
35
|
+
export interface IngestOutcome {
|
|
36
|
+
/** Claimed and dropped: the master can never store them. */
|
|
37
|
+
discarded: string[];
|
|
38
|
+
/** Entries ingested for the first time. */
|
|
39
|
+
accepted: string[];
|
|
40
|
+
/** Entries the master had already ingested — delivered, not re-applied. */
|
|
41
|
+
duplicates: string[];
|
|
42
|
+
/** Entries the master could not ingest. These must NOT be marked synced. */
|
|
43
|
+
failed: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Which entries the slave may release.
|
|
47
|
+
*
|
|
48
|
+
* A duplicate counts as delivered: the master has it. A transient failure
|
|
49
|
+
* does not, however many times it has been attempted — data the master
|
|
50
|
+
* rejected because it was momentarily unable is still data the slave holds,
|
|
51
|
+
* and dropping it here is the loss that guarantee 1 forbids.
|
|
52
|
+
*
|
|
53
|
+
* A DISCARD is different, and it is released. The master has said this entry
|
|
54
|
+
* can never be stored — a malformed uuid, a foreign key it does not have —
|
|
55
|
+
* and answered the same way for every attempt. Holding it does not preserve
|
|
56
|
+
* it: it parks it at the head of the buffer with everything behind it
|
|
57
|
+
* waiting, until the bound above eventually drops the lot. Releasing the one
|
|
58
|
+
* entry the master named, loudly, costs that entry and saves the rest.
|
|
59
|
+
*/
|
|
60
|
+
export declare function deliveredIds(outcome: IngestOutcome): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Should a pull sweep stop?
|
|
63
|
+
*
|
|
64
|
+
* `drainBuffer` no longer marks entries synced, so an entry the master keeps
|
|
65
|
+
* rejecting comes back on the next fetch. Without this the sweep would
|
|
66
|
+
* re-fetch and re-reject the same page forever.
|
|
67
|
+
*
|
|
68
|
+
* Returns true when the batch contains nothing the sweep has not already
|
|
69
|
+
* seen — that is, when continuing cannot make progress.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sweepMadeProgress(seen: Set<string>, batchIds: string[]): boolean;
|
|
72
|
+
export interface EvictionPlan {
|
|
73
|
+
/** Delete synced rows older than this many milliseconds. Always applied. */
|
|
74
|
+
syncedOlderThanMs: number;
|
|
75
|
+
/** Rows to delete beyond that, oldest first, to get back under budget. */
|
|
76
|
+
overflowRows: number;
|
|
77
|
+
/** True when the overflow deletion will discard entries never delivered. */
|
|
78
|
+
discardsUndelivered: boolean;
|
|
79
|
+
}
|
|
80
|
+
/** Synced entries are kept this long for debugging before routine eviction. */
|
|
81
|
+
export declare const SYNCED_RETENTION_MS: number;
|
|
82
|
+
/**
|
|
83
|
+
* How much to remove from the WAL.
|
|
84
|
+
*
|
|
85
|
+
* Routine eviction of old synced rows happens every cycle. The overflow pass
|
|
86
|
+
* runs only when the table is over budget, and it is estimated rather than
|
|
87
|
+
* exact: rows are deleted oldest-first until the projected size fits, using
|
|
88
|
+
* the table's own average row size. An estimate is the right instrument here
|
|
89
|
+
* — the alternative to deleting approximately enough is a full disk.
|
|
90
|
+
*
|
|
91
|
+
* `discardsUndelivered` is the caller's cue to log at warning level. Dropping
|
|
92
|
+
* undelivered data is correct when the disk is the alternative, and it is
|
|
93
|
+
* never something to do quietly.
|
|
94
|
+
*/
|
|
95
|
+
export declare function planEviction(params: {
|
|
96
|
+
totalBytes: number;
|
|
97
|
+
maxBytes: number;
|
|
98
|
+
totalRows: number;
|
|
99
|
+
syncedRows: number;
|
|
100
|
+
}): EvictionPlan;
|
|
101
|
+
/**
|
|
102
|
+
* Can retrying this entry ever work?
|
|
103
|
+
*
|
|
104
|
+
* `receiveBatch` leaves a failed entry unacknowledged so the slave offers it
|
|
105
|
+
* again, which is right when the master is momentarily unable — a dropped
|
|
106
|
+
* connection, a deadlock, a full disk. It is wrong when the DATA cannot be
|
|
107
|
+
* stored, because the answer will be the same every time and the entry sits
|
|
108
|
+
* at the head of the buffer forever with everything behind it.
|
|
109
|
+
*
|
|
110
|
+
* That is not hypothetical. `alert_events.ruleId` is a `uuid` with a foreign
|
|
111
|
+
* key to `alert_rules`, and `alertRow` writes `payload.ruleId ?? 'unknown'`
|
|
112
|
+
* — so an alert whose rule the master does not have, or one with no ruleId at
|
|
113
|
+
* all, is refused:
|
|
114
|
+
*
|
|
115
|
+
* select 'unknown'::uuid;
|
|
116
|
+
* ERROR: invalid input syntax for type uuid: "unknown"
|
|
117
|
+
*
|
|
118
|
+
* A slave's alert rules are its own. The first alert a node raises would
|
|
119
|
+
* therefore wedge that node's entire replication, and the only symptom is one
|
|
120
|
+
* "Sync pull stalled" line per sweep.
|
|
121
|
+
*
|
|
122
|
+
* The same function already draws this distinction for an unknown category —
|
|
123
|
+
* "retrying cannot make it known" — and drops it. This extends that to the
|
|
124
|
+
* failures the database itself calls permanent.
|
|
125
|
+
*
|
|
126
|
+
* Unrecognised errors are TRANSIENT. Getting this wrong in that direction
|
|
127
|
+
* costs a retry; getting it wrong the other way discards data.
|
|
128
|
+
*/
|
|
129
|
+
export type IngestFailureKind = 'permanent' | 'transient';
|
|
130
|
+
export declare function classifyIngestFailure(err: unknown): IngestFailureKind;
|
|
131
|
+
/**
|
|
132
|
+
* The dedup window: how long `sync_ingested` keeps a claim, in days.
|
|
133
|
+
*
|
|
134
|
+
* The ledger exists so that an entry offered twice is taken once, and an
|
|
135
|
+
* entry is offered again only while its node still holds it unacknowledged.
|
|
136
|
+
* Since a pull runs one at a time per connection (`pullSyncData`), at most
|
|
137
|
+
* ONE batch per node is ever claimed and not yet acknowledged: the batch in
|
|
138
|
+
* flight when the connection dropped between the claim and the ack. The
|
|
139
|
+
* window has to outlast that node's absence; when it does not, the price is
|
|
140
|
+
* bounded — at most one batch of telemetry stored twice.
|
|
141
|
+
*
|
|
142
|
+
* The ledger kept every claim instead. On the master, 2026-09-22: 9 934 304
|
|
143
|
+
* rows and 2.2 GB, growing by ~3.3 million a day per node at 38 entries a
|
|
144
|
+
* second, with an index on `ingestedAt` created «for pruning» and no pruner.
|
|
145
|
+
* Each day of window costs one such day of rows, so one day it is.
|
|
146
|
+
*
|
|
147
|
+
* The window also caps an open defect in the key. A node whose `slave.db` is
|
|
148
|
+
* recreated restarts its AUTOINCREMENT ids, and a new entry is read as a
|
|
149
|
+
* duplicate when its id is still claimed. Inside a window of one day that is
|
|
150
|
+
* only an id the node used in the last day — none at all for a node older
|
|
151
|
+
* than that, whose recent ids are its highest — instead of every id since the
|
|
152
|
+
* node first connected. The cure for the key itself is an epoch in it, which
|
|
153
|
+
* is a change to the protocol between versions.
|
|
154
|
+
*/
|
|
155
|
+
export declare const LEDGER_WINDOW_DAYS = 1;
|
|
156
|
+
/**
|
|
157
|
+
* When the ledger is pruned. The same cadence as the log table's retention
|
|
158
|
+
* (`log-collector.service.ts`), for the same reasons: not at the instant the
|
|
159
|
+
* daemon starts, when the migrations that create the table may still be
|
|
160
|
+
* running; hourly after that; and a minute apart while a pass keeps hitting
|
|
161
|
+
* its ceiling, so the backlog of a ledger that was never pruned drains in
|
|
162
|
+
* minutes with every statement still bounded.
|
|
163
|
+
*/
|
|
164
|
+
export declare const LEDGER_FIRST_PASS_DELAY_MS = 60000;
|
|
165
|
+
export declare const LEDGER_INTERVAL_MS: number;
|
|
166
|
+
export declare const LEDGER_BACKLOG_INTERVAL_MS: number;
|
|
167
|
+
//# sourceMappingURL=sync-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-policy.d.ts","sourceRoot":"","sources":["../../src/services/sync-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CAE7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEhF;AAED,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAqBf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,WAAW,CAAC;AAQ1D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAmBrE;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAClD,eAAO,MAAM,0BAA0B,QAAa,CAAC"}
|