@actuate-media/cli 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > @actuate-media/cli@0.6.0 build /home/runner/work/actuatecms/actuatecms/packages/cli
2
+ > @actuate-media/cli@0.7.0 build /home/runner/work/actuatecms/actuatecms/packages/cli
3
3
  > tsc
4
4
 
@@ -1,24 +1,24 @@
1
1
 
2
- > @actuate-media/cli@0.6.0 test /home/runner/work/actuatecms/actuatecms/packages/cli
2
+ > @actuate-media/cli@0.7.0 test /home/runner/work/actuatecms/actuatecms/packages/cli
3
3
  > vitest run
4
4
 
5
5
 
6
6
   RUN  v4.1.8 /home/runner/work/actuatecms/actuatecms/packages/cli
7
7
 
8
- ✓ dist/__tests__/db-sync.test.js (6 tests) 503ms
9
- ✓ src/__tests__/db-sync.test.ts (6 tests) 434ms
8
+ ✓ dist/__tests__/db-sync.test.js (6 tests) 423ms
9
+ ✓ src/__tests__/db-sync.test.ts (6 tests) 330ms
10
10
  - Reading canonical Actuate schema...
11
11
  ✔ Actuate CMS models added to schema.
12
+ - Running prisma generate...
12
13
  stdout | dist/__tests__/db-init.test.js > db:init (WS-D D5 — canonical schema, no stale fragment) > command > injects canonical models with @@map and no duplicate datasource/generator
13
14
  ✔ Prisma client generated.
14
15
  ℹ Run `npx prisma migrate dev --name actuate-cms` to create the migration.
15
16
 
16
- - Running prisma generate...
17
17
  - Reading canonical Actuate schema...
18
+ ✖ Could not locate @actuate-media/cms-core.
18
19
  stdout | dist/__tests__/db-init.test.js > db:init (WS-D D5 — canonical schema, no stale fragment) > command > fails clearly when cms-core cannot be located
19
20
  ℹ Install it first: `npm install @actuate-media/cms-core`.
20
21
 
21
- ✖ Could not locate @actuate-media/cms-core.
22
22
  - Reading canonical Actuate schema...
23
23
  ✔ Actuate CMS models added to schema.
24
24
  stdout | dist/__tests__/db-init.test.js > db:init (WS-D D5 — canonical schema, no stale fragment) > command > is idempotent without --force
@@ -28,33 +28,33 @@
28
28
  - Running prisma generate...
29
29
  - Reading canonical Actuate schema...
30
30
  ℹ Actuate CMS models already present in schema. Use --force to overwrite.
31
- ✓ dist/__tests__/db-init.test.js (4 tests) 238ms
31
+ ✓ dist/__tests__/db-init.test.js (4 tests) 183ms
32
32
  - Reading canonical Actuate schema...
33
33
  ✔ Actuate CMS models added to schema.
34
- - Running prisma generate...
35
34
  stdout | src/__tests__/db-init.test.ts > db:init (WS-D D5 — canonical schema, no stale fragment) > command > injects canonical models with @@map and no duplicate datasource/generator
35
+ - Running prisma generate...
36
36
  ✔ Prisma client generated.
37
37
  ℹ Run `npx prisma migrate dev --name actuate-cms` to create the migration.
38
38
 
39
- - Reading canonical Actuate schema...
40
- ✖ Could not locate @actuate-media/cms-core.
41
39
  stdout | src/__tests__/db-init.test.ts > db:init (WS-D D5 — canonical schema, no stale fragment) > command > fails clearly when cms-core cannot be located
42
40
  ℹ Install it first: `npm install @actuate-media/cms-core`.
43
41
 
44
42
  - Reading canonical Actuate schema...
45
- ✔ Actuate CMS models added to schema.
46
- - Running prisma generate...
43
+ ✖ Could not locate @actuate-media/cms-core.
44
+ - Reading canonical Actuate schema...
47
45
  stdout | src/__tests__/db-init.test.ts > db:init (WS-D D5 — canonical schema, no stale fragment) > command > is idempotent without --force
