@prenta/core 8.9.2 → 8.10.0

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 (290) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/actions.d.ts +25 -0
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +51 -4
  5. package/dist/actions.js.map +1 -1
  6. package/dist/ai/batch-links.d.ts +105 -0
  7. package/dist/ai/batch-links.d.ts.map +1 -0
  8. package/dist/ai/batch-links.js +667 -0
  9. package/dist/ai/batch-links.js.map +1 -0
  10. package/dist/ai/batch-list.d.ts +127 -4
  11. package/dist/ai/batch-list.d.ts.map +1 -1
  12. package/dist/ai/batch-list.js +250 -14
  13. package/dist/ai/batch-list.js.map +1 -1
  14. package/dist/ai/providers/http.d.ts +4 -0
  15. package/dist/ai/providers/http.d.ts.map +1 -1
  16. package/dist/ai/providers/http.js +9 -8
  17. package/dist/ai/providers/http.js.map +1 -1
  18. package/dist/ai/tasks/editor-text.d.ts +39 -0
  19. package/dist/ai/tasks/editor-text.d.ts.map +1 -0
  20. package/dist/ai/tasks/editor-text.js +45 -0
  21. package/dist/ai/tasks/editor-text.js.map +1 -0
  22. package/dist/ai/tasks/link-embeddings.d.ts +22 -0
  23. package/dist/ai/tasks/link-embeddings.d.ts.map +1 -1
  24. package/dist/ai/tasks/link-embeddings.js +24 -10
  25. package/dist/ai/tasks/link-embeddings.js.map +1 -1
  26. package/dist/ai/usage.d.ts +7 -0
  27. package/dist/ai/usage.d.ts.map +1 -1
  28. package/dist/ai/usage.js +11 -0
  29. package/dist/ai/usage.js.map +1 -1
  30. package/dist/api/guarded-db.d.ts +6 -0
  31. package/dist/api/guarded-db.d.ts.map +1 -1
  32. package/dist/api/guarded-db.js +13 -1
  33. package/dist/api/guarded-db.js.map +1 -1
  34. package/dist/api/handlers.d.ts.map +1 -1
  35. package/dist/api/handlers.js +2 -0
  36. package/dist/api/handlers.js.map +1 -1
  37. package/dist/api/openapi.d.ts.map +1 -1
  38. package/dist/api/openapi.js +47 -0
  39. package/dist/api/openapi.js.map +1 -1
  40. package/dist/api/route-helpers/forms.d.ts.map +1 -1
  41. package/dist/api/route-helpers/forms.js +7 -1
  42. package/dist/api/route-helpers/forms.js.map +1 -1
  43. package/dist/api/routes/ai-authoring.d.ts.map +1 -1
  44. package/dist/api/routes/ai-authoring.js +1 -0
  45. package/dist/api/routes/ai-authoring.js.map +1 -1
  46. package/dist/api/routes/ai-seo.d.ts.map +1 -1
  47. package/dist/api/routes/ai-seo.js +20 -18
  48. package/dist/api/routes/ai-seo.js.map +1 -1
  49. package/dist/api/routes/media.d.ts.map +1 -1
  50. package/dist/api/routes/media.js +3 -1
  51. package/dist/api/routes/media.js.map +1 -1
  52. package/dist/api/routes/scheduling.d.ts.map +1 -1
  53. package/dist/api/routes/scheduling.js +33 -2
  54. package/dist/api/routes/scheduling.js.map +1 -1
  55. package/dist/appearance/color.d.ts +17 -0
  56. package/dist/appearance/color.d.ts.map +1 -1
  57. package/dist/appearance/color.js +162 -1
  58. package/dist/appearance/color.js.map +1 -1
  59. package/dist/appearance/index.d.ts +3 -3
  60. package/dist/appearance/index.d.ts.map +1 -1
  61. package/dist/appearance/index.js +2 -2
  62. package/dist/appearance/index.js.map +1 -1
  63. package/dist/appearance/resolve.d.ts.map +1 -1
  64. package/dist/appearance/resolve.js +4 -2
  65. package/dist/appearance/resolve.js.map +1 -1
  66. package/dist/appearance/theme-tokens.d.ts +60 -11
  67. package/dist/appearance/theme-tokens.d.ts.map +1 -1
  68. package/dist/appearance/theme-tokens.js +184 -175
  69. package/dist/appearance/theme-tokens.js.map +1 -1
  70. package/dist/appearance/types.d.ts +16 -2
  71. package/dist/appearance/types.d.ts.map +1 -1
  72. package/dist/astro-site.d.ts +1 -11
  73. package/dist/astro-site.d.ts.map +1 -1
  74. package/dist/astro-site.js +4 -0
  75. package/dist/astro-site.js.map +1 -1
  76. package/dist/auth/team.d.ts +1 -0
  77. package/dist/auth/team.d.ts.map +1 -1
  78. package/dist/auth/team.js +1 -1
  79. package/dist/auth/team.js.map +1 -1
  80. package/dist/cache/http.d.ts +20 -0
  81. package/dist/cache/http.d.ts.map +1 -1
  82. package/dist/cache/http.js +42 -0
  83. package/dist/cache/http.js.map +1 -1
  84. package/dist/chrome/announcement.d.ts +30 -0
  85. package/dist/chrome/announcement.d.ts.map +1 -0
  86. package/dist/chrome/announcement.js +190 -0
  87. package/dist/chrome/announcement.js.map +1 -0
  88. package/dist/chrome/codegen.d.ts +17 -0
  89. package/dist/chrome/codegen.d.ts.map +1 -0
  90. package/dist/chrome/codegen.js +96 -0
  91. package/dist/chrome/codegen.js.map +1 -0
  92. package/dist/chrome/contract.d.ts +142 -0
  93. package/dist/chrome/contract.d.ts.map +1 -0
  94. package/dist/chrome/contract.js +2 -0
  95. package/dist/chrome/contract.js.map +1 -0
  96. package/dist/chrome/memory-store.d.ts +15 -0
  97. package/dist/chrome/memory-store.d.ts.map +1 -0
  98. package/dist/chrome/memory-store.js +54 -0
  99. package/dist/chrome/memory-store.js.map +1 -0
  100. package/dist/chrome/parse.d.ts +36 -0
  101. package/dist/chrome/parse.d.ts.map +1 -0
  102. package/dist/chrome/parse.js +277 -0
  103. package/dist/chrome/parse.js.map +1 -0
  104. package/dist/chrome/prisma-store.d.ts +11 -0
  105. package/dist/chrome/prisma-store.d.ts.map +1 -0
  106. package/dist/chrome/prisma-store.js +48 -0
  107. package/dist/chrome/prisma-store.js.map +1 -0
  108. package/dist/chrome/public.d.ts +22 -0
  109. package/dist/chrome/public.d.ts.map +1 -0
  110. package/dist/chrome/public.js +181 -0
  111. package/dist/chrome/public.js.map +1 -0
  112. package/dist/chrome/resolve.d.ts +36 -0
  113. package/dist/chrome/resolve.d.ts.map +1 -0
  114. package/dist/chrome/resolve.js +165 -0
  115. package/dist/chrome/resolve.js.map +1 -0
  116. package/dist/chrome/revalidate.d.ts +9 -0
  117. package/dist/chrome/revalidate.d.ts.map +1 -0
  118. package/dist/chrome/revalidate.js +51 -0
  119. package/dist/chrome/revalidate.js.map +1 -0
  120. package/dist/chrome/routes.d.ts +14 -0
  121. package/dist/chrome/routes.d.ts.map +1 -0
  122. package/dist/chrome/routes.js +306 -0
  123. package/dist/chrome/routes.js.map +1 -0
  124. package/dist/chrome/schema.d.ts +231 -0
  125. package/dist/chrome/schema.d.ts.map +1 -0
  126. package/dist/chrome/schema.js +73 -0
  127. package/dist/chrome/schema.js.map +1 -0
  128. package/dist/chrome/service.d.ts +76 -0
  129. package/dist/chrome/service.d.ts.map +1 -0
  130. package/dist/chrome/service.js +286 -0
  131. package/dist/chrome/service.js.map +1 -0
  132. package/dist/chrome/settings.d.ts +14 -0
  133. package/dist/chrome/settings.d.ts.map +1 -0
  134. package/dist/chrome/settings.js +142 -0
  135. package/dist/chrome/settings.js.map +1 -0
  136. package/dist/chrome/store.d.ts +48 -0
  137. package/dist/chrome/store.d.ts.map +1 -0
  138. package/dist/chrome/store.js +26 -0
  139. package/dist/chrome/store.js.map +1 -0
  140. package/dist/chrome/values.d.ts +98 -0
  141. package/dist/chrome/values.d.ts.map +1 -0
  142. package/dist/chrome/values.js +491 -0
  143. package/dist/chrome/values.js.map +1 -0
  144. package/dist/config/define.d.ts +2 -0
  145. package/dist/config/define.d.ts.map +1 -1
  146. package/dist/config/define.js +2 -0
  147. package/dist/config/define.js.map +1 -1
  148. package/dist/db/model-types.d.ts +62 -0
  149. package/dist/db/model-types.d.ts.map +1 -1
  150. package/dist/forms/attribution-settings.d.ts +23 -0
  151. package/dist/forms/attribution-settings.d.ts.map +1 -0
  152. package/dist/forms/attribution-settings.js +42 -0
  153. package/dist/forms/attribution-settings.js.map +1 -0
  154. package/dist/forms/attribution.d.ts +5 -1
  155. package/dist/forms/attribution.d.ts.map +1 -1
  156. package/dist/forms/attribution.js +6 -4
  157. package/dist/forms/attribution.js.map +1 -1
  158. package/dist/forms/client-validation.d.ts.map +1 -1
  159. package/dist/forms/client-validation.js +3 -0
  160. package/dist/forms/client-validation.js.map +1 -1
  161. package/dist/forms/form-model.d.ts +109 -0
  162. package/dist/forms/form-model.d.ts.map +1 -0
  163. package/dist/forms/form-model.js +192 -0
  164. package/dist/forms/form-model.js.map +1 -0
  165. package/dist/forms/index.d.ts +2 -2
  166. package/dist/forms/index.d.ts.map +1 -1
  167. package/dist/forms/index.js +1 -1
  168. package/dist/forms/index.js.map +1 -1
  169. package/dist/forms/service.d.ts +19 -1
  170. package/dist/forms/service.d.ts.map +1 -1
  171. package/dist/forms/service.js +152 -0
  172. package/dist/forms/service.js.map +1 -1
  173. package/dist/forms/spam.d.ts +0 -12
  174. package/dist/forms/spam.d.ts.map +1 -1
  175. package/dist/forms/spam.js +30 -0
  176. package/dist/forms/spam.js.map +1 -1
  177. package/dist/forms/submission.d.ts +7 -0
  178. package/dist/forms/submission.d.ts.map +1 -1
  179. package/dist/forms/submission.js +33 -0
  180. package/dist/forms/submission.js.map +1 -1
  181. package/dist/forms/types.d.ts +26 -1
  182. package/dist/forms/types.d.ts.map +1 -1
  183. package/dist/forms/types.js +9 -1
  184. package/dist/forms/types.js.map +1 -1
  185. package/dist/generated/browser.d.ts +35 -3
  186. package/dist/generated/client.d.ts +35 -3
  187. package/dist/generated/internal/class.d.ts +44 -0
  188. package/dist/generated/internal/class.js +4 -4
  189. package/dist/generated/internal/prismaNamespace.d.ts +403 -1
  190. package/dist/generated/internal/prismaNamespace.js +95 -1
  191. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +102 -0
  192. package/dist/generated/internal/prismaNamespaceBrowser.js +95 -1
  193. package/dist/generated/models/ChromeRegion.d.ts +1203 -0
  194. package/dist/generated/models/ChromeRegion.js +1 -0
  195. package/dist/generated/models/Job.d.ts +732 -5
  196. package/dist/generated/models/JobEvent.d.ts +1339 -0
  197. package/dist/generated/models/JobEvent.js +1 -0
  198. package/dist/generated/models/JobReviewItem.d.ts +1470 -0
  199. package/dist/generated/models/JobReviewItem.js +1 -0
  200. package/dist/generated/models/SystemSetting.d.ts +952 -0
  201. package/dist/generated/models/SystemSetting.js +1 -0
  202. package/dist/generated/models.d.ts +4 -0
  203. package/dist/index.d.ts +12 -5
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +8 -3
  206. package/dist/index.js.map +1 -1
  207. package/dist/jobs/batch-ai.d.ts +53 -0
  208. package/dist/jobs/batch-ai.d.ts.map +1 -0
  209. package/dist/jobs/batch-ai.js +314 -0
  210. package/dist/jobs/batch-ai.js.map +1 -0
  211. package/dist/jobs/contract.d.ts +186 -0
  212. package/dist/jobs/contract.d.ts.map +1 -0
  213. package/dist/jobs/contract.js +2 -0
  214. package/dist/jobs/contract.js.map +1 -0
  215. package/dist/jobs/error-text.d.ts +23 -0
  216. package/dist/jobs/error-text.d.ts.map +1 -0
  217. package/dist/jobs/error-text.js +110 -0
  218. package/dist/jobs/error-text.js.map +1 -0
  219. package/dist/jobs/handlers.d.ts.map +1 -1
  220. package/dist/jobs/handlers.js +48 -7
  221. package/dist/jobs/handlers.js.map +1 -1
  222. package/dist/jobs/memory-store.d.ts +26 -2
  223. package/dist/jobs/memory-store.d.ts.map +1 -1
  224. package/dist/jobs/memory-store.js +157 -3
  225. package/dist/jobs/memory-store.js.map +1 -1
  226. package/dist/jobs/outcomes.d.ts +46 -0
  227. package/dist/jobs/outcomes.d.ts.map +1 -0
  228. package/dist/jobs/outcomes.js +251 -0
  229. package/dist/jobs/outcomes.js.map +1 -0
  230. package/dist/jobs/prisma-store.d.ts +14 -2
  231. package/dist/jobs/prisma-store.d.ts.map +1 -1
  232. package/dist/jobs/prisma-store.js +257 -15
  233. package/dist/jobs/prisma-store.js.map +1 -1
  234. package/dist/jobs/queue.d.ts +62 -2
  235. package/dist/jobs/queue.d.ts.map +1 -1
  236. package/dist/jobs/queue.js +412 -36
  237. package/dist/jobs/queue.js.map +1 -1
  238. package/dist/jobs/retention.d.ts +11 -0
  239. package/dist/jobs/retention.d.ts.map +1 -0
  240. package/dist/jobs/retention.js +18 -0
  241. package/dist/jobs/retention.js.map +1 -0
  242. package/dist/jobs/review.d.ts +111 -0
  243. package/dist/jobs/review.d.ts.map +1 -0
  244. package/dist/jobs/review.js +461 -0
  245. package/dist/jobs/review.js.map +1 -0
  246. package/dist/jobs/routes.d.ts.map +1 -1
  247. package/dist/jobs/routes.js +491 -16
  248. package/dist/jobs/routes.js.map +1 -1
  249. package/dist/jobs/serialize.d.ts +40 -0
  250. package/dist/jobs/serialize.d.ts.map +1 -0
  251. package/dist/jobs/serialize.js +270 -0
  252. package/dist/jobs/serialize.js.map +1 -0
  253. package/dist/jobs/types.d.ts +141 -2
  254. package/dist/jobs/types.d.ts.map +1 -1
  255. package/dist/jobs/worker-status.d.ts +27 -0
  256. package/dist/jobs/worker-status.d.ts.map +1 -0
  257. package/dist/jobs/worker-status.js +66 -0
  258. package/dist/jobs/worker-status.js.map +1 -0
  259. package/dist/media/optimize.d.ts.map +1 -1
  260. package/dist/media/optimize.js +4 -2
  261. package/dist/media/optimize.js.map +1 -1
  262. package/dist/next-site.d.ts +1 -0
  263. package/dist/next-site.d.ts.map +1 -1
  264. package/dist/next-site.js +3 -0
  265. package/dist/next-site.js.map +1 -1
  266. package/dist/seo/audit-runner.d.ts.map +1 -1
  267. package/dist/seo/audit-runner.js +23 -2
  268. package/dist/seo/audit-runner.js.map +1 -1
  269. package/dist/seo/issue-fix-link-insert.d.ts +11 -0
  270. package/dist/seo/issue-fix-link-insert.d.ts.map +1 -1
  271. package/dist/seo/issue-fix-link-insert.js +122 -8
  272. package/dist/seo/issue-fix-link-insert.js.map +1 -1
  273. package/dist/server-site.d.ts.map +1 -1
  274. package/dist/server-site.js +15 -0
  275. package/dist/server-site.js.map +1 -1
  276. package/dist/site.d.ts +8 -0
  277. package/dist/site.d.ts.map +1 -1
  278. package/dist/site.js +6 -0
  279. package/dist/site.js.map +1 -1
  280. package/dist/webhooks/index.d.ts +3 -1
  281. package/dist/webhooks/index.d.ts.map +1 -1
  282. package/dist/webhooks/index.js.map +1 -1
  283. package/package.json +6 -1
  284. package/prisma/migrations/0025_job_cancel_review/down.sql +60 -0
  285. package/prisma/migrations/0025_job_cancel_review/migration.sql +56 -0
  286. package/prisma/migrations/0026_job_creator_system_settings/down.sql +30 -0
  287. package/prisma/migrations/0026_job_creator_system_settings/migration.sql +14 -0
  288. package/prisma/migrations/0027_chrome_regions/down.sql +24 -0
  289. package/prisma/migrations/0027_chrome_regions/migration.sql +16 -0
  290. package/prisma/schema.prisma +105 -15
