scribe-cms 0.0.17 → 0.0.20

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 (88) hide show
  1. package/README.md +10 -0
  2. package/dist/cli/index.cjs +4013 -555
  3. package/dist/cli/index.cjs.map +1 -1
  4. package/dist/cli/index.js +4011 -553
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/index.cjs +1502 -229
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.js +1487 -228
  9. package/dist/index.js.map +1 -1
  10. package/dist/runtime.cjs +435 -33
  11. package/dist/runtime.cjs.map +1 -1
  12. package/dist/runtime.js +434 -32
  13. package/dist/runtime.js.map +1 -1
  14. package/dist/src/config/resolve-config.d.ts.map +1 -1
  15. package/dist/src/core/builtin-fields.d.ts +10 -1
  16. package/dist/src/core/builtin-fields.d.ts.map +1 -1
  17. package/dist/src/core/field.d.ts +70 -0
  18. package/dist/src/core/field.d.ts.map +1 -1
  19. package/dist/src/core/introspect-schema.d.ts +31 -1
  20. package/dist/src/core/introspect-schema.d.ts.map +1 -1
  21. package/dist/src/core/managed-roots.d.ts +15 -0
  22. package/dist/src/core/managed-roots.d.ts.map +1 -0
  23. package/dist/src/core/types.d.ts +56 -4
  24. package/dist/src/core/types.d.ts.map +1 -1
  25. package/dist/src/create-project.d.ts +11 -1
  26. package/dist/src/create-project.d.ts.map +1 -1
  27. package/dist/src/create-scribe.d.ts.map +1 -1
  28. package/dist/src/delete/execute.d.ts +21 -0
  29. package/dist/src/delete/execute.d.ts.map +1 -0
  30. package/dist/src/delete/plan.d.ts +85 -0
  31. package/dist/src/delete/plan.d.ts.map +1 -0
  32. package/dist/src/delete/render-text.d.ts +7 -0
  33. package/dist/src/delete/render-text.d.ts.map +1 -0
  34. package/dist/src/hash/page-hash.d.ts +9 -0
  35. package/dist/src/hash/page-hash.d.ts.map +1 -1
  36. package/dist/src/index.d.ts +12 -3
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/inline/resolve-tokens.d.ts +31 -0
  39. package/dist/src/inline/resolve-tokens.d.ts.map +1 -0
  40. package/dist/src/inline/tokens.d.ts +95 -0
  41. package/dist/src/inline/tokens.d.ts.map +1 -0
  42. package/dist/src/loader/create-loader.d.ts +7 -1
  43. package/dist/src/loader/create-loader.d.ts.map +1 -1
  44. package/dist/src/loader/resolve-assets.d.ts +16 -0
  45. package/dist/src/loader/resolve-assets.d.ts.map +1 -0
  46. package/dist/src/runtime.d.ts +1 -1
  47. package/dist/src/runtime.d.ts.map +1 -1
  48. package/dist/src/storage/translations.d.ts +8 -0
  49. package/dist/src/storage/translations.d.ts.map +1 -1
  50. package/dist/src/translate/resolve-translate-config.d.ts.map +1 -1
  51. package/dist/src/translate/response-schema.d.ts +7 -1
  52. package/dist/src/translate/response-schema.d.ts.map +1 -1
  53. package/dist/src/translate/translate-core.d.ts +6 -0
  54. package/dist/src/translate/translate-core.d.ts.map +1 -1
  55. package/dist/src/translate/validate-translation.d.ts.map +1 -1
  56. package/dist/src/translate/worklist.d.ts +8 -1
  57. package/dist/src/translate/worklist.d.ts.map +1 -1
  58. package/dist/src/validate/validate-assets.d.ts +26 -2
  59. package/dist/src/validate/validate-assets.d.ts.map +1 -1
  60. package/dist/src/validate/validate-inline-tokens.d.ts +10 -0
  61. package/dist/src/validate/validate-inline-tokens.d.ts.map +1 -0
  62. package/dist/src/validate/validate-project.d.ts.map +1 -1
  63. package/dist/src/validate/validate-relations.d.ts +2 -1
  64. package/dist/src/validate/validate-relations.d.ts.map +1 -1
  65. package/dist/studio/asset-serve.d.ts +39 -0
  66. package/dist/studio/asset-serve.d.ts.map +1 -0
  67. package/dist/studio/asset-views.d.ts +4 -0
  68. package/dist/studio/asset-views.d.ts.map +1 -0
  69. package/dist/studio/content-views.d.ts +85 -0
  70. package/dist/studio/content-views.d.ts.map +1 -0
  71. package/dist/studio/introspect-fields.d.ts +111 -0
  72. package/dist/studio/introspect-fields.d.ts.map +1 -0
  73. package/dist/studio/mdx-preview.d.ts +3 -0
  74. package/dist/studio/mdx-preview.d.ts.map +1 -0
  75. package/dist/studio/preview-tokens.d.ts +16 -0
  76. package/dist/studio/preview-tokens.d.ts.map +1 -0
  77. package/dist/studio/search.d.ts +34 -0
  78. package/dist/studio/search.d.ts.map +1 -0
  79. package/dist/studio/server.cjs +4691 -304
  80. package/dist/studio/server.cjs.map +1 -1
  81. package/dist/studio/server.d.ts.map +1 -1
  82. package/dist/studio/server.js +4689 -302
  83. package/dist/studio/server.js.map +1 -1
  84. package/dist/studio/shared.d.ts +20 -0
  85. package/dist/studio/shared.d.ts.map +1 -0
  86. package/dist/studio/studio-cache.d.ts +93 -0
  87. package/dist/studio/studio-cache.d.ts.map +1 -0
  88. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,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,CAsEd"}
