@nocobase/app-installer 0.1.0-beta.7 → 0.1.0-beta.8

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 CHANGED
@@ -90,20 +90,27 @@ An upgrade moves to the archive given with `--archive`, which must hold the same
90
90
 
91
91
  Every build is a release of its own, named by its version and UTC build time, as in `0.3.0_20260927T005500Z`, so deploying a project without bumping its version is still an upgrade. An archive already on disk is reused, and the one already running changes nothing.
92
92
 
93
- Everything that takes time happens while the current release keeps serving: the new release is unpacked beside it, then checked with its own CLI — `config check`, and `db apply --dry-run` to count the pending migrations. Only then does the downtime start: the application is stopped, its SQLite databases, `config.yml` and `app.env` are copied to `backups/<time>_<from>_to_<to>/`, `current` is switched, the migrations are applied, and the new release is started and must pass its health check.
93
+ The new release is unpacked and checked while the current release keeps serving. Its own CLI runs `config check`, `db apply --dry-run` to count pending migrations and seeds, and `db repair --dry-run` to inspect checksum drift independently. These commands use the installation's configuration, environment and default connection. The target application must support the checksum preview and its structured JSON result; an unsupported command or invalid response stops the upgrade before downtime. An apply preview alone does not validate checksums or data prerequisites.
94
94
 
95
- If migrating or starting the new release fails, the upgrade rolls itself back: `current` returns to the previous release, the databases are restored from the backup when the new release may have migrated them, and the previous release is started again. The command then exits with code `3`. If the previous release does not come back either, it exits with `4`, keeps the new release on disk, and leaves the operation pending, so `rollback` finishes the job once the cause is fixed.
95
+ When checksums differ, the installer returns `CHECKSUM_REPAIR_REQUIRED`, even with `--yes`. Review every entry against the target release's upgrade notes: `error.details.checksumRepair` contains `changes` (connection, task kind, package, name, recorded checksum and source checksum) and a `token`. Repeat the same upgrade with `--repair-checksums <token>` only after all changes are explained and approved; add `--yes` to accept the downtime and backup confirmation. The token binds approval to this installation, current release, target version and exact checksum changes. Changed drift requires a new review. An npm rebuild can have a new build timestamp without invalidating an otherwise identical repair plan.
96
+
97
+ Downtime begins only after preflight and confirmation: stop the application, copy its SQLite databases, `config.yml` and `app.env` to `backups/<time>_<from>_to_<to>/`, switch `current`, recheck the repair plan, apply the approved checksum repairs, run migrations, and start the new release with a health check. No checksum differences means no repair command. Keep other writers to the same database stopped for this maintenance window, and keep the reviewed target sources unchanged. The installer calls `db repair --force` only for the approved plan and only after backup; do not repair manually before running upgrade, because its automatic backup would then already contain the new history.
98
+
99
+ If migrating or starting the new release fails, the upgrade rolls itself back: `current` returns to the previous release, the databases are restored from the backup when the new release may have migrated them or repaired checksums, and the previous release is started again. The command then exits with code `3`. If the previous release does not come back either, it exits with `4`, keeps the new release on disk, and leaves the operation pending, so `rollback` finishes the job once the cause is fixed.
96
100
 
97
101
  A version older than the running one is refused: the older release knows nothing of the newer migrations. Going back is what `rollback` is for. The pm2 process named in `installer.json` must belong to this installation, and once the application is stopped its port must be free, so the health check cannot be answered by anything but the new release.
98
102
 
99
- | Flag | Default | Purpose |
100
- | ------------------ | ------- | --------------------------------------------------------------------------------------------------------------- |
101
- | `--archive` | | The new archive, by local path. Required. |
102
- | `--backup-done` | | Required when `config.yml` names a database the installer cannot back up — any but SQLite: back it up yourself. |
103
- | `--keep` | `3` | Releases to keep on disk (at least 2). The new release and the one upgraded from are always kept. |
104
- | `--health-timeout` | `180` | Seconds to wait for the new release's health check. |
105
- | `--yes` | | Proceed without the confirmation prompt; required with `--json` or without a terminal. |
106
- | `--json` | | Print one JSON result on stdout. |
103
+ | Flag | Default | Purpose |
104
+ | -------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
105
+ | `--archive` | | The new archive, by local path. Required. |
106
+ | `--repair-checksums` | | Approve the exact checksum repair plan returned by preflight, using its token. `--yes` alone never authorizes repair. |
107
+ | `--backup-done` | | Required when `config.yml` names a database the installer cannot back up — any but SQLite: back it up yourself. |
108
+ | `--keep` | `3` | Releases to keep on disk (at least 2). The new release and the one upgraded from are always kept. |
109
+ | `--health-timeout` | `180` | Seconds to wait for the new release's health check. |
110
+ | `--yes` | | Proceed without the confirmation prompt; required with `--json` or without a terminal. |
111
+ | `--json` | | Print one JSON result on stdout. |
112
+
113
+ A checksum-repairing upgrade records `installer.json` schema version 2 before switching or repairing. Continue using an installer that supports this format for status, recovery and rollback: older installers refuse it rather than silently skipping the database restore. Existing version 1 installations remain supported; an upgrade without repair does not change their state format. Successful upgrade JSON adds `result.checksumRepairs`; history records this count independently of pending migrations.
107
114
 
108
115
  The backup covers what rolling back needs: every SQLite database `config.yml` declares, with its journals, and the configuration. It is not a replacement for regular backups of `storage/`, whose uploaded files it leaves out, and backups are not pruned: remove old ones from `backups/` yourself.
109
116
 
@@ -115,7 +122,7 @@ When the machine's Node major changes, a release's native modules no longer load
115
122
  npx --yes @nocobase/app-installer rollback --dir /srv/nocobase/crm
116
123
  ```
117
124
 
118
- Returns to the release the last upgrade came from, or to `--to`, which takes a release id or a version (the newest build of it) among the releases on disk. When the upgrade being undone applied migrations, the SQLite databases are restored from the backup taken before it, which discards whatever was written since; `--no-restore` keeps the current databases instead. An external database is never in a backup, so nothing is restored for it and the command says so: restore it from your own backup. Rolling back never runs migrations backwards. A release built for another Node major is refused, since its native modules would not load; the error says how to get one that does.
125
+ Returns to the release the last upgrade came from, or to `--to`, which takes a release id or a version (the newest build of it) among the releases on disk. When the upgrade being undone applied migrations or repaired checksums, the SQLite databases are restored from the backup taken before it, which discards whatever was written since; `--no-restore` keeps the current databases instead. An external database is never in a backup, so nothing is restored for it and the command says so: restore it from your own backup. Rolling back never runs migrations backwards. A release built for another Node major is refused, since its native modules would not load; the error says how to get one that does.
119
126
 
120
127
  If the release it returns to does not start, the rollback stays pending, and running `rollback` again retries it — restore included — once the cause is fixed.
121
128
 
@@ -173,46 +180,48 @@ pm2 runs `node launcher.mjs` (`interpreter: 'none'`), and on every start `launch
173
180
 
