@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.
- package/README.md +101 -5
- package/dist/cli/migrations.d.ts +3 -0
- package/dist/cli/migrations.d.ts.map +1 -0
- package/dist/cli/migrations.js +73 -0
- package/dist/cli/migrations.js.map +1 -0
- package/dist/engine/content-metadata.d.ts +13 -0
- package/dist/engine/content-metadata.d.ts.map +1 -0
- package/dist/engine/content-metadata.js +80 -0
- package/dist/engine/content-metadata.js.map +1 -0
- package/dist/engine/index.d.ts +3 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +5 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/publication.d.ts +29 -1
- package/dist/engine/publication.d.ts.map +1 -1
- package/dist/engine/publication.js +197 -15
- package/dist/engine/publication.js.map +1 -1
- package/dist/engine/published-content.d.ts +40 -0
- package/dist/engine/published-content.d.ts.map +1 -0
- package/dist/engine/published-content.js +388 -0
- package/dist/engine/published-content.js.map +1 -0
- package/dist/engine/publisher.d.ts +16 -1
- package/dist/engine/publisher.d.ts.map +1 -1
- package/dist/engine/publisher.js +74 -11
- package/dist/engine/publisher.js.map +1 -1
- package/dist/engine/revisions.d.ts.map +1 -1
- package/dist/engine/revisions.js +2 -0
- package/dist/engine/revisions.js.map +1 -1
- package/dist/migration-vendor-files.d.ts +17 -0
- package/dist/migration-vendor-files.d.ts.map +1 -0
- package/dist/migration-vendor-files.js +67 -0
- package/dist/migration-vendor-files.js.map +1 -0
- package/dist/migration-vendor.d.ts +26 -0
- package/dist/migration-vendor.d.ts.map +1 -0
- package/dist/migration-vendor.js +321 -0
- package/dist/migration-vendor.js.map +1 -0
- package/dist/schema/migrations.d.ts.map +1 -1
- package/dist/schema/migrations.js +24 -0
- package/dist/schema/migrations.js.map +1 -1
- package/dist/schema/types.d.ts +6 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/migrations/0020_content_metadata_read_model.sql +19 -0
- package/migrations/0021_published_revision_slug_index.sql +5 -0
- package/package.json +8 -1
- package/src/cli/migrations.ts +85 -0
- package/src/engine/content-metadata.ts +122 -0
- package/src/engine/index.ts +26 -0
- package/src/engine/publication.ts +329 -18
- package/src/engine/published-content.ts +581 -0
- package/src/engine/publisher.ts +106 -10
- package/src/engine/revisions.ts +4 -0
- package/src/migration-vendor-files.ts +100 -0
- package/src/migration-vendor.ts +450 -0
- package/src/schema/migrations.ts +24 -0
- 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,
|
|
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":"AAAA,wDAAwD;AACxD,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,iDAAiD;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJhC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IAC1C,OAAO,GAAG;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC9B,CAAC;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC;IACtE;QACC,EAAE,EAAE,8BAA8B;QAClC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FN;KACC;IACD;QACC,EAAE,EAAE,2BAA2B;QAC/B,GAAG,EAAE;;;;;;;;;;;CAWN;KACC;IACD;QACC,EAAE,EAAE,sBAAsB;QAC1B,GAAG,EAAE;;;;;CAKN;KACC;IACD;QACC,EAAE,EAAE,6BAA6B;QACjC,GAAG,EAAE;;;;CAIN;KACC;IACD;QACC,EAAE,EAAE,+BAA+B;QACnC,GAAG,EAAE;;;CAGN;KACC;IACD;QACC,EAAE,EAAE,6BAA6B;QACjC,GAAG,EAAE;;;;;;;;CAQN;KACC;IACD;QACC,EAAE,EAAE,yBAAyB;QAC7B,GAAG,EAAE;;;;;;;;;;;;;;;;;CAiBN;KACC;IACD;QACC,EAAE,EAAE,4BAA4B;QAChC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCN;KACC;IACD;QACC,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBN;KACC;IACD;QACC,EAAE,EAAE,6BAA6B;QACjC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBN;KACC;IACD;QACC,EAAE,EAAE,sBAAsB;QAC1B,GAAG,EAAE;;;;;;;;;;CAUN;KACC;IACD;QACC,EAAE,EAAE,0BAA0B;QAC9B,GAAG,EAAE;;CAEN;KACC;IACD;QACC,mFAAmF;QACnF,4EAA4E;QAC5E,EAAE,EAAE,qBAAqB;QACzB,GAAG,EAAE;;CAEN;KACC;IACD;QACC,EAAE,EAAE,iBAAiB;QACrB,GAAG,EAAE;;;;;;;;CAQN;KACC;IACD;QACC,EAAE,EAAE,uBAAuB;QAC3B,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CN;KACC;IACD;QACC,EAAE,EAAE,oBAAoB;QACxB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IN;KACC;IACD;QACC,EAAE,EAAE,mCAAmC;QACvC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBN;KACC;IACD;QACC,EAAE,EAAE,mBAAmB;QACvB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCN;KACC;IACD;QACC,EAAE,EAAE,kCAAkC;QACtC,GAAG,EAAE;;;;;;;;;;;;;CAaN;KACC;IACD;QACC,EAAE,EAAE,oCAAoC;QACxC,GAAG,EAAE;;;CAGN;KACC;CACD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC/C,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC5D,0EAA0E;QAC1E,0BAA0B;QAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC3D,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE,CAAC;QAClD,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;IACF,CAAC;AACF,CAAC;AAGD,wEAAwE;AACxE,8DAA8D;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/schema/types.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/schema/types.js.map
CHANGED
|
@@ -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;
|
|
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;
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@growth-labs/cms",
|
|
3
|
-
"version": "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
|
+
})
|