@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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface RebuildWebhookConfig {
|
|
2
|
+
webhookUrl: string | null;
|
|
3
|
+
method?: "POST" | "PUT";
|
|
4
|
+
headers?: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export interface RebuildWebhookPayload {
|
|
7
|
+
published: Array<{
|
|
8
|
+
collection: string;
|
|
9
|
+
id: string;
|
|
10
|
+
revision: number;
|
|
11
|
+
deleted: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
commit: string | null;
|
|
14
|
+
}
|
|
15
|
+
export type RebuildWebhookResult = {
|
|
16
|
+
triggered: false;
|
|
17
|
+
ok: true;
|
|
18
|
+
} | {
|
|
19
|
+
triggered: true;
|
|
20
|
+
ok: true;
|
|
21
|
+
status: number;
|
|
22
|
+
} | {
|
|
23
|
+
triggered: true;
|
|
24
|
+
ok: false;
|
|
25
|
+
status?: number;
|
|
26
|
+
error: string;
|
|
27
|
+
};
|
|
28
|
+
export declare function triggerRebuildWebhook(config: RebuildWebhookConfig, payload: RebuildWebhookPayload): Promise<RebuildWebhookResult>;
|
|
29
|
+
//# sourceMappingURL=rebuild-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebuild-webhook.d.ts","sourceRoot":"","sources":["../../src/runtime/rebuild-webhook.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAC9B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAoC/B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export async function triggerRebuildWebhook(config, payload) {
|
|
2
|
+
const webhookUrl = config.webhookUrl?.trim();
|
|
3
|
+
if (!webhookUrl)
|
|
4
|
+
return { triggered: false, ok: true };
|
|
5
|
+
try {
|
|
6
|
+
const response = await fetch(webhookUrl, {
|
|
7
|
+
method: config.method ?? "POST",
|
|
8
|
+
headers: {
|
|
9
|
+
"content-type": "application/json",
|
|
10
|
+
...(config.headers ?? {}),
|
|
11
|
+
},
|
|
12
|
+
body: JSON.stringify({
|
|
13
|
+
source: "caretcms",
|
|
14
|
+
event: "publish",
|
|
15
|
+
published: payload.published,
|
|
16
|
+
commit: payload.commit,
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
return {
|
|
21
|
+
triggered: true,
|
|
22
|
+
ok: false,
|
|
23
|
+
status: response.status,
|
|
24
|
+
error: `Rebuild webhook failed with status ${response.status}`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { triggered: true, ok: true, status: response.status };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return {
|
|
31
|
+
triggered: true,
|
|
32
|
+
ok: false,
|
|
33
|
+
error: error instanceof Error ? error.message : "Rebuild webhook failed",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=rebuild-webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebuild-webhook.js","sourceRoot":"","sources":["../../src/runtime/rebuild-webhook.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA4B,EAC5B,OAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,sCAAsC,QAAQ,CAAC,MAAM,EAAE;aAC/D,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,IAAI;YACf,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;SACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -13,7 +13,8 @@ export interface CaretRequestContext {
|
|
|
13
13
|
/**
|
|
14
14
|
* The authenticated editor's id (from the session cookie), when present. Keys
|
|
15
15
|
* the per-editor draft overlay so unpublished edits stay isolated per editor.
|
|
16
|
-
* Absent for anonymous/public requests
|
|
16
|
+
* Absent for anonymous/public and non-preview requests; demo sessions key
|
|
17
|
+
* their overlay by `sessionId` instead.
|
|
17
18
|
*/
|
|
18
19
|
editorId?: string | null;
|
|
19
20
|
/**
|
|
@@ -23,6 +24,13 @@ export interface CaretRequestContext {
|
|
|
23
24
|
* `isEditorAuthenticated`. Absent/false means fail closed.
|
|
24
25
|
*/
|
|
25
26
|
overlayActive?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The platform runtime env, when the host exposes one (Cloudflare Workers
|
|
29
|
+
* populate bindings via `context.locals.runtime.env`). Lets the auth helpers
|
|
30
|
+
* read `CARET_EDIT_PASSWORD` / `CARET_SESSION_SECRET` from Worker bindings, not
|
|
31
|
+
* just `process.env`. Null/absent on Node hosts, where `process.env` is used.
|
|
32
|
+
*/
|
|
33
|
+
runtimeEnv?: Record<string, unknown> | null;
|
|
26
34
|
}
|
|
27
35
|
export declare function runWithRequestContext<T>(context: CaretRequestContext, fn: () => Promise<T>): Promise<T>;
|
|
28
36
|
export declare function getRequestContext(): CaretRequestContext | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/runtime/request-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/runtime/request-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,SAAS,CAEnE;AAED,wBAAgB,qBAAqB,IAAI,mBAAmB,CAQ3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/runtime/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/runtime/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqCrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CACnC,OAA4B,EAC5B,EAAoB;IAEpB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,kIAAkI,CACnI,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* Elements with nested child markup are skipped (editor warns at runtime).
|
|
10
10
|
*/
|
|
11
11
|
import type { StorageAdapter } from "../types.js";
|
|
12
|
+
type ScopeMatch = {
|
|
13
|
+
collection: string;
|
|
14
|
+
id: string;
|
|
15
|
+
};
|
|
12
16
|
/**
|
|
13
17
|
* Tags whose text content the rewrite engine can swap (`data-caret` bindings).
|
|
14
18
|
* `<img>` (src swap) is handled separately. This list is a PUBLIC CONTRACT:
|
|
@@ -17,7 +21,21 @@ import type { StorageAdapter } from "../types.js";
|
|
|
17
21
|
* never injected into the public render (a silently inert binding).
|
|
18
22
|
*/
|
|
19
23
|
export declare const REWRITABLE_TEXT_TAGS: readonly ["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "small", "strong", "em", "a", "li", "td", "th", "label", "button", "figcaption", "blockquote", "dt", "dd", "summary", "caption", "legend"];
|
|
24
|
+
/**
|
|
25
|
+
* CANONICAL data-caret value resolution (exported for the parser parity test):
|
|
26
|
+
* full triple as-is; bare field resolved against the nearest enclosing scope;
|
|
27
|
+
* anything else (2 or 4+ parts) is not a binding. The hand-mirrored copies in
|
|
28
|
+
* browser-runtime.ts, static/cms/editor/helpers.js, and
|
|
29
|
+
* static/cms/dev-toolbar/app.js are held to this behavior by
|
|
30
|
+
* tests/unit/caret-parser-parity.test.ts.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveBinding(caretValue: string, scope: ScopeMatch | null): {
|
|
33
|
+
collection: string;
|
|
34
|
+
id: string;
|
|
35
|
+
field: string;
|
|
36
|
+
} | null;
|
|
20
37
|
export declare function rewriteCaretAttributes(html: string, adapter: StorageAdapter, options?: {
|
|
21
38
|
allowedClasses?: Record<string, readonly string[]>;
|
|
22
39
|
}): Promise<string>;
|
|
40
|
+
export {};
|
|
23
41
|
//# sourceMappingURL=rewrite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/runtime/rewrite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/runtime/rewrite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAqB7D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AASF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,uMAKvB,CAAC;AAkJX;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,UAAU,GAAG,IAAI,GACvB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAY1D;AA2CD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;CAAE,GAC/D,OAAO,CAAC,MAAM,CAAC,CAoLjB"}
|
package/dist/runtime/rewrite.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* v1 scope: text-only leaf nodes + <img> src swaps.
|
|
9
9
|
* Elements with nested child markup are skipped (editor warns at runtime).
|
|
10
10
|
*/
|
|
11
|
+
import { BODY_OVERLAY_KEY, parseMdBinding } from "../markdown/contracts.js";
|
|
11
12
|
import { sanitizeHtml } from "./sanitize-html.js";
|
|
12
13
|
import { getNestedValue } from "./utils.js";
|
|
13
14
|
// --- Patterns ---
|
|
@@ -37,7 +38,27 @@ const CARET_ELEMENT_PATTERN = new RegExp(`<(${REWRITABLE_TEXT_TAGS.join("|")})\\
|
|
|
37
38
|
// Void <img> with a data-caret binding. Closes on a bare `>` or a self-closing
|
|
38
39
|
// `/>` — never on a closing tag. Captures: 1 = attribute string, 2 = data-caret value.
|
|
39
40
|
const IMG_ELEMENT_PATTERN = /<img\b([^>]*?\bdata-caret\s*=\s*"([^"]*)"[^>]*?)\/?>/;
|
|
40
|
-
|
|
41
|
+
// Markdown body blocks stamped by the mdast plugins (`data-caret-md`). Only
|
|
42
|
+
// the block tags the stamping rules can emit; their content is inline-only by
|
|
43
|
+
// construction (the closed editing set), so a lazy match to the first closing
|
|
44
|
+
// tag can't be fooled by a nested same-tag element.
|
|
45
|
+
// Captures: 1 = tag, 2 = attrs, 3 = binding value, 4 = content.
|
|
46
|
+
const CARET_MD_ELEMENT_PATTERN = new RegExp(`<(h[1-6]|p|li)\\b([^>]*?\\bdata-caret-md\\s*=\\s*"([^"]*)"[^>]*?)>([\\s\\S]*?)<\\/\\1>`);
|
|
47
|
+
// Scans the document to maintain the scope-frame stack. Matches EITHER a whole
|
|
48
|
+
// HTML comment OR a start/end tag. Handling both keeps tag-like text the browser
|
|
49
|
+
// never treats as a tag from corrupting the stack:
|
|
50
|
+
// - `<!-- <div> -->` — the comment is consumed whole, so the inner `<div>`
|
|
51
|
+
// never pushes a frame.
|
|
52
|
+
// - a `>` inside a quoted attribute (`<a title="a>b">`) — the attribute body
|
|
53
|
+
// matches quoted runs, so the tag closes on the real `>`, not the one in the
|
|
54
|
+
// value. Branches are mutually exclusive on their first char ("/'/other), so
|
|
55
|
+
// there is no ambiguous backtracking (ReDoS-safe).
|
|
56
|
+
// Rawtext bodies (<script>/<style>/…) are skipped in advanceScopeStack itself.
|
|
57
|
+
// Group 1 = tag name (undefined for the comment branch).
|
|
58
|
+
const TAG_PATTERN = /<!--[\s\S]*?-->|<\/?([a-zA-Z][\w:-]*)(?:"[^"]*"|'[^']*'|[^>"'])*>/;
|
|
59
|
+
// Elements whose content is raw text (CDATA-like), so `<div>`-looking substrings
|
|
60
|
+
// inside them are NOT tags and must not touch the scope stack.
|
|
61
|
+
const RAWTEXT_TAGS = new Set(["script", "style", "textarea", "title"]);
|
|
41
62
|
const SCOPE_ATTR_RE = /\bdata-caret-scope\s*=\s*"([^"]+)"/i;
|
|
42
63
|
const RICH_ATTR_RE = /\bdata-caret-rich\b/i;
|
|
43
64
|
// Matches <img ... data-caret="..." ... src="..." ...> (self-closing or not)
|
|
@@ -83,6 +104,11 @@ function advanceScopeStack(html, untilIndex, state, tagRe) {
|
|
|
83
104
|
if (match.index >= untilIndex)
|
|
84
105
|
break;
|
|
85
106
|
const tagHtml = match[0];
|
|
107
|
+
// Comment branch (no tag-name capture): consumed whole, nothing to track.
|
|
108
|
+
if (match[1] === undefined) {
|
|
109
|
+
state.cursor = tagRe.lastIndex;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
86
112
|
const tagName = match[1].toLowerCase();
|
|
87
113
|
const isClosing = tagHtml.startsWith("</");
|
|
88
114
|
const isSelfClosing = !isClosing && (tagHtml.endsWith("/>") || VOID_TAGS.has(tagName));
|
|
@@ -91,6 +117,17 @@ function advanceScopeStack(html, untilIndex, state, tagRe) {
|
|
|
91
117
|
state.cursor = tagRe.lastIndex;
|
|
92
118
|
continue;
|
|
93
119
|
}
|
|
120
|
+
// Rawtext element: skip its entire body so tag-like text inside (e.g.
|
|
121
|
+
// `if (a < b)` in a <script>, or `</div>` in a <textarea> template) can't
|
|
122
|
+
// push/pop frames. Rawtext can't nest, so the first matching close wins.
|
|
123
|
+
if (!isSelfClosing && RAWTEXT_TAGS.has(tagName)) {
|
|
124
|
+
const closeRe = new RegExp(`</${tagName}\\b`, "gi");
|
|
125
|
+
closeRe.lastIndex = tagRe.lastIndex;
|
|
126
|
+
const close = closeRe.exec(html);
|
|
127
|
+
tagRe.lastIndex = close ? close.index + close[0].length : html.length;
|
|
128
|
+
state.cursor = tagRe.lastIndex;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
94
131
|
if (!isSelfClosing) {
|
|
95
132
|
state.stack.push({
|
|
96
133
|
tagName,
|
|
@@ -107,19 +144,36 @@ function findNearestScope(stack) {
|
|
|
107
144
|
}
|
|
108
145
|
return null;
|
|
109
146
|
}
|
|
110
|
-
|
|
147
|
+
/**
|
|
148
|
+
* CANONICAL data-caret value resolution (exported for the parser parity test):
|
|
149
|
+
* full triple as-is; bare field resolved against the nearest enclosing scope;
|
|
150
|
+
* anything else (2 or 4+ parts) is not a binding. The hand-mirrored copies in
|
|
151
|
+
* browser-runtime.ts, static/cms/editor/helpers.js, and
|
|
152
|
+
* static/cms/dev-toolbar/app.js are held to this behavior by
|
|
153
|
+
* tests/unit/caret-parser-parity.test.ts.
|
|
154
|
+
*/
|
|
155
|
+
export function resolveBinding(caretValue, scope) {
|
|
111
156
|
const parts = caretValue.split("::");
|
|
112
157
|
if (parts.length === 3) {
|
|
113
|
-
return { collection: parts[0], id: parts[1], field: parts[2] };
|
|
158
|
+
return isReservedField(parts[2]) ? null : { collection: parts[0], id: parts[1], field: parts[2] };
|
|
114
159
|
}
|
|
115
160
|
if (parts.length === 1 && !caretValue.includes("::")) {
|
|
116
161
|
// Field-only — resolve from nearest scope
|
|
117
162
|
if (!scope)
|
|
118
163
|
return null;
|
|
164
|
+
if (isReservedField(caretValue))
|
|
165
|
+
return null;
|
|
119
166
|
return { collection: scope.collection, id: scope.id, field: caretValue };
|
|
120
167
|
}
|
|
121
168
|
return null;
|
|
122
169
|
}
|
|
170
|
+
/** A `data-caret` field may never read the reserved markdown body-draft map —
|
|
171
|
+
* a crafted `x::y::__body.0.md` binding would surface draft plumbing into
|
|
172
|
+
* rendered HTML. Body drafts render only through the dedicated
|
|
173
|
+
* `data-caret-md` preview path. */
|
|
174
|
+
function isReservedField(field) {
|
|
175
|
+
return field === BODY_OVERLAY_KEY || field.startsWith(`${BODY_OVERLAY_KEY}.`);
|
|
176
|
+
}
|
|
123
177
|
// --- Content detection ---
|
|
124
178
|
function hasChildMarkup(content) {
|
|
125
179
|
// If content contains any HTML tags, it has child markup
|
|
@@ -182,6 +236,28 @@ export async function rewriteCaretAttributes(html, adapter, options) {
|
|
|
182
236
|
discover(IMG_ELEMENT_PATTERN, (match, scope) => {
|
|
183
237
|
addBinding(match[2], match[1], "", true, scope, match[0], match.index);
|
|
184
238
|
});
|
|
239
|
+
// Markdown body blocks: preview-only swap. Base markdown entries never carry
|
|
240
|
+
// the body-draft map (their data IS the frontmatter), so this can only ever
|
|
241
|
+
// replace content when the adapter is a previewing editor's draft overlay —
|
|
242
|
+
// public requests and the static bake read the base and are untouched.
|
|
243
|
+
discover(CARET_MD_ELEMENT_PATTERN, (match) => {
|
|
244
|
+
const parsed = parseMdBinding(match[3]);
|
|
245
|
+
if (!parsed)
|
|
246
|
+
return;
|
|
247
|
+
entryKeys.add(`${parsed.collection}::${parsed.id}`);
|
|
248
|
+
bindings.push({
|
|
249
|
+
collection: parsed.collection,
|
|
250
|
+
id: parsed.id,
|
|
251
|
+
field: "",
|
|
252
|
+
fullMatch: match[0],
|
|
253
|
+
contentStart: match.index,
|
|
254
|
+
contentEnd: match.index + match[0].length,
|
|
255
|
+
isImg: false,
|
|
256
|
+
isRich: false,
|
|
257
|
+
hasChildMarkup: false,
|
|
258
|
+
mdBlockPath: parsed.blockPath,
|
|
259
|
+
});
|
|
260
|
+
});
|
|
185
261
|
if (bindings.length === 0)
|
|
186
262
|
return html;
|
|
187
263
|
// 2. Batch-load entries
|
|
@@ -192,10 +268,48 @@ export async function rewriteCaretAttributes(html, adapter, options) {
|
|
|
192
268
|
let result = html;
|
|
193
269
|
const sorted = [...bindings].sort((a, b) => b.contentStart - a.contentStart);
|
|
194
270
|
for (const binding of sorted) {
|
|
271
|
+
const entryKey = `${binding.collection}::${binding.id}`;
|
|
272
|
+
// Markdown body block: swap inner HTML with the drafted block, re-sanitized
|
|
273
|
+
// on the way out (defense in depth — it was sanitized at write time too).
|
|
274
|
+
// Same trust model as the data-caret-rich path below.
|
|
275
|
+
if (binding.mdBlockPath !== undefined) {
|
|
276
|
+
const entry = entries.get(entryKey);
|
|
277
|
+
if (!entry)
|
|
278
|
+
continue;
|
|
279
|
+
const drafts = entry.data[BODY_OVERLAY_KEY];
|
|
280
|
+
if (drafts === null || typeof drafts !== "object")
|
|
281
|
+
continue;
|
|
282
|
+
const block = drafts[binding.mdBlockPath];
|
|
283
|
+
if (block === null || typeof block !== "object")
|
|
284
|
+
continue;
|
|
285
|
+
const draftHtml = block.html;
|
|
286
|
+
if (typeof draftHtml !== "string")
|
|
287
|
+
continue;
|
|
288
|
+
const openTagEnd = binding.fullMatch.indexOf(">") + 1;
|
|
289
|
+
const closeTagStart = binding.fullMatch.lastIndexOf("</");
|
|
290
|
+
if (openTagEnd > 0 && closeTagStart >= openTagEnd) {
|
|
291
|
+
// Mark the block as showing an unpublished draft so the editor UI can
|
|
292
|
+
// flag it (a reloaded preview otherwise looks identical to live prose).
|
|
293
|
+
// This only fires when the adapter surfaced a draft — a previewing
|
|
294
|
+
// editor — so the public, which reads the base, never receives it.
|
|
295
|
+
const openTag = binding.fullMatch.slice(0, openTagEnd);
|
|
296
|
+
const before = openTag.includes("data-caret-md-draft")
|
|
297
|
+
? openTag
|
|
298
|
+
: `${openTag.slice(0, -1)} data-caret-md-draft>`;
|
|
299
|
+
const after = binding.fullMatch.slice(closeTagStart);
|
|
300
|
+
const injected = sanitizeHtml(draftHtml, { allowedClasses: options?.allowedClasses });
|
|
301
|
+
result =
|
|
302
|
+
result.slice(0, binding.contentStart) +
|
|
303
|
+
before +
|
|
304
|
+
injected +
|
|
305
|
+
after +
|
|
306
|
+
result.slice(binding.contentEnd);
|
|
307
|
+
}
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
195
310
|
// Skip elements with nested child markup (unless rich text, which expects HTML content)
|
|
196
311
|
if (binding.hasChildMarkup && !binding.isRich)
|
|
197
312
|
continue;
|
|
198
|
-
const entryKey = `${binding.collection}::${binding.id}`;
|
|
199
313
|
const entry = entries.get(entryKey);
|
|
200
314
|
if (!entry)
|
|
201
315
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/runtime/rewrite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/runtime/rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* The editor-save sanitizer in static/cms/editor/sanitize.js is shipped as raw,
|
|
9
9
|
* unbundled JS, so it can't import this module — it MUST mirror these values
|
|
10
|
-
* and the classAllowed() logic by hand.
|
|
10
|
+
* and the classAllowed() logic by hand. That hand mirror is held in lockstep by
|
|
11
|
+
* tests/unit/contracts-parity.test.ts ("browser sanitizer parity"), which fails
|
|
12
|
+
* CI on any drift (W0). Keep all three sanitizers in lockstep.
|
|
11
13
|
*/
|
|
12
|
-
/** Inline formatting tags the rich-text sanitizer preserves. */
|
|
13
14
|
export declare const RICH_ALLOWED_TAGS: Set<string>;
|
|
14
15
|
/** Attributes preserved per tag (class is gated separately, by allowedClasses). */
|
|
15
16
|
export declare const RICH_ALLOWED_ATTRS: Record<string, Set<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-allowlist.d.ts","sourceRoot":"","sources":["../../src/runtime/rich-allowlist.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rich-allowlist.d.ts","sourceRoot":"","sources":["../../src/runtime/rich-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,eAAO,MAAM,iBAAiB,aAE5B,CAAC;AAEH,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAE1D,CAAC;AAMF,eAAO,MAAM,YAAY,QAAwC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAE/D,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAU9E;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKhF"}
|
|
@@ -7,17 +7,27 @@
|
|
|
7
7
|
*
|
|
8
8
|
* The editor-save sanitizer in static/cms/editor/sanitize.js is shipped as raw,
|
|
9
9
|
* unbundled JS, so it can't import this module — it MUST mirror these values
|
|
10
|
-
* and the classAllowed() logic by hand.
|
|
10
|
+
* and the classAllowed() logic by hand. That hand mirror is held in lockstep by
|
|
11
|
+
* tests/unit/contracts-parity.test.ts ("browser sanitizer parity"), which fails
|
|
12
|
+
* CI on any drift (W0). Keep all three sanitizers in lockstep.
|
|
11
13
|
*/
|
|
12
|
-
|
|
14
|
+
// `span` (W4) lets styled inline runs (`<span class="gold">…</span>`, common in
|
|
15
|
+
// headings) survive in rich content — but it carries NO attributes of its own
|
|
16
|
+
// (see RICH_ALLOWED_ATTRS): its `class` is kept only when blessed via the per-tag
|
|
17
|
+
// `allowedClasses` config, and everything else (incl. on*=, style=) is stripped.
|
|
18
|
+
// Fuzzed in tests/unit/sanitize-html-properties.test.ts.
|
|
13
19
|
export const RICH_ALLOWED_TAGS = new Set([
|
|
14
|
-
"b", "strong", "i", "em", "u", "s", "a", "br", "sub", "sup",
|
|
20
|
+
"b", "strong", "i", "em", "u", "s", "a", "br", "sub", "sup", "span",
|
|
15
21
|
]);
|
|
16
22
|
/** Attributes preserved per tag (class is gated separately, by allowedClasses). */
|
|
17
23
|
export const RICH_ALLOWED_ATTRS = {
|
|
18
24
|
a: new Set(["href", "target", "rel"]),
|
|
19
25
|
};
|
|
20
|
-
|
|
26
|
+
// Allows absolute http(s), mailto/tel, and root-relative (`/path`) links. The
|
|
27
|
+
// `(?!\/)` after the leading slash rejects protocol-relative URLs (`//evil.com`),
|
|
28
|
+
// which would otherwise navigate off-site (phishing/open-redirect) and, since
|
|
29
|
+
// enforceLinkSafety only hardens `^https?:` links, wouldn't even get rel=noopener.
|
|
30
|
+
export const SAFE_HREF_RE = /^(?:https?:|mailto:|tel:|\/(?!\/))/i;
|
|
21
31
|
/** Does `cls` match any pattern in `patterns`? (exact, `prefix-*`, or lone `*`) */
|
|
22
32
|
export function classAllowed(cls, patterns) {
|
|
23
33
|
for (const p of patterns) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-allowlist.js","sourceRoot":"","sources":["../../src/runtime/rich-allowlist.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rich-allowlist.js","sourceRoot":"","sources":["../../src/runtime/rich-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gFAAgF;AAChF,8EAA8E;AAC9E,kFAAkF;AAClF,iFAAiF;AACjF,yDAAyD;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;CACpE,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;CACtC,CAAC;AAEF,8EAA8E;AAC9E,kFAAkF;AAClF,8EAA8E;AAC9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAUlE,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,QAA2B;IACnE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,QAA2B;IACtE,OAAO,KAAK;SACT,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACpD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { StorageAdapter, UploadHandler } from "../../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Storage adapter for CMS API/Studio routes. Prefer the middleware ALS scope;
|
|
4
|
+
* fall back to the configured base adapter when injectRoute handlers run
|
|
5
|
+
* outside middleware (seen in Astro static dev after HMR or stale processes).
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveAdapter(): Promise<StorageAdapter>;
|
|
8
|
+
export declare function resolveUploadHandler(): Promise<UploadHandler>;
|
|
2
9
|
export declare function json(body: Record<string, unknown>, status?: number): Response;
|
|
3
10
|
/** Default cap for JSON command payloads (mutate/history/login). */
|
|
4
11
|
export declare const MAX_JSON_BODY_BYTES: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAyBpE;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAI9D;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAInE;AAKD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,SAAM,GAAG,QAAQ,CAK1E;AAED,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,QAAc,CAAC;AAC/C,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GACf,QAAQ,GAAG,IAAI,CAMjB;AAED,KAAK,cAAc,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtC;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,MAA4B,GACrC,OAAO,CAAC,cAAc,CAAC,CAmBzB;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAWnE;AAED,wBAAgB,UAAU,IAAI,cAAc,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
|
-
import { requireRequestContext } from "../request-context.js";
|
|
1
|
+
import { getRequestContext, requireRequestContext, } from "../request-context.js";
|
|
2
|
+
import { getRuntimeServices } from "../providers.js";
|
|
3
|
+
let bootstrapContext = null;
|
|
4
|
+
async function bootstrapRequestContext() {
|
|
5
|
+
if (!bootstrapContext) {
|
|
6
|
+
bootstrapContext = getRuntimeServices().then((services) => ({
|
|
7
|
+
adapter: services.adapter,
|
|
8
|
+
uploadHandler: services.uploadHandler,
|
|
9
|
+
sessionId: null,
|
|
10
|
+
editorId: null,
|
|
11
|
+
demoMode: false,
|
|
12
|
+
overlayActive: false,
|
|
13
|
+
editor: false,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
return bootstrapContext;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Storage adapter for CMS API/Studio routes. Prefer the middleware ALS scope;
|
|
20
|
+
* fall back to the configured base adapter when injectRoute handlers run
|
|
21
|
+
* outside middleware (seen in Astro static dev after HMR or stale processes).
|
|
22
|
+
*/
|
|
23
|
+
export async function resolveAdapter() {
|
|
24
|
+
const ctx = getRequestContext();
|
|
25
|
+
if (ctx)
|
|
26
|
+
return ctx.adapter;
|
|
27
|
+
return (await bootstrapRequestContext()).adapter;
|
|
28
|
+
}
|
|
29
|
+
export async function resolveUploadHandler() {
|
|
30
|
+
const ctx = getRequestContext();
|
|
31
|
+
if (ctx)
|
|
32
|
+
return ctx.uploadHandler;
|
|
33
|
+
return (await bootstrapRequestContext()).uploadHandler;
|
|
34
|
+
}
|
|
2
35
|
const CSRF_HEADER = "x-caret-request";
|
|
3
36
|
const CSRF_HEADER_VALUE = "1";
|
|
4
37
|
export function json(body, status = 200) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-entry.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2KhE"}
|
|
1
|
+
{"version":3,"file":"admin-entry.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2KhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { isEditorAuthenticated } from "../auth/session.js";
|
|
2
3
|
import { getRuntimeConfig } from "../config.js";
|
|
3
|
-
import {
|
|
4
|
+
import { resolveAdapter } from "./_helpers.js";
|
|
4
5
|
import { escapeHtml, htmlResponse, redirectResponse, renderStudioPage, } from "../views/studio-layout.js";
|
|
5
6
|
function humanize(name) {
|
|
6
7
|
return name.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -16,7 +17,7 @@ export async function GET(context) {
|
|
|
16
17
|
if (!collection || !id) {
|
|
17
18
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
18
19
|
}
|
|
19
|
-
const adapter =
|
|
20
|
+
const adapter = await resolveAdapter();
|
|
20
21
|
const known = await adapter.discoverCollections();
|
|
21
22
|
if (!known.includes(collection)) {
|
|
22
23
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-entry.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-entry.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA4PxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoChE"}
|