@aotter/mantle-cloudflare 0.0.11-alpha.72 → 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +4 -4
  2. package/dist/auth/conventionalAuth.d.ts +1 -3
  3. package/dist/auth/conventionalAuth.d.ts.map +1 -1
  4. package/dist/auth/conventionalAuth.js +9 -59
  5. package/dist/auth/conventionalAuth.js.map +1 -1
  6. package/dist/auth/createAuth.d.ts.map +1 -1
  7. package/dist/auth/createAuth.js +27 -2
  8. package/dist/auth/createAuth.js.map +1 -1
  9. package/dist/auth/rejectCrossOriginMutation.d.ts +2 -0
  10. package/dist/auth/rejectCrossOriginMutation.d.ts.map +1 -0
  11. package/dist/auth/rejectCrossOriginMutation.js +15 -0
  12. package/dist/auth/rejectCrossOriginMutation.js.map +1 -0
  13. package/dist/bindings/conventionalBindings.d.ts +0 -1
  14. package/dist/bindings/conventionalBindings.d.ts.map +1 -1
  15. package/dist/bindings/conventionalBindings.js +0 -4
  16. package/dist/bindings/conventionalBindings.js.map +1 -1
  17. package/dist/bindings/index.d.ts +0 -1
  18. package/dist/bindings/index.d.ts.map +1 -1
  19. package/dist/bindings/index.js +0 -1
  20. package/dist/bindings/index.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/mount/bootRuntimeOnce.d.ts.map +1 -1
  24. package/dist/mount/bootRuntimeOnce.js +0 -1
  25. package/dist/mount/bootRuntimeOnce.js.map +1 -1
  26. package/dist/mount/cmsConfig.d.ts +2 -2
  27. package/dist/mount/cmsConfig.d.ts.map +1 -1
  28. package/dist/mount/mountPublicRoutes.d.ts +13 -18
  29. package/dist/mount/mountPublicRoutes.d.ts.map +1 -1
  30. package/dist/mount/mountPublicRoutes.js +39 -97
  31. package/dist/mount/mountPublicRoutes.js.map +1 -1
  32. package/dist/mount/mountServerEndpoints.d.ts.map +1 -1
  33. package/dist/mount/mountServerEndpoints.js +23 -70
  34. package/dist/mount/mountServerEndpoints.js.map +1 -1
  35. package/dist/mount/resolveCaller.d.ts +1 -0
  36. package/dist/mount/resolveCaller.d.ts.map +1 -1
  37. package/dist/mount/resolveCaller.js +8 -3
  38. package/dist/mount/resolveCaller.js.map +1 -1
  39. package/dist/oauth/mountOAuth.d.ts.map +1 -1
  40. package/dist/oauth/mountOAuth.js +4 -8
  41. package/dist/oauth/mountOAuth.js.map +1 -1
  42. package/dist/worker/createMantleWorker.d.ts +0 -1
  43. package/dist/worker/createMantleWorker.d.ts.map +1 -1
  44. package/dist/worker/createMantleWorker.js +13 -0
  45. package/dist/worker/createMantleWorker.js.map +1 -1
  46. package/package.json +12 -12
  47. package/dist/bindings/KvCacheBinding.d.ts +0 -14
  48. package/dist/bindings/KvCacheBinding.d.ts.map +0 -1
  49. package/dist/bindings/KvCacheBinding.js +0 -27
  50. package/dist/bindings/KvCacheBinding.js.map +0 -1
@@ -11,26 +11,23 @@ import type { CmsRuntimeRef } from "./bootRuntimeOnce.js";
11
11
  *
12
12
  * - `GET /` → 302 to `/{canonicalLocale}` (skipped if `homeRenderer` not set)
13
13
  * - `GET /{locale}` → `homeRenderer` (composed; cross-collection)
