scribe-cms 0.0.2 → 0.0.5

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 (64) hide show
  1. package/README.md +2 -3
  2. package/bin/scribe.js +2 -11
  3. package/dist/cli/index.cjs +1437 -225
  4. package/dist/cli/index.cjs.map +1 -1
  5. package/dist/cli/index.js +1437 -226
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/prompt-translate.d.ts +16 -0
  8. package/dist/cli/prompt-translate.d.ts.map +1 -0
  9. package/dist/cli/translate-progress.d.ts +11 -0
  10. package/dist/cli/translate-progress.d.ts.map +1 -0
  11. package/dist/index.cjs +591 -147
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.js +587 -148
  14. package/dist/index.js.map +1 -1
  15. package/dist/runtime.cjs +14 -2
  16. package/dist/runtime.cjs.map +1 -1
  17. package/dist/runtime.js +14 -2
  18. package/dist/runtime.js.map +1 -1
  19. package/dist/src/config/resolve-config.d.ts.map +1 -1
  20. package/dist/src/core/field.d.ts +2 -0
  21. package/dist/src/core/field.d.ts.map +1 -1
  22. package/dist/src/core/types.d.ts +5 -1
  23. package/dist/src/core/types.d.ts.map +1 -1
  24. package/dist/src/export/build-static-raw-exports.d.ts +37 -0
  25. package/dist/src/export/build-static-raw-exports.d.ts.map +1 -0
  26. package/dist/src/export/write-static-raw-exports.d.ts +12 -0
  27. package/dist/src/export/write-static-raw-exports.d.ts.map +1 -0
  28. package/dist/src/history/record-revision.d.ts +2 -0
  29. package/dist/src/history/record-revision.d.ts.map +1 -1
  30. package/dist/src/index.d.ts +7 -0
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/storage/sqlite.d.ts.map +1 -1
  33. package/dist/src/storage/translations.d.ts +6 -0
  34. package/dist/src/storage/translations.d.ts.map +1 -1
  35. package/dist/src/translate/gemini-client.d.ts +7 -0
  36. package/dist/src/translate/gemini-client.d.ts.map +1 -1
  37. package/dist/src/translate/gemini-models.d.ts +8 -0
  38. package/dist/src/translate/gemini-models.d.ts.map +1 -0
  39. package/dist/src/translate/gemini-pricing.d.ts +11 -0
  40. package/dist/src/translate/gemini-pricing.d.ts.map +1 -0
  41. package/dist/src/translate/page-translator.d.ts +38 -1
  42. package/dist/src/translate/page-translator.d.ts.map +1 -1
  43. package/dist/src/translate/prompts/translation-prompt.d.ts +1 -2
  44. package/dist/src/translate/prompts/translation-prompt.d.ts.map +1 -1
  45. package/dist/src/translate/response-schema.d.ts +7 -0
  46. package/dist/src/translate/response-schema.d.ts.map +1 -0
  47. package/dist/src/translate/validate-translation.d.ts +14 -0
  48. package/dist/src/translate/validate-translation.d.ts.map +1 -0
  49. package/dist/src/translate/worklist.d.ts +3 -0
  50. package/dist/src/translate/worklist.d.ts.map +1 -1
  51. package/dist/src/validate/validate-assets.d.ts +20 -0
  52. package/dist/src/validate/validate-assets.d.ts.map +1 -0
  53. package/dist/src/validate/validate-project.d.ts +1 -1
  54. package/dist/src/validate/validate-project.d.ts.map +1 -1
  55. package/dist/src/version.d.ts +4 -0
  56. package/dist/src/version.d.ts.map +1 -0
  57. package/dist/studio/server.cjs +611 -194
  58. package/dist/studio/server.cjs.map +1 -1
  59. package/dist/studio/server.d.ts +1 -1
  60. package/dist/studio/server.d.ts.map +1 -1
  61. package/dist/studio/server.js +611 -194
  62. package/dist/studio/server.js.map +1 -1
  63. package/package.json +16 -5
  64. package/bin/ensure-built.mjs +0 -31
package/dist/runtime.js CHANGED
@@ -70,6 +70,7 @@ function resolveConfig(input, baseDir) {
70
70
  const projectRoot = path3.resolve(process.cwd(), raw.rootDir);
71
71
  const contentRoot = path3.resolve(projectRoot, raw.contentDir ?? "content");
72
72
  const storePath = path3.resolve(projectRoot, raw.store ?? ".scribe/store.sqlite");
73
+ const assetsPath = raw.assetsDir ? path3.resolve(projectRoot, raw.assetsDir) : void 0;
73
74
  const seenIds = /* @__PURE__ */ new Set();
74
75
  const types = raw.types.map((type) => {
75
76
  if (seenIds.has(type.id)) {
@@ -90,6 +91,7 @@ function resolveConfig(input, baseDir) {
90
91
  const config = {
91
92
  rootDir: contentRoot,
92
93
  storePath,
94
+ assetsPath,
93
95
  locales: [...raw.locales],
94
96
  defaultLocale,
95
97
  localePresets: raw.localePresets,
@@ -409,7 +411,7 @@ function seoFieldsFromEn(enDoc) {
409
411
  redirectTo: enDoc.redirectTo
410
412
  };
411
413
  }
412
- var SCHEMA_VERSION = 2;
414
+ var SCHEMA_VERSION = 3;
413
415
  var MIGRATIONS = [
414
416
  `CREATE TABLE IF NOT EXISTS meta (
415
417
  key TEXT PRIMARY KEY,
@@ -466,17 +468,27 @@ function resolveStorePath(config) {
466
468
  }
467
469
  function openStore(config, mode = "readwrite") {
468
470
  const storePath = resolveStorePath(config);
469
- fs2.mkdirSync(path3.dirname(storePath), { recursive: true });
471
+ if (mode === "readwrite") {
472
+ fs2.mkdirSync(path3.dirname(storePath), { recursive: true });
473
+ }
470
474
  const db = new Database(storePath, { readonly: mode === "readonly" });
471
475
  if (mode === "readwrite") {
472
476
  migrate(db);
473
477
  }
474
478
  return db;
475
479
  }
480
+ function addColumnIfMissing(db, table, column, ddlType) {
481
+ const columns = db.prepare(`PRAGMA table_info(${table})`).all();
482
+ if (!columns.some((c) => c.name === column)) {
483
+ db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${ddlType}`);
484
+ }
485
+ }
476
486
  function migrate(db) {
477
487
  for (const sql of MIGRATIONS) {
478
488
  db.exec(sql);
479
489
  }
490
+ addColumnIfMissing(db, "revisions", "frontmatter_json", "TEXT");
491
+ addColumnIfMissing(db, "revisions", "body", "TEXT");
480
492
  db.prepare(
481
493
  `INSERT INTO meta(key, value) VALUES('schema_version', ?)
482
494
  ON CONFLICT(key) DO UPDATE SET value = excluded.value`