@caretcms/core 0.1.2 → 0.3.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 (190) hide show
  1. package/README.md +109 -13
  2. package/dist/contracts.d.ts +1 -0
  3. package/dist/contracts.d.ts.map +1 -1
  4. package/dist/contracts.js +1 -0
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/index.d.ts +31 -9
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +146 -30
  9. package/dist/index.js.map +1 -1
  10. package/dist/loader.d.ts +17 -6
  11. package/dist/loader.d.ts.map +1 -1
  12. package/dist/loader.js +57 -14
  13. package/dist/loader.js.map +1 -1
  14. package/dist/markdown/block-context.d.ts +21 -0
  15. package/dist/markdown/block-context.d.ts.map +1 -0
  16. package/dist/markdown/block-context.js +27 -0
  17. package/dist/markdown/block-context.js.map +1 -0
  18. package/dist/markdown/canonical-body.d.ts +30 -0
  19. package/dist/markdown/canonical-body.d.ts.map +1 -0
  20. package/dist/markdown/canonical-body.js +54 -0
  21. package/dist/markdown/canonical-body.js.map +1 -0
  22. package/dist/markdown/contracts.d.ts +66 -0
  23. package/dist/markdown/contracts.d.ts.map +1 -0
  24. package/dist/markdown/contracts.js +102 -0
  25. package/dist/markdown/contracts.js.map +1 -0
  26. package/dist/markdown/html-to-snodes.d.ts +26 -0
  27. package/dist/markdown/html-to-snodes.d.ts.map +1 -0
  28. package/dist/markdown/html-to-snodes.js +118 -0
  29. package/dist/markdown/html-to-snodes.js.map +1 -0
  30. package/dist/markdown/remark.d.ts +35 -0
  31. package/dist/markdown/remark.d.ts.map +1 -0
  32. package/dist/markdown/remark.js +66 -0
  33. package/dist/markdown/remark.js.map +1 -0
  34. package/dist/markdown/satteri.d.ts +19 -0
  35. package/dist/markdown/satteri.d.ts.map +1 -0
  36. package/dist/markdown/satteri.js +144 -0
  37. package/dist/markdown/satteri.js.map +1 -0
  38. package/dist/markdown/serialize.d.ts +60 -0
  39. package/dist/markdown/serialize.d.ts.map +1 -0
  40. package/dist/markdown/serialize.js +264 -0
  41. package/dist/markdown/serialize.js.map +1 -0
  42. package/dist/markdown/splice.d.ts +32 -0
  43. package/dist/markdown/splice.d.ts.map +1 -0
  44. package/dist/markdown/splice.js +44 -0
  45. package/dist/markdown/splice.js.map +1 -0
  46. package/dist/markdown/stamp.d.ts +68 -0
  47. package/dist/markdown/stamp.d.ts.map +1 -0
  48. package/dist/markdown/stamp.js +131 -0
  49. package/dist/markdown/stamp.js.map +1 -0
  50. package/dist/runtime/auth/rate-limiter.d.ts.map +1 -1
  51. package/dist/runtime/auth/rate-limiter.js +5 -0
  52. package/dist/runtime/auth/rate-limiter.js.map +1 -1
  53. package/dist/runtime/auth/session.d.ts +3 -3
  54. package/dist/runtime/auth/session.d.ts.map +1 -1
  55. package/dist/runtime/auth/session.js +68 -21
  56. package/dist/runtime/auth/session.js.map +1 -1
  57. package/dist/runtime/config.d.ts +3 -0
  58. package/dist/runtime/config.d.ts.map +1 -1
  59. package/dist/runtime/config.js +4 -1
  60. package/dist/runtime/config.js.map +1 -1
  61. package/dist/runtime/content.d.ts.map +1 -1
  62. package/dist/runtime/content.js +4 -2
  63. package/dist/runtime/content.js.map +1 -1
  64. package/dist/runtime/i18n.d.ts +86 -0
  65. package/dist/runtime/i18n.d.ts.map +1 -0
  66. package/dist/runtime/i18n.js +168 -0
  67. package/dist/runtime/i18n.js.map +1 -0
  68. package/dist/runtime/middleware.d.ts.map +1 -1
  69. package/dist/runtime/middleware.js +61 -6
  70. package/dist/runtime/middleware.js.map +1 -1
  71. package/dist/runtime/mutations/contracts.d.ts +28 -1
  72. package/dist/runtime/mutations/contracts.d.ts.map +1 -1
  73. package/dist/runtime/mutations/contracts.js +76 -0
  74. package/dist/runtime/mutations/contracts.js.map +1 -1
  75. package/dist/runtime/mutations/engine.d.ts +6 -1
  76. package/dist/runtime/mutations/engine.d.ts.map +1 -1
  77. package/dist/runtime/mutations/engine.js +271 -51
  78. package/dist/runtime/mutations/engine.js.map +1 -1
  79. package/dist/runtime/providers.d.ts +2 -1
  80. package/dist/runtime/providers.d.ts.map +1 -1
  81. package/dist/runtime/providers.js +7 -1
  82. package/dist/runtime/providers.js.map +1 -1
  83. package/dist/runtime/publish.d.ts +13 -1
  84. package/dist/runtime/publish.d.ts.map +1 -1
  85. package/dist/runtime/publish.js +80 -4
  86. package/dist/runtime/publish.js.map +1 -1
  87. package/dist/runtime/request-context.d.ts +14 -2
  88. package/dist/runtime/request-context.d.ts.map +1 -1
  89. package/dist/runtime/request-context.js +7 -1
  90. package/dist/runtime/request-context.js.map +1 -1
  91. package/dist/runtime/rewrite.d.ts.map +1 -1
  92. package/dist/runtime/rewrite.js +109 -3
  93. package/dist/runtime/rewrite.js.map +1 -1
  94. package/dist/runtime/rich-allowlist.d.ts.map +1 -1
  95. package/dist/runtime/rich-allowlist.js +5 -1
  96. package/dist/runtime/rich-allowlist.js.map +1 -1
  97. package/dist/runtime/routes/admin-entry.d.ts.map +1 -1
  98. package/dist/runtime/routes/admin-entry.js +114 -18
  99. package/dist/runtime/routes/admin-entry.js.map +1 -1
  100. package/dist/runtime/routes/admin.d.ts.map +1 -1
  101. package/dist/runtime/routes/admin.js +33 -15
  102. package/dist/runtime/routes/admin.js.map +1 -1
  103. package/dist/runtime/routes/auth-login.d.ts.map +1 -1
  104. package/dist/runtime/routes/auth-login.js +4 -0
  105. package/dist/runtime/routes/auth-login.js.map +1 -1
  106. package/dist/runtime/routes/auth-logout.d.ts.map +1 -1
  107. package/dist/runtime/routes/auth-logout.js +7 -2
  108. package/dist/runtime/routes/auth-logout.js.map +1 -1
  109. package/dist/runtime/routes/auth-session.d.ts.map +1 -1
  110. package/dist/runtime/routes/auth-session.js +4 -2
  111. package/dist/runtime/routes/auth-session.js.map +1 -1
  112. package/dist/runtime/routes/collection-list.d.ts.map +1 -1
  113. package/dist/runtime/routes/collection-list.js +64 -41
  114. package/dist/runtime/routes/collection-list.js.map +1 -1
  115. package/dist/runtime/routes/entries.d.ts.map +1 -1
  116. package/dist/runtime/routes/entries.js +16 -6
  117. package/dist/runtime/routes/entries.js.map +1 -1
  118. package/dist/runtime/routes/history.d.ts.map +1 -1
  119. package/dist/runtime/routes/history.js +50 -22
  120. package/dist/runtime/routes/history.js.map +1 -1
  121. package/dist/runtime/routes/mutate.d.ts.map +1 -1
  122. package/dist/runtime/routes/mutate.js +40 -6
  123. package/dist/runtime/routes/mutate.js.map +1 -1
  124. package/dist/runtime/routes/publish.d.ts.map +1 -1
  125. package/dist/runtime/routes/publish.js +5 -2
  126. package/dist/runtime/routes/publish.js.map +1 -1
  127. package/dist/runtime/routes/schema.d.ts.map +1 -1
  128. package/dist/runtime/routes/schema.js +11 -3
  129. package/dist/runtime/routes/schema.js.map +1 -1
  130. package/dist/runtime/routes/studio-home.d.ts.map +1 -1
  131. package/dist/runtime/routes/studio-home.js +38 -19
  132. package/dist/runtime/routes/studio-home.js.map +1 -1
  133. package/dist/runtime/routes/theme-stylesheet.d.ts.map +1 -1
  134. package/dist/runtime/routes/theme-stylesheet.js +11 -1
  135. package/dist/runtime/routes/theme-stylesheet.js.map +1 -1
  136. package/dist/runtime/schema-registry.d.ts +8 -1
  137. package/dist/runtime/schema-registry.d.ts.map +1 -1
  138. package/dist/runtime/schema-registry.js +47 -3
  139. package/dist/runtime/schema-registry.js.map +1 -1
  140. package/dist/runtime/storage/atomic-write.d.ts.map +1 -1
  141. package/dist/runtime/storage/atomic-write.js +8 -3
  142. package/dist/runtime/storage/atomic-write.js.map +1 -1
  143. package/dist/runtime/storage/markdown-adapter.d.ts +19 -0
  144. package/dist/runtime/storage/markdown-adapter.d.ts.map +1 -1
  145. package/dist/runtime/storage/markdown-adapter.js +41 -0
  146. package/dist/runtime/storage/markdown-adapter.js.map +1 -1
  147. package/dist/runtime/storage/session-overlay-adapter.d.ts +8 -0
  148. package/dist/runtime/storage/session-overlay-adapter.d.ts.map +1 -1
  149. package/dist/runtime/storage/session-overlay-adapter.js +24 -2
  150. package/dist/runtime/storage/session-overlay-adapter.js.map +1 -1
  151. package/dist/runtime/themes/preset-tokens.js +4 -4
  152. package/dist/runtime/themes/preset-tokens.js.map +1 -1
  153. package/dist/runtime/utils.d.ts +10 -0
  154. package/dist/runtime/utils.d.ts.map +1 -1
  155. package/dist/runtime/utils.js +16 -0
  156. package/dist/runtime/utils.js.map +1 -1
  157. package/dist/runtime/views/studio-layout.d.ts +3 -0
  158. package/dist/runtime/views/studio-layout.d.ts.map +1 -1
  159. package/dist/runtime/views/studio-layout.js +36 -13
  160. package/dist/runtime/views/studio-layout.js.map +1 -1
  161. package/dist/schema-utils.d.ts +7 -0
  162. package/dist/schema-utils.d.ts.map +1 -1
  163. package/dist/schema-utils.js +143 -0
  164. package/dist/schema-utils.js.map +1 -1
  165. package/dist/types.d.ts +83 -1
  166. package/dist/types.d.ts.map +1 -1
  167. package/package.json +2 -2
  168. package/static/cms/admin-entry.css +135 -13
  169. package/static/cms/admin-entry.js +509 -86
  170. package/static/cms/editor/guards.js +1 -1
  171. package/static/cms/editor/image-edit.js +42 -11
  172. package/static/cms/editor/image.css +7 -1
  173. package/static/cms/editor/md-block-edit.js +176 -0
  174. package/static/cms/editor/md-serialize.js +301 -0
  175. package/static/cms/editor/panel.css +69 -25
  176. package/static/cms/editor/panel.js +58 -1
  177. package/static/cms/editor/rich-toolbar.js +4 -3
  178. package/static/cms/editor/sanitize.js +2 -1
  179. package/static/cms/editor/sync.js +277 -56
  180. package/static/cms/editor/text-edit.js +68 -17
  181. package/static/cms/editor/text-link-interactions.js +4 -4
  182. package/static/cms/editor/toast.css +114 -2
  183. package/static/cms/editor/toast.js +121 -22
  184. package/static/cms/editor/tokens-and-text.css +73 -3
  185. package/static/cms/editor/toolbar.css +19 -6
  186. package/static/cms/editor/toolbar.js +64 -23
  187. package/static/cms/editor.css +1 -1
  188. package/static/cms/editor.js +14 -3
  189. package/static/cms/studio-tokens.css +4 -4
  190. package/static/cms/studio.css +24 -0
