@growth-labs/cms 0.3.0 → 0.4.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.
Files changed (56) hide show
  1. package/README.md +101 -5
  2. package/dist/cli/migrations.d.ts +3 -0
  3. package/dist/cli/migrations.d.ts.map +1 -0
  4. package/dist/cli/migrations.js +73 -0
  5. package/dist/cli/migrations.js.map +1 -0
  6. package/dist/engine/content-metadata.d.ts +13 -0
  7. package/dist/engine/content-metadata.d.ts.map +1 -0
  8. package/dist/engine/content-metadata.js +80 -0
  9. package/dist/engine/content-metadata.js.map +1 -0
  10. package/dist/engine/index.d.ts +3 -1
  11. package/dist/engine/index.d.ts.map +1 -1
  12. package/dist/engine/index.js +5 -1
  13. package/dist/engine/index.js.map +1 -1
  14. package/dist/engine/publication.d.ts +29 -1
  15. package/dist/engine/publication.d.ts.map +1 -1
  16. package/dist/engine/publication.js +197 -15
  17. package/dist/engine/publication.js.map +1 -1
  18. package/dist/engine/published-content.d.ts +40 -0
  19. package/dist/engine/published-content.d.ts.map +1 -0
  20. package/dist/engine/published-content.js +388 -0
  21. package/dist/engine/published-content.js.map +1 -0
  22. package/dist/engine/publisher.d.ts +16 -1
  23. package/dist/engine/publisher.d.ts.map +1 -1
  24. package/dist/engine/publisher.js +74 -11
  25. package/dist/engine/publisher.js.map +1 -1
  26. package/dist/engine/revisions.d.ts.map +1 -1
  27. package/dist/engine/revisions.js +2 -0
  28. package/dist/engine/revisions.js.map +1 -1
  29. package/dist/migration-vendor-files.d.ts +17 -0
  30. package/dist/migration-vendor-files.d.ts.map +1 -0
  31. package/dist/migration-vendor-files.js +67 -0
  32. package/dist/migration-vendor-files.js.map +1 -0
  33. package/dist/migration-vendor.d.ts +26 -0
  34. package/dist/migration-vendor.d.ts.map +1 -0
  35. package/dist/migration-vendor.js +321 -0
  36. package/dist/migration-vendor.js.map +1 -0
  37. package/dist/schema/migrations.d.ts.map +1 -1
  38. package/dist/schema/migrations.js +24 -0
  39. package/dist/schema/migrations.js.map +1 -1
  40. package/dist/schema/types.d.ts +6 -0
  41. package/dist/schema/types.d.ts.map +1 -1
  42. package/dist/schema/types.js.map +1 -1
  43. package/migrations/0020_content_metadata_read_model.sql +19 -0
  44. package/migrations/0021_published_revision_slug_index.sql +5 -0
  45. package/package.json +8 -1
  46. package/src/cli/migrations.ts +85 -0
  47. package/src/engine/content-metadata.ts +122 -0
  48. package/src/engine/index.ts +26 -0
  49. package/src/engine/publication.ts +329 -18
  50. package/src/engine/published-content.ts +581 -0
  51. package/src/engine/publisher.ts +106 -10
  52. package/src/engine/revisions.ts +4 -0
  53. package/src/migration-vendor-files.ts +100 -0
  54. package/src/migration-vendor.ts +450 -0
  55. package/src/schema/migrations.ts +24 -0
  56. package/src/schema/types.ts +6 -0
