@forge-cms/runtime 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export type { AdapterSet, ForgeCmsConfig } from './config.js';
2
2
  export type { OperationContext } from './context.js';
3
- export { ForgeCmsRuntime } from './runtime.js';
3
+ export { ForgeCmsRuntime, type MigrationReport } from './runtime.js';
4
4
  export { handleList, handleRead, handleCreate, handleUpdate, handleDelete, handleGlobalRead, handleGlobalUpdate, handleListVersions, handleGetVersion, handleRestoreVersion, handlePreview, type HandlerOptions, DEFAULT_LIMIT, MAX_LIMIT } from './handlers.js';
5
5
  export { handleFile, type FileHandlerOptions } from './files.js';
6
6
  export { reconcileStorage, DEFAULT_UPLOAD_GRACE_MS, type ReconcileStorageOptions, type ReconcileStorageReport } from './storage-intents.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAEb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACjE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,mBAAmB,EAMpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,iDAAiD;AACjD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAE5B,MAAM,WAAW,CAAC;AAEnB,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,cAAc,EACd,OAAO,EAWR,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,uFAAuF;AACvF,iFAAiF;AACjF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAEb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACjE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,mBAAmB,EAMpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,iDAAiD;AACjD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAE5B,MAAM,WAAW,CAAC;AAEnB,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,cAAc,EACd,OAAO,EAWR,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,uFAAuF;AACvF,iFAAiF;AACjF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -1,12 +1,21 @@
1
1
  import type { ForgeCmsConfig, AdapterSet } from './config.js';
2
2
  import type { CollectionBySlug, CollectionDefinition, CollectionDocument, CollectionRegistry, CollectionSlug, GlobalDefinition } from '@forge-cms/core';
3
- import type { DatabaseRecord } from '@forge-cms/db';
3
+ import type { DatabaseRecord, MigrationDefinition, MigrationRecord, MigrationRunResult, MigrationState, RunMigrationsOptions, SchemaPlan } from '@forge-cms/db';
4
4
  import type { OperationContext } from './context.js';
5
5
  import type { ReconcileStorageOptions, ReconcileStorageReport } from './storage-intents.js';
6
6
  import type { TypedCountArgs, TypedCreateArgs, TypedDeleteArgs, TypedFindArgs, TypedFindByIDArgs, TypedFindOneArgs, TypedPaginatedDocs, TypedPreviewArgs, TypedUpdateArgs } from './typed-api.js';
7
7
  import type { GetGlobalArgs, UpdateGlobalArgs } from './globals.js';
8
8
  import type { ListVersionsArgs, GetVersionArgs, RestoreVersionArgs, CreateVersionArgs } from './versions.js';
9
9
  import type { Version } from '@forge-cms/core';
10
+ /** What {@link ForgeCmsRuntime.runMigrations} did (spec 072). */
11
+ export interface MigrationReport {
12
+ /** The drift plan before any migration ran: what the migrations were meant to resolve. */
13
+ before: SchemaPlan;
14
+ /** One entry per migration in the list, in order. */
15
+ results: MigrationRunResult[];
16
+ /** The plan after the post-flight `syncSchema()`: never blocking when this resolves. */
17
+ after: SchemaPlan;
18
+ }
10
19
  /**
11
20
  * The CMS instance: collections bound to adapters, plus the **Local API** — `find`, `findByID`,
12
21
  * `create`, `update`, `delete`, `count`, `getGlobal`, `updateGlobal`.
@@ -33,13 +42,61 @@ export declare class ForgeCmsRuntime<TEnv = unknown, TCollections extends Collec
33
42
  private wireManagedDeleteGuards;
34
43
  /** Initialise all adapters with the runtime environment */
35
44
  init(): this;