48
46
  ✔ Prisma client generated.
49
47
  ℹ Run `npx prisma migrate dev --name actuate-cms` to create the migration.
50
48
 
49
+ ✔ Actuate CMS models added to schema.
50
+ - Running prisma generate...
51
51
  - Reading canonical Actuate schema...
52
52
  ℹ Actuate CMS models already present in schema. Use --force to overwrite.
53
- ✓ src/__tests__/db-init.test.ts (4 tests) 199ms
54
- ✓ dist/__tests__/seed.test.js (5 tests) 57ms
55
- ✓ dist/__tests__/deployment-diagnostics.test.js (5 tests) 40ms
56
- ✓ src/__tests__/deployment-diagnostics.test.ts (5 tests) 31ms
57
- ✓ src/__tests__/seed.test.ts (5 tests) 50ms
53
+ ✓ src/__tests__/db-init.test.ts (4 tests) 259ms
54
+ ✓ dist/__tests__/seed.test.js (5 tests) 88ms
55
+ ✓ dist/__tests__/deployment-diagnostics.test.js (5 tests) 61ms
56
+ ✓ src/__tests__/deployment-diagnostics.test.ts (5 tests) 60ms
57
+ ✓ src/__tests__/seed.test.ts (5 tests) 192ms
58
58
  - Reading canonical Actuate schema...
59
59
  ✔ Actuate CMS models added to schema.
60
60
  - Running prisma generate...
@@ -62,20 +62,20 @@
62
62
  ✔ Prisma client generated.
63
63
  ℹ Run `npx prisma migrate dev --name actuate-cms` to create the migration.
64
64
 
65
- ✓ dist/__tests__/schema-fragment.test.js (1 test) 134ms
65
+ ✓ dist/__tests__/schema-fragment.test.js (1 test) 149ms
66
66
  - Reading canonical Actuate schema...
67
67
  ✔ Actuate CMS models added to schema.
68
- - Running prisma generate...
69
68
  stdout | src/__tests__/schema-fragment.test.ts > db:init schema fragment > injects all deploy-critical Actuate models
70
69
  ✔ Prisma client generated.
71
70
  ℹ Run `npx prisma migrate dev --name actuate-cms` to create the migration.
71
+ - Running prisma generate...
72
72
 
73
- ✓ src/__tests__/schema-fragment.test.ts (1 test) 136ms
74
- ✓ dist/__tests__/init.test.js (2 tests) 38ms
75
- ✓ src/__tests__/init.test.ts (2 tests) 26ms
73
+ ✓ src/__tests__/schema-fragment.test.ts (1 test) 233ms
74
+ ✓ dist/__tests__/init.test.js (2 tests) 62ms
75
+ ✓ src/__tests__/init.test.ts (2 tests) 148ms
76
76
 
77
77
   Test Files  12 passed (12)
78
78
   Tests  46 passed (46)
79
-  Start at  15:43:03
80
-  Duration  15.70s (transform 1.80s, setup 0ms, import 4.69s, tests 1.88s, environment 7ms)
79
+  Start at  02:17:00
80
+  Duration  21.65s (transform 2.28s, setup 0ms, import 6.52s, tests 2.19s, environment 11ms)
81
81
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @actuate-media/cli
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - aa4bd1a: Unify the page content model at write time (ADR 0002). Visual Page-Builder pages now compile their `_layout` tree to the canonical `data.sections[]` on every save, so every reader (SDK, MCP, search, content graph, `/resolve`) sees one contract instead of the lazy read-time bridge.
8
+ - **cms-core**: `createDocument`/`updateDocument` derive `sections` from a `layout` envelope; the `/page-sections/*` write routes refuse a builder-owned page (one with `_layout`) with HTTP 409 to prevent silently-overwritten edits; the `/resolve` bridge is now a legacy fallback for un-migrated pages. New `migratePageBuilderSections()` export backfills legacy pages (idempotent).
9
+ - **cms-admin**: the flat Page Editor opens a builder-owned page read-only with an "Open in Page Builder" action; `EditorPage` gains a `builderOwned` flag.
10
+ - **cli**: new `actuate migrate:sections` command (with `--dry-run` / `--batch-size`) to backfill canonical sections for legacy page-builder documents.
11
+
3
12
  ## 0.6.0