@@ -0,0 +1,168 @@
1
+ export const EN_STUDIO_MESSAGES = {
2
+ "nav.studio": "Studio",
3
+ "nav.signOut": "Sign out",
4
+ "home.title": "Content Studio",
5
+ "home.intro": "Manage your collections and entries.",
6
+ "home.empty": "No collections yet. Create one from Studio, edit any data-caret element on your site, or run npx @caretcms/caretize to make existing pages editable.",
7
+ "count.entry": "entry",
8
+ "count.entries": "entries",
9
+ "common.error": "Error",
10
+ "common.loading": "Loading…",
11
+ "common.close": "Close",
12
+ "common.cancel": "Cancel",
13
+ "common.retry": "Retry",
14
+ "common.saving": "Saving…",
15
+ "collection.search": "Search",
16
+ "collection.searchPlaceholder": "Search entries…",
17
+ "collection.reorder": "Reorder",
18
+ "collection.reordering": "Reordering…",
19
+ "collection.new": "+ New",
20
+ "collection.noEntries": "No entries yet.",
21
+ "collection.createFirst": "Create First Entry",
22
+ "collection.failed": "Failed to load entries.",
23
+ "collection.saveOrder": "Save Order",
24
+ "collection.newEntry": "New Entry",
25
+ "collection.entryId": "Entry ID (slug)",
26
+ "collection.entryIdPlaceholder": "e.g. my-first-entry",
27
+ "collection.idHint": "Use a permanent internal address such as quiet-structures. Lowercase letters, numbers, and hyphens only.",
28
+ "collection.publishHint": "You’ll add the content on the next screen. Collections with a Published switch remain hidden until you turn it on and Save.",
29
+ "collection.create": "Create",
30
+ "collection.untitled": "Untitled",
31
+ "collection.published": "Published",
32
+ "collection.unpublished": "Unpublished",
33
+ "collection.invalid": "Invalid stored data — open to repair",
34
+ "collection.invalidId": "Use lowercase letters, numbers, and hyphens only.",
35
+ "collection.duplicateId": "An entry with this ID already exists.",
36
+ "collection.createFailed": "Failed to create entry. Try again.",
37
+ "entry.notFound": "Entry not found.",
38
+ "entry.goBack": "Go back",
39
+ "entry.savingLive": "Saving live",
40
+ "entry.savingPreview": "Saving to private preview",
41
+ "entry.preview": "Preview site ↗",
42
+ "entry.history": "History",
43
+ "entry.delete": "Delete",
44
+ "entry.saveLive": "Save live",
45
+ "entry.saveDraft": "Save draft",
46
+ "entry.guideTitle": "How editing works",
47
+ "entry.guideCopy": "Edit any field, add or remove repeatable rows, then choose Save. In the sidebar Studio, text and image edits preview on the page as you work; Save confirms them and refreshes the visual preview for structural changes. Click an image preview to replace it, or paste an image URL. The Published switch controls whether signed-out visitors can see an entry.",
48
+ "entry.versionHistory": "Version History",
49
+ "entry.deleteTitle": "Delete Entry",
50
+ "entry.deleteCopy": "Permanently delete this entry? A snapshot will be saved to history for recovery.",
51
+ "entry.allSaved": "All changes saved",
52
+ "entry.unsaved": "Unsaved changes",
53
+ "entry.savingChanges": "Saving changes…",
54
+ "entry.saved": "Saved",
55
+ "entry.liveConfirm": "Save these changes directly to the live site?",
56
+ "entry.validationFailed": "Validation failed",
57
+ "entry.changedElsewhere": "Changed elsewhere — Save again to overwrite",
58
+ "entry.deleteFailed": "Delete failed",
59
+ "entry.deleting": "Deleting…",
60
+ "entry.newGuideTitle": "Entry created with safe defaults",
61
+ "entry.newGuideCopy": "Fill in the fields below. Save becomes available after your first change. In the sidebar Studio, text and image edits preview on the page as you work; Save confirms them and refreshes the visual preview for structural changes. The Published switch controls whether signed-out visitors can see this entry.",
62
+ "field.add": "Add",
63
+ "field.remove": "Remove",
64
+ "field.moveUp": "Move up",
65
+ "field.moveDown": "Move down",
66
+ "field.drag": "Drag to reorder",
67
+ "field.replaceImage": "Replace image",
68
+ "field.uploadOrReplaceImage": "Upload or replace image",
69
+ "field.chooseImage": "Choose an image",
70
+ "login.title": "Sign in",
71
+ "login.password": "Password",
72
+ "login.placeholder": "Enter editor password",
73
+ "login.submit": "Sign in",
74
+ "login.invalid": "Invalid password.",
75
+ "login.status": "Sign in to manage content.",
76
+ "login.noPassword": "Caret needs an editor password before you can sign in.",
77
+ "login.devPassword": "Temporary dev password active — check your terminal to sign in.",
78
+ "login.back": "← Back to site",
79
+ "login.failed": "Login failed",
80
+ };
81
+ const ES_STUDIO_MESSAGES = {
82
+ "nav.studio": "Estudio",
83
+ "nav.signOut": "Cerrar sesión",
84
+ "home.title": "Estudio de contenido",
85
+ "home.intro": "Administra tus colecciones y entradas.",
86
+ "home.empty": "Todavía no hay colecciones. Crea una desde el Estudio, edita un elemento data-caret del sitio o ejecuta npx @caretcms/caretize para hacer editables las páginas existentes.",
87
+ "count.entry": "entrada",
88
+ "count.entries": "entradas",
89
+ "common.error": "Error",
90
+ "common.loading": "Cargando…",
91
+ "common.close": "Cerrar",
92
+ "common.cancel": "Cancelar",
93
+ "common.retry": "Reintentar",
94
+ "common.saving": "Guardando…",
95
+ "collection.search": "Buscar",
96
+ "collection.searchPlaceholder": "Buscar entradas…",
97
+ "collection.reorder": "Reordenar",
98
+ "collection.reordering": "Reordenando…",
99
+ "collection.new": "+ Nueva",
100
+ "collection.noEntries": "Todavía no hay entradas.",
101
+ "collection.createFirst": "Crear la primera entrada",
102
+ "collection.failed": "No se pudieron cargar las entradas.",
103
+ "collection.saveOrder": "Guardar orden",
104
+ "collection.newEntry": "Nueva entrada",
105
+ "collection.entryId": "ID de la entrada (slug)",
106
+ "collection.entryIdPlaceholder": "p. ej., mi-primera-entrada",
107
+ "collection.idHint": "Usa una dirección interna permanente como estructuras-tranquilas. Solo letras minúsculas, números y guiones.",
108
+ "collection.publishHint": "Agregarás el contenido en la siguiente pantalla. Las entradas con el interruptor Publicado permanecen ocultas hasta que lo actives y guardes.",
109
+ "collection.create": "Crear",
110
+ "collection.untitled": "Sin título",
111
+ "collection.published": "Publicado",
112
+ "collection.unpublished": "Sin publicar",
113
+ "collection.invalid": "Datos guardados no válidos — abre para corregir",
114
+ "collection.invalidId": "Usa solo letras minúsculas, números y guiones.",
115
+ "collection.duplicateId": "Ya existe una entrada con este ID.",
116
+ "collection.createFailed": "No se pudo crear la entrada. Inténtalo de nuevo.",
117
+ "entry.notFound": "No se encontró la entrada.",
118
+ "entry.goBack": "Volver",
119
+ "entry.savingLive": "Guardado directo en el sitio",
120
+ "entry.savingPreview": "Guardado en vista previa privada",
121
+ "entry.preview": "Ver sitio ↗",
122
+ "entry.history": "Historial",
123
+ "entry.delete": "Eliminar",
124
+ "entry.saveLive": "Guardar en vivo",
125
+ "entry.saveDraft": "Guardar borrador",
126
+ "entry.guideTitle": "Cómo funciona la edición",
127
+ "entry.guideCopy": "Edita cualquier campo, agrega o elimina filas repetibles y luego guarda. En el Estudio lateral, los cambios de texto e imagen aparecen mientras trabajas; Guardar los confirma y actualiza la vista para los cambios estructurales. Haz clic en una imagen para reemplazarla o pega una URL. El interruptor Publicado controla si los visitantes pueden ver la entrada.",
128
+ "entry.versionHistory": "Historial de versiones",
129
+ "entry.deleteTitle": "Eliminar entrada",
130
+ "entry.deleteCopy": "¿Eliminar esta entrada permanentemente? Se guardará una copia en el historial para poder recuperarla.",
131
+ "entry.allSaved": "Todos los cambios están guardados",
132
+ "entry.unsaved": "Cambios sin guardar",
133
+ "entry.savingChanges": "Guardando cambios…",
134
+ "entry.saved": "Guardado",
135
+ "entry.liveConfirm": "¿Guardar estos cambios directamente en el sitio público?",
136
+ "entry.validationFailed": "La validación falló",
137
+ "entry.changedElsewhere": "Hubo cambios en otro lugar — vuelve a guardar para sobrescribir",
138
+ "entry.deleteFailed": "No se pudo eliminar",
139
+ "entry.deleting": "Eliminando…",
140
+ "entry.newGuideTitle": "Entrada creada con valores seguros",
141
+ "entry.newGuideCopy": "Completa los campos. Guardar estará disponible después del primer cambio. En el Estudio lateral, los cambios de texto e imagen aparecen mientras trabajas; Guardar los confirma y actualiza la vista para los cambios estructurales. El interruptor Publicado controla si los visitantes pueden ver esta entrada.",
142
+ "field.add": "Agregar",
143
+ "field.remove": "Eliminar",
144
+ "field.moveUp": "Mover arriba",
145
+ "field.moveDown": "Mover abajo",
146
+ "field.drag": "Arrastrar para reordenar",
147
+ "field.replaceImage": "Reemplazar imagen",
148
+ "field.uploadOrReplaceImage": "Subir o reemplazar imagen",
149
+ "field.chooseImage": "Elegir una imagen",
150
+ "login.title": "Iniciar sesión",
151
+ "login.password": "Contraseña",
152
+ "login.placeholder": "Ingresa la contraseña de edición",
153
+ "login.submit": "Iniciar sesión",
154
+ "login.invalid": "Contraseña incorrecta.",
155
+ "login.status": "Inicia sesión para administrar el contenido.",
156
+ "login.noPassword": "Caret necesita una contraseña de edición antes de iniciar sesión.",
157
+ "login.devPassword": "La contraseña temporal de desarrollo está activa — consúltala en la terminal.",
158
+ "login.back": "← Volver al sitio",
159
+ "login.failed": "No se pudo iniciar sesión",
160
+ };
161
+ export function resolveStudioDictionary(locale = "en", overrides = {}) {
162
+ return {
163
+ ...EN_STUDIO_MESSAGES,
164
+ ...(locale === "es" ? ES_STUDIO_MESSAGES : {}),
165
+ ...overrides,
166
+ };
167
+ }
168
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/runtime/i18n.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"AAUA,OAAO,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAqFF,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE9C,wBAAsB,SAAS,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,QAAQ,CAAC,CAgInB"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"AAWA,OAAO,0BAA0B,CAAC;AAElC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAqFF,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AA4B9C,wBAAsB,SAAS,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,QAAQ,CAAC,CA+JnB"}
@@ -5,6 +5,7 @@ import { runWithRequestContext } from "./request-context.js";
5
5
  import { rewriteCaretAttributes } from "./rewrite.js";