36
- /** Sync database schema for all registered collections and globals */
45
+ /**
46
+ * Creates and additively upgrades every table the CMS uses: collections, `_global_<slug>`,
47
+ * `_versions_<slug>`, `_forge_storage_intents`, and the auth adapter's own tables.
48
+ *
49
+ * Plan first (spec 070): when the database implements `planSchema`, the whole schema — including the
50
+ * auth adapter's tables — is planned before anything runs. Any change that needs a reviewed
51
+ * migration throws `SchemaDriftError` with **no table touched anywhere**. Otherwise each area is
52
+ * synced (fresh tables and safe additive changes only). A database without `planSchema` keeps its
53
+ * own `syncSchema` behaviour, unplanned.
54
+ */
37
55
  syncSchema(): Promise<void>;
56
+ /**
57
+ * The complete schema drift plan (spec 070) for every table {@link syncSchema} manages, merged with
58
+ * the auth adapter's own (`AuthAdapter.planSchema`). Read-only: inspects the database and runs
59
+ * aggregate probes, never DDL or writes. Throws when the database adapter cannot inspect its
60
+ * persisted schema — an uninspectable schema is never reported as compatible.
61
+ */
62
+ planSchema(): Promise<SchemaPlan>;
63
+ /**
64
+ * Runs reviewed migrations (spec 072) — the one supported way to apply changes `syncSchema()` refuses.
65
+ * An explicit deployment/maintenance step: `init()` and `syncSchema()` never call it.
66
+ *
67
+ * 1. Validates every definition (no I/O).
68
+ * 2. Preflight: `before = planSchema()`, the drift the migrations are meant to resolve.
69
+ * 3. The database adapter runs each pending migration as one transactional batch together with its
70
+ * `_forge_migrations` ledger entry (`DatabaseAdapter.runMigrations`).
71
+ * 4. Post-flight: `syncSchema()` applies the safe remainder and records baselines, then
72
+ * `after = planSchema()` must not block.
73
+ *
74
+ * Throws `MigrationError`. A post-flight failure (`MIGRATION_POSTFLIGHT_FAILED`) means the migrations
75
+ * **committed** and were not rolled back: inspect, then forward-fix or restore a backup.
76
+ */
77
+ runMigrations(migrations: readonly MigrationDefinition[], options?: RunMigrationsOptions): Promise<MigrationReport>;
78
+ /**
79
+ * Read-only preflight (spec 072): validates `migrations` against the `_forge_migrations` ledger and
80
+ * reports each one as `applied`, `failed` or `pending`. Throws the same history/checksum
81
+ * `MigrationError`s `runMigrations` would, before anything runs.
82
+ */
83
+ planMigrations(migrations: readonly MigrationDefinition[]): Promise<MigrationState[]>;
84
+ /** The `_forge_migrations` ledger in position order (spec 072); `[]` when no migration ran. */
85
+ readMigrationHistory(): Promise<MigrationRecord[]>;
86
+ private migrationsUnsupported;
87
+ /** Every table definition this runtime syncs through its database adapter. */
88
+ private tableDefinitions;
89
+ /**
90
+ * The refusal for a blocking plan. Duplicate version identities keep spec 062's domain diagnostic
91
+ * (examples and the inspection query) instead of the generic index conflict.
92
+ */
93
+ private schemaDriftError;
38
94
  /**
39
95
  * Creates/extends one `_versions_<slug>` table additively. Adding its unique
40
96
  * `(documentId, versionNumber)` index fails on a database that already holds duplicate version
41
97
  * identities (only the pre-062 read-then-insert race produced them): history is then reported, never
42
- * deleted, renumbered or merged — the operator decides (spec 062 §8, roadmap 0.7 / M03).
98
+ * deleted, renumbered or merged — the operator decides (spec 062 §8). Planning (spec 070) normally
99
+ * reports this before anything runs; this path covers adapters without `planSchema`.
43
100
  */
44
101
  private syncVersionTable;
45
102
  /** Find a collection definition by slug */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { MigrationError, SchemaDriftError, formatSchemaPlan, isSchemaDriftError, mergeSchemaPlans, planMigrationHistory, prepareMigrations, resolveCollectionIndexes } from '@forge-cms/db';
1
2
  import { isReferenced, noReferenceAssertions, validateRelationSchema } from './relation-lifecycle.js';
