scribe-cms 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.cjs +272 -180
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.js +272 -181
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +188 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +188 -123
- package/dist/index.js.map +1 -1
- package/dist/runtime.cjs +25 -18
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.js +25 -18
- package/dist/runtime.js.map +1 -1
- package/dist/src/config/resolve-config.d.ts.map +1 -1
- package/dist/src/core/types.d.ts +4 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/history/record-snapshot.d.ts +11 -0
- package/dist/src/history/record-snapshot.d.ts.map +1 -0
- package/dist/src/storage/sqlite.d.ts.map +1 -1
- package/dist/src/storage/translations.d.ts +14 -21
- package/dist/src/storage/translations.d.ts.map +1 -1
- package/dist/src/translate/page-translator.d.ts.map +1 -1
- package/dist/src/validate/validate-assets.d.ts +20 -0
- package/dist/src/validate/validate-assets.d.ts.map +1 -0
- package/dist/src/validate/validate-project.d.ts +1 -1
- package/dist/src/validate/validate-project.d.ts.map +1 -1
- package/dist/src/version.d.ts +4 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/studio/server.cjs +51 -64
- package/dist/studio/server.cjs.map +1 -1
- package/dist/studio/server.d.ts.map +1 -1
- package/dist/studio/server.js +51 -64
- package/dist/studio/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/history/record-revision.d.ts +0 -14
- package/dist/src/history/record-revision.d.ts.map +0 -1
package/dist/runtime.cjs
CHANGED
|
@@ -79,6 +79,7 @@ function resolveConfig(input, baseDir) {
|
|
|
79
79
|
const projectRoot = path3__default.default.resolve(process.cwd(), raw.rootDir);
|
|
80
80
|
const contentRoot = path3__default.default.resolve(projectRoot, raw.contentDir ?? "content");
|
|
81
81
|
const storePath = path3__default.default.resolve(projectRoot, raw.store ?? ".scribe/store.sqlite");
|
|
82
|
+
const assetsPath = raw.assetsDir ? path3__default.default.resolve(projectRoot, raw.assetsDir) : void 0;
|
|
82
83
|
const seenIds = /* @__PURE__ */ new Set();
|
|
83
84
|
const types = raw.types.map((type) => {
|
|
84
85
|
if (seenIds.has(type.id)) {
|
|
@@ -99,6 +100,7 @@ function resolveConfig(input, baseDir) {
|
|
|
99
100
|
const config = {
|
|
100
101
|
rootDir: contentRoot,
|
|
101
102
|
storePath,
|
|
103
|
+
assetsPath,
|
|
102
104
|
locales: [...raw.locales],
|
|
103
105
|
defaultLocale,
|
|
104
106
|
localePresets: raw.localePresets,
|
|
@@ -418,7 +420,7 @@ function seoFieldsFromEn(enDoc) {
|
|
|
418
420
|
redirectTo: enDoc.redirectTo
|
|
419
421
|
};
|
|
420
422
|
}
|
|
421
|
-
var SCHEMA_VERSION =
|
|
423
|
+
var SCHEMA_VERSION = 4;
|
|
422
424
|
var MIGRATIONS = [
|
|
423
425
|
`CREATE TABLE IF NOT EXISTS meta (
|
|
424
426
|
key TEXT PRIMARY KEY,
|
|
@@ -438,20 +440,6 @@ var MIGRATIONS = [
|
|
|
438
440
|
)`,
|
|
439
441
|
`CREATE INDEX IF NOT EXISTS idx_translations_type_locale
|
|
440
442
|
ON translations(content_type, locale)`,
|
|
441
|
-
`CREATE TABLE IF NOT EXISTS revisions (
|
|
442
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
443
|
-
content_type TEXT NOT NULL,
|
|
444
|
-
en_slug TEXT NOT NULL,
|
|
445
|
-
locale TEXT,
|
|
446
|
-
revision_kind TEXT NOT NULL,
|
|
447
|
-
en_hash TEXT NOT NULL,
|
|
448
|
-
body_hash TEXT NOT NULL,
|
|
449
|
-
created_at TEXT NOT NULL,
|
|
450
|
-
model TEXT,
|
|
451
|
-
body_preview TEXT
|
|
452
|
-
)`,
|
|
453
|
-
`CREATE INDEX IF NOT EXISTS idx_revisions_lookup
|
|
454
|
-
ON revisions(content_type, en_slug, locale, created_at DESC)`,
|
|
455
443
|
`CREATE TABLE IF NOT EXISTS slug_aliases (
|
|
456
444
|
content_type TEXT NOT NULL,
|
|
457
445
|
canonical_en_slug TEXT NOT NULL,
|
|
@@ -468,7 +456,19 @@ var MIGRATIONS = [
|
|
|
468
456
|
locale_slug TEXT NOT NULL,
|
|
469
457
|
captured_at TEXT NOT NULL,
|
|
470
458
|
PRIMARY KEY (content_type, alias_en_slug, locale)
|
|
471
|
-
)
|
|
459
|
+
)`,
|
|
460
|
+
`CREATE TABLE IF NOT EXISTS en_snapshots (
|
|
461
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
462
|
+
content_type TEXT NOT NULL,
|
|
463
|
+
en_slug TEXT NOT NULL,
|
|
464
|
+
en_hash TEXT NOT NULL,
|
|
465
|
+
frontmatter_json TEXT NOT NULL,
|
|
466
|
+
body TEXT NOT NULL,
|
|
467
|
+
created_at TEXT NOT NULL,
|
|
468
|
+
UNIQUE (content_type, en_slug, en_hash)
|
|
469
|
+
)`,
|
|
470
|
+
`CREATE INDEX IF NOT EXISTS idx_en_snapshots_lookup
|
|
471
|
+
ON en_snapshots(content_type, en_slug, created_at DESC)`
|
|
472
472
|
];
|
|
473
473
|
function resolveStorePath(config) {
|
|
474
474
|
return config.storePath;
|
|
@@ -490,12 +490,19 @@ function addColumnIfMissing(db, table, column, ddlType) {
|
|
|
490
490
|
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${ddlType}`);
|
|
491
491
|
}
|
|
492
492
|
}
|
|
493
|
+
function readSchemaVersion(db) {
|
|
494
|
+
const row = db.prepare(`SELECT value FROM meta WHERE key = 'schema_version'`).get();
|
|
495
|
+
return row ? Number.parseInt(row.value, 10) || 0 : 0;
|
|
496
|
+
}
|
|
493
497
|
function migrate(db) {
|
|
498
|
+
const previousVersion = readSchemaVersion(db);
|
|
494
499
|
for (const sql of MIGRATIONS) {
|
|
495
500
|
db.exec(sql);
|
|
496
501
|
}
|
|
497
|
-
|
|
498
|
-
|
|
502
|
+
if (previousVersion < 4) {
|
|
503
|
+
db.exec(`DROP TABLE IF EXISTS revisions`);
|
|
504
|
+
}
|
|
505
|
+
addColumnIfMissing(db, "translations", "snapshot_id", "INTEGER");
|
|
499
506
|
db.prepare(
|
|
500
507
|
`INSERT INTO meta(key, value) VALUES('schema_version', ?)
|
|
501
508
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value`
|