6
6
  import { hasStega, stegaClean } from "./stega.js";
7
7
  import { SessionOverlayAdapter } from "./storage/session-overlay-adapter.js";
8
+ import { EDITOR_ID_RE } from "./storage/id-contracts.js";
8
9
  // Side-effect import: registers any user-provided schemas into the schema registry
9
10
  import "virtual:caretcms/schemas";
10
11
  let _cachedRuntimeEnv;
@@ -77,9 +78,35 @@ async function resolveRuntimeEnv() {
77
78
  }
78
79
  return _cachedRuntimeEnv;
79
80
  }
81
+ async function authenticateIdentity(adapter, request) {
82
+ if (!adapter)
83
+ return null;
84
+ try {
85
+ const identity = await adapter.authenticate(request);
86
+ if (!identity)
87
+ return null;
88
+ if (!EDITOR_ID_RE.test(identity.id)) {
89
+ console.error("[caretcms] Identity adapter returned an unsafe editor id; access denied.");
90
+ return null;
91
+ }
92
+ return {
93
+ id: identity.id,
94
+ ...(typeof identity.name === "string" ? { name: identity.name } : {}),
95
+ ...(typeof identity.email === "string" ? { email: identity.email } : {}),
96
+ ...(Array.isArray(identity.roles)
97
+ ? { roles: identity.roles.filter((role) => typeof role === "string") }
98
+ : {}),
99
+ };
100
+ }
101
+ catch (error) {
102
+ console.error("[caretcms] Identity adapter authentication failed; access denied.", error);
103
+ return null;
104
+ }
105
+ }
80
106
  export async function onRequest(context, next) {
81
107
  const services = await getRuntimeServices();
82
108
  const runtimeEnv = await resolveRuntimeEnv();
109
+ const request = context.request ?? new Request("http://localhost/");
83
110
  let adapter = services.adapter;
84
111
  let uploadHandler = services.uploadHandler;
85
112
  let sessionId = null;
@@ -87,8 +114,15 @@ export async function onRequest(context, next) {
87
114
  let setCookieHeader = null;
88
115
  let overlayActive = false;
89
116
  const demoMode = isDemoModeEnabled(runtimeEnv);
117
+ const identity = demoMode
118
+ ? null
119
+ : await authenticateIdentity(services.identityAdapter, request);
120
+ if (identity)
121
+ editorId = identity.id;
122
+ else if (!demoMode && !services.identityAdapter) {
123
+ editorId = getEditorId(context);
124
+ }
90
125
  if (demoMode) {
91
- const request = context.request ?? new Request("http://localhost/");
92
126
  const resolution = resolveDemoSession(context, request);
93
127
  sessionId = resolution.sessionId;
94
128
  setCookieHeader = resolution.setCookieHeader;
@@ -107,10 +141,11 @@ export async function onRequest(context, next) {
107
141
  else if (isPreviewRequest(context) && services.adapter.makeEditorOverlay) {
108
142
  // Draft/preview mode: an authenticated editor opting into preview reads and
109
143
  // writes through their per-editor overlay (the public site keeps seeing the
110
- // base). Keyed by the editor id from the session cookie; absent that, there's
111
- // no editor session so we leave the base adapter in place. Publish later
112
- // flushes the overlay back to the base.
113
- const id = getEditorId(context);
144
+ // base). Keyed by the editor id from the session cookie; absent that (an
145
+ // unauthenticated preview request), there's no editor session so we leave the
146
+ // base adapter in place. Publish later flushes the overlay back to the base.
147
+ const id = identity?.id
148
+ ?? (services.identityAdapter ? null : getEditorId(context));
114
149
  if (id) {
115
150
  const overlay = await services.adapter.makeEditorOverlay(id);
116
151
  adapter = new SessionOverlayAdapter(services.adapter, overlay);
@@ -123,8 +158,11 @@ export async function onRequest(context, next) {
123
158
  uploadHandler,
124
159
  sessionId,
125
160
  editorId,
161
+ identity,
162
+ identityAuthoritative: services.identityAdapter !== null,
126
163
  demoMode,
127
164
  overlayActive,
165
+ runtimeEnv,
128
166
  editor: false,
129
167
  };
130
168
  return runWithRequestContext(requestContext, async () => {
@@ -134,6 +172,7 @@ export async function onRequest(context, next) {
134
172
  // Mutate the live context object so the loaders see the gate during render.
135
173
  requestContext.editor = isEditor;
136
174
  context.locals.isEditor = isEditor;
175
+ context.locals.caretIdentity = identity;
137
176
  const inner = await next();
138
177
  const contentType = inner.headers.get("content-type") ?? "";
139
178
  const contentEncoding = inner.headers.get("content-encoding") ?? "";
@@ -156,7 +195,23 @@ export async function onRequest(context, next) {
156
195
  // so the two valued forms cover every binding the engine can act on.
157
196
  const hasBindings = BINDING_PROBE_RE.test(html);
158
197
  if (hasBindings) {
159
- html = await rewriteCaretAttributes(html, adapter, {
198
+ // An authenticated editor in server delivery reads live base content
199
+ // (field edits save straight through), but their inline BODY-block
200
+ // edits are always deferred drafts. Preview those on the editor's own
201
+ // requests so a reload shows staged prose instead of silently
202
+ // reverting to the source. ONLY the rewrite needs the overlay — it
203
+ // injects the drafted `__body` HTML into stamped blocks — so loaders
204
+ // and field writes keep using the base adapter and "changes save
205
+ // directly" still holds. Demo/preview already overlay everything via
206
+ // `adapter`; the public (editor === false) always reads the base.
207
+ let rewriteAdapter = adapter;
208
+ if (!overlayActive && requestContext.editor && services.adapter.makeEditorOverlay) {
209
+ const id = editorId ?? getEditorId(context);
210
+ if (id) {
211
+ rewriteAdapter = new SessionOverlayAdapter(services.adapter, await services.adapter.makeEditorOverlay(id));
212
+ }
213
+ }
214
+ html = await rewriteCaretAttributes(html, rewriteAdapter, {
160
215
  allowedClasses: services.allowedClasses,
161
216
  });
162
217
  rewritten = true;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/runtime/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,mFAAmF;AACnF,OAAO,0BAA0B,CAAC;AAUlC,IAAI,iBAA6D,CAAC;AAClE,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,SAAS,kBAAkB;IACzB,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,IAAI,CACV,2EAA2E;QACzE,sEAAsE;QACtE,sEAAsE;QACtE,0EAA0E,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC;;4EAE4E;AAC5E,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAE3D;;;mCAGmC;AACnC,SAAS,cAAc,CACrB,OAA0B,EAC1B,SAAiB,EACjB,WAAmB;IAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC;QACpC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAChC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;iEAEiE;AACjE,SAAS,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IACvD,MAAM,OAAO,GACX,yDAAyD;QACzD,+CAA+C;QAC/C,iEAAiE;QACjE,qFAAqF;QACrF,oEAAoE,SAAS,4BAA4B;QACzG,eAAe,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,GAAG,OAAO,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAED;;kCAEkC;AAClC,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAErD,CAAC;QACF,iBAAiB,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAID,KAAK,UAAU,oBAAoB,CACjC,OAA+B,EAC/B,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,GAAG,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/B,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;gBACtF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mEAAmE,EAAE,KAAK,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAA0B,EAC1B,IAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEpE,IAAI,OAAO,GAAmB,QAAQ,CAAC,OAAO,CAAC;IAC/C,IAAI,aAAa,GAAkB,QAAQ,CAAC,aAAa,CAAC;IAC1D,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAClE,IAAI,QAAQ;QAAE,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;SAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChD,QAAQ,GAAG,WAAW,CAAC,OAA4C,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACjC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;QAE7C,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACrE,OAAO,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/D,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,kBAAkB,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,QAAQ,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;YAC9C,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,8EAA8E;QAC9E,6EAA6E;QAC7E,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE;eAClB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAA4C,CAAC,CAAC,CAAC;QACnG,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/D,aAAa,GAAG,IAAI,CAAC;YACrB,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,OAAO;QACP,aAAa;QACb,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,qBAAqB,EAAE,QAAQ,CAAC,eAAe,KAAK,IAAI;QACxD,QAAQ;QACR,aAAa;QACb,UAAU;QACV,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,OAAO,qBAAqB,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,QAAQ,GAAG,qBAAqB,CACpC,OAAsD,CACvD,CAAC;QACF,wEAAwE;QACxE,yEAAyE;QACzE,4EAA4E;QAC5E,cAAc,CAAC,MAAM,GAAG,QAAQ,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACpE,mEAAmE;QACnE,uEAAuE;QACvE,mEAAmE;QACnE,kEAAkE;QAClE,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,IAAI,eAAe,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;QAC1F,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC;QAE/D,IAAI,IAAI,GAAoB,KAAK,CAAC,IAAI,CAAC;QACvC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9B,YAAY,GAAG,IAAI,CAAC;YACpB,yEAAyE;YACzE,0EAA0E;YAC1E,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,qEAAqE;gBACrE,mEAAmE;gBACnE,sEAAsE;gBACtE,8DAA8D;gBAC9D,mEAAmE;gBACnE,qEAAqE;gBACrE,iEAAiE;gBACjE,qEAAqE;gBACrE,kEAAkE;gBAClE,IAAI,cAAc,GAAG,OAAO,CAAC;gBAC7B,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBAClF,MAAM,EAAE,GAAG,QAAQ,IAAI,WAAW,CAAC,OAA4C,CAAC,CAAC;oBACjF,IAAI,EAAE,EAAE,CAAC;wBACP,cAAc,GAAG,IAAI,qBAAqB,CACxC,QAAQ,CAAC,OAAO,EAChB,MAAM,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAC7C,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE;oBACxD,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,sEAAsE;YACtE,sEAAsE;YACtE,0EAA0E;YAC1E,wBAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,uEAAuE;YACvE,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,gEAAgE;YAChE,IACE,QAAQ,CAAC,kBAAkB;gBAC3B,cAAc,CAAC,MAAM;gBACrB,CAAC,WAAW;gBACZ,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,EAClE,CAAC;gBACD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAClD,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChD,IAAI,eAAe;YAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAEnE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,12 @@
1
1
  import type { StorageAdapter } from "../../types.js";
2
+ import { type MdSrc } from "../../markdown/contracts.js";
3
+ /**
4
+ * Upper bound on an `md_block` HTML payload (UTF-16 code units). A block is a
5
+ * single paragraph/heading/list item; even generous prose stays far below this.
6
+ * A dedicated cap (vs the blanket 1MB JSON body cap) keeps one block edit from
7
+ * dragging megabytes into the draft overlay and every subsequent publish.
8
+ */
9
+ export declare const MAX_MD_BLOCK_HTML_LENGTH: number;
2
10
  export type MutationIssue = {
3
11
  path: string;
4
12
  code: string;
@@ -54,6 +62,9 @@ export type CreateCollectionCommand = {
54
62
  icon?: string;
55
63
  creatable?: boolean;
56
64
  orderable?: boolean;
65
+ deletable?: boolean;
66
+ singletonId?: string;
67
+ order?: number;
57
68
  schema: {
58
69
  type: "object";
59
70
  properties: Record<string, unknown>;
@@ -66,7 +77,23 @@ export type DeleteCollectionCommand = {
66
77
  type: "delete_collection";
67
78
  id: string;
68
79
  };
69
- export type CmsMutationCommand = SaveFieldCommand | PutEntryCommand | DeleteEntryCommand | ReorderEntriesCommand | UpdatePageLayoutCommand | CreateCollectionCommand | DeleteCollectionCommand;
80
+ export type MdBlockCommand = {
81
+ type: "md_block";
82
+ collection: string;
83
+ id: string;
84
+ /** Block identity within the entry body (`data-caret-md` blockPath segment). */
85
+ blockPath: string;
86
+ /** Verified source hint (`data-caret-md-src` value, parsed). */
87
+ src: MdSrc;
88
+ /**
89
+ * The edited block's inline HTML. The ONLY content field — markdown is
90
+ * derived server-side after sanitization, never accepted from the client
91
+ * (client markdown would be spliced into source files verbatim on publish).
92
+ */
93
+ html: string;
94
+ expectedRevision?: number;
95
+ };
96
+ export type CmsMutationCommand = SaveFieldCommand | PutEntryCommand | DeleteEntryCommand | ReorderEntriesCommand | UpdatePageLayoutCommand | CreateCollectionCommand | DeleteCollectionCommand | MdBlockCommand;
70
97
  export declare function isRecord(value: unknown): value is Record<string, unknown>;
71
98
  /**
72
99
  * Validate a collection name's *format* (not its existence). A well-formed
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import { COLLECTION_NAME_RE, ENTRY_ID_RE } from "../storage/id-contracts.js";
2
+ import { BLOCK_PATH_RE, BODY_OVERLAY_KEY, parseMdSrc, } from "../../markdown/contracts.js";
3
+ /**
4
+ * Upper bound on an `md_block` HTML payload (UTF-16 code units). A block is a
5
+ * single paragraph/heading/list item; even generous prose stays far below this.
6
+ * A dedicated cap (vs the blanket 1MB JSON body cap) keeps one block edit from
7
+ * dragging megabytes into the draft overlay and every subsequent publish.
8
+ */
9
+ export const MAX_MD_BLOCK_HTML_LENGTH = 64 * 1024;
2
10
  export function isRecord(value) {
3
11
  return typeof value === "object" && value !== null && !Array.isArray(value);
4
12
  }
@@ -62,6 +70,12 @@ async function parseSaveFieldCommand(adapter, input) {
62
70
  if (expectedRevision === null) {
63
71
  issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
64
72
  }
73
+ // The body-draft map is written ONLY by md_block (whose markdown is derived
74
+ // server-side). A save_field into it would smuggle unvalidated markdown that
75
+ // publish later splices into a source file.
76
+ if (field && (field === BODY_OVERLAY_KEY || field.startsWith(`${BODY_OVERLAY_KEY}.`))) {
77
+ issues.push(issue("field", "reserved_field", `"${BODY_OVERLAY_KEY}" is reserved`));
78
+ }
65
79
  if (issues.length > 0 || !collection || !id || !field || typeof value !== "string") {
66
80
  return { ok: false, issues };
67
81
  }
@@ -92,6 +106,10 @@ async function parsePutEntryCommand(adapter, input) {
92
106
  if (expectedRevision === null) {
93
107
  issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
94
108
  }
109
+ // See parseSaveFieldCommand: only md_block may write the body-draft map.
110
+ if (isRecord(data) && Object.prototype.hasOwnProperty.call(data, BODY_OVERLAY_KEY)) {
111
+ issues.push(issue(`data.${BODY_OVERLAY_KEY}`, "reserved_field", `"${BODY_OVERLAY_KEY}" is reserved`));
112
+ }
95
113
  if (issues.length > 0 || !collection || !id || !isRecord(data))
96
114
  return { ok: false, issues };
97
115
  return {
@@ -228,6 +246,53 @@ async function parseUpdatePageLayoutCommand(adapter, input) {
228
246
  },
229
247
  };
230
248
  }
249
+ async function parseMdBlockCommand(adapter, input) {
250
+ const issues = [];
251
+ const collection = await parseCollection(adapter, input.collection);
252
+ const id = parseEntryId(input.id);
253
+ const blockPath = typeof input.blockPath === "string" ? input.blockPath : null;
254
+ const src = typeof input.src === "string" ? parseMdSrc(input.src) : null;
255
+ const html = input.html;
256
+ const expectedRevision = asOptionalExpectedRevision(input.expectedRevision);
257
+ if (!collection)
258
+ issues.push(issue("collection", "invalid_type", "Invalid collection"));
259
+ if (!id)
260
+ issues.push(issue("id", "invalid_type", "Invalid id"));
261
+ if (!blockPath || !BLOCK_PATH_RE.test(blockPath)) {
262
+ issues.push(issue("blockPath", "invalid_type", "Invalid block path"));
263
+ }
264
+ if (!src)
265
+ issues.push(issue("src", "invalid_type", "Invalid source hint"));
266
+ if (typeof html !== "string") {
267
+ issues.push(issue("html", "invalid_type", "html must be a string"));
268
+ }
269
+ else if (html.length > MAX_MD_BLOCK_HTML_LENGTH) {
270
+ issues.push(issue("html", "too_long", `html exceeds ${MAX_MD_BLOCK_HTML_LENGTH} characters`));
271
+ }
272
+ if (expectedRevision === null) {
273
+ issues.push(issue("expectedRevision", "invalid_type", "expectedRevision must be a non-negative integer"));
274
+ }
275
+ if (issues.length > 0 ||
276
+ !collection ||
277
+ !id ||
278
+ !blockPath ||
279
+ !src ||
280
+ typeof html !== "string") {
281
+ return { ok: false, issues };
282
+ }
283
+ return {
284
+ ok: true,
285
+ command: {
286
+ type: "md_block",
287
+ collection,
288
+ id,
289
+ blockPath,
290
+ src,
291
+ html,
292
+ expectedRevision: expectedRevision ?? undefined,
293
+ },
294
+ };
295
+ }
231
296
  export async function parseMutationCommand(adapter, input) {
232
297
  if (!isRecord(input)) {
233
298
  return {
@@ -257,6 +322,8 @@ export async function parseMutationCommand(adapter, input) {
257
322
  return parseCreateCollectionCommand(adapter, input);
258
323
  case "delete_collection":
259
324
  return parseDeleteCollectionCommand(adapter, input);
325
+ case "md_block":
326
+ return parseMdBlockCommand(adapter, input);
260
327
  default:
261
328
  return {
262
329
  ok: false,
@@ -276,6 +343,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
276
343
  const icon = typeof input.icon === "string" ? input.icon : undefined;
277
344
  const creatable = typeof input.creatable === "boolean" ? input.creatable : undefined;
278
345
  const orderable = typeof input.orderable === "boolean" ? input.orderable : undefined;
346
+ const deletable = typeof input.deletable === "boolean" ? input.deletable : undefined;
347
+ const singletonId = input.singletonId === undefined ? undefined : parseEntryId(input.singletonId);
348
+ const order = typeof input.order === "number" && Number.isFinite(input.order) ? input.order : undefined;
279
349
  const schema = input.schema;
280
350
  if (!id) {
281
351
  issues.push(issue("id", "invalid_type", "Collection ID must be lowercase alphanumeric with hyphens/underscores"));
@@ -286,6 +356,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
286
356
  if (!isRecord(schema) || schema.type !== "object" || !isRecord(schema.properties)) {
287
357
  issues.push(issue("schema", "invalid_type", "Schema must be a valid JSON Schema object with properties"));
288
358
  }
359
+ if (input.singletonId !== undefined && !singletonId) {
360
+ issues.push(issue("singletonId", "invalid_type", "singletonId must be a valid entry id"));
361
+ }
289
362
  if (issues.length > 0 || !id || !label || !isRecord(schema)) {
290
363
  return { ok: false, issues };
291
364
  }
@@ -299,6 +372,9 @@ async function parseCreateCollectionCommand(_adapter, input) {
299
372
  icon,
300
373
  creatable,
301
374
  orderable,
375
+ deletable,
376
+ singletonId: singletonId ?? undefined,
377
+ order,
302
378
  schema: schema,
303
379
  },
304
380
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/runtime/mutations/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { StorageAdapter } from "../../types.js";
2
2
  import { type MutationIssue } from "./contracts.js";
3
+ /** Request-scoped extras a route can thread into `executeMutation`. */
4
+ export interface MutationOptions {
5
+ /** Per-tag class allowlist for the md_block HTML re-sanitize. */
6
+ allowedClasses?: Record<string, string[]>;
7
+ }
3
8
  /**
4
9
  * Run `task` while holding the same per-entry lock the mutation engine uses,
5
10
  * so an out-of-band write (e.g. a history restore) is serialized against any
@@ -25,6 +30,6 @@ type MutationResult = {
25
30
  status: number;
26
31
  body: MutationErrorBody;
27
32
  };
28
- export declare function executeMutation(adapter: StorageAdapter, input: unknown): Promise<MutationResult>;
33
+ export declare function executeMutation(adapter: StorageAdapter, input: unknown, options?: MutationOptions): Promise<MutationResult>;
29
34
  export {};
30
35
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AA2CxB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAqP3D,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAyBtG"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtime/mutations/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAOxB,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC3C;AAmDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAud3D,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CA6BzB"}