2
3
  import * as operations from './operations.js';
3
4
  import { validateLocalizationSchema } from './localization.js';
@@ -83,25 +84,19 @@ export class ForgeCmsRuntime {
83
84
  this.adapters.storage.init(env);
84
85
  return this;
85
86
  }
86
- /** Sync database schema for all registered collections and globals */
87
+ /**
88
+ * Creates and additively upgrades every table the CMS uses: collections, `_global_<slug>`,
89
+ * `_versions_<slug>`, `_forge_storage_intents`, and the auth adapter's own tables.
90
+ *
91
+ * Plan first (spec 070): when the database implements `planSchema`, the whole schema — including the
92
+ * auth adapter's tables — is planned before anything runs. Any change that needs a reviewed
93
+ * migration throws `SchemaDriftError` with **no table touched anywhere**. Otherwise each area is
94
+ * synced (fresh tables and safe additive changes only). A database without `planSchema` keeps its
95
+ * own `syncSchema` behaviour, unplanned.
96
+ */
87
97
  async syncSchema() {
88
- await this.adapters.database.syncSchema(this.config.collections);
89
- await this.adapters.auth.syncSchema?.();
90
- // Durable storage-cleanup intents (spec 067), only where uploads exist.
91
- if (hasUploadCollections(this.config.collections)) {
92
- await this.adapters.database.syncSchema([storageIntentsDefinition()]);
93
- }
94
- for (const global of this.config.globals ?? []) {
95
- await this.adapters.database.syncSchema([
96
- {
97
- slug: `_global_${global.slug}`,
98
- fields: global.fields,
99
- ...(global.drafts === true && { drafts: true })
100
- }
101
- ]);
102
- }
103
- // Version tables for collections with versions enabled (spec 062 §1/§8).
104
98
  const versioned = this.config.collections.filter((c) => versionOps.versionsEnabled(c));
99
+ // Checked before anything is created: history needs a document and its snapshot to commit together.
105
100
  if (versioned.length > 0) {
106
101
  const database = this.adapters.database;
107
102
  if (typeof database.atomicWrite !== 'function') {
@@ -110,15 +105,185 @@ export class ForgeCmsRuntime {
110
105
  `snapshot must commit together (specs 060/062); '${String(database.name)}' does not.`);
111
106
  }
112
107
  }
108
+ if (typeof this.adapters.database.planSchema === 'function') {
109
+ const plan = await this.planSchema();
110
+ if (plan.blocking)
111
+ throw await this.schemaDriftError(plan);
112
+ }
113
+ await this.adapters.database.syncSchema(this.config.collections);
114
+ await this.adapters.auth.syncSchema?.();
115
+ // Durable storage-cleanup intents (spec 067), only where uploads exist.
116
+ if (hasUploadCollections(this.config.collections)) {
117
+ await this.adapters.database.syncSchema([storageIntentsDefinition()]);
118
+ }
119
+ for (const global of this.config.globals ?? []) {
120
+ await this.adapters.database.syncSchema([globalTableDefinition(global)]);
121
+ }
122
+ // Version tables for collections with versions enabled (spec 062 §1/§8).
113
123
  for (const collection of versioned) {
114
124
  await this.syncVersionTable(collection);
115
125
  }
116
126
  }