@@ -0,0 +1,98 @@
1
+ import type { ChromeOrphan, RegionSchema, RegionSchemaSource } from './contract.js';
2
+ import { type Parsed, type RegionSchemaInput } from './parse.js';
3
+ import type { ChromeRegionName, FieldDef } from './schema.js';
4
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
5
+ /**
6
+ * A schema's field by key, own properties only. A plain-object lookup would
7
+ * find `toString` or `constructor` on every schema, and a page override can
8
+ * send any key.
9
+ */
10
+ export declare function ownField(schema: Pick<RegionSchema, 'fields'>, key: string): FieldDef | undefined;
11
+ export declare function hasVariant(schema: Pick<RegionSchema, 'variants'>, id: string): boolean;
12
+ /** A stored value by key, own properties only. */
13
+ export declare function ownValue(values: Record<string, unknown>, key: string): unknown;
14
+ /**
15
+ * Links an editor may set: site paths, anchors, and http(s), mailto and tel
16
+ * URLs. Anything else (`javascript:`, `data:`) is refused.
17
+ */
18
+ export declare function isSafeLinkUrl(url: string): boolean;
19
+ /** Read stored orphans, dropping malformed rows and those older than 30 days. */
20
+ export declare function liveOrphans(value: unknown, now: Date): ChromeOrphan[];
21
+ type Fit = {
22
+ ok: true;
23
+ value: unknown;
24
+ } | {
25
+ ok: false;
26
+ };
27
+ /**
28
+ * Fit a stored value to a field's current shape, or report that it doesn't
29
+ * fit. Switching a field between optional and required wraps or unwraps the
30
+ * value, and a single menu becomes a one-item list. Anything else that changed
31
+ * type doesn't fit, so a schema read keeps it as an orphan.
32
+ */
33
+ export declare function fitFieldValue(def: FieldDef, value: unknown): Fit;
34
+ /**
35
+ * Fit a value to its field and run it through the checks a save makes: link
36
+ * and social URLs, lengths, formats and options. A save already passed them;
37
+ * a page override in `_layout` never did, and an older value may not meet a
38
+ * stricter schema. So everything that reaches the site goes through this, and
39
+ * a value that fails is dropped.
40
+ */
41
+ export declare function cleanFieldValue(def: FieldDef, value: unknown): Fit;
42
+ export interface RegionSave {
43
+ variant: string;
44
+ values: Record<string, unknown>;
45
+ }
46
+ /**
47
+ * Check `PUT /chrome/:region` against the region's schema. Unknown keys are
48
+ * refused, except current orphans, which a form may send back unchanged and
49
+ * which stay orphans. Brand fields are read-only and are ignored.
50
+ */
51
+ export declare function checkRegionSave(schema: Pick<RegionSchema, 'region' | 'variants' | 'fields'>, body: unknown, orphanKeys: ReadonlySet<string>): Parsed<RegionSave>;
52
+ /** What a region row holds besides its schema. */
53
+ export interface RegionState {
54
+ variant: string | null;
55
+ values: Record<string, unknown>;
56
+ orphans: ChromeOrphan[];
57
+ }
58
+ export interface SchemaReadPlan {
59
+ state: RegionState;
60
+ orphaned: string[];
61
+ renamed: Array<{
62
+ from: string;
63
+ to: string;
64
+ }>;
65
+ restored: string[];
66
+ }
67
+ /**
68
+ * Fit a region's saved values to a new schema (`null` when the site no longer
69
+ * defines the region):
70
+ *
71
+ * - a value whose field is gone, or that no longer fits its field (type, URL,
72
+ * length, format or options), becomes an orphan;
73
+ * - a field with `renamedFrom` takes the old key's value, or its orphan;
74
+ * - a field that comes back within 30 days takes its orphan back;
75
+ * - orphans older than 30 days are dropped;
76
+ * - a site default variant that no longer exists falls back to the first.
77
+ */
78
+ export declare function planSchemaRead(current: RegionState, next: Pick<RegionSchemaInput, 'variants' | 'fields'> | null, now: Date): SchemaReadPlan;
79
+ /**
80
+ * The `schema` column. Variants and fields are ordered pairs because JSONB
81
+ * sorts object keys, and both orders matter: the first variant is the default,
82
+ * and the form lists fields as the site wrote them.
83
+ */
84
+ export interface StoredRegionSchema {
85
+ component: string;
86
+ variants: Array<[string, string]>;
87
+ fields: Array<[string, FieldDef]>;
88
+ source: RegionSchemaSource;
89
+ }
90
+ export declare function toStoredSchema(input: Pick<RegionSchemaInput, 'component' | 'variants' | 'fields'>, source: RegionSchemaSource): StoredRegionSchema;
91
+ /** Read the `schema` column back. Null when it's missing or malformed. */
92
+ export declare function fromStoredSchema(region: ChromeRegionName, value: unknown): RegionSchema | null;
93
+ /** Hash of what editors see of a schema, without its source, so a redeploy of the same schema is a no-op. */
94
+ export declare function schemaHash(input: Pick<RegionSchemaInput, 'component' | 'variants' | 'fields'>): string;
95
+ /** The variant a region shows when nothing picks one: the stored default, or the first. */
96
+ export declare function effectiveVariant(schema: Pick<RegionSchema, 'variants'>, variant: string | null): string;
97
+ export {};
98
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/chrome/values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,491 @@
1
+ /**
2
+ * Stored chrome values: checking a save against the schema, fitting old values
3
+ * to a changed schema, and the orphans a schema change leaves behind.
4
+ */
5
+ import { createHash } from 'node:crypto';
6
+ import { MAX_MENU_LIST, isFieldKey, isVariantId, } from './parse.js';
7
+ /** An orphan is purged this long after the schema dropped it. */
8
+ const ORPHAN_TTL_MS = 30 * 24 * 60 * 60 * 1000;
9
+ const DEFAULT_TEXT_MAX = 500;
10
+ const DEFAULT_TEXTAREA_MAX = 2000;
11
+ const MAX_URL = 2048;
12
+ const MAX_SOCIAL = 20;
13
+ const EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
14
+ const PHONE = /^[+()0-9.\-\s]{3,40}$/;
15
+ export function isRecord(value) {
16
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
17
+ }
18
+ /**
19
+ * A schema's field by key, own properties only. A plain-object lookup would
20
+ * find `toString` or `constructor` on every schema, and a page override can
21
+ * send any key.
22
+ */
23
+ export function ownField(schema, key) {
24
+ return Object.hasOwn(schema.fields, key) ? schema.fields[key] : undefined;
25
+ }
26
+ export function hasVariant(schema, id) {
27
+ return Object.hasOwn(schema.variants, id);
28
+ }
29
+ /** A stored value by key, own properties only. */
30
+ export function ownValue(values, key) {
31
+ return Object.hasOwn(values, key) ? values[key] : undefined;
32
+ }
33
+ /**
34
+ * Links an editor may set: site paths, anchors, and http(s), mailto and tel
35
+ * URLs. Anything else (`javascript:`, `data:`) is refused.
36
+ */
37
+ export function isSafeLinkUrl(url) {
38
+ if (url.length > MAX_URL)
39
+ return false;
40
+ if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?'))
41
+ return true;
42
+ return /^(https?:\/\/|mailto:|tel:)/i.test(url);
43
+ }
44
+ // ─── Orphans ────────────────────────────────────────────────────────────
45
+ /** Read stored orphans, dropping malformed rows and those older than 30 days. */
46
+ export function liveOrphans(value, now) {
47
+ if (!Array.isArray(value))
48
+ return [];
49
+ const cutoff = now.getTime() - ORPHAN_TTL_MS;
50
+ const out = [];
51
+ for (const raw of value) {
52
+ if (!isRecord(raw) || typeof raw.key !== 'string' || typeof raw.orphanedAt !== 'string') {
53
+ continue;
54
+ }
55
+ const at = Date.parse(raw.orphanedAt);
56
+ if (!Number.isFinite(at) || at <= cutoff)
57
+ continue;
58
+ out.push({ key: raw.key, value: raw.value, orphanedAt: raw.orphanedAt });
59
+ }
60
+ return out;
61
+ }
62
+ const NO_FIT = { ok: false };
63
+ function toggleOf(value) {
64
+ if (!isRecord(value) || typeof value.on !== 'boolean')
65
+ return null;
66
+ const { on, ...rest } = value;
67
+ return { on, rest };
68
+ }
69
+ function linkOf(value) {
70
+ if (!isRecord(value) || typeof value.label !== 'string' || typeof value.url !== 'string') {
71
+ return null;
72
+ }
73
+ return { label: value.label, url: value.url };
74
+ }
75
+ function socialOf(value) {
76
+ if (!Array.isArray(value))
77
+ return null;
78
+ const out = [];
79
+ for (const item of value) {
80
+ if (!isRecord(item) || typeof item.platform !== 'string' || typeof item.url !== 'string') {
81
+ return null;
82
+ }
83
+ out.push({ platform: item.platform, url: item.url });
84
+ }
85
+ return out;
86
+ }
87
+ /** A single menu slug from a stored value of any menu shape. */
88
+ function menuSlugOf(value) {
89
+ if (typeof value === 'string')
90
+ return value || null;
91
+ const toggle = toggleOf(value);
92
+ if (toggle && typeof toggle.rest.value === 'string')
93
+ return toggle.rest.value || null;
94
+ if (Array.isArray(value) && typeof value[0] === 'string')
95
+ return value[0] || null;
96
+ return null;
97
+ }
98
+ /**
99
+ * Fit a stored value to a field's current shape, or report that it doesn't
100
+ * fit. Switching a field between optional and required wraps or unwraps the
101
+ * value, and a single menu becomes a one-item list. Anything else that changed
102
+ * type doesn't fit, so a schema read keeps it as an orphan.
103
+ */
104
+ export function fitFieldValue(def, value) {
105
+ switch (def.type) {
106
+ case 'brand':
107
+ return NO_FIT;
108
+ case 'menu': {
109
+ if (def.list) {
110
+ if (Array.isArray(value)) {
111
+ if (!value.every((slug) => typeof slug === 'string'))
112
+ return NO_FIT;
113
+ return { ok: true, value: [...new Set(value)].filter(Boolean) };
114
+ }
115
+ const toggle = toggleOf(value);
116
+ if (toggle && toggle.on === false)
117
+ return { ok: true, value: [] };
118
+ const slug = menuSlugOf(value);
119
+ return slug ? { ok: true, value: [slug] } : NO_FIT;
120
+ }
121
+ const toggle = toggleOf(value);
122
+ if (def.optional) {
123
+ if (toggle && typeof toggle.rest.value === 'string') {
124
+ return { ok: true, value: { on: toggle.on, value: toggle.rest.value } };
125
+ }
126
+ const slug = menuSlugOf(value);
127
+ return slug ? { ok: true, value: { on: true, value: slug } } : NO_FIT;
128
+ }
129
+ const slug = menuSlugOf(value);
130
+ return slug ? { ok: true, value: slug } : NO_FIT;
131
+ }
132
+ case 'link': {
133
+ const toggle = toggleOf(value);
134
+ const link = linkOf(toggle ? toggle.rest : value);
135
+ if (!link)
136
+ return NO_FIT;
137
+ return def.optional
138
+ ? { ok: true, value: { on: toggle ? toggle.on : true, ...link } }
139
+ : { ok: true, value: link };
140
+ }
141
+ case 'text':
142
+ case 'textarea': {
143
+ const toggle = toggleOf(value);
144
+ const text = toggle ? toggle.rest.value : value;
145
+ if (typeof text !== 'string')
146
+ return NO_FIT;
147
+ if (def.type === 'text' && def.optional) {
148
+ return { ok: true, value: { on: toggle ? toggle.on : true, value: text } };
149
+ }
150
+ return { ok: true, value: text };
151
+ }
152
+ case 'select':
153
+ return typeof value === 'string' && def.options.includes(value) ? { ok: true, value } : NO_FIT;
154
+ case 'boolean':
155
+ return typeof value === 'boolean' ? { ok: true, value } : NO_FIT;
156
+ case 'social': {
157
+ const links = socialOf(value);
158
+ return links ? { ok: true, value: links } : NO_FIT;
159
+ }
160
+ default:
161
+ // A field type this version doesn't know, from a newer schema or a bad row.
162
+ return NO_FIT;
163
+ }
164
+ }
165
+ /**
166
+ * Fit a value to its field and run it through the checks a save makes: link
167
+ * and social URLs, lengths, formats and options. A save already passed them;
168
+ * a page override in `_layout` never did, and an older value may not meet a
169
+ * stricter schema. So everything that reaches the site goes through this, and
170
+ * a value that fails is dropped.
171
+ */
172
+ export function cleanFieldValue(def, value) {
173
+ const fit = fitFieldValue(def, value);
174
+ if (!fit.ok)
175
+ return NO_FIT;
176
+ try {
177
+ const checked = checkField('value', def, fit.value, 'chrome');
178
+ return checked === undefined ? NO_FIT : { ok: true, value: checked };
179
+ }
180
+ catch (err) {
181
+ if (err instanceof ValueError)
182
+ return NO_FIT;
183
+ throw err;
184
+ }
185
+ }
186
+ // ─── Checking a save ────────────────────────────────────────────────────
187
+ class ValueError extends Error {
188
+ }
189
+ function fail(message) {
190
+ throw new ValueError(message);
191
+ }
192
+ function checkLength(text, max, where) {
193
+ if (text.length > max)
194
+ fail(`${where} is longer than ${max} characters`);
195
+ }
196
+ function checkLink(value, where, required) {
197
+ const link = linkOf(value);
198
+ if (!link)
199
+ fail(`${where} must be { label, url }`);
200
+ const url = link.url.trim();
201
+ checkLength(link.label, 80, `${where}.label`);
202
+ if (url === '') {
203
+ if (required)
204
+ fail(`${where}.url is required`);
205
+ }
206
+ else if (!isSafeLinkUrl(url)) {
207
+ fail(`${where}.url must be a site path or an http(s), mailto or tel link`);
208
+ }
209
+ return { label: link.label, url };
210
+ }
211
+ function checkToggle(value, where) {
212
+ const toggle = toggleOf(value);
213
+ if (!toggle)
214
+ fail(`${where} must be { on, ... } because the field is optional`);
215
+ return toggle;
216
+ }
217
+ function checkText(def, text, where) {
218
+ if (typeof text !== 'string')
219
+ fail(`${where} must be text`);
220
+ checkLength(text, def.max ?? DEFAULT_TEXT_MAX, where);
221
+ const trimmed = text.trim();
222
+ if (trimmed && def.format === 'email' && !EMAIL.test(trimmed))
223
+ fail(`${where} must be an email address`);
224
+ if (trimmed && def.format === 'tel' && !PHONE.test(trimmed))
225
+ fail(`${where} must be a phone number`);
226
+ return text;
227
+ }
228
+ function checkMenuSlug(value, where) {
229
+ if (typeof value !== 'string' || value.trim() === '' || value.length > 200) {
230
+ fail(`${where} must be a menu's slug`);
231
+ }
232
+ return value.trim();
233
+ }
234
+ /** Check one field of a save. Returns the value to store. */
235
+ function checkField(key, def, value, region) {
236
+ const where = `${region}.${key}`;
237
+ switch (def.type) {
238
+ case 'brand':
239
+ return undefined;
240
+ case 'menu': {
241
+ if (def.list) {
242
+ if (!Array.isArray(value))
243
+ fail(`${where} must be a list of menu slugs`);
244
+ const max = def.max ?? MAX_MENU_LIST;
245
+ if (value.length > max)
246
+ fail(`${where} can hold at most ${max} menus`);
247
+ return [...new Set(value.map((slug, i) => checkMenuSlug(slug, `${where}[${i}]`)))];
248
+ }
249
+ if (def.optional) {
250
+ const toggle = checkToggle(value, where);
251
+ const slug = toggle.rest.value;
252
+ if (!toggle.on && (slug === undefined || slug === ''))
253
+ return { on: false, value: '' };
254
+ return { on: toggle.on, value: checkMenuSlug(slug, `${where}.value`) };
255
+ }
256
+ return checkMenuSlug(value, where);
257
+ }
258
+ case 'link': {
259
+ if (def.optional) {
260
+ const toggle = checkToggle(value, where);
261
+ return { on: toggle.on, ...checkLink(toggle.rest, where, toggle.on) };
262
+ }
263
+ return checkLink(value, where, true);
264
+ }
265
+ case 'text': {
266
+ if (def.optional) {
267
+ const toggle = checkToggle(value, where);
268
+ return { on: toggle.on, value: checkText(def, toggle.rest.value ?? '', `${where}.value`) };
269
+ }
270
+ return checkText(def, value, where);
271
+ }
272
+ case 'textarea':
273
+ if (typeof value !== 'string')
274
+ fail(`${where} must be text`);
275
+ checkLength(value, def.max ?? DEFAULT_TEXTAREA_MAX, where);
276
+ return value;
277
+ case 'select':
278
+ if (typeof value !== 'string' || !def.options.includes(value)) {
279
+ fail(`${where} must be one of: ${def.options.join(', ')}`);
280
+ }
281
+ return value;
282
+ case 'boolean':
283
+ if (typeof value !== 'boolean')
284
+ fail(`${where} must be true or false`);
285
+ return value;
286
+ case 'social': {
287
+ if (!Array.isArray(value))
288
+ fail(`${where} must be a list of { platform, url }`);
289
+ if (value.length > MAX_SOCIAL)
290
+ fail(`${where} can hold at most ${MAX_SOCIAL} links`);
291
+ return value.map((item, i) => {
292
+ if (!isRecord(item) || typeof item.platform !== 'string' || item.platform.trim() === '') {
293
+ fail(`${where}[${i}].platform is required`);
294
+ }
295
+ checkLength(item.platform, 40, `${where}[${i}].platform`);
296
+ if (typeof item.url !== 'string')
297
+ fail(`${where}[${i}].url is required`);
298
+ const { url } = checkLink({ label: '', url: item.url }, `${where}[${i}]`, true);
299
+ return { platform: item.platform.trim(), url };
300
+ });
301
+ }
302
+ default:
303
+ return fail(`${where} has a field type this CMS doesn't know`);
304
+ }
305
+ }
306
+ /**
307
+ * Check `PUT /chrome/:region` against the region's schema. Unknown keys are
308
+ * refused, except current orphans, which a form may send back unchanged and
309
+ * which stay orphans. Brand fields are read-only and are ignored.
310
+ */
311
+ export function checkRegionSave(schema, body, orphanKeys) {
312
+ try {
313
+ if (!isRecord(body))
314
+ fail('Send { variant, fields }');
315
+ if (body.region !== undefined && body.region !== schema.region) {
316
+ fail(`This is the ${schema.region} region`);
317
+ }
318
+ const variant = body.variant;
319
+ if (typeof variant !== 'string' || !hasVariant(schema, variant)) {
320
+ fail(`variant must be one of: ${Object.keys(schema.variants).join(', ')}`);
321
+ }
322
+ // Required, even empty: a save replaces every value, so leaving it out would clear them.
323
+ const fields = body.fields;
324
+ if (!isRecord(fields))
325
+ fail('fields must map field keys to values');
326
+ const values = {};
327
+ for (const [key, value] of Object.entries(fields)) {
328
+ const def = ownField(schema, key);
329
+ if (!def) {
330
+ if (orphanKeys.has(key))
331
+ continue;
332
+ fail(`${schema.region} has no field "${key}"`);
333
+ }
334
+ if (value === undefined || value === null)
335
+ continue;
336
+ const stored = checkField(key, def, value, schema.region);
337
+ if (stored !== undefined)
338
+ values[key] = stored;
339
+ }
340
+ return { ok: true, value: { variant, values } };
341
+ }
342
+ catch (err) {
343
+ if (err instanceof ValueError)
344
+ return { ok: false, error: err.message };
345
+ throw err;
346
+ }
347
+ }
348
+ /**
349
+ * Fit a region's saved values to a new schema (`null` when the site no longer
350
+ * defines the region):
351
+ *
352
+ * - a value whose field is gone, or that no longer fits its field (type, URL,
353
+ * length, format or options), becomes an orphan;
354
+ * - a field with `renamedFrom` takes the old key's value, or its orphan;
355
+ * - a field that comes back within 30 days takes its orphan back;
356
+ * - orphans older than 30 days are dropped;
357
+ * - a site default variant that no longer exists falls back to the first.
358
+ */
359
+ export function planSchemaRead(current, next, now) {
360
+ const orphanedAt = now.toISOString();
361
+ const orphans = new Map(liveOrphans(current.orphans, now).map((orphan) => [orphan.key, orphan]));
362
+ const values = {};
363
+ const consumed = new Set();
364
+ const orphaned = [];
365
+ const renamed = [];
366
+ const restored = [];
367
+ const fresh = [];
368
+ for (const [key, def] of Object.entries(next?.fields ?? {})) {
369
+ if (def.type === 'brand')
370
+ continue;
371
+ const old = def.renamedFrom;
372
+ let from = null;
373
+ if (Object.hasOwn(current.values, key)) {
374
+ from = { key, value: current.values[key], orphan: null };
375
+ }
376
+ else if (old && Object.hasOwn(current.values, old)) {
377
+ from = { key: old, value: current.values[old], orphan: null };
378
+ }
379
+ else if (orphans.has(key)) {
380
+ from = { key, value: orphans.get(key).value, orphan: orphans.get(key) };
381
+ }
382
+ else if (old && orphans.has(old)) {
383
+ from = { key: old, value: orphans.get(old).value, orphan: orphans.get(old) };
384
+ }
385
+ if (!from)
386
+ continue;
387
+ const fit = cleanFieldValue(def, from.value);
388
+ if (from.orphan) {
389
+ if (!fit.ok)
390
+ continue; // it stays an orphan
391
+ orphans.delete(from.key);
392
+ restored.push(key);
393
+ }
394
+ else {
395
+ consumed.add(from.key);
396
+ if (!fit.ok) {
397
+ fresh.push({ key: from.key, value: from.value, orphanedAt });
398
+ orphaned.push(from.key);
399
+ continue;
400
+ }
401
+ }
402
+ if (from.key !== key)
403
+ renamed.push({ from: from.key, to: key });
404
+ values[key] = fit.value;
405
+ }
406
+ for (const [key, value] of Object.entries(current.values)) {
407
+ if (consumed.has(key))
408
+ continue;
409
+ fresh.push({ key, value, orphanedAt });
410
+ orphaned.push(key);
411
+ }
412
+ for (const orphan of fresh)
413
+ orphans.set(orphan.key, orphan);
414
+ const variant = next && current.variant !== null && Object.hasOwn(next.variants, current.variant)
415
+ ? current.variant
416
+ : next
417
+ ? null
418
+ : current.variant;
419
+ return {
420
+ state: { variant, values, orphans: [...orphans.values()] },
421
+ orphaned,
422
+ renamed,
423
+ restored,
424
+ };
425
+ }
426
+ export function toStoredSchema(input, source) {
427
+ return {
428
+ component: input.component,
429
+ variants: Object.entries(input.variants),
430
+ fields: Object.entries(input.fields),
431
+ source,
432
+ };
433
+ }
434
+ function isPair(value) {
435
+ return Array.isArray(value) && value.length === 2 && typeof value[0] === 'string';
436
+ }
437
+ /** Read the `schema` column back. Null when it's missing or malformed. */
438
+ export function fromStoredSchema(region, value) {
439
+ if (!isRecord(value) || typeof value.component !== 'string')
440
+ return null;
441
+ if (!Array.isArray(value.variants) || !Array.isArray(value.fields))
442
+ return null;
443
+ const variants = {};
444
+ // Keys are checked as on push, so a hand-edited row can't name `__proto__` or `toString`.
445
+ for (const pair of value.variants) {
446
+ if (isPair(pair) && isVariantId(pair[0]) && typeof pair[1] === 'string') {
447
+ variants[pair[0]] = pair[1];
448
+ }
449
+ }
450
+ const fields = {};
451
+ for (const pair of value.fields) {
452
+ if (isPair(pair) &&
453
+ isFieldKey(pair[0]) &&
454
+ isRecord(pair[1]) &&
455
+ typeof pair[1].type === 'string') {
456
+ fields[pair[0]] = pair[1];
457
+ }
458
+ }
459
+ if (Object.keys(variants).length === 0)
460
+ return null;
461
+ const source = isRecord(value.source) ? value.source : {};
462
+ const text = (key) => (typeof source[key] === 'string' ? source[key] : '');
463
+ return {
464
+ region,
465
+ component: value.component,
466
+ variants,
467
+ fields,
468
+ source: {
469
+ repo: text('repo'),
470
+ branch: text('branch'),
471
+ commit: text('commit'),
472
+ readAt: text('readAt'),
473
+ },
474
+ };
475
+ }
476
+ /** Hash of what editors see of a schema, without its source, so a redeploy of the same schema is a no-op. */
477
+ export function schemaHash(input) {
478
+ const canonical = JSON.stringify([
479
+ input.component,
480
+ Object.entries(input.variants),
481
+ Object.entries(input.fields),
482
+ ]);
483
+ return createHash('sha256').update(canonical).digest('hex');
484
+ }
485
+ /** The variant a region shows when nothing picks one: the stored default, or the first. */
486
+ export function effectiveVariant(schema, variant) {
487
+ if (variant !== null && hasVariant(schema, variant))
488
+ return variant;
489
+ return Object.keys(schema.variants)[0] ?? '';
490
+ }
491
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/chrome/values.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,7 @@
4
4
  * the full barrel (codegen, graphql, sharp, etc.) at bundle time.
