@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.
- package/README.md +109 -13
- package/dist/contracts.d.ts +1 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +1 -0
- package/dist/contracts.js.map +1 -1
- package/dist/index.d.ts +31 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +146 -30
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +17 -6
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +57 -14
- package/dist/loader.js.map +1 -1
- package/dist/markdown/block-context.d.ts +21 -0
- package/dist/markdown/block-context.d.ts.map +1 -0
- package/dist/markdown/block-context.js +27 -0
- package/dist/markdown/block-context.js.map +1 -0
- package/dist/markdown/canonical-body.d.ts +30 -0
- package/dist/markdown/canonical-body.d.ts.map +1 -0
- package/dist/markdown/canonical-body.js +54 -0
- package/dist/markdown/canonical-body.js.map +1 -0
- package/dist/markdown/contracts.d.ts +66 -0
- package/dist/markdown/contracts.d.ts.map +1 -0
- package/dist/markdown/contracts.js +102 -0
- package/dist/markdown/contracts.js.map +1 -0
- package/dist/markdown/html-to-snodes.d.ts +26 -0
- package/dist/markdown/html-to-snodes.d.ts.map +1 -0
- package/dist/markdown/html-to-snodes.js +118 -0
- package/dist/markdown/html-to-snodes.js.map +1 -0
- package/dist/markdown/remark.d.ts +35 -0
- package/dist/markdown/remark.d.ts.map +1 -0
- package/dist/markdown/remark.js +66 -0
- package/dist/markdown/remark.js.map +1 -0
- package/dist/markdown/satteri.d.ts +19 -0
- package/dist/markdown/satteri.d.ts.map +1 -0
- package/dist/markdown/satteri.js +144 -0
- package/dist/markdown/satteri.js.map +1 -0
- package/dist/markdown/serialize.d.ts +60 -0
- package/dist/markdown/serialize.d.ts.map +1 -0
- package/dist/markdown/serialize.js +264 -0
- package/dist/markdown/serialize.js.map +1 -0
- package/dist/markdown/splice.d.ts +32 -0
- package/dist/markdown/splice.d.ts.map +1 -0
- package/dist/markdown/splice.js +44 -0
- package/dist/markdown/splice.js.map +1 -0
- package/dist/markdown/stamp.d.ts +68 -0
- package/dist/markdown/stamp.d.ts.map +1 -0
- package/dist/markdown/stamp.js +131 -0
- package/dist/markdown/stamp.js.map +1 -0
- package/dist/runtime/auth/rate-limiter.d.ts.map +1 -1
- package/dist/runtime/auth/rate-limiter.js +5 -0
- package/dist/runtime/auth/rate-limiter.js.map +1 -1
- package/dist/runtime/auth/session.d.ts +3 -3
- package/dist/runtime/auth/session.d.ts.map +1 -1
- package/dist/runtime/auth/session.js +68 -21
- package/dist/runtime/auth/session.js.map +1 -1
- package/dist/runtime/config.d.ts +3 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +4 -1
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/content.d.ts.map +1 -1
- package/dist/runtime/content.js +4 -2
- package/dist/runtime/content.js.map +1 -1
- package/dist/runtime/i18n.d.ts +86 -0
- package/dist/runtime/i18n.d.ts.map +1 -0
- package/dist/runtime/i18n.js +168 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/middleware.d.ts.map +1 -1
- package/dist/runtime/middleware.js +61 -6
- package/dist/runtime/middleware.js.map +1 -1
- package/dist/runtime/mutations/contracts.d.ts +28 -1
- package/dist/runtime/mutations/contracts.d.ts.map +1 -1
- package/dist/runtime/mutations/contracts.js +76 -0
- package/dist/runtime/mutations/contracts.js.map +1 -1
- package/dist/runtime/mutations/engine.d.ts +6 -1
- package/dist/runtime/mutations/engine.d.ts.map +1 -1
- package/dist/runtime/mutations/engine.js +271 -51
- package/dist/runtime/mutations/engine.js.map +1 -1
- package/dist/runtime/providers.d.ts +2 -1
- package/dist/runtime/providers.d.ts.map +1 -1
- package/dist/runtime/providers.js +7 -1
- package/dist/runtime/providers.js.map +1 -1
- package/dist/runtime/publish.d.ts +13 -1
- package/dist/runtime/publish.d.ts.map +1 -1
- package/dist/runtime/publish.js +80 -4
- package/dist/runtime/publish.js.map +1 -1
- package/dist/runtime/request-context.d.ts +14 -2
- package/dist/runtime/request-context.d.ts.map +1 -1
- package/dist/runtime/request-context.js +7 -1
- package/dist/runtime/request-context.js.map +1 -1
- package/dist/runtime/rewrite.d.ts.map +1 -1
- package/dist/runtime/rewrite.js +109 -3
- package/dist/runtime/rewrite.js.map +1 -1
- package/dist/runtime/rich-allowlist.d.ts.map +1 -1
- package/dist/runtime/rich-allowlist.js +5 -1
- package/dist/runtime/rich-allowlist.js.map +1 -1
- package/dist/runtime/routes/admin-entry.d.ts.map +1 -1
- package/dist/runtime/routes/admin-entry.js +114 -18
- package/dist/runtime/routes/admin-entry.js.map +1 -1
- package/dist/runtime/routes/admin.d.ts.map +1 -1
- package/dist/runtime/routes/admin.js +33 -15
- package/dist/runtime/routes/admin.js.map +1 -1
- package/dist/runtime/routes/auth-login.d.ts.map +1 -1
- package/dist/runtime/routes/auth-login.js +4 -0
- package/dist/runtime/routes/auth-login.js.map +1 -1
- package/dist/runtime/routes/auth-logout.d.ts.map +1 -1
- package/dist/runtime/routes/auth-logout.js +7 -2
- package/dist/runtime/routes/auth-logout.js.map +1 -1
- package/dist/runtime/routes/auth-session.d.ts.map +1 -1
- package/dist/runtime/routes/auth-session.js +4 -2
- package/dist/runtime/routes/auth-session.js.map +1 -1
- package/dist/runtime/routes/collection-list.d.ts.map +1 -1
- package/dist/runtime/routes/collection-list.js +64 -41
- package/dist/runtime/routes/collection-list.js.map +1 -1
- package/dist/runtime/routes/entries.d.ts.map +1 -1
- package/dist/runtime/routes/entries.js +16 -6
- package/dist/runtime/routes/entries.js.map +1 -1
- package/dist/runtime/routes/history.d.ts.map +1 -1
- package/dist/runtime/routes/history.js +50 -22
- package/dist/runtime/routes/history.js.map +1 -1
- package/dist/runtime/routes/mutate.d.ts.map +1 -1
- package/dist/runtime/routes/mutate.js +40 -6
- package/dist/runtime/routes/mutate.js.map +1 -1
- package/dist/runtime/routes/publish.d.ts.map +1 -1
- package/dist/runtime/routes/publish.js +5 -2
- package/dist/runtime/routes/publish.js.map +1 -1
- package/dist/runtime/routes/schema.d.ts.map +1 -1
- package/dist/runtime/routes/schema.js +11 -3
- package/dist/runtime/routes/schema.js.map +1 -1
- package/dist/runtime/routes/studio-home.d.ts.map +1 -1
- package/dist/runtime/routes/studio-home.js +38 -19
- package/dist/runtime/routes/studio-home.js.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.d.ts.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.js +11 -1
- package/dist/runtime/routes/theme-stylesheet.js.map +1 -1
- package/dist/runtime/schema-registry.d.ts +8 -1
- package/dist/runtime/schema-registry.d.ts.map +1 -1
- package/dist/runtime/schema-registry.js +47 -3
- package/dist/runtime/schema-registry.js.map +1 -1
- package/dist/runtime/storage/atomic-write.d.ts.map +1 -1
- package/dist/runtime/storage/atomic-write.js +8 -3
- package/dist/runtime/storage/atomic-write.js.map +1 -1
- package/dist/runtime/storage/markdown-adapter.d.ts +19 -0
- package/dist/runtime/storage/markdown-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/markdown-adapter.js +41 -0
- package/dist/runtime/storage/markdown-adapter.js.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.d.ts +8 -0
- package/dist/runtime/storage/session-overlay-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.js +24 -2
- package/dist/runtime/storage/session-overlay-adapter.js.map +1 -1
- package/dist/runtime/themes/preset-tokens.js +4 -4
- package/dist/runtime/themes/preset-tokens.js.map +1 -1
- package/dist/runtime/utils.d.ts +10 -0
- package/dist/runtime/utils.d.ts.map +1 -1
- package/dist/runtime/utils.js +16 -0
- package/dist/runtime/utils.js.map +1 -1
- package/dist/runtime/views/studio-layout.d.ts +3 -0
- package/dist/runtime/views/studio-layout.d.ts.map +1 -1
- package/dist/runtime/views/studio-layout.js +36 -13
- package/dist/runtime/views/studio-layout.js.map +1 -1
- package/dist/schema-utils.d.ts +7 -0
- package/dist/schema-utils.d.ts.map +1 -1
- package/dist/schema-utils.js +143 -0
- package/dist/schema-utils.js.map +1 -1
- package/dist/types.d.ts +83 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/cms/admin-entry.css +135 -13
- package/static/cms/admin-entry.js +509 -86
- package/static/cms/editor/guards.js +1 -1
- package/static/cms/editor/image-edit.js +42 -11
- package/static/cms/editor/image.css +7 -1
- package/static/cms/editor/md-block-edit.js +176 -0
- package/static/cms/editor/md-serialize.js +301 -0
- package/static/cms/editor/panel.css +69 -25
- package/static/cms/editor/panel.js +58 -1
- package/static/cms/editor/rich-toolbar.js +4 -3
- package/static/cms/editor/sanitize.js +2 -1
- package/static/cms/editor/sync.js +277 -56
- package/static/cms/editor/text-edit.js +68 -17
- package/static/cms/editor/text-link-interactions.js +4 -4
- package/static/cms/editor/toast.css +114 -2
- package/static/cms/editor/toast.js +121 -22
- package/static/cms/editor/tokens-and-text.css +73 -3
- package/static/cms/editor/toolbar.css +19 -6
- package/static/cms/editor/toolbar.js +64 -23
- package/static/cms/editor.css +1 -1
- package/static/cms/editor.js +14 -3
- package/static/cms/studio-tokens.css +4 -4
- 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 === "
|
|
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
|
|
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 = ${
|
|
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(
|
|
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
|
|
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__ = ${
|
|
351
|
+
`window.__CARET__ = ${jsonForInlineScript(clientConfig)};`,
|
|
289
352
|
`import { bootstrapCloudCms, hasCloudCmsSession, redirectToCloudCmsLogin } from "@caretcms/core/browser-runtime";`,
|
|
290
|
-
`const __caretCloudConfig = ${
|
|
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
|
-
|
|
347
|
-
|
|
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 ||
|
|
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:
|
|
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 (
|
|
555
|
+
if (effectiveDelivery.mode === "static") {
|
|
443
556
|
if (command !== "dev") {
|
|
444
|
-
logger.info(`[caretcms] static delivery enabled (bake=${
|
|
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]
|
|
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
|
|
536
|
-
// content (key hidden in a string via U+E0000); the latter
|
|
537
|
-
// until the editor hydrates it, so attribute-only detection
|
|
538
|
-
|
|
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__=${
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAUvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,uBAAuB,GAIxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAChE,MAAM,mCAAmC,GAAG,KAAK,0BAA0B,EAAE,CAAC;AAC9E,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,kCAAkC,GAAG,KAAK,yBAAyB,EAAE,CAAC;AAC5E,MAAM,6BAA6B,GAAG,6CAA6C,CAAC;AACpF,MAAM,2BAA2B,GAAG,2CAA2C,CAAC;AAChF,MAAM,wBAAwB,GAAG,wCAAwC,CAAC;AAmM1E,MAAM,UAAU,qBAAqB,CACnC,OAAkC;IAElC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAkC;IAElC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAkC;IAElC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAGjC;IACC,OAAO,qBAAqB,CAAC;QAC3B,UAAU,EAAE,6BAA6B;QACzC,UAAU,EAAE,2BAA2B;QACvC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAG/B;IACC,OAAO,qBAAqB,CAAC;QAC3B,UAAU,EAAE,2BAA2B;QACvC,UAAU,EAAE,yBAAyB;QACrC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAE5B;IACC,OAAO,oBAAoB,CAAC;QAC1B,UAAU,EAAE,wBAAwB;QACpC,UAAU,EAAE,sBAAsB;QAClC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,SAAS,aAAa,CAAC,KAA4B;IACjD,OAAO,KAAK,IAAI,UAAU,CAAC;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAwB;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS;QACT,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,UAAU;QACpD,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;QACnD,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,IAAW;IAEX,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,CACL,SAAS,CAAC,IAAI,KAAK,IAAI;QACvB,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;QACxC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAe;IAIvC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,iBAAiB,EAAE;QAC5B,OAAO,EAAE,YAAY,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAmC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACjD,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC9B,cAAc,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAmC;IACvD,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB;QAC7C,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI;QACjC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAAmC;IAEnC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;IAClC,MAAM,cAAc,GAAG,IAAI,KAAK,QAAQ,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;QAC7D,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI;YACrD,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE;SACtC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAgC,EAChC,WAAyC;IAEzC,MAAM,IAAI,GACR,QAAQ,CAAC,IAAI,KAAK,MAAM;QACtB,CAAC,CAAC,WAAW,KAAK,QAAQ;YACxB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ;QACZ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAgC,EAChC,WAAyC;IAEzC,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,2FAA2F,IAAI,CAAC,SAAS,CACvG,WAAW,CACZ,yGAAyG,CAC3G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;iFACiF;AACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa;IAC7E,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY;IACnG,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;CAC/C,CAAC,CAAC;AAEH,kFAAkF;AAClF,SAAS,qBAAqB,CAAC,OAAqB;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,oBAAoB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAqB;IAChD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GACT,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,qBAAqB,CAAE,OAAoD,CAAC,KAAK,CAAC;QACpF,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,kEAAkE,IAAI,CAAC,SAAS,CAC9E,OAAO,CAAC,UAAU,CACnB,IAAI,CACN,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC1D,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;QAChE,IAAI;QACJ,OAAO,EAAE,mBAAmB,CAAE,OAAiC,CAAC,OAAO,EAAE,SAAS,CAAC;YACjF,CAAC,CAAE,OAA6C,CAAC,OAAO;YACxD,CAAC,CAAC,QAAQ,CAAC,OAAO;QACpB,OAAO,EAAE,mBAAmB,CAAE,OAAiC,CAAC,OAAO,EAAE,SAAS,CAAC;YACjF,CAAC,CAAE,OAA4C,CAAC,OAAO;YACvD,CAAC,CAAC,QAAQ,CAAC,OAAO;QACpB,QAAQ,EAAE,mBAAmB,CAAE,OAAkC,CAAC,QAAQ,EAAE,UAAU,CAAC;YACrF,CAAC,CAAE,OAA+C,CAAC,QAAQ;YAC3D,CAAC,CAAC,IAAI;QACR,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,KAAK,OAAO;QACpD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,IAAI,KAAK,OAAO;QAClE,UAAU;QACV,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,UAAU,EAAE,uBAAuB,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;QAC/E,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAA0C;IAE1C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAA4B,CAAC;IAC/F,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC;IACrD,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,iDAAiD,SAAS,CAAC,UAAU,IAAI,SAAS,UAAU,SAAS,CAAC,UAAU,GAAG,CACpH,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,cAAc,KAAK,UAAU;QACzC,CAAC,CAAE,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,CAAO;QAC1D,CAAC,CAAE,cAAoB,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAoB,EACpB,SAA0C;IAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,yBAAyB,YAAY,kBAAkB,CAAC;IACjE,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,YAAY,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC;IACrD,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS;QAC3C,CAAC,CAAC,GAAG,UAAU,UAAU;QACzB,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;IAEnD,OAAO;QACL,eAAe,UAAU,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;QACzE,yBAAyB,YAAY,KAAK;QAC1C,4BAA4B,YAAY,GAAG;QAC3C,iCAAiC;QACjC,uBAAuB,IAAI,CAAC,SAAS,CACnC,iDAAiD,SAAS,CAAC,UAAU,IAAI,SAAS,UAAU,SAAS,CAAC,UAAU,GAAG,CACpH,IAAI;QACL,KAAK;QACL,+CAA+C;QAC/C,8BAA8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG;QAC1E,uBAAuB;QACvB,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CACnC,QAA8B,EAC9B,QAAiC;IAEjC,MAAM,MAAM,GAAG;QACb,mBAAmB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC9D,mBAAmB,CAAC,6BAA6B,EAAE,QAAQ,CAAC,OAAO,CAAC;QACpE,mBAAmB,CAAC,+BAA+B,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACvE,iCAAiC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG;QAC3E,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;QACtD,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,qCAAqC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;QACnF,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG;QACjE,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;KACtE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,SAAS,CAAC,EAAU;YAClB,IAAI,EAAE,KAAK,0BAA0B,EAAE,CAAC;gBACtC,OAAO,mCAAmC,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,EAAU;YACb,IAAI,EAAE,KAAK,mCAAmC,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAA6C,EAC7C,WAAmD;IAEnD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,UAAU,IAAI,cAAc;QACzC,CAAC,CAAC;YACE,4GAA4G;YAC5G,8DAA8D;YAC9D,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;YAC7C,uBAAuB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;YACrD,+DAA+D;YAC/D,iGAAiG;YACjG,GAAG;YACH,qEAAqE;YACrE,yDAAyD;YACzD,GAAG;YACH,iCAAiC;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,kCAAkC,CAAC;IAEvC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,SAAS,CAAC,EAAU;YAClB,IAAI,EAAE,KAAK,yBAAyB,EAAE,CAAC;gBACrC,OAAO,kCAAkC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,EAAU;YACb,IAAI,EAAE,KAAK,kCAAkC,EAAE,CAAC;gBAC9C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA0C;IAClE,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;AACxE,CAAC;AAED;mFACmF;AACnF,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAqC,EACrC,KAAwB;IAExB,OAAO;QACL,sBAAsB,mBAAmB,CAAC,YAAY,CAAC,GAAG;QAC1D,kHAAkH;QAClH,8BAA8B,mBAAmB,CAAC,KAAK,CAAC,GAAG;QAC3D,0DAA0D;QAC1D,8CAA8C;QAC9C,4DAA4D;QAC5D,iDAAiD;QACjD,oDAAoD;QACpD,aAAa;QACb,KAAK;QACL,sBAAsB;QACtB,wEAAwE;QACxE,KAAK;QACL,uBAAuB;QACvB,sEAAsE;QACtE,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAAC,IAK/B;IACC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7C,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAwB,EAAE;IAC9C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9C,8EAA8E;IAC9E,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,kBAAkB,GAAoB,IAAI,CAAC;IAC/C,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,yBAAyB,GAAmC,IAAI,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE;YACL,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE;gBAC9H,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAClD,gCAAgC,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrF,yBAAyB,GAAG,iBAAiB,CAAC;gBAC9C,sBAAsB;oBACpB,OAAO,KAAK,OAAO;wBACnB,cAAc;wBACd,QAAQ,CAAC,IAAI,KAAK,OAAO;wBACzB,iBAAiB,CAAC,IAAI,KAAK,QAAQ;wBACnC,iBAAiB,CAAC,IAAI,CAAC;gBAEzB,kEAAkE;gBAClE,oEAAoE;gBACpE,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,6BAA6B,OAAO,aAAa,CAAC,CAAC;gBACjE,CAAC;gBAED,0EAA0E;gBAC1E,2EAA2E;gBAC3E,wEAAwE;gBACxE,0EAA0E;gBAC1E,wEAAwE;gBACxE,uEAAuE;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,gBAAgB;gBAChB,MAAM,cAAc,GAAG,mBAAmB,CACvC,OAAiC,CAAC,OAAO,EAC1C,SAAS,CACV,CAAC;gBACF,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACjD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC/C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;oBACvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,gEAAgE;wBAChE,kEAAkE;wBAClE,6DAA6D;wBAC7D,8DAA8D;wBAC9D,kCAAkC;wBAClC,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;4BACjC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC;4BAChD,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;yBACzC,CAAC,CAAC;wBACH,MAAM,CAAC,IAAI,CACT,oEAAoE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mJAAmJ,CAC3O,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,0DAA0D;gBAC1D,sEAAsE;gBACtE,wEAAwE;gBACxE,wEAAwE;gBACxE,IACE,QAAQ,CAAC,WAAW;oBACpB,QAAQ,CAAC,IAAI,KAAK,OAAO;oBACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,KAAK,2BAA2B,EAC5D,CAAC;oBACD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC/C,MAAM,cAAc,GAAI,QAAQ,CAAC,OAAO,CAAC,OAA2C;wBAClF,EAAE,WAAW,CAAC;oBAChB,qEAAqE;oBACrE,oEAAoE;oBACpE,mEAAmE;oBACnE,MAAM,WAAW,GAAG,cAAc;wBAChC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC;wBACtC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBACxC,sBAAsB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBACxE,CAAC;gBAED,iEAAiE;gBACjE,oEAAoE;gBACpE,oEAAoE;gBACpE,qEAAqE;gBACrE,+CAA+C;gBAC/C,MAAM,cAAc,GAClB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;qBACxE,MAAM,GAAG,CAAC,CAAC;gBAChB,MAAM,iBAAiB,GACrB,OAAO,KAAK,KAAK;oBACjB,CAAC,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,CAAC;oBACxD,QAAQ,CAAC,IAAI,KAAK,OAAO;oBACzB,CAAC,cAAc;oBACb,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAChC,CAAC,CAAC,IAAI,CAAC;gBAEX,YAAY,CAAC;oBACX,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,0BAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAC9D,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;4BACnE,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;4BAChE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACnD,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC5E,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC5E,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACvD,0BAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;4BAC/E,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;4BACrE,mEAAmE;4BACnE,mEAAmE;4BACnE,kEAAkE;4BAClE,gEAAgE;4BAChE,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC;yBACvD;wBACD,OAAO,EAAE;4BACP,4BAA4B,CAAC,QAAQ,EAAE,iBAAiB,CAAC;4BACzD,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;yBAC5D;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAG;oBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS;oBAClC,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE;iBAC3C,CAAC;gBAEF,iEAAiE;gBACjE,iEAAiE;gBACjE,kEAAkE;gBAClE,mEAAmE;gBACnE,kEAAkE;gBAClE,8BAA8B;gBAC9B,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtB,gBAAgB,CAAC;wBACf,EAAE,EAAE,UAAU;wBACd,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,2OAA2O;wBACjP,UAAU,EAAE,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBACzE,CAAC,CAAC;oBACH,oEAAoE;oBACpE,oEAAoE;oBACpE,6DAA6D;oBAC7D,YAAY,CACV,MAAM,EACN,wBAAwB,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAChH,CAAC;gBACJ,CAAC;gBAED,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9B,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAM,CAAC,CAAC,CAAC;oBAC/E,MAAM,CAAC,IAAI,CACT,2MAA2M,CAC5M,CAAC;oBACF,MAAM,CAAC,IAAI,CACT,2CAA2C,QAAQ,CAAC,KAAM,CAAC,SAAS,cAAc,QAAQ,CAAC,KAAM,CAAC,QAAQ,YAAY,cAAc,GAAG,CACxI,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACxC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;4BACtB,MAAM,CAAC,IAAI,CACT,4CAA4C,iBAAiB,CAAC,IAAI,kGAAkG,CACrK,CAAC;4BACF,OAAO;wBACT,CAAC;wBACD,MAAM,CAAC,IAAI,CACT,uIAAuI,CACxI,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CACT,uPAAuP,CACxP,CAAC;wBACF,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,aAAa,CAAC;oBACZ,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBAChE,CAAC,CAAC;gBAEH,kBAAkB,GAAG;oBACnB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,QAAQ,CAAC,WAAW;oBACpB,UAAU;iBACX,CAAC;gBAEF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACzB,WAAW,CAAC;wBACV,OAAO,EAAE,QAAQ,CAAC,SAAS;wBAC3B,UAAU,EAAE,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBAClE,CAAC,CAAC;oBACH,WAAW,CAAC;wBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,MAAM;wBACpC,UAAU,EAAE,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBACxE,CAAC,CAAC;oBACH,WAAW,CAAC;wBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,mBAAmB;wBACjD,UAAU,EAAE,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC5E,CAAC,CAAC;oBACH,WAAW,CAAC;wBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,wBAAwB;wBACtD,UAAU,EAAE,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBACxE,CAAC,CAAC;gBACL,CAAC;gBAED,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,UAAU;oBAC1C,UAAU,EAAE,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,SAAS;oBACzC,UAAU,EAAE,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACnE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,SAAS;oBACzC,UAAU,EAAE,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACnE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,UAAU;oBAC1C,UAAU,EAAE,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,QAAQ;oBACxC,UAAU,EAAE,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBAClE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,uBAAuB;oBACvD,UAAU,EAAE,IAAI,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACjF,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,aAAa;oBAC7C,UAAU,EAAE,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACvE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,eAAe;oBAC/C,UAAU,EAAE,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACzE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,cAAc;oBAC9C,UAAU,EAAE,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACxE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,YAAY;oBAC5C,UAAU,EAAE,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC7E,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,UAAU;oBAC1C,UAAU,EAAE,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpE,CAAC,CAAC;gBACH,WAAW,CAAC;oBACV,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,SAAS;oBACzC,UAAU,EAAE,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACnE,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;oBAChC,WAAW,CAAC;wBACV,OAAO,EAAE,oBAAoB;wBAC7B,UAAU,EAAE,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC1E,CAAC,CAAC;oBAEH,YAAY,CACV,MAAM,EACN;;;;;;UAMF,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,eAAe,CAAC;;;;;yBAKvC,mBAAmB,CAAC,YAAY,CAAC;;;;MAIpD,CACK,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,IAAI,CACT,gCAAgC,QAAQ,CAAC,IAAI,eAAe,QAAQ,CAAC,SAAS,iBAAiB,QAAQ,CAAC,WAAW,aAAa,gBAAgB,CAC9I,QAAQ,CAAC,OAAO,CACjB,aAAa,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,QAAQ,CAAC,WAAW,kBAAkB,QAAQ,CAAC,kBAAkB,GAAG,CACtI,CAAC;gBAEF,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACT,+FAA+F;wBAC7F,IAAI;wBACJ,iBAAiB,iBAAiB,IAAI;wBACtC,IAAI;wBACJ,gBAAgB,QAAQ,CAAC,SAAS,+BAA+B;wBACjE,qEAAqE;wBACrE,uEAAuE,CAC1E,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,iEAAiE;YACjE,mBAAmB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBACvC,WAAW,CAAC;oBACV,QAAQ,EAAE,YAAY;oBACtB,OAAO,EAAE;wBACP,yBAAyB;wBACzB,sBAAsB;wBACtB,qHAAqH;wBACrH,wBAAwB;wBACxB,KAAK;wBACL,GAAG;wBACH,EAAE;qBACH,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb,CAAC,CAAC;YACL,CAAC;YAED,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC5C,IAAI,CAAC,sBAAsB;oBAAE,OAAO;gBACpC,IAAI,yBAAyB,EAAE,IAAI,KAAK,QAAQ;oBAAE,OAAO;gBAEzD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,QAAQ,CAAC,OAAO,CACjB,CAAC;gBACF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CACT,0EAA0E,CAC3E,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE;oBAC5C,OAAO;oBACP,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CACT,6CAA6C,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,yBAAyB,CACzG,CAAC;YACJ,CAAC;YAED,sEAAsE;YACtE,oEAAoE;YACpE,qEAAqE;YACrE,wEAAwE;YACxE,uBAAuB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC9C,IAAI,CAAC,kBAAkB;oBAAE,OAAO,CAAC,uCAAuC;gBACxE,MAAM,KAAK,GAAG,kBAAkB,CAAC;gBACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;wBAAE,SAAS;oBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAChE,CAAC;oBACF,IAAI,CAAC,GAAG;wBAAE,SAAS;oBACnB,MAAM,CAAC,IAAI,CACT,yBAAyB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,UAAU,mCAAmC,GAAG,oCAAoC;wBACnI,qDAAqD,GAAG,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,+BAA+B,MAAM,CAC9J,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,eAAe,KAAK,CAAC"}
|
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)
|
|
5
|
-
*
|
|
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 (
|
|
41
|
-
*
|
|
42
|
-
*
|
|
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
|
|
66
|
+
* Works on Astro 6 and 7.
|
|
56
67
|
*
|
|
57
68
|
* @param collection - The collection name (must be known to the adapter).
|
|
58
69
|
*/
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
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)
|
|
5
|
-
*
|
|
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
|
|
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
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
110
|
-
|
|
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 {
|