127
+ /**
128
+ * The complete schema drift plan (spec 070) for every table {@link syncSchema} manages, merged with
129
+ * the auth adapter's own (`AuthAdapter.planSchema`). Read-only: inspects the database and runs
130
+ * aggregate probes, never DDL or writes. Throws when the database adapter cannot inspect its
131
+ * persisted schema — an uninspectable schema is never reported as compatible.
132
+ */
133
+ async planSchema() {
134
+ const database = this.adapters.database;
135
+ if (typeof database.planSchema !== 'function') {
136
+ throw new Error(`The '${database.name}' database adapter cannot inspect its persisted schema: it does not ` +
137
+ `implement DatabaseAdapter.planSchema() (spec 070), so ForgeCMS cannot tell whether that ` +
138
+ `schema is compatible with this configuration.`);
139
+ }
140
+ const plans = [await database.planSchema(this.tableDefinitions())];
141
+ const auth = await this.adapters.auth.planSchema?.();
142
+ if (auth)
143
+ plans.push(auth);
144
+ return mergeSchemaPlans(plans);
145
+ }
146
+ /**
147
+ * Runs reviewed migrations (spec 072) — the one supported way to apply changes `syncSchema()` refuses.
148
+ * An explicit deployment/maintenance step: `init()` and `syncSchema()` never call it.
149
+ *
150
+ * 1. Validates every definition (no I/O).
151
+ * 2. Preflight: `before = planSchema()`, the drift the migrations are meant to resolve.
152
+ * 3. The database adapter runs each pending migration as one transactional batch together with its
153
+ * `_forge_migrations` ledger entry (`DatabaseAdapter.runMigrations`).
154
+ * 4. Post-flight: `syncSchema()` applies the safe remainder and records baselines, then
155
+ * `after = planSchema()` must not block.
156
+ *
157
+ * Throws `MigrationError`. A post-flight failure (`MIGRATION_POSTFLIGHT_FAILED`) means the migrations
158
+ * **committed** and were not rolled back: inspect, then forward-fix or restore a backup.
159
+ */
160
+ async runMigrations(migrations, options = {}) {
161
+ await prepareMigrations(migrations);
162
+ const database = this.adapters.database;
163
+ if (typeof database.runMigrations !== 'function')
164
+ throw this.migrationsUnsupported();
165
+ const before = await this.planSchema();
166
+ const results = await database.runMigrations(migrations, options);
167
+ const committed = results.filter((r) => r.outcome !== 'already-applied');
168
+ const postflight = (plan, cause) => new MigrationError({
169
+ code: 'MIGRATION_POSTFLIGHT_FAILED',
170
+ phase: 'postflight',
171
+ status: committed.length > 0 ? 'applied' : 'not-applied',
172
+ results,
173
+ ...(plan !== undefined && { plan }),
174
+ message: (committed.length > 0
175
+ ? `${committed.length} migration(s) committed (${committed.map((r) => `"${r.id}"`).join(', ')}) ` +
176
+ 'and were NOT rolled back, but '
177
+ : 'No migration was pending, and ') +
178
+ 'the schema still does not match this configuration. Inspect the plan, then forward-fix with ' +
179
+ 'a new migration or restore a backup. Deploying older application code does not revert the ' +
180
+ 'database.' +
181
+ (plan !== undefined ? `\n\n${formatSchemaPlan(plan)}` : '')
182
+ }, cause !== undefined ? { cause } : undefined);
183
+ try {
184
+ await this.syncSchema();
185
+ }
186
+ catch (err) {
187
+ throw postflight(isSchemaDriftError(err) ? err.plan : undefined, err);
188
+ }
189
+ let after;
190
+ try {
191
+ after = await this.planSchema();
192
+ }
193
+ catch (err) {
194
+ throw postflight(undefined, err);
195
+ }
196
+ if (after.blocking)
197
+ throw postflight(after);
198
+ return { before, results, after };
199
+ }
200
+ /**
201
+ * Read-only preflight (spec 072): validates `migrations` against the `_forge_migrations` ledger and
202
+ * reports each one as `applied`, `failed` or `pending`. Throws the same history/checksum
203
+ * `MigrationError`s `runMigrations` would, before anything runs.
204
+ */
205
+ async planMigrations(migrations) {
206
+ const prepared = await prepareMigrations(migrations);
207
+ const history = await this.readMigrationHistory();
208
+ return planMigrationHistory(history, prepared).states;
209
+ }
210
+ /** The `_forge_migrations` ledger in position order (spec 072); `[]` when no migration ran. */
211
+ async readMigrationHistory() {
212
+ const database = this.adapters.database;
213
+ if (typeof database.readMigrationHistory !== 'function')
214
+ throw this.migrationsUnsupported();
215
+ return database.readMigrationHistory();
216
+ }
217
+ migrationsUnsupported() {
218
+ return new MigrationError({
219
+ code: 'MIGRATION_UNSUPPORTED',
220
+ phase: 'preflight',
221
+ status: 'not-applied',
222
+ message: `The '${this.adapters.database.name}' database adapter cannot run reviewed migrations: it does ` +
223
+ 'not implement DatabaseAdapter.runMigrations()/readMigrationHistory() (spec 072). Use ' +
224
+ 'LibSqlDatabaseAdapter or D1DatabaseAdapter; InMemoryDatabaseAdapter persists nothing to migrate.'
225
+ });
226
+ }
227
+ /** Every table definition this runtime syncs through its database adapter. */
228
+ tableDefinitions() {
229
+ return [
230
+ ...this.config.collections,
231
+ ...(hasUploadCollections(this.config.collections) ? [storageIntentsDefinition()] : []),
232
+ ...(this.config.globals ?? []).map(globalTableDefinition),
233
+ ...this.config.collections
234
+ .filter((c) => versionOps.versionsEnabled(c))
235
+ .map((c) => versionOps.versionCollectionDefinition(c.slug))
236
+ ];
237
+ }
238
+ /**
239
+ * The refusal for a blocking plan. Duplicate version identities keep spec 062's domain diagnostic
240
+ * (examples and the inspection query) instead of the generic index conflict.
241
+ */
242
+ async schemaDriftError(plan) {
243
+ for (const collection of this.config.collections.filter((c) => versionOps.versionsEnabled(c))) {
244
+ const definition = versionOps.versionCollectionDefinition(collection.slug);
245
+ const identityIndex = resolveCollectionIndexes(definition)[0]?.name;
246
+ const conflict = plan.changes.find((change) => change.table === definition.slug &&
247
+ change.target.name === identityIndex &&
248
+ (change.duplicateGroups ?? 0) > 0);
249
+ if (!conflict)
250
+ continue;
251
+ try {
252
+ // Registers just the identity columns with the adapter so the scan can read them (the blocked
253
+ // plan added none of the table's new columns). This sync blocks by construction, whatever
254
+ // another process does meanwhile: the stored version table always has `data`/`createdAt`,
255
+ // which this definition omits (`column-removed`). So it runs no DDL and writes no baseline.
256
+ // Like any refused sync, it leaves the adapter unfit for use until a sync succeeds; that
257
+ // successful sync registers the full definition again.
258
+ const identity = definition.fields;
259
+ await this.adapters.database
260
+ .syncSchema([
261
+ {
262
+ ...definition,
263
+ fields: {
264
+ ...(identity.documentId && { documentId: identity.documentId }),
265
+ ...(identity.versionNumber && { versionNumber: identity.versionNumber })
266
+ }
267
+ }
268
+ ])
269
+ .catch(() => undefined);
270
+ const duplicates = await versionOps.findDuplicateVersionIdentities(this.adapters.database, definition.slug);
271
+ if (duplicates.length > 0) {
272
+ return new SchemaDriftError(plan, `${duplicateVersionMessage(definition.slug, duplicates)}\n\n${formatSchemaPlan(plan)}`);
273
+ }
274
+ }
275
+ catch {
276
+ // Fall through to the generic report, which still names the conflict.
277
+ }
278
+ }
279
+ return new SchemaDriftError(plan);
280
+ }
117
281
  /**
118
282
  * Creates/extends one `_versions_<slug>` table additively. Adding its unique
119
283
  * `(documentId, versionNumber)` index fails on a database that already holds duplicate version
120
284
  * identities (only the pre-062 read-then-insert race produced them): history is then reported, never
121
- * deleted, renumbered or merged — the operator decides (spec 062 §8, roadmap 0.7 / M03).
285
+ * deleted, renumbered or merged — the operator decides (spec 062 §8). Planning (spec 070) normally
286
+ * reports this before anything runs; this path covers adapters without `planSchema`.
122
287
  */