174
181
  Under `--json`, a failure prints `ok: false` and `status: "failure"` with `error.code`, a message, `error.suggestions` and, where there is any, `error.details`: the same envelope as the application CLI's `pnpm nocobase … --json`. A suggestion's `run`, where it has one, is `{ command, args }`, an executable and its arguments to run as given, without a shell; a step that takes two commands is two suggestions. Codes are stable; branch on them rather than on the message.
175
182
 
176
- | Code | Exit | Meaning and what to do |
177
- | ----------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
178
- | `INVALID_USAGE` | `2` | An unknown command or flag, a malformed `--set`, an `--origin` with a path, no install directory, no `--archive`, or an `--archive` URL. Fix the command line. |
179
- | `NODE_UNSUPPORTED` | `2` | Node.js is older than 24. Install Node.js 24 or later. |
180
- | `PLATFORM_UNSUPPORTED` | `2` | Windows. Run the installer inside WSL. |
181
- | `PM2_MISSING` | `2` | pm2 is not on PATH. Install it globally, or install with `--no-start`. |
182
- | `PM2_UNSUPPORTED` | `2` | pm2 is older than 4.3, which does not read `ecosystem.config.cjs`, or `pm2 --version` printed no version. Update it globally, then run `pm2 update`. |
183
- | `PM2_NAME_IN_USE` | `2` | Another process owns the pm2 name. Choose another with `--name` when installing; for an installation, stop or rename that process. |
184
- | `PORT_IN_USE` | `2` | Something already listens on the host and port. When installing, `details.freePort` and the suggestion name a free port; otherwise stop what holds it. |
185
- | `ENV_MISSING` | `2` | A variable named by `--set-from-env` is not set. |
186
- | `TARGET_NOT_EMPTY` | `2` | The install target holds files, or is a file. Install into a new or empty directory; an installation is managed with the other commands. |
187
- | `NOT_INSTALLED` | `2` | The directory holds no `installer.json`. Run from the installation root, or name it with `--dir`. |
188
- | `STATE_UNSUPPORTED` | `2` | `installer.json` was written by a newer app-installer, or records an installation built from a published template, which only the app-installer that installed it manages. |
189
- | `LOCKED` | `2` | Another app-installer is working on this installation. Wait for it to finish. |
190
- | `ARCHIVE_NOT_FOUND` | `2` | `--archive` names no file. |
191
- | `ARCHIVE_INVALID` | `2` | The archive holds no `dist/package.json`: it is not one `pnpm build --tar` wrote. |
192
- | `CONFIG_UNREADABLE` | `2` | `config.yml` could not be read as YAML, so the databases an upgrade would have to back up are unknown. Fix the file; nothing was changed. |
193
- | `ARCHIVE_TOO_OLD` | `2` | The archive records neither that it is relocatable nor its base path, or not its build time. Upgrade `@nocobase/app-cli` in the project and build it again. |
194
- | `DRIVER_MISSING` | `2` | The archive lacks `@nocobase/db-<dialect>` for the chosen dialect. Add it to the project and build again. |
195
- | `APP_MISMATCH` | `2` | The archive holds another application than the one installed. Install it into a directory of its own. |
196
- | `BASE_PATH_MISMATCH` | `2` | A release from before relocatable builds was built for another path than `--base-path` or `app.env` names. Build it again with a current `@nocobase/app-cli`, which runs at any path. |
197
- | `CONFIRMATION_REQUIRED` | `2` | `upgrade` or `rollback` needs consent, and `--json` or the lack of a terminal leaves no prompt to ask on. `details.notes` says what the operation does; pass `--yes` once that is accepted. |
198
- | `CANCELLED` | `2` | The confirmation prompt was declined. Nothing changed. |
199
- | `OPERATION_INTERRUPTED` | `2` | An earlier upgrade or rollback stopped while the application was down. Run `rollback` to recover before anything else. |
200
- | `DOWNGRADE` | `2` | The target is an older version than the running one. Use `rollback --to`. |
201
- | `BACKUP_REQUIRED` | `2` | `config.yml` names a database the installer cannot back up. Back it up, then pass `--backup-done`. |
202
- | `NOTHING_TO_ROLL_BACK` | `2` | No upgrade led to the current release. Name a release on disk with `--to`. |
203
- | `RELEASE_MISSING` | `2` | The release to return to is not on disk; `status` lists those that are. |
204
- | `NODE_MISMATCH` | `2` | The release was built for another Node major, so its native modules would not load; the suggestions say how to get one that does. |
205
- | `BUILD_TARGET_MISMATCH` | `2` | The archive was built for another platform or Node major than this machine; the suggestion names the build command that fits. |
206
- | `UNPACK_FAILED` | `1` | Unpacking the deployment archive failed. |
207
- | `STORAGE_IN_RELEASE` | `1` | The release wrote its data inside its own directory: its `@nocobase/app-server` predates `APP_STORAGE_DIR`. Upgrade it in the project and build again; an upgrade rolls back on it. |
208
- | `APP_CLI_FAILED` | `1` | The release's own CLI printed no result. A failure it does report keeps its own code instead, such as `CONFIG_INVALID` from `config check`. |
209
- | `START_FAILED` | `1` | The application is installed but did not pass its health check; `details.log` holds the end of its error log. Fix the cause and start it with the suggested command. |
210
- | `UPGRADE_ABORTED` | `1` | The upgrade stopped before switching releases and the previous release is running again; exit `4` when it did not come back. |
211
- | `ROLLBACK_ABORTED` | `1` | Stopping the application failed; nothing was restored or switched. |
212
- | `INTERRUPTED` | `1` | Ctrl-C or SIGTERM stopped the running step before the application was touched. An install removes what it wrote unless the application was already switched on; an upgrade removes the release it was unpacking. Once an upgrade or rollback has stopped the application, it reports its own code instead. |
213
- | `UNEXPECTED` | `1` | An error the installer does not recognise. The message is all there is; report it. |
214
- | `UPGRADE_ROLLED_BACK` | `3` | The new release failed after the switch; the previous one runs again, on the restored databases when the new one may have migrated them. |
215
- | `ROLLBACK_FAILED` | `4` | The application is down. Follow the suggestions: read the log, fix the cause, and run `rollback` again, which retries the restore. |
183
+ | Code | Exit | Meaning and what to do |
184
+ | -------------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
185
+ | `INVALID_USAGE` | `2` | An unknown command or flag, a malformed `--set`, an `--origin` with a path, no install directory, no `--archive`, or an `--archive` URL. Fix the command line. |
186
+ | `NODE_UNSUPPORTED` | `2` | Node.js is older than 24. Install Node.js 24 or later. |
187
+ | `PLATFORM_UNSUPPORTED` | `2` | Windows. Run the installer inside WSL. |
188
+ | `PM2_MISSING` | `2` | pm2 is not on PATH. Install it globally, or install with `--no-start`. |
189
+ | `PM2_UNSUPPORTED` | `2` | pm2 is older than 4.3, which does not read `ecosystem.config.cjs`, or `pm2 --version` printed no version. Update it globally, then run `pm2 update`. |
190
+ | `PM2_NAME_IN_USE` | `2` | Another process owns the pm2 name. Choose another with `--name` when installing; for an installation, stop or rename that process. |
191
+ | `PORT_IN_USE` | `2` | Something already listens on the host and port. When installing, `details.freePort` and the suggestion name a free port; otherwise stop what holds it. |
192
+ | `ENV_MISSING` | `2` | A variable named by `--set-from-env` is not set. |
193
+ | `TARGET_NOT_EMPTY` | `2` | The install target holds files, or is a file. Install into a new or empty directory; an installation is managed with the other commands. |
194
+ | `NOT_INSTALLED` | `2` | The directory holds no `installer.json`. Run from the installation root, or name it with `--dir`. |
195
+ | `STATE_UNSUPPORTED` | `2` | `installer.json` was written by a newer app-installer, or records an installation built from a published template, which only the app-installer that installed it manages. |
196
+ | `LOCKED` | `2` | Another app-installer is working on this installation. Wait for it to finish. |
197
+ | `ARCHIVE_NOT_FOUND` | `2` | `--archive` names no file. |
198
+ | `ARCHIVE_INVALID` | `2` | The archive holds no `dist/package.json`: it is not one `pnpm build --tar` wrote. |
199
+ | `CONFIG_UNREADABLE` | `2` | `config.yml` could not be read as YAML, so the databases an upgrade would have to back up are unknown. Fix the file; nothing was changed. |
200
+ | `ARCHIVE_TOO_OLD` | `2` | The archive records neither that it is relocatable nor its base path, or not its build time. Upgrade `@nocobase/app-cli` in the project and build it again. |
201
+ | `DRIVER_MISSING` | `2` | The archive lacks `@nocobase/db-<dialect>` for the chosen dialect. Add it to the project and build again. |
202
+ | `APP_MISMATCH` | `2` | The archive holds another application than the one installed. Install it into a directory of its own. |
203
+ | `BASE_PATH_MISMATCH` | `2` | A release from before relocatable builds was built for another path than `--base-path` or `app.env` names. Build it again with a current `@nocobase/app-cli`, which runs at any path. |
204
+ | `CONFIRMATION_REQUIRED` | `2` | `upgrade` or `rollback` needs consent, and `--json` or the lack of a terminal leaves no prompt to ask on. `details.notes` says what the operation does; pass `--yes` once that is accepted. |
205
+ | `CANCELLED` | `2` | The confirmation prompt was declined. Nothing changed. |
206
+ | `OPERATION_INTERRUPTED` | `2` | An earlier upgrade or rollback stopped while the application was down. Run `rollback` to recover before anything else. |
207
+ | `DOWNGRADE` | `2` | The target is an older version than the running one. Use `rollback --to`. |
208
+ | `CHECKSUM_REPAIR_REQUIRED` | `2` | Review `error.details.checksumRepair.changes`, then repeat the upgrade with its `token` as `--repair-checksums`. `--yes` alone does not authorize repair. |
209
+ | `CHECKSUM_CHECK_INVALID` | `2` | The target CLI returned an incomplete or unsupported checksum preview. Use a target application supporting `db repair --dry-run --json`; the running application is unchanged. |
210
+ | `BACKUP_REQUIRED` | `2` | `config.yml` names a database the installer cannot back up. Back it up, then pass `--backup-done`. |
211
+ | `NOTHING_TO_ROLL_BACK` | `2` | No upgrade led to the current release. Name a release on disk with `--to`. |
212
+ | `RELEASE_MISSING` | `2` | The release to return to is not on disk; `status` lists those that are. |
213
+ | `NODE_MISMATCH` | `2` | The release was built for another Node major, so its native modules would not load; the suggestions say how to get one that does. |
214
+ | `BUILD_TARGET_MISMATCH` | `2` | The archive was built for another platform or Node major than this machine; the suggestion names the build command that fits. |
215
+ | `UNPACK_FAILED` | `1` | Unpacking the deployment archive failed. |
216
+ | `STORAGE_IN_RELEASE` | `1` | The release wrote its data inside its own directory: its `@nocobase/app-server` predates `APP_STORAGE_DIR`. Upgrade it in the project and build again; an upgrade rolls back on it. |
217
+ | `APP_CLI_FAILED` | `1` | The release's own CLI printed no result. A failure it does report keeps its own code instead, such as `CONFIG_INVALID` from `config check`. |
218
+ | `START_FAILED` | `1` | The application is installed but did not pass its health check; `details.log` holds the end of its error log. Fix the cause and start it with the suggested command. |
219
+ | `UPGRADE_ABORTED` | `1` | The upgrade stopped before switching releases and the previous release is running again; exit `4` when it did not come back. |
220
+ | `ROLLBACK_ABORTED` | `1` | Stopping the application failed; nothing was restored or switched. |
221
+ | `INTERRUPTED` | `1` | Ctrl-C or SIGTERM stopped the running step before the application was touched. An install removes what it wrote unless the application was already switched on; an upgrade removes the release it was unpacking. Once an upgrade or rollback has stopped the application, it reports its own code instead. |
222
+ | `UNEXPECTED` | `1` | An error the installer does not recognise. The message is all there is; report it. |
223
+ | `UPGRADE_ROLLED_BACK` | `3` | The new release failed after the switch; the previous one runs again, on the restored databases when the new one may have migrated them. |
224
+ | `ROLLBACK_FAILED` | `4` | The application is down. Follow the suggestions: read the log, fix the cause, and run `rollback` again, which retries the restore. |
216
225
 
