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.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 = 2;
423
+ var SCHEMA_VERSION = 3;
422
424
  var MIGRATIONS = [
423
425
  `CREATE TABLE IF NOT EXISTS meta (
424
426
  key TEXT PRIMARY KEY,
@@ -475,17 +477,27 @@ function resolveStorePath(config) {
475
477
  }
476
478
  function openStore(config, mode = "readwrite") {
477
479
  const storePath = resolveStorePath(config);
478
- fs2__default.default.mkdirSync(path3__default.default.dirname(storePath), { recursive: true });
480
+ if (mode === "readwrite") {
481
+ fs2__default.default.mkdirSync(path3__default.default.dirname(storePath), { recursive: true });
482
+ }
479
483
  const db = new Database__default.default(storePath, { readonly: mode === "readonly" });
480
484
  if (mode === "readwrite") {
481
485
  migrate(db);
482
486
  }
483
487
  return db;
484
488
  }
489
+ function addColumnIfMissing(db, table, column, ddlType) {
490
+ const columns = db.prepare(`PRAGMA table_info(${table})`).all();
491
+ if (!columns.some((c) => c.name === column)) {
492
+ db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${ddlType}`);
493
+ }
494
+ }
485
495
  function migrate(db) {
486
496
  for (const sql of MIGRATIONS) {
487
497
  db.exec(sql);
488
498
  }
499
+ addColumnIfMissing(db, "revisions", "frontmatter_json", "TEXT");
500
+ addColumnIfMissing(db, "revisions", "body", "TEXT");
489
501
  db.prepare(
490
502
  `INSERT INTO meta(key, value) VALUES('schema_version', ?)
491
503
  ON CONFLICT(key) DO UPDATE SET value = excluded.value`