123
288
  async syncVersionTable(collection) {
124
289
  const definition = versionOps.versionCollectionDefinition(collection.slug);
@@ -135,17 +300,7 @@ export class ForgeCmsRuntime {
135
300
  }
136
301
  if (duplicates.length === 0)
137
302
  throw err;
138
- const examples = duplicates
139
- .slice(0, 5)
140
- .map((d) => `document "${d.documentId}" version ${d.versionNumber} (${d.rows} rows)`)
141
- .join('; ');
142
- throw new Error(`Cannot add the unique (documentId, versionNumber) index to "${definition.slug}": it already ` +
143
- `contains ${duplicates.length} duplicate version ${duplicates.length === 1 ? 'identity' : 'identities'} ` +
144
- `— e.g. ${examples}. They were produced by concurrent updates before ForgeCMS enforced ` +
145
- `version identity. ForgeCMS will not delete, renumber or merge version history automatically. ` +
146
- `Inspect them with: SELECT "documentId", "versionNumber", COUNT(*) FROM "${definition.slug}" ` +
147
- `GROUP BY "documentId", "versionNumber" HAVING COUNT(*) > 1; decide which rows to keep ` +
148
- `(renumber or delete the extras after taking a backup), then restart.`, { cause: err });
303
+ throw new Error(duplicateVersionMessage(definition.slug, duplicates), { cause: err });
149
304
  }