@@ -0,0 +1,321 @@
1
+ import { link, lstat, readdir, readFile, realpath, rename, unlink, writeFile, } from 'node:fs/promises';
2
+ import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { commitStagedMigrationBatch, } from './migration-vendor-files.js';
5
+ const PACKAGE_NAME = '@growth-labs/cms';
6
+ const MANIFEST_NAME = '.growth-labs-cms-migrations.json';
7
+ const MANIFEST_SCHEMA_VERSION = 1;
8
+ const MIGRATION_FILE = /^\d{4}_[a-z0-9][a-z0-9_-]*\.sql$/;
9
+ async function packageContract() {
10
+ const packageRoot = fileURLToPath(new URL('..', import.meta.url));
11
+ const packageJsonPath = join(packageRoot, 'package.json');
12
+ const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8'));
13
+ if (packageJson.name !== PACKAGE_NAME || !packageJson.version) {
14
+ throw new Error('installed CMS package metadata is invalid');
15
+ }
16
+ return {
17
+ packageVersion: packageJson.version,
18
+ sourceDir: join(packageRoot, 'migrations'),
19
+ };
20
+ }
21
+ async function sha256(bytes) {
22
+ const input = new Uint8Array(bytes.byteLength);
23
+ input.set(bytes);
24
+ const digest = await crypto.subtle.digest('SHA-256', input.buffer);
25
+ return [...new Uint8Array(digest)].map((byte) => byte.toString(16).padStart(2, '0')).join('');
26
+ }
27
+ async function requireExistingDirectory(path, label = 'migrationsDir') {
28
+ let stat;
29
+ try {
30
+ stat = await lstat(path);
31
+ }
32
+ catch {
33
+ throw new Error(`${label} must be an existing directory: ${path}`);
34
+ }
35
+ if (!stat.isDirectory() || stat.isSymbolicLink()) {
36
+ throw new Error(`${label} must be an existing non-symlink directory: ${path}`);
37
+ }
38
+ return realpath(path);
39
+ }
40
+ function assertStartSequence(value) {
41
+ if (!Number.isSafeInteger(value) || value < 1) {
42
+ throw new Error('startSequence must be a positive integer');
43
+ }
44
+ }
45
+ function sequencePrefix(sequence) {
46
+ return String(sequence).padStart(4, '0');
47
+ }
48
+ async function planMigrations(sourceDir, startSequence) {
49
+ assertStartSequence(startSequence);
50
+ const sourceNames = (await readdir(sourceDir)).filter((name) => MIGRATION_FILE.test(name)).sort();
51
+ if (sourceNames.length === 0)
52
+ throw new Error('installed CMS package has no migration SQL');
53
+ if (startSequence + sourceNames.length - 1 > 9999) {
54
+ throw new Error('reserved CMS migration sequence exceeds 9999');
55
+ }
56
+ return Promise.all(sourceNames.map(async (source, index) => {
57
+ const sequence = startSequence + index;
58
+ const suffix = source.replace(/^\d{4}_/, '');
59
+ const target = `${sequencePrefix(sequence)}_growth_labs_cms_${suffix}`;
60
+ const bytes = new Uint8Array(await readFile(join(sourceDir, source)));
61
+ return { source, target, sequence, sha256: await sha256(bytes), bytes };
62
+ }));
63
+ }
64
+ function manifestFor(packageVersion, startSequence, plan) {
65
+ return {
66
+ schemaVersion: MANIFEST_SCHEMA_VERSION,
67
+ packageName: PACKAGE_NAME,
68
+ packageVersion,
69
+ startSequence,
70
+ files: plan.map(({ source, target, sha256: hash }) => ({ source, target, sha256: hash })),
71
+ };
72
+ }
73
+ async function readManifest(path) {
74
+ try {
75
+ const stat = await lstat(path);
76
+ if (!stat.isFile() || stat.isSymbolicLink()) {
77
+ throw new Error(`CMS migration manifest must be a regular file: ${path}`);
78
+ }
79
+ const parsed = JSON.parse(await readFile(path, 'utf8'));
80
+ if (parsed.schemaVersion !== MANIFEST_SCHEMA_VERSION ||
81
+ parsed.packageName !== PACKAGE_NAME ||
82
+ !parsed.packageVersion ||
83
+ !Number.isSafeInteger(parsed.startSequence) ||
84
+ parsed.startSequence < 1 ||
85
+ !Array.isArray(parsed.files)) {
86
+ throw new Error(`CMS migration manifest is invalid: ${path}`);
87
+ }
88
+ for (const entry of parsed.files) {
89
+ if (!entry ||
90
+ typeof entry.source !== 'string' ||
91
+ typeof entry.target !== 'string' ||
92
+ !MIGRATION_FILE.test(entry.source) ||
93
+ !MIGRATION_FILE.test(entry.target) ||
94
+ !/^([a-f0-9]{64})$/.test(entry.sha256)) {
95
+ throw new Error(`CMS migration manifest contains an invalid file entry: ${path}`);
96
+ }
97
+ }
98
+ return parsed;
99
+ }
100
+ catch (error) {
101
+ if (error.code === 'ENOENT')
102
+ return null;
103
+ throw error;
104
+ }
105
+ }
106
+ function entriesEqual(left, right) {
107
+ return (left.source === right.source && left.target === right.target && left.sha256 === right.sha256);
108
+ }
109
+ function assertManifestCanAdvance(current, next) {
110
+ if (!current)
111
+ return;
112
+ if (current.startSequence !== next.startSequence) {
113
+ throw new Error(`CMS migration manifest reserves startSequence ${current.startSequence}; received ${next.startSequence}`);
114
+ }
115
+ if (current.files.length > next.files.length) {
116
+ throw new Error('installed CMS package removed migrations recorded by the consumer manifest');
117
+ }
118
+ for (const [index, entry] of current.files.entries()) {
119
+ const nextEntry = next.files[index];
120
+ if (!nextEntry || !entriesEqual(entry, nextEntry)) {
121
+ throw new Error(`installed CMS migration changed after vendoring: ${entry.source}`);
122
+ }
123
+ }
124
+ }
125
+ async function assertNoSequenceCollisions(migrationsDir, plan) {
126
+ const existing = await readdir(migrationsDir);
127
+ for (const migration of plan) {
128
+ const prefix = `${sequencePrefix(migration.sequence)}_`;
129
+ const collisions = existing.filter((name) => name.endsWith('.sql') && name.startsWith(prefix) && name !== migration.target);
130
+ if (collisions.length > 0) {
131
+ throw new Error(`reserved sequence ${sequencePrefix(migration.sequence)} collides with ${collisions.join(', ')}`);
132
+ }
133
+ }
134
+ }
135
+ async function verifyTargets(migrationsDir, plan, allowMissing) {
136
+ let verified = 0;
137
+ const missing = [];
138
+ for (const migration of plan) {
139
+ const targetPath = join(migrationsDir, migration.target);
140
+ try {
141
+ const stat = await lstat(targetPath);
142
+ if (!stat.isFile() || stat.isSymbolicLink()) {
143
+ throw new Error(`managed CMS migration must be a regular file: ${migration.target}`);
144
+ }
145
+ const targetHash = await sha256(new Uint8Array(await readFile(targetPath)));
146
+ if (targetHash !== migration.sha256) {
147
+ throw new Error(`CMS migration hash mismatch: ${migration.target}`);
148
+ }
149
+ verified += 1;
150
+ }
151
+ catch (error) {
152
+ if (error.code === 'ENOENT' && allowMissing) {
153
+ missing.push(migration);
154
+ continue;
155
+ }
156
+ throw error;
157
+ }
158
+ }
159
+ return { verified, missing };
160
+ }
161
+ async function stageNewFile(path, bytes) {
162
+ const temp = `${path}.tmp-${crypto.randomUUID()}`;
163
+ await writeFile(temp, bytes, { flag: 'wx' });
164
+ return temp;
165
+ }
166
+ async function stageManifest(path, manifest) {
167
+ const temp = `${path}.tmp-${crypto.randomUUID()}`;
168
+ await writeFile(temp, `${JSON.stringify(manifest, null, 2)}\n`, { flag: 'wx' });
169
+ return temp;
170
+ }
171
+ async function commitManifest(tempPath, manifestPath, currentManifest) {
172
+ if (currentManifest) {
173
+ const latest = await readManifest(manifestPath);
174
+ if (!latest || JSON.stringify(latest) !== JSON.stringify(currentManifest)) {
175
+ throw new Error('CMS migration manifest changed during sync');
176
+ }
177
+ await rename(tempPath, manifestPath);
178
+ return;
179
+ }
180
+ await link(tempPath, manifestPath);
181
+ }
182
+ function isInsideDirectory(directory, path) {
183
+ const fromDirectory = relative(directory, path);
184
+ return (fromDirectory === '' ||
185
+ (!fromDirectory.startsWith(`..${sep}`) && fromDirectory !== '..' && !isAbsolute(fromDirectory)));
186
+ }
187
+ async function resolveManifestPath(migrationsDir, override) {
188
+ if (!override)
189
+ return join(migrationsDir, MANIFEST_NAME);
190
+ const requested = resolve(override);
191
+ if (extname(requested).toLowerCase() !== '.json') {
192
+ throw new Error('CMS migration manifest override must be a .json file');
193
+ }
194
+ if (isInsideDirectory(migrationsDir, requested)) {
195
+ throw new Error('CMS migration manifest override must be outside migrationsDir');
196
+ }
197
+ const parent = await requireExistingDirectory(dirname(requested), 'manifest parent');
198
+ const resolvedPath = join(parent, basename(requested));
199
+ if (isInsideDirectory(migrationsDir, resolvedPath)) {
200
+ throw new Error('CMS migration manifest override must be outside migrationsDir');
201
+ }
202
+ return resolvedPath;
203
+ }
204
+ async function withManifestLock(manifestPath, action) {
205
+ const lockPath = `${manifestPath}.lock`;
206
+ try {
207
+ await writeFile(lockPath, `${JSON.stringify({ pid: process.pid, startedAt: Date.now() })}\n`, {
208
+ flag: 'wx',
209
+ mode: 0o600,
210
+ });
211
+ }
212
+ catch (error) {
213
+ if (error.code === 'EEXIST') {
214
+ throw new Error(`another CMS migration operation is already active: ${lockPath}`);
215
+ }
216
+ throw error;
217
+ }
218
+ let result;
219
+ let operationError;
220
+ try {
221
+ result = await action();
222
+ }
223
+ catch (error) {
224
+ operationError = error;
225
+ }
226
+ let releaseError;
227
+ try {
228
+ await unlink(lockPath);
229
+ }
230
+ catch (error) {
231
+ releaseError = error;
232
+ }
233
+ if (operationError && releaseError) {
234
+ throw new AggregateError([operationError, releaseError], 'CMS migration operation failed and its receipt lock could not be released');
235
+ }
236
+ if (operationError)
237
+ throw operationError;
238
+ if (releaseError)
239
+ throw releaseError;
240
+ return result;
241
+ }
242
+ export async function syncCmsMigrations(options) {
243
+ assertStartSequence(options.startSequence);
244
+ const migrationsDir = await requireExistingDirectory(resolve(options.migrationsDir));
245
+ const manifestPath = await resolveManifestPath(migrationsDir, options.manifestPath);
246
+ return withManifestLock(manifestPath, async () => {
247
+ const contract = await packageContract();
248
+ const plan = await planMigrations(contract.sourceDir, options.startSequence);
249
+ const nextManifest = manifestFor(contract.packageVersion, options.startSequence, plan);
250
+ const currentManifest = await readManifest(manifestPath);
251
+ assertManifestCanAdvance(currentManifest, nextManifest);
252
+ await assertNoSequenceCollisions(migrationsDir, plan);
253
+ const preflight = await verifyTargets(migrationsDir, plan, true);
254
+ const staged = [];
255
+ let manifestTemp = null;
256
+ let verified = 0;
257
+ try {
258
+ for (const migration of preflight.missing) {
259
+ const targetPath = join(migrationsDir, migration.target);
260
+ staged.push({
261
+ targetPath,
262
+ tempPath: await stageNewFile(targetPath, migration.bytes),
263
+ });
264
+ }
265
+ const stagedManifest = await stageManifest(manifestPath, nextManifest);
266
+ manifestTemp = stagedManifest;
267
+ await commitStagedMigrationBatch(staged, async () => {
268
+ await assertNoSequenceCollisions(migrationsDir, plan);
269
+ const final = await verifyTargets(migrationsDir, plan, false);
270
+ verified = final.verified;
271
+ await commitManifest(stagedManifest, manifestPath, currentManifest);
272
+ });
273
+ return {
274
+ packageName: PACKAGE_NAME,
275
+ packageVersion: contract.packageVersion,
276
+ startSequence: options.startSequence,
277
+ managedFiles: plan.map(({ target }) => target),
278
+ written: preflight.missing.length,
279
+ verified,
280
+ manifestPath,
281
+ };
282
+ }
283
+ finally {
284
+ await Promise.all([
285
+ ...staged.map(({ tempPath }) => unlink(tempPath).catch(() => { })),
286
+ ...(manifestTemp ? [unlink(manifestTemp).catch(() => { })] : []),
287
+ ]);
288
+ }
289
+ });
290
+ }
291
+ export async function verifyCmsMigrations(options) {
292
+ const migrationsDir = await requireExistingDirectory(resolve(options.migrationsDir));
293
+ const manifestPath = await resolveManifestPath(migrationsDir, options.manifestPath);
294
+ return withManifestLock(manifestPath, async () => {
295
+ const manifest = await readManifest(manifestPath);
296
+ if (!manifest)
297
+ throw new Error(`CMS migration manifest is missing: ${manifestPath}`);
298
+ const contract = await packageContract();
299
+ if (manifest.packageVersion !== contract.packageVersion) {
300
+ throw new Error(`CMS migration manifest version ${manifest.packageVersion} does not match installed ${contract.packageVersion}`);
301
+ }
302
+ const plan = await planMigrations(contract.sourceDir, manifest.startSequence);
303
+ const expected = manifestFor(contract.packageVersion, manifest.startSequence, plan);
304
+ if (expected.files.length !== manifest.files.length ||
305
+ expected.files.some((entry, index) => !entriesEqual(entry, manifest.files[index]))) {
306
+ throw new Error('CMS migration manifest does not match the installed package contract');
307
+ }
308
+ await assertNoSequenceCollisions(migrationsDir, plan);
309
+ const result = await verifyTargets(migrationsDir, plan, false);
310
+ return {
311
+ packageName: PACKAGE_NAME,
312
+ packageVersion: contract.packageVersion,
313
+ startSequence: manifest.startSequence,
314
+ managedFiles: plan.map(({ target }) => target),
315
+ written: 0,
316
+ verified: result.verified,
317
+ manifestPath,
318
+ };
319
+ });
320
+ }
321
+ //# sourceMappingURL=migration-vendor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-vendor.js","sourceRoot":"","sources":["../src/migration-vendor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/schema/migrations.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,mzKAyJ7B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED,iFAAiF;AACjF,UAAU,MAAM;IACf,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,wBAAwB,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EA+iBjE,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/D;AAED,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/schema/migrations.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,mzKAyJ7B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED,iFAAiF;AACjF,UAAU,MAAM;IACf,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,wBAAwB,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAukBjE,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/D;AAED,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA"}
@@ -770,6 +770,30 @@ CREATE INDEX idx_cms_reader_state_export
770
770
  ON cms_reader_state(identity_user_id, site_id, created_at DESC, content_type, content_id);
