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.
Files changed (35) hide show
  1. package/dist/cli/index.cjs +272 -180
  2. package/dist/cli/index.cjs.map +1 -1
  3. package/dist/cli/index.js +272 -181
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/index.cjs +188 -123
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.js +188 -123
  8. package/dist/index.js.map +1 -1
  9. package/dist/runtime.cjs +25 -18
  10. package/dist/runtime.cjs.map +1 -1
  11. package/dist/runtime.js +25 -18
  12. package/dist/runtime.js.map +1 -1
  13. package/dist/src/config/resolve-config.d.ts.map +1 -1
  14. package/dist/src/core/types.d.ts +4 -0
  15. package/dist/src/core/types.d.ts.map +1 -1
  16. package/dist/src/history/record-snapshot.d.ts +11 -0
  17. package/dist/src/history/record-snapshot.d.ts.map +1 -0
  18. package/dist/src/storage/sqlite.d.ts.map +1 -1
  19. package/dist/src/storage/translations.d.ts +14 -21
  20. package/dist/src/storage/translations.d.ts.map +1 -1
  21. package/dist/src/translate/page-translator.d.ts.map +1 -1
  22. package/dist/src/validate/validate-assets.d.ts +20 -0
  23. package/dist/src/validate/validate-assets.d.ts.map +1 -0
  24. package/dist/src/validate/validate-project.d.ts +1 -1
  25. package/dist/src/validate/validate-project.d.ts.map +1 -1
  26. package/dist/src/version.d.ts +4 -0
  27. package/dist/src/version.d.ts.map +1 -0
  28. package/dist/studio/server.cjs +51 -64
  29. package/dist/studio/server.cjs.map +1 -1
  30. package/dist/studio/server.d.ts.map +1 -1
  31. package/dist/studio/server.js +51 -64
  32. package/dist/studio/server.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/src/history/record-revision.d.ts +0 -14
  35. package/dist/src/history/record-revision.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CAqDd"}
