@wasmsoft/fantastic 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -0
- package/bin/run.js +27 -0
- package/bin/supervisor.js +65 -0
- package/dist/acquire/central-url.d.ts +9 -0
- package/dist/acquire/central-url.d.ts.map +1 -0
- package/dist/acquire/central-url.js +74 -0
- package/dist/acquire/central-url.js.map +1 -0
- package/dist/acquire/code.d.ts +21 -0
- package/dist/acquire/code.d.ts.map +1 -0
- package/dist/acquire/code.js +66 -0
- package/dist/acquire/code.js.map +1 -0
- package/dist/acquire/compatibility.d.ts +18 -0
- package/dist/acquire/compatibility.d.ts.map +1 -0
- package/dist/acquire/compatibility.js +36 -0
- package/dist/acquire/compatibility.js.map +1 -0
- package/dist/acquire/fetch.d.ts +26 -0
- package/dist/acquire/fetch.d.ts.map +1 -0
- package/dist/acquire/fetch.js +72 -0
- package/dist/acquire/fetch.js.map +1 -0
- package/dist/acquire/latest.d.ts +24 -0
- package/dist/acquire/latest.d.ts.map +1 -0
- package/dist/acquire/latest.js +95 -0
- package/dist/acquire/latest.js.map +1 -0
- package/dist/backup/archive.d.ts +26 -0
- package/dist/backup/archive.d.ts.map +1 -0
- package/dist/backup/archive.js +123 -0
- package/dist/backup/archive.js.map +1 -0
- package/dist/backup/restore.d.ts +46 -0
- package/dist/backup/restore.d.ts.map +1 -0
- package/dist/backup/restore.js +164 -0
- package/dist/backup/restore.js.map +1 -0
- package/dist/base-command.d.ts +54 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +120 -0
- package/dist/base-command.js.map +1 -0
- package/dist/bundle-format/index.d.ts +6 -0
- package/dist/bundle-format/index.d.ts.map +1 -0
- package/dist/bundle-format/index.js +36 -0
- package/dist/bundle-format/index.js.map +1 -0
- package/dist/commands/activate.d.ts +15 -0
- package/dist/commands/activate.d.ts.map +1 -0
- package/dist/commands/activate.js +139 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/backup.d.ts +11 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +75 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/config/get.d.ts +10 -0
- package/dist/commands/config/get.d.ts.map +1 -0
- package/dist/commands/config/get.js +33 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/list.d.ts +7 -0
- package/dist/commands/config/list.d.ts.map +1 -0
- package/dist/commands/config/list.js +43 -0
- package/dist/commands/config/list.js.map +1 -0
- package/dist/commands/config/set.d.ts +11 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +56 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/db/migrate.d.ts +10 -0
- package/dist/commands/db/migrate.d.ts.map +1 -0
- package/dist/commands/db/migrate.js +67 -0
- package/dist/commands/db/migrate.js.map +1 -0
- package/dist/commands/dev.d.ts +19 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +149 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor.d.ts +11 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +75 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/health.d.ts +12 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +109 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/install.d.ts +60 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +486 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/iptv/snapshot.d.ts +10 -0
- package/dist/commands/iptv/snapshot.d.ts.map +1 -0
- package/dist/commands/iptv/snapshot.js +55 -0
- package/dist/commands/iptv/snapshot.js.map +1 -0
- package/dist/commands/library/drives.d.ts +7 -0
- package/dist/commands/library/drives.d.ts.map +1 -0
- package/dist/commands/library/drives.js +71 -0
- package/dist/commands/library/drives.js.map +1 -0
- package/dist/commands/library/relink.d.ts +10 -0
- package/dist/commands/library/relink.d.ts.map +1 -0
- package/dist/commands/library/relink.js +72 -0
- package/dist/commands/library/relink.js.map +1 -0
- package/dist/commands/library/scan.d.ts +16 -0
- package/dist/commands/library/scan.d.ts.map +1 -0
- package/dist/commands/library/scan.js +87 -0
- package/dist/commands/library/scan.js.map +1 -0
- package/dist/commands/library/sections.d.ts +7 -0
- package/dist/commands/library/sections.d.ts.map +1 -0
- package/dist/commands/library/sections.js +33 -0
- package/dist/commands/library/sections.js.map +1 -0
- package/dist/commands/library/status.d.ts +7 -0
- package/dist/commands/library/status.d.ts.map +1 -0
- package/dist/commands/library/status.js +37 -0
- package/dist/commands/library/status.js.map +1 -0
- package/dist/commands/list.d.ts +7 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +73 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/live/channels.d.ts +10 -0
- package/dist/commands/live/channels.d.ts.map +1 -0
- package/dist/commands/live/channels.js +55 -0
- package/dist/commands/live/channels.js.map +1 -0
- package/dist/commands/live/test.d.ts +15 -0
- package/dist/commands/live/test.d.ts.map +1 -0
- package/dist/commands/live/test.js +116 -0
- package/dist/commands/live/test.js.map +1 -0
- package/dist/commands/logs.d.ts +16 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +77 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/migrate-cli.d.ts +11 -0
- package/dist/commands/migrate-cli.d.ts.map +1 -0
- package/dist/commands/migrate-cli.js +116 -0
- package/dist/commands/migrate-cli.js.map +1 -0
- package/dist/commands/owner/reset.d.ts +7 -0
- package/dist/commands/owner/reset.d.ts.map +1 -0
- package/dist/commands/owner/reset.js +74 -0
- package/dist/commands/owner/reset.js.map +1 -0
- package/dist/commands/restart.d.ts +11 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +53 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/restore.d.ts +17 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +148 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/self-update.d.ts +10 -0
- package/dist/commands/self-update.d.ts.map +1 -0
- package/dist/commands/self-update.js +98 -0
- package/dist/commands/self-update.js.map +1 -0
- package/dist/commands/setup.d.ts +19 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +111 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/shell.d.ts +118 -0
- package/dist/commands/shell.d.ts.map +1 -0
- package/dist/commands/shell.js +415 -0
- package/dist/commands/shell.js.map +1 -0
- package/dist/commands/start.d.ts +12 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +108 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +115 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +11 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +45 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/stream/cancel.d.ts +13 -0
- package/dist/commands/stream/cancel.d.ts.map +1 -0
- package/dist/commands/stream/cancel.js +31 -0
- package/dist/commands/stream/cancel.js.map +1 -0
- package/dist/commands/stream/encoders.d.ts +7 -0
- package/dist/commands/stream/encoders.d.ts.map +1 -0
- package/dist/commands/stream/encoders.js +42 -0
- package/dist/commands/stream/encoders.js.map +1 -0
- package/dist/commands/stream/queue.d.ts +7 -0
- package/dist/commands/stream/queue.d.ts.map +1 -0
- package/dist/commands/stream/queue.js +52 -0
- package/dist/commands/stream/queue.js.map +1 -0
- package/dist/commands/stream/sessions.d.ts +7 -0
- package/dist/commands/stream/sessions.d.ts.map +1 -0
- package/dist/commands/stream/sessions.js +44 -0
- package/dist/commands/stream/sessions.js.map +1 -0
- package/dist/commands/uninstall.d.ts +23 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +290 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +21 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +290 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/watch.d.ts +10 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +38 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/config/local-config.d.ts +22 -0
- package/dist/config/local-config.d.ts.map +1 -0
- package/dist/config/local-config.js +79 -0
- package/dist/config/local-config.js.map +1 -0
- package/dist/core-scripts/run.d.ts +22 -0
- package/dist/core-scripts/run.d.ts.map +1 -0
- package/dist/core-scripts/run.js +65 -0
- package/dist/core-scripts/run.js.map +1 -0
- package/dist/doctor/check.types.d.ts +51 -0
- package/dist/doctor/check.types.d.ts.map +1 -0
- package/dist/doctor/check.types.js +14 -0
- package/dist/doctor/check.types.js.map +1 -0
- package/dist/doctor/checks/core.check.d.ts +11 -0
- package/dist/doctor/checks/core.check.d.ts.map +1 -0
- package/dist/doctor/checks/core.check.js +104 -0
- package/dist/doctor/checks/core.check.js.map +1 -0
- package/dist/doctor/checks/data.check.d.ts +11 -0
- package/dist/doctor/checks/data.check.d.ts.map +1 -0
- package/dist/doctor/checks/data.check.js +70 -0
- package/dist/doctor/checks/data.check.js.map +1 -0
- package/dist/doctor/checks/environment.check.d.ts +6 -0
- package/dist/doctor/checks/environment.check.d.ts.map +1 -0
- package/dist/doctor/checks/environment.check.js +70 -0
- package/dist/doctor/checks/environment.check.js.map +1 -0
- package/dist/doctor/checks/integrity.check.d.ts +4 -0
- package/dist/doctor/checks/integrity.check.d.ts.map +1 -0
- package/dist/doctor/checks/integrity.check.js +89 -0
- package/dist/doctor/checks/integrity.check.js.map +1 -0
- package/dist/doctor/checks/isolation.check.d.ts +49 -0
- package/dist/doctor/checks/isolation.check.d.ts.map +1 -0
- package/dist/doctor/checks/isolation.check.js +220 -0
- package/dist/doctor/checks/isolation.check.js.map +1 -0
- package/dist/doctor/checks/licence.check.d.ts +8 -0
- package/dist/doctor/checks/licence.check.d.ts.map +1 -0
- package/dist/doctor/checks/licence.check.js +172 -0
- package/dist/doctor/checks/licence.check.js.map +1 -0
- package/dist/doctor/checks/ports.check.d.ts +4 -0
- package/dist/doctor/checks/ports.check.d.ts.map +1 -0
- package/dist/doctor/checks/ports.check.js +52 -0
- package/dist/doctor/checks/ports.check.js.map +1 -0
- package/dist/doctor/checks/supervisor.check.d.ts +19 -0
- package/dist/doctor/checks/supervisor.check.d.ts.map +1 -0
- package/dist/doctor/checks/supervisor.check.js +152 -0
- package/dist/doctor/checks/supervisor.check.js.map +1 -0
- package/dist/doctor/checks/tooling.check.d.ts +3 -0
- package/dist/doctor/checks/tooling.check.d.ts.map +1 -0
- package/dist/doctor/checks/tooling.check.js +43 -0
- package/dist/doctor/checks/tooling.check.js.map +1 -0
- package/dist/doctor/registry.d.ts +15 -0
- package/dist/doctor/registry.d.ts.map +1 -0
- package/dist/doctor/registry.js +53 -0
- package/dist/doctor/registry.js.map +1 -0
- package/dist/exit-codes.d.ts +18 -0
- package/dist/exit-codes.d.ts.map +1 -0
- package/dist/exit-codes.js +23 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/sink.d.ts +11 -0
- package/dist/logs/sink.d.ts.map +1 -0
- package/dist/logs/sink.js +73 -0
- package/dist/logs/sink.js.map +1 -0
- package/dist/logs/tail.d.ts +17 -0
- package/dist/logs/tail.d.ts.map +1 -0
- package/dist/logs/tail.js +98 -0
- package/dist/logs/tail.js.map +1 -0
- package/dist/packaging/boot-task.d.ts +56 -0
- package/dist/packaging/boot-task.d.ts.map +1 -0
- package/dist/packaging/boot-task.js +151 -0
- package/dist/packaging/boot-task.js.map +1 -0
- package/dist/packaging/install.d.ts +154 -0
- package/dist/packaging/install.d.ts.map +1 -0
- package/dist/packaging/install.js +381 -0
- package/dist/packaging/install.js.map +1 -0
- package/dist/packaging/layout.d.ts +153 -0
- package/dist/packaging/layout.d.ts.map +1 -0
- package/dist/packaging/layout.js +168 -0
- package/dist/packaging/layout.js.map +1 -0
- package/dist/packaging/machine-path.d.ts +52 -0
- package/dist/packaging/machine-path.d.ts.map +1 -0
- package/dist/packaging/machine-path.js +237 -0
- package/dist/packaging/machine-path.js.map +1 -0
- package/dist/packaging/manifest.d.ts +37 -0
- package/dist/packaging/manifest.d.ts.map +1 -0
- package/dist/packaging/manifest.js +115 -0
- package/dist/packaging/manifest.js.map +1 -0
- package/dist/packaging/shims.d.ts +31 -0
- package/dist/packaging/shims.d.ts.map +1 -0
- package/dist/packaging/shims.js +165 -0
- package/dist/packaging/shims.js.map +1 -0
- package/dist/probes/internal-paths.d.ts +35 -0
- package/dist/probes/internal-paths.d.ts.map +1 -0
- package/dist/probes/internal-paths.js +58 -0
- package/dist/probes/internal-paths.js.map +1 -0
- package/dist/probes/internal.client.d.ts +54 -0
- package/dist/probes/internal.client.d.ts.map +1 -0
- package/dist/probes/internal.client.js +123 -0
- package/dist/probes/internal.client.js.map +1 -0
- package/dist/probes/port.probe.d.ts +21 -0
- package/dist/probes/port.probe.d.ts.map +1 -0
- package/dist/probes/port.probe.js +42 -0
- package/dist/probes/port.probe.js.map +1 -0
- package/dist/probes/service.probe.d.ts +29 -0
- package/dist/probes/service.probe.d.ts.map +1 -0
- package/dist/probes/service.probe.js +65 -0
- package/dist/probes/service.probe.js.map +1 -0
- package/dist/profiles/appliance.profile.d.ts +20 -0
- package/dist/profiles/appliance.profile.d.ts.map +1 -0
- package/dist/profiles/appliance.profile.js +137 -0
- package/dist/profiles/appliance.profile.js.map +1 -0
- package/dist/profiles/dev.profile.d.ts +22 -0
- package/dist/profiles/dev.profile.d.ts.map +1 -0
- package/dist/profiles/dev.profile.js +104 -0
- package/dist/profiles/dev.profile.js.map +1 -0
- package/dist/profiles/resolve.d.ts +37 -0
- package/dist/profiles/resolve.d.ts.map +1 -0
- package/dist/profiles/resolve.js +198 -0
- package/dist/profiles/resolve.js.map +1 -0
- package/dist/profiles/types.d.ts +57 -0
- package/dist/profiles/types.d.ts.map +1 -0
- package/dist/profiles/types.js +15 -0
- package/dist/profiles/types.js.map +1 -0
- package/dist/registry/local-registry.d.ts +79 -0
- package/dist/registry/local-registry.d.ts.map +1 -0
- package/dist/registry/local-registry.js +252 -0
- package/dist/registry/local-registry.js.map +1 -0
- package/dist/render/banner.d.ts +13 -0
- package/dist/render/banner.d.ts.map +1 -0
- package/dist/render/banner.js +83 -0
- package/dist/render/banner.js.map +1 -0
- package/dist/render/boot.render.d.ts +123 -0
- package/dist/render/boot.render.d.ts.map +1 -0
- package/dist/render/boot.render.js +288 -0
- package/dist/render/boot.render.js.map +1 -0
- package/dist/render/brand.d.ts +16 -0
- package/dist/render/brand.d.ts.map +1 -0
- package/dist/render/brand.js +22 -0
- package/dist/render/brand.js.map +1 -0
- package/dist/render/doctor.render.d.ts +12 -0
- package/dist/render/doctor.render.d.ts.map +1 -0
- package/dist/render/doctor.render.js +95 -0
- package/dist/render/doctor.render.js.map +1 -0
- package/dist/render/json.d.ts +29 -0
- package/dist/render/json.d.ts.map +1 -0
- package/dist/render/json.js +19 -0
- package/dist/render/json.js.map +1 -0
- package/dist/render/licence.render.d.ts +10 -0
- package/dist/render/licence.render.d.ts.map +1 -0
- package/dist/render/licence.render.js +167 -0
- package/dist/render/licence.render.js.map +1 -0
- package/dist/render/status.render.d.ts +6 -0
- package/dist/render/status.render.d.ts.map +1 -0
- package/dist/render/status.render.js +52 -0
- package/dist/render/status.render.js.map +1 -0
- package/dist/render/theme.d.ts +66 -0
- package/dist/render/theme.d.ts.map +1 -0
- package/dist/render/theme.js +89 -0
- package/dist/render/theme.js.map +1 -0
- package/dist/runtime-guard.d.ts +19 -0
- package/dist/runtime-guard.d.ts.map +1 -0
- package/dist/runtime-guard.js +57 -0
- package/dist/runtime-guard.js.map +1 -0
- package/dist/shell/input-mode.d.ts +25 -0
- package/dist/shell/input-mode.d.ts.map +1 -0
- package/dist/shell/input-mode.js +17 -0
- package/dist/shell/input-mode.js.map +1 -0
- package/dist/shell/parse-line.d.ts +6 -0
- package/dist/shell/parse-line.d.ts.map +1 -0
- package/dist/shell/parse-line.js +62 -0
- package/dist/shell/parse-line.js.map +1 -0
- package/dist/shell/suggestions.d.ts +14 -0
- package/dist/shell/suggestions.d.ts.map +1 -0
- package/dist/shell/suggestions.js +35 -0
- package/dist/shell/suggestions.js.map +1 -0
- package/dist/supervisor/dependencies.d.ts +2 -0
- package/dist/supervisor/dependencies.d.ts.map +1 -0
- package/dist/supervisor/dependencies.js +38 -0
- package/dist/supervisor/dependencies.js.map +1 -0
- package/dist/supervisor/entry.d.ts +36 -0
- package/dist/supervisor/entry.d.ts.map +1 -0
- package/dist/supervisor/entry.js +171 -0
- package/dist/supervisor/entry.js.map +1 -0
- package/dist/supervisor/inspect.d.ts +17 -0
- package/dist/supervisor/inspect.d.ts.map +1 -0
- package/dist/supervisor/inspect.js +39 -0
- package/dist/supervisor/inspect.js.map +1 -0
- package/dist/supervisor/invocation.d.ts +27 -0
- package/dist/supervisor/invocation.d.ts.map +1 -0
- package/dist/supervisor/invocation.js +33 -0
- package/dist/supervisor/invocation.js.map +1 -0
- package/dist/supervisor/monitor.d.ts +63 -0
- package/dist/supervisor/monitor.d.ts.map +1 -0
- package/dist/supervisor/monitor.js +141 -0
- package/dist/supervisor/monitor.js.map +1 -0
- package/dist/supervisor/orchestrator.d.ts +52 -0
- package/dist/supervisor/orchestrator.d.ts.map +1 -0
- package/dist/supervisor/orchestrator.js +154 -0
- package/dist/supervisor/orchestrator.js.map +1 -0
- package/dist/supervisor/pidfile.d.ts +21 -0
- package/dist/supervisor/pidfile.d.ts.map +1 -0
- package/dist/supervisor/pidfile.js +39 -0
- package/dist/supervisor/pidfile.js.map +1 -0
- package/dist/supervisor/process-identity.d.ts +19 -0
- package/dist/supervisor/process-identity.d.ts.map +1 -0
- package/dist/supervisor/process-identity.js +51 -0
- package/dist/supervisor/process-identity.js.map +1 -0
- package/dist/supervisor/readiness.d.ts +17 -0
- package/dist/supervisor/readiness.d.ts.map +1 -0
- package/dist/supervisor/readiness.js +52 -0
- package/dist/supervisor/readiness.js.map +1 -0
- package/dist/supervisor/restart-consumer.d.ts +37 -0
- package/dist/supervisor/restart-consumer.d.ts.map +1 -0
- package/dist/supervisor/restart-consumer.js +119 -0
- package/dist/supervisor/restart-consumer.js.map +1 -0
- package/dist/supervisor/runner.d.ts +2 -0
- package/dist/supervisor/runner.d.ts.map +1 -0
- package/dist/supervisor/runner.js +118 -0
- package/dist/supervisor/runner.js.map +1 -0
- package/dist/supervisor/schedule-timer.d.ts +38 -0
- package/dist/supervisor/schedule-timer.d.ts.map +1 -0
- package/dist/supervisor/schedule-timer.js +148 -0
- package/dist/supervisor/schedule-timer.js.map +1 -0
- package/dist/supervisor/spawn.d.ts +18 -0
- package/dist/supervisor/spawn.d.ts.map +1 -0
- package/dist/supervisor/spawn.js +119 -0
- package/dist/supervisor/spawn.js.map +1 -0
- package/dist/supervisor/state-files.d.ts +33 -0
- package/dist/supervisor/state-files.d.ts.map +1 -0
- package/dist/supervisor/state-files.js +110 -0
- package/dist/supervisor/state-files.js.map +1 -0
- package/dist/supervisor/tree-kill.d.ts +14 -0
- package/dist/supervisor/tree-kill.d.ts.map +1 -0
- package/dist/supervisor/tree-kill.js +82 -0
- package/dist/supervisor/tree-kill.js.map +1 -0
- package/dist/ui/health-panel.d.ts +8 -0
- package/dist/ui/health-panel.d.ts.map +1 -0
- package/dist/ui/health-panel.js +91 -0
- package/dist/ui/health-panel.js.map +1 -0
- package/dist/updating/apply.d.ts +50 -0
- package/dist/updating/apply.d.ts.map +1 -0
- package/dist/updating/apply.js +172 -0
- package/dist/updating/apply.js.map +1 -0
- package/dist/updating/download.d.ts +44 -0
- package/dist/updating/download.d.ts.map +1 -0
- package/dist/updating/download.js +144 -0
- package/dist/updating/download.js.map +1 -0
- package/dist/updating/rollback.d.ts +33 -0
- package/dist/updating/rollback.d.ts.map +1 -0
- package/dist/updating/rollback.js +54 -0
- package/dist/updating/rollback.js.map +1 -0
- package/dist/updating/self.d.ts +16 -0
- package/dist/updating/self.d.ts.map +1 -0
- package/dist/updating/self.js +50 -0
- package/dist/updating/self.js.map +1 -0
- package/dist/updating/verify.d.ts +25 -0
- package/dist/updating/verify.d.ts.map +1 -0
- package/dist/updating/verify.js +51 -0
- package/dist/updating/verify.js.map +1 -0
- package/dist/updating/versions.d.ts +31 -0
- package/dist/updating/versions.d.ts.map +1 -0
- package/dist/updating/versions.js +78 -0
- package/dist/updating/versions.js.map +1 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +29 -0
- package/dist/version.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { BaseCommand } from "../base-command.js";
|
|
2
|
+
import { inspectServices } from "../supervisor/inspect.js";
|
|
3
|
+
import { fetchLicenseStatus } from "../probes/internal.client.js";
|
|
4
|
+
import { renderLicenceCard } from "../render/licence.render.js";
|
|
5
|
+
import { portalUrls, renderActivationNotice, renderUrls } from "../render/boot.render.js";
|
|
6
|
+
import { renderProfileFooter, renderStatusTable } from "../render/status.render.js";
|
|
7
|
+
import { buildEnvelope, renderJson } from "../render/json.js";
|
|
8
|
+
import { EXIT } from "../exit-codes.js";
|
|
9
|
+
// AR: أمر رفيع بحسب المبدأ الرابع: يقرأ الأعلام، ينادي خدمة، يسلّم عارضة. لا نداء HTTP هنا ولا تنسيق.
|
|
10
|
+
// EN: A thin command per principle IV: read the flags, call a service, hand off to a renderer. No
|
|
11
|
+
// HTTP call here and no formatting.
|
|
12
|
+
export default class Status extends BaseCommand {
|
|
13
|
+
static description = "Show each service: running or stopped, with its port, PID and uptime";
|
|
14
|
+
static examples = [
|
|
15
|
+
"<%= config.bin %> status",
|
|
16
|
+
"<%= config.bin %> status --json",
|
|
17
|
+
"<%= config.bin %> status --profile dev",
|
|
18
|
+
];
|
|
19
|
+
static flags = {};
|
|
20
|
+
async run() {
|
|
21
|
+
const { flags } = await this.parse(Status);
|
|
22
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
23
|
+
const states = await inspectServices(profile);
|
|
24
|
+
const allStopped = states.every((state) => !state.running);
|
|
25
|
+
// AR: حالة الرخصة سطرٌ في status لأنها أوّل ما يُسأل عنه حين «لا يعمل شيء» — ونداؤها
|
|
26
|
+
// لا يُوقف الأمر حين تكون النواة متوقّفة: العارضة ترسم شرطة، وهي اعتراف لا ادّعاء.
|
|
27
|
+
// EN: Licence state is a line in `status` because it is the first thing asked when "nothing
|
|
28
|
+
// works" — and asking never blocks the command when the core is down: the renderer draws a
|
|
29
|
+
// dash, which is an admission rather than a claim.
|
|
30
|
+
const licence = allStopped ? null : await fetchLicenseStatus(profile);
|
|
31
|
+
const device = licence?.ok ? licence.data : null;
|
|
32
|
+
if (flags.json) {
|
|
33
|
+
this.log(renderJson(buildEnvelope({
|
|
34
|
+
command: "status",
|
|
35
|
+
profile,
|
|
36
|
+
data: {
|
|
37
|
+
services: states.map((state) => ({
|
|
38
|
+
name: state.definition.name,
|
|
39
|
+
label: state.definition.label,
|
|
40
|
+
running: state.running,
|
|
41
|
+
reachable: state.probe.reachable,
|
|
42
|
+
port: state.definition.port,
|
|
43
|
+
pid: state.record?.pid ?? null,
|
|
44
|
+
uptimeSeconds: state.uptimeSeconds ?? null,
|
|
45
|
+
// من أطلقها: نحن أم شيء آخر. يبقى الادّعاء صادقًا في المخرَج الآلي كما في الجدول.
|
|
46
|
+
source: state.source,
|
|
47
|
+
})),
|
|
48
|
+
licence: device,
|
|
49
|
+
// AR: **شقيقٌ لـlicence لا متداخلٌ فيه**، لأنه يجيب سؤالًا آخر: licence تقول
|
|
50
|
+
// «هل هذا الجهاز مرخَّص الآن؟» وsubscription تقول «وما الذي اشتراه؟».
|
|
51
|
+
// ولأن سكربتات قائمة تقرأ data.licence بشكلٍ ثابت، وإقحام حقول فيه يغيّر عقدًا
|
|
52
|
+
// يعتمد عليه غيرنا.
|
|
53
|
+
// EN: **A sibling of `licence`, not nested inside it**, because it answers a different
|
|
54
|
+
// question: `licence` says "is this appliance licensed right now?" and
|
|
55
|
+
// `subscription` says "and what did it buy?". And because existing scripts read
|
|
56
|
+
// `data.licence` with a fixed shape, so pushing fields into it changes a contract
|
|
57
|
+
// somebody else depends on.
|
|
58
|
+
subscription: device
|
|
59
|
+
? {
|
|
60
|
+
package: device.plan ?? null,
|
|
61
|
+
expiresAt: device.expiresAt ?? null,
|
|
62
|
+
included: (device.featureStates ?? [])
|
|
63
|
+
.filter((state) => state.included)
|
|
64
|
+
.map((state) => state.key),
|
|
65
|
+
notIncluded: (device.featureStates ?? [])
|
|
66
|
+
.filter((state) => !state.included)
|
|
67
|
+
.map((state) => state.key),
|
|
68
|
+
}
|
|
69
|
+
: null,
|
|
70
|
+
// نفس العناوين التي يرسمها الجدول، من نفس المصدر — لا نسخة ثانية تتأخّر عن الأولى.
|
|
71
|
+
urls: portalUrls(profile),
|
|
72
|
+
dataDir: profile.dataDir,
|
|
73
|
+
},
|
|
74
|
+
problems: states
|
|
75
|
+
.filter((state) => !state.running)
|
|
76
|
+
.map((state) => ({
|
|
77
|
+
id: `service.${state.definition.name}`,
|
|
78
|
+
severity: "fail",
|
|
79
|
+
message: `${state.definition.label} is stopped`,
|
|
80
|
+
remedy: `Start it: fantastic start --only ${state.definition.name}`,
|
|
81
|
+
})),
|
|
82
|
+
})));
|
|
83
|
+
if (allStopped)
|
|
84
|
+
this.exit(EXIT.FAILURE);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.log("");
|
|
88
|
+
this.log(renderStatusTable(states));
|
|
89
|
+
// AR: العناوين في status لا في start وحده. مَن ينادي status بعد ساعة من الإقلاع لا
|
|
90
|
+
// يملك مخرَج start أمامه، وكان عليه أن يتذكّر المنفذ والمسار أو يفتّش عن ملفّ إعداد —
|
|
91
|
+
// بينما الأمر الذي يسأل «هل يعمل النظام؟» هو نفسه الذي يجب أن يجيب «وأين أفتحه؟».
|
|
92
|
+
// EN: The addresses belong in `status`, not in `start` alone. Whoever runs `status` an hour
|
|
93
|
+
// after boot no longer has `start`'s output in front of them and had to recall the port and
|
|
94
|
+
// path or go hunting through a config file — while the command that asks "is the system up?"
|
|
95
|
+
// is the same one that should answer "and where do I open it?".
|
|
96
|
+
if (!allStopped) {
|
|
97
|
+
this.log("");
|
|
98
|
+
this.log(renderUrls(profile));
|
|
99
|
+
}
|
|
100
|
+
this.log("");
|
|
101
|
+
this.log(renderLicenceCard(device));
|
|
102
|
+
const notice = renderActivationNotice(profile, device);
|
|
103
|
+
if (notice) {
|
|
104
|
+
this.log("");
|
|
105
|
+
this.log(notice);
|
|
106
|
+
}
|
|
107
|
+
this.log("");
|
|
108
|
+
this.log(renderProfileFooter(profile));
|
|
109
|
+
this.log("");
|
|
110
|
+
// رمز خروج غير صفري حين لا يعمل شيء: يجعل الأمر صالحًا داخل سكربت لا للقراءة فقط.
|
|
111
|
+
if (allStopped)
|
|
112
|
+
this.exit(EXIT.FAILURE);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from "../base-command.js";
|
|
2
|
+
export default class Stop extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
only: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=stop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAcjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,WAAW,SAAuE;IAEzF,MAAM,CAAC,QAAQ,WAAwG;IAEvH,MAAM,CAAC,KAAK;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { BaseCommand } from "../base-command.js";
|
|
3
|
+
import { stopServices } from "../supervisor/orchestrator.js";
|
|
4
|
+
import { renderStopOutcome } from "../render/boot.render.js";
|
|
5
|
+
import { c } from "../render/theme.js";
|
|
6
|
+
// AR: إيقاف الخدمات بترتيب معكوس مع إنهاء الشجرة كاملة. النجاح يُقاس بتحرّر المنفذ لا بخروج العملية
|
|
7
|
+
// التي أطلقناها، لأن الإطلاق عبر npm يضيف طبقة قد يخرج أبوها ويبقى حفيدها.
|
|
8
|
+
// EN: Stop services in reverse order, terminating the whole tree. Success is measured by the port
|
|
9
|
+
// being released, not by the exit of the process we spawned: launching through npm adds a layer
|
|
10
|
+
// whose parent can exit while a grandchild lives on.
|
|
11
|
+
const SERVICES = ["live", "core", "portal"];
|
|
12
|
+
export default class Stop extends BaseCommand {
|
|
13
|
+
static description = "Stop the services in reverse order and verify no orphans are left";
|
|
14
|
+
static examples = ["<%= config.bin %> stop", "<%= config.bin %> stop --only portal", "<%= config.bin %> stop --force"];
|
|
15
|
+
static flags = {
|
|
16
|
+
only: Flags.string({
|
|
17
|
+
description: "Limit to specific services, comma separated",
|
|
18
|
+
multiple: true,
|
|
19
|
+
delimiter: ",",
|
|
20
|
+
options: SERVICES,
|
|
21
|
+
}),
|
|
22
|
+
force: Flags.boolean({
|
|
23
|
+
description: "Also stop services the CLI did not start, by killing whatever holds their port",
|
|
24
|
+
default: false,
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
async run() {
|
|
28
|
+
const { flags } = await this.parse(Stop);
|
|
29
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
30
|
+
const steps = await stopServices(profile, {
|
|
31
|
+
only: flags.only,
|
|
32
|
+
force: flags.force,
|
|
33
|
+
});
|
|
34
|
+
this.log("");
|
|
35
|
+
this.log(renderStopOutcome(steps));
|
|
36
|
+
this.log("");
|
|
37
|
+
const stuck = steps.filter((step) => step.wasRunning && (!step.foreign || step.adopted) && !step.portReleased);
|
|
38
|
+
if (stuck.length > 0) {
|
|
39
|
+
this.log(c.warn("Some ports are still in use after stopping. Check with fantastic status before starting again."));
|
|
40
|
+
this.log("");
|
|
41
|
+
this.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,oGAAoG;AACpG,+EAA+E;AAC/E,kGAAkG;AAClG,oGAAoG;AACpG,yDAAyD;AAEzD,MAAM,QAAQ,GAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,WAAW,GAAG,mEAAmE,CAAC;IAEzF,MAAM,CAAC,QAAQ,GAAG,CAAC,wBAAwB,EAAE,sCAAsC,EAAE,gCAAgC,CAAC,CAAC;IAEvH,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,6CAA6C;YAC1D,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,QAAQ;SAClB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,gFAAgF;YAC7F,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;YACxC,IAAI,EAAE,KAAK,CAAC,IAAiC;YAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/G,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CACN,CAAC,CAAC,IAAI,CAAC,gGAAgG,CAAC,CACzG,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseCommand } from "../../base-command.js";
|
|
2
|
+
export default class StreamCancel extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/interfaces").Arg<number, {
|
|
7
|
+
max?: number;
|
|
8
|
+
min?: number;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cancel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../../src/commands/stream/cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAA0C;IAEzD,MAAM,CAAC,IAAI;;;;;MAET;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe3B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { BaseCommand } from "../../base-command.js";
|
|
3
|
+
import { postInternal } from "../../probes/internal.client.js";
|
|
4
|
+
import { INTERNAL_PATHS } from "../../probes/internal-paths.js";
|
|
5
|
+
import { buildEnvelope, renderJson } from "../../render/json.js";
|
|
6
|
+
import { c, glyph } from "../../render/theme.js";
|
|
7
|
+
// AR: يلغي مهمة تحويل ويحرّر خانتها. الإلغاء تنفّذه النواة: هي مالكة الطابور والميزانية، والـ CLI
|
|
8
|
+
// يطلب لا يفرض.
|
|
9
|
+
// EN: Cancels a transcode job and frees its slot. The core performs it: it owns the queue and the
|
|
10
|
+
// concurrency budget; the CLI asks rather than acts.
|
|
11
|
+
export default class StreamCancel extends BaseCommand {
|
|
12
|
+
static description = "Cancel a transcode job and free its slot";
|
|
13
|
+
static examples = ["<%= config.bin %> stream cancel 41"];
|
|
14
|
+
static args = {
|
|
15
|
+
id: Args.integer({ description: "Job id, as shown by: fantastic stream queue", required: true }),
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { args, flags } = await this.parse(StreamCancel);
|
|
19
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
20
|
+
const result = await postInternal(profile, INTERNAL_PATHS.TRANSCODE_CANCEL(args.id), {});
|
|
21
|
+
if (!result.ok)
|
|
22
|
+
this.coreUnreachable("stream cancel", profile, result.reason, flags.json);
|
|
23
|
+
if (flags.json) {
|
|
24
|
+
this.log(renderJson(buildEnvelope({ command: "stream cancel", profile, data: { cancelled: args.id } })));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.log(`${c.ok(glyph.pass)} Job ${args.id} cancelled; its slot is free.`);
|
|
28
|
+
this.log(c.dim("see the queue: fantastic stream queue"));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cancel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../src/commands/stream/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEjD,kGAAkG;AAClG,oBAAoB;AACpB,kGAAkG;AAClG,yDAAyD;AAEzD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,GAAG,0CAA0C,CAAC;IAEhE,MAAM,CAAC,QAAQ,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAEzD,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACjG,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAe,OAAO,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1F,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoders.d.ts","sourceRoot":"","sources":["../../../src/commands/stream/encoders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAapD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,WAAW,SAA6E;IAE/F,MAAM,CAAC,QAAQ,WAAqF;IAE9F,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuC3B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BaseCommand } from "../../base-command.js";
|
|
2
|
+
import { getInternal } from "../../probes/internal.client.js";
|
|
3
|
+
import { INTERNAL_PATHS } from "../../probes/internal-paths.js";
|
|
4
|
+
import { buildEnvelope, renderJson } from "../../render/json.js";
|
|
5
|
+
import { c } from "../../render/theme.js";
|
|
6
|
+
// AR: المُرمِّز الذي اختارته النواة عند الإقلاع. الخدمة تكتشفه منذ زمن ولم يكن شيء يعرضه (017/R2)،
|
|
7
|
+
// وهو أوّل ما يُسأل عنه حين يشتكي أحدهم من بطء التحويل: libx264 يعني ترميزًا برمجيًا على
|
|
8
|
+
// المعالج، وما عداه يعني تسريع عتاد.
|
|
9
|
+
// EN: The encoder the core selected at boot. The service has detected it for a long time and nothing
|
|
10
|
+
// exposed it (017/R2), and it is the first question asked when someone reports slow transcoding:
|
|
11
|
+
// libx264 means software encoding on the CPU, anything else means hardware acceleration.
|
|
12
|
+
export default class StreamEncoders extends BaseCommand {
|
|
13
|
+
static description = "Show which encoder the core selected: hardware acceleration or software";
|
|
14
|
+
static examples = ["<%= config.bin %> stream encoders", "<%= config.bin %> stream encoders --json"];
|
|
15
|
+
async run() {
|
|
16
|
+
const { flags } = await this.parse(StreamEncoders);
|
|
17
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
18
|
+
const result = await getInternal(profile, INTERNAL_PATHS.TRANSCODE_ENCODERS);
|
|
19
|
+
if (!result.ok)
|
|
20
|
+
this.coreUnreachable("stream encoders", profile, result.reason, flags.json);
|
|
21
|
+
const encoder = result.data.encoder;
|
|
22
|
+
const software = encoder === "libx264";
|
|
23
|
+
if (flags.json) {
|
|
24
|
+
this.log(renderJson(buildEnvelope({
|
|
25
|
+
command: "stream encoders",
|
|
26
|
+
profile,
|
|
27
|
+
data: { encoder, hardwareAccelerated: !software },
|
|
28
|
+
})));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.log("");
|
|
32
|
+
this.log(` ${c.dim("Encoder".padEnd(16))} ${software ? c.warn(encoder) : c.ok(encoder)}`);
|
|
33
|
+
this.log(` ${c.dim("Acceleration".padEnd(16))} ${software ? c.warn("software (CPU)") : c.ok("hardware")}`);
|
|
34
|
+
if (software) {
|
|
35
|
+
this.log("");
|
|
36
|
+
this.log(c.dim(" Software encoding is correct but slow on rest-house hardware. The core probes for"));
|
|
37
|
+
this.log(c.dim(" QSV and NVENC at boot and falls back only when neither initialises."));
|
|
38
|
+
}
|
|
39
|
+
this.log("");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=encoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoders.js","sourceRoot":"","sources":["../../../src/commands/stream/encoders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAC;AAE1C,mGAAmG;AACnG,+FAA+F;AAC/F,yCAAyC;AACzC,qGAAqG;AACrG,qGAAqG;AACrG,6FAA6F;AAE7F,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,WAAW,GAAG,yEAAyE,CAAC;IAE/F,MAAM,CAAC,QAAQ,GAAG,CAAC,mCAAmC,EAAE,0CAA0C,CAAC,CAAC;IAEpG,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAsB,OAAO,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAClG,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC;QAEvC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CACN,UAAU,CACR,aAAa,CAAC;gBACZ,OAAO,EAAE,iBAAiB;gBAC1B,OAAO;gBACP,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,QAAQ,EAAE;aAClD,CAAC,CACH,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CACjG,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CACN,CAAC,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAC9F,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/commands/stream/queue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,SAA+D;IAEjF,MAAM,CAAC,QAAQ,WAA+E;IAExF,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C3B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import Table from "cli-table3";
|
|
2
|
+
import { BaseCommand } from "../../base-command.js";
|
|
3
|
+
import { getInternal } from "../../probes/internal.client.js";
|
|
4
|
+
import { INTERNAL_PATHS } from "../../probes/internal-paths.js";
|
|
5
|
+
import { buildEnvelope, renderJson } from "../../render/json.js";
|
|
6
|
+
import { NOT_REPORTED, c } from "../../render/theme.js";
|
|
7
|
+
// AR: طابور التحويل كما تراه النواة — نفس TranscodeJobsService الذي تقرأ منه لوحة الأدمن، فلا
|
|
8
|
+
// يختلف الرقمان (017/R2).
|
|
9
|
+
// EN: The transcode queue as the core sees it — the same TranscodeJobsService the admin dashboard
|
|
10
|
+
// reads, so the two figures cannot disagree (017/R2).
|
|
11
|
+
export default class StreamQueue extends BaseCommand {
|
|
12
|
+
static description = "Show the transcode queue: running, queued and failed jobs";
|
|
13
|
+
static examples = ["<%= config.bin %> stream queue", "<%= config.bin %> stream queue --json"];
|
|
14
|
+
async run() {
|
|
15
|
+
const { flags } = await this.parse(StreamQueue);
|
|
16
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
17
|
+
const result = await getInternal(profile, INTERNAL_PATHS.TRANSCODE_JOBS);
|
|
18
|
+
if (!result.ok)
|
|
19
|
+
this.coreUnreachable("stream queue", profile, result.reason, flags.json);
|
|
20
|
+
const jobs = result.data;
|
|
21
|
+
if (flags.json) {
|
|
22
|
+
this.log(renderJson(buildEnvelope({ command: "stream queue", profile, data: { jobs } })));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (jobs.length === 0) {
|
|
26
|
+
this.log("");
|
|
27
|
+
this.log(c.dim("the transcode queue is empty."));
|
|
28
|
+
this.log("");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const table = new Table({
|
|
32
|
+
head: ["#", "Status", "Title", "Progress"].map((header) => c.dim(header)),
|
|
33
|
+
style: { head: [], border: [], "padding-left": 1, "padding-right": 1 },
|
|
34
|
+
});
|
|
35
|
+
for (const job of jobs) {
|
|
36
|
+
const record = job;
|
|
37
|
+
const status = String(record.status ?? NOT_REPORTED);
|
|
38
|
+
const paint = status === "failed" ? c.bad : status === "running" ? c.ok : c.dim;
|
|
39
|
+
table.push([
|
|
40
|
+
String(record.id ?? NOT_REPORTED),
|
|
41
|
+
paint(status),
|
|
42
|
+
String(record.titleName ?? record.label ?? record.titleId ?? NOT_REPORTED),
|
|
43
|
+
record.progress !== undefined && record.progress !== null ? `${String(record.progress)}%` : c.dim(NOT_REPORTED),
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
this.log("");
|
|
47
|
+
this.log(table.toString());
|
|
48
|
+
this.log(c.dim("cancel one: fantastic stream cancel <id>"));
|
|
49
|
+
this.log("");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/commands/stream/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/commands/stream/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAoBpD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,WAAW,SAA2D;IAE7E,MAAM,CAAC,QAAQ,WAAqF;IAE9F,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuC3B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import Table from "cli-table3";
|
|
2
|
+
import { BaseCommand } from "../../base-command.js";
|
|
3
|
+
import { getInternal } from "../../probes/internal.client.js";
|
|
4
|
+
import { INTERNAL_PATHS } from "../../probes/internal-paths.js";
|
|
5
|
+
import { buildEnvelope, renderJson } from "../../render/json.js";
|
|
6
|
+
import { c } from "../../render/theme.js";
|
|
7
|
+
export default class StreamSessions extends BaseCommand {
|
|
8
|
+
static description = "Show the transcode sessions that are active right now";
|
|
9
|
+
static examples = ["<%= config.bin %> stream sessions", "<%= config.bin %> stream sessions --json"];
|
|
10
|
+
async run() {
|
|
11
|
+
const { flags } = await this.parse(StreamSessions);
|
|
12
|
+
const profile = this.loadProfile(flags.profile, false, flags.product);
|
|
13
|
+
const result = await getInternal(profile, INTERNAL_PATHS.STREAM_SESSIONS);
|
|
14
|
+
if (!result.ok)
|
|
15
|
+
this.coreUnreachable("stream sessions", profile, result.reason, flags.json);
|
|
16
|
+
const sessions = result.data;
|
|
17
|
+
if (flags.json) {
|
|
18
|
+
this.log(renderJson(buildEnvelope({ command: "stream sessions", profile, data: { sessions } })));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (sessions.length === 0) {
|
|
22
|
+
this.log("");
|
|
23
|
+
this.log(c.dim("no active transcode sessions."));
|
|
24
|
+
this.log("");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const table = new Table({
|
|
28
|
+
head: ["Media file", "State", "Last access"].map((header) => c.dim(header)),
|
|
29
|
+
style: { head: [], border: [], "padding-left": 1, "padding-right": 1 },
|
|
30
|
+
});
|
|
31
|
+
for (const session of sessions) {
|
|
32
|
+
table.push([
|
|
33
|
+
String(session.mediaFileId),
|
|
34
|
+
session.completed ? c.dim("completed") : c.ok("active"),
|
|
35
|
+
c.dim(new Date(session.lastAccessAt).toLocaleTimeString()),
|
|
36
|
+
]);
|
|
37
|
+
}
|
|
38
|
+
this.log("");
|
|
39
|
+
this.log(table.toString());
|
|
40
|
+
this.log(c.dim(`${sessions.length} session(s) · these are transcode sessions; direct-play needs none`));
|
|
41
|
+
this.log("");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/commands/stream/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseCommand } from "../base-command.js";
|
|
2
|
+
export default class Uninstall extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
/** اسم المنتج، كما في install. اختياريّ: يُستنتَج حين لا يكون على الآلة إلّا واحد. */
|
|
6
|
+
static args: {
|
|
7
|
+
product: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
root: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
purge: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
/** هل تعمل هذه العملية من داخل الجذر الذي نزيله؟ الواجهة المشحونة تفعل، وويندوز يمنعها من حذف نفسها. */
|
|
15
|
+
private runsFromInside;
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* يبلّغ المركز بإيقاف تفعيل هذا الجهاز عبر النواة. **لا يرمي أبدًا**: كل مسار يعيد وصفًا،
|
|
19
|
+
* لأن استثناءً هنا يوقف إزالةً لأسبابٍ خارجة عن الجهاز أصلًا.
|
|
20
|
+
*/
|
|
21
|
+
private releaseSeat;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiCjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,WAAW,SAAgF;IAElG,MAAM,CAAC,QAAQ,WAGb;IAEF,wFAAwF;IACxF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAOV;IAEF,wGAAwG;IACxG,OAAO,CAAC,cAAc;IAKhB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAiO1B;;;OAGG;YACW,WAAW;CAyB1B"}
|