@caretcms/core 0.1.1 → 0.2.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 +101 -18
- package/dist/browser-runtime.d.ts +16 -0
- package/dist/browser-runtime.d.ts.map +1 -1
- package/dist/browser-runtime.js +8 -3
- package/dist/browser-runtime.js.map +1 -1
- 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 +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +239 -13
- 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 +33 -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 +120 -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 +2 -3
- package/dist/runtime/auth/session.d.ts.map +1 -1
- package/dist/runtime/auth/session.js +52 -21
- package/dist/runtime/auth/session.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/middleware.d.ts.map +1 -1
- package/dist/runtime/middleware.js +21 -4
- package/dist/runtime/middleware.js.map +1 -1
- package/dist/runtime/mutations/contracts.d.ts +25 -1
- package/dist/runtime/mutations/contracts.d.ts.map +1 -1
- package/dist/runtime/mutations/contracts.js +67 -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 +151 -42
- package/dist/runtime/mutations/engine.js.map +1 -1
- package/dist/runtime/providers.d.ts +9 -0
- package/dist/runtime/providers.d.ts.map +1 -1
- package/dist/runtime/providers.js +6 -0
- package/dist/runtime/providers.js.map +1 -1
- package/dist/runtime/publish.d.ts +15 -1
- package/dist/runtime/publish.d.ts.map +1 -1
- package/dist/runtime/publish.js +79 -4
- package/dist/runtime/publish.js.map +1 -1
- package/dist/runtime/rebuild-webhook.d.ts +29 -0
- package/dist/runtime/rebuild-webhook.d.ts.map +1 -0
- package/dist/runtime/rebuild-webhook.js +37 -0
- package/dist/runtime/rebuild-webhook.js.map +1 -0
- package/dist/runtime/request-context.d.ts +9 -1
- package/dist/runtime/request-context.d.ts.map +1 -1
- package/dist/runtime/request-context.js.map +1 -1
- package/dist/runtime/rewrite.d.ts +18 -0
- package/dist/runtime/rewrite.d.ts.map +1 -1
- package/dist/runtime/rewrite.js +118 -4
- package/dist/runtime/rewrite.js.map +1 -1
- package/dist/runtime/rich-allowlist.d.ts +3 -2
- package/dist/runtime/rich-allowlist.d.ts.map +1 -1
- package/dist/runtime/rich-allowlist.js +14 -4
- package/dist/runtime/rich-allowlist.js.map +1 -1
- package/dist/runtime/routes/_helpers.d.ts +7 -0
- package/dist/runtime/routes/_helpers.d.ts.map +1 -1
- package/dist/runtime/routes/_helpers.js +34 -1
- package/dist/runtime/routes/_helpers.js.map +1 -1
- package/dist/runtime/routes/admin-entry.d.ts +1 -0
- package/dist/runtime/routes/admin-entry.d.ts.map +1 -1
- package/dist/runtime/routes/admin-entry.js +3 -2
- package/dist/runtime/routes/admin-entry.js.map +1 -1
- package/dist/runtime/routes/admin.d.ts +1 -0
- package/dist/runtime/routes/admin.d.ts.map +1 -1
- package/dist/runtime/routes/admin.js +20 -13
- package/dist/runtime/routes/admin.js.map +1 -1
- package/dist/runtime/routes/auth-login.d.ts +1 -0
- package/dist/runtime/routes/auth-login.d.ts.map +1 -1
- package/dist/runtime/routes/auth-login.js +1 -0
- package/dist/runtime/routes/auth-login.js.map +1 -1
- package/dist/runtime/routes/auth-logout.d.ts +1 -0
- package/dist/runtime/routes/auth-logout.d.ts.map +1 -1
- package/dist/runtime/routes/auth-logout.js +1 -0
- package/dist/runtime/routes/auth-logout.js.map +1 -1
- package/dist/runtime/routes/auth-session.d.ts +1 -0
- package/dist/runtime/routes/auth-session.d.ts.map +1 -1
- package/dist/runtime/routes/auth-session.js +1 -0
- package/dist/runtime/routes/auth-session.js.map +1 -1
- package/dist/runtime/routes/collection-list.d.ts +1 -0
- package/dist/runtime/routes/collection-list.d.ts.map +1 -1
- package/dist/runtime/routes/collection-list.js +3 -2
- package/dist/runtime/routes/collection-list.js.map +1 -1
- package/dist/runtime/routes/collections-metadata.d.ts +1 -0
- package/dist/runtime/routes/collections-metadata.d.ts.map +1 -1
- package/dist/runtime/routes/collections-metadata.js +3 -2
- package/dist/runtime/routes/collections-metadata.js.map +1 -1
- package/dist/runtime/routes/draft.d.ts +5 -0
- package/dist/runtime/routes/draft.d.ts.map +1 -1
- package/dist/runtime/routes/draft.js +18 -1
- package/dist/runtime/routes/draft.js.map +1 -1
- package/dist/runtime/routes/editor-assets.d.ts +1 -0
- package/dist/runtime/routes/editor-assets.d.ts.map +1 -1
- package/dist/runtime/routes/editor-assets.js +1 -0
- package/dist/runtime/routes/editor-assets.js.map +1 -1
- package/dist/runtime/routes/entries.d.ts +1 -0
- package/dist/runtime/routes/entries.d.ts.map +1 -1
- package/dist/runtime/routes/entries.js +6 -4
- package/dist/runtime/routes/entries.js.map +1 -1
- package/dist/runtime/routes/history.d.ts +1 -0
- package/dist/runtime/routes/history.d.ts.map +1 -1
- package/dist/runtime/routes/history.js +50 -24
- package/dist/runtime/routes/history.js.map +1 -1
- package/dist/runtime/routes/mutate.d.ts +1 -0
- package/dist/runtime/routes/mutate.d.ts.map +1 -1
- package/dist/runtime/routes/mutate.js +42 -7
- package/dist/runtime/routes/mutate.js.map +1 -1
- package/dist/runtime/routes/publish.d.ts +1 -0
- package/dist/runtime/routes/publish.d.ts.map +1 -1
- package/dist/runtime/routes/publish.js +15 -3
- package/dist/runtime/routes/publish.js.map +1 -1
- package/dist/runtime/routes/schema.d.ts +1 -0
- package/dist/runtime/routes/schema.d.ts.map +1 -1
- package/dist/runtime/routes/schema.js +7 -3
- package/dist/runtime/routes/schema.js.map +1 -1
- package/dist/runtime/routes/studio-home.d.ts +1 -0
- package/dist/runtime/routes/studio-home.d.ts.map +1 -1
- package/dist/runtime/routes/studio-home.js +10 -9
- package/dist/runtime/routes/studio-home.js.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.d.ts +1 -0
- package/dist/runtime/routes/theme-stylesheet.d.ts.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.js +12 -1
- package/dist/runtime/routes/theme-stylesheet.js.map +1 -1
- package/dist/runtime/routes/upload.d.ts +1 -0
- package/dist/runtime/routes/upload.d.ts.map +1 -1
- package/dist/runtime/routes/upload.js +1 -0
- package/dist/runtime/routes/upload.js.map +1 -1
- package/dist/runtime/static-bake.d.ts +20 -0
- package/dist/runtime/static-bake.d.ts.map +1 -0
- package/dist/runtime/static-bake.js +58 -0
- package/dist/runtime/static-bake.js.map +1 -0
- 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/frontmatter-codec.d.ts.map +1 -1
- package/dist/runtime/storage/frontmatter-codec.js +8 -0
- package/dist/runtime/storage/frontmatter-codec.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/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.map +1 -1
- package/dist/runtime/views/studio-layout.js +11 -10
- package/dist/runtime/views/studio-layout.js.map +1 -1
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/cms/admin-entry.js +36 -2
- package/static/cms/dev-toolbar/app.js +3 -1
- package/static/cms/editor/config.js +10 -0
- package/static/cms/editor/guards.js +1 -1
- package/static/cms/editor/helpers.js +5 -1
- package/static/cms/editor/highlight.js +4 -6
- package/static/cms/editor/image-edit.js +41 -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 +39 -0
- package/static/cms/editor/rich-toolbar.js +4 -3
- package/static/cms/editor/sanitize.js +10 -5
- package/static/cms/editor/sync.js +1 -1
- 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 +64 -3
- package/static/cms/editor/toolbar.css +76 -8
- package/static/cms/editor/toolbar.js +173 -64
- package/static/cms/editor.js +16 -3
- package/static/cms/studio-login.css +70 -0
- package/static/cms/studio.css +80 -13
package/dist/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
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
|
+
import { bakeStaticHtmlFiles } from "./runtime/static-bake.js";
|
|
7
|
+
import { caretSatteriPlugin } from "./markdown/satteri.js";
|
|
8
|
+
import { caretRemarkPlugin } from "./markdown/remark.js";
|
|
6
9
|
export { FilesystemAdapter } from "./runtime/storage/filesystem-adapter.js";
|
|
7
10
|
export { MarkdownAdapter } from "./runtime/storage/markdown-adapter.js";
|
|
8
11
|
export { InMemoryAdapter } from "./runtime/storage/in-memory-adapter.js";
|
|
@@ -10,6 +13,11 @@ export { FilesystemUploadHandler } from "./runtime/storage/filesystem-upload-han
|
|
|
10
13
|
export { bindEntry } from "./runtime/bind.js";
|
|
11
14
|
export { caretLoader, CaretLoaderError } from "./loader.js";
|
|
12
15
|
export { editable } from "./editable.js";
|
|
16
|
+
// Strip stega edit-metadata from a live field value before it flows into a
|
|
17
|
+
// URL, attribute, or anything parsed (dates, JSON): the invisible characters
|
|
18
|
+
// are safe in visible text but corrupt non-text contexts. Same intent as
|
|
19
|
+
// Vercel's `vercelStegaClean`.
|
|
20
|
+
export { stegaClean } from "./runtime/stega.js";
|
|
13
21
|
const VIRTUAL_PROVIDER_MODULE_ID = "virtual:caretcms/providers";
|
|
14
22
|
const RESOLVED_VIRTUAL_PROVIDER_MODULE_ID = `\0${VIRTUAL_PROVIDER_MODULE_ID}`;
|
|
15
23
|
const VIRTUAL_SCHEMAS_MODULE_ID = "virtual:caretcms/schemas";
|
|
@@ -114,6 +122,74 @@ function resolveBrand(input) {
|
|
|
114
122
|
faviconUrl: input?.faviconUrl?.trim() || null,
|
|
115
123
|
};
|
|
116
124
|
}
|
|
125
|
+
function resolveDelivery(input) {
|
|
126
|
+
if (!input || input === "auto") {
|
|
127
|
+
return {
|
|
128
|
+
mode: "auto",
|
|
129
|
+
bake: true,
|
|
130
|
+
publish: { webhookUrl: null, method: "POST", headers: {} },
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
if (input === "server") {
|
|
134
|
+
return {
|
|
135
|
+
mode: "server",
|
|
136
|
+
bake: false,
|
|
137
|
+
publish: { webhookUrl: null, method: "POST", headers: {} },
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
if (input === "static") {
|
|
141
|
+
return {
|
|
142
|
+
mode: "static",
|
|
143
|
+
bake: true,
|
|
144
|
+
publish: { webhookUrl: null, method: "POST", headers: {} },
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const mode = input.mode ?? "auto";
|
|
148
|
+
const staticDelivery = mode === "static";
|
|
149
|
+
return {
|
|
150
|
+
mode,
|
|
151
|
+
bake: input.bake ?? (mode === "auto" ? true : staticDelivery),
|
|
152
|
+
publish: {
|
|
153
|
+
webhookUrl: input.publish?.webhookUrl?.trim() || null,
|
|
154
|
+
method: input.publish?.method ?? "POST",
|
|
155
|
+
headers: input.publish?.headers ?? {},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function resolveEffectiveDelivery(delivery, astroOutput) {
|
|
160
|
+
const mode = delivery.mode === "auto"
|
|
161
|
+
? astroOutput === "static"
|
|
162
|
+
? "static"
|
|
163
|
+
: "server"
|
|
164
|
+
: delivery.mode;
|
|
165
|
+
return {
|
|
166
|
+
mode,
|
|
167
|
+
bake: mode === "static" ? delivery.bake : false,
|
|
168
|
+
publish: delivery.publish,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function assertDeliveryMatchesAstroOutput(delivery, astroOutput) {
|
|
172
|
+
if (delivery.mode === "static" && astroOutput !== "static") {
|
|
173
|
+
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.`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** Every key resolveCaretOptions reads. Anything else in the options object is
|
|
177
|
+
* a typo (`mountpath`) silently falling back to a default — name it instead. */
|
|
178
|
+
const KNOWN_OPTION_KEYS = new Set([
|
|
179
|
+
"mode", "cloud", "storage", "uploads", "mountPath", "apiBasePath",
|
|
180
|
+
"enableAdmin", "enableInlineEditor", "editorHome", "schemas",
|
|
181
|
+
"allowedClasses", "delivery", "theme", "brand",
|
|
182
|
+
]);
|
|
183
|
+
/** Unknown option keys, each with its closest known key when one is plausible. */
|
|
184
|
+
function unknownOptionWarnings(options) {
|
|
185
|
+
return Object.keys(options)
|
|
186
|
+
.filter((key) => !KNOWN_OPTION_KEYS.has(key))
|
|
187
|
+
.map((key) => {
|
|
188
|
+
const lower = key.toLowerCase();
|
|
189
|
+
const near = [...KNOWN_OPTION_KEYS].find((k) => k.toLowerCase() === lower);
|
|
190
|
+
return near ? `"${key}" (did you mean "${near}"?)` : `"${key}"`;
|
|
191
|
+
});
|
|
192
|
+
}
|
|
117
193
|
function resolveCaretOptions(options) {
|
|
118
194
|
const mode = normalizeMode(options.mode);
|
|
119
195
|
const defaults = defaultProviders(mode);
|
|
@@ -140,10 +216,24 @@ function resolveCaretOptions(options) {
|
|
|
140
216
|
cloud,
|
|
141
217
|
schemas: options.schemas ?? {},
|
|
142
218
|
allowedClasses: options.allowedClasses ?? {},
|
|
219
|
+
bodyEditing: options.bodyEditing ?? true,
|
|
220
|
+
delivery: resolveDelivery(options.delivery),
|
|
143
221
|
theme: resolveTheme(options.theme),
|
|
144
222
|
brand: resolveBrand(options.brand),
|
|
145
223
|
};
|
|
146
224
|
}
|
|
225
|
+
async function loadProviderReference(reference) {
|
|
226
|
+
if (!reference)
|
|
227
|
+
return null;
|
|
228
|
+
const mod = (await import(/* @vite-ignore */ reference.entrypoint));
|
|
229
|
+
const resolvedExport = mod[reference.exportName ?? "default"] ?? mod.default;
|
|
230
|
+
if (resolvedExport == null) {
|
|
231
|
+
throw new Error(`[caretcms] Could not resolve provider export "${reference.exportName ?? "default"}" from ${reference.entrypoint}.`);
|
|
232
|
+
}
|
|
233
|
+
return typeof resolvedExport === "function"
|
|
234
|
+
? (await resolvedExport(reference.options ?? null))
|
|
235
|
+
: resolvedExport;
|
|
236
|
+
}
|
|
147
237
|
function buildProviderLoader(functionName, reference) {
|
|
148
238
|
if (!reference) {
|
|
149
239
|
return `export async function ${functionName}(){return null;}`;
|
|
@@ -162,11 +252,12 @@ function buildProviderLoader(functionName, reference) {
|
|
|
162
252
|
"}",
|
|
163
253
|
].join("\n");
|
|
164
254
|
}
|
|
165
|
-
function createRuntimeProvidersPlugin(resolved) {
|
|
255
|
+
function createRuntimeProvidersPlugin(resolved, delivery) {
|
|
166
256
|
const source = [
|
|
167
257
|
buildProviderLoader("loadConfiguredStorage", resolved.storage),
|
|
168
258
|
buildProviderLoader("loadConfiguredUploadHandler", resolved.uploads),
|
|
169
259
|
`export const allowedClasses = ${JSON.stringify(resolved.allowedClasses)};`,
|
|
260
|
+
`export const delivery = ${JSON.stringify(delivery)};`,
|
|
170
261
|
// Surfaced for the middleware's authenticated empty-state affordance: it
|
|
171
262
|
// needs to know the inline editor is enabled and which paths are CMS-owned
|
|
172
263
|
// (so the hint never shows inside the Studio / on API + asset routes).
|
|
@@ -224,11 +315,16 @@ function describeProvider(reference) {
|
|
|
224
315
|
return "none";
|
|
225
316
|
return `${reference.entrypoint}#${reference.exportName ?? "default"}`;
|
|
226
317
|
}
|
|
318
|
+
/** JSON for safe embedding inside an inline `<script>`: escape `<` so a config
|
|
319
|
+
* value containing `</script>` (or `<!--`) can't terminate or confuse the tag. */
|
|
320
|
+
function jsonForInlineScript(value) {
|
|
321
|
+
return JSON.stringify(value).replace(/</g, "\\u003c");
|
|
322
|
+
}
|
|
227
323
|
function buildCloudBootstrapScript(clientConfig, cloud) {
|
|
228
324
|
return [
|
|
229
|
-
`window.__CARET__ = ${
|
|
325
|
+
`window.__CARET__ = ${jsonForInlineScript(clientConfig)};`,
|
|
230
326
|
`import { bootstrapCloudCms, hasCloudCmsSession, redirectToCloudCmsLogin } from "@caretcms/core/browser-runtime";`,
|
|
231
|
-
`const __caretCloudConfig = ${
|
|
327
|
+
`const __caretCloudConfig = ${jsonForInlineScript(cloud)};`,
|
|
232
328
|
`bootstrapCloudCms(__caretCloudConfig).then(async () => {`,
|
|
233
329
|
` const url = new URL(window.location.href);`,
|
|
234
330
|
` const wantsEditor = url.searchParams.get("cms") === "1";`,
|
|
@@ -268,13 +364,54 @@ function detectContentCollections(rootDir) {
|
|
|
268
364
|
return [];
|
|
269
365
|
}
|
|
270
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Extend the active markdown pipeline with the CaretCMS body-stamping plugin.
|
|
369
|
+
*
|
|
370
|
+
* Astro 7's default processor is Sätteri — its `options.mdastPlugins` array is
|
|
371
|
+
* the sanctioned extension point, and the default instance is created before
|
|
372
|
+
* integration hooks run, so pushing onto it is honored (we never REPLACE
|
|
373
|
+
* `markdown.processor`, whose merge is replace-not-append). Astro 6 and unified
|
|
374
|
+
* holdouts fall through to a remark plugin via `updateConfig`.
|
|
375
|
+
*/
|
|
376
|
+
function injectMarkdownStamping(args) {
|
|
377
|
+
const { config, updateConfig, logger, contentRoot } = args;
|
|
378
|
+
const processor = config.markdown?.processor;
|
|
379
|
+
if (processor?.name === "satteri" && processor.options) {
|
|
380
|
+
(processor.options.mdastPlugins ??= []).push(caretSatteriPlugin({ contentRoot }));
|
|
381
|
+
logger.info("[caretcms] Markdown body editing enabled (Sätteri mdast plugin).");
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
updateConfig({ markdown: { remarkPlugins: [caretRemarkPlugin({ contentRoot })] } });
|
|
385
|
+
logger.info("[caretcms] Markdown body editing enabled (remark plugin).");
|
|
386
|
+
}
|
|
387
|
+
}
|
|
271
388
|
export function caret(options = {}) {
|
|
272
389
|
const resolved = resolveCaretOptions(options);
|
|
390
|
+
// Path prefixes the integration owns once its routes are injected; null until
|
|
391
|
+
// (and unless) config:setup actually injects them (static output / cloud
|
|
392
|
+
// variants skip injection). Read by the routes:resolved collision check.
|
|
393
|
+
let ownedRoutePrefixes = null;
|
|
394
|
+
let shouldBakeStaticOutput = false;
|
|
395
|
+
let effectiveDeliveryForBuild = null;
|
|
273
396
|
return {
|
|
274
397
|
name: "caretcms",
|
|
275
398
|
hooks: {
|
|
276
399
|
"astro:config:setup": ({ command, config, logger, addMiddleware, injectRoute, injectScript, updateConfig, addDevToolbarApp }) => {
|
|
277
400
|
const isStaticOutput = config.output === "static";
|
|
401
|
+
assertDeliveryMatchesAstroOutput(resolved.delivery, config.output);
|
|
402
|
+
const effectiveDelivery = resolveEffectiveDelivery(resolved.delivery, config.output);
|
|
403
|
+
effectiveDeliveryForBuild = effectiveDelivery;
|
|
404
|
+
shouldBakeStaticOutput =
|
|
405
|
+
command === "build" &&
|
|
406
|
+
isStaticOutput &&
|
|
407
|
+
resolved.mode !== "cloud" &&
|
|
408
|
+
effectiveDelivery.mode === "static" &&
|
|
409
|
+
effectiveDelivery.bake;
|
|
410
|
+
// A typo'd option (`mountpath`) used to silently fall back to its
|
|
411
|
+
// default — the user "configured" something that never took effect.
|
|
412
|
+
for (const unknown of unknownOptionWarnings(options)) {
|
|
413
|
+
logger.warn(`[caretcms] unknown option ${unknown} — ignored.`);
|
|
414
|
+
}
|
|
278
415
|
// Zero-config collection detection: when the user hasn't chosen a storage
|
|
279
416
|
// adapter and the project has Astro content collections under src/content,
|
|
280
417
|
// default to markdownStorage() so the Studio surfaces those collections
|
|
@@ -301,6 +438,24 @@ export function caret(options = {}) {
|
|
|
301
438
|
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.`);
|
|
302
439
|
}
|
|
303
440
|
}
|
|
441
|
+
// Markdown body editing: stamp rendered prose blocks with
|
|
442
|
+
// `data-caret-md` bindings by extending the active markdown pipeline.
|
|
443
|
+
// Runs after zero-config detection so an auto-selected markdown adapter
|
|
444
|
+
// is covered too. Gated on markdown storage + embedded + `bodyEditing`.
|
|
445
|
+
if (resolved.bodyEditing &&
|
|
446
|
+
resolved.mode !== "cloud" &&
|
|
447
|
+
resolved.storage?.entrypoint === MARKDOWN_STORAGE_ENTRYPOINT) {
|
|
448
|
+
const projectRoot = fileURLToPath(config.root);
|
|
449
|
+
const configuredRoot = resolved.storage.options
|
|
450
|
+
?.contentRoot;
|
|
451
|
+
// The adapter resolves a relative contentRoot against cwd; the stamp
|
|
452
|
+
// plugin compares against absolute file URLs, so resolve it against
|
|
453
|
+
// the project root here (resolve() leaves an absolute root as-is).
|
|
454
|
+
const contentRoot = configuredRoot
|
|
455
|
+
? resolve(projectRoot, configuredRoot)
|
|
456
|
+
: join(projectRoot, "src", "content");
|
|
457
|
+
injectMarkdownStamping({ config, updateConfig, logger, contentRoot });
|
|
458
|
+
}
|
|
304
459
|
// Zero-config dev login: when running `astro dev` in an editable
|
|
305
460
|
// (embedded, server-output) setup with no real password configured,
|
|
306
461
|
// mint a throwaway password so a freshly-installed site can sign in
|
|
@@ -309,7 +464,7 @@ export function caret(options = {}) {
|
|
|
309
464
|
const hasEnvPassword = (process.env.CARET_EDIT_PASSWORD ?? process.env.EDIT_PASSWORD ?? "").trim()
|
|
310
465
|
.length > 0;
|
|
311
466
|
const devEditorPassword = command === "dev" &&
|
|
312
|
-
!isStaticOutput &&
|
|
467
|
+
(!isStaticOutput || effectiveDelivery.mode === "static") &&
|
|
313
468
|
resolved.mode !== "cloud" &&
|
|
314
469
|
!hasEnvPassword
|
|
315
470
|
? randomBytes(4).toString("hex")
|
|
@@ -324,9 +479,14 @@ export function caret(options = {}) {
|
|
|
324
479
|
__ASTRO_CARET_THEME_CONFIG__: JSON.stringify(JSON.stringify(resolved.theme)),
|
|
325
480
|
__ASTRO_CARET_BRAND_CONFIG__: JSON.stringify(JSON.stringify(resolved.brand)),
|
|
326
481
|
__ASTRO_CARET_DEV_PASSWORD__: JSON.stringify(devEditorPassword ?? ""),
|
|
482
|
+
// Authoritative dev signal for the auth layer: the public fallback
|
|
483
|
+
// session secret is honored only when this is true. Baked false in
|
|
484
|
+
// production builds so a no-password deployment can't be unlocked
|
|
485
|
+
// with a forged, publicly-signed session (see auth/session.ts).
|
|
486
|
+
__ASTRO_CARET_DEV__: JSON.stringify(command === "dev"),
|
|
327
487
|
},
|
|
328
488
|
plugins: [
|
|
329
|
-
createRuntimeProvidersPlugin(resolved),
|
|
489
|
+
createRuntimeProvidersPlugin(resolved, effectiveDelivery),
|
|
330
490
|
createSchemasPlugin(resolved.schemas),
|
|
331
491
|
],
|
|
332
492
|
},
|
|
@@ -337,6 +497,7 @@ export function caret(options = {}) {
|
|
|
337
497
|
apiBasePath: resolved.apiBasePath,
|
|
338
498
|
cloud: resolved.cloud ?? undefined,
|
|
339
499
|
allowedClasses: resolved.allowedClasses,
|
|
500
|
+
delivery: { mode: effectiveDelivery.mode },
|
|
340
501
|
};
|
|
341
502
|
// Dev Toolbar app: a login-free, dev-only view of the data-caret
|
|
342
503
|
// bindings on the current page — the complement to the in-editor
|
|
@@ -363,13 +524,27 @@ export function caret(options = {}) {
|
|
|
363
524
|
return;
|
|
364
525
|
}
|
|
365
526
|
if (isStaticOutput) {
|
|
366
|
-
|
|
367
|
-
|
|
527
|
+
if (effectiveDelivery.mode === "static") {
|
|
528
|
+
if (command !== "dev") {
|
|
529
|
+
logger.info(`[caretcms] static delivery enabled (bake=${effectiveDelivery.bake}) — authoring routes stay out of production static output; generated HTML is baked at build end.`);
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
logger.info("[caretcms] static delivery dev authoring enabled — injecting editor/API routes for local preview; production builds bake static HTML.");
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
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.`);
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
368
538
|
}
|
|
369
539
|
addMiddleware({
|
|
370
540
|
order: "pre",
|
|
371
541
|
entrypoint: new URL("./runtime/middleware.js", import.meta.url),
|
|
372
542
|
});
|
|
543
|
+
ownedRoutePrefixes = [
|
|
544
|
+
...(resolved.enableAdmin ? [resolved.mountPath] : []),
|
|
545
|
+
resolved.apiBasePath,
|
|
546
|
+
"/__caret",
|
|
547
|
+
];
|
|
373
548
|
if (resolved.enableAdmin) {
|
|
374
549
|
injectRoute({
|
|
375
550
|
pattern: resolved.mountPath,
|
|
@@ -442,16 +617,17 @@ export function caret(options = {}) {
|
|
|
442
617
|
entrypoint: new URL("./runtime/routes/editor-assets.js", import.meta.url),
|
|
443
618
|
});
|
|
444
619
|
injectScript("page", `(function(){
|
|
445
|
-
// Bootstrap when the page has an explicit data-caret
|
|
446
|
-
// content (key hidden in a string via U+E0000); the latter
|
|
447
|
-
// until the editor hydrates it, so attribute-only detection
|
|
448
|
-
|
|
620
|
+
// Bootstrap when the page has an explicit data-caret / data-caret-md binding
|
|
621
|
+
// OR stega-encoded content (key hidden in a string via U+E0000); the latter
|
|
622
|
+
// has no attribute until the editor hydrates it, so attribute-only detection
|
|
623
|
+
// would miss it.
|
|
624
|
+
if(!document.querySelector('[data-caret],[data-caret-md]') && !/\\u{E0000}/u.test(document.body&&document.body.textContent||''))return;
|
|
449
625
|
fetch(${JSON.stringify(`${resolved.apiBasePath}/auth/session`)},{credentials:'same-origin'})
|
|
450
626
|
.then(function(response){return response.ok?response.json():null;})
|
|
451
627
|
.then(function(session){
|
|
452
628
|
if(!session||session.authenticated!==true)return;
|
|
453
629
|
var l=document.createElement('link');l.rel='stylesheet';l.href='/__caret/editor.css';document.head.appendChild(l);
|
|
454
|
-
window.__CARET__=${
|
|
630
|
+
window.__CARET__=${jsonForInlineScript(clientConfig)};
|
|
455
631
|
var s=document.createElement('script');s.type='module';s.src='/__caret/editor.js?v='+Date.now();document.head.appendChild(s);
|
|
456
632
|
})
|
|
457
633
|
.catch(function(){});
|
|
@@ -468,6 +644,56 @@ export function caret(options = {}) {
|
|
|
468
644
|
` This temporary password works in dev only; production stays locked.`);
|
|
469
645
|
}
|
|
470
646
|
},
|
|
647
|
+
// Type the middleware's contribution to Astro.locals so user code gets
|
|
648
|
+
// `locals.isEditor: boolean` with autocomplete instead of `any`.
|
|
649
|
+
"astro:config:done": ({ injectTypes }) => {
|
|
650
|
+
injectTypes({
|
|
651
|
+
filename: "types.d.ts",
|
|
652
|
+
content: [
|
|
653
|
+
"declare namespace App {",
|
|
654
|
+
" interface Locals {",
|
|
655
|
+
" /** True when the request carries an authenticated CaretCMS editor session (set by the caretcms middleware). */",
|
|
656
|
+
" isEditor: boolean;",
|
|
657
|
+
" }",
|
|
658
|
+
"}",
|
|
659
|
+
"",
|
|
660
|
+
].join("\n"),
|
|
661
|
+
});
|
|
662
|
+
},
|
|
663
|
+
"astro:build:done": async ({ dir, logger }) => {
|
|
664
|
+
if (!shouldBakeStaticOutput)
|
|
665
|
+
return;
|
|
666
|
+
if (effectiveDeliveryForBuild?.mode !== "static")
|
|
667
|
+
return;
|
|
668
|
+
const adapter = await loadProviderReference(resolved.storage);
|
|
669
|
+
if (!adapter) {
|
|
670
|
+
logger.warn("[caretcms] static delivery bake skipped: no storage provider configured.");
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
const result = await bakeStaticHtmlFiles(dir, {
|
|
674
|
+
adapter,
|
|
675
|
+
allowedClasses: resolved.allowedClasses,
|
|
676
|
+
});
|
|
677
|
+
logger.info(`[caretcms] static delivery bake complete (${result.rewritten}/${result.scanned} HTML files rewritten).`);
|
|
678
|
+
},
|
|
679
|
+
// An existing site may already own a route under /admin or /api/cms —
|
|
680
|
+
// Astro resolves the conflict by file-vs-injected precedence, which
|
|
681
|
+
// silently shadows either the user's page or the CMS login. Name the
|
|
682
|
+
// overlap and the remedy instead of letting it read as "CMS is broken".
|
|
683
|
+
"astro:routes:resolved": ({ routes, logger }) => {
|
|
684
|
+
if (!ownedRoutePrefixes)
|
|
685
|
+
return; // nothing injected (static/cloud skip)
|
|
686
|
+
const owned = ownedRoutePrefixes;
|
|
687
|
+
for (const route of routes) {
|
|
688
|
+
if (route.origin !== "project")
|
|
689
|
+
continue;
|
|
690
|
+
const hit = owned.find((p) => route.pattern === p || route.pattern.startsWith(`${p}/`));
|
|
691
|
+
if (!hit)
|
|
692
|
+
continue;
|
|
693
|
+
logger.warn(`[caretcms] your route ${route.pattern} (${route.entrypoint}) overlaps the CMS route space "${hit}" — one of them will be shadowed. ` +
|
|
694
|
+
`Move your route, or relocate the CMS with caret({ ${hit === resolved.apiBasePath ? 'apiBasePath: "/your-api-path"' : 'mountPath: "/your-admin-path"'} }).`);
|
|
695
|
+
}
|
|
696
|
+
},
|
|
471
697
|
},
|
|
472
698
|
};
|
|
473
699
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAsBvE,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;AAEzC,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;AA4H1E,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,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,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,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,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;KACnC,CAAC;AACJ,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;IAE7C,OAAO;QACL,eAAe,UAAU,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;QACzE,yBAAyB,YAAY,KAAK;QAC1C,4BAA4B,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,QAAQ,UAAU,WAAW;QACxH,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,CAAC,QAA8B;IAClE,MAAM,MAAM,GAAG;QACb,mBAAmB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC9D,mBAAmB,CAAC,6BAA6B,EAAE,QAAQ,CAAC,OAAO,CAAC;QACpE,iCAAiC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG;QAC3E,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,CAAC,OAA6C;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC;YACE,4EAA4E;YAC5E,8DAA8D;YAC9D,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;YAC7C,+DAA+D;YAC/D,wEAAwE;YACxE,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,SAAS,yBAAyB,CAChC,YAAqC,EACrC,KAAwB;IAExB,OAAO;QACL,sBAAsB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG;QACrD,kHAAkH;QAClH,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;QACtD,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,MAAM,UAAU,KAAK,CAAC,UAAwB,EAAE;IAC9C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9C,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;gBAElD,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,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;oBACf,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,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC;yBACtE;wBACD,OAAO,EAAE;4BACP,4BAA4B,CAAC,QAAQ,CAAC;4BACtC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;yBACtC;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;iBACxC,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,MAAM,CAAC,IAAI,CACT,cAAc,QAAQ,CAAC,IAAI,uIAAuI,CACnK,CAAC;oBACF,OAAO;gBACT,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,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;;;;;UAKF,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,eAAe,CAAC;;;;;yBAKvC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;;MAI/C,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;SACF;KACF,CAAC;AACJ,CAAC;AAED,eAAe,KAAK,CAAC"}
|
|
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)
|
|
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;AAUH,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;;;;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,CAwDjB"}
|
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,7 @@
|
|
|
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";
|
|
19
20
|
export class CaretLoaderError extends Error {
|
|
20
21
|
constructor(message, cause) {
|
|
21
22
|
super(message);
|
|
@@ -70,9 +71,15 @@ function requireAdapter() {
|
|
|
70
71
|
"(the integration registers it with order: 'pre').", cause);
|
|
71
72
|
}
|
|
72
73
|
}
|
|
74
|
+
/** Cache tags for a collection / entry: publishing can purge by these (Astro 7). */
|
|
75
|
+
const collectionTag = (collection) => `caret:${collection}`;
|
|
76
|
+
const entryTags = (collection, id) => [
|
|
77
|
+
`caret:${collection}`,
|
|
78
|
+
`caret:${collection}::${id}`,
|
|
79
|
+
];
|
|
73
80
|
/**
|
|
74
81
|
* Create an Astro LiveLoader that reads from the configured StorageAdapter.
|
|
75
|
-
* Works on Astro 6
|
|
82
|
+
* Works on Astro 6 and 7.
|
|
76
83
|
*
|
|
77
84
|
* @param collection - The collection name (must be known to the adapter).
|
|
78
85
|
*/
|
|
@@ -86,10 +93,15 @@ export function caretLoader(collection) {
|
|
|
86
93
|
const entry = await adapter.getEntry(collection, id);
|
|
87
94
|
if (!entry)
|
|
88
95
|
return undefined;
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
const editor = isEditorRequest();
|
|
97
|
+
const clean = stripBodyOverlay(entry.data);
|
|
98
|
+
const data = editor ? encodeEntryData(collection, entry.id, clean) : clean;
|
|
99
|
+
const result = { id: entry.id, data };
|
|
100
|
+
// Published content is cache-taggable so a publish can purge it by tag.
|
|
101
|
+
// Editor/draft requests get NO hint — edits must show immediately.
|
|
102
|
+
if (!editor)
|
|
103
|
+
result.cacheHint = { tags: entryTags(collection, entry.id) };
|
|
104
|
+
return result;
|
|
93
105
|
}
|
|
94
106
|
catch (error) {
|
|
95
107
|
return {
|
|
@@ -102,14 +114,21 @@ export function caretLoader(collection) {
|
|
|
102
114
|
const adapter = requireAdapter();
|
|
103
115
|
const allEntries = await adapter.listEntries(collection);
|
|
104
116
|
const editor = isEditorRequest();
|
|
105
|
-
|
|
106
|
-
|
|
117
|
+
const entries = allEntries.map((entry) => {
|
|
118
|
+
const clean = stripBodyOverlay(entry.data);
|
|
119
|
+
const mapped = {
|
|
107
120
|
id: entry.id,
|
|
108
|
-
data: editor
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
121
|
+
data: editor ? encodeEntryData(collection, entry.id, clean) : clean,
|
|
122
|
+
};
|
|
123
|
+
if (!editor)
|
|
124
|
+
mapped.cacheHint = { tags: entryTags(collection, entry.id) };
|
|
125
|
+
return mapped;
|
|
126
|
+
});
|
|
127
|
+
const result = { entries };
|
|
128
|
+
// Collection-level tag (merged with per-entry tags by Astro); drafts unhinted.
|
|
129
|
+
if (!editor)
|
|
130
|
+
result.cacheHint = { tags: [collectionTag(collection)] };
|
|
131
|
+
return result;
|
|
113
132
|
}
|
|
114
133
|
catch (error) {
|
|
115
134
|
return {
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|