@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
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import { randomBytes } from "node:crypto";
2
2
  import { readdirSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
- import { join } from "node:path";
4
+ import { join, resolve } from "node:path";
5
5
  import { COLLECTION_NAME_RE } from "./runtime/storage/id-contracts.js";
6
6
  import { bakeStaticHtmlFiles } from "./runtime/static-bake.js";
7
+ import { caretSatteriPlugin } from "./markdown/satteri.js";
8
+ import { resolveStudioDictionary, } from "./runtime/i18n.js";
9
+ import { caretRemarkPlugin } from "./markdown/remark.js";
7
10
  export { FilesystemAdapter } from "./runtime/storage/filesystem-adapter.js";
8
11
  export { MarkdownAdapter } from "./runtime/storage/markdown-adapter.js";
9
12
  export { InMemoryAdapter } from "./runtime/storage/in-memory-adapter.js";
@@ -11,6 +14,11 @@ export { FilesystemUploadHandler } from "./runtime/storage/filesystem-upload-han
11
14
  export { bindEntry } from "./runtime/bind.js";
12
15
  export { caretLoader, CaretLoaderError } from "./loader.js";
13
16
  export { editable } from "./editable.js";
17
+ // Strip stega edit-metadata from a live field value before it flows into a
18
+ // URL, attribute, or anything parsed (dates, JSON): the invisible characters
19
+ // are safe in visible text but corrupt non-text contexts. Same intent as
20
+ // Vercel's `vercelStegaClean`.
21
+ export { stegaClean } from "./runtime/stega.js";
14
22
  const VIRTUAL_PROVIDER_MODULE_ID = "virtual:caretcms/providers";
15
23
  const RESOLVED_VIRTUAL_PROVIDER_MODULE_ID = `\0${VIRTUAL_PROVIDER_MODULE_ID}`;
16
24
  const VIRTUAL_SCHEMAS_MODULE_ID = "virtual:caretcms/schemas";
@@ -34,6 +42,14 @@ export function defineUploadProvider(options) {
34
42
  options: options.options ?? null,
35
43
  };
36
44
  }