4
13
 
5
14
  ### Minor Changes
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMigrateSectionsCommand(program: Command): void;
3
+ //# sourceMappingURL=migrate-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-sections.d.ts","sourceRoot":"","sources":["../../src/commands/migrate-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+DnC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASrE"}
@@ -0,0 +1,56 @@
1
+ import ora from 'ora';
2
+ import { logger } from '../utils/logger.js';
3
+ import { connectProjectDatabase } from '../utils/database.js';
4
+ /**
5
+ * `actuate migrate:sections` — backfill canonical `data.sections` for legacy
6
+ * page-builder documents (ADR 0002). Idempotent: safe to re-run.
7
+ */
8
+ async function runMigrateSections(options) {
9
+ const dryRun = options.dryRun ?? false;
10
+ const batchSize = options.batchSize ? Number.parseInt(options.batchSize, 10) : undefined;
11
+ if (batchSize !== undefined && (!Number.isFinite(batchSize) || batchSize <= 0)) {
12
+ logger.error('--batch-size must be a positive integer.');
13
+ process.exit(1);
14
+ }
15
+ let connection = null;
16
+ const spinner = ora(dryRun ? 'Scanning page-builder documents (dry run)…' : 'Backfilling page sections…').start();
17
+ try {
18
+ connection = await connectProjectDatabase();
19
+ const db = connection.db;
20
+ const { migratePageBuilderSections } = await import('@actuate-media/cms-core');
21
+ // Run as the system admin so per-collection update access is satisfied.
22
+ const admin = await db.user.findFirst({ where: { role: 'ADMIN' } });
23
+ if (!admin) {
24
+ spinner.fail('No ADMIN user found. Create an admin (setup wizard or seed) first.');
25
+ process.exit(1);
26
+ }
27
+ const ctx = { userId: admin.id, role: 'ADMIN', db };
28
+ const result = await migratePageBuilderSections(ctx, { dryRun, batchSize });
29
+ spinner.succeed(dryRun
30
+ ? `Dry run complete — ${result.migrated} document(s) would be migrated.`
31
+ : `Migrated ${result.migrated} document(s).`);
32
+ logger.info(` Scanned: ${result.scanned}`);
33
+ logger.info(` Migrated: ${result.migrated}`);
34
+ logger.info(` Skipped: ${result.skipped}`);
35
+ if (result.migratedIds.length > 0) {
36
+ logger.info(` IDs: ${result.migratedIds.join(', ')}`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ const message = err instanceof Error ? err.message : String(err);
41
+ spinner.fail(`Section migration failed: ${message}`);
42
+ process.exit(1);
43
+ }
44
+ finally {
45
+ await connection?.disconnect();
46
+ }
47
+ }
48
+ export function registerMigrateSectionsCommand(program) {
49
+ program
50
+ .command('migrate:sections')
51
+ .description('Backfill canonical page sections for legacy page-builder documents (ADR 0002). Idempotent.')
52
+ .option('--dry-run', 'Report what would change without writing')
53
+ .option('--batch-size <n>', 'Documents to scan per DB page (default 100)')
54
+ .action(runMigrateSections);
55
+ }
56
+ //# sourceMappingURL=migrate-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-sections.js","sourceRoot":"","sources":["../../src/commands/migrate-sections.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/commands/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+JnC,eAAO,MAAM,gBAAgB;;;;;;;;;GAoB5B,CAAA;AAaD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,sBAAsB,EAAE,CAAA;IACnC,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAChC;AAyBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,qBAAqB,CAkC7E;AA8HD,wBAAsB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBtE;AAoBD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgCf;AAqHD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe1D"}
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/commands/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+JnC,eAAO,MAAM,gBAAgB;;;;;;;;;GAoB5B,CAAA;AAaD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,sBAAsB,EAAE,CAAA;IACnC,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAChC;AAyBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,qBAAqB,CAkC7E;AAwED,wBAAsB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBtE;AAoBD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgCf;AAqHD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe1D"}
@@ -1,11 +1,11 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
- import { createRequire } from 'node:module';
4
3
  import path from 'node:path';
5
4
  import { createInterface } from 'node:readline/promises';
6
5
  import { pathToFileURL } from 'node:url';
7
6
  import ora from 'ora';
8
7
  import { logger } from '../utils/logger.js';
8
+ import { connectProjectDatabase } from '../utils/database.js';
9
9
  async function confirm(question) {
10
10
  const rl = createInterface({ input: process.stdin, output: process.stdout });
11
11
  const answer = await rl.question(`${question} (y/N) `);
@@ -248,7 +248,7 @@ async function runSeed(options) {
248
248
  }
249
249
  let seededDb = null;
250
250
  try {
251
- seededDb = await getSeedDatabase();
251
+ seededDb = await connectProjectDatabase();
252
252
  const db = seededDb.db;
253
253
  if (options.reset) {
254
254
  const yes = await confirm('This will delete ALL existing documents and versions. Continue?');
@@ -280,44 +280,6 @@ async function runSeed(options) {
280
280
  await seededDb?.disconnect();
281
281
  }
282
282
  }
283
- async function getSeedDatabase() {
284
- const { getDB, initDB, isDBInitialized } = await import('@actuate-media/cms-core');
285
- if (isDBInitialized()) {
286
- return { db: getDB(), disconnect: async () => { } };
287
- }
288
- const db = await createProjectPrismaClient();
289
- initDB(db);
290
- return {
291
- db,
292
- disconnect: async () => {
293
- if (typeof db.$disconnect === 'function') {
294
- await db.$disconnect();
295
- }
296
- },
297
- };
298
- }
299
- async function createProjectPrismaClient() {
300
- if (!process.env.DATABASE_URL) {
301
- throw new Error('DATABASE_URL is required to run seed/populate.');
302
- }
303
- const requireFromProject = createRequire(path.join(process.cwd(), 'package.json'));
304
- const generatedClient = path.resolve('generated', 'prisma', 'client.ts');
305
- if (existsSync(generatedClient)) {
306
- const [{ tsImport }, adapterModule, pgModule] = await Promise.all([
307
- import('tsx/esm/api'),
308
- import(pathToFileURL(requireFromProject.resolve('@prisma/adapter-pg')).href),
309
- import(pathToFileURL(requireFromProject.resolve('pg')).href),
310
- ]);
311
- const { PrismaClient } = (await tsImport(pathToFileURL(generatedClient).href, import.meta.url));
312
- const { PrismaPg } = adapterModule;
313
- const pg = pgModule.default ?? pgModule;
314
- const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });
315
- const adapter = new PrismaPg(pool);
316
- return new PrismaClient({ adapter });
317
- }
318
- const clientModule = (await import(pathToFileURL(requireFromProject.resolve('@prisma/client')).href));
319
- return new clientModule.PrismaClient();
320
- }
321
283
  export async function ensureSeedAdmin(db) {
322
284
  const existing = await db.user.findFirst({ where: { role: 'ADMIN' } });
323
285
  if (existing)
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/commands/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/commands/seed.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
3
  import { registerMigrateCommand } from './commands/migrate.js';
4
+ import { registerMigrateSectionsCommand } from './commands/migrate-sections.js';
4
5
  import { registerGenerateCommand } from './commands/generate.js';
5
6
  import { registerSeedCommand } from './commands/seed.js';
6
7
  import { registerImportCommand } from './commands/import.js';
@@ -18,6 +19,7 @@ program
18
19
  .description('Actuate CMS — CLI toolkit for migrations, codegen, and more')
19
20
  .version('0.1.0');
20
21
  registerMigrateCommand(program);
22
+ registerMigrateSectionsCommand(program);
21
23
  registerGenerateCommand(program);
22
24
  registerSeedCommand(program);
23
25
  registerImportCommand(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,8BAA8B,CAAC,OAAO,CAAC,CAAA;AACvC,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared helper for CLI commands that need a live connection to the consumer
3
+ * project's database (seed, populate, data migrations…).
4
+ *
5
+ * Resolution order mirrors how a scaffolded Actuate project exposes Prisma:
6
+ * 1. If `cms-core` already has an initialized client (e.g. set up by the host
7
+ * app in-process), reuse it.
8
+ * 2. Otherwise build a client from the project's generated Prisma client
9
+ * (`generated/prisma/client.ts`, Prisma 7 + pg driver adapter).
10
+ * 3. Fall back to a plain `@prisma/client` resolved from the project.
11
+ *
12
+ * The returned `disconnect()` only tears down clients this helper created — a
13
+ * pre-initialized in-process client is left untouched.
14
+ */
15
+ export declare function connectProjectDatabase(): Promise<{
16
+ db: any;
17
+ disconnect: () => Promise<void>;
18
+ }>;
19
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IAEtD,EAAE,EAAE,GAAG,CAAA;IACP,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC,CAAC,CAiBD"}
@@ -0,0 +1,58 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
4
+ import { pathToFileURL } from 'node:url';
5
+ /**
6
+ * Shared helper for CLI commands that need a live connection to the consumer
7
+ * project's database (seed, populate, data migrations…).
8
+ *
9
+ * Resolution order mirrors how a scaffolded Actuate project exposes Prisma:
10
+ * 1. If `cms-core` already has an initialized client (e.g. set up by the host
11
+ * app in-process), reuse it.
12
+ * 2. Otherwise build a client from the project's generated Prisma client
13
+ * (`generated/prisma/client.ts`, Prisma 7 + pg driver adapter).
14
+ * 3. Fall back to a plain `@prisma/client` resolved from the project.
15
+ *
16
+ * The returned `disconnect()` only tears down clients this helper created — a
17
+ * pre-initialized in-process client is left untouched.
18
+ */
19
+ export async function connectProjectDatabase() {
20
+ const { getDB, initDB, isDBInitialized } = await import('@actuate-media/cms-core');
21
+ if (isDBInitialized()) {
22
+ return { db: getDB(), disconnect: async () => { } };
23
+ }
24
+ const db = await createProjectPrismaClient();
25
+ initDB(db);
26
+ return {
27
+ db,
28
+ disconnect: async () => {
29
+ if (typeof db.$disconnect === 'function') {
30
+ await db.$disconnect();
31
+ }
32
+ },
33
+ };
34
+ }
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see above.
36
+ async function createProjectPrismaClient() {
37
+ if (!process.env.DATABASE_URL) {
38
+ throw new Error('DATABASE_URL is required to connect to the project database.');
39
+ }
40
+ const requireFromProject = createRequire(path.join(process.cwd(), 'package.json'));
41
+ const generatedClient = path.resolve('generated', 'prisma', 'client.ts');
42
+ if (existsSync(generatedClient)) {
43
+ const [{ tsImport }, adapterModule, pgModule] = await Promise.all([
44
+ import('tsx/esm/api'),
45
+ import(pathToFileURL(requireFromProject.resolve('@prisma/adapter-pg')).href),
46
+ import(pathToFileURL(requireFromProject.resolve('pg')).href),
47
+ ]);
48
+ const { PrismaClient } = (await tsImport(pathToFileURL(generatedClient).href, import.meta.url));
49
+ const { PrismaPg } = adapterModule;
50
+ const pg = pgModule.default ?? pgModule;
51
+ const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });
52
+ const adapter = new PrismaPg(pool);
53
+ return new PrismaClient({ adapter });
54
+ }
55
+ const clientModule = (await import(pathToFileURL(requireFromProject.resolve('@prisma/client')).href));
56
+ return new clientModule.PrismaClient();
57
+ }
58
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAK1C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAElF,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,yBAAyB,EAAE,CAAA;IAC5C,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,OAAO;QACL,EAAE;QACF,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAA;YACxB,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,yBAAyB;IACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;IAClF,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAExE,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC;YACrB,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SAC7D,CAAC,CAAA;QACF,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,QAAQ,CACtC,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,EACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAEA,CAAA;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,aAA6D,CAAA;QAClF,MAAM,EAAE,GAAI,QAA0C,CAAC,OAAO,IAAI,QAAQ,CAAA;QAC1E,MAAM,IAAI,GAAG,IAAK,EAAU,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;QACjF,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAS,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAChC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CACjE,CAEA,CAAA;IACD,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAA;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "CLI for Actuate CMS — migrations, codegen, imports, exports, and upgrades",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "devDependencies": {
29
29
  "typescript": "^5.7.0",
30
30
  "vitest": "^4.1.0",
31
- "@actuate-media/cms-core": "0.51.0"
31
+ "@actuate-media/cms-core": "0.53.0"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "tsc",
@@ -0,0 +1,73 @@
1
+ import { Command } from 'commander'
2
+ import ora from 'ora'
3
+ import { logger } from '../utils/logger.js'
4
+ import { connectProjectDatabase } from '../utils/database.js'
5
+
6
+ interface MigrateSectionsOptions {
7
+ dryRun?: boolean
8
+ batchSize?: string
9
+ }
10
+
11
+ /**
12
+ * `actuate migrate:sections` — backfill canonical `data.sections` for legacy
13
+ * page-builder documents (ADR 0002). Idempotent: safe to re-run.
14
+ */
15
+ async function runMigrateSections(options: MigrateSectionsOptions): Promise<void> {
16
+ const dryRun = options.dryRun ?? false
17
+ const batchSize = options.batchSize ? Number.parseInt(options.batchSize, 10) : undefined
18
+ if (batchSize !== undefined && (!Number.isFinite(batchSize) || batchSize <= 0)) {
19
+ logger.error('--batch-size must be a positive integer.')
20
+ process.exit(1)
21
+ }
22
+
23
+ let connection: { db: any; disconnect: () => Promise<void> } | null = null
24
+ const spinner = ora(
25
+ dryRun ? 'Scanning page-builder documents (dry run)…' : 'Backfilling page sections…',
26
+ ).start()
27
+
28
+ try {
29
+ connection = await connectProjectDatabase()
30
+ const db = connection.db
31
+
32
+ const { migratePageBuilderSections } = await import('@actuate-media/cms-core')
33
+
34
+ // Run as the system admin so per-collection update access is satisfied.
35
+ const admin = await db.user.findFirst({ where: { role: 'ADMIN' } })
36
+ if (!admin) {
37
+ spinner.fail('No ADMIN user found. Create an admin (setup wizard or seed) first.')
38
+ process.exit(1)
39
+ }
40
+
41
+ const ctx = { userId: admin.id, role: 'ADMIN', db }
42
+ const result = await migratePageBuilderSections(ctx, { dryRun, batchSize })
43
+
44
+ spinner.succeed(
45
+ dryRun
46
+ ? `Dry run complete — ${result.migrated} document(s) would be migrated.`
47
+ : `Migrated ${result.migrated} document(s).`,
48
+ )
49
+ logger.info(` Scanned: ${result.scanned}`)
50
+ logger.info(` Migrated: ${result.migrated}`)
51
+ logger.info(` Skipped: ${result.skipped}`)
52
+ if (result.migratedIds.length > 0) {
53
+ logger.info(` IDs: ${result.migratedIds.join(', ')}`)
54
+ }
55
+ } catch (err) {
56
+ const message = err instanceof Error ? err.message : String(err)
57
+ spinner.fail(`Section migration failed: ${message}`)
58
+ process.exit(1)
59
+ } finally {
60
+ await connection?.disconnect()
61
+ }
62
+ }
63
+
64
+ export function registerMigrateSectionsCommand(program: Command): void {
65
+ program
66
+ .command('migrate:sections')
67
+ .description(
68
+ 'Backfill canonical page sections for legacy page-builder documents (ADR 0002). Idempotent.',
69
+ )
70
+ .option('--dry-run', 'Report what would change without writing')
71
+ .option('--batch-size <n>', 'Documents to scan per DB page (default 100)')
72
+ .action(runMigrateSections)
73
+ }
@@ -1,12 +1,12 @@
1
1
  import { Command } from 'commander'
2
2
  import { readFile } from 'node:fs/promises'
3
3
  import { existsSync } from 'node:fs'
4
- import { createRequire } from 'node:module'
5
4
  import path from 'node:path'
6
5
  import { createInterface } from 'node:readline/promises'
7
6
  import { pathToFileURL } from 'node:url'
8
7
  import ora from 'ora'
9
8
  import { logger } from '../utils/logger.js'
9
+ import { connectProjectDatabase } from '../utils/database.js'
10
10
 
11
11
  async function confirm(question: string): Promise<boolean> {
12
12
  const rl = createInterface({ input: process.stdin, output: process.stdout })
@@ -300,7 +300,7 @@ async function runSeed(options: SeedOptions): Promise<void> {
300
300
  let seededDb: { db: any; disconnect: () => Promise<void> } | null = null
301
301
 
302
302
  try {
303
- seededDb = await getSeedDatabase()
303
+ seededDb = await connectProjectDatabase()
304
304
  const db = seededDb.db
305
305
 
306
306
  if (options.reset) {
@@ -335,60 +335,6 @@ async function runSeed(options: SeedOptions): Promise<void> {
335
335
  }
336
336
  }
337
337
 
338
- async function getSeedDatabase(): Promise<{ db: any; disconnect: () => Promise<void> }> {
339
- const { getDB, initDB, isDBInitialized } = await import('@actuate-media/cms-core')
340
-
341
- if (isDBInitialized()) {
342
- return { db: getDB<any>(), disconnect: async () => {} }
343
- }
344
-
345
- const db = await createProjectPrismaClient()
346
- initDB(db)
347
- return {
348
- db,
349
- disconnect: async () => {
350
- if (typeof db.$disconnect === 'function') {
351
- await db.$disconnect()
352
- }
353
- },
354
- }
355
- }
356
-
357
- async function createProjectPrismaClient(): Promise<any> {
358
- if (!process.env.DATABASE_URL) {
359
- throw new Error('DATABASE_URL is required to run seed/populate.')
360
- }
361
-
362
- const requireFromProject = createRequire(path.join(process.cwd(), 'package.json'))
363
- const generatedClient = path.resolve('generated', 'prisma', 'client.ts')
364
-
365
- if (existsSync(generatedClient)) {
366
- const [{ tsImport }, adapterModule, pgModule] = await Promise.all([
367
- import('tsx/esm/api'),
368
- import(pathToFileURL(requireFromProject.resolve('@prisma/adapter-pg')).href),
369
- import(pathToFileURL(requireFromProject.resolve('pg')).href),
370
- ])
371
- const { PrismaClient } = (await tsImport(
372
- pathToFileURL(generatedClient).href,
373
- import.meta.url,
374
- )) as {
375
- PrismaClient: new (options?: unknown) => any
376
- }
377
- const { PrismaPg } = adapterModule as { PrismaPg: new (pool: unknown) => unknown }
378
- const pg = (pgModule as { default?: typeof pgModule }).default ?? pgModule
379
- const pool = new (pg as any).Pool({ connectionString: process.env.DATABASE_URL })
380
- const adapter = new PrismaPg(pool)
381
- return new PrismaClient({ adapter } as any)
382
- }
383
-
384
- const clientModule = (await import(
385
- pathToFileURL(requireFromProject.resolve('@prisma/client')).href
386
- )) as {
387
- PrismaClient: new () => any
388
- }
389
- return new clientModule.PrismaClient()
390
- }
391
-
392
338
  export async function ensureSeedAdmin(db: any): Promise<{ id: string }> {
393
339
  const existing = await db.user.findFirst({ where: { role: 'ADMIN' } })
394
340
  if (existing) return existing
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander'
3
3
  import { registerMigrateCommand } from './commands/migrate.js'
4
+ import { registerMigrateSectionsCommand } from './commands/migrate-sections.js'
4
5
  import { registerGenerateCommand } from './commands/generate.js'
5
6
  import { registerSeedCommand } from './commands/seed.js'
6
7
  import { registerImportCommand } from './commands/import.js'
@@ -25,6 +26,7 @@ program
25
26
  .version('0.1.0')
26
27
 
27
28
  registerMigrateCommand(program)
29
+ registerMigrateSectionsCommand(program)
28
30
  registerGenerateCommand(program)
29
31
  registerSeedCommand(program)
30
32
  registerImportCommand(program)
@@ -0,0 +1,77 @@
1
+ import { existsSync } from 'node:fs'
2
+ import { createRequire } from 'node:module'
3
+ import path from 'node:path'
4
+ import { pathToFileURL } from 'node:url'
5
+
6
+ /**
7
+ * Shared helper for CLI commands that need a live connection to the consumer
8
+ * project's database (seed, populate, data migrations…).
9
+ *
10
+ * Resolution order mirrors how a scaffolded Actuate project exposes Prisma:
11
+ * 1. If `cms-core` already has an initialized client (e.g. set up by the host
12
+ * app in-process), reuse it.
13
+ * 2. Otherwise build a client from the project's generated Prisma client
14
+ * (`generated/prisma/client.ts`, Prisma 7 + pg driver adapter).
15
+ * 3. Fall back to a plain `@prisma/client` resolved from the project.
16
+ *
17
+ * The returned `disconnect()` only tears down clients this helper created — a
18
+ * pre-initialized in-process client is left untouched.
19
+ */
20
+ export async function connectProjectDatabase(): Promise<{
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Prisma client shape varies by project; callers treat it structurally.
22
+ db: any
23
+ disconnect: () => Promise<void>
24
+ }> {
25
+ const { getDB, initDB, isDBInitialized } = await import('@actuate-media/cms-core')
26
+
27
+ if (isDBInitialized()) {
28
+ return { db: getDB<any>(), disconnect: async () => {} }
29
+ }
30
+
31
+ const db = await createProjectPrismaClient()
32
+ initDB(db)
33
+ return {
34
+ db,
35
+ disconnect: async () => {
36
+ if (typeof db.$disconnect === 'function') {
37
+ await db.$disconnect()
38
+ }
39
+ },
40
+ }
41
+ }
42
+
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see above.
44
+ async function createProjectPrismaClient(): Promise<any> {
45
+ if (!process.env.DATABASE_URL) {
46
+ throw new Error('DATABASE_URL is required to connect to the project database.')
47
+ }
48
+
49
+ const requireFromProject = createRequire(path.join(process.cwd(), 'package.json'))
50
+ const generatedClient = path.resolve('generated', 'prisma', 'client.ts')
51
+
52
+ if (existsSync(generatedClient)) {
53
+ const [{ tsImport }, adapterModule, pgModule] = await Promise.all([
54
+ import('tsx/esm/api'),
55
+ import(pathToFileURL(requireFromProject.resolve('@prisma/adapter-pg')).href),
56
+ import(pathToFileURL(requireFromProject.resolve('pg')).href),
57
+ ])
58
+ const { PrismaClient } = (await tsImport(
59
+ pathToFileURL(generatedClient).href,
60
+ import.meta.url,
61
+ )) as {
62
+ PrismaClient: new (options?: unknown) => any
63
+ }
64
+ const { PrismaPg } = adapterModule as { PrismaPg: new (pool: unknown) => unknown }
65
+ const pg = (pgModule as { default?: typeof pgModule }).default ?? pgModule
66
+ const pool = new (pg as any).Pool({ connectionString: process.env.DATABASE_URL })
67
+ const adapter = new PrismaPg(pool)
68
+ return new PrismaClient({ adapter } as any)
69
+ }
70
+
71
+ const clientModule = (await import(
72
+ pathToFileURL(requireFromProject.resolve('@prisma/client')).href
73
+ )) as {
74
+ PrismaClient: new () => any
75
+ }
76
+ return new clientModule.PrismaClient()
77
+ }