217
226
  ## SSH deployment without server internet access
218
227
 
@@ -227,7 +236,7 @@ app-installer upgrade --ssh deploy@server --dir /srv/apps/crm \
227
236
  app-installer rollback --ssh deploy@server --dir /srv/apps/crm --json
228
237
  ```
229
238
 
230
- These commands are invoked through the installed `app-installer` binary on the local machine. `deploy` selects install when there is no `installer.json`, and upgrade when there is one. `install --ssh` always requests a fresh installation. An existing target retains its configuration: omit install-only flags, such as `--origin`, `--port` and `--set`, when deploying an update. Review an upgrade or rollback's confirmation notes and repeat with `--yes` to proceed. The remote operation always uses JSON, so it never waits for an invisible terminal prompt. Existing SQLite backup, external database `--backup-done`, release retention and rollback rules apply unchanged.
239
+ These commands are invoked through the installed `app-installer` binary on the local machine. `deploy` selects install when there is no `installer.json`, and upgrade when there is one. `install --ssh` always requests a fresh installation. An existing target retains its configuration: omit install-only flags, such as `--origin`, `--port` and `--set`, when deploying an update. Review an upgrade or rollback's confirmation notes and repeat with `--yes` to proceed. The remote operation always uses JSON, so it never waits for an invisible terminal prompt. The same checksum preview and `--repair-checksums <token>` approval apply to `deploy` updates and `upgrade` over SSH; the token remains valid across temporary upload paths. SQLite backup, external database `--backup-done`, release retention and rollback rules also apply. External databases are never restored automatically, including their migration and seed history after repair; `--backup-done` acknowledges an operator backup only.
231
240
 
232
241
  | Flag | Meaning |
233
242
  | ---------------- | ------------------------------------------------------------------- |
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { Flags } from '@oclif/core';
4
- import { backupHasDatabase, restoreDatabase } from "../lib/backup.js";
4
+ import { backupHasDatabase, readDatabaseInventory, restoreDatabase, } from "../lib/backup.js";
5
5
  import { confirm } from "../lib/confirm.js";
6
6
  import { switchCurrent } from "../lib/current-link.js";
7
7
  import { healthUrl, mountPathOf, readAppEnv } from "../lib/env-file.js";
@@ -24,7 +24,7 @@ export const ROLLBACK_FLAGS = {
24
24
  restore: Flags.boolean({
25
25
  allowNo: true,
26
26
  default: true,
27
- description: 'Restore the SQLite databases backed up before the upgrade, when that upgrade migrated them.',
27
+ description: 'Restore the SQLite databases backed up before the upgrade, when that upgrade migrated them or repaired checksums.',
28
28
  }),
29
29
  'health-timeout': Flags.integer({
30
30
  default: 180,
@@ -67,7 +67,7 @@ export function defaultRollbackTarget(state) {
67
67
  }
68
68
  /**
69
69
  * The backup that holds the databases as they were on `target`, and whether they need restoring: only when the upgrade
70
- * away from `target` applied migrations.
70
+ * away from `target` applied migrations or repaired checksums.
71
71
  *
72
72
  * An interrupted upgrade may have migrated once it moved `current`, and how far it got is unknown, so it counts as
73
73
  * migrated from then on; before that it had only stopped the application. An interrupted rollback restores what it set
@@ -87,7 +87,7 @@ export function backupFor(state, target) {
87
87
  const upgrade = lastUpgrade(state.history, (entry) => entry.from === target && entry.to === state.current);
88
88
  return {
89
89
  backup: upgrade?.backup,
90
- migrated: (upgrade?.migrations ?? 0) > 0,
90
+ migrated: (upgrade?.migrations ?? 0) > 0 || (upgrade?.checksumRepairs ?? 0) > 0,
91
91
  };
92
92
  }
93
93
  export async function rollback(input, deps) {
@@ -158,8 +158,13 @@ export async function rollback(input, deps) {
158
158
  backupHasDatabase(layout, backup)
159
159
  ? backup
160
160
  : undefined;
161
- if (flags.restore && migrated && restoreFrom === undefined) {
162
- reporter.warn(`The databases may have been migrated past ${target}, and app-installer holds no copy of them from before (an external database, or a backup that was cut short). Restore them from your own backup if ${target} misbehaves.`);
161
+ const inventory = readDatabaseInventory(layout, env);
162
+ const external = [...inventory.external, ...inventory.unresolved];
163
+ if (flags.restore && migrated && external.length > 0) {
164
+ reporter.warn(`The external database connections ${external.join(', ')} are not restored, including migration and seed history. Restore them from your own backup before relying on ${target}.`);
165
+ }
166
+ else if (flags.restore && migrated && restoreFrom === undefined) {
167
+ reporter.warn(`The databases may have been migrated or had their checksums repaired past ${target}, and app-installer holds no copy of them from before (an external database, or a backup that was cut short). Restore them from your own backup if ${target} misbehaves.`);
163
168
  }
164
169
  await confirm([
165
170
  `Roll the application at ${root} back from ${from} to ${target}.`,
@@ -1 +1 @@
1
- {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { buildApp, resolveApp } from "../lib/app-source.js";
6
6
  import { pendingTaskCount, runAppCli } from "../lib/app-cli.js";
7
7
  import { backupForUpgrade, backupName, readDatabaseInventory, removeBackup, restoreDatabase, } from "../lib/backup.js";
8
8
  import { confirm } from "../lib/confirm.js";
9
+ import { previewChecksumRepair, requireChecksumApproval, } from "../lib/checksum-repair.js";
9
10
  import { switchCurrent } from "../lib/current-link.js";
10
11
  import { healthUrl, mountPathOf, readAppEnv } from "../lib/env-file.js";
11
12
  import { assertFixedMountPath } from "../lib/mount-path.js";
@@ -39,6 +40,9 @@ export const UPGRADE_FLAGS = {
39
40
  default: false,
40
41
  description: 'Confirm that the databases app-installer cannot back up, any but SQLite, are backed up.',
41
42
  }),
43
+ 'repair-checksums': Flags.string({
44
+ description: 'Authorize only the checksum repair plan identified by the token returned during preflight.',
45
+ }),
42
46
  'health-timeout': Flags.integer({
43
47
  default: 180,
44
48
  min: 1,
@@ -164,7 +168,7 @@ async function rollBackUpgrade(context) {
164
168
  let rollbackError;
165
169
  try {
166
170
  await switchCurrent(layout, releaseLinkTarget(from.id));
167
- if (context.pending > 0 && hasDatabase) {
171
+ if ((context.pending > 0 || context.checksumRepairs > 0) && hasDatabase) {
168
172
  await restoreDatabase(layout, backup.relative);
169
173
  databaseRestored = true;
170
174
  }
@@ -193,13 +197,15 @@ async function rollBackUpgrade(context) {
193
197
  at: new Date().toISOString(),
194
198
  outcome: 'rolled-back',
195
199
  migrations: context.pending,
200
+ checksumRepairs: context.checksumRepairs,
196
201
  backup: backup.relative,
197
202
  databaseRestored,
198
203
  });
199
204
  await writeState(layout, state);
200
205
  const doing = `Upgrading to ${to.id}`;
201
- const externalDatabaseNote = context.pending > 0 && !hasDatabase
202
- ? ` ${to.id} may already have migrated the external database; restore it from your own backup if ${from.id} misbehaves.`
206
+ const externalDatabaseNote = (context.pending > 0 || context.checksumRepairs > 0) &&
207
+ context.externalConnections.length > 0
208
+ ? ` ${to.id} may already have migrated or repaired the external database connections ${context.externalConnections.join(', ')}; these were not restored. Restore them from your own pre-upgrade backup before relying on ${from.id}.`
203
209
  : '';
204
210
  if (healthy) {
205
211
  throw new InstallerError('UPGRADE_ROLLED_BACK', `${doing} failed (${reason}). ${from.id} is running again${databaseRestored ? ' on the databases restored from the backup' : ''}.${externalDatabaseNote}`, {
@@ -361,37 +367,6 @@ export async function upgrade(input, deps) {
361
367
  const prepared = reuse ? undefined : unpacked;
362
368
  const inventory = readDatabaseInventory(layout, env);
363
369
  const unprotected = [...inventory.external, ...inventory.unresolved];
364
- const discardPrepared = async () => {
365
- if (prepared) {
366
- await rm(path.dirname(prepared.dir), { recursive: true, force: true });
367
- }
368
- };
369
- try {
370
- if (unprotected.length > 0 && !flags['backup-done']) {
371
- throw new InstallerError('BACKUP_REQUIRED', `app-installer cannot back up the database connection${unprotected.length === 1 ? '' : 's'} ${unprotected.join(', ')}. Back ${unprotected.length === 1 ? 'it' : 'them'} up, then pass --backup-done.`, { exitCode: EXIT_INVALID });
372
- }
373
- await confirm([
374
- `Upgrade the application at ${root} from ${from.id} to ${unpacked.id}.`,
375
- 'The application stops while the release switches.',
376
- inventory.sqlite.length > 0
377
- ? 'The SQLite databases and the configuration are copied to backups/ before anything is migrated.'
378
- : 'The configuration is copied to backups/ before anything is migrated.',
379
- ...(unprotected.length > 0
380
- ? [
381
- `You confirmed with --backup-done that ${unprotected.join(', ')} ${unprotected.length === 1 ? 'is' : 'are'} backed up.`,
382
- ]
383
- : []),
384
- ...(nodeChanged
385
- ? [
386
- `This machine runs Node ${machineMajor}, but ${from.id} was built for Node ${from.buildTarget.nodeMajor}: it cannot be rolled back to.`,
387
- ]
388
- : []),
389
- ], { yes: flags.yes, json: flags.json });
390
- }
391
- catch (error) {
392
- await discardPrepared();
393
- throw error;
394
- }
395
370
  // Everything up to the stop happens while the current release keeps serving.
396
371
  let to;
397
372
  let newRecord;
@@ -427,10 +402,39 @@ export async function upgrade(input, deps) {
427
402
  };
428
403
  const cli = { releaseDir: dir, cwd: root, env, run };
429
404
  let pending;
405
+ let repairPlan;
406
+ const repairIdentity = {
407
+ appName: state.appName,
408
+ from: from.id,
409
+ version: to.version,
410
+ };
430
411
  try {
431
412
  reporter.progress(`Checking the configuration and pending migrations with ${to.id}`);
432
413
  await runAppCli(['config', 'check'], cli);
433
414
  pending = pendingTaskCount(await runAppCli(['db', 'apply', '--dry-run'], cli));
415
+ repairPlan = await previewChecksumRepair(cli, repairIdentity);
416
+ requireChecksumApproval(repairPlan, flags['repair-checksums']);
417
+ if (unprotected.length > 0 && !flags['backup-done']) {
418
+ throw new InstallerError('BACKUP_REQUIRED', `app-installer cannot back up the database connection${unprotected.length === 1 ? '' : 's'} ${unprotected.join(', ')}. Back ${unprotected.length === 1 ? 'it' : 'them'} up, then pass --backup-done.`, { exitCode: EXIT_INVALID });
419
+ }
420
+ await confirm([
421
+ `Upgrade the application at ${root} from ${from.id} to ${to.id}.`,
422
+ 'The application stops while the release switches.',
423
+ `${pending} migration and seed task(s) will run; ${repairPlan.changes.length} checksum(s) will be repaired after backup.`,
424
+ inventory.sqlite.length > 0
425
+ ? 'The SQLite databases and the configuration are copied to backups/ before anything is migrated.'
426
+ : 'The configuration is copied to backups/ before anything is migrated.',
427
+ ...(unprotected.length > 0
428
+ ? [
429
+ `You confirmed with --backup-done that ${unprotected.join(', ')} ${unprotected.length === 1 ? 'is' : 'are'} backed up.`,
430
+ ]
431
+ : []),
432
+ ...(nodeChanged
433
+ ? [
434
+ `This machine runs Node ${machineMajor}, but ${from.id} was built for Node ${from.buildTarget.nodeMajor}: it cannot be rolled back to.`,
435
+ ]
436
+ : []),
437
+ ], { yes: flags.yes, json: flags.json });
434
438
  }
435
439
  catch (error) {
436
440
  await removeNewRelease();
@@ -485,9 +489,21 @@ export async function upgrade(input, deps) {
485
489
  }
486
490
  try {
487
491
  // Marked before the link moves, so an interruption from here on is undone with a database restore.
492
+ // Older installers cannot safely recover a repair-only upgrade; make them refuse this state.
493
+ if (repairPlan.changes.length > 0)
494
+ state.schemaVersion = 2;
488
495
  state.pending.switched = true;
489
496
  await writeState(layout, state);
490
497
  await switchCurrent(layout, releaseLinkTarget(to.id));
498
+ // Recheck after stopping writers; an approval never covers newly discovered drift.
499
+ const finalPlan = await previewChecksumRepair(cli, repairIdentity);
500
+ if (finalPlan.token !== repairPlan.token) {
501
+ throw new InstallerError('CHECKSUM_PLAN_CHANGED', 'The checksum repair plan changed after preflight. Review the new plan before retrying.', { details: { checksumRepair: finalPlan } });
502
+ }
503
+ if (repairPlan.changes.length > 0) {
504
+ reporter.progress('Repairing the reviewed migration and seed checksums');
505
+ await runAppCli(['db', 'repair', '--force'], cli);
506
+ }
491
507
  reporter.progress('Applying database migrations');
492
508
  await runAppCli(['db', 'apply'], cli);
493
509
  assertStorageOutsideRelease(dir);
@@ -511,6 +527,8 @@ export async function upgrade(input, deps) {
511
527
  from,
512
528
  to,
513
529
  pending,
530
+ checksumRepairs: repairPlan.changes.length,
531
+ externalConnections: unprotected,
514
532
  backup,
515
533
  newRecord,
516
534
  timeoutMs: flags['health-timeout'] * 1000,
@@ -532,6 +550,7 @@ export async function upgrade(input, deps) {
532
550
  at,
533
551
  outcome: 'completed',
534
552
  migrations: pending,
553
+ checksumRepairs: repairPlan.changes.length,
535
554
  backup: backup.relative,
536
555
  });
537
556
  await writeState(layout, state);
@@ -557,6 +576,7 @@ export async function upgrade(input, deps) {
557
576
  upgraded: true,
558
577
  reused: reuse !== undefined,
559
578
  migrations: pending,
579
+ checksumRepairs: repairPlan.changes.length,
560
580
  backup: backup.relative,
561
581
  pruned: pruned.map((record) => record.id),
562
582
  },
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iBAAiB,GAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,OAAO,GAER,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;QAChB,WAAW,EACT,gFAAgF;KACnF,CAAC;IACF,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACf,WAAW,EACT,2EAA2E;KAC9E,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,KAAK;QACd,WAAW,EACT,+EAA+E;KAClF,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACpB,WAAW,EACT,2EAA2E;KAC9E,CAAC;IACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,KAAK;QACd,WAAW,EACT,yFAAyF;KAC5F,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;QAC9B,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,WAAW,EACT,iEAAiE;KACpE,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAClB,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,WAAW,EACT,kHAAkH;KACrH,CAAC;IACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,0CAA0C;KACxD,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAClB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,4DAA4D;KAC1E,CAAC;CACH,CAAC;AAgBF,oHAAoH;AACpH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,IAAY;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAC3B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IACtD,MAAM,IAAI,cAAc,CACtB,uBAAuB,EACvB,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,IAAI,IAAI,OAAO,EAAE,aAAa,SAAS,oEAAoE,EAC1K;QACE,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE;YACX;gBACE,OAAO,EACL,0FAA0F;gBAC5F,GAAG,EAAE,oBAAoB,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;oBACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;aACH;SACF;KACF,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAkC,EAClC,OAA0B,EAC1B,IAAY;IAEZ,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAC3C,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,MAAM;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,QAAyB;IACzC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,GAAG,CAAC,QAAQ,CAAC,WAAW;YACtB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAa,EAAE;YAChC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAS,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAqB,EAAE,MAAqB;IACjE,KAAK,CAAC,QAAQ,GAAG;QACf,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;QAC3D,MAAM;KACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,cAAc,CACrB,KAAqB,EACrB,IAAY,EACZ,KAA4B;IAE5B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,GAAG,IAAI,uEAAuE,EAC9E;YACE,QAAQ,EAAE,YAAY;YACtB,8FAA8F;YAC9F,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,0FAA0F,gBAAgB,CAAC,iBAAiB,aAAa,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;iBAC3N;aACF;SACF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,KAAqB,EACrB,QAAyB,EACzB,GAA2B;IAE3B,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,cAAc,CACtB,cAAc,EACd,qBAAqB,QAAQ,CAAC,OAAO,gCAAgC,KAAK,CAAC,OAAO,+DAA+D,EACjJ;YACE,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE;gBACX;oBACE,OAAO,EACL,qFAAqF;iBACxF;aACF;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAgBD;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAAC,OAAwB;IACrD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,MAAM,GACV,OAAO,CAAC,KAAK,YAAY,KAAK;QAC5B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;QACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CACxC,CAAC;IAEF,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,aAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YACvC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/C,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;gBAChD,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,SAAU,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACjB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,OAAO,CAAC,OAAO;QAC3B,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;IACtC,MAAM,oBAAoB,GACxB,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW;QACjC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,wFAAwF,IAAI,CAAC,EAAE,cAAc;QACxH,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,GAAG,KAAK,YAAY,MAAM,MAAM,IAAI,CAAC,EAAE,oBAAoB,gBAAgB,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,IAAI,oBAAoB,EAAE,EACzJ;YACE,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YAC3D,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,4BAA4B;oBACrC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC;iBACjC;aACF;SACF,CACF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,GAAG,KAAK,YAAY,MAAM,UAAU,IAAI,CAAC,EAAE,4BAA4B,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,4BAA4B,EACtK;QACE,QAAQ,EAAE,oBAAoB;QAC9B,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE;QAC3D,WAAW,EAAE;YACX;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC;aACjC;YACD,GAAG,CAAC,WAAW,IAAI,CAAC,gBAAgB;gBAClC,CAAC,CAAC;oBACE;wBACE,OAAO,EAAE,gDAAgD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,gDAAgD;qBACjJ;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP;gBACE,OAAO,EACL,oGAAoG;gBACtG,GAAG,EAAE,oBAAoB,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC5D,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;aACH;YACD,GAAG,CAAC,IAAI;gBACN,CAAC,CAAC;oBACE;wBACE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB;wBACjD,GAAG,EAAE,oBAAoB,CACvB;4BACE,UAAU;4BACV,OAAO;4BACP,MAAM,CAAC,IAAI;4BACX,MAAM;4BACN,EAAE,CAAC,EAAE;4BACL,cAAc;yBACf,EACD,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAC7B;qBACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAmB,EACnB,IAAiB;IAEjB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,qFAAqF;QACrF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IACE,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;YACvC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,EACzC,CAAC;YACD,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,2HAA2H,EAC3H,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,kBAAkB,CAChB,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EACzB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CACnC,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,wBAAwB,KAAK,CAAC,OAAO,oDAAoD,EACzF,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,YAAY,CAAC;QAChE,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAkB,EAAE;YAChD,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACN,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,CAAC,WAAW;iBAC1B;gBACD,OAAO,EAAE;oBACP,iCAAiC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI;oBAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrC;aACF,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAS,EAAE;YACjD,MAAM,IAAI,cAAc,CACtB,WAAW,EACX,GAAG,OAAO,8BAA8B,IAAI,CAAC,OAAO,yGAAyG,EAC7J;gBACE,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE;oBACX;wBACE,OAAO,EACL,mFAAmF;wBACrF,GAAG,EAAE,oBAAoB,CACvB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAC5C,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAC7B;qBACF;iBACF;aACF,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAmB;YAC9B,MAAM;YACN,GAAG;YACH,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QACF,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEjC,8GAA8G;QAC9G,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,MAAM,UAAU,CACd;gBACE,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC;aAChE,EACD,KAAK,CAAC,QAAQ,EACd,GAAG,CACJ;YACH,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;gBACxD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,WAAW;gBACjE,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG;YAClB,CAAC,CAAC,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;YAC1E,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAQ,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACnC,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC;YACH,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC1C,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5B,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/D,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,QAAQ,GAAgC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC;YACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,uDAAuD,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,+BAA+B,EACrM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,CACX;gBACE,8BAA8B,IAAI,SAAS,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,EAAE,GAAG;gBACvE,mDAAmD;gBACnD,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBACzB,CAAC,CAAC,gGAAgG;oBAClG,CAAC,CAAC,sEAAsE;gBAC1E,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBACxB,CAAC,CAAC;wBACE,yCAAyC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa;qBACxH;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,WAAW;oBACb,CAAC,CAAC;wBACE,0BAA0B,YAAY,SAAS,IAAI,CAAC,EAAE,uBAAuB,IAAI,CAAC,WAAW,CAAC,SAAS,gCAAgC;qBACxI;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,EACD,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CACrC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,6EAA6E;QAC7E,IAAI,EAAiB,CAAC;QACtB,IAAI,SAAoC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,QAAQ,CAAC,eAAe,KAAK,CAAC,EAAE,0BAA0B,CAAC,CAAC;YACrE,EAAE,GAAG,KAAK,CAAC;QACb,CAAC;aAAM,CAAC;YACN,EAAE,GAAG,QAAQ,CAAC,QAAS,CAAC,CAAC;YACzB,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,oFAAoF;QACpF,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;wBAChD,SAAS,EAAE,IAAI;wBACf,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAClC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACrD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,QAAQ,CAAC,QAAQ,CACf,0DAA0D,EAAE,CAAC,EAAE,EAAE,CAClE,CAAC;YACF,MAAM,SAAS,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,GAAG,gBAAgB,CACxB,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CACnD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,EAAE,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,QAAQ,CAAC,QAAQ,CACf,OAAO,GAAG,CAAC;YACT,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,OAAO,6BAA6B;YAC7D,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,4BAA4B,CACzC,CAAC;QAEF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,OAAO,GAAG;YACd,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhC,wBAAwB;QACxB,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,+FAA+F;YAC/F,MAAM,aAAa,CACjB,GAAG,CAAC,eAAe,IAAI,WAAW,EAClC,MAAM,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,CACrC,CAAC;YACF,QAAQ,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;YAChE,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAChC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,iBAAiB,CAClE,CAAC;YACF,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,yGAAyG;YACzG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvC,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2FAA2F;YAC3F,MAAM,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;gBAC7B,GAAG,OAAO;gBACV,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI;aAC1C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC,OAAO,CAAC;YACrB,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,gBAAgB,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,gBAAgB,EAAE,CAAC,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,uBAAuB,EAAE,EAC5L;gBACE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB;gBACtD,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,OAAO;oBAClB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,WAAW,CACT,MAAM,EACN,SAAS,IAAI,CAAC,EAAE,iCAAiC,CAClD;aACN,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,mGAAmG;YACnG,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;YACtC,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;gBAC7B,GAAG,OAAO;gBACV,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,yCAAyC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,4GAA4G;YAC5G,iGAAiG;YACjG,OAAO,MAAM,eAAe,CAAC;gBAC3B,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,IAAI;gBACJ,EAAE;gBACF,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI;gBACzC,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QAED,oGAAoG;QACpG,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;QACtB,IAAI,SAAS;YAAE,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,iHAAiH;QACjH,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAC1C,CAAC;QACF,OAAO,KAAK,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,EAAE;YACF,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,MAAM,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,eAAe,CAC5B,KAAK,CAAC,QAAQ,EACd,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAChB,KAAK,CAAC,IAAI,CACX,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;gBACpD,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAC1D,CAAC;YACF,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,WAAW,EAAE,IAAI,CAAC,OAAO;gBACzB,SAAS,EAAE,EAAE,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK,KAAK,SAAS;gBAC3B,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE,MAAM,CAAC,QAAQ;gBACvB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aAC1C;YACD,OAAO,EAAE;gBACP,iCAAiC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,OAAO,GAAG;gBACjE,iBAAiB,EAAE,CAAC,EAAE,EAAE;gBACxB,iBAAiB,OAAO,EAAE;gBAC1B,iBAAiB,MAAM,CAAC,QAAQ,EAAE;gBAClC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnE,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { runAppCli } from "./app-cli.js";
3
+ import { EXIT_INVALID, InstallerError } from "./errors.js";
4
+ const object = (value) => typeof value === 'object' && value !== null;
5
+ const nonempty = (value) => typeof value === 'string' && value.length > 0;
6
+ /** Reject an unsupported or incomplete CLI response instead of treating it as an empty repair plan. */
7
+ export function checksumRepairs(result) {
8
+ const invalid = () => {
9
+ throw new InstallerError('CHECKSUM_CHECK_INVALID', 'The target application must support db repair --dry-run --json with complete checksum results. No upgrade was applied.', { exitCode: EXIT_INVALID });
10
+ };
11
+ if (!object(result) ||
12
+ result.dryRun !== true ||
13
+ !Array.isArray(result.results))
14
+ return invalid();
15
+ const changes = [];
16
+ for (const entry of result.results) {
17
+ if (!object(entry) ||
18
+ !nonempty(entry.connection) ||
19
+ (entry.kind !== 'migrations' && entry.kind !== 'seeds'))
20
+ return invalid();
21
+ if (entry.status === 'skipped')
22
+ continue;
23
+ if (entry.status !== 'completed' || !Array.isArray(entry.repaired))
24
+ return invalid();
25
+ for (const record of entry.repaired) {
26
+ if (!object(record) ||
27
+ !nonempty(record.packageName) ||
28
+ !nonempty(record.name) ||
29
+ !nonempty(record.recordedChecksum) ||
30
+ !nonempty(record.sourceChecksum))
31
+ return invalid();
32
+ changes.push({
33
+ connection: entry.connection,
34
+ kind: entry.kind,
35
+ packageName: record.packageName,
36
+ name: record.name,
37
+ recordedChecksum: record.recordedChecksum,
38
+ sourceChecksum: record.sourceChecksum,
39
+ });
40
+ }
41
+ }
42
+ return changes.sort((a, b) => {
43
+ const left = JSON.stringify(a);
44
+ const right = JSON.stringify(b);
45
+ return left < right ? -1 : left > right ? 1 : 0;
46
+ });
47
+ }
48
+ export async function previewChecksumRepair(cli, identity) {
49
+ const envelope = await runAppCli(['db', 'repair', '--dry-run'], cli);
50
+ const changes = checksumRepairs(envelope.result);
51
+ // Build timestamps can change when an npm application is rebuilt for the confirmation run.
52
+ // Bind approval to the installation, current release, target version and exact checksum changes instead.
53
+ const token = createHash('sha256')
54
+ .update(JSON.stringify({ directory: cli.cwd, ...identity, changes }))
55
+ .digest('hex');
56
+ return { token, changes };
57
+ }
58
+ export function requireChecksumApproval(plan, approved) {
59
+ if (!plan.changes.length && approved === undefined)
60
+ return;
61
+ if (approved === plan.token)
62
+ return;
63
+ throw new InstallerError('CHECKSUM_REPAIR_REQUIRED', 'Review every migration and seed checksum change before authorizing repair. --yes alone does not authorize checksum repair.', {
64
+ exitCode: EXIT_INVALID,
65
+ details: { checksumRepair: plan },
66
+ suggestions: [
67
+ ...plan.changes.map((change) => ({
68
+ message: `${change.connection}/${change.kind}: ${change.packageName}:${change.name} ${change.recordedChecksum} -> ${change.sourceChecksum}`,
69
+ })),
70
+ {
71
+ message: `After reviewing this plan, repeat the same upgrade with --repair-checksums ${plan.token}. The installer backs up before repairing.`,
72
+ },
73
+ ],
74
+ });
75
+ }
76
+ //# sourceMappingURL=checksum-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum-repair.js","sourceRoot":"","sources":["../../src/lib/checksum-repair.ts"],"names":[],"mappings":"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"}
package/dist/lib/state.js CHANGED
@@ -25,7 +25,7 @@ export async function readState(layout) {
25
25
  throw error;
26
26
  }
27
27
  const state = JSON.parse(text);
28
- if (state.schemaVersion !== 1) {
28
+ if (state.schemaVersion !== 1 && state.schemaVersion !== 2) {
29
29
  throw new InstallerError('STATE_UNSUPPORTED', `installer.json has schemaVersion ${String(state.schemaVersion)}, which this app-installer does not understand.`, {
30
30
  exitCode: EXIT_INVALID,
31
31
  suggestions: [
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { UPGRADE_FLAGS } from "./commands/upgrade.js";
12
12
  import { ROLLBACK_FLAGS } from "./commands/rollback.js";
13
13
  import { STATUS_FLAGS } from "./commands/status.js";
14
14
  import { errorEnvelope, exitCodeOf } from "./lib/output.js";
15
- import { InstallerError } from "./lib/errors.js";
15
+ import { EXIT_INVALID, InstallerError } from "./lib/errors.js";
16
16
  import { sha256 } from "./lib/remote.js";
17
17
  let input = '';
18
18
  for await (const chunk of process.stdin)
@@ -35,6 +35,8 @@ try {
35
35
  const stateFile = path.join(root, 'installer.json');
36
36
  if (command === 'deploy')
37
37
  command = existsSync(stateFile) ? 'upgrade' : 'install';
38
+ if (command === 'install' && request.flags['repair-checksums'] !== undefined)
39
+ throw new InstallerError('INVALID_USAGE', 'Checksum repair approval applies only to upgrading an existing installation.', { exitCode: EXIT_INVALID });
38
40
  if (command === 'upgrade') {
39
41
  const state = JSON.parse(await readFile(stateFile, 'utf8'));
40
42
  if (state.source?.kind !== 'archive')
@@ -1 +1 @@
1
- {"version":3,"file":"remote-entry.js","sourceRoot":"","sources":["../src/remote-entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-entry.js","sourceRoot":"","sources":["../src/remote-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,yGAAyG;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAsB,MAAM,iBAAiB,CAAC;AAE7D,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;IAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,IAAI,OAAO,GAAG,QAAQ,CAAC;AACvB,IAAI,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;IACnD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG;QACxC,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,gDAAgD,CACjD,CAAC;IACJ,IACE,OAAO,CAAC,OAAO;QACf,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM;QAE/D,MAAM,IAAI,cAAc,CACtB,mBAAmB,EACnB,8CAA8C,CAC/C,CAAC;IACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5C,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,2CAA2C,CAC5C,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,QAAQ;QACtB,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,SAAS;QAC1E,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,8EAA8E,EAC9E,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IACJ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAEzD,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS;YAClC,MAAM,IAAI,cAAc,CACtB,2BAA2B,EAC3B,uDAAuD,CACxD,CAAC;QACJ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,IAAI,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,GAAG,KAAK,MAAM,CACpE,CAAC;QACF,IAAI,WAAW,CAAC,MAAM;YACpB,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,oFAAoF,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnI,CAAC;IACN,CAAC;IACD,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,YAAY;KACrB,CAAC;IACF,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC;QAC3B,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,WAAW,CAAC,OAAmC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAC5E,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;iBAC5B,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;;YACrD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAEhE,CAAC;IACF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;QAC1B,KAAK,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;YACtC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,QAAQ,EAAE,CAAC;QACb,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC;QACpC,IAAI;QACJ,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM;KACP,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAGjC,CAAC;IACF,IACE,QAAQ,CAAC,EAAE;QACX,QAAQ,CAAC,MAAM;QACf,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EACzC,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AACxD,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CACzD,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/app-installer",
3
- "version": "0.1.0-beta.7",
3
+ "version": "0.1.0-beta.8",
4
4
  "description": "Install, upgrade and roll back a NocoBase 3 application on a server from a deployment archive.",
5
5
  "type": "module",
6
6
  "prettier": "@nocobase/dev-config/prettier",
@@ -28,6 +28,8 @@
28
28
  "publint": "^0.3.24",
29
29
  "typescript": "^6.0.3",
30
30
  "vitest": "^4.1.10",
31
+ "@nocobase/db": "^1.0.0-beta.20",
32
+ "@nocobase/db-sqlite": "^0.1.0-beta.5",
31
33
  "@nocobase/dev-config": "0.1.0-beta.22"
32
34
  },
33
35
  "publishConfig": {