150
305
  }
151
306
  /** Find a collection definition by slug */
@@ -237,4 +392,26 @@ export class ForgeCmsRuntime {
237
392
  return operations.preview(this, args);
238
393
  }
239
394
  }
395
+ /** The internal table a global is stored in. */
396
+ function globalTableDefinition(global) {
397
+ return {
398
+ slug: `_global_${global.slug}`,
399
+ fields: global.fields,
400
+ ...(global.drafts === true && { drafts: true })
401
+ };
402
+ }
403
+ /** Spec 062's diagnostic for historical duplicate version identities. */
404
+ function duplicateVersionMessage(slug, duplicates) {
405
+ const examples = duplicates
406
+ .slice(0, 5)
407
+ .map((d) => `document "${d.documentId}" version ${d.versionNumber} (${d.rows} rows)`)
408
+ .join('; ');
409
+ return (`Cannot add the unique (documentId, versionNumber) index to "${slug}": it already ` +
410
+ `contains ${duplicates.length} duplicate version ${duplicates.length === 1 ? 'identity' : 'identities'} ` +
411
+ `— e.g. ${examples}. They were produced by concurrent updates before ForgeCMS enforced ` +
412
+ `version identity. ForgeCMS will not delete, renumber or merge version history automatically. ` +
413
+ `Inspect them with: SELECT "documentId", "versionNumber", COUNT(*) FROM "${slug}" ` +
414
+ `GROUP BY "documentId", "versionNumber" HAVING COUNT(*) > 1; decide which rows to keep ` +
415
+ `(renumber or delete the extras after taking a backup), then restart.`);
416
+ }
240
417
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge-cms/runtime",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Runtime orchestrator for ForgeCMS — binds schema, adapters, and handlers.",
5
5
  "author": "ForgeCMS contributors",
6
6
  "license": "MIT",
@@ -35,17 +35,17 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@forge-cms/api": "0.7.0",
39
- "@forge-cms/auth": "0.7.0",
40
- "@forge-cms/core": "0.7.0",
41
- "@forge-cms/db": "0.7.0",
42
- "@forge-cms/storage": "0.7.0"
38
+ "@forge-cms/api": "0.8.1",
39
+ "@forge-cms/auth": "0.8.1",
40
+ "@forge-cms/storage": "0.8.1",
41
+ "@forge-cms/core": "0.8.1",
42
+ "@forge-cms/db": "0.8.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@libsql/client": "0.17.3",
46
46
  "typescript": "5.9.2",
47
47
  "vitest": "4.1.6",
48
- "@forge-cms/testing": "0.7.0"
48
+ "@forge-cms/testing": "0.8.1"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "tsc -p tsconfig.build.json",