5
5
  */
6
6
  export { defineConfig, definePlugin } from './index.js';
7
+ export { defineRegion, field } from '../chrome/schema.js';
8
+ export type { ChromeFieldsOf, FieldDef, RegionDefinition, RegionFieldValues, ResolvedRegion, } from '../chrome/schema.js';
7
9
  export type { PrentaCMSConfig, CollectionDefinition, CollectionSEOConfig, FieldDefinition, GlobalDefinition, AuthConfig, PluginDefinition, DatabaseAdapter, StorageAdapter, CacheAdapter, EmailAdapter, SchedulerAdapter, RateLimitAdapter, AdminBrandingConfig, AdminEditorConfig, AdminConfig, I18nConfig, AccessConfig, AccessFunction, PasswordPolicy, BlockDefinition, DatabaseShorthand, StorageShorthand, } from './types.js';
8
10
  //# sourceMappingURL=define.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/config/define.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/config/define.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AACzD,YAAY,EACV,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
@@ -4,4 +4,6 @@
4
4
  * the full barrel (codegen, graphql, sharp, etc.) at bundle time.
5
5
  */
6
6
  export { defineConfig, definePlugin } from './index.js';
7
+ // Site chrome: what editors can change in the header and footer (DATA_CONTRACTS §2).
8
+ export { defineRegion, field } from '../chrome/schema.js';
7
9
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/config/define.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/config/define.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACvD,qFAAqF;AACrF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA"}