@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,37 @@
|
|
|
1
|
+
import type { Profile, ProfileKind } from "./types.js";
|
|
2
|
+
export declare class ProfileResolutionError extends Error {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* يصعد من مجلد ما بحثًا عن جذر مستودع Fantastic: package.json باسم fantastic وفيه workspaces.
|
|
6
|
+
* الصعود هو ما يجعل الأوامر تعمل من أي مجلد داخل المستودع لا من جذره فقط.
|
|
7
|
+
*/
|
|
8
|
+
export declare function findRepoRoot(from?: string): string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* هل يوجد جهاز مركّب على هذه الآلة؟ الدليل مدخل النواة المُثبَّت لا مجرّد وجود المجلد.
|
|
11
|
+
*
|
|
12
|
+
* كان الفحص على core\fantastic-core.exe — ملفّ لم يُنتَج قط، فكان وضع الجهاز غير قابل للاستنتاج
|
|
13
|
+
* إطلاقًا. صار على core\main.js: ما تكتبه الحزمة فعلًا (017/T048).
|
|
14
|
+
*
|
|
15
|
+
* ونقبل الملف التنفيذي المُترجَم أيضًا، ليعمل هذا الاستنتاج بلا تعديل يوم يصل الترخيص وتُترجَم
|
|
16
|
+
* الخدمات — الشرط أن يوجد **أحدهما**، لا أن يوجد شكل بعينه.
|
|
17
|
+
*
|
|
18
|
+
* الترتيب: FANTASTIC_HOME الصريح، ثم الجهاز الذي تعيش الواجهة داخله، ثم الموضع الافتراضي. الصريح
|
|
19
|
+
* أوّلًا لأنه قصدُ من كتبه، والمُستنتَج قبل الافتراضي لأنه حقيقةٌ مقروءة من القرص لا موضعٌ متوقَّع.
|
|
20
|
+
*/
|
|
21
|
+
export declare function findApplianceRoot(): string | undefined;
|
|
22
|
+
export interface ResolveOptions {
|
|
23
|
+
/** تجاوز صريح من العَلَم --profile. */
|
|
24
|
+
kind?: ProfileKind;
|
|
25
|
+
/** مجلد البدء للبحث عن الجذر. يُمرَّر في الاختبارات. */
|
|
26
|
+
cwd?: string;
|
|
27
|
+
/** إنشاء مجلدات الحالة. يُعطَّل في الاختبارات وفي الأوامر التي تقرأ فقط. */
|
|
28
|
+
ensureDirs?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* AR: المنتج المقصود من العَلَم --product (٠٢٦). يُقرأ من سجلّ الآلة.
|
|
31
|
+
* EN: The product named by `--product` (026). Looked up in the machine's registry.
|
|
32
|
+
*/
|
|
33
|
+
product?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function resolveProfile(options?: ResolveOptions): Profile;
|
|
36
|
+
export declare function buildAppliance(root: string): Profile;
|
|
37
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/profiles/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+CvD,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AAEpD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CAwB7E;AAqCD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAKtD;AAcD,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAwCD,wBAAgB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAqDpE;AAqBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWpD"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join, parse, resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { DEV_DEFAULTS, createDevProfile } from "./dev.profile.js";
|
|
5
|
+
import { APPLIANCE_DEFAULTS, APPLIANCE_ROOT, createApplianceProfile } from "./appliance.profile.js";
|
|
6
|
+
import { readRegistry, resolveProduct } from "../registry/local-registry.js";
|
|
7
|
+
export class ProfileResolutionError extends Error {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* يصعد من مجلد ما بحثًا عن جذر مستودع Fantastic: package.json باسم fantastic وفيه workspaces.
|
|
11
|
+
* الصعود هو ما يجعل الأوامر تعمل من أي مجلد داخل المستودع لا من جذره فقط.
|
|
12
|
+
*/
|
|
13
|
+
export function findRepoRoot(from = process.cwd()) {
|
|
14
|
+
let current = resolve(from);
|
|
15
|
+
const { root } = parse(current);
|
|
16
|
+
for (;;) {
|
|
17
|
+
const manifestPath = join(current, "package.json");
|
|
18
|
+
if (existsSync(manifestPath)) {
|
|
19
|
+
try {
|
|
20
|
+
const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
21
|
+
if (manifest.name === "fantastic" && Array.isArray(manifest.workspaces))
|
|
22
|
+
return current;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// ملف تالف أو غير قابل للقراءة لا يوقف الصعود: قد يكون الجذر الحقيقي أعلى منه.
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (current === root)
|
|
29
|
+
return undefined;
|
|
30
|
+
const parent = dirname(current);
|
|
31
|
+
if (parent === current)
|
|
32
|
+
return undefined;
|
|
33
|
+
current = parent;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** الدليل على وجود جهاز في مجلد: مدخل النواة، بأيّ من شكليه. */
|
|
37
|
+
function looksInstalled(root) {
|
|
38
|
+
return [join(root, "core", "main.js"), join(root, "core", "fantastic-core.exe")].some((path) => existsSync(path));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* AR: **الجهاز الذي تعيش هذه الواجهة داخله**، إن كانت مشحونة داخل حزمة (٠١٨).
|
|
42
|
+
*
|
|
43
|
+
* منذ ٠١٨ تُشحن الواجهة في <root>\cli\، فموقع هذا الملف نفسه يدلّ على جذر التثبيت: ثلاث درجات
|
|
44
|
+
* فوق cli\dist\profiles. وهذا ما يجعل تثبيتًا بـ--root D:\Fantastic يعمل: الشيمة تنتقل مع
|
|
45
|
+
* المجلد بمسارات نسبية، وكان الاستنتاج وحده يبقى مثبَّتًا على C:\Fantastic فيقول للفنّي
|
|
46
|
+
* «لا يوجد نظام» وهو واقفٌ داخله.
|
|
47
|
+
*
|
|
48
|
+
* والدليل يُفحَص ولا يُفترَض: في المستودع تصعد الدرجات الثلاث إلى apps\ ولا نواة هناك، فيعود
|
|
49
|
+
* undefined ولا يتغيّر شيء في بيئة التطوير.
|
|
50
|
+
* EN: **The appliance this CLI lives inside**, when it is shipped within a bundle (018).
|
|
51
|
+
*
|
|
52
|
+
* Since 018 the CLI ships at `<root>\cli\`, so this file's own location reveals the install root:
|
|
53
|
+
* three levels above `cli\dist\profiles`. This is what makes an install at `--root D:\Fantastic`
|
|
54
|
+
* work: the shim travels with the folder on relative paths, and detection alone stayed pinned to
|
|
55
|
+
* `C:\Fantastic`, telling the technician "no system found" while they stood inside one.
|
|
56
|
+
*
|
|
57
|
+
* The evidence is checked rather than assumed: inside the repository those three levels land on
|
|
58
|
+
* `apps\`, where there is no core, so this returns `undefined` and development is unaffected.
|
|
59
|
+
*/
|
|
60
|
+
function findEnclosingAppliance() {
|
|
61
|
+
try {
|
|
62
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
63
|
+
const candidate = resolve(here, "..", "..", "..");
|
|
64
|
+
return looksInstalled(candidate) ? candidate : undefined;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* هل يوجد جهاز مركّب على هذه الآلة؟ الدليل مدخل النواة المُثبَّت لا مجرّد وجود المجلد.
|
|
72
|
+
*
|
|
73
|
+
* كان الفحص على core\fantastic-core.exe — ملفّ لم يُنتَج قط، فكان وضع الجهاز غير قابل للاستنتاج
|
|
74
|
+
* إطلاقًا. صار على core\main.js: ما تكتبه الحزمة فعلًا (017/T048).
|
|
75
|
+
*
|
|
76
|
+
* ونقبل الملف التنفيذي المُترجَم أيضًا، ليعمل هذا الاستنتاج بلا تعديل يوم يصل الترخيص وتُترجَم
|
|
77
|
+
* الخدمات — الشرط أن يوجد **أحدهما**، لا أن يوجد شكل بعينه.
|
|
78
|
+
*
|
|
79
|
+
* الترتيب: FANTASTIC_HOME الصريح، ثم الجهاز الذي تعيش الواجهة داخله، ثم الموضع الافتراضي. الصريح
|
|
80
|
+
* أوّلًا لأنه قصدُ من كتبه، والمُستنتَج قبل الافتراضي لأنه حقيقةٌ مقروءة من القرص لا موضعٌ متوقَّع.
|
|
81
|
+
*/
|
|
82
|
+
export function findApplianceRoot() {
|
|
83
|
+
const declared = process.env.FANTASTIC_HOME;
|
|
84
|
+
if (declared)
|
|
85
|
+
return looksInstalled(declared) ? declared : undefined;
|
|
86
|
+
return findEnclosingAppliance() ?? (looksInstalled(APPLIANCE_ROOT) ? APPLIANCE_ROOT : undefined);
|
|
87
|
+
}
|
|
88
|
+
function readLocalConfig(stateDir) {
|
|
89
|
+
const path = join(stateDir, "config.json");
|
|
90
|
+
if (!existsSync(path))
|
|
91
|
+
return {};
|
|
92
|
+
try {
|
|
93
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// إعدادات تالفة لا يجوز أن تمنع stop أو doctor من العمل، فنتجاهلها ونمضي بالافتراضيات.
|
|
97
|
+
return {};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* AR: يستشير سجلّ المثبَّت قبل المسح (٠٢٦). **والترتيب بين هذا والمسح مقصود**: السجلّ يعرف
|
|
102
|
+
* المنتجات بأسمائها ومنافذها، والمسح يعرف موضعًا واحدًا معتادًا. فالسجلّ يُسأل أولًا، وما لا
|
|
103
|
+
* يجيبه يبقى للمسح كما كان — فجهازٌ ثُبِّت قبل ٠٢٦ ولا قيد له يظلّ يعمل.
|
|
104
|
+
* EN: Consults the installed-products registry before scanning (026). **The order between this and
|
|
105
|
+
* the scan is deliberate**: the registry knows products by name and port, the scan knows one
|
|
106
|
+
* customary location. So the registry is asked first, and whatever it cannot answer falls
|
|
107
|
+
* through to the scan as before — so an appliance installed before 026, with no entry, keeps
|
|
108
|
+
* working.
|
|
109
|
+
*/
|
|
110
|
+
function rootFromRegistry(product) {
|
|
111
|
+
const { products, newerSchema } = readRegistry();
|
|
112
|
+
if (newerSchema) {
|
|
113
|
+
return {
|
|
114
|
+
problem: "the machine's product registry was written by a newer CLI. Update this one:\n" +
|
|
115
|
+
" npm i -g @wasmsoft/fantastic@latest",
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
const outcome = resolveProduct(products, product);
|
|
119
|
+
if (outcome.unknown && product) {
|
|
120
|
+
const known = products.map((row) => row.id).join(", ") || "nothing";
|
|
121
|
+
return { problem: `no product named "${product}" is installed here. Installed: ${known}` };
|
|
122
|
+
}
|
|
123
|
+
if (outcome.ambiguous) {
|
|
124
|
+
const names = products.map((row) => ` · ${row.id} (${row.version}, ${row.root})`).join("\n");
|
|
125
|
+
return {
|
|
126
|
+
problem: `more than one product is installed here — name the one you mean:\n${names}\n\n fantastic <command> --product <name>`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return { root: outcome.product?.root };
|
|
130
|
+
}
|
|
131
|
+
export function resolveProfile(options = {}) {
|
|
132
|
+
const { kind, cwd = process.cwd(), ensureDirs = true, product } = options;
|
|
133
|
+
const envKind = process.env.FANTASTIC_PROFILE;
|
|
134
|
+
const repoRoot = findRepoRoot(cwd);
|
|
135
|
+
// AR: **السجلّ قبل المسح** (٠٢٦). --product يُسأل عنه هنا وحده؛ وبلا عَلَمٍ يُستنتَج الواحد
|
|
136
|
+
// ويُرفض التخمين عند التعدّد. وما لا يجيبه السجلّ يسقط إلى المسح كما كان دائمًا.
|
|
137
|
+
// EN: **The registry before the scan** (026). `--product` is answered here alone; with no flag the
|
|
138
|
+
// single product is inferred and guessing is refused when there are several. Whatever the
|
|
139
|
+
// registry cannot answer falls through to the scan, as it always did.
|
|
140
|
+
const registry = rootFromRegistry(product);
|
|
141
|
+
if (registry.problem)
|
|
142
|
+
throw new ProfileResolutionError(registry.problem);
|
|
143
|
+
const applianceRoot = registry.root ?? findApplianceRoot();
|
|
144
|
+
const requested = kind ??
|
|
145
|
+
envKind ??
|
|
146
|
+
// المستودع يسبق الجهاز: مطوّر يعمل داخل المستودع على آلة فيها جهاز مركّب يقصد المستودع.
|
|
147
|
+
(repoRoot ? "dev" : applianceRoot ? "appliance" : undefined);
|
|
148
|
+
if (!requested) {
|
|
149
|
+
// العلاج يجب أن **يعالج**. النسخة الأولى كانت تقترح --profile، وهو اقتراح لا ينفع من خارج
|
|
150
|
+
// المستودع: --profile dev يفشل هناك أيضًا لأن الجذر غير موجود أصلًا. العَلَم يُرجّح بين
|
|
151
|
+
// موجودَين، ولا يُوجِد معدومًا. فنقول أين بحثنا، ونعطي ثلاثة طرق تعمل فعلًا.
|
|
152
|
+
const searched = process.env.FANTASTIC_HOME ?? APPLIANCE_ROOT;
|
|
153
|
+
throw new ProfileResolutionError([
|
|
154
|
+
`No Fantastic system found from ${cwd}.`,
|
|
155
|
+
"",
|
|
156
|
+
` Looked for a repository by walking up from here, and for an appliance at ${searched}.`,
|
|
157
|
+
"",
|
|
158
|
+
" Do one of:",
|
|
159
|
+
" · cd into the Fantastic repository, then run the command again",
|
|
160
|
+
" · install an appliance: fantastic install --from <bundle.zip>",
|
|
161
|
+
` · point at an existing install: set FANTASTIC_HOME=<path> (currently ${searched})`,
|
|
162
|
+
].join("\n"));
|
|
163
|
+
}
|
|
164
|
+
const profile = requested === "dev"
|
|
165
|
+
? buildDev(repoRoot, cwd)
|
|
166
|
+
: buildAppliance(applianceRoot ?? process.env.FANTASTIC_HOME ?? APPLIANCE_ROOT);
|
|
167
|
+
if (ensureDirs) {
|
|
168
|
+
mkdirSync(profile.runDir, { recursive: true });
|
|
169
|
+
mkdirSync(profile.logDir, { recursive: true });
|
|
170
|
+
}
|
|
171
|
+
return profile;
|
|
172
|
+
}
|
|
173
|
+
function buildDev(repoRoot, cwd) {
|
|
174
|
+
if (!repoRoot) {
|
|
175
|
+
throw new ProfileResolutionError(`Profile "dev" was requested but no repository root was found starting at ${cwd}. Run this from inside the repository.`);
|
|
176
|
+
}
|
|
177
|
+
const config = readLocalConfig(join(repoRoot, ".fantastic"));
|
|
178
|
+
return createDevProfile({
|
|
179
|
+
root: repoRoot,
|
|
180
|
+
corePort: config.corePort ?? DEV_DEFAULTS.corePort,
|
|
181
|
+
livePort: config.livePort ?? DEV_DEFAULTS.livePort,
|
|
182
|
+
portalPort: config.portalPort ?? DEV_DEFAULTS.portalPort,
|
|
183
|
+
logLevel: config.logLevel ?? DEV_DEFAULTS.logLevel,
|
|
184
|
+
dataDir: process.env.FANTASTIC_DATA_DIR ?? config.dataDir,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
export function buildAppliance(root) {
|
|
188
|
+
const config = readLocalConfig(root);
|
|
189
|
+
return createApplianceProfile({
|
|
190
|
+
root,
|
|
191
|
+
corePort: config.corePort ?? APPLIANCE_DEFAULTS.corePort,
|
|
192
|
+
livePort: config.livePort ?? APPLIANCE_DEFAULTS.livePort,
|
|
193
|
+
logLevel: config.logLevel ?? APPLIANCE_DEFAULTS.logLevel,
|
|
194
|
+
centralApiUrl: config.centralApiUrl,
|
|
195
|
+
licensePublicKey: config.licensePublicKey,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/profiles/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** الخدمات التي يشرف عليها الـ CLI. الترتيب هنا ليس ترتيب الإقلاع؛ ذاك يقرّره ترتيب المصفوفة. */
|
|
2
|
+
export type ServiceName = "live" | "core" | "portal";
|
|
3
|
+
/**
|
|
4
|
+
* كيف نعرف أن الخدمة **جاهزة** لا مجرّد **مُطلَقة**. الفرق جوهري: NestJS يستغرق ثوانيَ حتى يستمع،
|
|
5
|
+
* وVite يبني الاعتماديات في أول تشغيل، فالإطلاق وحده لا يعني شيئًا لمن ينتظرها.
|
|
6
|
+
*/
|
|
7
|
+
export type ReadinessProbe =
|
|
8
|
+
/** نداء HTTP يجب أن يعيد 2xx. المسار نسبيّ لأصل الخدمة. */
|
|
9
|
+
{
|
|
10
|
+
kind: "http";
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
/** اتصال TCP ناجح. يكفي لـ Vite لأنه لا يقدّم نقطة صحة. */
|
|
14
|
+
| {
|
|
15
|
+
kind: "tcp";
|
|
16
|
+
};
|
|
17
|
+
/** تعريف خدمة واحدة: كيف تُطلَق، وأين، وبأي بيئة، وكيف نعرف أنها جاهزة. */
|
|
18
|
+
export interface ServiceDefinition {
|
|
19
|
+
name: ServiceName;
|
|
20
|
+
/** التسمية العربية المعروضة في الجداول والسجلات. */
|
|
21
|
+
label: string;
|
|
22
|
+
/** الملف التنفيذي. على ويندوز يجب أن يكون npm.cmd لا npm. */
|
|
23
|
+
command: string;
|
|
24
|
+
args: string[];
|
|
25
|
+
/** مجلد العمل. مهم لأن DATA_DIR في النواة يُحلّ نسبةً إليه. */
|
|
26
|
+
cwd: string;
|
|
27
|
+
/** بيئة إضافية تُدمج فوق بيئة العملية الأب. */
|
|
28
|
+
env: Record<string, string>;
|
|
29
|
+
host: string;
|
|
30
|
+
port: number;
|
|
31
|
+
readiness: ReadinessProbe;
|
|
32
|
+
/** مهلة الجاهزية. تجاوزها يعني تراجعًا نظيفًا لا انتظارًا لا نهائيًا. */
|
|
33
|
+
readyTimeoutMs: number;
|
|
34
|
+
}
|
|
35
|
+
export type ProfileKind = "dev" | "appliance";
|
|
36
|
+
/**
|
|
37
|
+
* ملفّ التشغيل المُحلّل: المصدر **الوحيد** للمنافذ والمسارات وأوامر الإطلاق. وجود مصدر واحد هو ما
|
|
38
|
+
* يجعل انحراف DATA_DIR بين النواة وخدمة البث مستحيلًا بنيويًا لا بالانضباط (المصيدة 2 في الخطة).
|
|
39
|
+
*/
|
|
40
|
+
export interface Profile {
|
|
41
|
+
kind: ProfileKind;
|
|
42
|
+
/** جذر النظام: مجلد المستودع في dev، ومجلد التثبيت في appliance. */
|
|
43
|
+
root: string;
|
|
44
|
+
/** مجلد بيانات النواة، مطلقًا دائمًا. خدمة البث تشتقّ مجلدها منه ولا تكتبه مرتين. */
|
|
45
|
+
dataDir: string;
|
|
46
|
+
/** مجلد حالة التشغيل: ملفات PID والسجلات وإعدادات الـ CLI. */
|
|
47
|
+
stateDir: string;
|
|
48
|
+
logDir: string;
|
|
49
|
+
runDir: string;
|
|
50
|
+
/** الخدمات **بترتيب الإقلاع**. الإيقاف يعكس هذا الترتيب. */
|
|
51
|
+
services: ServiceDefinition[];
|
|
52
|
+
}
|
|
53
|
+
/** يجد تعريف خدمة بالاسم، أو undefined إن كان ملفّ التشغيل لا يشرف عليها (الواجهة في appliance). */
|
|
54
|
+
export declare function findService(profile: Profile, name: ServiceName): ServiceDefinition | undefined;
|
|
55
|
+
/** أصل الخدمة كما يُنادى محليًا. نستعمل 127.0.0.1 حين تستمع على 0.0.0.0 لأن الأخير ليس وجهة صالحة. */
|
|
56
|
+
export declare function serviceOrigin(service: ServiceDefinition): string;
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profiles/types.ts"],"names":[],"mappings":"AAMA,iGAAiG;AACjG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,cAAc;AACxB,2DAA2D;AACzD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAChC,2DAA2D;GACzD;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpB,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;IAC1B,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAE9F;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAGhE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// AR: أنواع ملفّ التشغيل. هذا الملف يصف "ما هي الخدمة" مرة واحدة، فيصير كل ما عداه — المشرف
|
|
2
|
+
// والمسابر والعارضات — محايدًا تجاه كون النظام مستودعًا تطويريًا أم جهازًا مركّبًا عند العميل.
|
|
3
|
+
// EN: Profile types. This file describes "what a service is" once, which is what lets everything
|
|
4
|
+
// else — the supervisor, the probes, the renderers — stay neutral about whether the system is a
|
|
5
|
+
// development repository or an installed appliance.
|
|
6
|
+
/** يجد تعريف خدمة بالاسم، أو undefined إن كان ملفّ التشغيل لا يشرف عليها (الواجهة في appliance). */
|
|
7
|
+
export function findService(profile, name) {
|
|
8
|
+
return profile.services.find((service) => service.name === name);
|
|
9
|
+
}
|
|
10
|
+
/** أصل الخدمة كما يُنادى محليًا. نستعمل 127.0.0.1 حين تستمع على 0.0.0.0 لأن الأخير ليس وجهة صالحة. */
|
|
11
|
+
export function serviceOrigin(service) {
|
|
12
|
+
const host = service.host === "0.0.0.0" || service.host === "::" ? "127.0.0.1" : service.host;
|
|
13
|
+
return `http://${host}:${service.port}`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profiles/types.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,mGAAmG;AACnG,iGAAiG;AACjG,oGAAoG;AACpG,wDAAwD;AAsDxD,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,IAAiB;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9F,OAAO,UAAU,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/** ما نعرف كيف نقرؤه. رقمٌ أعلى يعني ملفًّا كتبته واجهةٌ أحدث — نتوقّف ولا نخمّن. */
|
|
2
|
+
export declare const REGISTRY_SCHEMA_VERSION = 1;
|
|
3
|
+
export declare const REGISTRY_DIR: string;
|
|
4
|
+
export declare const REGISTRY_FILE: string;
|
|
5
|
+
export type InstalledProduct = {
|
|
6
|
+
id: string;
|
|
7
|
+
version: string;
|
|
8
|
+
root: string;
|
|
9
|
+
ports: {
|
|
10
|
+
core: number;
|
|
11
|
+
live: number;
|
|
12
|
+
};
|
|
13
|
+
installedAt: string;
|
|
14
|
+
installedBy: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* AR: يقرأ شجرة تثبيتٍ ويستنتج ما يعرفه عنها. **البيان هو الدليل**: مجلدٌ بلا versions.json
|
|
18
|
+
* صالح ليس تثبيتًا لنا مهما كان اسمه، وقبولُه يُدرِج في السجلّ مجلدًا عشوائيًّا.
|
|
19
|
+
* EN: Reads an install tree and infers what it can. **The manifest is the proof**: a directory
|
|
20
|
+
* without a valid `versions.json` is not one of our installations whatever it is called, and
|
|
21
|
+
* accepting it would list a random folder in the registry.
|
|
22
|
+
*/
|
|
23
|
+
export declare function inspectRoot(root: string, id?: string): InstalledProduct | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* AR: يعيد بناء السجلّ من الأنظمة نفسها. يُستدعى حين يضيع الملفّ أو يتلف، **ولا يُستدعى في كل
|
|
26
|
+
* أمر**: المسح أبطأ من قراءة ملفّ، والاختصار الذي يُحسَب في كل مرّة ليس اختصارًا.
|
|
27
|
+
* EN: Rebuilds the registry from the installations themselves. Called when the file is lost or
|
|
28
|
+
* corrupt, **not on every command**: scanning is slower than reading a file, and a shortcut
|
|
29
|
+
* recomputed every time is not a shortcut.
|
|
30
|
+
*/
|
|
31
|
+
export declare function rebuild(extraRoots?: string[]): InstalledProduct[];
|
|
32
|
+
export type RegistryRead = {
|
|
33
|
+
products: InstalledProduct[];
|
|
34
|
+
/** صحيح حين أُعيد البناء لأن الملفّ ضاع أو تلف — يُعلَن للمستخدم مرّة، ولا يُخفى. */
|
|
35
|
+
rebuilt: boolean;
|
|
36
|
+
/** صحيح حين كتب الملفَّ إصدارٌ أحدث من هذه الواجهة: نتوقّف ونطلب تحديثها. */
|
|
37
|
+
newerSchema: boolean;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* AR: **القراءة الوحيدة التي تُستعمل في الأوامر.** تقرأ، وتُسقط ما لم يعد موجودًا على القرص،
|
|
41
|
+
* وتعيد البناء عند الحاجة.
|
|
42
|
+
*
|
|
43
|
+
* وإسقاطُ الجذر المفقود مقصود: قرصٌ نُزع أو مجلدٌ حُذف بيد أحدهم يترك قيدًا يشير إلى لا شيء،
|
|
44
|
+
* وأمرُ حالةٍ يقرؤه يُبلّغ عن نظامٍ لا وجود له. ولا يُحذف القيد من الملفّ في القراءة — القراءة
|
|
45
|
+
* لا تكتب؛ يسقط من الجواب، ويُكتب الملفّ عند أول تسجيلٍ أو إزالة.
|
|
46
|
+
* EN: **The only read the commands use.** It reads, drops what no longer exists on disk, and
|
|
47
|
+
* rebuilds when it must.
|
|
48
|
+
*
|
|
49
|
+
* Dropping a missing root is deliberate: an unplugged disk or a folder somebody deleted leaves
|
|
50
|
+
* an entry pointing at nothing, and a status command reading it reports an appliance that does
|
|
51
|
+
* not exist. The entry is not deleted from the file during a read — reads do not write; it is
|
|
52
|
+
* dropped from the answer, and the file is rewritten at the next record or removal.
|
|
53
|
+
*/
|
|
54
|
+
export declare function readRegistry(): RegistryRead;
|
|
55
|
+
/**
|
|
56
|
+
* AR: يسجّل منتجًا بعد **نجاح** تثبيته. الموضع في install.ts مقصود: بعد PATH ومهمّة الإقلاع، مع
|
|
57
|
+
* بقيّة الآثار خارج مجلد التثبيت — فتثبيتٌ فشل وتراجع لا يترك قيدًا يشير إلى شجرةٍ حُذفت.
|
|
58
|
+
* EN: Records a product after its installation **succeeded**. Its placement in `install.ts` is
|
|
59
|
+
* deliberate: after PATH and the boot task, with the rest of the traces outside the install
|
|
60
|
+
* directory — so a failed, rolled-back install leaves no entry pointing at a deleted tree.
|
|
61
|
+
*/
|
|
62
|
+
export declare function recordInstall(product: InstalledProduct): void;
|
|
63
|
+
/** يزيل قيد منتجٍ بعد نجاح إزالته. غيابه أصلًا ليس خطأً — الغاية بلوغ حالةٍ لا تنفيذ خطوة. */
|
|
64
|
+
export declare function forgetInstall(id: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* AR: منتجٌ واحد يُستنتَج، وأكثر يُطلب تحديده. **ولا يُخمَّن عند التعدّد**: أمرُ إيقافٍ يصيب
|
|
67
|
+
* الجهاز الخطأ في استراحةٍ تعمل أسوأ من أمرٍ يسأل.
|
|
68
|
+
* EN: One product is inferred; more than one must be named. **Never guessed when there are
|
|
69
|
+
* several**: a stop command hitting the wrong appliance in a working rest-house is worse than a
|
|
70
|
+
* command that asks.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveProduct(products: InstalledProduct[], requested?: string): {
|
|
73
|
+
product?: InstalledProduct;
|
|
74
|
+
ambiguous: boolean;
|
|
75
|
+
unknown: boolean;
|
|
76
|
+
};
|
|
77
|
+
/** يُستعمل في الاختبارات وحدها: يمسح الملفّ. لا أمر ينادي هذه. */
|
|
78
|
+
export declare function forgetEverything(): void;
|
|
79
|
+
//# sourceMappingURL=local-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-registry.d.ts","sourceRoot":"","sources":["../../src/registry/local-registry.ts"],"names":[],"mappings":"AAsCA,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,eAAO,MAAM,YAAY,QAAkE,CAAC;AAC5F,eAAO,MAAM,aAAa,QAAsC,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4EF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAY,GAAG,gBAAgB,GAAG,SAAS,CAyBtF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,UAAU,GAAE,MAAM,EAAO,GAAG,gBAAgB,EAAE,CAWrE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,IAAI,YAAY,CA0C3C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAM7D;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ9C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAStE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|