1
+ {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,YAAY,EAC5C,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CAuDd"}
@@ -96,6 +96,8 @@ export interface ScribeConfigInput<TTypes extends readonly ContentTypeInput<any>
96
96
  contentDir?: string;
97
97
  /** Path to the SQLite translation store. Default: `".scribe/store.sqlite"`. Commit this file; do not gitignore `.scribe/`. */
98
98
  store?: string;
99
+ /** Path to the static assets folder (e.g. Next.js `public`). Relative to project `rootDir`. When set, `scribe validate` warns on missing image files. */
100
+ assetsDir?: string;
99
101
  /** All locales, including the default one. */
100
102
  locales: string[];
101
103
  /** Canonical source locale. Must be in `locales`. Default: `"en"`. */
@@ -113,6 +115,8 @@ export interface ScribeConfig {
113
115
  rootDir: string;
114
116
  /** Absolute path to the SQLite translation store. */
115
117
  storePath: string;
118
+ /** Absolute path to the static assets folder, when `assetsDir` is configured. */
119
+ assetsPath?: string;
116
120
  locales: string[];
117
121
  defaultLocale: string;
118
122
  localePresets?: LocalePresets;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { ScribeConfig } from "../core/types.js";
3
+ /** Record (or reuse) a deduplicated EN-source snapshot for a translation run. */
4
+ export declare function recordEnSnapshot(config: ScribeConfig, input: {
5
+ contentType: string;
6
+ enSlug: string;
7
+ enHash: string;
8
+ frontmatter: Record<string, unknown>;
9
+ body: string;
10
+ }, db?: Database.Database): number;
11
+ //# sourceMappingURL=record-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-snapshot.d.ts","sourceRoot":"","sources":["../../../src/history/record-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,iFAAiF;AACjF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd,EACD,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,GACrB,MAAM,CAYR"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAwDrD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAElD,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,UAAwB,GAAG,QAAQ,CAAC,QAAQ,CAUjG;AA4BD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAEtD"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsDrD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAElD,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,UAAwB,GAAG,QAAQ,CAAC,QAAQ,CAUjG;AAwCD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAEtD"}
@@ -9,6 +9,7 @@ export interface TranslationRow {
9
9
  en_hash: string;
10
10
  translated_at: string;
11
11
  model: string;
12
+ snapshot_id: number | null;
12
13
  }
13
14
  export interface TranslationInput {
14
15
  contentType: string;
@@ -20,45 +21,37 @@ export interface TranslationInput {
20
21
  enHash: string;
21
22
  translatedAt: string;
22
23
  model: string;
24
+ snapshotId: number;
23
25
  }
24
- export interface RevisionInput {
26
+ export interface EnSnapshotInput {
25
27
  contentType: string;
26
28
  enSlug: string;
27
- locale: string | null;
28
- revisionKind: "translation" | "en_edit_detected" | "snapshot";
29
29
  enHash: string;
30
- bodyHash: string;
30
+ frontmatter: Record<string, unknown>;
31
+ body: string;
31
32
  createdAt: string;
32
- model?: string;
33
- bodyPreview?: string;
34
- /** Full translated frontmatter snapshot (JSON) at revision time. */
35
- frontmatterJson?: string | null;
36
- /** Full translated body snapshot at revision time. */
37
- body?: string | null;
38
33
  }
39
- export interface RevisionRow {
34
+ export interface EnSnapshotRow {
40
35
  id: number;
41
36
  content_type: string;
42
37
  en_slug: string;
43
- locale: string | null;
44
- revision_kind: string;
45
38
  en_hash: string;
46
- body_hash: string;
39
+ frontmatter_json: string;
40
+ body: string;
47
41
  created_at: string;
48
- model: string | null;
49
- body_preview: string | null;
50
- frontmatter_json: string | null;
51
- body: string | null;
52
42
  }
43
+ export interface EnSnapshotWithLocales extends EnSnapshotRow {
44
+ locales: string;
45
+ }
46
+ export declare function getOrCreateEnSnapshot(db: Database.Database, input: EnSnapshotInput): number;
47
+ export declare function getEnSnapshot(db: Database.Database, snapshotId: number): EnSnapshotRow | undefined;
48
+ export declare function listEnSnapshotsForEnSlug(db: Database.Database, contentType: string, enSlug: string): EnSnapshotWithLocales[];
53
49
  export declare function upsertTranslation(db: Database.Database, input: TranslationInput): void;
54
50
  export declare function getTranslation(db: Database.Database, contentType: string, enSlug: string, locale: string): TranslationRow | undefined;
55
51
  export declare function listTranslationsForType(db: Database.Database, contentType: string): TranslationRow[];
56
52
  export declare function listTranslationsForEnSlug(db: Database.Database, contentType: string, enSlug: string): TranslationRow[];
57
53
  export declare function listTranslationsForLocale(db: Database.Database, contentType: string, locale: string): TranslationRow[];
58
54
  export declare function bulkLoadTranslations(db: Database.Database): TranslationRow[];
59
- export declare function appendRevision(db: Database.Database, input: RevisionInput): number;
60
- /** List revision history for an EN slug, optionally filtered by locale. */
61
- export declare function listRevisions(db: Database.Database, contentType: string, enSlug: string, locale?: string): RevisionRow[];
62
55
  export declare function countTranslations(db: Database.Database): number;
63
56
  export declare function countStaleTranslations(db: Database.Database, contentType: string, enSlug: string, currentEnHash: string): number;
64
57
  //# sourceMappingURL=translations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/storage/translations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/storage/translations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-translator.d.ts","sourceRoot":"","sources":["../../../src/translate/page-translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAarE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAkEtF,mEAAmE;AACnE,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAClE,OAAO,CAAC,mBAAmB,CAAC,CAqH9B;AAMD,oEAAoE;AACpE,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACjD,GACL,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA6BhC"}
1
+ {"version":3,"file":"page-translator.d.ts","sourceRoot":"","sources":["../../../src/translate/page-translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAarE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAkEtF,mEAAmE;AACnE,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAClE,OAAO,CAAC,mBAAmB,CAAC,CAsH9B;AAMD,oEAAoE;AACpE,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACjD,GACL,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA6BhC"}
@@ -0,0 +1,20 @@
1
+ import type { ScribeConfig } from "../core/types.js";
2
+ /** Collect absolute web paths to image assets from frontmatter values and MDX body. */
3
+ export declare function collectImagePaths(frontmatter: unknown, body: string): string[];
4
+ export interface AssetValidateIssue {
5
+ level: "warning";
6
+ contentType?: string;
7
+ enSlug?: string;
8
+ locale?: string;
9
+ field?: string;
10
+ message: string;
11
+ }
12
+ /** Warn when referenced image paths are missing from the configured assets folder. */
13
+ export declare function validateDocumentAssets(config: ScribeConfig, input: {
14
+ contentType: string;
15
+ enSlug: string;
16
+ locale?: string;
17
+ frontmatter: unknown;
18
+ body: string;
19
+ }): AssetValidateIssue[];
20
+ //# sourceMappingURL=validate-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-assets.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+CrD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9E;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GACA,kBAAkB,EAAE,CAkBtB"}
@@ -11,6 +11,6 @@ export interface ValidateResult {
11
11
  ok: boolean;
12
12
  issues: ValidateIssue[];
13
13
  }
14
- /** Validate EN files, SQLite consistency, relations, aliases, and slug rules. */
14
+ /** Validate EN files, SQLite consistency, relations, aliases, slug rules, and assets. */
15
15
  export declare function validateProject(config: ScribeConfig): ValidateResult;
16
16
  //# sourceMappingURL=validate-project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkBrD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAWD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAyKpE"}
1
+ {"version":3,"file":"validate-project.d.ts","sourceRoot":"","sources":["../../../src/validate/validate-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAiBrD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAWD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAuKpE"}
@@ -0,0 +1,4 @@
1
+ /** Package version from the nearest `scribe-cms` package.json (works from source or dist). */
2
+ export declare function readScribeVersion(): string;
3
+ export declare const SCRIBE_VERSION: string;
4
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAIA,8FAA8F;AAC9F,wBAAgB,iBAAiB,IAAI,MAAM,CAgB1C;AAED,eAAO,MAAM,cAAc,QAAsB,CAAC"}
@@ -342,7 +342,7 @@ function mergeBuiltinsIntoFrontmatter(frontmatter, doc, type, defaultLocale) {
342
342
  out.canonicalPath = resolveCanonicalPathname(type, doc, defaultLocale);
343
343
  return out;
344
344
  }
345
- var SCHEMA_VERSION = 3;
345
+ var SCHEMA_VERSION = 4;
346
346
  var MIGRATIONS = [
347
347
  `CREATE TABLE IF NOT EXISTS meta (
348
348
  key TEXT PRIMARY KEY,
@@ -362,20 +362,6 @@ var MIGRATIONS = [
362
362
  )`,
363
363
  `CREATE INDEX IF NOT EXISTS idx_translations_type_locale
364
364
  ON translations(content_type, locale)`,
365
- `CREATE TABLE IF NOT EXISTS revisions (
366
- id INTEGER PRIMARY KEY AUTOINCREMENT,
367
- content_type TEXT NOT NULL,
368
- en_slug TEXT NOT NULL,
369
- locale TEXT,
370
- revision_kind TEXT NOT NULL,
371
- en_hash TEXT NOT NULL,
372
- body_hash TEXT NOT NULL,
373
- created_at TEXT NOT NULL,
374
- model TEXT,
375
- body_preview TEXT
376
- )`,
377
- `CREATE INDEX IF NOT EXISTS idx_revisions_lookup
378
- ON revisions(content_type, en_slug, locale, created_at DESC)`,
379
365
  `CREATE TABLE IF NOT EXISTS slug_aliases (
380
366
  content_type TEXT NOT NULL,
381
367
  canonical_en_slug TEXT NOT NULL,
@@ -392,7 +378,19 @@ var MIGRATIONS = [
392
378
  locale_slug TEXT NOT NULL,
393
379
  captured_at TEXT NOT NULL,
394
380
  PRIMARY KEY (content_type, alias_en_slug, locale)
395
- )`
381
+ )`,
382
+ `CREATE TABLE IF NOT EXISTS en_snapshots (
383
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
384
+ content_type TEXT NOT NULL,
385
+ en_slug TEXT NOT NULL,
386
+ en_hash TEXT NOT NULL,
387
+ frontmatter_json TEXT NOT NULL,
388
+ body TEXT NOT NULL,
389
+ created_at TEXT NOT NULL,
390
+ UNIQUE (content_type, en_slug, en_hash)
391
+ )`,
392
+ `CREATE INDEX IF NOT EXISTS idx_en_snapshots_lookup
393
+ ON en_snapshots(content_type, en_slug, created_at DESC)`
396
394
  ];
397
395
  function resolveStorePath(config) {
398
396
  return config.storePath;
@@ -414,12 +412,19 @@ function addColumnIfMissing(db, table, column, ddlType) {
414
412
  db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${ddlType}`);
415
413
  }
416
414
  }
415
+ function readSchemaVersion(db) {
416
+ const row = db.prepare(`SELECT value FROM meta WHERE key = 'schema_version'`).get();
417
+ return row ? Number.parseInt(row.value, 10) || 0 : 0;
418
+ }
417
419
  function migrate(db) {
420
+ const previousVersion = readSchemaVersion(db);
418
421
  for (const sql of MIGRATIONS) {
419
422
  db.exec(sql);
420
423
  }
421
- addColumnIfMissing(db, "revisions", "frontmatter_json", "TEXT");
422
- addColumnIfMissing(db, "revisions", "body", "TEXT");
424
+ if (previousVersion < 4) {
425
+ db.exec(`DROP TABLE IF EXISTS revisions`);
426
+ }
427
+ addColumnIfMissing(db, "translations", "snapshot_id", "INTEGER");
423
428
  db.prepare(
424
429
  `INSERT INTO meta(key, value) VALUES('schema_version', ?)
425
430
  ON CONFLICT(key) DO UPDATE SET value = excluded.value`
@@ -427,6 +432,9 @@ function migrate(db) {
427
432
  }
428
433
 
429
434
  // src/storage/translations.ts
435
+ function getEnSnapshot(db, snapshotId) {
436
+ return db.prepare(`SELECT * FROM en_snapshots WHERE id = ?`).get(snapshotId);
437
+ }
430
438
  function getTranslation(db, contentType, enSlug, locale) {
431
439
  return db.prepare(
432
440
  `SELECT * FROM translations WHERE content_type = ? AND en_slug = ? AND locale = ?`
@@ -435,20 +443,6 @@ function getTranslation(db, contentType, enSlug, locale) {
435
443
  function listTranslationsForLocale(db, contentType, locale) {
436
444
  return db.prepare(`SELECT * FROM translations WHERE content_type = ? AND locale = ? ORDER BY en_slug`).all(contentType, locale);
437
445
  }
438
- function listRevisions(db, contentType, enSlug, locale) {
439
- if (locale) {
440
- return db.prepare(
441
- `SELECT * FROM revisions
442
- WHERE content_type = ? AND en_slug = ? AND locale = ?
443
- ORDER BY created_at DESC, id DESC`
444
- ).all(contentType, enSlug, locale);
445
- }
446
- return db.prepare(
447
- `SELECT * FROM revisions
448
- WHERE content_type = ? AND en_slug = ?
449
- ORDER BY created_at DESC, id DESC`
450
- ).all(contentType, enSlug);
451
- }
452
446
 
453
447
  // src/loader/normalize-en.ts
454
448
  function normalizeEnFrontmatter(data) {
@@ -681,38 +675,31 @@ function renderFrontmatterTable(frontmatter, schema) {
681
675
  <tbody>${rows || `<tr><td colspan="2" class="dim">\u2014</td></tr>`}</tbody>
682
676
  </table>`;
683
677
  }
684
- function renderRevisionSnapshot(revision) {
685
- if (revision.frontmatter_json && revision.body) {
686
- let frontmatter = {};
687
- try {
688
- frontmatter = JSON.parse(revision.frontmatter_json);
689
- } catch {
690
- frontmatter = {};
691
- }
692
- const fmRows = flattenFrontmatter(frontmatter).map(
693
- (row) => `<tr><td class="k">${escapeHtml(row.key)}</td><td class="v">${escapeHtml(row.value)}</td></tr>`
694
- ).join("");
695
- return `<table class="kv"><tbody>${fmRows}</tbody></table>
696
- <pre class="code">${escapeHtml(revision.body)}</pre>`;
678
+ function renderEnSnapshotPreview(snapshot) {
679
+ let frontmatter = {};
680
+ try {
681
+ frontmatter = JSON.parse(snapshot.frontmatter_json);
682
+ } catch {
683
+ frontmatter = {};
697
684
  }
698
- return `<p class="dim">${escapeHtml(revision.body_preview ?? "(no snapshot)")}</p>`;
685
+ const fmRows = flattenFrontmatter(frontmatter).map(
686
+ (row) => `<tr><td class="k">${escapeHtml(row.key)}</td><td class="v">${escapeHtml(row.value)}</td></tr>`
687
+ ).join("");
688
+ return `<table class="kv"><tbody>${fmRows}</tbody></table>
689
+ <pre class="code">${escapeHtml(snapshot.body)}</pre>`;
699
690
  }
700
- function renderRevisionTimeline(revisions) {
701
- if (revisions.length === 0) {
702
- return `<p class="dim">No history.</p>`;
691
+ function renderTranslationSnapshotPanel(snapshot, currentEnHash) {
692
+ if (!snapshot) {
693
+ return `<p class="dim">No EN snapshot linked to this translation.</p>`;
703
694
  }
704
- const items = revisions.map(
705
- (row) => `<tr>
706
- <td class="dim">${escapeHtml(row.created_at.slice(0, 19))}</td>
707
- <td>${escapeHtml(row.revision_kind)}</td>
708
- <td class="dim">${row.model ? escapeHtml(row.model) : "\u2014"}</td>
709
- <td class="dim mono">${escapeHtml(row.en_hash.slice(0, 8))}</td>
710
- <td><details><summary>view</summary>${renderRevisionSnapshot(row)}</details></td>
711
- </tr>`
712
- ).join("");
713
- return `<table class="data"><thead><tr>
714
- <th>When</th><th>Kind</th><th>Model</th><th>Hash</th><th></th>
715
- </tr></thead><tbody>${items}</tbody></table>`;
695
+ const staleNote = currentEnHash && currentEnHash !== snapshot.en_hash ? `<p class="dim">Current EN hash differs from snapshot (${escapeHtml(currentEnHash.slice(0, 12))} vs ${escapeHtml(snapshot.en_hash.slice(0, 12))}).</p>` : "";
696
+ return `<dl class="meta">
697
+ <dt>snapshot</dt><dd>#${snapshot.id}</dd>
698
+ <dt>captured</dt><dd>${escapeHtml(snapshot.created_at.slice(0, 19))}</dd>
699
+ <dt>en_hash</dt><dd class="mono">${escapeHtml(snapshot.en_hash.slice(0, 12))}</dd>
700
+ </dl>
701
+ ${staleNote}
702
+ <details><summary>EN source at translation time</summary>${renderEnSnapshotPreview(snapshot)}</details>`;
716
703
  }
717
704
  function renderLayout(title, body, project, options = {}) {
718
705
  const typeLinks = project.listTypes().map((type) => {
@@ -1023,10 +1010,10 @@ async function startStudio(project, options = {}) {
1023
1010
  <dt>slug</dt><dd>${escapeHtml(translation.slug)}</dd>
1024
1011
  <dt>en_hash</dt><dd>${escapeHtml(currentEnHash?.slice(0, 12) ?? "\u2014")} / ${escapeHtml(storedEnHash?.slice(0, 12) ?? "\u2014")}</dd>
1025
1012
  </dl>`;
1026
- const revisions = listRevisions(db, typeId, enSlug, locale);
1013
+ const snapshot = translation.snapshot_id != null ? getEnSnapshot(db, translation.snapshot_id) : void 0;
1027
1014
  historyPanel = `<div class="section">
1028
- <div class="section-head">History</div>
1029
- <div class="section-body">${renderRevisionTimeline(revisions)}</div>
1015
+ <div class="section-head">EN snapshot</div>
1016
+ <div class="section-body">${renderTranslationSnapshotPanel(snapshot, currentEnHash)}</div>
1030
1017
  </div>`;
1031
1018
  } else {
1032
1019
  contentPanel = `<p class="dim" style="padding:12px">No translation for ${escapeHtml(locale)}.</p>`;