45
+ export function defineIdentityProvider(options) {
46
+ return {
47
+ kind: "identity",
48
+ entrypoint: options.entrypoint,
49
+ exportName: options.exportName ?? "default",
50
+ options: options.options ?? null,
51
+ };
52
+ }
37
53
  export function filesystemStorage(options) {
38
54
  return defineStorageProvider({
39
55
  entrypoint: FILESYSTEM_STORAGE_ENTRYPOINT,
@@ -116,7 +132,14 @@ function resolveBrand(input) {
116
132
  };
117
133
  }
118
134
  function resolveDelivery(input) {
119
- if (!input || input === "server") {
135
+ if (!input || input === "auto") {
136
+ return {
137
+ mode: "auto",
138
+ bake: true,
139
+ publish: { webhookUrl: null, method: "POST", headers: {} },
140
+ };
141
+ }
142
+ if (input === "server") {
120
143
  return {
121
144
  mode: "server",
122
145
  bake: false,
@@ -130,11 +153,11 @@ function resolveDelivery(input) {
130
153
  publish: { webhookUrl: null, method: "POST", headers: {} },
131
154
  };
132
155
  }
133
- const mode = input.mode;
156
+ const mode = input.mode ?? "auto";
134
157
  const staticDelivery = mode === "static";
135
158
  return {
136
159
  mode,
137
- bake: input.bake ?? staticDelivery,
160
+ bake: input.bake ?? (mode === "auto" ? true : staticDelivery),
138
161
  publish: {
139
162
  webhookUrl: input.publish?.webhookUrl?.trim() || null,
140
163
  method: input.publish?.method ?? "POST",
@@ -142,11 +165,28 @@ function resolveDelivery(input) {
142
165
  },
143
166
  };
144
167
  }
168
+ function resolveEffectiveDelivery(delivery, astroOutput) {
169
+ const mode = delivery.mode === "auto"
170
+ ? astroOutput === "static"
171
+ ? "static"
172
+ : "server"
173
+ : delivery.mode;
174
+ return {
175
+ mode,
176
+ bake: mode === "static" ? delivery.bake : false,
177
+ publish: delivery.publish,
178
+ };
179
+ }
180
+ function assertDeliveryMatchesAstroOutput(delivery, astroOutput) {
181
+ if (delivery.mode === "static" && astroOutput !== "static") {
182
+ throw new Error(`[caretcms] delivery: "static" requires Astro output: "static"; this project has output: ${JSON.stringify(astroOutput)}. Remove output: "server" (Astro defaults to static), or set delivery: "server" for runtime middleware.`);
183
+ }
184
+ }
145
185
  /** Every key resolveCaretOptions reads. Anything else in the options object is
146
186
  * a typo (`mountpath`) silently falling back to a default — name it instead. */
147
187
  const KNOWN_OPTION_KEYS = new Set([
148
- "mode", "cloud", "storage", "uploads", "mountPath", "apiBasePath",
149
- "enableAdmin", "enableInlineEditor", "editorHome", "schemas",
188
+ "mode", "cloud", "storage", "uploads", "identity", "mountPath", "apiBasePath",
189
+ "enableAdmin", "enableInlineEditor", "editorHome", "schemas", "collections", "locale", "dictionary",
150
190
  "allowedClasses", "delivery", "theme", "brand",
151
191
  ]);
152
192
  /** Unknown option keys, each with its closest known key when one is plausible. */
@@ -179,12 +219,19 @@ function resolveCaretOptions(options) {
179
219
  uploads: isProviderReference(options.uploads, "uploads")
180
220
  ? options.uploads
181
221
  : defaults.uploads,
222
+ identity: isProviderReference(options.identity, "identity")
223
+ ? options.identity
224
+ : null,
182
225
  enableAdmin: options.enableAdmin ?? mode !== "cloud",
183
226
  enableInlineEditor: options.enableInlineEditor ?? mode !== "cloud",
184
227
  editorHome,
185
228
  cloud,
186
229
  schemas: options.schemas ?? {},
230
+ collections: options.collections ?? {},
231
+ locale: options.locale ?? "en",
232
+ dictionary: resolveStudioDictionary(options.locale ?? "en", options.dictionary),
187
233
  allowedClasses: options.allowedClasses ?? {},
234
+ bodyEditing: options.bodyEditing ?? true,
188
235
  delivery: resolveDelivery(options.delivery),
189
236
  theme: resolveTheme(options.theme),
190
237
  brand: resolveBrand(options.brand),
@@ -194,7 +241,8 @@ async function loadProviderReference(reference) {
194
241
  if (!reference)
195
242
  return null;
196
243
  const mod = (await import(/* @vite-ignore */ reference.entrypoint));
197
- const resolvedExport = mod[reference.exportName ?? "default"] ?? mod.default;
244
+ const exportName = reference.exportName ?? "default";
245
+ const resolvedExport = mod[exportName];
198
246
  if (resolvedExport == null) {
199
247
  throw new Error(`[caretcms] Could not resolve provider export "${reference.exportName ?? "default"}" from ${reference.entrypoint}.`);
200
248
  }
@@ -207,10 +255,14 @@ function buildProviderLoader(functionName, reference) {
207
255
  return `export async function ${functionName}(){return null;}`;
208
256
  }
209
257
  const importName = `__caret_${functionName}`;
258
+ const exportName = reference.exportName ?? "default";
259
+ const exportLookup = exportName === "default"
260
+ ? `${importName}.default`
261
+ : `${importName}[${JSON.stringify(exportName)}]`;
210
262
  return [
211
263
  `import * as ${importName} from ${JSON.stringify(reference.entrypoint)};`,
212
264
  `export async function ${functionName}(){`,
213
- ` const resolvedExport = ${importName}[${JSON.stringify(reference.exportName ?? "default")}] ?? ${importName}.default;`,
265
+ ` const resolvedExport = ${exportLookup};`,
214
266
  " if (resolvedExport == null) {",
215
267
  ` throw new Error(${JSON.stringify(`[caretcms] Could not resolve provider export "${reference.exportName ?? "default"}" from ${reference.entrypoint}.`)});`,
216
268
  " }",
@@ -220,12 +272,13 @@ function buildProviderLoader(functionName, reference) {
220
272
  "}",
221
273
  ].join("\n");
222
274
  }
223
- function createRuntimeProvidersPlugin(resolved) {
275
+ function createRuntimeProvidersPlugin(resolved, delivery) {
224
276
  const source = [
225
277
  buildProviderLoader("loadConfiguredStorage", resolved.storage),
226
278
  buildProviderLoader("loadConfiguredUploadHandler", resolved.uploads),
279
+ buildProviderLoader("loadConfiguredIdentityAdapter", resolved.identity),
227
280
  `export const allowedClasses = ${JSON.stringify(resolved.allowedClasses)};`,
228
- `export const delivery = ${JSON.stringify(resolved.delivery)};`,
281
+ `export const delivery = ${JSON.stringify(delivery)};`,
229
282
  // Surfaced for the middleware's authenticated empty-state affordance: it
230
283
  // needs to know the inline editor is enabled and which paths are CMS-owned
231
284
  // (so the hint never shows inside the Studio / on API + asset routes).
@@ -249,15 +302,20 @@ function createRuntimeProvidersPlugin(resolved) {
249
302
  },
250
303
  };
251
304
  }
252
- function createSchemasPlugin(schemas) {
305
+ function createSchemasPlugin(schemas, collections) {
253
306
  const hasSchemas = Object.keys(schemas).length > 0;
254
- const source = hasSchemas
307
+ const hasCollections = Object.keys(collections).length > 0;
308
+ const source = hasSchemas || hasCollections
255
309
  ? [
256
- `import { registerCollectionSchema } from "@caretcms/core/schema-registry";`,
310
+ `import { registerCollectionSchema, registerCollectionStudioConfig } from "@caretcms/core/schema-registry";`,
257
311
  `import { buildTemplate } from "@caretcms/core/schema-utils";`,
258
312
  `const schemas = ${JSON.stringify(schemas)};`,
313
+ `const collections = ${JSON.stringify(collections)};`,
259
314
  `for (const [collection, schema] of Object.entries(schemas)) {`,
260
- ` registerCollectionSchema(collection, schema, buildTemplate(schema));`,
315
+ ` registerCollectionSchema(collection, schema, buildTemplate(schema), collections[collection]);`,
316
+ `}`,
317
+ `for (const [collection, metadata] of Object.entries(collections)) {`,
318
+ ` registerCollectionStudioConfig(collection, metadata);`,
261
319
  `}`,
262
320
  `export const registered = true;`,
263
321
  ].join("\n")
@@ -283,11 +341,16 @@ function describeProvider(reference) {
283
341
  return "none";
284
342
  return `${reference.entrypoint}#${reference.exportName ?? "default"}`;
285
343
  }
344
+ /** JSON for safe embedding inside an inline `<script>`: escape `<` so a config
345
+ * value containing `</script>` (or `<!--`) can't terminate or confuse the tag. */
346
+ function jsonForInlineScript(value) {
347
+ return JSON.stringify(value).replace(/</g, "\\u003c");
348
+ }
286
349
  function buildCloudBootstrapScript(clientConfig, cloud) {
287
350
  return [
288
- `window.__CARET__ = ${JSON.stringify(clientConfig)};`,
351
+ `window.__CARET__ = ${jsonForInlineScript(clientConfig)};`,
289
352
  `import { bootstrapCloudCms, hasCloudCmsSession, redirectToCloudCmsLogin } from "@caretcms/core/browser-runtime";`,
290
- `const __caretCloudConfig = ${JSON.stringify(cloud)};`,
353
+ `const __caretCloudConfig = ${jsonForInlineScript(cloud)};`,
291
354
  `bootstrapCloudCms(__caretCloudConfig).then(async () => {`,
292
355
  ` const url = new URL(window.location.href);`,
293
356
  ` const wantsEditor = url.searchParams.get("cms") === "1";`,
@@ -327,6 +390,27 @@ function detectContentCollections(rootDir) {
327
390
  return [];
328
391
  }
329
392
  }
393
+ /**
394
+ * Extend the active markdown pipeline with the CaretCMS body-stamping plugin.
395
+ *
396
+ * Astro 7's default processor is Sätteri — its `options.mdastPlugins` array is
397
+ * the sanctioned extension point, and the default instance is created before
398
+ * integration hooks run, so pushing onto it is honored (we never REPLACE
399
+ * `markdown.processor`, whose merge is replace-not-append). Astro 6 and unified
400
+ * holdouts fall through to a remark plugin via `updateConfig`.
401
+ */
402
+ function injectMarkdownStamping(args) {
403
+ const { config, updateConfig, logger, contentRoot } = args;
404
+ const processor = config.markdown?.processor;
405
+ if (processor?.name === "satteri" && processor.options) {
406
+ (processor.options.mdastPlugins ??= []).push(caretSatteriPlugin({ contentRoot }));
407
+ logger.info("[caretcms] Markdown body editing enabled (Sätteri mdast plugin).");
408
+ }
409
+ else {
410
+ updateConfig({ markdown: { remarkPlugins: [caretRemarkPlugin({ contentRoot })] } });
411
+ logger.info("[caretcms] Markdown body editing enabled (remark plugin).");
412
+ }
413
+ }
330
414
  export function caret(options = {}) {
331
415
  const resolved = resolveCaretOptions(options);
332
416
  // Path prefixes the integration owns once its routes are injected; null until
@@ -334,17 +418,21 @@ export function caret(options = {}) {
334
418
  // variants skip injection). Read by the routes:resolved collision check.
335
419
  let ownedRoutePrefixes = null;
336
420
  let shouldBakeStaticOutput = false;
421
+ let effectiveDeliveryForBuild = null;
337
422
  return {
338
423
  name: "caretcms",
339
424
  hooks: {
340
425
  "astro:config:setup": ({ command, config, logger, addMiddleware, injectRoute, injectScript, updateConfig, addDevToolbarApp }) => {
341
426
  const isStaticOutput = config.output === "static";
427
+ assertDeliveryMatchesAstroOutput(resolved.delivery, config.output);
428
+ const effectiveDelivery = resolveEffectiveDelivery(resolved.delivery, config.output);
429
+ effectiveDeliveryForBuild = effectiveDelivery;
342
430
  shouldBakeStaticOutput =
343
431
  command === "build" &&
344
432
  isStaticOutput &&
345
433
  resolved.mode !== "cloud" &&
346
- resolved.delivery.mode === "static" &&
347
- resolved.delivery.bake;
434
+ effectiveDelivery.mode === "static" &&
435
+ effectiveDelivery.bake;
348
436
  // A typo'd option (`mountpath`) used to silently fall back to its
349
437
  // default — the user "configured" something that never took effect.
350
438
  for (const unknown of unknownOptionWarnings(options)) {
@@ -376,6 +464,24 @@ export function caret(options = {}) {
376
464
  logger.info(`[caretcms] Detected Astro content collections under src/content (${detected.join(", ")}) — defaulting storage to markdownStorage(). Pass an explicit \`storage\` to override; add \`schemas\` (e.g. via @caretcms/zod) for typed fields.`);
377
465
  }
378
466
  }
467
+ // Markdown body editing: stamp rendered prose blocks with
468
+ // `data-caret-md` bindings by extending the active markdown pipeline.
469
+ // Runs after zero-config detection so an auto-selected markdown adapter
470
+ // is covered too. Gated on markdown storage + embedded + `bodyEditing`.
471
+ if (resolved.bodyEditing &&
472
+ resolved.mode !== "cloud" &&
473
+ resolved.storage?.entrypoint === MARKDOWN_STORAGE_ENTRYPOINT) {
474
+ const projectRoot = fileURLToPath(config.root);
475
+ const configuredRoot = resolved.storage.options
476
+ ?.contentRoot;
477
+ // The adapter resolves a relative contentRoot against cwd; the stamp
478
+ // plugin compares against absolute file URLs, so resolve it against
479
+ // the project root here (resolve() leaves an absolute root as-is).
480
+ const contentRoot = configuredRoot
481
+ ? resolve(projectRoot, configuredRoot)
482
+ : join(projectRoot, "src", "content");
483
+ injectMarkdownStamping({ config, updateConfig, logger, contentRoot });
484
+ }
379
485
  // Zero-config dev login: when running `astro dev` in an editable
380
486
  // (embedded, server-output) setup with no real password configured,
381
487
  // mint a throwaway password so a freshly-installed site can sign in
@@ -384,7 +490,7 @@ export function caret(options = {}) {
384
490
  const hasEnvPassword = (process.env.CARET_EDIT_PASSWORD ?? process.env.EDIT_PASSWORD ?? "").trim()
385
491
  .length > 0;
386
492
  const devEditorPassword = command === "dev" &&
387
- (!isStaticOutput || resolved.delivery.mode === "static") &&
493
+ (!isStaticOutput || effectiveDelivery.mode === "static") &&
388
494
  resolved.mode !== "cloud" &&
389
495
  !hasEnvPassword
390
496
  ? randomBytes(4).toString("hex")
@@ -398,11 +504,18 @@ export function caret(options = {}) {
398
504
  __ASTRO_CARET_MODE__: JSON.stringify(resolved.mode),
399
505
  __ASTRO_CARET_THEME_CONFIG__: JSON.stringify(JSON.stringify(resolved.theme)),
400
506
  __ASTRO_CARET_BRAND_CONFIG__: JSON.stringify(JSON.stringify(resolved.brand)),
507
+ __ASTRO_CARET_LOCALE__: JSON.stringify(resolved.locale),
508
+ __ASTRO_CARET_DICTIONARY__: JSON.stringify(JSON.stringify(resolved.dictionary)),
401
509
  __ASTRO_CARET_DEV_PASSWORD__: JSON.stringify(devEditorPassword ?? ""),
510
+ // Authoritative dev signal for the auth layer: the public fallback
511
+ // session secret is honored only when this is true. Baked false in
512
+ // production builds so a no-password deployment can't be unlocked
513
+ // with a forged, publicly-signed session (see auth/session.ts).
514
+ __ASTRO_CARET_DEV__: JSON.stringify(command === "dev"),
402
515
  },
403
516
  plugins: [
404
- createRuntimeProvidersPlugin(resolved),
405
- createSchemasPlugin(resolved.schemas),
517
+ createRuntimeProvidersPlugin(resolved, effectiveDelivery),
518
+ createSchemasPlugin(resolved.schemas, resolved.collections),
406
519
  ],
407
520
  },
408
521
  });
@@ -412,7 +525,7 @@ export function caret(options = {}) {
412
525
  apiBasePath: resolved.apiBasePath,
413
526
  cloud: resolved.cloud ?? undefined,
414
527
  allowedClasses: resolved.allowedClasses,
415
- delivery: { mode: resolved.delivery.mode },
528
+ delivery: { mode: effectiveDelivery.mode },
416
529
  };
417
530
  // Dev Toolbar app: a login-free, dev-only view of the data-caret
418
531
  // bindings on the current page — the complement to the in-editor
@@ -439,15 +552,15 @@ export function caret(options = {}) {
439
552
  return;
440
553
  }
441
554
  if (isStaticOutput) {
442
- if (resolved.delivery.mode === "static") {
555
+ if (effectiveDelivery.mode === "static") {
443
556
  if (command !== "dev") {
444
- logger.info(`[caretcms] static delivery enabled (bake=${resolved.delivery.bake}) — authoring routes stay out of production static output; generated HTML is baked at build end.`);
557
+ logger.info(`[caretcms] static delivery enabled (bake=${effectiveDelivery.bake}) — authoring routes stay out of production static output; generated HTML is baked at build end.`);
445
558
  return;
446
559
  }
447
560
  logger.info("[caretcms] static delivery dev authoring enabled — injecting editor/API routes for local preview; production builds bake static HTML.");
448
561
  }
449
562
  else {
450
- logger.warn(`[caretcms] ${resolved.mode} mode needs Astro server output for local editing routes. Static output detected, so embedded CMS middleware and routes were skipped.`);
563
+ logger.warn(`[caretcms] delivery: "server" needs Astro output: "server" plus an SSR adapter for local editing routes. Static output detected, so embedded CMS middleware and routes were skipped. Use delivery: "auto" or "static" to bake HTML for a static site.`);
451
564
  return;
452
565
  }
453
566
  }
@@ -532,16 +645,17 @@ export function caret(options = {}) {
532
645
  entrypoint: new URL("./runtime/routes/editor-assets.js", import.meta.url),
533
646
  });
534
647
  injectScript("page", `(function(){
535
- // Bootstrap when the page has an explicit data-caret binding OR stega-encoded
536
- // content (key hidden in a string via U+E0000); the latter has no attribute
537
- // until the editor hydrates it, so attribute-only detection would miss it.
538
- if(!document.querySelector('[data-caret]') && !/\\u{E0000}/u.test(document.body&&document.body.textContent||''))return;
648
+ // Bootstrap when the page has an explicit data-caret / data-caret-md binding
649
+ // OR stega-encoded content (key hidden in a string via U+E0000); the latter
650
+ // has no attribute until the editor hydrates it, so attribute-only detection
651
+ // would miss it.
652
+ if(!document.querySelector('[data-caret],[data-caret-md]') && !/\\u{E0000}/u.test(document.body&&document.body.textContent||''))return;
539
653
  fetch(${JSON.stringify(`${resolved.apiBasePath}/auth/session`)},{credentials:'same-origin'})
540
654
  .then(function(response){return response.ok?response.json():null;})
541
655
  .then(function(session){
542
656
  if(!session||session.authenticated!==true)return;
543
657
  var l=document.createElement('link');l.rel='stylesheet';l.href='/__caret/editor.css';document.head.appendChild(l);
544
- window.__CARET__=${JSON.stringify(clientConfig)};
658
+ window.__CARET__=${jsonForInlineScript(clientConfig)};
545
659
  var s=document.createElement('script');s.type='module';s.src='/__caret/editor.js?v='+Date.now();document.head.appendChild(s);
546
660
  })
547
661
  .catch(function(){});
@@ -577,6 +691,8 @@ export function caret(options = {}) {
577
691
  "astro:build:done": async ({ dir, logger }) => {
578
692
  if (!shouldBakeStaticOutput)
579
693
  return;
694
+ if (effectiveDeliveryForBuild?.mode !== "static")
695
+ return;
580
696
  const adapter = await loadProviderReference(resolved.storage);
581
697
  if (!adapter) {
582
698
  logger.warn("[caretcms] static delivery bake skipped: no storage provider configured.");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Astro LiveLoader backed by the configured StorageAdapter.
3
3
  *
4
- * Compatible with Astro 6 (stable live content collections) and Astro 5.10+
5
- * (where the feature lives behind `experimental.liveContentCollections`).
4
+ * Compatible with Astro 6 and 7 (stable live content collections). On Astro 7
5
+ * the loader also attaches `cacheHint` tags for publish-time purging.
6
6
  *
7
7
  * Usage in src/caret.config.ts:
8
8
  *
@@ -20,12 +20,23 @@ export declare class CaretLoaderError extends Error {
20
20
  type CaretEntryFilter = {
21
21
  id: string;
22
22
  };
23
+ /**
24
+ * Astro 7 live-collection cache hint (structural — see CaretLiveLoader). Lets the
25
+ * loader tag returned data so a route/CDN cache can be invalidated by tag. Astro
26
+ * 6 (which predates cacheHint) simply ignores the extra field.
27
+ */
28
+ type CaretCacheHint = {
29
+ tags?: string[];
30
+ lastModified?: Date;
31
+ };
23
32
  type CaretLiveDataEntry = {
24
33
  id: string;
25
34
  data: Record<string, unknown>;
35
+ cacheHint?: CaretCacheHint;
26
36
  };
27
37
  type CaretLiveDataCollection = {
28
38
  entries: CaretLiveDataEntry[];
39
+ cacheHint?: CaretCacheHint;
29
40
  };
30
41
  type CaretLoadEntryContext = {
31
42
  filter: CaretEntryFilter;
@@ -37,9 +48,9 @@ type CaretLoadCollectionContext = {
37
48
  };
38
49
  /**
39
50
  * Structural LiveLoader type that is compatible with Astro's LiveLoader
40
- * interface (stable in 6.x, experimental in 5.10+) without importing it
41
- * directly — avoids hard peer-dep coupling at the type level and lets a
42
- * single build target both major versions.
51
+ * interface (6.x and 7.x) without importing it directly — avoids hard
52
+ * peer-dep coupling at the type level and lets a single build target both
53
+ * major versions.
43
54
  */
44
55
  export type CaretLiveLoader = {
45
56
  name: string;
@@ -52,7 +63,7 @@ export type CaretLiveLoader = {
52
63
  };
53
64
  /**
54
65
  * Create an Astro LiveLoader that reads from the configured StorageAdapter.
55
- * Works on Astro 6 (stable) and Astro 5.10+ (experimental flag required).
66
+ * Works on Astro 6 and 7.
56
67
  *
57
68
  * @param collection - The collection name (must be known to the adapter).
58
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAO7C;AA4DD,KAAK,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CACT,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,GAAG,SAAS,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC3E,cAAc,EAAE,CACd,OAAO,EAAE,0BAA0B,KAChC,OAAO,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;CACrE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB,eAAe,CA+CjB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAO7C;AA8ED,KAAK,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;;;GAIG;AACH,KAAK,cAAc,GAAG;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AASF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CACT,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,GAAG,SAAS,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC3E,cAAc,EAAE,CACd,OAAO,EAAE,0BAA0B,KAChC,OAAO,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;CACrE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB,eAAe,CAgEjB"}
package/dist/loader.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Astro LiveLoader backed by the configured StorageAdapter.
3
3
  *
4
- * Compatible with Astro 6 (stable live content collections) and Astro 5.10+
5
- * (where the feature lives behind `experimental.liveContentCollections`).
4
+ * Compatible with Astro 6 and 7 (stable live content collections). On Astro 7
5
+ * the loader also attaches `cacheHint` tags for publish-time purging.
6
6
  *
7
7
  * Usage in src/caret.config.ts:
8
8
  *
@@ -16,6 +16,9 @@
16
16
  */
17
17
  import { getRequestContext, requireRequestContext, } from "./runtime/request-context.js";
18
18
  import { stegaCombine } from "./runtime/stega.js";
19
+ import { stripBodyOverlay } from "./runtime/utils.js";
20
+ import { getRegisteredSchema } from "./runtime/schema-registry.js";
21
+ import { validateJsonSchema } from "./schema-utils.js";
19
22
  export class CaretLoaderError extends Error {
20
23
  constructor(message, cause) {
21
24
  super(message);
@@ -70,9 +73,28 @@ function requireAdapter() {
70
73
  "(the integration registers it with order: 'pre').", cause);
71
74
  }
72
75
  }
76
+ function validationError(collection, id, data) {
77
+ const registered = getRegisteredSchema(collection);
78
+ if (!registered)
79
+ return null;
80
+ const issues = validateJsonSchema(data, registered.schema);
81
+ if (issues.length === 0)
82
+ return null;
83
+ const detail = issues
84
+ .slice(0, 5)
85
+ .map((issue) => `${issue.path || "entry"}: ${issue.message}`)
86
+ .join("; ");
87
+ return new CaretLoaderError(`Stored entry ${collection}::${id} does not match its registered schema (${detail})`);
88
+ }
89
+ /** Cache tags for a collection / entry: publishing can purge by these (Astro 7). */
90
+ const collectionTag = (collection) => `caret:${collection}`;
91
+ const entryTags = (collection, id) => [
92
+ `caret:${collection}`,
93
+ `caret:${collection}::${id}`,
94
+ ];
73
95
  /**
74
96
  * Create an Astro LiveLoader that reads from the configured StorageAdapter.
75
- * Works on Astro 6 (stable) and Astro 5.10+ (experimental flag required).
97
+ * Works on Astro 6 and 7.
76
98
  *
77
99
  * @param collection - The collection name (must be known to the adapter).
78
100
  */
@@ -86,10 +108,18 @@ export function caretLoader(collection) {
86
108
  const entry = await adapter.getEntry(collection, id);
87
109
  if (!entry)
88
110
  return undefined;
89
- const data = isEditorRequest()
90
- ? encodeEntryData(collection, entry.id, entry.data)
91
- : entry.data;
92
- return { id: entry.id, data };
111
+ const editor = isEditorRequest();
112
+ const clean = stripBodyOverlay(entry.data);
113
+ const invalid = validationError(collection, entry.id, clean);
114
+ if (invalid)
115
+ return { error: invalid };
116
+ const data = editor ? encodeEntryData(collection, entry.id, clean) : clean;
117
+ const result = { id: entry.id, data };
118
+ // Published content is cache-taggable so a publish can purge it by tag.
119
+ // Editor/draft requests get NO hint — edits must show immediately.
120
+ if (!editor)
121
+ result.cacheHint = { tags: entryTags(collection, entry.id) };
122
+ return result;
93
123
  }
94
124
  catch (error) {
95
125
  return {
@@ -102,14 +132,27 @@ export function caretLoader(collection) {
102
132
  const adapter = requireAdapter();
103
133
  const allEntries = await adapter.listEntries(collection);
104
134
  const editor = isEditorRequest();
105
- return {
106
- entries: allEntries.map((entry) => ({
135
+ const entries = [];
136
+ for (const entry of allEntries) {
137
+ const clean = stripBodyOverlay(entry.data);
138
+ const invalid = validationError(collection, entry.id, clean);
139
+ if (invalid) {
140
+ console.error(`[caretcms] ${invalid.message}. Skipping this entry; other valid entries remain available.`);
141
+ continue;
142
+ }
143
+ const mapped = {
107
144
  id: entry.id,
108
- data: editor
109
- ? encodeEntryData(collection, entry.id, entry.data)
110
- : entry.data,
111
- })),
112
- };
145
+ data: editor ? encodeEntryData(collection, entry.id, clean) : clean,
146
+ };
147
+ if (!editor)
148
+ mapped.cacheHint = { tags: entryTags(collection, entry.id) };
149
+ entries.push(mapped);
150
+ }
151
+ const result = { entries };
152
+ // Collection-level tag (merged with per-entry tags by Astro); drafts unhinted.
153
+ if (!editor)
154
+ result.cacheHint = { tags: [collectionTag(collection)] };
155
+ return result;
113
156
  }
114
157
  catch (error) {
115
158
  return {