1
+ {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../../src/config/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,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,CAuFd"}
@@ -10,6 +10,13 @@ export interface BuiltinEnFields {
10
10
  noindex: boolean;
11
11
  /** Set only when explicitly provided in EN frontmatter. */
12
12
  canonicalPathOverride?: string;
13
+ /**
14
+ * Reserved `vars` map: an optional `Record<string, string>` any entry may
15
+ * carry WITHOUT declaring it in the type schema. Read by `${{var:key}}` inline
16
+ * tokens; never translated (it is not a schema field). Kept verbatim (even
17
+ * when malformed) so `scribe validate` can flag a non-string-record shape.
18
+ */
19
+ vars?: Record<string, string>;
13
20
  }
14
21
  export interface BuiltinParseIssue {
15
22
  field: string;
@@ -32,7 +39,9 @@ export declare function documentLastModified(doc: {
32
39
  /** Locale-aware pathname for a document. */
33
40
  export declare function resolveCanonicalPathname(type: Pick<ContentTypeConfig, "path">, doc: Pick<ScribeDocument, "slug" | "locale" | "canonicalPathOverride">, defaultLocale: string, localeRouting?: LocaleRoutingConfig): string;
34
41
  /** Hydrate locale frontmatter with EN-only built-in fields at load time. */
35
- export declare function mergeBuiltinsIntoFrontmatter(frontmatter: Record<string, unknown>, doc: Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride" | "slug" | "locale">, type: Pick<ContentTypeConfig, "path">, defaultLocale: string, localeRouting?: LocaleRoutingConfig): Record<string, unknown>;
42
+ export declare function mergeBuiltinsIntoFrontmatter(frontmatter: Record<string, unknown>, doc: Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride" | "slug" | "locale"> & {
43
+ vars?: Record<string, string>;
44
+ }, type: Pick<ContentTypeConfig, "path">, defaultLocale: string, localeRouting?: LocaleRoutingConfig): Record<string, unknown>;
36
45
  export declare function seoFieldsFromEn(enDoc: ScribeDocument): Pick<ScribeDocument, "publishedAt" | "updatedAt" | "noindex" | "canonicalPathOverride">;
37
46
  export { pathPrefix, pathSuffix };
38
47
  //# sourceMappingURL=builtin-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-fields.d.ts","sourceRoot":"","sources":["../../../src/core/builtin-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,YAAY,QAA+B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,aAE6B,CAAC;AAE5D,eAAO,MAAM,aAAa,aAE+D,CAAC;AAI1F,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAwBD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CAmFA;AAED,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAQ9F;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAC,EACtE,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAYR;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,EAAE,IAAI,CACP,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CACtF,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAC1D,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAClE,CAOA;AAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"builtin-fields.d.ts","sourceRoot":"","sources":["../../../src/core/builtin-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,YAAY,QAA+B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,aAE6B,CAAC;AAE5D,eAAO,MAAM,aAAa,aAE+D,CAAC;AAI1F,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAwBD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CA6FA;AAED,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAQ9F;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAC,EACtE,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAYR;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,EAAE,IAAI,CACP,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CACtF,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACrC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACrC,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,mBAAmB,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAC1D,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAClE,CAOA;AAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
@@ -1,9 +1,32 @@
1
1
  import type { z as Zod } from "zod";
2
2
  export type FieldKind = "translatable" | "structural";
3
+ /**
4
+ * What happens to a document that references a target when that target is
5
+ * deleted (see `docs/deletion.md`).
6
+ * - `"restrict"` (default) — deletion of the target is blocked.
7
+ * - `"detach"` — the reference is removed (dropped from arrays, optional single
8
+ * relations cleared). A required single relation can never be detached.
9
+ * - `"cascade"` — the referencing document is deleted too, recursively.
10
+ */
11
+ export type OnTargetDelete = "restrict" | "detach" | "cascade";
12
+ /** What happens to an asset file when its own document is deleted. Default `"delete"`. */
13
+ export type AssetOnDelete = "delete" | "keep";
3
14
  export interface RelationMeta {
4
15
  typeId: string;
5
16
  multiple: boolean;
6
17
  optional: boolean;
18
+ /** Cascade behavior applied when the referenced target is deleted. */
19
+ onTargetDelete: OnTargetDelete;
20
+ }
21
+ /** Constraints carried by a `field.asset()` schema (see `docs/assets.md`). */
22
+ export interface AssetMeta {
23
+ dir?: string;
24
+ template?: string;
25
+ formats?: string[];
26
+ maxKB?: number;
27
+ optional: boolean;
28
+ /** Whether the file is removed when its document is deleted. Default `"delete"`. */
29
+ onDelete: AssetOnDelete;
7
30
  }
8
31
  /**
9
32
  * Type-level brand carried by `field.relation()` schemas so the target
@@ -24,6 +47,8 @@ export type RelationField<TZod extends Zod.ZodTypeAny, TBrand extends RelationBr
24
47
  export declare function getFieldKind(schema: Zod.ZodTypeAny): FieldKind;
25
48
  /** Return relation metadata if the field was created with `field.relation()`. */
26
49
  export declare function getRelationTarget(schema: Zod.ZodTypeAny): RelationMeta | null;
50
+ /** Return asset metadata if the field was created with `field.asset()`. */
51
+ export declare function getAssetMeta(schema: Zod.ZodTypeAny): AssetMeta | null;
27
52
  /**
28
53
  * Options for `field.relation()`. Constraints live here (not as chained Zod
29
54
  * methods) because chaining clones the schema and would drop the relation
@@ -38,8 +63,50 @@ export interface RelationFieldOptions {
38
63
  min?: number;
39
64
  /** Maximum item count (`multiple: true` only). */
40
65
  max?: number;
66
+ /**
67
+ * What happens to THIS document when the referenced target is deleted:
68
+ * `"restrict"` (default), `"detach"`, or `"cascade"`. See `docs/deletion.md`.
69
+ */
70
+ onTargetDelete?: OnTargetDelete;
71
+ }
72
+ /**
73
+ * Options for `field.asset()`. Constraints live here (not as chained Zod
74
+ * methods) because chaining clones the schema and would drop the asset
75
+ * metadata. See `docs/assets.md` for the full design.
76
+ */
77
+ export interface AssetFieldOptions {
78
+ /** Web-path prefix the value must live under (e.g. `"/try-on/garments"`). Also declares a managed root. */
79
+ dir?: string;
80
+ /**
81
+ * Derived-path template, e.g. `"/try-on/garments/{slug}/product.webp"` —
82
+ * `{slug}` is the entry's EN slug. When set, the frontmatter field may be
83
+ * omitted entirely; the loader fills it. An explicit frontmatter value
84
+ * overrides the template. Its static prefix counts as a managed root.
85
+ */
86
+ template?: string;
87
+ /** Allowed extensions (lowercase, no dot). Violation = validation warning. */
88
+ formats?: string[];
89
+ /** File-size budget in kilobytes. Violation = validation warning. */
90
+ maxKB?: number;
91
+ /** The field may be absent (only meaningful without `template`). A present value whose file is missing is still an error. */
92
+ optional?: boolean;
93
+ /**
94
+ * What happens to the file when its own document is deleted: `"delete"`
95
+ * (default) or `"keep"`. A shared (non-templated) path is only removed when no
96
+ * document outside the deletion set still references it. See `docs/deletion.md`.
97
+ */
98
+ onDelete?: AssetOnDelete;
41
99
  }
42
100
  type Bool<T> = [T] extends [true] ? true : false;
101
+ /**
102
+ * Zod shape of a `field.asset()` schema: optional only when `optional` is set.
103
+ *
104
+ * A non-optional `template` field types as `ZodString` even though the runtime
105
+ * schema tolerates an absent frontmatter value: the loader materializes the
106
+ * templated path onto every document it serves (`resolveDocumentAssets` runs on
107
+ * both EN and locale docs), so consumers always observe a `string`.
108
+ */
109
+ export type AssetField<TOpts extends AssetFieldOptions = AssetFieldOptions> = Bool<TOpts["optional"]> extends true ? Zod.ZodOptional<Zod.ZodString> : Zod.ZodString;
43
110
  type RelationZod<TOpts extends RelationFieldOptions> = Bool<TOpts["optional"]> extends true ? Zod.ZodOptional<Bool<TOpts["multiple"]> extends true ? Zod.ZodArray<Zod.ZodString> : Zod.ZodString> : Bool<TOpts["multiple"]> extends true ? Zod.ZodArray<Zod.ZodString> : Zod.ZodString;
44
111
  type RelationFieldFor<TTarget extends string, TOpts extends RelationFieldOptions> = RelationField<RelationZod<TOpts>, RelationBrand<TTarget, Bool<TOpts["multiple"]>, Bool<TOpts["optional"]>>>;
45
112
  /**
@@ -48,11 +115,14 @@ type RelationFieldFor<TTarget extends string, TOpts extends RelationFieldOptions
48
115
  * - `structural(schema)` — EN-only; merged from EN into every locale document.
49
116
  * - `relation(typeId, options?)` — EN slug reference(s) to another content type,
50
117
  * validated by `scribe validate` and dereferenced via `scribe.<type>.related()`.
118
+ * - `asset(options?)` — root-relative web path to a file under `assets.dir`,
119
+ * validated by `scribe validate` and resolved to a served URL at load time.
51
120
  */
52
121
  export declare const field: {
53
122
  translatable: <T extends Zod.ZodTypeAny>(schema: T) => T;
54
123
  structural: <T extends Zod.ZodTypeAny>(schema: T) => T;
55
124
  relation: <const TTarget extends string, const TOpts extends RelationFieldOptions = {}>(typeId: TTarget, options?: TOpts) => RelationFieldFor<TTarget, TOpts>;
125
+ asset: <const TOpts extends AssetFieldOptions = {}>(options?: TOpts) => AssetField<TOpts>;
56
126
  };
57
127
  /** Strip Zod wrappers (optional, default, etc.) to reach the inner schema. */
58
128
  export declare function unwrapSchema(schema: Zod.ZodTypeAny): Zod.ZodTypeAny;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/core/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/core/field.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,MAAM,KAAK,CAAC;AAMpC,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,0FAA0F;AAC1F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAEnD,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,SAAS,SAAS,OAAO,GAAG,OAAO,EACnC,SAAS,SAAS,OAAO,GAAG,OAAO;IAEnC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,CACvB,IAAI,SAAS,GAAG,CAAC,UAAU,EAC3B,MAAM,SAAS,aAAa,IAC1B,IAAI,GAAG;IAAE,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAG9D;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,IAAI,CA2B7E;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CA2BrE;AA6BD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,2GAA2G;IAC3G,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,iBAAiB,GAAG,iBAAiB,IACxE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;AAExF,KAAK,WAAW,CAAC,KAAK,SAAS,oBAAoB,IACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,GAChC,GAAG,CAAC,WAAW,CACb,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CACnF,GACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,IAAI,GAClC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAC3B,GAAG,CAAC,SAAS,CAAC;AAEtB,KAAK,gBAAgB,CACnB,OAAO,SAAS,MAAM,EACtB,KAAK,SAAS,oBAAoB,IAChC,aAAa,CACf,WAAW,CAAC,KAAK,CAAC,EAClB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CACzE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK;mBACD,CAAC,SAAS,GAAG,CAAC,UAAU,UAAU,CAAC,KAAG,CAAC;iBACzC,CAAC,SAAS,GAAG,CAAC,UAAU,UAAU,CAAC,KAAG,CAAC;qBACnC,OAAO,SAAS,MAAM,QAAQ,KAAK,SAAS,oBAAoB,eACvE,OAAO,YACL,KAAK,KACd,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;kBAsBrB,KAAK,SAAS,iBAAiB,iBAAiB,KAAK,KAAG,UAAU,CAAC,KAAK,CAAC;CAexF,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAuBnE;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAe3E"}
@@ -1,10 +1,21 @@
1
1
  import type { z } from "zod";
2
+ import { type AssetOnDelete, type OnTargetDelete } from "./field.js";
3
+ import type { ContentTypeInput } from "./types.js";
2
4
  export interface SchemaFieldMeta {
3
5
  path: string[];
4
- kind: "translatable" | "structural" | "relation";
6
+ kind: "translatable" | "structural" | "relation" | "asset";
5
7
  relationTarget?: string;
6
8
  relationMultiple?: boolean;
7
9
  relationOptional?: boolean;
10
+ /** Cascade behavior when the referenced target is deleted (relation fields). */
11
+ relationOnTargetDelete?: OnTargetDelete;
12
+ assetDir?: string;
13
+ assetTemplate?: string;
14
+ assetFormats?: string[];
15
+ assetMaxKB?: number;
16
+ assetOptional?: boolean;
17
+ /** Whether the asset file is deleted with its document (asset fields). */
18
+ assetOnDelete?: AssetOnDelete;
8
19
  }
9
20
  /**
10
21
  * List schema fields with translatable/structural/relation metadata.
@@ -17,10 +28,29 @@ export declare function introspectSchema(schema: z.ZodTypeAny, prefix?: string[]
17
28
  export declare function extractByPaths(data: Record<string, unknown>, paths: string[][]): Record<string, unknown>;
18
29
  /** Extract frontmatter fields marked as translatable. */
19
30
  export declare function pickTranslatable(data: Record<string, unknown>, schema: z.ZodTypeAny): Record<string, unknown>;
31
+ /**
32
+ * Drop nested translatable output when the EN document has no matching structural
33
+ * parent (e.g. model-hallucinated blog `itemList` on posts with no ItemList SEO).
34
+ */
35
+ export declare function pruneOrphanNestedTranslations(localeData: Record<string, unknown>, enData: Record<string, unknown>, schema: z.ZodTypeAny): Record<string, unknown>;
20
36
  /** Extract frontmatter fields marked as structural (EN-only). */
21
37
  export declare function pickStructural(data: Record<string, unknown>, schema: z.ZodTypeAny): Record<string, unknown>;
22
38
  /** Merge EN structural fields onto a locale document's frontmatter at load time. */
23
39
  export declare function mergeStructuralOntoLocale(localeData: Record<string, unknown>, enData: Record<string, unknown>, schema: z.ZodTypeAny): Record<string, unknown>;
40
+ /** Collect the schema fields marked `field.translatable()`. */
41
+ export declare function listTranslatableFields(schema: z.ZodTypeAny): SchemaFieldMeta[];
42
+ /**
43
+ * Whether a content type has anything to translate. A type with a body is
44
+ * always potentially translatable; a bodyless type (`body: false`) is
45
+ * translatable only when at least one schema field is `field.translatable()`.
46
+ *
47
+ * The single source of truth for every translation workflow (worklist, staleness,
48
+ * status counts, studio dashboards, store writes): a type for which this returns
49
+ * `false` disappears from all of them.
50
+ */
51
+ export declare function isTypeTranslatable(type: Pick<ContentTypeInput, "schema" | "body">): boolean;
24
52
  /** Collect relation field paths and targets from a content schema. */
25
53
  export declare function listRelationFields(schema: z.ZodTypeAny): SchemaFieldMeta[];
54
+ /** Collect asset field paths and constraints from a content schema. */
55
+ export declare function listAssetFields(schema: z.ZodTypeAny): SchemaFieldMeta[];
26
56
  //# sourceMappingURL=introspect-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"introspect-schema.d.ts","sourceRoot":"","sources":["../../../src/core/introspect-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,eAAe,EAAE,CA4C/F;AAkDD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,EAAE,EAAE,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7G;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK3G;AAED,oFAAoF;AACpF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAwCD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,eAAe,EAAE,CAE1E"}
1
+ {"version":3,"file":"introspect-schema.d.ts","sourceRoot":"","sources":["../../../src/core/introspect-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAaD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,eAAe,EAAE,CA6D/F;AAkDD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,EAAE,EAAE,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7G;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK3G;AAED,oFAAoF;AACpF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAwCD,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,eAAe,EAAE,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAE3F;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,eAAe,EAAE,CAE1E;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,eAAe,EAAE,CAEvE"}
@@ -0,0 +1,15 @@
1
+ import type { ScribeConfig } from "./types.js";
2
+ /**
3
+ * Managed root implied by a template's static prefix: the substring up to the
4
+ * first `{`, with the trailing partial path segment dropped.
5
+ * `"/try-on/garments/{slug}/product.webp"` → `"/try-on/garments"`.
6
+ */
7
+ export declare function templateManagedRoot(template: string): string;
8
+ /**
9
+ * Set of Scribe-owned source roots (web paths) for the phase-2 audit layer;
10
+ * files outside these roots are never reported or touched. Union of
11
+ * `assets.managedDirs` and every asset field's `dir`/`template` prefix.
12
+ * Deduped and sorted; empty when the asset system is disabled.
13
+ */
14
+ export declare function getManagedRoots(config: ScribeConfig): string[];
15
+ //# sourceMappingURL=managed-roots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-roots.d.ts","sourceRoot":"","sources":["../../../src/core/managed-roots.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAyB9D"}
@@ -82,6 +82,17 @@ export interface ContentTypeInput<TSchema extends z.ZodTypeAny = z.ZodTypeAny> {
82
82
  indexFallback?: IndexFallback;
83
83
  /** Default sort for `list()`. Default: `"slug"`. */
84
84
  orderBy?: OrderBy<ScribeDocument<z.infer<TSchema>>>;
85
+ /**
86
+ * Whether entries carry an MDX body. Default: `true`. Set `false` for
87
+ * frontmatter-only reference types (e.g. structural `model`/`garment`
88
+ * catalogs): the loader skips MDX body work, validation errors on any
89
+ * non-empty body, translation payloads never include a body, and the studio
90
+ * shows a "frontmatter-only" chip instead of a body section. Combined with a
91
+ * schema that has no `field.translatable()` fields, the type is derived to be
92
+ * non-translatable and drops out of every translation workflow. See
93
+ * [Bodyless types](../../docs/bodyless-types.md).
94
+ */
95
+ body?: boolean;
85
96
  /** Custom validation across fields, run by `scribe validate`. */
86
97
  crossValidate?: (data: z.infer<TSchema>, ctx: CrossValidateContext) => CrossValidateIssue[];
87
98
  translate?: TranslateConfig;
@@ -93,6 +104,39 @@ export interface ContentTypeConfig<TSchema extends z.ZodTypeAny = z.ZodTypeAny>
93
104
  slugStrategy: SlugStrategy;
94
105
  indexFallback: IndexFallback;
95
106
  }
107
+ /**
108
+ * The `assets` config group. Passing `assets: {}` opts a project into the
109
+ * asset system with defaults; without it (and without the deprecated
110
+ * `assetsDir`), asset validation and loader resolution are skipped entirely.
111
+ * See [Asset management](../../docs/assets.md).
112
+ */
113
+ export interface AssetsConfigInput {
114
+ /** Where source files live on disk, relative to `rootDir`. Default: `"public"`. */
115
+ dir?: string;
116
+ /**
117
+ * URL prefix the frontend serves assets under — a path (`"/"`, `"/static/"`)
118
+ * or an absolute origin (`"https://cdn.example.com/"`). Default: `"/"`.
119
+ */
120
+ publicPath?: string;
121
+ /**
122
+ * Extra Scribe-owned roots (web paths) not covered by any `field.asset()`
123
+ * `dir`/`template` — e.g. directories referenced from MDX bodies. Used by the
124
+ * future audit layer; files outside managed roots are never reported.
125
+ */
126
+ managedDirs?: string[];
127
+ }
128
+ /** Resolved `assets` group (absolute `assetsPath`, defaults applied). */
129
+ export interface ResolvedAssetsConfig {
130
+ /** Absolute path to the static assets folder. */
131
+ assetsPath: string;
132
+ /** URL prefix served under (raw string; join via the loader helper). */
133
+ publicPath: string;
134
+ /** Extra Scribe-owned source roots (web paths) for the audit layer. */
135
+ managedDirs: string[];
136
+ }
137
+ /** Options reserved for the future asset preprocessing pipeline. Phase 1 throws on any provided key. */
138
+ export interface AssetUrlOptions {
139
+ }
96
140
  /**
97
141
  * The shape accepted by `defineConfig()` / `createScribe()`.
98
142
  * Relative paths (`contentDir`, `store`) resolve against `rootDir`.
@@ -104,8 +148,10 @@ export interface ScribeConfigInput<TTypes extends readonly ContentTypeInput<any>
104
148
  contentDir?: string;
105
149
  /** Path to the SQLite translation store. Default: `".scribe/store.sqlite"`. Commit this file; do not gitignore `.scribe/`. */
106
150
  store?: string;
107
- /** Path to the static assets folder (e.g. Next.js `public`). Relative to project `rootDir`. When set, `scribe validate` warns on missing image files. */
151
+ /** Path to the static assets folder (e.g. Next.js `public`). Relative to project `rootDir`. When set, `scribe validate` warns on missing image files. @deprecated Use `assets.dir` instead. */
108
152
  assetsDir?: string;
153
+ /** Asset system config (`{ dir, publicPath, managedDirs }`). Supersedes `assetsDir`. See [Asset management](../../docs/assets.md). */
154
+ assets?: AssetsConfigInput;
109
155
  /** All locales, including the default one. */
110
156
  locales: string[];
111
157
  /** Canonical source locale. Must be in `locales`. Default: `"en"`. */
@@ -127,14 +173,16 @@ export interface ScribeConfig {
127
173
  rootDir: string;
128
174
  /** Absolute path to the SQLite translation store. */
129
175
  storePath: string;
130
- /** Absolute path to the static assets folder, when `assetsDir` is configured. */
176
+ /** Absolute path to the static assets folder, when the asset system is enabled. Mirrors `assets.assetsPath` for back-compat (existing consumers read this). */
131
177
  assetsPath?: string;
178
+ /** Resolved asset system config; `undefined` unless `assets`/`assetsDir` was set. */
179
+ assets?: ResolvedAssetsConfig;
132
180
  locales: string[];
133
181
  defaultLocale: string;
134
182
  localeRouting: LocaleRoutingConfig;
135
183
  localePresets?: LocalePresets;
136
- /** Fallback chains derived from locale tags (`{}` when the feature is disabled). */
137
- localeFallbacks: LocaleFallbacks;
184
+ /** Fallback chains derived from locale tags (`{}` when the feature is disabled). `resolveConfig` always populates this; optional so hand-built config literals can omit it. */
185
+ localeFallbacks?: LocaleFallbacks;
138
186
  translate?: ScribeTranslateDefaults;
139
187
  types: ContentTypeConfig[];
140
188
  }
@@ -246,6 +294,10 @@ export type Scribe<TTypes extends readonly ContentTypeInput<any>[]> = {
246
294
  } & {
247
295
  /** Sitemap entries (with hreflang alternates) for all routable types. */
248
296
  sitemap(options: import("../sitemap/types.js").GenerateSitemapOptions): Promise<import("../sitemap/types.js").SitemapEntry[]>;
297
+ /** Asset URL helper: applies `assets.publicPath` to a root-relative web path. Escape hatch for MDX body images. */
298
+ assets: {
299
+ url(ref: string, opts?: AssetUrlOptions): string;
300
+ };
249
301
  /** The resolved config (defaults applied, paths absolute). */
250
302
  config: ScribeConfig;
251
303
  project: ScribeProject;
@@ -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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"}
@@ -4,7 +4,17 @@ import type { ScribeConfig, ScribeProject } from "./core/types.js";
4
4
  * Apps should use `createScribe()` for typed per-type accessors.
5
5
  * Expects a resolved config (`resolveConfig` / `loadConfigSync`).
6
6
  *
7
+ * @param options.resolveAssets resolve declared asset fields to served URLs on
8
+ * read (publicPath applied, templates materialized). Only `createScribe` sets
9
+ * this; the CLI, validation, and static exports keep source values.
10
+ * @param options.resolveInlineTokens substitute `${{...}}` inline tokens in
11
+ * document bodies on read (EN tokens filled in place, translated `%%n%%`
12
+ * markers filled from the current EN tokens). Only `createScribe` sets this;
13
+ * the CLI, validation, and studio keep raw token syntax.
7
14
  * @internal
8
15
  */
9
- export declare function createProject(config: ScribeConfig): ScribeProject;
16
+ export declare function createProject(config: ScribeConfig, options?: {
17
+ resolveAssets?: boolean;
18
+ resolveInlineTokens?: boolean;
19
+ }): ScribeProject;
10
20
  //# sourceMappingURL=create-project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../src/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EAEZ,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAsMzB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CA0BjE"}
1
+ {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../src/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EAEZ,aAAa,EAEd,MAAM,iBAAiB,CAAC;AA2MzB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GACvE,aAAa,CAuCf"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-scribe.d.ts","sourceRoot":"","sources":["../../src/create-scribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,EACN,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAChF,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,CAAC,CAoBhB"}
1
+ {"version":3,"file":"create-scribe.d.ts","sourceRoot":"","sources":["../../src/create-scribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,MAAM,EACN,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAOzB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAChF,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,CAAC,CA+BhB"}
@@ -0,0 +1,21 @@
1
+ import type { ScribeProject } from "../core/types.js";
2
+ import { type DeletionPlan } from "./plan.js";
3
+ export interface ExecuteDeletionResult {
4
+ /** EN files removed from disk. */
5
+ deletedFiles: string[];
6
+ /** Asset files removed from disk. */
7
+ deletedAssets: string[];
8
+ /** EN files rewritten to drop a detached reference. */
9
+ detachedFiles: string[];
10
+ /** Translation rows removed from the store. */
11
+ translationsDeleted: number;
12
+ /** EN snapshot rows removed from the store. */
13
+ snapshotsDeleted: number;
14
+ }
15
+ /**
16
+ * Execute a deletion plan: remove EN files, delete asset files, rewrite detach
17
+ * references, and clean up store rows. Refuses to run while the plan is blocked.
18
+ * Performs exactly the plan and nothing else.
19
+ */
20
+ export declare function executeDeletionPlan(project: ScribeProject, plan: DeletionPlan): ExecuteDeletionResult;
21
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/delete/execute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AA8DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,YAAY,GACjB,qBAAqB,CA4FvB"}
@@ -0,0 +1,85 @@
1
+ import type { ScribeProject } from "../core/types.js";
2
+ /**
3
+ * Deletion planning for `scribe delete` (CLI + studio). One module computes the
4
+ * full impact of deleting an entry — transitive cascades, reference detaches,
5
+ * blockers, asset files, and store rows — so both surfaces render and execute
6
+ * exactly the same plan. See `docs/deletion.md`.
7
+ */
8
+ /** The requested deletion (and any title for display). */
9
+ export interface DeletionRoot {
10
+ typeId: string;
11
+ enSlug: string;
12
+ title?: string;
13
+ }
14
+ /** A document deleted transitively because it cascaded from a deleted target. */
15
+ export interface DeletionCascade {
16
+ typeId: string;
17
+ enSlug: string;
18
+ /** Human-readable edge that pulled it in, e.g. `model=alice`. */
19
+ via: string;
20
+ }
21
+ /** A surviving document whose reference to a deleted target is removed. */
22
+ export interface DeletionDetach {
23
+ typeId: string;
24
+ enSlug: string;
25
+ fieldPath: string;
26
+ removedSlug: string;
27
+ }
28
+ /** A document that prevents the deletion (restrict, or a required single relation). */
29
+ export interface DeletionBlocker {
30
+ typeId: string;
31
+ enSlug: string;
32
+ fieldPath: string;
33
+ reason: "restrict" | "required-single";
34
+ }
35
+ /** An asset file owned by a deleted document. */
36
+ export interface DeletionAsset {
37
+ path: string;
38
+ ownerTypeId: string;
39
+ ownerEnSlug: string;
40
+ action: "delete" | "keep";
41
+ /** Why an asset is kept: config `onDelete: "keep"`, or a shared path referenced elsewhere. */
42
+ reason?: "config-keep" | "shared";
43
+ }
44
+ /** Per-document store row counts removed by the deletion. */
45
+ export interface DeletionStoreCounts {
46
+ typeId: string;
47
+ enSlug: string;
48
+ translations: number;
49
+ snapshots: number;
50
+ }
51
+ /**
52
+ * A surviving document whose MDX body references (via `${{relation:...}}`) a doc
53
+ * in the deletion set. Body relation tokens never cascade, detach, or block —
54
+ * they will simply dangle and become validation errors after the deletion.
55
+ */
56
+ export interface BodyRefWarning {
57
+ typeId: string;
58
+ enSlug: string;
59
+ targetTypeId: string;
60
+ targetEnSlug: string;
61
+ }
62
+ export interface DeletionPlan {
63
+ roots: DeletionRoot[];
64
+ cascades: DeletionCascade[];
65
+ detaches: DeletionDetach[];
66
+ blocked: DeletionBlocker[];
67
+ assets: DeletionAsset[];
68
+ store: DeletionStoreCounts[];
69
+ /** Warn-only: surviving body references that will dangle after deletion. */
70
+ bodyRefWarnings: BodyRefWarning[];
71
+ }
72
+ /** Whether a plan can be executed (no blockers). */
73
+ export declare function isPlanBlocked(plan: DeletionPlan): boolean;
74
+ /** Every document the plan removes (roots first, then transitive cascades). */
75
+ export declare function deletedDocs(plan: DeletionPlan): Array<{
76
+ typeId: string;
77
+ enSlug: string;
78
+ }>;
79
+ /**
80
+ * Compute the full deletion plan for one entry. Reads source (unresolved)
81
+ * frontmatter from the project's cached document lists — no side effects. Store
82
+ * row counts are read from the (read-only) SQLite store when it exists.
83
+ */
84
+ export declare function buildDeletionPlan(project: ScribeProject, typeId: string, enSlug: string): DeletionPlan;
85
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/delete/plan.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQtE;;;;;GAKG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAAC;CACxC;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAKzF;AAgFD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,YAAY,CAsPd"}
@@ -0,0 +1,7 @@
1
+ import type { DeletionPlan } from "./plan.js";
2
+ /**
3
+ * Render a deletion plan as grouped plain text for the CLI. Sections: header,
4
+ * cascades, detaches, assets, store counts, and blockers. No em dashes.
5
+ */
6
+ export declare function renderDeletionPlanText(plan: DeletionPlan): string;
7
+ //# sourceMappingURL=render-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-text.d.ts","sourceRoot":"","sources":["../../../src/delete/render-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAwEjE"}
@@ -2,6 +2,15 @@
2
2
  export declare function sha256(input: string): string;
3
3
  /** Hash translatable frontmatter + body for translation staleness detection. */
4
4
  export declare function computePageEnHash(translatableFrontmatter: Record<string, unknown>, body: string): string;
5
+ /**
6
+ * Canonical EN hash for translation staleness. Extracts inline tokens first and
7
+ * hashes the PLACEHOLDER body, so a token's value never restales a locale while
8
+ * adding/removing/moving tokens does. Every staleness-relevant site (translation
9
+ * prepare, worklist, studio badges) MUST route through this so the two ends of a
10
+ * comparison cannot diverge. A tokenless body hashes identically to
11
+ * `computePageEnHash(frontmatter, body)`.
12
+ */
13
+ export declare function computeTranslationEnHash(translatableFrontmatter: Record<string, unknown>, body: string): string;
5
14
  /** Hash MDX body content for revision tracking. */
6
15
  export declare function computeBodyHash(body: string): string;
7
16
  //# sourceMappingURL=page-hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-hash.d.ts","sourceRoot":"","sources":["../../../src/hash/page-hash.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,IAAI,EAAE,MAAM,GACX,MAAM,CAGR;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"page-hash.d.ts","sourceRoot":"","sources":["../../../src/hash/page-hash.ts"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,IAAI,EAAE,MAAM,GACX,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,IAAI,EAAE,MAAM,GACX,MAAM,CAGR;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -1,7 +1,10 @@
1
- export { field, getRelationTarget, getFieldKind, unwrapSchema } from "./core/field.js";
2
- export type { RelationBrand, RelationField, RelationFieldOptions, RelationMeta, } from "./core/field.js";
1
+ export { field, getRelationTarget, getAssetMeta, getFieldKind, unwrapSchema } from "./core/field.js";
2
+ export type { RelationBrand, RelationField, RelationFieldOptions, RelationMeta, AssetField, AssetFieldOptions, AssetMeta, OnTargetDelete, AssetOnDelete, } from "./core/field.js";
3
+ export { getManagedRoots, templateManagedRoot } from "./core/managed-roots.js";
4
+ export { introspectSchema, listTranslatableFields, listRelationFields, listAssetFields, isTypeTranslatable, } from "./core/introspect-schema.js";
5
+ export type { SchemaFieldMeta } from "./core/introspect-schema.js";
3
6
  export { defineConfig, defineContentType } from "./core/types.js";
4
- export type { ScribeConfigInput, ScribeConfig, ScribeProject, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, LocaleIndex, AllDocuments, ResolvedDocument, CrossValidateContext, CrossValidateIssue, TranslateConfig, ScribeTranslateDefaults, LocalePresets, LocaleFallbacks, LocaleRoutingConfig, SlugStrategy, IndexFallback, Scribe, InferDocMap, InferDocFromTypeConfig, RelationFieldsOf, RelatedMapFor, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
7
+ export type { ScribeConfigInput, ScribeConfig, ScribeProject, ScribeDocument, ContentTypeInput, ContentTypeConfig, ContentTypeRuntime, ListOptions, OrderBy, StaticParam, LocaleIndex, AllDocuments, ResolvedDocument, CrossValidateContext, CrossValidateIssue, TranslateConfig, ScribeTranslateDefaults, LocalePresets, LocaleFallbacks, LocaleRoutingConfig, SlugStrategy, IndexFallback, AssetsConfigInput, ResolvedAssetsConfig, AssetUrlOptions, Scribe, InferDocMap, InferDocFromTypeConfig, RelationFieldsOf, RelatedMapFor, ScribeClient, ScribeDocs, ScribeDocOf, } from "./core/types.js";
5
8
  export { createScribe } from "./create-scribe.js";
6
9
  export { createProject } from "./create-project.js";
7
10
  export { isRoutableType, createUrlBuilder } from "./i18n/build-url.js";
@@ -24,4 +27,10 @@ export type { BuildStaticRawExportsOptions, StaticRawExport, } from "./export/bu
24
27
  export { writeStaticRawExports } from "./export/write-static-raw-exports.js";
25
28
  export type { WriteStaticRawExportsOptions } from "./export/write-static-raw-exports.js";
26
29
  export { serializeMdx } from "./loader/parse-mdx.js";
30
+ export { buildDeletionPlan } from "./delete/plan.js";
31
+ export type { DeletionPlan, DeletionRoot, DeletionCascade, DeletionDetach, DeletionBlocker, DeletionAsset, DeletionStoreCounts, BodyRefWarning, } from "./delete/plan.js";
32
+ export { extractInlineTokens, fillPlaceholders, unescapeInlineTokens, placeholderMarker, } from "./inline/tokens.js";
33
+ export type { InlineToken, InlineTokenKind, StaticInlineToken, RelationInlineToken, AssetInlineToken, VarInlineToken, MalformedInlineToken, ExtractInlineTokensResult, } from "./inline/tokens.js";
34
+ export { executeDeletionPlan } from "./delete/execute.js";
35
+ export type { ExecuteDeletionResult } from "./delete/execute.js";
27
36
  //# sourceMappingURL=index.d.ts.map