14
- * - `GET /{locale}/{segment}` → KV-cached collection list
15
- * - `GET /{locale}/{segment}/{slug}` → KV-cached entry HTML
16
- * - `GET /{locale}/{segment}/{slug}.md` → KV-cached entry markdown mirror (AEO)
14
+ * - `GET /{locale}/{segment}` → collection list
15
+ * - `GET /{locale}/{segment}/{slug}` → entry HTML
16
+ * - `GET /{locale}/{segment}/{slug}.md` → entry markdown mirror (AEO)
17
17
  * - `GET /{locale}/{segment}/{slug}?preview=1` → live render via `previewEntry` use case
18
- * - `GET /{locale}/llms.txt` → KV-cached llms.txt
19
- * - `GET /llms.txt` → KV-cached root llms.txt
18
+ * - `GET /{locale}/llms.txt` → composed llms.txt
19
+ * - `GET /llms.txt` → composed root llms.txt
20
20
  * - `GET /sitemap.xml` → composed sitemap
21
21
  *
22
22
  * Slug overrides intercept `(collection, slug)` pairs the consumer
23
23
  * wants to serve from a hand-rolled template (e.g. a contact form
24
24
  * page that needs `<TURNSTILE_SITE_KEY>` injected) rather than a
25
- * pre-rendered KV blob. Overrides take precedence over preview /
26
- * live-dev / KV.
25
+ * rendered entry. Overrides take precedence over preview and the
26
+ * standard renderer.
27
27
  *
28
- * `liveDev: true` (typically `env.MANTLE_LOCAL_DEV === "1"`) bypasses
29
- * KV for entry / list HTML — every request live-renders against
30
- * current D1 state via the `RenderEntryLiveUseCase` /
31
- * `RenderListLiveUseCase`. `.md` mirrors and `llms.txt` still come
32
- * from KV (those are cheap to rebuild via `pnpm fixture`). Don't set
33
- * in production — defeats the publish pipeline cache.
28
+ * Public responses are rendered from canonical D1 state and carry
29
+ * `s-maxage` for Cloudflare's version-local Workers Cache. `liveDev`
30
+ * switches entry/list responses to `private, no-store`.
34
31
  */