771
771
  CREATE INDEX idx_cms_reader_state_saved
772
772
  ON cms_reader_state(identity_user_id, site_id, saved, updated_at DESC);
773
+ `,
774
+ },
775
+ {
776
+ id: '0020_content_metadata_read_model',
777
+ sql: `
778
+ ALTER TABLE content_items
779
+ ADD COLUMN metadata_json TEXT NOT NULL DEFAULT '{}';
780
+ ALTER TABLE content_items
781
+ ADD COLUMN source_id TEXT;
782
+ CREATE UNIQUE INDEX idx_content_items_source_id_unique
783
+ ON content_items(source_id)
784
+ WHERE source_id IS NOT NULL;
785
+ ALTER TABLE content_publication_attempts
786
+ ADD COLUMN target_published_at INTEGER;
787
+ UPDATE content_publication_attempts
788
+ SET target_published_at = created_at
789
+ WHERE operation = 'publish' AND target_published_at IS NULL;
790
+ `,
791
+ },
792
+ {
793
+ id: '0021_published_revision_slug_index',
794
+ sql: `
795
+ CREATE INDEX IF NOT EXISTS idx_content_revisions_published_slug
796
+ ON content_revisions(json_extract(payload_json, '$.item.slug'));
773
797
  `,
774
798
  },
775
799
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/schema/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/schema/migrations.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,10 @@ export interface ContentItemRow {
48
48
  seo_focus_keyword: string | null;
49
49
  /** AI-generated OG image asset id (migration 0004). */
50
50
  ai_og_image_id: string | null;
51
+ /** Bounded JSON object for declared site-specific presentation metadata (migration 0020). */
52
+ metadata_json: string;
53
+ /** Optional namespaced source key used for idempotent archive imports (migration 0020). */
54
+ source_id: string | null;
51
55
  }
52
56
  /** Standalone topic taxonomy row. Counts are derived from content_items.primary_topic. */
53
57
  export interface CmsTopicRow {
@@ -458,6 +462,8 @@ export interface ContentPublicationAttemptRow {
458
462
  content_id: string;
459
463
  revision_id: string;
460
464
  previous_revision_id: string | null;
465
+ /** Explicit historical publication timestamp for crash-safe publish retries. */
466
+ target_published_at: number | null;
461
467
  state: ContentPublicationAttemptState;
462
468
  surface_names_json: string;
463
469
  pending_surface_names_json: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,sEAAsE;AACtE,gFAAgF;AAChF,yBAAyB;AACzB,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AA6kBhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAanC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAqB;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAA;IACnD,MAAM,SAAS,GAAG;QACjB,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC/B,KAAK,CAAC,UAAU;QAChB,MAAM,CAAC,OAAO,CAAC;KACf,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACzF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,sEAAsE;AACtE,gFAAgF;AAChF,yBAAyB;AACzB,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAmlBhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAanC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAqB;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAA;IACnD,MAAM,SAAS,GAAG;QACjB,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC/B,KAAK,CAAC,UAAU;QAChB,MAAM,CAAC,OAAO,CAAC;KACf,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACzF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACX,CAAC"}
@@ -0,0 +1,19 @@
1
+ -- 0020_content_metadata_read_model: generic bounded site metadata and durable
2
+ -- historical publication time for pointer-move recovery.
3
+
4
+ ALTER TABLE content_items
5
+ ADD COLUMN metadata_json TEXT NOT NULL DEFAULT '{}';
6
+
7
+ ALTER TABLE content_items
8
+ ADD COLUMN source_id TEXT;
9
+
10
+ CREATE UNIQUE INDEX idx_content_items_source_id_unique
11
+ ON content_items(source_id)
12
+ WHERE source_id IS NOT NULL;
13
+
14
+ ALTER TABLE content_publication_attempts
15
+ ADD COLUMN target_published_at INTEGER;
16
+
17
+ UPDATE content_publication_attempts
18
+ SET target_published_at = created_at
19
+ WHERE operation = 'publish' AND target_published_at IS NULL;
@@ -0,0 +1,5 @@
1
+ -- 0021_published_revision_slug_index: keep canonical slug reads bounded as
2
+ -- immutable revision history grows.
3
+
4
+ CREATE INDEX IF NOT EXISTS idx_content_revisions_published_slug
5
+ ON content_revisions(json_extract(payload_json, '$.item.slug'));
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "@growth-labs/cms",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
+ "bin": {
6
+ "growth-labs-cms-migrations": "./dist/cli/migrations.js"
7
+ },
5
8
  "types": "./dist/index.d.ts",
6
9
  "exports": {
7
10
  ".": {
@@ -24,6 +27,10 @@
24
27
  "types": "./dist/integration/index.d.ts",
25
28
  "import": "./dist/integration/index.js"
26
29
  },
30
+ "./migration-vendor": {
31
+ "types": "./dist/migration-vendor.d.ts",
32
+ "import": "./dist/migration-vendor.js"
33
+ },
27
34
  "./ui": {
28
35
  "types": "./dist/ui/components/CmsApp.d.ts",
29
36
  "import": "./dist/ui/components/CmsApp.js"
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { syncCmsMigrations, verifyCmsMigrations } from '../migration-vendor.js'
4
+
5
+ interface ParsedArgs {
6
+ command: 'sync' | 'verify'
7
+ migrationsDir: string
8
+ startSequence?: number
9
+ manifestPath?: string
10
+ }
11
+
12
+ function usage(): string {
13
+ return [
14
+ 'Usage:',
15
+ ' growth-labs-cms-migrations sync --dir <migrations-dir> --start <positive-integer>',
16
+ ' growth-labs-cms-migrations verify --dir <migrations-dir>',
17
+ '',
18
+ 'Optional for both commands: --manifest <receipt-path>',
19
+ ].join('\n')
20
+ }
21
+
22
+ function requireValue(argv: string[], index: number, flag: string): string {
23
+ const value = argv[index + 1]
24
+ if (!value || value.startsWith('--')) throw new Error(`${flag} requires a value`)
25
+ return value
26
+ }
27
+
28
+ function parseArgs(argv: string[]): ParsedArgs {
29
+ const command = argv[0]
30
+ if (command !== 'sync' && command !== 'verify') throw new Error(usage())
31
+ let migrationsDir: string | undefined
32
+ let startSequence: number | undefined
33
+ let manifestPath: string | undefined
34
+
35
+ for (let index = 1; index < argv.length; index += 1) {
36
+ const flag = argv[index]
37
+ if (flag === '--dir') {
38
+ migrationsDir = requireValue(argv, index, flag)
39
+ index += 1
40
+ continue
41
+ }
42
+ if (flag === '--start') {
43
+ startSequence = Number(requireValue(argv, index, flag))
44
+ index += 1
45
+ continue
46
+ }
47
+ if (flag === '--manifest') {
48
+ manifestPath = requireValue(argv, index, flag)
49
+ index += 1
50
+ continue
51
+ }
52
+ throw new Error(`unknown argument: ${flag}\n\n${usage()}`)
53
+ }
54
+
55
+ if (!migrationsDir) throw new Error(`--dir is required\n\n${usage()}`)
56
+ if (command === 'sync' && startSequence === undefined) {
57
+ throw new Error(`--start is required for sync\n\n${usage()}`)
58
+ }
59
+ if (command === 'verify' && startSequence !== undefined) {
60
+ throw new Error('--start is read from the committed manifest during verify')
61
+ }
62
+ return { command, migrationsDir, startSequence, manifestPath }
63
+ }
64
+
65
+ async function main(): Promise<void> {
66
+ const args = parseArgs(process.argv.slice(2))
67
+ const result =
68
+ args.command === 'sync'
69
+ ? await syncCmsMigrations({
70
+ migrationsDir: args.migrationsDir,
71
+ startSequence: args.startSequence as number,
72
+ manifestPath: args.manifestPath,
73
+ })
74
+ : await verifyCmsMigrations({
75
+ migrationsDir: args.migrationsDir,
76
+ manifestPath: args.manifestPath,
77
+ })
78
+ process.stdout.write(`${JSON.stringify({ ok: true, command: args.command, ...result })}\n`)
79
+ }
80
+
81
+ main().catch((error: unknown) => {
82
+ const message = error instanceof Error ? error.message : String(error)
83
+ process.stderr.write(`growth-labs-cms-migrations: ${message}\n`)
84
+ process.exitCode = 1
85
+ })