35
32
  export interface CollectionRouteConfig {
36
33
  /** Schema name (e.g. `"post-translations"`). */
@@ -43,8 +40,7 @@ export interface CollectionRouteConfig {
43
40
  * list. Default false (most starters use a hand-rolled list page). */
44
41
  readonly listRoute?: boolean;
45
42
  /** When true, expose `GET /{locale}/{segment}/{slug}.md` for the
46
- * AEO markdown mirror. Default true — the publish pipeline already
47
- * writes the mirror to KV; not exposing it would be silent waste. */
43
+ * AEO markdown mirror. Default true. */
48
44
  readonly markdownMirror?: boolean;
49
45
  /** Slug to collapse to `/{locale}` (no trailing segment + slug).
50
46
  * Used for the home page when it lives in a translations
@@ -71,10 +67,9 @@ export interface MountPublicRoutesOptions {
71
67
  /** Renderer for the locale 404 fallback. Required — every miss
72
68
  * falls through here. */
73
69
  readonly notFoundRenderer: (ctx: PublicRouteContext) => Promise<Response>;
74
- /** Per-(collection, slug) override taking precedence over KV. */
70
+ /** Per-(collection, slug) override taking precedence over standard rendering. */
75
71
  readonly slugOverrides?: ReadonlyArray<SlugOverride>;
76
- /** Live-dev flag — bypasses KV for entry / list HTML. Default
77
- * false. */
72
+ /** Live-dev flag — disables public caching for entry / list HTML. */
78
73
  readonly liveDev?: boolean;
79
74
  }
80
75
  export declare function mountPublicRoutes(app: Hono, ref: CmsRuntimeRef, options: MountPublicRoutesOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"mountPublicRoutes.d.ts","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAQL,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;kDAE8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;2EACuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;0EAEsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;sBAEkB;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAChE;;0CAEsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE;8BAC0B;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,iEAAiE;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrD;iBACa;IACb,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAoCD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,wBAAwB,GAChC,IAAI,CAuFN"}
1
+ {"version":3,"file":"mountPublicRoutes.d.ts","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;kDAE8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;2EACuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;6CACyC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;sBAEkB;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAChE;;0CAEsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE;8BAC0B;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,iFAAiF;IACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAkCD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,wBAAwB,GAChC,IAAI,CAqEN"}
@@ -1,8 +1,7 @@
1
- import { entryHtmlKeyFromParts, entryMarkdownKeyFromParts, inferLocaleFromPath, listHtmlKey, llmsTxtKey, serializeEntryAsMarkdown, toUrlLocale, } from "@aotter/mantle-runtime";
1
+ import { inferLocaleFromPath, serializeEntryAsMarkdown, toUrlLocale, } from "@aotter/mantle-runtime";
2
2
  import { STAFF_ROLE_SET } from "../auth/createAuth.js";
3
3
  const PUBLIC_CACHE_CONTROL = "public, max-age=0, s-maxage=300";
4
4
  const PRIVATE_CACHE_CONTROL = "private, no-store";
5
- const ROOT_LLMS_FALLBACK_TTL_SECONDS = 300;
6
5
  const HTML_NO_STORE = {
7
6
  "content-type": "text/html; charset=utf-8",
8
7
  "cache-control": PRIVATE_CACHE_CONTROL,
@@ -33,17 +32,10 @@ export function mountPublicRoutes(app, ref, options) {
33
32
  // Literal root paths register BEFORE any param-catch-all routes —
34
33
  // Hono's trie matches `/llms.txt` against `/:locale` with
35
34
  // `:locale = "llms.txt"` if the literal route registers later.
36
- //
37
- // Live-fallback on KV miss: a first-visit AI agent (or a freshly-
38
- // deployed worker that hasn't published anything yet) gets a
39
- // composed body inline; the cache write rides ctx.waitUntil so the
40
- // response stays fast and subsequent requests hit the warm KV.
41
- app.get("/llms.txt", async (c) => {
35
+ app.get("/llms.txt", async () => {
42
36
  const runtime = await ref.get();
43
- return readThroughCache(runtime.kv, llmsTxtKey(""), TEXT_PUBLIC, async () => composeRootLlmsTxt(runtime, await runtime.siteConfig.load()), {
44
- executionCtx: safeExecutionCtx(c),
45
- expirationTtl: ROOT_LLMS_FALLBACK_TTL_SECONDS,
46
- });
37
+ const body = await composeRootLlmsTxt(runtime, await runtime.siteConfig.load());
38
+ return new Response(body, { status: 200, headers: TEXT_PUBLIC });
47
39
  });
48
40
  app.get("/sitemap.xml", async (c) => {
49
41
  const runtime = await ref.get();
@@ -81,10 +73,11 @@ export function mountPublicRoutes(app, ref, options) {
81
73
  const locale = canonicalLocaleParam(c.req.param("locale"), await runtime.siteConfig.readLocales());
82
74
  if (locale === null)
83
75
  return new Response("not found", { status: 404, headers: TEXT_NO_STORE });
84
- return readThroughCache(runtime.kv, llmsTxtKey(locale), TEXT_PUBLIC, async () => runtime.composeLlmsTxt.execute({
76
+ const body = await runtime.composeLlmsTxt.execute({
85
77
  site: await runtime.siteConfig.load(),
86
78
  locale,
87
- }), { executionCtx: safeExecutionCtx(c) });
79
+ });
80
+ return new Response(body, { status: 200, headers: TEXT_PUBLIC });
88
81
  });
89
82
  for (const route of options.collectionRoutes) {
90
83
  mountCollection(app, ref, options, route, liveDev, overrideIndex);
@@ -109,34 +102,26 @@ function mountCollection(app, ref, options, route, liveDev, overrides) {
109
102
  };
110
103
  if (locale === null)
111
104
  return notFound();
112
- if (liveDev) {
113
- const site = await loadSite();
114
- const html = await runtime.renderListLive.execute({
115
- collection: route.collection,
116
- locale,
117
- site,
118
- });
119
- if (html === null)
120
- return notFound();
121
- return new Response(html, { status: 200, headers: HTML_NO_STORE });
122
- }
123
- return readThroughCache(runtime.kv, listHtmlKey(route.collection, locale), HTML_PUBLIC, async () => runtime.renderListLive.execute({
105
+ const html = await runtime.renderListLive.execute({
124
106
  collection: route.collection,
125
107
  locale,
126
108
  site: await loadSite(),
127
- }), {
128
- fallback: notFound,
129
- executionCtx: safeExecutionCtx(c),
109
+ });
110
+ if (html === null)
111
+ return notFound();
112
+ return new Response(html, {
113
+ status: 200,
114
+ headers: liveDev ? HTML_NO_STORE : HTML_PUBLIC,
130
115
  });
131
116
  });
132
117
  }
133
118
  // Register the `.md` mirror BEFORE the bare `:slug` entry route —
134
119
  // Hono matches in registration order, so without this the entry
135
- // route swallows `slug = "foo.md"` and 404s on KV lookup.
120
+ // route swallows `slug = "foo.md"` and looks up the wrong slug.
136
121
  if (route.markdownMirror !== false) {
137
122
  // `[^/]+\\.md` (not `.+\\.md`) so a malicious crawler can't
138
- // squat sub-paths like `/en/posts/long/random.md` and burn KV
139
- // reads — the `:slug` group stays single-segment.
123
+ // squat sub-paths like `/en/posts/long/random.md`; the `:slug`
124
+ // group stays single-segment.
140
125
  app.get(`/:locale${segPath}/:slug{[^/]+\\.md}`, async (c) => {
141
126
  const runtime = await ref.get();
142
127
  const locale = canonicalLocaleParam(c.req.param("locale"), await runtime.siteConfig.readLocales());
@@ -145,20 +130,17 @@ function mountCollection(app, ref, options, route, liveDev, overrides) {
145
130
  const notFound = () => new Response("not found", { status: 404, headers: TEXT_NO_STORE });
146
131
  if (locale === null)
147
132
  return notFound();
148
- const key = entryMarkdownKeyFromParts(route.collection, locale, slug);
149
- return readThroughCache(runtime.kv, key, MD_PUBLIC, async () => {
150
- const entry = await runtime.entryReader.readBySlug({
151
- collection: route.collection,
152
- slug,
153
- locale,
154
- status: "published",
155
- });
156
- if (!entry)
157
- return null;
158
- return serializeEntryAsMarkdown(entry);
159
- }, {
160
- fallback: notFound,
161
- executionCtx: safeExecutionCtx(c),
133
+ const entry = await runtime.entryReader.readBySlug({
134
+ collection: route.collection,
135
+ slug,
136
+ locale,
137
+ status: "published",
138
+ });
139
+ if (!entry)
140
+ return notFound();
141
+ return new Response(serializeEntryAsMarkdown(entry), {
142
+ status: 200,
143
+ headers: MD_PUBLIC,
162
144
  });
163
145
  });
164
146
  }
@@ -193,30 +175,17 @@ function mountCollection(app, ref, options, route, liveDev, overrides) {
193
175
  return notFound();
194
176
  return new Response(html, { status: 200, headers: HTML_NO_STORE });
195
177
  }
196
- if (liveDev) {
197
- const site = await loadSite();
198
- const html = await runtime.renderEntryLive.execute({
199
- collection: route.collection,
200
- slug,
201
- locale,
202
- site,
203
- });
204
- if (html === null)
205
- return notFound();
206
- return new Response(html, { status: 200, headers: HTML_NO_STORE });
207
- }
208
- const key = entryHtmlKeyFromParts(route.collection, locale, slug);
209
- return readThroughCache(runtime.kv, key, HTML_PUBLIC, async () => {
210
- const html = await runtime.renderEntryLive.execute({
211
- collection: route.collection,
212
- slug,
213
- locale,
214
- site: await loadSite(),
215
- });
216
- return html;
217
- }, {
218
- fallback: notFound,
219
- executionCtx: safeExecutionCtx(c),
178
+ const html = await runtime.renderEntryLive.execute({
179
+ collection: route.collection,
180
+ slug,
181
+ locale,
182
+ site: await loadSite(),
183
+ });
184
+ if (html === null)
185
+ return notFound();
186
+ return new Response(html, {
187
+ status: 200,
188
+ headers: liveDev ? HTML_NO_STORE : HTML_PUBLIC,
220
189
  });
221
190
  });
222
191
  if (route.homeSlug && options.homeRenderer == null) {
@@ -243,14 +212,6 @@ async function assertStaffSession(ref, req) {
243
212
  }
244
213
  return null;
245
214
  }
246
- function safeExecutionCtx(c) {
247
- try {
248
- return c.executionCtx;
249
- }
250
- catch {
251
- return undefined;
252
- }
253
- }
254
215
  /**
255
216
  * Cross-locale aggregate body for `/llms.txt` (no `:locale` segment).
256
217
  *
@@ -278,25 +239,6 @@ async function composeRootLlmsTxt(runtime, site) {
278
239
  }
279
240
  return parts.length > 0 ? parts.join("\n---\n\n") : "";
280
241
  }
281
- async function readThroughCache(kv, key, headers, populate, options = {}) {
282
- const cached = await kv.get(key);
283
- if (cached !== null)
284
- return new Response(cached, { status: 200, headers });
285
- const rendered = await populate();
286
- if (rendered === null) {
287
- if (options.fallback)
288
- return options.fallback();
289
- return new Response("not found", { status: 404, headers: TEXT_NO_STORE });
290
- }
291
- const writeBack = kv.put(key, rendered, options.expirationTtl === undefined
292
- ? undefined
293
- : { expirationTtl: options.expirationTtl });
294
- if (options.executionCtx)
295
- options.executionCtx.waitUntil(writeBack);
296
- else
297
- await writeBack;
298
- return new Response(rendered, { status: 200, headers });
299
- }
300
242
  function lazySite(runtime) {
301
243
  let pending;
302
244
  return () => pending ??= runtime.siteConfig.load();
@@ -1 +1 @@
1
- {"version":3,"file":"mountPublicRoutes.js","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mountPublicRoutes.js","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mountServerEndpoints.d.ts","sourceRoot":"","sources":["../../src/mount/mountServerEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA+B/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D;;;;iBAIiB;AACjB,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,GAAG,EAChD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,GAAG,EAAE,aAAa,GACjB,IAAI,CAuCN;AAyqDD,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"mountServerEndpoints.d.ts","sourceRoot":"","sources":["../../src/mount/mountServerEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA+B/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D;;;;iBAIiB;AACjB,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,GAAG,EAChD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,GAAG,EAAE,aAAa,GACjB,IAAI,CAuCN;AA+nDD,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { DiagnosticError, HTTP_STATUS_BY_CODE, MANTLE_REF_KEYWORD, MCP_HINT_KEYWORD, VIEW_PARAMS_RESERVED, isMediaMcpHint, redactForWire, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
2
  import { ViewParamCoercionError, coerceViewParams, compilePathMatcher, evaluateAuthAll, } from "@aotter/mantle-runtime";
3
3
  import { indexHtml } from "@aotter/mantle-admin-ui";
4
- import { resolveCaller } from "./resolveCaller.js";
4
+ import { resolveCaller, resolveUserRole } from "./resolveCaller.js";
5
5
  import { runMantleUseCase } from "./runMantleUseCase.js";
6
6
  import { STAFF_ROLE_SET } from "../auth/createAuth.js";
7
+ import { rejectCrossOriginMutation } from "../auth/rejectCrossOriginMutation.js";
7
8
  import { AOTTER_FAVICON_SVG } from "../assets/aotterFavicon.js";
8
9
  const [PAGE_PARAM, SHOW_PARAM] = VIEW_PARAMS_RESERVED;
9
10
  /** Mount HTTP Triggers + Views + the Better Auth admin surface.
@@ -989,11 +990,10 @@ async function relatedEntrySections(runtime, parentSchema, parentRow, schemas) {
989
990
  }
990
991
  function discoverChildRelationships(parentSchema, parentRow, schemas) {
991
992
  const parentName = parentSchema.metadata.name;
992
- const parentProps = parentSchema.spec.schema.properties ?? {};
993
993
  const relationships = [];
994
994
  const seen = new Set();
995
- const add = (childSchema, kind, parentField, childField) => {
996
- const parentValue = primitiveJoinValue(parentRow.data[parentField]);
995
+ const add = (childSchema, kind, parentField, childField, rawParentValue) => {
996
+ const parentValue = primitiveJoinValue(rawParentValue);
997
997
  if (parentValue == null)
998
998
  return;
999
999
  const key = `${childSchema.metadata.name}:${kind}:${parentField}:${childField}:${String(parentValue)}`;
@@ -1014,39 +1014,17 @@ function discoverChildRelationships(parentSchema, parentRow, schemas) {
1014
1014
  const childProps = childSchema.spec.schema.properties ?? {};
1015
1015
  const translates = childSchema.spec.translates;
1016
1016
  if (translates?.parent === parentName) {
1017
- add(childSchema, "translation", translates.on, translates.on);
1017
+ add(childSchema, "translation", translates.on, translates.on, parentRow.data[translates.on]);
1018
1018
  continue;
1019
1019
  }
1020
- for (const [childField] of Object.entries(childProps)) {
1021
- const parentField = conventionalParentField(parentName, childField, parentProps);
1022
- if (parentField)
1023
- add(childSchema, "field", parentField, childField);
1020
+ for (const [childField, childProperty] of Object.entries(childProps)) {
1021
+ if (childProperty[MANTLE_REF_KEYWORD] === parentName) {
1022
+ add(childSchema, "field", "id", childField, parentRow.id);
1023
+ }
1024
1024
  }
1025
1025
  }
1026
1026
  return relationships;
1027
1027
  }
1028
- function conventionalParentField(parentCollectionName, childField, parentProps) {
1029
- const bases = new Set([
1030
- camelCaseIdentifier(parentCollectionName),
1031
- singularizeIdentifier(camelCaseIdentifier(parentCollectionName)),
1032
- ]);
1033
- for (const base of bases) {
1034
- for (const [parentField, parentSchema] of Object.entries(parentProps)) {
1035
- if (!isPrimitiveJoinSchema(parentSchema))
1036
- continue;
1037
- if (childField === `${base}${capitalizeIdentifier(parentField)}`)
1038
- return parentField;
1039
- }
1040
- }
1041
- return null;
1042
- }
1043
- function isPrimitiveJoinSchema(schema) {
1044
- const rawType = schema.type;
1045
- const types = Array.isArray(rawType) ? rawType : rawType ? [rawType] : [];
1046
- if (types.length === 0 && schema.enum)
1047
- return true;
1048
- return types.some((type) => type === "string" || type === "number" || type === "integer" || type === "boolean");
1049
- }
1050
1028
  function collectionParentFor(childSchema, schemas) {
1051
1029
  if (childSchema.spec.translates) {
1052
1030
  return {
@@ -1060,23 +1038,15 @@ function collectionParentFor(childSchema, schemas) {
1060
1038
  // parent, so it's buried under the parent in the sidebar). Optional
1061
1039
  // ref = weak reference — the collection stays top-level.
1062
1040
  const childRequired = new Set(childSchema.spec.schema.required ?? []);
1063
- for (const parentSchema of schemas) {
1064
- if (parentSchema.metadata.name === childSchema.metadata.name)
1041
+ const schemaNames = new Set(schemas
1042
+ .filter((schema) => !schema.spec.translates)
1043
+ .map((schema) => schema.metadata.name));
1044
+ for (const [childField, childProperty] of Object.entries(childProps)) {
1045
+ if (!childRequired.has(childField))
1065
1046
  continue;
1066
- if (parentSchema.spec.translates)
1067
- continue;
1068
- const parentProps = parentSchema.spec.schema.properties ?? {};
1069
- for (const [childField] of Object.entries(childProps)) {
1070
- if (!childRequired.has(childField))
1071
- continue;
1072
- const parentField = conventionalParentField(parentSchema.metadata.name, childField, parentProps);
1073
- if (parentField) {
1074
- return {
1075
- collection: parentSchema.metadata.name,
1076
- parentField,
1077
- childField,
1078
- };
1079
- }
1047
+ const parent = childProperty[MANTLE_REF_KEYWORD];
1048
+ if (typeof parent === "string" && schemaNames.has(parent)) {
1049
+ return { collection: parent, parentField: "id", childField };
1080
1050
  }
1081
1051
  }
1082
1052
  return null;
@@ -1090,28 +1060,6 @@ function primitiveJoinValue(value) {
1090
1060
  return value;
1091
1061
  return null;
1092
1062
  }
1093
- function camelCaseIdentifier(value) {
1094
- return value
1095
- .split(/[^a-zA-Z0-9]+/)
1096
- .filter(Boolean)
1097
- .map((part, index) => {
1098
- const lower = part.charAt(0).toLowerCase() + part.slice(1);
1099
- return index === 0 ? lower : capitalizeIdentifier(lower);
1100
- })
1101
- .join("");
1102
- }
1103
- function singularizeIdentifier(value) {
1104
- if (value.endsWith("ies"))
1105
- return `${value.slice(0, -3)}y`;
1106
- if (value.endsWith("ses"))
1107
- return value.slice(0, -2);
1108
- if (value.endsWith("s") && value.length > 1)
1109
- return value.slice(0, -1);
1110
- return value;
1111
- }
1112
- function capitalizeIdentifier(value) {
1113
- return value.charAt(0).toUpperCase() + value.slice(1);
1114
- }
1115
1063
  async function entriesByDataValue(runtime, collection, field, value) {
1116
1064
  return runtime.entryReader.findManyByDataField({
1117
1065
  collection,
@@ -1165,7 +1113,7 @@ async function readStaffGate(c, auth) {
1165
1113
  const session = await auth.getSession(c.req.raw);
1166
1114
  if (!session)
1167
1115
  return { kind: "unauth" };
1168
- const role = await auth.getUserRole(session.user.id);
1116
+ const role = await resolveUserRole(auth, session.user.id, session.user.role);
1169
1117
  const login = session.user.githubLogin ?? null;
1170
1118
  if (!role || !STAFF_ROLE_SET.has(role)) {
1171
1119
  return { kind: "forbidden", login };
@@ -1199,6 +1147,11 @@ async function handleHttpTrigger(req, runtime, ref, triggerName, triggerPath, pa
1199
1147
  if (caller.kind === "invalid") {
1200
1148
  return Response.json({ ok: false, diagnostic: caller.diagnostic }, { status: caller.status });
1201
1149
  }
1150
+ if (caller.context.auth?.credential === "session") {
1151
+ const rejected = rejectCrossOriginMutation(req);
1152
+ if (rejected)
1153
+ return rejected;
1154
+ }
1202
1155
  const body = await readBody(req);
1203
1156
  // Spread order matters: URL path params are authoritative for the
1204
1157
  // resource identifier (a `DELETE /entries/{id}` body MUST NOT spoof