gemi 0.173.0 → 0.175.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/dist/bin/gemi.js +13 -2
- package/dist/bin/gemi.js.map +3 -3
- package/dist/{chunk-yeaftz5a.js → chunk-1670g2gy.js} +1 -1
- package/dist/{chunk-9pet8zmd.js → chunk-ewf24h4z.js} +13 -2
- package/dist/chunk-ewf24h4z.js.map +10 -0
- package/dist/chunk-k036qfj0.js +117 -0
- package/dist/{chunk-1pvfgfhj.js.map → chunk-k036qfj0.js.map} +11 -7
- package/dist/{chunk-eykb93pv.js → chunk-q1s9y4ce.js} +1 -1
- package/dist/{chunk-x2e20w8g.js → chunk-r5wtc9fw.js} +1 -1
- package/dist/{chunk-psmwxtf5.js → chunk-wf81wenb.js} +2 -2
- package/dist/{chunk-psmwxtf5.js.map → chunk-wf81wenb.js.map} +1 -1
- package/dist/{chunk-dxtry1gh.js → chunk-xnkx1kz8.js} +1 -1
- package/dist/{chunk-z58zh5gm.js → chunk-yc2w8x64.js} +1 -1
- package/dist/client/IslandI18nContext.d.ts +32 -0
- package/dist/client/IslandI18nContext.d.ts.map +1 -0
- package/dist/client/index.js +29 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/islands.d.ts +40 -2
- package/dist/client/islands.d.ts.map +1 -1
- package/dist/client/useDictionary.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/http/index.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/internal/islandRuntime.d.ts +10 -2
- package/dist/internal/islandRuntime.d.ts.map +1 -1
- package/dist/kernel/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
- package/dist/services/router/config.d.ts +6 -0
- package/dist/services/router/config.d.ts.map +1 -1
- package/dist/services/router/staticDocument.d.ts +10 -0
- package/dist/services/router/staticDocument.d.ts.map +1 -1
- package/dist/testing/index.js +20 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/vite/index.mjs +12 -1
- package/dist/vitest/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-1pvfgfhj.js +0 -117
- package/dist/chunk-9pet8zmd.js.map +0 -10
- /package/dist/{chunk-yeaftz5a.js.map → chunk-1670g2gy.js.map} +0 -0
- /package/dist/{chunk-eykb93pv.js.map → chunk-q1s9y4ce.js.map} +0 -0
- /package/dist/{chunk-x2e20w8g.js.map → chunk-r5wtc9fw.js.map} +0 -0
- /package/dist/{chunk-dxtry1gh.js.map → chunk-xnkx1kz8.js.map} +0 -0
- /package/dist/{chunk-z58zh5gm.js.map → chunk-yc2w8x64.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../internal/isConstructor.ts", "../http/HttpResponse.ts", "../http/middlewareList.ts", "../http/contentDisposition.ts", "../http/createStreamResponse.ts", "../http/bodyLimit.ts", "../http/ApiRouter.ts", "../auth/accessToken.ts", "../services/broadcast/channels.ts", "../http/Middleware.ts", "../http/BodyLimitMiddleware.ts", "../services/middleware/MiddlewareRegistry.ts", "../http/ChannelRouter.ts", "../http/McpRouter.ts", "../utils/applyParams.ts", "../facades/Redirect.ts", "../http/ViewRouter.ts", "../http/middleware-config.ts", "../utils/intendedUrl.ts", "../auth/signInRedirect.ts", "../http/AuthenticationMiddlware.ts", "../http/SameSiteBounceMiddleware.ts", "../http/CacheMiddleware.ts", "../http/CorsMiddleware.ts", "../http/RateLimitExceededError.ts", "../services/rate-limiter/RateLimiter.ts", "../http/clientAddress.ts", "../http/RateLimitMiddleware.ts", "../http/CSRFMiddleware.ts", "../http/PoliciesServiceProvider.ts", "../http/Policy.ts", "../http/ResourcePolicy.ts", "../http/sitemap/fetchText.ts", "../http/sitemap/xml.ts", "../http/sitemap/Sitemap.ts", "../http/sitemap/Robots.ts", "../auth/sessionToken.ts", "../auth/oneTimeCode.ts", "../services/rate-limiter/slidingWindow.ts", "../services/rate-limiter/drivers/RateLimiterDriver.ts", "../services/rate-limiter/drivers/InMemoryRateLimiterDriver.ts", "../auth/config.ts", "../auth/requests.ts", "../services/router/htmlInsertionPoint.ts", "../services/router/streamQueryInjection.ts", "../services/features/context.ts", "../services/features/bucket.ts", "../services/features/evaluate.ts", "../services/features/FeatureFlagStore.ts", "../services/features/sources/FeatureFlagSource.ts", "../services/features/FeatureManager.ts", "../services/features/gate.ts", "../auth/oauth/providers.ts", "../auth/UserProvider.ts", "../auth/AuthController.ts", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/internal.js", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/classApi.js", "../services/broadcast/socketHeader.ts", "../services/broadcast/protocol.ts", "../services/broadcast/config.ts", "../services/broadcast/RedisBroadcastDriver.ts", "../services/broadcast/socketTag.ts", "../services/broadcast/wire.ts", "../services/broadcast/BroadcastManager.ts", "../auth/oauth/OAuthProvider.ts", "../auth/oauth/oauthState.ts", "../auth/connections/ConnectionsController.ts", "../auth/routes.ts", "../i18n/I18nRouter.ts", "../services/image-optimization/drivers/ImageOptimizationDriver.ts", "../services/image-optimization/drivers/SharpDriver.ts", "../services/image-optimization/config.ts", "../services/image-optimization/fetchSourceImage.ts", "../services/image-optimization/ImageManager.ts", "../services/logging/LoggingRouter.ts", "../services/router/config.ts", "../services/router/createFlatApiRoutes.ts", "../services/router/createFlatViewRoutes.ts", "../client/theme.ts", "../../../node_modules/.bun/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.js", "../services/router/matchViewRoute.ts", "../services/router/planPartialRender.ts", "../utils/partialRender.ts", "../services/router/ViewRouteDispatcher.ts", "../services/router/createRouteManifest.ts", "../services/router/createComponentTree.ts", "../client/helpers/flattenComponentTree.ts", "../i18n/localePrefix.ts", "../facades/Lang.ts", "../services/kernel-id/KernelId.ts", "../utils/omitNullishValues.ts", "../services/router/ServerQueryStore.ts", "../client/QueryError.ts", "../services/router/policyDenied.ts", "../services/router/serverQueryFetcher.ts", "../services/router/shellContentReport.ts", "../services/router/routePayloadStream.ts", "../client/islands.tsx", "../services/router/staticDocument.ts", "../internal/staticNavigationRuntime.ts", "../services/router/documentScript.ts", "../services/router/staticCache.ts", "../services/router/notFound.ts", "../services/router/ApiRouteDispatcher.ts", "../services/router/DomainResolver.ts", "../server/forwardedFor.ts", "../services/router/DomainRouter.ts", "../auth/AuthManager.ts", "../facades/Auth.ts", "../facades/Prefetch.ts", "../utils/apiUrl.ts", "../utils/domainUrl.ts", "../facades/Url.ts", "../facades/Meta.ts", "../facades/Cookie.ts", "../facades/Redis.ts", "../services/cache/config.ts", "../services/cache/MemoryCacheStore.ts", "../services/cache/RedisCacheStore.ts", "../services/cache/CacheManager.ts", "../facades/Cache.ts", "../facades/RateLimiter.ts", "../facades/Lock.ts", "../facades/Crypt.ts", "../facades/Connections.ts", "../services/change-feed/config.ts", "../services/change-feed/cursor.ts", "../services/change-feed/postgresListen.ts", "../services/change-feed/DatabaseChangeFeedDriver.ts", "../services/change-feed/MemoryChangeFeedDriver.ts", "../services/change-feed/stream.ts", "../services/change-feed/ChangeFeedManager.ts", "../facades/ChangeFeed.ts", "../services/broadcast/FakeBroadcastManager.ts", "../facades/Broadcast.ts", "../services/runs/config.ts", "../services/runs/RunStore.ts", "../services/runs/DatabaseRunStore.ts", "../services/runs/RunManager.ts", "../facades/Runs.ts", "../facades/Features.ts", "../facades/DB.ts"],
|
|
3
|
+
"sources": ["../internal/isConstructor.ts", "../http/HttpResponse.ts", "../http/middlewareList.ts", "../http/contentDisposition.ts", "../http/createStreamResponse.ts", "../http/bodyLimit.ts", "../http/ApiRouter.ts", "../auth/accessToken.ts", "../services/broadcast/channels.ts", "../http/Middleware.ts", "../http/BodyLimitMiddleware.ts", "../services/middleware/MiddlewareRegistry.ts", "../http/ChannelRouter.ts", "../http/McpRouter.ts", "../utils/applyParams.ts", "../facades/Redirect.ts", "../http/ViewRouter.ts", "../http/middleware-config.ts", "../utils/intendedUrl.ts", "../auth/signInRedirect.ts", "../http/AuthenticationMiddlware.ts", "../http/SameSiteBounceMiddleware.ts", "../http/CacheMiddleware.ts", "../http/CorsMiddleware.ts", "../http/RateLimitExceededError.ts", "../services/rate-limiter/RateLimiter.ts", "../http/clientAddress.ts", "../http/RateLimitMiddleware.ts", "../http/CSRFMiddleware.ts", "../http/PoliciesServiceProvider.ts", "../http/Policy.ts", "../http/ResourcePolicy.ts", "../http/sitemap/fetchText.ts", "../http/sitemap/xml.ts", "../http/sitemap/Sitemap.ts", "../http/sitemap/Robots.ts", "../auth/sessionToken.ts", "../auth/oneTimeCode.ts", "../services/rate-limiter/slidingWindow.ts", "../services/rate-limiter/drivers/RateLimiterDriver.ts", "../services/rate-limiter/drivers/InMemoryRateLimiterDriver.ts", "../auth/config.ts", "../auth/requests.ts", "../services/router/htmlInsertionPoint.ts", "../services/router/streamQueryInjection.ts", "../services/features/context.ts", "../services/features/bucket.ts", "../services/features/evaluate.ts", "../services/features/FeatureFlagStore.ts", "../services/features/sources/FeatureFlagSource.ts", "../services/features/FeatureManager.ts", "../services/features/gate.ts", "../auth/oauth/providers.ts", "../auth/UserProvider.ts", "../auth/AuthController.ts", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/internal.js", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/classApi.js", "../services/broadcast/socketHeader.ts", "../services/broadcast/protocol.ts", "../services/broadcast/config.ts", "../services/broadcast/RedisBroadcastDriver.ts", "../services/broadcast/socketTag.ts", "../services/broadcast/wire.ts", "../services/broadcast/BroadcastManager.ts", "../auth/oauth/OAuthProvider.ts", "../auth/oauth/oauthState.ts", "../auth/connections/ConnectionsController.ts", "../auth/routes.ts", "../i18n/I18nRouter.ts", "../services/image-optimization/drivers/ImageOptimizationDriver.ts", "../services/image-optimization/drivers/SharpDriver.ts", "../services/image-optimization/config.ts", "../services/image-optimization/fetchSourceImage.ts", "../services/image-optimization/ImageManager.ts", "../services/logging/LoggingRouter.ts", "../services/router/config.ts", "../services/router/createFlatApiRoutes.ts", "../services/router/createFlatViewRoutes.ts", "../client/theme.ts", "../../../node_modules/.bun/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.js", "../services/router/matchViewRoute.ts", "../services/router/planPartialRender.ts", "../utils/partialRender.ts", "../services/router/ViewRouteDispatcher.ts", "../services/router/createRouteManifest.ts", "../services/router/createComponentTree.ts", "../client/helpers/flattenComponentTree.ts", "../i18n/localePrefix.ts", "../facades/Lang.ts", "../services/kernel-id/KernelId.ts", "../utils/omitNullishValues.ts", "../services/router/ServerQueryStore.ts", "../client/QueryError.ts", "../services/router/policyDenied.ts", "../services/router/serverQueryFetcher.ts", "../services/router/shellContentReport.ts", "../services/router/routePayloadStream.ts", "../client/islands.tsx", "../client/DictionarySinkContext.ts", "../client/IslandI18nContext.ts", "../client/useRouteData.ts", "../client/RouteStateContext.tsx", "../services/router/staticDocument.ts", "../internal/staticNavigationRuntime.ts", "../services/router/documentScript.ts", "../services/router/staticCache.ts", "../services/router/notFound.ts", "../services/router/ApiRouteDispatcher.ts", "../services/router/DomainResolver.ts", "../server/forwardedFor.ts", "../services/router/DomainRouter.ts", "../auth/AuthManager.ts", "../facades/Auth.ts", "../facades/Prefetch.ts", "../utils/apiUrl.ts", "../utils/domainUrl.ts", "../facades/Url.ts", "../facades/Meta.ts", "../facades/Cookie.ts", "../facades/Redis.ts", "../services/cache/config.ts", "../services/cache/MemoryCacheStore.ts", "../services/cache/RedisCacheStore.ts", "../services/cache/CacheManager.ts", "../facades/Cache.ts", "../facades/RateLimiter.ts", "../facades/Lock.ts", "../facades/Crypt.ts", "../facades/Connections.ts", "../services/change-feed/config.ts", "../services/change-feed/cursor.ts", "../services/change-feed/postgresListen.ts", "../services/change-feed/DatabaseChangeFeedDriver.ts", "../services/change-feed/MemoryChangeFeedDriver.ts", "../services/change-feed/stream.ts", "../services/change-feed/ChangeFeedManager.ts", "../facades/ChangeFeed.ts", "../services/broadcast/FakeBroadcastManager.ts", "../facades/Broadcast.ts", "../services/runs/config.ts", "../services/runs/RunStore.ts", "../services/runs/DatabaseRunStore.ts", "../services/runs/RunManager.ts", "../facades/Runs.ts", "../facades/Features.ts", "../facades/DB.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export function isConstructor(value: any) {\n return typeof value === \"function\" && value.prototype !== undefined;\n}\n",
|
|
6
6
|
"import type { Refusal } from \"./refusal\";\n\n/**\n * Marks an `HttpResponse` at runtime. A registered symbol rather than\n * `instanceof`, so a route built against one copy of gemi is still recognised by\n * a dispatcher from another (a linked package, a duplicated install) — the\n * reason `RequestBreakerError` is recognised by its `kind` too.\n */\nconst HTTP_RESPONSE = Symbol.for(\"gemi.HttpResponse\");\n\nexport type HttpResponseOptions<S extends number = number> = {\n /** The status code. `200` when omitted. */\n status?: S;\n /**\n * Set on top of everything the request already put on the response. Each\n * header named here replaces the one the context holds; a `Set-Cookie` is\n * added to the cookies set during the request rather than replacing them.\n */\n headers?: HeadersInit;\n};\n\n/**\n * What the response's body is and how it is written. One member per factory,\n * and a `case` in `serialize`.\n */\ntype HttpResponseKind = \"json\" | \"text\" | \"empty\";\n\n/** The statuses `HttpResponse.redirect` answers. */\nexport type RedirectStatus = 301 | 302 | 303 | 307 | 308;\n\nconst REDIRECT_STATUSES: ReadonlySet<number> = new Set([301, 302, 303, 307, 308]);\n\n/**\n * A handler's answer with a status or headers of its own, where returning the\n * data would answer `200`.\n *\n * ```ts\n * \"/posts\": this.post(async (req) => {\n * const post = await Post.create({ data: (await req.input()).toJSON() });\n * return HttpResponse.json(post, { status: 201 });\n * }),\n * ```\n *\n * Unlike a `Response` built by hand it stays typed: the route's client type is\n * `T`, exactly as if the handler had returned `data`. And it is answered through\n * the same path as a plain return, so the request's cookies, the headers set\n * with `req.ctx().setHeaders()` and whatever middleware added (CORS,\n * `Cache-Control`) are on it too.\n *\n * `.redirect()`, `.noContent()` and `.text()` answer what a client other than\n * gemi's needs: a native `<form>` post's `303`, a beacon's `204`, a plain-text\n * body.\n *\n * For api routes, and for the error branches of `this.stream()` and\n * `this.file()` routes. A view's handler returns its props; returning one\n * there throws.\n */\nexport class HttpResponse<T = unknown, S extends number = number> {\n readonly [HTTP_RESPONSE] = true;\n\n private constructor(\n readonly kind: HttpResponseKind,\n readonly body: T,\n readonly status: S,\n readonly headers: Headers,\n ) {}\n\n /**\n * `data` as JSON, with `options.status` (default `200`) and\n * `options.headers` on top of the request's own.\n *\n * A status of 400 or more answers `Cache-Control: no-store` unless\n * `options.headers` sets one, as gemi's own error responses do: a route\n * behind `cache` would otherwise let a shared cache replay one client's 404\n * to everyone.\n */\n static json<T, S extends number = 200>(\n data: T,\n options: HttpResponseOptions<S> = {},\n ): HttpResponse<T, S> {\n const status = options.status ?? 200;\n assertStatus(status, \"json\");\n return new HttpResponse(\"json\", data, status as S, new Headers(options.headers));\n }\n\n /**\n * A typed error: `{ \"error\": body }` with a status from 400 to 599, the\n * envelope gemi's own errors answer.\n *\n * ```ts\n * if (expired(link)) {\n * return HttpResponse.error(410, { kind: \"gone\", message: \"Link has expired\" });\n * }\n * return { catalogId };\n * ```\n *\n * The route's client type leaves it out of the data and adds `body` to the\n * error type instead: `onError` and `error` on `useMutation`, `usePost`,\n * `useUpload` and `<Form>` are `MutationError | typeof body` (with `status`\n * added), so `if (!(e instanceof Error) && e.kind === \"gone\")` narrows.\n * `httpError(status, body)` is the same function.\n */\n static error<const E, S extends number>(\n status: S,\n body: E,\n options: Omit<HttpResponseOptions, \"status\"> = {},\n ): HttpResponse<{ error: E }, S> {\n if (!Number.isInteger(status) || status < 400 || status > 599) {\n throw new RangeError(\n `HttpResponse.error: status must be an integer from 400 to 599, got ${status}.`,\n );\n }\n return HttpResponse.json({ error: body }, { ...options, status });\n }\n\n /**\n * A real redirect to `url`: `303 See Other` by default, with `Location`\n * set and no body. For a native `<form>` post, where the browser follows\n * it with a GET. `Redirect.to`/`Redirect.external` are for view routes: on\n * an api route they answer `200 {}`.\n *\n * ```ts\n * \"/subscribe\": this.post(async (req) => {\n * await Subscriber.create({ data: (await req.input()).toJSON() });\n * return HttpResponse.redirect(\"/thanks\");\n * }),\n * ```\n *\n * `status` is one of 301, 302, 303, 307 or 308; a 307 or 308 makes the\n * browser repeat the POST at `url`. The route's client type leaves it out:\n * gemi's client fetches with `redirect: \"follow\"`, so it would receive the\n * target, not this.\n */\n static redirect<S extends RedirectStatus = 303>(\n url: string | URL,\n options: HttpResponseOptions<S> = {},\n ): HttpResponse<never, S> {\n const status = options.status ?? 303;\n if (!REDIRECT_STATUSES.has(status)) {\n throw new RangeError(\n `HttpResponse.redirect: status must be 301, 302, 303, 307 or 308, got ${status}.`,\n );\n }\n const location = String(url);\n if (location === \"\") {\n throw new TypeError(\"HttpResponse.redirect: url is empty.\");\n }\n const headers = new Headers(options.headers);\n headers.set(\"Location\", location);\n return new HttpResponse(\"empty\", undefined as never, status as S, headers);\n }\n\n /**\n * `204 No Content`: no body, `options.headers` on top of the request's own.\n * gemi's client reads it as `null`.\n */\n static noContent(options: Omit<HttpResponseOptions, \"status\"> = {}): HttpResponse<null, 204> {\n return new HttpResponse(\"empty\", null, 204, new Headers(options.headers));\n }\n\n /**\n * `body` as plain text, `text/plain; charset=utf-8` unless `options.headers`\n * names a `Content-Type` (a CSS or HTML body, say), with `options.status`\n * (default `200`). A status of 400 or more is `no-store`, as with `.json()`.\n *\n * ```ts\n * if (!family) return HttpResponse.text(\"Unknown font family\", { status: 400 });\n * ```\n *\n * gemi's client reads a `text/plain` body as a string, and an error one as the\n * refusal a string error body makes.\n */\n static text<S extends number = 200>(\n body: string,\n options: HttpResponseOptions<S> = {},\n ): HttpResponse<string, S> {\n const status = options.status ?? 200;\n assertStatus(status, \"text\");\n return new HttpResponse(\"text\", body, status as S, new Headers(options.headers));\n }\n\n /** Whether the status is 2xx, as `Response.ok`. */\n get ok() {\n return this.status >= 200 && this.status < 300;\n }\n\n /**\n * The `Response` this answers, given what the request context accumulated.\n *\n * `contextHeaders` is the request context's own `Headers` and is written\n * into, as the plain-return path always did; the dispatcher is done with it\n * once the response is built.\n *\n * @internal Called by the api dispatcher.\n */\n toResponse(contextHeaders: Headers, cookies: Iterable<string>): Response {\n const headers = contextHeaders;\n const body = this.serialize(headers);\n\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie);\n }\n\n // Built with forEach rather than spread: the browser tsconfig's lib set\n // has DOM but not DOM.Iterable, so `Headers` has no [Symbol.iterator].\n this.headers.forEach((value, key) => {\n if (key.toLowerCase() !== \"set-cookie\") {\n headers.set(key, value);\n }\n });\n for (const cookie of this.headers.getSetCookie()) {\n headers.append(\"Set-Cookie\", cookie);\n }\n\n if (this.status >= 400 && !this.headers.has(\"Cache-Control\")) {\n headers.set(\"Cache-Control\", \"no-store\");\n }\n\n return new Response(body, { status: this.status, headers });\n }\n\n private serialize(headers: Headers): BodyInit | null {\n switch (this.kind) {\n case \"json\":\n headers.set(\"Content-Type\", \"application/json\");\n return JSON.stringify(this.body) ?? null;\n case \"text\":\n // An `options.headers` Content-Type (`text/css`) is applied after\n // this, and wins, as it does for `.json()`.\n headers.set(\"Content-Type\", \"text/plain; charset=utf-8\");\n return this.body as string;\n case \"empty\":\n // A JSON route's middleware may have put a Content-Type on the\n // context; a response with no body has none.\n headers.delete(\"Content-Type\");\n return null;\n }\n }\n}\n\n/**\n * Checked when the response is made rather than when it is sent, so the stack\n * points at the handler. `new Response` would throw for a status outside\n * 200–599 anyway, and a 204, 205 or 304 cannot carry the body `.json()` and\n * `.text()` have.\n */\nfunction assertStatus(status: number, factory: \"json\" | \"text\") {\n if (!Number.isInteger(status) || status < 200 || status > 599) {\n throw new RangeError(\n `HttpResponse.${factory}: status must be an integer from 200 to 599, got ${status}.`,\n );\n }\n if (status === 204 || status === 205 || status === 304) {\n throw new RangeError(\n `HttpResponse.${factory}: a ${status} response has no body.${status === 204 ? \" Use HttpResponse.noContent().\" : \"\"}`,\n );\n }\n}\n\nexport function isHttpResponse(value: unknown): value is HttpResponse<unknown> {\n return typeof value === \"object\" && value !== null && (value as any)[HTTP_RESPONSE] === true;\n}\n\n/**\n * `HttpResponse.error(status, body)`: a typed error response. See\n * `HttpResponse.error`.\n */\nexport function httpError<const E, S extends number>(\n status: S,\n body: E,\n options: Omit<HttpResponseOptions, \"status\"> = {},\n): HttpResponse<{ error: E }, S> {\n return HttpResponse.error(status, body, options);\n}\n\ntype Digit = \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\";\n\n/**\n * Whether `S` is known to be 400 or more: a literal status, or a union of\n * them, every one of which is. `number`, and a union with a 2xx in it, are\n * not, so a status picked at run time stays in the data as it always was.\n */\ntype IsErrorStatus<S> = [S] extends [never]\n ? false\n : [`${S & number}`] extends [`4${Digit}${Digit}` | `5${Digit}${Digit}`]\n ? true\n : false;\n\n// One member of a handler's resolved output, as the client's data: an\n// `HttpResponse` is its body, unless its status is an error one; anything else\n// is itself.\ntype SuccessMember<T> =\n T extends HttpResponse<infer Data, infer S>\n ? IsErrorStatus<S> extends true\n ? never\n : Data\n : T;\n\n/**\n * A raw `Response` in a union with typed returns is dropped: the client never\n * receives a `Response` object, and it was the success type `if (r instanceof\n * Response)` had to be written against. A route that only ever returns one (a\n * file, a stream) keeps it, as before.\n */\ntype SuccessData<T> = [Exclude<SuccessMember<T>, Response>] extends [never]\n ? SuccessMember<T>\n : Exclude<SuccessMember<T>, Response>;\n\n/**\n * What a handler returning `Output` answers the client with on success:\n * `Output` itself, with every `HttpResponse<T>` in it — under a `Promise` or\n * not, alone or in a union with plain returns — replaced by its `T`.\n *\n * Left out: an `HttpResponse` whose status is a literal 400 or more\n * (`HttpResponse.error`, `httpError`, `HttpResponse.json(x, { status: 409 })`),\n * which `ResponseError` collects instead, and a raw `Response` in a union with\n * anything else. `any` stays `any`.\n */\nexport type ResponseData<Output> = 0 extends 1 & Output\n ? Output\n : // Not distributive: `SuccessData` has to see the whole union to know\n // whether a raw `Response` is alone in it.\n [Output] extends [Promise<infer Resolved>]\n ? Promise<SuccessData<Resolved>>\n : [Extract<Output, Promise<any>>] extends [never]\n ? SuccessData<Output>\n : // A sync handler returning a promise on one branch: member by member.\n Output extends Promise<infer Resolved>\n ? Promise<SuccessData<Resolved>>\n : SuccessData<Output>;\n\n/**\n * The value the client's `onError` receives for an error body `E` answered\n * with status `S`, as `mutationErrorFromBody` builds it: `status` is added\n * unless `E` has one, an object with a `message` and no `kind` is given the\n * kind its status stands for, and a string (or nothing) becomes a refusal.\n */\nexport type ClientHttpError<E, S extends number = number> = E extends string | null | undefined\n ? Refusal\n : E extends object\n ? E extends { kind: string }\n ? WithStatus<E, S>\n : E extends { message: string }\n ? WithStatus<E, S> & { kind: Refusal[\"kind\"] }\n : WithStatus<E, S>\n : E;\n\ntype WithStatus<E, S extends number> = \"status\" extends keyof E ? E : E & { status: S };\n\n// The error body the client sees for one `HttpResponse`: the `error` field when\n// there is one, as gemi's own errors carry it, otherwise the body.\ntype ErrorMember<T> =\n T extends HttpResponse<infer Data, infer S>\n ? IsErrorStatus<S> extends true\n ? Data extends { error: infer E }\n ? ClientHttpError<E, S>\n : ClientHttpError<Data, S>\n : never\n : never;\n\n/**\n * The typed errors a handler returning `Output` can answer: every\n * `HttpResponse` in it whose status is a literal 400 or more, as the client's\n * `onError` receives it (see `ClientHttpError`). `never` when there are none,\n * and for `any`.\n */\nexport type ResponseError<Output> = 0 extends 1 & Output ? never : ErrorMember<Awaited<Output>>;\n",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"import { SafeFetchError } from \"../../http/safeFetch/errors\";\nimport {\n safeFetch,\n type SafeFetchOptions,\n} from \"../../http/safeFetch/safeFetch\";\n\n/**\n * Why a source image couldn't be used, with the status the resize route\n * answers. The message is safe to send back: it never contains the URL.\n */\nexport class ImageSourceError extends Error {\n constructor(\n readonly status: number,\n message: string,\n options?: { cause?: unknown },\n ) {\n super(message, options);\n this.name = \"ImageSourceError\";\n }\n}\n\nexport interface FetchSourceImageOptions {\n /** The origins that mean \"this app\": the request's, and `HOST_NAME`/`APP_URL`'s. */\n ownOrigins: readonly string[];\n /** Where the app's own images are fetched from, e.g. `http://localhost:5173`. */\n localOrigin: string;\n /** Other hosts images may come from (`safeFetch`'s `allow` notation). Empty: none. */\n allowedHosts: readonly string[];\n maxSize: number;\n /** The whole fetch, every redirect and the body, in ms. */\n timeout: number;\n maxRedirects?: number;\n /** Tests only: `resolve`, `allowPrivate` and `ports` for the allowed hosts. */\n external?: Pick<SafeFetchOptions, \"resolve\" | \"allowPrivate\" | \"ports\">;\n}\n\nconst REDIRECTS = new Set([301, 302, 303, 307, 308]);\n// Its own resize route fetching itself would recurse.\nconst RESIZE_PATH = \"/api/__gemi__/services/image/\";\n\n/**\n * Fetches the source image of the resize route. Only the app's own images\n * (a path, or a URL on one of `ownOrigins`, read from `localOrigin`) and\n * images on `allowedHosts` (through `safeFetch`, so never a private address)\n * are fetched. Every redirect hop is checked by the same rules. The answer\n * must be `image/*` and at most `maxSize` bytes.\n */\nexport async function fetchSourceImage(\n raw: string,\n options: FetchSourceImageOptions,\n): Promise<{ bytes: Buffer; cacheControl: string | null }> {\n const maxRedirects = options.maxRedirects ?? 5;\n const signal = AbortSignal.timeout(options.timeout);\n const base = options.ownOrigins[0] ?? options.localOrigin;\n\n let url = parseSource(raw, base);\n try {\n for (let hop = 0; ; hop++) {\n const response = await fetchHop(url, options, signal);\n const location = response.headers.get(\"location\");\n if (REDIRECTS.has(response.status) && location) {\n await response.body?.cancel().catch(() => {});\n if (hop >= maxRedirects) {\n throw new ImageSourceError(502, \"The image redirects too many times\");\n }\n url = parseSource(location, url.href);\n continue;\n }\n if (!response.ok) {\n await response.body?.cancel().catch(() => {});\n throw new ImageSourceError(404, \"Image not found\");\n }\n const type = response.headers\n .get(\"content-type\")\n ?.split(\";\")[0]\n .trim()\n .toLowerCase();\n if (!type?.startsWith(\"image/\")) {\n await response.body?.cancel().catch(() => {});\n throw new ImageSourceError(415, \"The source is not an image\");\n }\n return {\n bytes: Buffer.from(await response.arrayBuffer()),\n cacheControl: response.headers.get(\"cache-control\"),\n };\n }\n } catch (error) {\n // A malformed `allowedHosts` entry is the app's mistake: let it surface.\n if (error instanceof TypeError && error.message.startsWith(\"safeFetch:\")) {\n throw error;\n }\n throw toSourceError(error, signal);\n }\n}\n\nfunction parseSource(text: string, base: string) {\n let url: URL;\n try {\n url = new URL(text, base);\n } catch {\n throw new ImageSourceError(400, \"The url parameter is not a URL\");\n }\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new ImageSourceError(400, \"Only http(s) images can be resized\");\n }\n return url;\n}\n\nasync function fetchHop(\n url: URL,\n options: FetchSourceImageOptions,\n signal: AbortSignal,\n) {\n const common = {\n method: \"GET\",\n redirect: \"manual\",\n signal,\n timeout: options.timeout,\n maxSize: options.maxSize,\n headers: { accept: \"image/*\" },\n } as const;\n\n let target = url;\n if (options.ownOrigins.includes(url.origin)) {\n if (url.pathname.startsWith(RESIZE_PATH)) {\n throw new ImageSourceError(403, \"This image source is not allowed\");\n }\n // A path starting with `//` or `/\\` (also percent-encoded) is\n // protocol-relative: resolved against `localOrigin` it names another host.\n if (isProtocolRelative(url.pathname)) {\n throw new ImageSourceError(403, \"This image source is not allowed\");\n }\n // Only the path and query come from the request; the host is ours.\n const localOrigin = new URL(options.localOrigin).origin;\n const local = new URL(`${url.pathname}${url.search}`, localOrigin);\n if (local.origin === localOrigin) {\n return safeFetch(local, { ...common, allowPrivate: true, ports: \"any\" });\n }\n // Anything that isn't the app itself is just another host.\n target = local;\n }\n\n if (options.allowedHosts.length === 0) {\n throw new ImageSourceError(403, \"This image source is not allowed\");\n }\n return safeFetch(target, {\n ...options.external,\n ...common,\n allow: options.allowedHosts,\n });\n}\n\nfunction isProtocolRelative(pathname: string) {\n let path = pathname;\n // Decode until stable, so `%252F%252F` can't slip through either.\n for (let i = 0; i < 5; i++) {\n if (/^[/\\\\][/\\\\]/.test(path)) return true;\n let decoded: string;\n try {\n decoded = decodeURIComponent(path);\n } catch {\n return true;\n }\n if (decoded === path) return false;\n path = decoded;\n }\n return true;\n}\n\nfunction toSourceError(error: unknown, signal: AbortSignal) {\n if (error instanceof ImageSourceError) return error;\n if (signal.aborted) {\n return new ImageSourceError(504, \"The image took too long to load\", {\n cause: error,\n });\n }\n if (error instanceof SafeFetchError) {\n switch (error.code) {\n case \"blocked-host\":\n case \"blocked-address\":\n case \"invalid-url\":\n return new ImageSourceError(403, \"This image source is not allowed\", {\n cause: error,\n });\n case \"too-large\":\n return new ImageSourceError(413, \"The image is too large\", {\n cause: error,\n });\n case \"timeout\":\n return new ImageSourceError(504, \"The image took too long to load\", {\n cause: error,\n });\n }\n }\n return new ImageSourceError(502, \"The image could not be loaded\", {\n cause: error,\n });\n}\n",
|
|
78
78
|
"import { app } from \"../../foundation/app\";\nimport { ApiRouter, HttpRequest } from \"../../http\";\nimport { configuredAppOrigin } from \"../../utils/appOrigin\";\nimport { imageConfigDefaults, type ImageConfig } from \"./config\";\nimport { fetchSourceImage, ImageSourceError } from \"./fetchSourceImage\";\nimport type { ImageOptimizationDriver } from \"./drivers/ImageOptimizationDriver\";\nimport type { ResizeParameters } from \"./drivers/types\";\n\nexport class ImageOptimizationRouter extends ApiRouter {\n routes = {\n \"/resize\": this.file(async () => {\n const req = new HttpRequest();\n const url = new URL(req.rawRequest.url);\n const rawImageUrl = url.searchParams.get(\"url\");\n const width = Number(url.searchParams.get(\"w\"));\n const height = Number(url.searchParams.get(\"h\"));\n const fit = url.searchParams.get(\"fit\") ?? \"cover\";\n const quality = Number(url.searchParams.get(\"q\"));\n\n if (!rawImageUrl) {\n return errorResponse(400, \"url query parameter is required\");\n }\n\n const manager = app(ImageManager);\n // Both schemes: behind a TLS proxy the request may arrive as http.\n const ownOrigins = [url.origin, `${url.protocol === \"https:\" ? \"http\" : \"https\"}://${url.host}`];\n const configured = configuredAppOrigin();\n if (configured && URL.canParse(configured)) {\n ownOrigins.push(new URL(configured).origin);\n }\n\n let source: Awaited<ReturnType<typeof fetchSourceImage>>;\n try {\n source = await fetchSourceImage(rawImageUrl, {\n ownOrigins,\n localOrigin: `http://localhost:${process.env.PORT || 5173}`,\n allowedHosts: manager.allowedHosts,\n maxSize: manager.maxSize,\n timeout: manager.timeout,\n });\n } catch (error) {\n if (error instanceof ImageSourceError) {\n return errorResponse(error.status, error.message);\n }\n throw error;\n }\n\n const buffer = await manager.resize(source.bytes, {\n height,\n width,\n fit: fit as any,\n quality,\n });\n\n const headers = new Headers({\n \"Content-Type\": \"image/webp\",\n \"Content-Length\": `${buffer.byteLength}`,\n });\n if (source.cacheControl) headers.set(\"Cache-Control\", source.cacheControl);\n return new Response(new Uint8Array(buffer), { headers });\n }),\n };\n}\n\nfunction errorResponse(status: number, error: string) {\n return Response.json({ error }, { status });\n}\n\nexport class ImageManager {\n static token = \"image\";\n\n readonly driver: ImageOptimizationDriver;\n readonly allowedHosts: readonly string[];\n readonly maxSize: number;\n readonly timeout: number;\n\n constructor(config: ImageConfig = {}) {\n const defaults = imageConfigDefaults();\n this.driver = config.driver ?? defaults.driver;\n this.allowedHosts = config.allowedHosts ?? defaults.allowedHosts;\n this.maxSize = config.maxSize ?? defaults.maxSize;\n this.timeout = config.timeout ?? defaults.timeout;\n }\n\n resize(buffer: Buffer, params: ResizeParameters) {\n return this.driver.resize(buffer, params);\n }\n}\n",
|
|
79
79
|
"import { ApiRouter } from \"../../http\";\nimport { app } from \"../../foundation/app\";\nimport { LogManager } from \"./LogManager\";\n\nexport class LoggingRouter extends ApiRouter {\n middlewares = [\"cache:private,0\"];\n routes = {\n \"/live\": this.get(async () => {\n const file = Bun.file(app(LogManager).currentLogFilePath);\n return new Response(await file.text(), {\n headers: {\n \"Content-Type\": \"text/plain\",\n },\n });\n }),\n };\n}\n",
|
|
80
|
-
"import type { JSX } from \"react\";\nimport type { HttpRequest } from \"../../http/HttpRequest\";\nimport type { DefaultViewMeta } from \"../../http/Metadata\";\nimport type { ApiRouter } from \"../../http/ApiRouter\";\nimport type { ChannelRouterClass } from \"../../http/ChannelRouter\";\nimport type { McpRouter } from \"../../http/McpRouter\";\nimport type { McpRemoteFileOptions } from \"../mcp/McpRegistry\";\nimport type { McpRemoteHttpConfig } from \"../mcp/http/McpHttpServer\";\nimport type { StaticViewOptions, ViewRouter } from \"../../http/ViewRouter\";\nimport type { StreamSummary } from \"./ServerQueryStore\";\n\n// Config key: `route.api`. Derived from `ApiRouterServiceProvider`.\nexport interface ApiRouteConfig {\n // `typeof ApiRouter`, not `new () => ApiRouter`: route flattening identifies\n // nested routers by the static `__brand`, which a bare construct signature\n // does not carry.\n rootRouter: typeof ApiRouter;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n}\n\n/** See `ViewRouteConfig.localeRouting`. */\nexport type LocaleRouting = \"prefix\" | \"off\";\n\n/** See `ViewRouteConfig.theme`. */\nexport interface ThemeConfig {\n /**\n * The theme for a visitor who has not picked one. Unset (the default), gemi\n * leaves `<html>` alone until they do, so an app's own class stays.\n */\n default?: \"light\" | \"dark\" | \"system\";\n /** The cookie the visitor's choice is stored in. Defaults to `\"theme\"`. */\n cookie?: string;\n}\n\n// Config key: `route.view`. Derived from `ViewRouterServiceProvider`.\nexport interface ViewRouteConfig {\n root: (props: any) => JSX.Element;\n rootRouter: new () => ViewRouter;\n\n /**\n * Whether a client-side navigation may skip the handlers of the layout\n * segments the client already has mounted, rather than re-running the whole\n * chain for every route below a layout.\n *\n * Set to `false` to run every handler on every navigation. Prefer\n * `alwaysRun()` on the one layout that needs it — this switch is for when an\n * app cannot audit them all at once.\n */\n partialRendering?: boolean;\n\n /**\n * How these views take part in locale routing when `translation`\n * configures `supportedLocales`. Set it on a `route.domains` group's `view`\n * to opt that host out (e.g. user-published sites that are not the app's\n * own UI), or with the `\"no-locale\"` middleware directive on one router or\n * route.\n *\n * - `\"prefix\"` (default): URLs carry the locale (`/tr-TR/about`), and a\n * visitor whose cookie or `Accept-Language` names another locale is\n * redirected to it.\n * - `\"off\"`: URLs never carry a locale and nothing redirects. A first\n * segment like `/tr-TR` is an ordinary path. Nothing is detected from the\n * cookie or `Accept-Language`, and no `i18n-locale` cookie is set. The\n * request renders in `translation.defaultLocale` unless `detectLocale`\n * or middleware (`Lang.setLocale(locale, { cookie: false })`) picks one.\n */\n localeRouting?: LocaleRouting;\n\n /**\n * The locale of a request to these views when they are out of locale\n * routing (`localeRouting: \"off\"`, required), e.g. from `?locale=` or\n * `Accept-Language` (#1092). It runs for every document and `.json`\n * request of these views before their middleware, matched or not, so the\n * not-found page (`notFound`, `onNotFound`) and `meta` see it too.\n *\n * What it returns is matched against `translation.supportedLocales` like\n * a URL's locale (`resolveLocale`: exact, then same language, so `de`\n * names `de-DE`); `null` or no match leaves `translation.defaultLocale`.\n * It sets no `i18n-locale` cookie, so a static page stays one body per\n * URL. Middleware may still override it with\n * `Lang.setLocale(locale, { cookie: false })`. A `route.domains` group's\n * `view` inherits it or sets its own.\n */\n detectLocale?: (\n req: HttpRequest,\n locales: { supportedLocales: string[]; defaultLocale: string },\n ) => string | null | undefined | Promise<string | null | undefined>;\n\n /**\n * The theme script gemi renders before the body and `useTheme()`.\n *\n * The visitor's choice is stored in a cookie (`useTheme().setTheme`), which\n * the inline script applies before first paint (the `light`/`dark` class\n * and `color-scheme` on `<html>`) and the server reads, so `useTheme()`\n * renders the same theme on the server as in the browser. A middleware or\n * handler can set that cookie (e.g. from the account) to choose for them.\n *\n * gemi only touches the `light`/`dark` classes when it has a theme to apply\n * (a stored choice or `default`); otherwise `<html>` is left as the app\n * rendered it. `false` drops the script for these views altogether, for an\n * app that runs its own theme or a host group (`route.domains`) whose pages\n * keep their own look; the `\"no-theme\"` middleware directive does the same\n * for one router or route.\n */\n theme?: ThemeConfig | false;\n\n /**\n * Runs when a request renders the app's `404` view instead of a route: a\n * path no route matches, a missing record (`RecordNotFoundError`,\n * `FileNotFoundError`), a refusal (`status` 403 or 404) or a feature gate.\n * It runs where a route's handler would, after middleware, for the document\n * and for a client navigation, so this is where the `404` page gets its\n * title and other metadata (`Meta.title(...)`), which otherwise stay\n * gemi's defaults. A `route.domains` group's `view` can set its own.\n *\n * With `notFound` set, what it returns is the props of `notFound.view` on\n * the document (e.g. the tenant's name and logo for a branded page). It is\n * not used otherwise: the app's hydrated `404` view takes no props.\n */\n onNotFound?: (\n req: HttpRequest,\n info: { status: number },\n ) => void | Record<string, unknown> | Promise<void | Record<string, unknown>>;\n\n /**\n * These views' own not-found page, served as a static document (#828),\n * instead of the app's hydrated `404` view. Meant for a `route.domains`\n * group whose pages are `.static()` with their own `layout`: a missing\n * page answers in the same spirit, with no app bundle.\n *\n * It answers every document request that would render the `404` view: a\n * path no route matches, a handler or middleware that throws\n * `NotFoundError`, `FileNotFoundError` or `RecordNotFoundError`, a refusal\n * (403, under its own status) and a feature gate. The view's props are what\n * `onNotFound` returns.\n *\n * `static` takes the options of `.static()`; `layout` is the document\n * layout, and `cacheControl` applies to an unmatched path only (a refusal\n * or a missing record is sent `no-store`, a gated route none). A\n * client-side navigation from a hydrated page still lands on the app's\n * `404` view: the client router has only that one.\n */\n notFound?: { view: string; static: StaticViewOptions };\n\n /**\n * The app-wide default title, description and Open Graph tags (#1042), for\n * a view whose handlers set none: a view with no handler, one whose handler\n * never calls `Meta.title`, and the `404` view when `onNotFound` sets none.\n * Without it such a page is titled `\"Gemi App\"`.\n *\n * Field by field: a handler's `Meta.title` keeps its title and the page\n * still gets this `description` and `openGraph`. A function runs per\n * request after the handlers (and `onNotFound`), so it can read the\n * request and the locale, e.g. for a translated default. A `route.domains`\n * group's `view` inherits it or sets its own.\n */\n meta?: DefaultViewMeta | ((req: HttpRequest) => DefaultViewMeta | Promise<DefaultViewMeta>);\n\n /**\n * Whether the files the build copied out of `public/` (`/robots.txt`,\n * `/favicon.ico`, ...) are served on these views' hosts (#1015). `false`\n * hands those paths to these views' routes instead, e.g. a `route.domains`\n * group whose `/robots.txt` is a route of its own while the root keeps the\n * static file. `/.well-known/*` and the build's `/assets/*` are served\n * either way. A group inherits the root's value or sets its own.\n * Default: `true`.\n */\n publicFiles?: boolean;\n\n /**\n * Whether these views' routes may answer under `/assets` (#1015). The build\n * output is still served first, so the pages' own chunks, islands and\n * fonts load; a path under `/assets` the build has no file for reaches the\n * routes instead of gemi's `404`. A missing `/assets/*.js` (or `.mjs`)\n * chunk keeps gemi's reload stub, so a route there is never reached. With\n * it the boot no longer refuses routes under `/assets`. Meant for a\n * `route.domains` group with a URL space of its own there (e.g. legacy\n * media URLs). A group inherits the root's value or sets its own.\n * Default: `false`.\n */\n assetRoutes?: boolean;\n\n /**\n * Whether browsers and Google Search may translate these views (#1087).\n * `<Head />` renders `<meta name=\"google\" content=\"notranslate\">` unless\n * this is `true`. Meant for a `route.domains` group of public content (a\n * storefront, published sites), which inherits the root's value or sets its\n * own. A handler's `Meta.translate(allow)` wins over it. Default: `false`.\n */\n translate?: boolean;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n\n /**\n * Fires when the response body actually closes — after the last streamed\n * chunk, not when the handler returns. Under streaming those are very\n * different moments: the handler returns at time-to-shell while queries keep\n * streaming for as long as the slowest one takes, so an APM span ended in the\n * handler under-reports every streamed request. End it here instead;\n * `summary` carries `shellAt`/`settledAt`, whether the stream deadline\n * aborted rendering, and per-query timings. Non-streamed responses (`.json`\n * payloads, `no-stream` routes, bot requests) report `shellAt === settledAt`.\n *\n * Although the body closes long after the handler returned, the dispatcher\n * re-enters the request's scopes around this hook — facades and `req.ctx()`\n * work here exactly as they do in the other lifecycle hooks.\n */\n onStreamComplete?: (\n req: HttpRequest,\n summary: StreamSummary,\n ) => void | Promise<void>;\n}\n\n// Config key: `route.mcp`. Optional: an app that exposes nothing to a model\n// declares nothing.\nexport interface McpRouteConfig {\n // The app's `McpRouter`, normally `app/http/routes/mcp.ts`. Resolved against\n // the api routes at boot, so a stale reference fails the boot.\n router: new () => McpRouter<any>;\n /** Remote MCP callers (#762). */\n remote?: McpRemoteConfig;\n}\n\n/**\n * The MCP endpoint remote clients connect to (#762). Off unless `enabled`.\n * See `McpRemoteHttpConfig`.\n */\nexport interface McpRemoteConfig extends McpRemoteHttpConfig {\n /**\n * How a remote caller's file arguments are read: the largest file, and\n * whether an `https` URL may be fetched instead of base64 bytes (off by\n * default). See `McpRemoteFileOptions`.\n */\n files?: McpRemoteFileOptions;\n}\n\n// The routers one host group serves. Either may be left out, in which case the\n// group serves the root `api` / `view` config for that side — the usual case\n// for tenant subdomains, which run the same app with different data.\nexport interface DomainGroupRouters {\n api?: Partial<ApiRouteConfig> & Pick<ApiRouteConfig, \"rootRouter\">;\n view?: Partial<ViewRouteConfig> & Pick<ViewRouteConfig, \"rootRouter\">;\n}\n\nexport interface DomainGroupConfig extends DomainGroupRouters {\n /**\n * The label(s) in front of `domains.root`. A fixed subdomain (`\"admin\"`,\n * `\"eu.admin\"`) matches exactly; a param subdomain (`\":tenant\"`) matches any\n * single label and hands it to the request as `req.domain.params.tenant`.\n * Fixed subdomains are tried before param ones.\n */\n subdomain: string;\n\n /**\n * For a param subdomain: whether the value names something that exists. A\n * `false` answers the request with a 404 before any route runs, and keeps the\n * ask endpoint from approving a certificate for it.\n *\n * `req` is the request being routed — except on the ask path, where it is\n * the proxy's own request and says nothing about the host being judged. Read\n * `params`, not `req`'s host, headers or cookies, or a certificate decision\n * and a routing decision can disagree.\n */\n exists?: (\n params: Record<string, string>,\n req: Request,\n ) => boolean | Promise<boolean>;\n}\n\nexport interface CustomDomainConfig {\n /**\n * The `subdomain` of the group a resolved custom host is served as — so\n * `app.acme.com` runs exactly what `acme.example.com` does.\n */\n group: string;\n\n /**\n * Maps a host outside `domains.root` to the params of `group`, or `null`\n * when the host is not one the app knows. Usually a database lookup;\n * answers are cached for `cacheTtlMs`.\n */\n resolve: (\n host: string,\n ) => Record<string, string> | null | Promise<Record<string, string> | null>;\n\n /** How long a `resolve` answer, hit or miss, is reused. Defaults to 60s; `0` disables. */\n cacheTtlMs?: number;\n\n /**\n * Serves every host `resolve` returned `null` for, instead of a 404. The ask\n * endpoint never approves a host on the strength of this group alone.\n */\n fallback?: DomainGroupRouters;\n}\n\n/**\n * `route.domains.trustProxy` in its long form: which header carries the host\n * the client addressed, which one its IP address, and what proves the proxy\n * sent them.\n */\nexport interface TrustProxyConfig {\n /**\n * The header the host is read from — the one the proxy in front writes the\n * client's host into. Defaults to `\"x-forwarded-host\"`.\n *\n * Name one the platform in front does not own. Behind a CDN that terminates\n * the customer's TLS and then a host like Railway, Render, Fly or Heroku,\n * the host overwrites `X-Forwarded-Host` with the `Host` it was reached by,\n * which the CDN had to rewrite to the app's own domain; the customer's host\n * only survives in a header the CDN adds, e.g. `X-Original-Host: ${http.host}`.\n */\n hostHeader?: string;\n\n /**\n * A header the proxy writes the client's IP address into, e.g.\n * `\"x-client-ip\"` set from Cloudflare's `CF-Connecting-IP`. On a request\n * that carries `secret`, its first entry replaces the address\n * `GEMI_TRUST_PROXY` settled on: gemi writes it into `X-Forwarded-For` (and\n * drops `X-Real-IP`) before the global middleware runs, so `clientIp(req)`\n * and every rate limit keyed on it see the visitor rather than the proxy.\n *\n * For a proxy whose request to the app is a new one (a Worker's `fetch()`),\n * so the client's address is not in `X-Forwarded-For` at all. Requires\n * `secret`: without proof the proxy sent it, any client that reaches the\n * app directly could pick its own address. A missing header, or one that\n * is not an IPv4/IPv6 address, changes nothing.\n */\n clientIpHeader?: string;\n\n /**\n * Trusts `hostHeader` and `clientIpHeader` only on a request that carries this header with this\n * value — a shared secret the proxy adds, so a client that reaches the app\n * directly, around the proxy, cannot name its own host. Without it the\n * request is routed by its own host, exactly as with `trustProxy` left out.\n *\n * `value` must be at least 16 characters and is compared in constant time.\n * The header is withheld from what a `proxy()` route forwards upstream.\n */\n secret?: { header: string; value: string };\n}\n\n/**\n * One entry of `route.domains.trustProxy` in its list form: a proxy that\n * proves itself with a secret of its own. Unlike the single-object form,\n * `secret` is required, and `hostHeader` has no default — an entry without\n * one only names the client's address and never moves the host.\n */\nexport interface TrustedProxyConfig {\n /**\n * The header this proxy writes the client's host into. Left out, a request\n * this entry claims is routed by its own `Host`.\n */\n hostHeader?: string;\n /** The header this proxy writes the client's IP address into. See {@link TrustProxyConfig.clientIpHeader}. */\n clientIpHeader?: string;\n /**\n * What proves this proxy sent the request: a header and the value it must\n * carry, at least 16 characters, compared in constant time and withheld\n * from `proxy()` upstreams. Each entry needs a secret value of its own.\n */\n secret: { header: string; value: string };\n}\n\n// Config key: `route.domains`. Optional: without it every host is served by\n// the root routers, exactly as before.\nexport interface DomainsConfig {\n /**\n * The apex the subdomains hang off, e.g. `\"example.com\"` — `\"localhost\"` in\n * development, where `acme.localhost` resolves to loopback. Compared against\n * the request's hostname, so the port does not matter.\n */\n root: string;\n\n /**\n * Read the host from a header the proxy in front sets, rather than the\n * request URL. Only set it behind a proxy that overwrites that header, or a\n * client picks its own host.\n *\n * `true` reads `X-Forwarded-Host`. An object names the header, can make\n * trusting it depend on a shared secret the proxy sends, and can name a\n * header that carries the client's IP address — see {@link TrustProxyConfig}.\n *\n * A list trusts several proxies, each proven by its own secret: on each\n * request the first entry whose secret header is present and matches\n * decides both the host and the client's address, and the others are not\n * consulted. See {@link TrustedProxyConfig}.\n *\n * The scheme is read from `X-Forwarded-Proto` whether or not this is set.\n */\n trustProxy?: boolean | TrustProxyConfig | TrustedProxyConfig[];\n\n groups?: DomainGroupConfig[];\n\n custom?: CustomDomainConfig;\n\n /**\n * Extra hosts the dev server (`gemi dev`) answers, besides the root and its\n * subdomains, which it always answers, and `localhost`, `*.localhost` and\n * IP addresses, which Vite always admits. Every other host gets a 403 from\n * Vite's host check, the guard against DNS rebinding. `gemi start` ignores it.\n *\n * List the custom domains you point at `127.0.0.1` in `/etc/hosts` to try\n * them locally, e.g. `[\"app.acme.test\"]`. Vite's syntax: a leading `.`\n * admits the domain and every subdomain (`\".acme.test\"`).\n *\n * `true` turns the check off and the dev server answers any host, which lets\n * any web page you visit read the app's source through DNS rebinding. Avoid\n * it; gemi warns at boot when it is set.\n */\n devHosts?: readonly string[] | true;\n\n /**\n * Turns on the on-demand TLS ask endpoint, which a proxy calls to decide\n * whether to issue a certificate for a host.\n *\n * Left out, the path is not served at all — it answers the same 404 as any\n * other unrouted path. That is the default because the answer is exactly\n * \"is this a tenant of yours\", asked without a session: open to the\n * internet it enumerates tenant slugs and customer domains, and runs an\n * uncached `exists` or `resolve` per probe.\n *\n * `secret` must be at least 16 characters and is compared in constant time.\n * The proxy passes it as `?secret=`; anything else falls through unanswered,\n * so the endpoint cannot be probed for.\n */\n ask?: { secret: string };\n}\n\n// Config key: `route`. Covers both route dispatchers and the MCP registry.\nexport interface RouteConfig {\n api: ApiRouteConfig;\n view: ViewRouteConfig;\n mcp?: McpRouteConfig;\n domains?: DomainsConfig;\n /**\n * The app's `ChannelRouter`, normally `app/http/routes/channels.ts`: the\n * broadcast channels clients may subscribe to. Optional: without it every\n * subscription is refused, and emits still work.\n */\n channels?: ChannelRouterClass;\n}\n\nexport function defineRouteConfig(config: RouteConfig): RouteConfig {\n return config;\n}\n\n// `rootRouter` / `root` have no defaults — the app must supply them.\nexport function apiRouteConfigDefaults(): Omit<\n Required<ApiRouteConfig>,\n \"rootRouter\"\n> {\n return {\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n };\n}\n\nexport function viewRouteConfigDefaults(): Omit<\n Required<ViewRouteConfig>,\n \"root\" | \"rootRouter\" | \"meta\" | \"notFound\" | \"translate\" | \"detectLocale\"\n> {\n return {\n partialRendering: true,\n localeRouting: \"prefix\",\n theme: {},\n publicFiles: true,\n assetRoutes: false,\n onNotFound: () => {},\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n onStreamComplete: () => {},\n };\n}\n",
|
|
80
|
+
"import type { JSX } from \"react\";\nimport type { HttpRequest } from \"../../http/HttpRequest\";\nimport type { DefaultViewMeta } from \"../../http/Metadata\";\nimport type { ApiRouter } from \"../../http/ApiRouter\";\nimport type { ChannelRouterClass } from \"../../http/ChannelRouter\";\nimport type { McpRouter } from \"../../http/McpRouter\";\nimport type { McpRemoteFileOptions } from \"../mcp/McpRegistry\";\nimport type { McpRemoteHttpConfig } from \"../mcp/http/McpHttpServer\";\nimport type { StaticViewOptions, ViewRouter } from \"../../http/ViewRouter\";\nimport type { StreamSummary } from \"./ServerQueryStore\";\n\n// Config key: `route.api`. Derived from `ApiRouterServiceProvider`.\nexport interface ApiRouteConfig {\n // `typeof ApiRouter`, not `new () => ApiRouter`: route flattening identifies\n // nested routers by the static `__brand`, which a bare construct signature\n // does not carry.\n rootRouter: typeof ApiRouter;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n}\n\n/** See `ViewRouteConfig.localeRouting`. */\nexport type LocaleRouting = \"prefix\" | \"off\";\n\n/** See `ViewRouteConfig.theme`. */\nexport interface ThemeConfig {\n /**\n * The theme for a visitor who has not picked one. Unset (the default), gemi\n * leaves `<html>` alone until they do, so an app's own class stays.\n */\n default?: \"light\" | \"dark\" | \"system\";\n /** The cookie the visitor's choice is stored in. Defaults to `\"theme\"`. */\n cookie?: string;\n}\n\n// Config key: `route.view`. Derived from `ViewRouterServiceProvider`.\nexport interface ViewRouteConfig {\n root: (props: any) => JSX.Element;\n rootRouter: new () => ViewRouter;\n\n /**\n * Whether a client-side navigation may skip the handlers of the layout\n * segments the client already has mounted, rather than re-running the whole\n * chain for every route below a layout.\n *\n * Set to `false` to run every handler on every navigation. Prefer\n * `alwaysRun()` on the one layout that needs it — this switch is for when an\n * app cannot audit them all at once.\n */\n partialRendering?: boolean;\n\n /**\n * How these views take part in locale routing when `translation`\n * configures `supportedLocales`. Set it on a `route.domains` group's `view`\n * to opt that host out (e.g. user-published sites that are not the app's\n * own UI), or with the `\"no-locale\"` middleware directive on one router or\n * route.\n *\n * - `\"prefix\"` (default): URLs carry the locale (`/tr-TR/about`), and a\n * visitor whose cookie or `Accept-Language` names another locale is\n * redirected to it.\n * - `\"off\"`: URLs never carry a locale and nothing redirects. A first\n * segment like `/tr-TR` is an ordinary path. Nothing is detected from the\n * cookie or `Accept-Language`, and no `i18n-locale` cookie is set. The\n * request renders in `translation.defaultLocale` unless `detectLocale`\n * or middleware (`Lang.setLocale(locale, { cookie: false })`) picks one.\n */\n localeRouting?: LocaleRouting;\n\n /**\n * The locale of a request to these views when they are out of locale\n * routing (`localeRouting: \"off\"`, required), e.g. from `?locale=` or\n * `Accept-Language` (#1092). It runs for every document and `.json`\n * request of these views before their middleware, matched or not, so the\n * not-found page (`notFound`, `onNotFound`) and `meta` see it too.\n *\n * What it returns is matched against `translation.supportedLocales` like\n * a URL's locale (`resolveLocale`: exact, then same language, so `de`\n * names `de-DE`); `null` or no match leaves `translation.defaultLocale`.\n * It sets no `i18n-locale` cookie, so a static page stays one body per\n * URL. Middleware may still override it with\n * `Lang.setLocale(locale, { cookie: false })`. A `route.domains` group's\n * `view` inherits it or sets its own.\n */\n detectLocale?: (\n req: HttpRequest,\n locales: { supportedLocales: string[]; defaultLocale: string },\n ) => string | null | undefined | Promise<string | null | undefined>;\n\n /**\n * The theme script gemi renders before the body and `useTheme()`.\n *\n * The visitor's choice is stored in a cookie (`useTheme().setTheme`), which\n * the inline script applies before first paint (the `light`/`dark` class\n * and `color-scheme` on `<html>`) and the server reads, so `useTheme()`\n * renders the same theme on the server as in the browser. A middleware or\n * handler can set that cookie (e.g. from the account) to choose for them.\n *\n * gemi only touches the `light`/`dark` classes when it has a theme to apply\n * (a stored choice or `default`); otherwise `<html>` is left as the app\n * rendered it. `false` drops the script for these views altogether, for an\n * app that runs its own theme or a host group (`route.domains`) whose pages\n * keep their own look; the `\"no-theme\"` middleware directive does the same\n * for one router or route.\n */\n theme?: ThemeConfig | false;\n\n /**\n * Runs when a request renders the app's `404` view instead of a route: a\n * path no route matches, a missing record (`RecordNotFoundError`,\n * `FileNotFoundError`), a refusal (`status` 403 or 404) or a feature gate.\n * It runs where a route's handler would, after middleware, for the document\n * and for a client navigation, so this is where the `404` page gets its\n * title and other metadata (`Meta.title(...)`), which otherwise stay\n * gemi's defaults. A `route.domains` group's `view` can set its own.\n *\n * With `notFound` set, what it returns is the props of `notFound.view` on\n * the document (e.g. the tenant's name and logo for a branded page). It is\n * not used otherwise: the app's hydrated `404` view takes no props.\n *\n * With `localeRouting: \"off\"`, the not-found page renders in the locale\n * current when the request ended (#1099), so `Lang.setLocale(locale,\n * { cookie: false })` here (or in a handler before it threw) sets it: its\n * `useDictionary`, its `lang` and the default `meta` follow it, matched\n * pages keep theirs. On locale-routed views the URL decides.\n */\n onNotFound?: (\n req: HttpRequest,\n info: { status: number },\n ) => void | Record<string, unknown> | Promise<void | Record<string, unknown>>;\n\n /**\n * These views' own not-found page, served as a static document (#828),\n * instead of the app's hydrated `404` view. Meant for a `route.domains`\n * group whose pages are `.static()` with their own `layout`: a missing\n * page answers in the same spirit, with no app bundle.\n *\n * It answers every document request that would render the `404` view: a\n * path no route matches, a handler or middleware that throws\n * `NotFoundError`, `FileNotFoundError` or `RecordNotFoundError`, a refusal\n * (403, under its own status) and a feature gate. The view's props are what\n * `onNotFound` returns.\n *\n * `static` takes the options of `.static()`; `layout` is the document\n * layout, and `cacheControl` applies to an unmatched path only (a refusal\n * or a missing record is sent `no-store`, a gated route none). A\n * client-side navigation from a hydrated page still lands on the app's\n * `404` view: the client router has only that one.\n */\n notFound?: { view: string; static: StaticViewOptions };\n\n /**\n * The app-wide default title, description and Open Graph tags (#1042), for\n * a view whose handlers set none: a view with no handler, one whose handler\n * never calls `Meta.title`, and the `404` view when `onNotFound` sets none.\n * Without it such a page is titled `\"Gemi App\"`.\n *\n * Field by field: a handler's `Meta.title` keeps its title and the page\n * still gets this `description` and `openGraph`. A function runs per\n * request after the handlers (and `onNotFound`), so it can read the\n * request and the locale, e.g. for a translated default. A `route.domains`\n * group's `view` inherits it or sets its own.\n */\n meta?: DefaultViewMeta | ((req: HttpRequest) => DefaultViewMeta | Promise<DefaultViewMeta>);\n\n /**\n * Whether the files the build copied out of `public/` (`/robots.txt`,\n * `/favicon.ico`, ...) are served on these views' hosts (#1015). `false`\n * hands those paths to these views' routes instead, e.g. a `route.domains`\n * group whose `/robots.txt` is a route of its own while the root keeps the\n * static file. `/.well-known/*` and the build's `/assets/*` are served\n * either way. A group inherits the root's value or sets its own.\n * Default: `true`.\n */\n publicFiles?: boolean;\n\n /**\n * Whether these views' routes may answer under `/assets` (#1015). The build\n * output is still served first, so the pages' own chunks, islands and\n * fonts load; a path under `/assets` the build has no file for reaches the\n * routes instead of gemi's `404`. A missing `/assets/*.js` (or `.mjs`)\n * chunk keeps gemi's reload stub, so a route there is never reached. With\n * it the boot no longer refuses routes under `/assets`. Meant for a\n * `route.domains` group with a URL space of its own there (e.g. legacy\n * media URLs). A group inherits the root's value or sets its own.\n * Default: `false`.\n */\n assetRoutes?: boolean;\n\n /**\n * Whether browsers and Google Search may translate these views (#1087).\n * `<Head />` renders `<meta name=\"google\" content=\"notranslate\">` unless\n * this is `true`. Meant for a `route.domains` group of public content (a\n * storefront, published sites), which inherits the root's value or sets its\n * own. A handler's `Meta.translate(allow)` wins over it. Default: `false`.\n */\n translate?: boolean;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n\n /**\n * Fires when the response body actually closes — after the last streamed\n * chunk, not when the handler returns. Under streaming those are very\n * different moments: the handler returns at time-to-shell while queries keep\n * streaming for as long as the slowest one takes, so an APM span ended in the\n * handler under-reports every streamed request. End it here instead;\n * `summary` carries `shellAt`/`settledAt`, whether the stream deadline\n * aborted rendering, and per-query timings. Non-streamed responses (`.json`\n * payloads, `no-stream` routes, bot requests) report `shellAt === settledAt`.\n *\n * Although the body closes long after the handler returned, the dispatcher\n * re-enters the request's scopes around this hook — facades and `req.ctx()`\n * work here exactly as they do in the other lifecycle hooks.\n */\n onStreamComplete?: (\n req: HttpRequest,\n summary: StreamSummary,\n ) => void | Promise<void>;\n}\n\n// Config key: `route.mcp`. Optional: an app that exposes nothing to a model\n// declares nothing.\nexport interface McpRouteConfig {\n // The app's `McpRouter`, normally `app/http/routes/mcp.ts`. Resolved against\n // the api routes at boot, so a stale reference fails the boot.\n router: new () => McpRouter<any>;\n /** Remote MCP callers (#762). */\n remote?: McpRemoteConfig;\n}\n\n/**\n * The MCP endpoint remote clients connect to (#762). Off unless `enabled`.\n * See `McpRemoteHttpConfig`.\n */\nexport interface McpRemoteConfig extends McpRemoteHttpConfig {\n /**\n * How a remote caller's file arguments are read: the largest file, and\n * whether an `https` URL may be fetched instead of base64 bytes (off by\n * default). See `McpRemoteFileOptions`.\n */\n files?: McpRemoteFileOptions;\n}\n\n// The routers one host group serves. Either may be left out, in which case the\n// group serves the root `api` / `view` config for that side — the usual case\n// for tenant subdomains, which run the same app with different data.\nexport interface DomainGroupRouters {\n api?: Partial<ApiRouteConfig> & Pick<ApiRouteConfig, \"rootRouter\">;\n view?: Partial<ViewRouteConfig> & Pick<ViewRouteConfig, \"rootRouter\">;\n}\n\nexport interface DomainGroupConfig extends DomainGroupRouters {\n /**\n * The label(s) in front of `domains.root`. A fixed subdomain (`\"admin\"`,\n * `\"eu.admin\"`) matches exactly; a param subdomain (`\":tenant\"`) matches any\n * single label and hands it to the request as `req.domain.params.tenant`.\n * Fixed subdomains are tried before param ones.\n */\n subdomain: string;\n\n /**\n * For a param subdomain: whether the value names something that exists. A\n * `false` answers the request with a 404 before any route runs, and keeps the\n * ask endpoint from approving a certificate for it.\n *\n * `req` is the request being routed — except on the ask path, where it is\n * the proxy's own request and says nothing about the host being judged. Read\n * `params`, not `req`'s host, headers or cookies, or a certificate decision\n * and a routing decision can disagree.\n */\n exists?: (\n params: Record<string, string>,\n req: Request,\n ) => boolean | Promise<boolean>;\n}\n\nexport interface CustomDomainConfig {\n /**\n * The `subdomain` of the group a resolved custom host is served as — so\n * `app.acme.com` runs exactly what `acme.example.com` does.\n */\n group: string;\n\n /**\n * Maps a host outside `domains.root` to the params of `group`, or `null`\n * when the host is not one the app knows. Usually a database lookup;\n * answers are cached for `cacheTtlMs`.\n */\n resolve: (\n host: string,\n ) => Record<string, string> | null | Promise<Record<string, string> | null>;\n\n /** How long a `resolve` answer, hit or miss, is reused. Defaults to 60s; `0` disables. */\n cacheTtlMs?: number;\n\n /**\n * Serves every host `resolve` returned `null` for, instead of a 404. The ask\n * endpoint never approves a host on the strength of this group alone.\n */\n fallback?: DomainGroupRouters;\n}\n\n/**\n * `route.domains.trustProxy` in its long form: which header carries the host\n * the client addressed, which one its IP address, and what proves the proxy\n * sent them.\n */\nexport interface TrustProxyConfig {\n /**\n * The header the host is read from — the one the proxy in front writes the\n * client's host into. Defaults to `\"x-forwarded-host\"`.\n *\n * Name one the platform in front does not own. Behind a CDN that terminates\n * the customer's TLS and then a host like Railway, Render, Fly or Heroku,\n * the host overwrites `X-Forwarded-Host` with the `Host` it was reached by,\n * which the CDN had to rewrite to the app's own domain; the customer's host\n * only survives in a header the CDN adds, e.g. `X-Original-Host: ${http.host}`.\n */\n hostHeader?: string;\n\n /**\n * A header the proxy writes the client's IP address into, e.g.\n * `\"x-client-ip\"` set from Cloudflare's `CF-Connecting-IP`. On a request\n * that carries `secret`, its first entry replaces the address\n * `GEMI_TRUST_PROXY` settled on: gemi writes it into `X-Forwarded-For` (and\n * drops `X-Real-IP`) before the global middleware runs, so `clientIp(req)`\n * and every rate limit keyed on it see the visitor rather than the proxy.\n *\n * For a proxy whose request to the app is a new one (a Worker's `fetch()`),\n * so the client's address is not in `X-Forwarded-For` at all. Requires\n * `secret`: without proof the proxy sent it, any client that reaches the\n * app directly could pick its own address. A missing header, or one that\n * is not an IPv4/IPv6 address, changes nothing.\n */\n clientIpHeader?: string;\n\n /**\n * Trusts `hostHeader` and `clientIpHeader` only on a request that carries this header with this\n * value — a shared secret the proxy adds, so a client that reaches the app\n * directly, around the proxy, cannot name its own host. Without it the\n * request is routed by its own host, exactly as with `trustProxy` left out.\n *\n * `value` must be at least 16 characters and is compared in constant time.\n * The header is withheld from what a `proxy()` route forwards upstream.\n */\n secret?: { header: string; value: string };\n}\n\n/**\n * One entry of `route.domains.trustProxy` in its list form: a proxy that\n * proves itself with a secret of its own. Unlike the single-object form,\n * `secret` is required, and `hostHeader` has no default — an entry without\n * one only names the client's address and never moves the host.\n */\nexport interface TrustedProxyConfig {\n /**\n * The header this proxy writes the client's host into. Left out, a request\n * this entry claims is routed by its own `Host`.\n */\n hostHeader?: string;\n /** The header this proxy writes the client's IP address into. See {@link TrustProxyConfig.clientIpHeader}. */\n clientIpHeader?: string;\n /**\n * What proves this proxy sent the request: a header and the value it must\n * carry, at least 16 characters, compared in constant time and withheld\n * from `proxy()` upstreams. Each entry needs a secret value of its own.\n */\n secret: { header: string; value: string };\n}\n\n// Config key: `route.domains`. Optional: without it every host is served by\n// the root routers, exactly as before.\nexport interface DomainsConfig {\n /**\n * The apex the subdomains hang off, e.g. `\"example.com\"` — `\"localhost\"` in\n * development, where `acme.localhost` resolves to loopback. Compared against\n * the request's hostname, so the port does not matter.\n */\n root: string;\n\n /**\n * Read the host from a header the proxy in front sets, rather than the\n * request URL. Only set it behind a proxy that overwrites that header, or a\n * client picks its own host.\n *\n * `true` reads `X-Forwarded-Host`. An object names the header, can make\n * trusting it depend on a shared secret the proxy sends, and can name a\n * header that carries the client's IP address — see {@link TrustProxyConfig}.\n *\n * A list trusts several proxies, each proven by its own secret: on each\n * request the first entry whose secret header is present and matches\n * decides both the host and the client's address, and the others are not\n * consulted. See {@link TrustedProxyConfig}.\n *\n * The scheme is read from `X-Forwarded-Proto` whether or not this is set.\n */\n trustProxy?: boolean | TrustProxyConfig | TrustedProxyConfig[];\n\n groups?: DomainGroupConfig[];\n\n custom?: CustomDomainConfig;\n\n /**\n * Extra hosts the dev server (`gemi dev`) answers, besides the root and its\n * subdomains, which it always answers, and `localhost`, `*.localhost` and\n * IP addresses, which Vite always admits. Every other host gets a 403 from\n * Vite's host check, the guard against DNS rebinding. `gemi start` ignores it.\n *\n * List the custom domains you point at `127.0.0.1` in `/etc/hosts` to try\n * them locally, e.g. `[\"app.acme.test\"]`. Vite's syntax: a leading `.`\n * admits the domain and every subdomain (`\".acme.test\"`).\n *\n * `true` turns the check off and the dev server answers any host, which lets\n * any web page you visit read the app's source through DNS rebinding. Avoid\n * it; gemi warns at boot when it is set.\n */\n devHosts?: readonly string[] | true;\n\n /**\n * Turns on the on-demand TLS ask endpoint, which a proxy calls to decide\n * whether to issue a certificate for a host.\n *\n * Left out, the path is not served at all — it answers the same 404 as any\n * other unrouted path. That is the default because the answer is exactly\n * \"is this a tenant of yours\", asked without a session: open to the\n * internet it enumerates tenant slugs and customer domains, and runs an\n * uncached `exists` or `resolve` per probe.\n *\n * `secret` must be at least 16 characters and is compared in constant time.\n * The proxy passes it as `?secret=`; anything else falls through unanswered,\n * so the endpoint cannot be probed for.\n */\n ask?: { secret: string };\n}\n\n// Config key: `route`. Covers both route dispatchers and the MCP registry.\nexport interface RouteConfig {\n api: ApiRouteConfig;\n view: ViewRouteConfig;\n mcp?: McpRouteConfig;\n domains?: DomainsConfig;\n /**\n * The app's `ChannelRouter`, normally `app/http/routes/channels.ts`: the\n * broadcast channels clients may subscribe to. Optional: without it every\n * subscription is refused, and emits still work.\n */\n channels?: ChannelRouterClass;\n}\n\nexport function defineRouteConfig(config: RouteConfig): RouteConfig {\n return config;\n}\n\n// `rootRouter` / `root` have no defaults — the app must supply them.\nexport function apiRouteConfigDefaults(): Omit<\n Required<ApiRouteConfig>,\n \"rootRouter\"\n> {\n return {\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n };\n}\n\nexport function viewRouteConfigDefaults(): Omit<\n Required<ViewRouteConfig>,\n \"root\" | \"rootRouter\" | \"meta\" | \"notFound\" | \"translate\" | \"detectLocale\"\n> {\n return {\n partialRendering: true,\n localeRouting: \"prefix\",\n theme: {},\n publicFiles: true,\n assetRoutes: false,\n onNotFound: () => {},\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n onStreamComplete: () => {},\n };\n}\n",
|
|
81
81
|
"import { HttpRequest, type Middleware } from \"../../http\";\nimport {\n type ApiRoutes,\n type RouteHandlers,\n type ApiRouter,\n type ResourceRoutes,\n RouteHandler,\n type ProxyHandler,\n type RouteSource,\n} from \"../../http/ApiRouter\";\nimport type { RouterMiddleware } from \"../../http/Router\";\n\ntype ApiRouteExec = any;\nexport type FlatApiRoutes = Record<\n string,\n Record<\n string,\n {\n exec: ApiRouteExec;\n middleware: (string | (new () => Middleware) | RouterMiddleware)[];\n // Absent on a callback route, a proxy route and OPTIONS: none of them\n // runs a controller method.\n source?: RouteSource;\n }\n >\n>;\n\nfunction isRouteHandler(option: ApiRoutes[string]): option is RouteHandler<any, any, any, any> {\n return \"run\" in option;\n}\n\nfunction isRouteHandlers(option: ApiRoutes[string]): option is RouteHandlers {\n return (\n Object.hasOwn(option, \"get\") ||\n Object.hasOwn(option, \"post\") ||\n Object.hasOwn(option, \"put\") ||\n Object.hasOwn(option, \"patch\") ||\n Object.hasOwn(option, \"delete\")\n );\n}\n\nfunction isResouceRoutes(option: ApiRoutes[string]): option is ResourceRoutes<any> {\n return Object.hasOwn(option, \"first\") && Object.hasOwn(option, \"second\");\n}\n\n// Narrows to `typeof ApiRouter`, not `new () => ApiRouter`: the latter lacks\n// the static `__brand` this very guard reads, so it is not a subtype of the\n// parameter and TypeScript rejects the predicate under a strict lib.\nfunction isApiRouter(routeHandlers: ApiRoutes[string]): routeHandlers is typeof ApiRouter {\n if (\"__brand\" in routeHandlers) {\n return routeHandlers.__brand === \"ApiRouter\";\n }\n return false;\n}\n\nfunction isProxyHandler(option: ApiRoutes[string]): option is ProxyHandler {\n if (\"__internal_brand\" in option) {\n return option.__internal_brand === \"ProxyHandler\";\n }\n return false;\n}\n\nfunction isStreamHandler(option: ApiRoutes[string]) {\n if (\"__internal_brand\" in option) {\n return option.__internal_brand === \"StreamHandler\";\n }\n return false;\n}\n\n/**\n * Strips `(group)` segments from an api path, as view routes do: a router\n * mounted at `\"/(builds)\"` (or `\"(builds)/\"`) adds no segment of its own, so\n * `/pages/(builds)/:pageId` is served at `/pages/:pageId`, the path `CreateRPC`\n * types it at (`RemoveGroupPrefix`). A group is a name of word characters and\n * `-` in parentheses. Parentheses right after a `:param` are its URLPattern\n * regex (`/:id(\\\\d+)`), as are parentheses holding anything but a name\n * (`/(\\\\d+)`); both are left for URLPattern to match.\n */\nexport function removeApiGroupSegments(path: string) {\n const stripped = path.replace(/(?<!:\\w*)\\([\\w-]+\\)/g, \"\");\n if (stripped === path) {\n return path;\n }\n const collapsed = `/${stripped}`.replace(/\\/{2,}/g, \"/\");\n return collapsed.length > 1 ? collapsed.replace(/\\/$/, \"\") : collapsed;\n}\n\nexport function createFlatApiRoutes(\n routes: ApiRoutes,\n rootPath = \"\",\n rootMiddleware: RouterMiddleware[] | string[] = [],\n) {\n const flatApiRoutes: FlatApiRoutes = {};\n\n function addRoute(\n path: string,\n method: string,\n exec: ApiRouteExec,\n middleware: RouterMiddleware[] | string[],\n source?: RouteSource,\n ) {\n const subPath = path === \"/\" ? \"\" : path;\n const _rootPath = rootPath === \"/\" ? \"\" : rootPath;\n const finalPath = removeApiGroupSegments(\n (`${_rootPath}${subPath}` === \"\" ? \"/\" : `${_rootPath}${subPath}`).replaceAll(\"//\", \"/\"),\n );\n if (!flatApiRoutes[finalPath]) {\n flatApiRoutes[finalPath] = {};\n }\n flatApiRoutes[finalPath][method.toUpperCase()] = {\n exec,\n middleware: [...rootMiddleware, ...middleware],\n ...(source ? { source } : {}),\n };\n flatApiRoutes[finalPath].OPTIONS = {\n exec: () => {\n const req = new HttpRequest();\n const headers = req.ctx().headers;\n return new Response(null, { headers, status: 204 });\n },\n middleware: [],\n };\n }\n\n for (const [path, option] of Object.entries(routes)) {\n if (isProxyHandler(option)) {\n const proxyHandler = option;\n for (const method of [\"GET\", \"POST\", \"PUT\", \"DELETE\"]) {\n addRoute(path, method, proxyHandler.run.bind(proxyHandler), proxyHandler.middlewares);\n }\n continue;\n }\n\n if (isRouteHandler(option)) {\n const routeHandler = option;\n const method = routeHandler.method;\n const middleware = routeHandler.middlewares;\n const exec = routeHandler.run.bind(routeHandler);\n addRoute(path, method, exec, middleware, routeHandler.source);\n // A stream route also answers HEAD, so a client can read the size and\n // Accept-Ranges without pulling the body. It runs the same handler, so\n // it has the same source.\n if (isStreamHandler(option)) {\n addRoute(path, \"HEAD\", exec, middleware, routeHandler.source);\n }\n }\n\n if (isRouteHandlers(option)) {\n for (const [method, handler] of Object.entries(option)) {\n // At runtime every value is a `RouteHandler`: `FileHandler` and\n // `StreamHandler` construct one. Their types are kept apart only so\n // they stay out of the RPC client.\n const routeHandler = handler as RouteHandler<any, any, any, any>;\n const middleware = routeHandler.middlewares;\n const exec = routeHandler.run.bind(routeHandler);\n addRoute(path, method, exec, middleware, routeHandler.source);\n // `get: this.stream(...)` answers HEAD too, as a stream route on its\n // own path does. An explicit `head` key is not part of the map.\n if (method === \"get\" && isStreamHandler(routeHandler)) {\n addRoute(path, \"HEAD\", exec, middleware, routeHandler.source);\n }\n }\n }\n\n if (isApiRouter(option)) {\n const router = new option();\n // A nested router's routes run every enclosing router's `middlewares`\n // first, then its own, then the route's: the list is concatenated the\n // way view routers' are, and `MiddlewareRegistry` resolves it (a later\n // entry of the same alias replaces its params, a `-alias` removes it).\n const routes = createFlatApiRoutes(router.routes, `${rootPath}${path}`, [\n ...rootMiddleware,\n ...router.middlewares,\n ] as RouterMiddleware[] | string[]);\n // Merged per method rather than replaced: two routers mounted under\n // groups that share a prefix (`\"/(builds)\"` and `\"/(edits)\"`) can each\n // answer a different method on the same path.\n for (const [path, route] of Object.entries(routes)) {\n const key = path.replaceAll(\"//\", \"/\");\n flatApiRoutes[key] = { ...flatApiRoutes[key], ...route };\n }\n }\n\n if (isResouceRoutes(option)) {\n const { first, second } = option;\n for (const [method, routeHandler] of Object.entries(first)) {\n const middleware = routeHandler.middlewares;\n const exec = routeHandler.run.bind(routeHandler);\n const [lastSegment, ...rest] = path.split(\"/\").reverse();\n if (!lastSegment.startsWith(\":\")) {\n throw new Error(\"Resource route must end with a dynamic segment\");\n }\n addRoute(rest.reverse().join(\"/\"), method, exec, middleware, routeHandler.source);\n }\n for (const [method, routeHandler] of Object.entries(second)) {\n const middleware = routeHandler.middlewares;\n const exec = routeHandler.run.bind(routeHandler);\n addRoute(path, method, exec, middleware, routeHandler.source);\n }\n }\n }\n\n return Object.fromEntries(\n Object.entries(flatApiRoutes).sort(([a], [b]) => {\n const x = a.split(\"/\").length + a.split(\":\").length;\n const y = b.split(\"/\").length + b.split(\":\").length;\n return x - y;\n }),\n );\n}\n",
|
|
82
82
|
"import type { HttpRequest } from \"../../http\";\nimport type { StaticViewOptions, ViewRoutes } from \"../../http/ViewRouter\";\n\nexport type ViewRouteExec = (req: HttpRequest<any, any>) => any; // TODO: fix type\n\n/**\n * One entry per segment of a route, parallel to `exec` — `segments[i]` is what\n * `exec[i]` renders. `path` is the segment's own route pattern, prefixed by\n * every ancestor, so the last segment's `path` is always the flat route key.\n *\n * Partial rendering compares these pairwise between the route the client is on\n * and the one it is navigating to, to find the segments it can skip.\n */\nexport type ViewRouteSegment = {\n path: string;\n viewPath: string;\n /** Layout opted out of being skipped, via `alwaysRun()`. */\n alwaysRun?: boolean;\n};\n\nexport type FlatViewRoutes = Record<\n string,\n {\n exec: ViewRouteExec[];\n middleware: (string | any)[];\n viewPath: string;\n segments: ViewRouteSegment[];\n /**\n * Feature flags gating this route, accumulated from every router and layout\n * above it. All must be on for the route to resolve; any one off makes the\n * request a 404. Evaluated per request, after middleware, since the table\n * itself is built once at boot and cannot vary by user.\n */\n features: string[];\n /**\n * Set when the route's view was declared `.static()`: the document is sent\n * settled and without the client runtime. Only a leaf view can be static;\n * the layouts above it render into the same static document.\n */\n static?: StaticViewOptions;\n }\n>;\n\nfunction removeGroupPrefix(input: string) {\n // Remove all (str) patterns\n const withoutParentheses = input.replace(/\\([^)]*\\)/g, \"\");\n\n // Remove all double slashes // by replacing with single slash\n const withoutDoubleSlashes = withoutParentheses.replace(/\\/\\//g, \"/\");\n return withoutDoubleSlashes;\n}\n\n/** How a child route path is mounted under its parent's. */\nfunction joinRoutePath(prefix: string, path: string) {\n if (prefix === \"/\") return path;\n if (path === \"/\") return prefix;\n return `${prefix}${path}`;\n}\n\n/**\n * A segment path is compared against other segment paths, so it has to be\n * spelled one way only. A group as the last part of a path (`/app/(private)`)\n * leaves a trailing slash behind once the group is stripped.\n */\nfunction segmentPath(path: string) {\n const withoutGroups = removeGroupPrefix(path);\n return withoutGroups.length > 1 ? withoutGroups.replace(/\\/$/, \"\") : withoutGroups;\n}\n\nfunction prefixSegments(prefix: string, segments: ViewRouteSegment[]) {\n return segments.map((segment) => ({\n ...segment,\n path: segmentPath(joinRoutePath(prefix, segment.path)),\n }));\n}\n\nexport function createFlatViewRoutes(routes: ViewRoutes) {\n const flatRoutes: FlatViewRoutes = {};\n\n for (const [routePath, viewConfigOrViewRouter] of Object.entries(routes)) {\n if (\"run\" in viewConfigOrViewRouter) {\n const route = viewConfigOrViewRouter;\n if (\"children\" in route) {\n const children = new route.children();\n const result = createFlatViewRoutes(children.routes);\n\n for (const [\n path,\n { exec, middleware, segments, features, static: staticOptions },\n ] of Object.entries(result)) {\n const _key = joinRoutePath(routePath, path);\n\n const handler = (req: HttpRequest<any, any>) =>\n route.run.call(route, req, routePath);\n\n flatRoutes[removeGroupPrefix(_key)] = {\n exec: [handler, ...exec],\n middleware: [...route.middlewares, ...middleware],\n features: [...route.featureGates, ...features],\n viewPath: route.viewPath,\n segments: [\n {\n path: segmentPath(routePath),\n viewPath: route.viewPath,\n ...(route.alwaysRuns ? { alwaysRun: true } : {}),\n },\n ...prefixSegments(routePath, segments),\n ],\n ...(staticOptions ? { static: staticOptions } : {}),\n };\n }\n } else {\n const handler = (req: HttpRequest<any, any>) =>\n route.run.call(route, req, routePath);\n flatRoutes[removeGroupPrefix(routePath)] = {\n exec: [handler],\n middleware: route.middlewares,\n features: route.featureGates,\n viewPath: route.viewPath,\n segments: [{ path: segmentPath(routePath), viewPath: route.viewPath }],\n ...(\"staticOptions\" in route && route.staticOptions\n ? { static: route.staticOptions }\n : {}),\n };\n }\n } else {\n const router = new viewConfigOrViewRouter();\n const result = createFlatViewRoutes(router.routes);\n for (const [\n path,\n { exec, middleware, viewPath, segments, features, static: staticOptions },\n ] of Object.entries(result)) {\n const _key = joinRoutePath(routePath, path);\n flatRoutes[removeGroupPrefix(_key)] = {\n exec,\n middleware: [...router.middlewares, ...middleware],\n features: [...router.featureGates, ...features],\n viewPath,\n segments: prefixSegments(routePath, segments),\n ...(staticOptions ? { static: staticOptions } : {}),\n };\n }\n }\n }\n\n return Object.fromEntries(\n Object.entries(flatRoutes).sort(([a], [b]) => {\n const x = a.split(\"/\").length + a.split(\":\").length;\n const y = b.split(\"/\").length + b.split(\":\").length;\n return x - y;\n }),\n );\n}\n",
|
|
83
83
|
"/**\n * The theme a visitor picked, shared by the server (which reads it from a\n * cookie and renders the inline script) and the browser (`ThemeProvider`).\n *\n * gemi owns the `light`/`dark` classes on `<html>` only while it has a theme\n * to apply: the visitor's stored choice or `ViewRouteConfig.theme.default`.\n * With neither, it leaves `<html>` alone, so an app that sets its own class\n * before paint keeps it (#937).\n */\n\nexport type Theme = \"light\" | \"dark\" | \"system\";\nexport type ResolvedTheme = \"light\" | \"dark\";\n\n/** The cookie gemi stores the choice in unless `theme.cookie` names another. */\nexport const DEFAULT_THEME_COOKIE = \"theme\";\n\n/** What the server hands the browser in `__GEMI_DATA__.theme`. */\nexport type ThemeData = {\n /** The cookie the choice lives in. */\n cookie: string;\n /** `theme.default`, or `null` when the app set none. */\n default: Theme | null;\n /** The visitor's choice, read from the cookie on the server. */\n value: Theme | null;\n};\n\nexport function isTheme(value: unknown): value is Theme {\n return value === \"light\" || value === \"dark\" || value === \"system\";\n}\n\n/** `\"system\"` asks the browser; the other two are already resolved. */\nexport function resolveTheme(theme: Theme, prefersDark: boolean): ResolvedTheme {\n if (theme === \"system\") return prefersDark ? \"dark\" : \"light\";\n return theme;\n}\n\n/**\n * Puts `resolved` on `<html>`: the class, and `color-scheme` for the browser's\n * own widgets. Removes only the other theme class, never anything else.\n */\nexport function applyTheme(root: HTMLElement, resolved: ResolvedTheme): void {\n root.classList.remove(resolved === \"dark\" ? \"light\" : \"dark\");\n root.classList.add(resolved);\n root.style.colorScheme = resolved;\n}\n\n/** One year: the choice should outlive the session, as `localStorage` did. */\nconst COOKIE_MAX_AGE = 60 * 60 * 24 * 365;\n\n/**\n * Stores the choice where both the server and the inline script read it: the\n * cookie. `localStorage` is still written, so a page from an older build that\n * only reads storage agrees with this one.\n */\nexport function storeTheme(theme: Theme, cookie: string = DEFAULT_THEME_COOKIE): void {\n try {\n document.cookie = `${cookie}=${theme}; path=/; max-age=${COOKIE_MAX_AGE}; samesite=lax`;\n } catch {}\n try {\n localStorage.setItem(\"theme\", theme);\n } catch {}\n}\n\n/** The stored choice in the browser: the cookie, else the legacy `localStorage` key. */\nexport function readStoredTheme(cookie: string = DEFAULT_THEME_COOKIE): Theme | null {\n try {\n for (const part of document.cookie.split(\";\")) {\n const eq = part.indexOf(\"=\");\n if (eq < 0 || part.slice(0, eq).trim() !== cookie) continue;\n const value = decodeURIComponent(part.slice(eq + 1).trim());\n if (isTheme(value)) return value;\n }\n } catch {}\n try {\n const value = localStorage.getItem(\"theme\");\n if (isTheme(value)) return value;\n } catch {}\n return null;\n}\n\n/**\n * The inline script the server renders before the body, so the class is right\n * before first paint. It does what `readStoredTheme` + `applyTheme` do, kept\n * in one self-contained statement because it runs before any module loads.\n * `config` is JSON-encoded by the caller (`htmlSafeJson`), never interpolated\n * raw.\n */\nexport function themeScriptSource(configJson: string): string {\n return `!function(o){try{var e=null,d=document.documentElement,c=d.classList,k=document.cookie.split(';'),i,j,v;\nfor(i=0;i<k.length;i++){j=k[i].indexOf('=');if(j>0&&k[i].slice(0,j).trim()===o.cookie){v=decodeURIComponent(k[i].slice(j+1).trim());break}}\nif(v!=='light'&&v!=='dark'&&v!=='system'){try{v=localStorage.getItem('theme')}catch(x){}}\nif(v==='light'||v==='dark'||v==='system')e=v;else e=o.default;\nif(!e)return;\nif(e==='system')e=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light';\nc.remove(e==='dark'?'light':'dark');c.add(e);d.style.colorScheme=e}catch(x){}}(${configJson})`;\n}\n",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"// @ts-ignore\nimport { URLPattern } from \"urlpattern-polyfill/urlpattern\";\nimport type { FlatViewRoutes } from \"./createFlatViewRoutes\";\n\nexport interface ViewRouteMatch {\n routePath: string;\n params: Record<string, string>;\n route: FlatViewRoutes[string];\n}\n\n/**\n * First route whose pattern matches `pathname`. `flatViewRoutes` is ordered\n * least-specific-first, so this is insertion order, not a best match.\n */\nexport function matchViewRoute(\n flatViewRoutes: FlatViewRoutes,\n pathname: string,\n): ViewRouteMatch | null {\n for (const [routePath, route] of Object.entries(flatViewRoutes)) {\n const pattern = new URLPattern({ pathname: routePath });\n if (pattern.test({ pathname })) {\n return {\n routePath,\n params: pattern.exec({ pathname })?.pathname.groups ?? {},\n route,\n };\n }\n }\n\n return null;\n}\n",
|
|
86
86
|
"import { applyParams } from \"../../utils/applyParams\";\nimport type { FlatViewRoutes, ViewRouteSegment } from \"./createFlatViewRoutes\";\nimport { matchViewRoute } from \"./matchViewRoute\";\n\n/** A route, as matched for one request, in the terms partial rendering needs. */\nexport interface PartialRenderRoute {\n segments: ViewRouteSegment[];\n params: Record<string, string>;\n search: string;\n}\n\nexport interface PartialRenderPlan {\n /** Index of the first segment whose handler has to run. */\n startIndex: number;\n /** View paths of the segments that were skipped, in order. */\n carriedViews: string[];\n}\n\nconst NOTHING_SKIPPED: PartialRenderPlan = { startIndex: 0, carriedViews: [] };\n\nfunction resolve(segment: ViewRouteSegment, params: Record<string, string>) {\n const resolved = applyParams(segment.path, params);\n // `applyParams` only substitutes `:name`. A bare `*` survives, and two\n // different URLs would then compare equal — never skip such a segment.\n return resolved.includes(\"*\") ? null : resolved;\n}\n\n/**\n * Works out which of the target route's segments the client already has\n * rendered, and so which of its handlers this request can skip.\n *\n * A segment is carried forward only when it is *the same segment on the same\n * resolved path*: `/app/A/chat` → `/app/A/lists` reuses the layout, but\n * `/app/A/chat` → `/app/B/chat` re-runs it even though the view is the same.\n *\n * The target's own leaf always runs — navigating to the URL you are already on\n * is a reload, not a no-op.\n */\nexport function planPartialRender(\n from: PartialRenderRoute | null,\n to: PartialRenderRoute,\n): PartialRenderPlan {\n if (!from) {\n return NOTHING_SKIPPED;\n }\n\n // Handlers read `req.search`, and there is no way to know which ones do.\n if (from.search !== to.search) {\n return NOTHING_SKIPPED;\n }\n\n const limit = Math.min(from.segments.length, to.segments.length - 1);\n\n let startIndex = 0;\n while (startIndex < limit) {\n const fromSegment = from.segments[startIndex];\n const toSegment = to.segments[startIndex];\n\n // This layout asked to run on every navigation underneath it. Segments are\n // skipped as a prefix, so everything from here down runs too.\n if (toSegment.alwaysRun) break;\n\n if (fromSegment.viewPath !== toSegment.viewPath) break;\n\n const fromPath = resolve(fromSegment, from.params);\n const toPath = resolve(toSegment, to.params);\n if (fromPath === null || toPath === null || fromPath !== toPath) break;\n\n startIndex++;\n }\n\n if (startIndex === 0) {\n return NOTHING_SKIPPED;\n }\n\n return {\n startIndex,\n carriedViews: to.segments.slice(0, startIndex).map(({ viewPath }) => viewPath),\n };\n}\n\nfunction stripLocaleSegment(pathname: string, supportedLocales: string[]) {\n const [, maybeLocale, ...rest] = pathname.split(\"/\");\n if (!supportedLocales.includes(maybeLocale)) {\n return pathname;\n }\n const stripped = `/${rest.join(\"/\")}`;\n return stripped === \"/\" ? \"/\" : stripped.replace(/\\/$/, \"\");\n}\n\n/**\n * Turns the `x-gemi-from` header into a plan for the request being served.\n *\n * Every way of not knowing what the client has — no header, an unparseable\n * one, a path this server does not route — ends in the same place: render\n * everything. The client is telling the server what to skip, so the failure\n * mode has to be doing the work, never trusting a value that did not check out.\n */\nexport function resolvePartialRender(options: {\n flatViewRoutes: FlatViewRoutes;\n supportedLocales: string[];\n /** Raw `x-gemi-from` value. */\n from: string | null;\n /** Origin to resolve the header value against. */\n origin: string;\n to: PartialRenderRoute;\n}): PartialRenderPlan {\n const { flatViewRoutes, supportedLocales, from, origin, to } = options;\n\n if (!from) {\n return NOTHING_SKIPPED;\n }\n\n let url: URL;\n try {\n url = new URL(from, origin);\n } catch {\n return NOTHING_SKIPPED;\n }\n\n // The client sends a path. Anything that resolved somewhere else was not one.\n if (url.origin !== origin) {\n return NOTHING_SKIPPED;\n }\n\n const match = matchViewRoute(flatViewRoutes, stripLocaleSegment(url.pathname, supportedLocales));\n\n if (!match) {\n return NOTHING_SKIPPED;\n }\n\n return planPartialRender(\n { segments: match.route.segments, params: match.params, search: url.search },\n to,\n );\n}\n",
|
|
87
87
|
"import { applyParams } from \"./applyParams\";\n\n/**\n * Route the client is currently rendering, sent on `.json` navigations so the\n * server can skip the handlers of the segments that route already has mounted.\n * Value is a locale-less pathname plus search, e.g. `/app/A/chat?tab=2`.\n */\nexport const PARTIAL_RENDER_HEADER = \"x-gemi-from\";\n\n/** What the server reports back about the skip it performed, if any. */\nexport interface PartialRenderInfo {\n /** The `x-gemi-from` value the plan was computed against. */\n from: string;\n /** View paths of the skipped segments, in order. Their data is carried forward. */\n carriedViews: string[];\n}\n\n/**\n * The `x-gemi-from` value for the route the client starts on.\n *\n * On the first render the router's `pathname` is still the route *pattern* the\n * server matched — it only becomes a resolved path once the history listener\n * has run — so this has to apply the params. Sending `/app/:orgId/chat` names\n * no route the server can resolve, and the first navigation after every full\n * page load would skip nothing.\n */\nexport function initialRenderedRoute(route: {\n pathname?: string;\n params?: Record<string, string>;\n search?: string;\n}) {\n // `applyParams` strips the trailing slash, so the root route resolves to the\n // empty string — which the server reads as \"no header\" and renders in full.\n const pathname = applyParams(route.pathname ?? \"/\", route.params ?? {}) || \"/\";\n return `${pathname}${route.search ?? \"\"}`;\n}\n",
|
|
88
|
-
"import { HttpRequest } from \"../../http\";\nimport { GEMI_REQUEST_BREAKER_ERROR } from \"../../http/Error\";\nimport { type CarriedContext, ensureSessionId, RequestContext } from \"../../http/requestContext\";\nimport type { RouterMiddleware } from \"../../http/Router\";\nimport {\n createFlatViewRoutes,\n type FlatViewRoutes,\n type ViewRouteExec,\n} from \"./createFlatViewRoutes\";\nimport {\n viewRouteConfigDefaults,\n type LocaleRouting,\n type ThemeConfig,\n type ViewRouteConfig,\n} from \"./config\";\nimport { DEFAULT_THEME_COOKIE, isTheme, themeScriptSource, type ThemeData } from \"../../client/theme\";\nimport { resolvePartialRender } from \"./planPartialRender\";\nimport { matchViewRoute } from \"./matchViewRoute\";\nimport { PARTIAL_RENDER_HEADER, type PartialRenderInfo } from \"../../utils/partialRender\";\nimport { createElement, Fragment } from \"react\";\n\nimport { createFileResponse, type FileOutput, type ViewRoutes } from \"../../http/ViewRouter\";\nimport { createRouteManifest } from \"./createRouteManifest\";\nimport { createComponentTree } from \"./createComponentTree\";\nimport { flattenComponentTree } from \"../../client/helpers/flattenComponentTree\";\nimport type { ComponentTree } from \"../../client/types\";\nimport { Translator } from \"../../i18n/Translator\";\nimport { splitLocalePrefix } from \"../../i18n/localePrefix\";\nimport { resolveLocale } from \"../../i18n/resolveLocale\";\nimport { preloadDictionaries } from \"../../i18n/dictionaryRegistry\";\nimport { createDictionarySink } from \"../../i18n/dictionarySink\";\nimport { MiddlewareRegistry } from \"../middleware/MiddlewareRegistry\";\nimport { Log } from \"../../facades/Log\";\nimport { Lang } from \"../../facades/Lang\";\nimport { authViewRequirements, createAuthViewRouter } from \"../../auth/routes\";\nimport type { AuthConfig } from \"../../auth/config\";\nimport { KernelId } from \"../kernel-id/KernelId\";\nimport { FeatureManager } from \"../features/FeatureManager\";\nimport { app } from \"../../foundation/app\";\nimport { kernelContext } from \"../../kernel/context\";\nimport { ServerQueryStore, type StreamSummary } from \"./ServerQueryStore\";\nimport { isPolicyDeniedError, isRecordNotFoundError } from \"../../orm/errors\";\nimport { QueryError } from \"../../client/QueryError\";\nimport { policyDeniedResponse, policyDeniedView } from \"./policyDenied\";\nimport { createServerQueryFetcher } from \"./serverQueryFetcher\";\nimport { DomainRouter } from \"./DomainRouter\";\nimport { htmlSafeJson, injectQueryPayloads, isBotUserAgent } from \"./streamQueryInjection\";\nimport { createShellContentObserver, createShellContentReporter } from \"./shellContentReport\";\nimport { createRoutePayloadStream } from \"./routePayloadStream\";\nimport { loadSharp } from \"../../support/sharp\";\nimport type { StaticViewOptions } from \"../../http/ViewRouter\";\nimport { StaticRenderContext, createStaticRenderCollector } from \"../../client/islands\";\nimport {\n injectIslands,\n spliceIslandSlots,\n type DocumentScript,\n type IslandResolver,\n type StaticNavigationMarker,\n} from \"./staticDocument\";\nimport { documentScriptSource } from \"./documentScript\";\nimport {\n applyStaticCacheControl,\n dropCookiesFromSharedCacheable,\n staticCookiePolicy,\n} from \"./staticCache\";\nimport { mergeContextIntoResponse } from \"./ApiRouteDispatcher\";\n\n/**\n * `satori`, loaded on the first OG-image request rather than on import, for the\n * same reason `sharp` is (see `support/sharp.ts`): this module is reachable\n * from `gemi/services` through `RouteServiceProvider`, so a static import put\n * satori — and, one hop on, a font parser and an SVG layout engine — in the\n * module graph of every app and test that imported the barrel to reach\n * `CronJob` (#403).\n *\n * Rendering an OG image is a cold path by definition: a crawler asks for it\n * once and a CDN serves it afterwards.\n */\nconst loadSatori = async () => (await import(\"satori\")).default;\n\n/**\n * React's server renderer, loaded on the first render rather than on import.\n *\n * **Importing `react-dom/server.browser` keeps the process alive forever.** On\n * React 19.2.3 under Bun, that one import — nothing else, no render, no server\n * — is enough that the process never exits: `getActiveResourcesInfo()` comes\n * back empty, there are no timers, no sockets and an empty kqueue, and it hangs\n * anyway. `react-dom/server.node` does not do it. Reduced from #316's third\n * item, which reports the same hang from `await import(\"gemi/kernel\")` and\n * predates the 0.51 line.\n *\n * That import sat at module scope here, and this module is reachable from\n * `gemi/kernel` through `RouteServiceProvider` — so *any* script that touched\n * the kernel inherited the hang and needed an explicit `process.exit()`. A\n * one-off migration, a seeder, a cron entry point, a CI check: all of them\n * loaded the SSR renderer to get a `Kernel` they were going to use for\n * something else entirely.\n *\n * Deferring it costs one already-resolved dynamic import on the first document\n * render and nothing after — `react-dom` is external in the framework build, so\n * this stays a runtime resolve out of the app's own `node_modules` exactly as\n * the static import was. A server renders, so it pays this once at first\n * request; a script that never renders no longer pays it at all, which is the\n * whole point.\n *\n * Wrapped rather than awaited at each call site so the three of them read\n * unchanged.\n *\n * The slot is cleared on failure so a rejection is not what gets memoised. A\n * missing `react-dom` is fatal either way — this is about the diagnostic, not\n * about recovery: caching the rejected promise would make every later render\n * report whatever the loader threw the first time, with no stack from the call\n * that actually failed.\n */\nlet serverRenderer:\n | Promise<{ renderToReadableStream: (...args: any[]) => Promise<any> }>\n | undefined;\n\nconst renderToReadableStream = async (...args: any[]): Promise<any> => {\n // @ts-ignore\n serverRenderer ??= import(\"react-dom/server.browser\").catch((error) => {\n serverRenderer = undefined;\n throw error;\n });\n return (await serverRenderer).renderToReadableStream(...args);\n};\n\n/**\n * How long a document response may keep streaming before pending segments are\n * cut over to client rendering. One hung query must not hold the connection\n * open forever; the browser resolves whatever was aborted over `/api`.\n */\nconst STREAM_DEADLINE_MS = 10_000;\n\n/**\n * `\"no-locale\"` in a route's (or its router's) middleware list takes it out of\n * locale routing, as `localeRouting: \"off\"` does a whole view tree. A\n * directive read by the dispatcher, like `\"no-stream\"`, not real middleware.\n */\nconst NO_LOCALE_DIRECTIVE = \"no-locale\";\n\n/**\n * `\"no-theme\"` in a route's (or its router's) middleware list drops the theme\n * script from its documents, as `theme: false` does a whole view tree. A\n * directive, like `\"no-stream\"`.\n */\nconst NO_THEME_DIRECTIVE = \"no-theme\";\n\nasync function getTtfFont(\n family: string,\n weight: number,\n style: \"normal\" | \"italic\",\n): Promise<ArrayBuffer> {\n const familyParam = `${style === \"italic\" ? \"italic,\" : \"\"}wght@${style === \"italic\" ? \"1,\" : \"\"}${weight}`;\n\n // Get css style sheet with user agent Mozilla/5.0 Firefox/1.0 to ensure non-variable TTF is returned\n const cssCall = await fetch(\n `https://fonts.googleapis.com/css2?family=${family}:${familyParam}&display=swap`,\n {\n headers: {\n \"User-Agent\": \"Mozilla/5.0 Firefox/1.0\",\n },\n },\n );\n\n const css = await cssCall.text();\n const ttfUrl = css.match(/url\\(([^)]+)\\)/)?.[1];\n\n return await fetch(ttfUrl).then((res) => res.arrayBuffer());\n}\n\n/**\n * `/assets` is where the client build output is served from, ahead of the\n * router — a route mounted there could never be reached in production, and in\n * dev it would appear to work. Fail at boot instead of shipping that.\n */\nexport const RESERVED_ROUTE_PREFIX = \"/assets\";\n\n/**\n * `/assets` or anything under it. The boot-time route check and the production\n * static handler both ask this, so a route the router accepts is never one the\n * static handler answers from `dist/client` instead.\n */\nexport function isReservedAssetPath(path: string): boolean {\n return path === RESERVED_ROUTE_PREFIX || path.startsWith(`${RESERVED_ROUTE_PREFIX}/`);\n}\n\nexport function assertNoReservedRoutePaths(routePaths: string[]) {\n const reserved = routePaths.filter(isReservedAssetPath);\n\n if (reserved.length > 0) {\n const many = reserved.length > 1;\n throw new Error(\n `View route path${many ? \"s\" : \"\"} ${reserved.map((path) => `\"${path}\"`).join(\", \")} ` +\n `use${many ? \"\" : \"s\"} the reserved \"${RESERVED_ROUTE_PREFIX}\" prefix. ` +\n `The client build output is served from there before the router runs, so the route would never match. ` +\n `Mount it somewhere else, or set \\`assetRoutes: true\\` on these views' config (route.view or a route.domains group's view).`,\n );\n }\n}\n\n/** A request breaker's `payload.view` as the page response it stands for. */\n/** What a page learns of its host group — `useDomain()` reads it. */\nfunction clientDomain(req: HttpRequest) {\n const resolver = app(DomainRouter).resolver!;\n return {\n ...req.domain!,\n root: resolver.root,\n origin: resolver.publicOrigin(req.rawRequest),\n };\n}\n\nexport function viewBreakResponse(view: Record<string, any>) {\n // `body` is a page of the breaker's own (the same-site bounce); otherwise\n // the error's message, as before.\n const { status = 400, error, body, ...init } = view;\n return new Response(body ?? error?.message, {\n ...init,\n status,\n });\n}\n\n/**\n * The same break for a `.json` navigation, from its `payload.api`: the client\n * router reads `data` and `directive` out of the body.\n */\nexport function viewDataBreakResponse(api: Record<string, any>) {\n const { status = 400, data, directive, headers } = api;\n return new Response(JSON.stringify({ data, directive }), {\n headers,\n status,\n });\n}\n\nexport class ViewRouteDispatcher {\n static token = \"router.view\";\n\n flatViewRoutes: FlatViewRoutes = {};\n routeManifest: Record<string, string[]> = {};\n /** `routeManifest` without file routes — they have no component to render client side. */\n clientRouteManifest: Record<string, string[]> = {};\n componentTree: ComponentTree = [];\n flatComponentTree: string[] = [];\n /**\n * The views gemi's own `/auth` routes render, by name, with the config that\n * requires each (#1040). The servers check these exist before loading them,\n * so a missing one fails with the file and the setting, not a module error.\n */\n requiredViews: Record<string, string> = {};\n /**\n * Route patterns declared `.static()`. Shipped to the browser so a\n * client-side navigation to one becomes a full page load: the page has no\n * client router to render it into.\n */\n staticRoutes: string[] = [];\n root: any = null;\n /**\n * The shell-content hint (#294): React defers any boundary over\n * `progressiveChunkSize` on size alone, so a page that reads fine without\n * JS can go blank the day one more section pushes it over the budget — and\n * nothing else notices the transition (#289 was found by hand-measuring).\n * The reporter owns the once-per-route-per-boot dedup so a hot route\n * doesn't spam the dev console.\n */\n private shellReporter = createShellContentReporter();\n\n /**\n * `modulepreload` elements per route, built once instead of per request —\n * everything they derive from (the built chunk graph, the client entry) is\n * fixed at boot, and React elements are immutable, so one set is reusable\n * across every render of that route.\n *\n * Keyed on the manifest object rather than a plain field so a process that\n * ever renders against two of them — a test suite, most obviously — can\n * never serve one route's chunks out of the other's cache.\n */\n private preloadCache = new WeakMap<\n object,\n { clientEntry: unknown; byRoute: Map<string, any[]> }\n >();\n\n private readonly hooks: Required<\n Pick<\n ViewRouteConfig,\n \"onNotFound\" | \"onRequestStart\" | \"onRequestEnd\" | \"onRequestFail\" | \"onStreamComplete\"\n >\n >;\n\n /** See `ViewRouteConfig.partialRendering`. */\n readonly partialRendering: boolean;\n\n /** See `ViewRouteConfig.localeRouting`. */\n readonly localeRouting: LocaleRouting;\n\n /** See `ViewRouteConfig.detectLocale`. */\n readonly detectLocale: ViewRouteConfig[\"detectLocale\"];\n\n /** See `ViewRouteConfig.theme`. */\n readonly theme: ThemeConfig | false;\n\n /** See `ViewRouteConfig.meta`. */\n readonly defaultMeta: ViewRouteConfig[\"meta\"];\n\n /** See `ViewRouteConfig.notFound`. */\n readonly notFound: ViewRouteConfig[\"notFound\"];\n\n /** See `ViewRouteConfig.publicFiles`. */\n readonly publicFiles: boolean;\n\n /** See `ViewRouteConfig.assetRoutes`. */\n readonly assetRoutes: boolean;\n\n /** See `ViewRouteConfig.translate`. */\n readonly translate: boolean | undefined;\n\n /**\n * `auth` is the app's `auth` config: gemi's `/auth` view routes are mounted\n * for the features it turns on (#1040).\n */\n constructor(config: ViewRouteConfig, auth: AuthConfig = {}) {\n const defaults = viewRouteConfigDefaults();\n\n this.partialRendering = config.partialRendering ?? defaults.partialRendering;\n this.localeRouting = config.localeRouting ?? defaults.localeRouting;\n this.detectLocale = config.detectLocale;\n // On locale-routed views the URL, cookie and `Accept-Language` decide.\n if (this.detectLocale && this.localeRouting !== \"off\") {\n throw new Error(\n '`view.detectLocale` needs `view.localeRouting: \"off\"`: on locale-routed views the URL, the `i18n-locale` cookie and `Accept-Language` decide the locale. A `route.domains` group that inherits it and keeps locale routing can set `detectLocale: undefined`.',\n );\n }\n this.theme = config.theme ?? defaults.theme;\n this.defaultMeta = config.meta;\n this.notFound = config.notFound;\n this.publicFiles = config.publicFiles ?? defaults.publicFiles;\n this.assetRoutes = config.assetRoutes ?? defaults.assetRoutes;\n\n this.translate = config.translate;\n\n this.hooks = {\n onNotFound: config.onNotFound ?? defaults.onNotFound,\n onRequestStart: config.onRequestStart ?? defaults.onRequestStart,\n onRequestEnd: config.onRequestEnd ?? defaults.onRequestEnd,\n onRequestFail: config.onRequestFail ?? defaults.onRequestFail,\n onStreamComplete: config.onStreamComplete ?? defaults.onStreamComplete,\n };\n\n const routes: ViewRoutes = {\n \"/\": config.rootRouter,\n \"/auth\": createAuthViewRouter(auth),\n };\n this.requiredViews = Object.fromEntries(\n authViewRequirements(auth).map(({ view, requiredBy }) => [view, requiredBy]),\n );\n this.flatViewRoutes = createFlatViewRoutes(routes);\n // A group that owns `/assets` (#1015) is served there whenever the build\n // has no file, so its routes are reachable.\n if (!this.assetRoutes) {\n assertNoReservedRoutePaths(Object.keys(this.flatViewRoutes));\n }\n this.routeManifest = createRouteManifest(routes);\n this.clientRouteManifest = Object.fromEntries(\n Object.entries(this.routeManifest).filter(([, views]) => views.at(-1) !== \"FILE\"),\n );\n this.componentTree = createComponentTree(routes);\n this.flatComponentTree = flattenComponentTree(this.componentTree);\n this.staticRoutes = Object.entries(this.flatViewRoutes)\n .filter(([, route]) => route.static)\n .map(([path]) => path);\n // A static view's own document layout is a view module like any other —\n // the servers load every name in this list up front — but it is in no\n // route's chain, so it would not be here otherwise.\n for (const path of this.staticRoutes) {\n const layout = this.flatViewRoutes[path].static?.layout;\n if (layout && !this.flatComponentTree.includes(layout)) {\n this.flatComponentTree.push(layout);\n }\n }\n // The not-found view and its layout (#828): in no route's chain either,\n // and loaded up front like the rest.\n if (this.notFound) {\n for (const view of [this.notFound.view, this.notFound.static?.layout]) {\n if (view && !this.flatComponentTree.includes(view)) {\n this.flatComponentTree.push(view);\n }\n }\n }\n this.root = config.root;\n }\n\n /**\n * Whether every flag gating a route is on for this request.\n *\n * All must pass. Gates accumulate down the tree — a router's, then a layout's,\n * then the route's — and the intersection is the only reading that composes:\n * a route inside a gated section cannot be more reachable than the section.\n */\n private async passesFeatureGates(keys: string[]): Promise<boolean> {\n const features = app(FeatureManager);\n for (const key of keys) {\n if (!(await features.enabled(key))) return false;\n }\n return true;\n }\n\n async onRequestEnd(req: HttpRequest, options: { mintSession?: boolean } = {}) {\n // Idempotent, and normally a no-op by the time it gets here: the request\n // already minted the id up front so that everything which ran in between\n // saw it. Kept as a backstop for any path that reaches the end without\n // having asked. A static view skips it unless it asked (`.static({ session })`).\n if (options.mintSession !== false) {\n ensureSessionId();\n }\n\n return await this.hooks.onRequestEnd(req);\n }\n\n /**\n * Fires the provider's `onStreamComplete` from a stream callback — an\n * observability hook must never break the response body it observes, so\n * sync throws and rejections are logged and swallowed.\n *\n * Call sites must invoke this inside the request scope (see\n * `runInRequestScope` in `handleViewRequest`): stream callbacks are driven\n * by the HTTP server after the handler returned, outside the kernel\n * AsyncLocalStorage — where both the user's hook and this very `Log.error`\n * guard would break.\n */\n private completeStream(req: HttpRequest, summary: StreamSummary) {\n const logError = (err: any) => {\n Log.error(err?.message ?? 'Error in \"onStreamComplete\" event handler', {\n err: JSON.stringify(err),\n });\n };\n try {\n Promise.resolve(this.hooks.onStreamComplete(req, summary)).catch(logError);\n } catch (err) {\n logError(err);\n }\n }\n\n /** See `preloadCache`. */\n private modulePreloadLinks(args: {\n clientEntry?: { module: string; preload: string[] };\n modulePreloadManifest?: Record<string, string[]>;\n views: string[];\n routeKey: string;\n }) {\n const { clientEntry, modulePreloadManifest, views, routeKey } = args;\n\n const build = () => {\n const hrefs = new Set<string>(clientEntry?.preload ?? []);\n for (const view of views) {\n for (const href of modulePreloadManifest?.[view] ?? []) {\n hrefs.add(href);\n }\n }\n return [...hrefs].map((href) =>\n createElement(\"link\", {\n key: `modulepreload:${href}`,\n rel: \"modulepreload\",\n href,\n }),\n );\n };\n\n // Dev: no chunk graph to announce, so there is nothing worth caching.\n if (!modulePreloadManifest) {\n return build();\n }\n\n let cached = this.preloadCache.get(modulePreloadManifest);\n if (!cached || cached.clientEntry !== clientEntry) {\n cached = { clientEntry, byRoute: new Map() };\n this.preloadCache.set(modulePreloadManifest, cached);\n }\n let links = cached.byRoute.get(routeKey);\n if (!links) {\n links = build();\n cached.byRoute.set(routeKey, links);\n }\n return links;\n }\n\n /**\n * A `.static()` view's document: the same tree a hydrated view renders, but\n * settled before the first byte and sent with no client runtime — no entry\n * module, `modulepreload`s, `__GEMI_DATA__`, theme script, query or\n * dictionary payloads, or React's streaming scripts. Islands that rendered\n * add their loader (`injectIslands`).\n */\n private async renderStatic(args: {\n req: HttpRequest;\n runInRequestScope: <T>(fn: () => T) => T;\n staticView: StaticViewOptions;\n currentViews: string[];\n data: any;\n serverQueries: ServerQueryStore;\n headers: Headers;\n getStyles: (p: string[], options?: { static?: boolean; layout?: string }) => Promise<any[]>;\n viewImportMap: Record<string, any>;\n viewModules?: Record<string, any>;\n resolveIsland?: IslandResolver;\n buildId?: string;\n status: number;\n }) {\n const { req, runInRequestScope, staticView, currentViews, data, serverQueries, headers } =\n args;\n\n let rootLayout: unknown;\n if (staticView.layout) {\n rootLayout = args.viewImportMap[staticView.layout];\n if (!rootLayout) {\n throw new Error(\n `The static layout \"${staticView.layout}\" was not found. It is a view path: a file at app/views/${staticView.layout}.tsx whose default export renders the document.`,\n );\n }\n }\n\n const styles = await args.getStyles(currentViews, { static: true, layout: staticView.layout });\n\n serverQueries.markRenderStart();\n const dictionarySink = createDictionarySink();\n const deadline = new AbortController();\n const deadlineTimer = setTimeout(() => deadline.abort(), STREAM_DEADLINE_MS);\n const onError = (error: unknown) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(error);\n }\n };\n // Each island is its own React root in the browser, so it is rendered as\n // one here too: the HTML `hydrateRoot` sees is exactly what this produced,\n // `useId` included (hence the prefix), and nothing from the page's context\n // leaks in on the server that the browser would not have.\n const collector = createStaticRenderCollector(async (element, identifierPrefix) => {\n const stream = await renderToReadableStream(element, {\n signal: deadline.signal,\n identifierPrefix,\n progressiveChunkSize: Number.MAX_SAFE_INTEGER,\n onError,\n });\n await stream.allReady.catch(() => {});\n return await new Response(stream).text();\n });\n\n try {\n // `.static({ script })` (#919): picked after the handler, like `version`.\n // Inside the `try`, as `version` is, so one that throws (or names no\n // file) still completes the request (the `finally`) like a failed render.\n let script: DocumentScript | undefined;\n const scriptName =\n typeof staticView.script === \"function\"\n ? await runInRequestScope(() => (staticView.script as Function)(req))\n : staticView.script;\n if (scriptName) {\n script = { name: scriptName, source: await documentScriptSource(scriptName) };\n }\n // `.static({ navigation })`: what the runtime compares before swapping\n // a fetched page in.\n let navigation: StaticNavigationMarker | undefined;\n if (staticView.navigation) {\n const options = staticView.navigation === true ? {} : staticView.navigation;\n const version = options.version\n ? String(await runInRequestScope(() => options.version!(req)))\n : \"\";\n // The script is part of the identity: a page is swapped in only when\n // the script it needs is the one already running, so it never runs\n // twice in one document and never goes missing.\n // `version` goes last: it is the only part that may hold a `|`.\n navigation = {\n identity: [staticView.layout ?? \"\", args.buildId ?? \"\", script?.name ?? \"\", version].join(\n \"|\",\n ),\n prefetch: options.prefetch === \"none\" ? \"none\" : \"intent\",\n };\n }\n const stream = await renderToReadableStream(\n createElement(StaticRenderContext.Provider, {\n value: collector,\n children: createElement(Fragment, {\n children: [\n ...styles,\n createElement(this.root, {\n data,\n viewImportMap: args.viewImportMap,\n viewModules: args.viewModules,\n serverQueries,\n dictionarySink,\n rootLayout,\n key: \"root\",\n }),\n ],\n }),\n }),\n {\n signal: deadline.signal,\n // With `allReady` awaited below, this keeps every boundary inline\n // rather than split out behind a reveal script (see `settled`).\n progressiveChunkSize: Number.MAX_SAFE_INTEGER,\n onError,\n },\n );\n await stream.allReady.catch(() => {});\n const html = spliceIslandSlots(await new Response(stream).text());\n\n return new Response(\n injectIslands(\n html,\n collector,\n args.resolveIsland,\n process.env.NODE_ENV !== \"production\",\n navigation,\n script,\n ),\n { status: args.status, headers },\n );\n } finally {\n clearTimeout(deadlineTimer);\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n );\n }\n }\n\n private async render(props: {\n req: HttpRequest;\n /**\n * Re-enters the kernel + request AsyncLocalStorage scopes captured while\n * the request was live. Every stream lifecycle callback below runs after\n * the handler returned — driven by the HTTP server, outside both scopes —\n * so user hooks are always invoked through this.\n */\n runInRequestScope: <T>(fn: () => T) => T;\n viewData: any;\n pathname: string;\n currentPathName: string;\n csrfTokenHMAC: Buffer;\n headers: any;\n url: URL;\n i18n: any;\n user: any;\n serverQueries: ServerQueryStore;\n userAgent: string | null;\n noStream: boolean;\n /** The route said `\"no-theme\"`. */\n noTheme?: boolean;\n params: any;\n breadcrumbs: any;\n urlLocaleSegment?: string;\n meta: any;\n isOgRequest?: boolean;\n appId: string;\n features: Record<string, boolean>;\n /** The matched route's `.static()` options; absent for a hydrated view. */\n staticView?: StaticViewOptions;\n /**\n * The status of a refusal that turned this request into the `404` view\n * (403 or 404). Absent, an unmatched request answers 404.\n */\n refusedStatus?: number;\n }) {\n const {\n req,\n runInRequestScope,\n csrfTokenHMAC,\n currentPathName,\n headers,\n i18n,\n params,\n pathname,\n serverQueries,\n userAgent,\n noStream,\n noTheme,\n url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta,\n isOgRequest,\n appId,\n features,\n staticView,\n } = props;\n\n // A static view has no script and one body for every visitor, so it must\n // not vary on the visitor's cookie.\n const theme: ThemeData | null =\n this.theme === false || noTheme || staticView\n ? null\n : {\n cookie: this.theme.cookie ?? DEFAULT_THEME_COOKIE,\n default: this.theme.default ?? null,\n value: readThemeCookie(req, this.theme.cookie ?? DEFAULT_THEME_COOKIE),\n };\n\n // Keyed like the `.json` envelope: the path without its locale segment,\n // so `/de-DE` and `/de-DE/` both land on `/` (#948).\n const pageDataKey = urlLocaleSegment\n ? splitLocalePrefix(pathname, [urlLocaleSegment]).pathname\n : pathname;\n\n const result = {\n kind: \"view\",\n data: {\n meta,\n pageData: {\n [pageDataKey]: viewData,\n },\n __csrf: csrfTokenHMAC.toString(\"base64\"),\n // Placeholder — re-snapshotted at render time (below) so everything\n // that resolved while styles and modules loaded still makes the\n // document payload instead of streaming.\n prefetchedData: {} as Record<string, Record<string, any>>,\n i18n,\n auth: { user },\n routeManifest: this.clientRouteManifest,\n breadcrumbs,\n router: {\n urlLocaleSegment,\n pathname: currentPathName,\n params,\n currentPath: pathname,\n searchParams: url.search,\n is404: !currentPathName ? true : false,\n // Only on the document: a client-side navigation never changes host.\n domain: req.domain ? clientDomain(req) : null,\n },\n appId,\n // Evaluated key -> value only. Rules, conditions, segment criteria and\n // the bucketing seed stay on the server: with the seed and a subject id\n // anyone could compute another user's bucket for every flag, including\n // unreleased ones.\n features,\n // `null` when these views run no theme script (`theme: false`,\n // `\"no-theme\"`); `ThemeProvider` then starts on `\"light\"` as before.\n theme,\n componentTree: [[\"404\", []], ...this.componentTree],\n // Only when there are any, so an app without static views ships the\n // payload it always did.\n ...(this.staticRoutes.length > 0 ? { staticRoutes: this.staticRoutes } : {}),\n },\n head: {},\n };\n\n const Root = this.root;\n const currentViews = this.routeManifest[currentPathName];\n return async (params: {\n /**\n * `static` is set for a static view, which has no client to load CSS\n * later: the styles must cover the views' whole import graph. `layout`\n * is its own document layout, whose CSS then replaces the app's\n * stylesheet.\n */\n getStyles: (p: string[], options?: { static?: boolean; layout?: string }) => Promise<any[]>;\n viewImportMap: any;\n bootstrapModules?: string[];\n loaders: string;\n cssManifest: Record<string, string[]>;\n ogMap: Record<string, any>;\n /**\n * Full view modules (not just default exports) so `Route` can render a\n * view's `Loading`/`Error` exports on the server — a streamed shell\n * carries real fallbacks, and they must match what the client hydrates.\n */\n viewModules?: Record<string, any>;\n /**\n * The client entry, when the server wants it booted from the bootstrap\n * script instead of handed to React as a `bootstrapModule`: `module` is\n * imported, `preload` is every chunk that import pulls in.\n *\n * React preloads its own `bootstrapModules` with `fetchPriority=\"low\"`\n * hardcoded (Fizz has no option for it), which parks the one module\n * that unblocks hydration behind everything else the page is fetching.\n * Emitting the `modulepreload` ourselves gets it the browser's default\n * script priority, and it is the same request either way — the\n * `import()` below consumes the preloaded module (#352).\n */\n clientEntry?: { module: string; preload: string[] };\n /**\n * Built chunk URLs per view name, like `cssManifest`. Only the current\n * route's chain is preloaded.\n */\n modulePreloadManifest?: Record<string, string[]>;\n /**\n * The prefix the client build was built with. `cssManifest` carries\n * manifest paths, not URLs — they double as the `id` of the `<style>`\n * each one is inlined into — so the client needs the base to fetch one.\n */\n assetBase?: string;\n /** Where island client modules are served from; see `injectIslands`. */\n resolveIsland?: IslandResolver;\n /**\n * Identifies the client build, so a static page with `navigation` loads\n * a page of another deploy in full rather than swapping it in.\n */\n buildId?: string;\n }) => {\n const {\n bootstrapModules = [],\n loaders,\n getStyles,\n viewImportMap,\n cssManifest,\n ogMap,\n viewModules,\n clientEntry,\n modulePreloadManifest,\n assetBase,\n resolveIsland,\n buildId,\n } = params;\n\n // `clientEntry` and `bootstrapModules` are two spellings of the same job,\n // and running both would boot the entry twice — once through React's\n // `<script type=\"module\">`, once through the `import()` below. The entry\n // wins where it is offered, so React is handed nothing and never emits\n // the `fetchPriority=\"low\"` preload that made it worth taking over.\n const reactBootstrapModules = clientEntry ? [] : bootstrapModules;\n\n const bootstrapScriptContent = (data: string) =>\n [\n data,\n `window.loaders=${loaders}`,\n // Nothing imports the entry when the server routed it through\n // `clientEntry` — the bootstrap script is where it starts. The\n // `.catch` re-throws out of the microtask because a bare `import()`\n // here would report a chunk that 404s after a deploy, or an entry\n // that throws while evaluating, as an `unhandledrejection` only —\n // which `window.onerror`-based reporters do not see. The page would\n // then sit permanently unhydrated with nothing raised.\n ...(clientEntry\n ? [\n `import(${JSON.stringify(clientEntry.module)}).catch(function(e){setTimeout(function(){throw e})})`,\n ]\n : []),\n ].join(\";\");\n\n if (isOgRequest) {\n let ogHandler = null;\n let ogComponent = null;\n // `currentViews` is `undefined` on an unmatched route. Without the\n // guard `GET /nope.og` throws here and `httpProd` answers with the raw\n // stack trace, where the 404 below is what a crawler should get.\n for (const view of currentViews ?? []) {\n if (typeof ogMap[view] === \"function\") {\n ogComponent = view;\n ogHandler = ogMap[view];\n }\n }\n if (!ogHandler) {\n return new Response(\"Not found\", { status: 404 });\n }\n const data = Object.values(result.data.pageData)[0];\n\n try {\n await renderToReadableStream(createElement(ogHandler, data[ogComponent]), {\n onError: () => {},\n });\n } catch (err) {\n const { fonts, ...options } = err.satoriOptions;\n const _fonts = await Promise.all(\n fonts.map((font) => {\n return getTtfFont(font.name, font.weight, font.style).then((data) => ({\n ...font,\n data,\n }));\n }),\n );\n\n const ogHeaders = new Headers(headers);\n ogHeaders.set(\"Content-Type\", \"image/png\");\n const [satori, sharp] = await Promise.all([\n loadSatori(),\n loadSharp(\"Rendering an OG image\"),\n ]);\n const svg = await satori(err.jsx, { ...options, fonts: _fonts });\n const png = await sharp(Buffer.from(svg))\n .png({\n compressionLevel: 0,\n effort: 10,\n })\n .toBuffer();\n\n return new Response(new Uint8Array(png), { headers: ogHeaders });\n }\n\n return new Response(\"data\");\n }\n\n if (staticView && currentPathName) {\n return await this.renderStatic({\n req,\n runInRequestScope,\n staticView,\n currentViews,\n data: result.data,\n serverQueries,\n headers,\n getStyles,\n viewImportMap,\n viewModules,\n resolveIsland,\n buildId,\n status: 200,\n });\n }\n\n // `notFound` (#828): the not-found document is a static one, rendered\n // with these views' own not-found view where the app's `404` would be.\n // The client router mounts `\"404\"` for it, so that is the name it is\n // given here; `onNotFound`'s props are under it in `pageData`.\n if (staticView && !currentPathName && this.notFound) {\n const view = this.notFound.view;\n if (!viewImportMap[view]) {\n throw new Error(\n `The not-found view \"${view}\" (route.view.notFound) was not found. It is a view path: a file at app/views/${view}.tsx.`,\n );\n }\n return await this.renderStatic({\n req,\n runInRequestScope,\n staticView,\n currentViews: [view],\n data: result.data,\n serverQueries,\n headers,\n getStyles,\n viewImportMap: { ...viewImportMap, \"404\": viewImportMap[view] },\n viewModules: viewModules && { ...viewModules, \"404\": viewModules[view] },\n resolveIsland,\n buildId,\n status: props.refusedStatus ?? 404,\n });\n }\n\n result.data[\"cssManifest\"] = cssManifest;\n // Client-side navigation reaches a route's chunks the same serial way a\n // hard load did, one `import()` per level, so it needs the same list the\n // shell head carries — shipped like `cssManifest` and warmed by\n // `preloadRouteModules` (#352).\n result.data[\"modulePreloadManifest\"] = modulePreloadManifest ?? {};\n // Only when there is one: the client's default is the root-relative `/`,\n // and a payload without the key is the one every app shipped before it.\n if (assetBase && assetBase !== \"/\") {\n result.data[\"assetBase\"] = assetBase;\n }\n // What the client compares a navigation's `x-gemi-build` with (#1056).\n // Not in dev, which has one build.\n if (buildId && buildId !== \"dev\") {\n result.data[\"buildId\"] = buildId;\n }\n\n // Hydration reaches each route segment through `window.loaders`, i.e. an\n // `import()` the browser cannot see until the entry has run — and it\n // sees a nested chunk only once its parent has parsed. On a real\n // network that serial chain shows every boundary's `Loading` fallback\n // where server-rendered content already is, collapsing the page height\n // and restoring it a round trip later (#352). Preloaded in the shell\n // head, the whole chain is fetched in parallel with the entry and is\n // resident before hydration asks for it.\n //\n // An unmatched route leaves `currentViews` undefined but still renders a\n // document — the `404` view, the one route class most likely to be hit\n // cold — so it preloads that view's chain, mirroring the `[\"404\"]` the\n // client mounts.\n const preloadLinks = this.modulePreloadLinks({\n clientEntry,\n modulePreloadManifest,\n views: currentViews ?? [\"404\"],\n routeKey: currentPathName ?? \"404\",\n });\n\n // The `404` document has no route views; it is styled with the `404`\n // view's chain, as it is preloaded above (#951).\n const styles = await getStyles(currentViews ?? [\"404\"]);\n\n // Everything resolved by now ships in the document payload; everything\n // still in flight streams in behind it. The snapshot marks its entries\n // as shipped so the injector doesn't send them twice.\n result.data.prefetchedData = serverQueries.snapshotResolved();\n serverQueries.markRenderStart();\n\n const deadline = new AbortController();\n const deadlineTimer = setTimeout(() => deadline.abort(), STREAM_DEADLINE_MS);\n\n // Decided before the render call because it changes *render-time*\n // behavior: React splits any boundary bigger than\n // `progressiveChunkSize` (~12.8KB) out of the shell as it renders, and\n // awaiting `allReady` afterwards settles the data but cannot undo the\n // split — a non-JS reader would see a body whose content is parked in\n // `<div hidden>` + `$RC()` reveal scripts (#286, #289). Two audiences\n // need the settled document: crawlers (detected by UA — progressive\n // chunking only exists to reach a browser sooner, which is worthless to\n // a client that buffers the whole response) and routes that declared\n // `\"no-stream\"` (marketing/content pages that must render for\n // JS-disabled humans, text browsers, and failed-script loads too).\n const settled = isBotUserAgent(userAgent) || noStream;\n\n // Dev-only: collect the streamed bytes so the close hook can measure\n // what a no-JS reader gets (#294). A settled document carries its\n // content inline by construction — nothing to measure — and a route\n // already hinted this boot skips the collection entirely.\n const shellObserver =\n process.env.NODE_ENV !== \"production\" &&\n !settled &&\n currentPathName &&\n this.shellReporter.shouldObserve(currentPathName)\n ? createShellContentObserver()\n : null;\n\n // Which dictionaries a page reads is only knowable once it has rendered,\n // so they cannot ride the `__GEMI_DATA__` snapshot (serialized below,\n // before the render starts). The sink collects them during the render and\n // the injector streams each one into the document.\n const dictionarySink = createDictionarySink();\n\n try {\n const stream = await renderToReadableStream(\n createElement(Fragment, {\n children: [\n // React hoists these into `<head>`, ahead of the inlined\n // stylesheets, so the browser starts the fetches on the shell's\n // first bytes.\n ...preloadLinks,\n ...styles,\n ...(theme\n ? [\n createElement(\"script\", {\n key: \"theme-script\",\n dangerouslySetInnerHTML: {\n __html: themeScriptSource(\n htmlSafeJson({ cookie: theme.cookie, default: theme.default }),\n ),\n },\n }),\n ]\n : []),\n createElement(Root, {\n data: result.data,\n viewImportMap,\n viewModules,\n serverQueries,\n dictionarySink,\n key: \"root\",\n }),\n ],\n }),\n {\n bootstrapScriptContent: bootstrapScriptContent(\n `window.__GEMI_DATA__ = ${htmlSafeJson(result.data)}`,\n ),\n bootstrapModules: reactBootstrapModules,\n signal: deadline.signal,\n ...(settled ? { progressiveChunkSize: Number.MAX_SAFE_INTEGER } : {}),\n // A query rejecting inside a streamed segment is expected: React\n // client-renders that boundary and the browser surfaces the error\n // through its own fetch. Log it and move on.\n onError(error: unknown) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(error);\n }\n },\n },\n );\n\n stream.allReady\n .catch(() => {})\n .finally(() => clearTimeout(deadlineTimer));\n\n // A settled response waits for everything before the first byte.\n // Works only together with the `progressiveChunkSize` override\n // above: this waits for the data, that keeps the content inline\n // instead of script-revealed.\n if (settled) {\n await stream.allReady.catch(() => {});\n }\n\n return new Response(\n injectQueryPayloads(stream, serverQueries, {\n // A settled body has no shell-then-stream phase — its first byte\n // already carries everything — so only progressive responses mark\n // one; the summary then reports `shellAt === settledAt` for the\n // settled ones.\n onShell: settled ? undefined : () => serverQueries.markShell(),\n onChunk: shellObserver?.onChunk,\n // The APM-visible end of the request: the body closed, not the\n // handler returned (that was at time-to-shell).\n onClose: () =>\n runInRequestScope(() => {\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted));\n if (shellObserver) {\n // The injector's `onChunk` collected the exact bytes the\n // visitor got; measured once the body closed (#294).\n this.shellReporter.report(currentPathName, shellObserver.measure());\n }\n }),\n },\n dictionarySink),\n {\n status: !currentPathName ? (props.refusedStatus ?? 404) : 200,\n headers,\n },\n );\n } catch (err) {\n clearTimeout(deadlineTimer);\n // The document below writes the message and stack into the page for\n // the dev overlay. In production they would reach whoever loaded the\n // page (#523), so the error goes on to the server's last-resort\n // handler instead, which answers a generic 500 and reports it. No\n // body will close to end the span, so it ends here.\n if (process.env.NODE_ENV === \"production\") {\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n );\n throw err;\n }\n const stream = await renderToReadableStream(createElement(\"div\"), {\n bootstrapScriptContent: bootstrapScriptContent(\n `window.error= ${htmlSafeJson(err.message)}; window.stack_trace=${htmlSafeJson(err.stack)};window.__GEMI_DATA__ = ${htmlSafeJson(result.data)}`,\n ),\n bootstrapModules:\n process.env.NODE_ENV === \"development\"\n ? [\"/render-error.js\", ...reactBootstrapModules]\n : reactBootstrapModules,\n });\n // The failed-render body still closes, and the span-ending hook is\n // pinned to the body closing, not the render succeeding — a span that\n // only ends on happy paths leaks for exactly the requests worth\n // seeing. No shell mark: this body is one settled error document.\n return new Response(\n injectQueryPayloads(stream, serverQueries, {\n onClose: () =>\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n ),\n }),\n {\n status: !currentPathName ? (props.refusedStatus ?? 404) : 200,\n headers,\n },\n );\n }\n };\n }\n\n /**\n * The status a view route's middleware or loader error answers with as the\n * app's `404` view, or `null` for an error that is not a refusal and goes\n * on as before (#726):\n *\n * - a missing record (`RecordNotFoundError`): 404;\n * - a request breaker whose page answer is a 403 or a 404\n * (`InsufficientPermissionsError`, `NotFoundError`, `FileNotFoundError`,\n * or an app's own breaker with that status): its status;\n * - a policy denial: 403, reported through `onRequestFail` as before;\n * - a 403 or 404 from a loader's `Query.instant` (already reported): its\n * status.\n *\n * Any other breaker (a redirect, a 409) keeps its own answer.\n */\n private viewRefusalStatus(\n httpRequest: HttpRequest,\n err: unknown,\n reportedQueryErrors: Set<unknown>,\n ): number | null {\n if (isRecordNotFoundError(err)) {\n return 404;\n }\n if ((err as any)?.kind === GEMI_REQUEST_BREAKER_ERROR) {\n const status = (err as any).payload?.view?.status;\n return status === 403 || status === 404 ? status : null;\n }\n if (isPolicyDeniedError(err)) {\n if (!reportedQueryErrors.has(err)) {\n this.hooks.onRequestFail(httpRequest, err);\n }\n console.error(err);\n return 403;\n }\n if (err instanceof QueryError && (err.status === 403 || err.status === 404)) {\n return err.status;\n }\n return null;\n }\n\n async handleViewRequest(req: Request, carried?: CarriedContext | null) {\n const url = new URL(req.url);\n const isViewDataRequest = url.pathname.endsWith(\".json\");\n const isOgRequest = url.pathname.endsWith(\".og\");\n const urlPathnameWithLocale = url.pathname.replace(\".json\", \"\").replace(\".og\", \"\");\n\n const [, maybeLocale, ...rest] = urlPathnameWithLocale.split(\"/\");\n let urlPathname = urlPathnameWithLocale;\n let urlLocaleSegment = null;\n let urlLocale: string | null = null;\n\n const translator = app(Translator);\n\n // The route the path names as it stands, before any locale is read off it.\n const directMatch = matchViewRoute(this.flatViewRoutes, urlPathnameWithLocale);\n\n // Whether this request takes part in locale routing at all: a locale-aware\n // app, on a view tree that did not opt out (`localeRouting: \"off\"`, e.g. a\n // domain group serving pages that are not the app's own UI), for a route\n // without the `\"no-locale\"` directive. Without it, the URL never carries a\n // locale, nothing redirects, and nothing is detected per visitor.\n const localeRouted =\n translator.isLocaleAware &&\n this.localeRouting === \"prefix\" &&\n !directMatch?.route.middleware.includes(NO_LOCALE_DIRECTIVE);\n\n if (localeRouted && translator.supportedLocales.includes(maybeLocale)) {\n urlPathname = `/${rest.join(\"/\")}`;\n urlLocaleSegment = maybeLocale;\n urlLocale = maybeLocale;\n }\n\n // A page's address has no trailing slash: `/about/` (or `/about//`) is\n // sent for good to `/about`, query and all, since no route pattern\n // matches it and it would otherwise be a 404 (`/:path*` included). Only a\n // document request, and only a path no route matches as it stands; ahead\n // of the locale redirects, which keep the path's slash. A path that starts\n // with `//` is left alone: its slashless form would be a protocol-relative\n // Location naming another host.\n if (\n (req.method === \"GET\" || req.method === \"HEAD\") &&\n !isViewDataRequest &&\n !isOgRequest &&\n directMatch === null &&\n url.pathname.endsWith(\"/\") &&\n !url.pathname.startsWith(\"//\")\n ) {\n const slashless = url.pathname.replace(/\\/+$/, \"\");\n // A locale's root keeps its slash (`/de-DE/` is its home page, #948).\n const localeRoot = localeRouted && translator.supportedLocales.includes(slashless.slice(1));\n if (slashless && !localeRoot) {\n return new Response(\"\", {\n status: 301,\n headers: { Location: `${slashless}${url.search}` },\n });\n }\n }\n\n // A first path segment is not necessarily a locale, and the shapes overlap:\n // `de-luxe` is a language `de` with a legal 4-letter subtag, `en-suite` the\n // same for `en`. No tightening of the tag pattern separates them, so route\n // existence is the signal — a path the app actually serves is served, and\n // only one it does not is read as a locale that needs redirecting. Without\n // this, `/de-luxe` answered `302 /de-DE` and the page was gone.\n const pathIsARoute = urlLocale === null && directMatch !== null;\n\n if (localeRouted && !isOgRequest && urlLocale === null && !pathIsARoute) {\n // A locale prefix the app doesn't serve verbatim but can map onto one it\n // does — `/en/about` → `/en-US/about`, `/de-AT/about` → `/de-DE/about` —\n // is sent to that locale's URL rather than rendered as an unknown path.\n const resolvedLocale = resolveLocale(\n maybeLocale,\n translator.supportedLocales,\n translator.defaultLocale,\n );\n if (resolvedLocale) {\n // `rest` is the path after the locale segment; `.json` is re-appended\n // so a route-data request lands on the data it asked for.\n const restPath = rest.length ? `/${rest.join(\"/\")}` : \"\";\n return new Response(\"\", {\n status: 302,\n headers: {\n \"Cache-Control\": \"private, no-cache, no-store, max-age=0, must-revalidate\",\n Location: `/${resolvedLocale}${restPath}${isViewDataRequest ? \".json\" : \"\"}${url.search}`,\n },\n });\n }\n }\n\n if (localeRouted && !isOgRequest) {\n const locale = app(Translator).detectLocale(\n new HttpRequest(req, {}, \"view\", urlPathname),\n );\n\n if (urlLocale === null && locale !== translator.defaultLocale) {\n const _pathname = url.pathname === \"/\" ? \"\" : url.pathname;\n return new Response(\"\", {\n status: 302,\n headers: {\n \"Cache-Control\": \"private, no-cache, no-store, max-age=0, must-revalidate\",\n Location: `/${locale}${_pathname}${url.search}`,\n },\n });\n }\n }\n\n urlPathname = urlPathname.replace(\"//\", \"/\");\n let handlers: ViewRouteExec[] = [];\n let middlewares: (RouterMiddleware | string)[] = [];\n let currentPathName: null | string = null;\n let params: Record<string, any> = {};\n let partial: PartialRenderInfo | null = null;\n // `\"no-stream\"` in a route's (or its router's) middleware list opts the\n // route out of progressive streaming: everyone gets the fully settled\n // document a bot UA would (#289). It is a directive read here, not real\n // middleware — the middleware runner ignores unknown aliases.\n let noStream = false;\n let noTheme = false;\n // Flags gating the matched route, checked once the request scope is open\n // and middleware has run.\n let featureGates: string[] = [];\n // The matched route's `.static()` options, if it has any.\n let staticView: StaticViewOptions | undefined;\n // Whether the path names a route at all, whatever happens to it later.\n let matched = false;\n // A `this.file(...)` route: an asset, not a page.\n let fileRoute = false;\n\n try {\n let match = matchViewRoute(this.flatViewRoutes, urlPathname);\n // A `\"no-locale\"` route has no locale-prefixed URL: `/tr-TR/about` is\n // not its page under another name.\n if (urlLocale && match?.route.middleware.includes(NO_LOCALE_DIRECTIVE)) {\n match = null;\n }\n if (match) {\n matched = true;\n currentPathName = match.routePath;\n params = match.params;\n handlers = match.route.exec;\n middlewares = match.route.middleware;\n featureGates = match.route.features;\n noStream = middlewares.includes(\"no-stream\");\n noTheme = middlewares.includes(NO_THEME_DIRECTIVE);\n staticView = match.route.static;\n fileRoute = match.route.segments.at(-1)?.viewPath === \"FILE\";\n\n // Only navigations skip work. A document request renders the whole\n // tree, and the client has nothing to carry forward yet.\n if (isViewDataRequest && this.partialRendering) {\n const from = req.headers.get(PARTIAL_RENDER_HEADER);\n const plan = resolvePartialRender({\n flatViewRoutes: this.flatViewRoutes,\n supportedLocales: app(Translator).supportedLocales,\n from,\n origin: url.origin,\n to: { segments: match.route.segments, params, search: url.search },\n });\n\n if (plan.startIndex > 0) {\n handlers = handlers.slice(plan.startIndex);\n partial = { from, carriedViews: plan.carriedViews };\n }\n }\n }\n } catch (err) {\n // TODO: Handle this\n throw err;\n }\n\n // A static view's handler output reaches the browser only as the markup\n // it renders, and an app may rely on that (return a whole record, render\n // part of it). The `.json` payload would hand over all of it, and nothing\n // asks for one: the client router loads static routes as documents.\n if (staticView && isViewDataRequest) {\n return new Response(\"Not found\", { status: 404 });\n }\n\n const httpRequest = new HttpRequest(req, params, \"view\", currentPathName);\n this.hooks.onRequestStart(httpRequest);\n return await RequestContext.run(httpRequest, async () => {\n let pageData: {\n cookies: Set<string>;\n headers: Headers;\n currentPathName: string | null;\n data: Record<string, any>;\n prefetchedData: Record<string, any>;\n user: any; // TODO: fix type\n params: Record<string, any>;\n urlLocaleSegment: string | null;\n meta: any;\n appId: string;\n features: Record<string, boolean>;\n } | null = null;\n const ctx = RequestContext.getStore();\n // The HTTP server drives the response body — and therefore every stream\n // lifecycle callback — after `app.fetch` returned, outside the kernel\n // AsyncLocalStorage scope and outside this request's context (the same\n // phenomenon `createServerQueryFetcher` documents for render-discovered\n // fetches). Facades and `req.ctx()` inside `onStreamComplete` /\n // `onRequestFail` would break there, so capture both scopes while they\n // are live and re-enter them around every hook invocation below.\n const kernelStore = kernelContext.getStore();\n const runInRequestScope = <T>(fn: () => T): T =>\n kernelContext.run(kernelStore, () => RequestContext.runWith(ctx, fn));\n // Before middleware and handlers, so every `Query.prefetch` along the\n // way lands in one live, request-scoped store.\n ctx.serverQueries = new ServerQueryStore(createServerQueryFetcher(req));\n // A query rejecting during the streamed render (or a fire-and-forget\n // prefetch) never throws the handler, so the catch below can't see it —\n // error tracking wired to `onRequestFail` would miss server-side work\n // that failed. Route rejections through the hook here. The identity set\n // keeps `Query.instant` rethrows — which DO reach the catch — from\n // reporting the same error twice.\n const reportedQueryErrors = new Set<any>();\n ctx.serverQueries.onQueryFail((entry) => {\n reportedQueryErrors.add(entry.error);\n try {\n // In scope, and with the rejection handler attached *inside* the\n // scope, so a facade-using hook works for render-phase failures\n // exactly as it does for handler-phase ones.\n runInRequestScope(() =>\n Promise.resolve(this.hooks.onRequestFail(httpRequest, entry.error)).catch(\n () => {},\n ),\n );\n } catch {\n // An error-reporting hook must not break the settle chain it\n // observes — a suspended segment is waiting on it.\n }\n });\n\n // A static view is one body for every visitor, so it sets no cookie of\n // its own — no `i18n-locale`, `session_id` or `csrf_token` — unless it\n // asked for one. A per-visitor `Set-Cookie` is what keeps a CDN from\n // caching a page. The handler and middleware still set what they set.\n //\n // A path no route matches is already known to render `notFound`, so it\n // takes that page's policy (#828).\n //\n // A file route is an asset, and gets the same treatment as a static\n // view with no opt-ins (#1094).\n const staticCookies = staticCookiePolicy(\n fileRoute\n ? {}\n : (staticView ??\n (currentPathName === null && !isViewDataRequest\n ? this.notFound?.static\n : undefined)),\n );\n\n if (urlLocale) {\n const locale = urlLocale.replaceAll(\"/\", \"\");\n Lang.setLocale(locale, { cookie: staticCookies.locale });\n } else if (translator.isLocaleAware && !localeRouted) {\n // Out of locale routing: the default locale, not the visitor's, and no\n // cookie, unless `detectLocale` names one below. Middleware may still\n // pick one with `Lang.setLocale`.\n ctx.setLocale(translator.defaultLocale);\n } else {\n Lang.setLocale(undefined, { cookie: staticCookies.locale });\n }\n\n const httpRequest = ctx.req;\n\n // Before middleware, so that everything downstream — middleware, handlers,\n // feature-flag bucketing — reads one id, and the same one the browser is\n // about to be given. Both the document and the `.json` navigation path\n // come through here, which is the point: minting only on the document path\n // left a client-side navigation with no subject to bucket on.\n if (staticCookies.session) {\n ensureSessionId();\n }\n\n try {\n // A view middleware can resolve the record the route is about — the\n // workspace named in the path, the membership it implies — and raise\n // `RecordNotFoundError` doing it. That means here what it means in a\n // loader, so it is caught rather than left to the break path below:\n // the answer is not a refusal, it is this request becoming an\n // unmatched one.\n //\n // A refusal is caught the same way (#726): a 403 or 404 request\n // breaker (`InsufficientPermissionsError`, a resource policy's\n // `NotFoundError`), or a policy denial. It used to be answered with\n // the breaker's message as a plain-text body, which a browser shows\n // as a blank page. It renders the app's `404` view instead, under the\n // refusal's own status.\n let refusedStatus: number | null = null;\n\n // These views' own locale (#1092): before middleware and whether or\n // not a route matched, so the not-found page sees it too. Here rather\n // than above so a throw reaches `onRequestFail`.\n if (this.detectLocale && !localeRouted && app(Translator).isLocaleAware) {\n const { supportedLocales, defaultLocale } = app(Translator);\n const detected = await this.detectLocale(httpRequest, { supportedLocales, defaultLocale });\n const locale =\n typeof detected === \"string\"\n ? resolveLocale(detected, supportedLocales, defaultLocale)\n : null;\n if (locale) {\n ctx.setLocale(locale);\n }\n }\n\n try {\n await app(MiddlewareRegistry).runMiddleware(middlewares);\n } catch (err) {\n refusedStatus = this.viewRefusalStatus(httpRequest, err, reportedQueryErrors);\n if (refusedStatus === null) {\n throw err;\n }\n }\n\n // After middleware, not at match time: `auth` is what puts the user on\n // the request context, and a route gated on a flag that targets signed-in\n // users has to see them. The route table is built once at boot and is\n // shared by every visitor, so this is the only place a per-user decision\n // about a route can be made.\n //\n // Clearing the match rather than throwing is what produces the real 404:\n // the framework renders the application's `404` view exactly when\n // `currentPathName` is null, so a gated route becomes indistinguishable\n // from one that was never defined — status, view and component tree\n // included. A `RequestBreakerError` here would instead return a bare\n // text body, which both looks broken and confirms the route exists.\n //\n // A missing record or a refusal joins the gate here rather than getting a branch of\n // its own, because the outcome is the same one and it is spelled in\n // exactly these three assignments. Short-circuited: a request whose\n // middleware already found nothing must not go on to evaluate flags.\n if (\n refusedStatus !== null ||\n (featureGates.length > 0 && !(await this.passesFeatureGates(featureGates)))\n ) {\n currentPathName = null;\n handlers = [];\n // `routePath` too, and not only for tidiness: it is what selects this\n // request's translation namespace below, so leaving it would serve the\n // gated route's dictionary alongside its 404 while a genuinely\n // unmatched path carries none. For an unannounced feature the\n // translation keys are usually the most descriptive thing about it,\n // which makes that difference the leak this block exists to prevent.\n //\n // Safe this late: the feature context was built and memoized by the\n // gate check above, so a `when` reading `ctx.request.routePath` has\n // already seen the real value.\n httpRequest.routePath = \"\";\n }\n\n const translator = app(Translator);\n // Two ways to be an i18n app now. `isEnabled` means the legacy\n // `prefetch` config has dictionaries to serve; configured\n // `supportedLocales` alone means the app uses `defineDictionary` and\n // still needs its locale detected, or every `useDictionary` would fall\n // back to its source language. `isLocaleAware` is the same predicate\n // the locale-prefix redirect above uses — they have to agree.\n const hasLegacyDictionaries = translator.isEnabled;\n const isI18nEnabled = translator.isLocaleAware;\n // Shipped whether or not the app is locale-aware: `useFormatter` and\n // `useDictionary(...).format` read the zone (and, without a resolved\n // locale, the default one) from here, so the browser formats in exactly\n // what the server rendered with and hydration finds the same text.\n const detectionRequest = new HttpRequest(req, httpRequest.params as any);\n let i18n: Record<string, any> = {\n defaultLocale: translator.defaultLocale,\n timeZone: translator.detectTimeZone(detectionRequest),\n };\n if (isI18nEnabled) {\n let locale = null;\n if (urlLocale) {\n locale = urlLocale.replaceAll(\"/\", \"\");\n ctx.setLocale(locale);\n } else if (!localeRouted) {\n // Whatever middleware chose, else the default set above.\n locale = ctx.locale ?? translator.defaultLocale;\n } else {\n locale = translator.detectLocale(detectionRequest);\n ctx.setLocale(locale);\n }\n\n const translations = hasLegacyDictionaries\n ? translator.getPageTranslations(locale, httpRequest.routePath)\n : {};\n\n i18n = {\n ...i18n,\n supportedLocales: translator.supportedLocales,\n currentLocale: locale,\n dictionary: {\n [locale]: translations,\n },\n defaultLocale: translator.defaultLocale,\n // Tells the client router not to read or write a locale segment.\n ...(localeRouted ? {} : { localeRouting: \"off\" }),\n };\n }\n\n // Outside the `isI18nEnabled` branch on purpose. `defineDictionary`\n // needs no `translation` config at all — that is what `docs/i18n.md`\n // presents as the whole setup — so gating the preload on it left the\n // documented minimal app taking the unwarmed path: every\n // `useDictionary` suspends, and on a streamed route each component's\n // markup lands in `<div hidden>` behind a `$RC()` reveal instead of\n // inline in the shell (#286/#289). A reader without JS would see the\n // Suspense fallback where the page text belongs.\n //\n // An empty locale means the app configured none; `preloadDictionaries`\n // then warms each dictionary under its own source language, which is\n // the key `useDictionary` will ask for. It returns immediately when\n // nothing is registered, so an app with no dictionaries pays nothing.\n await preloadDictionaries(i18n.currentLocale ?? \"\");\n\n // Handlers gate the response — they decide redirects, status codes,\n // cookies — so they are awaited. Queries do not: `Query.prefetch`\n // starts its request the moment it is called (a live store, so a\n // prefetch after a handler's first `await` is no longer silently\n // dropped), and both response shapes stream whatever is still in\n // flight — the document as interleaved payload scripts, the `.json`\n // navigation payload as NDJSON lines (#290).\n // The loader's own lookup — `Page.findUniqueOrThrow(...)` guarding the\n // route — lands here. Becoming an unmatched request is the whole\n // answer: `currentPathName` being null is what makes the framework\n // render the application's `404` view, under a 404 for a page load and\n // under `is404` in a `.json` navigation's envelope. Same three\n // assignments as the gate above; this one cannot be folded into it\n // because a loader only runs after that decision is made.\n //\n // What it does NOT do is clear `ctx.serverQueries`. A loader that\n // prefetched before it threw keeps those results in the payload — they\n // ran as this user, under this request's policies, so it is waste\n // rather than a leak, and the guard belongs at the top of the loader\n // where the issue's example puts it.\n let data: unknown[];\n try {\n data = await Promise.all(handlers.map((fn) => fn(httpRequest as any)));\n } catch (err) {\n // A refusal too, as for middleware above (#726).\n refusedStatus = this.viewRefusalStatus(httpRequest, err, reportedQueryErrors);\n if (refusedStatus === null) {\n throw err;\n }\n currentPathName = null;\n handlers = [];\n httpRequest.routePath = \"\";\n data = [];\n }\n\n // The `404` view has no handler of its own: this is where the app\n // gives it a title and metadata (#954).\n let notFoundProps: void | Record<string, unknown> = undefined;\n if (currentPathName === null) {\n notFoundProps = await this.hooks.onNotFound(httpRequest, {\n status: refusedStatus ?? 404,\n });\n }\n\n // The app's default fills whatever the handlers left unset (#1042).\n if (this.defaultMeta && !ctx.metadata.hasAllDefaultFields) {\n ctx.metadata.applyDefaults(\n typeof this.defaultMeta === \"function\"\n ? await this.defaultMeta(httpRequest)\n : this.defaultMeta,\n );\n }\n // And whether these views may be translated (#1087).\n if (this.translate !== undefined) {\n ctx.metadata.applyTranslateDefault(this.translate);\n }\n\n const cookies = ctx.cookies;\n const headers = ctx.headers;\n // A refusal depends on who asked, and turns into the page itself\n // when they may see it, at the same url: nothing may replay it.\n if (refusedStatus !== null) {\n headers.set(\"Cache-Control\", \"no-store\");\n }\n\n pageData = {\n data,\n cookies,\n headers,\n user: ctx.user,\n prefetchedData: ctx.serverQueries.snapshotResolved(),\n currentPathName,\n params: httpRequest.params,\n urlLocaleSegment,\n meta: ctx.renderMeta(),\n appId: app(KernelId).id,\n // After the handlers, deliberately: middleware and handlers are what\n // populate `ctx.user`, and a flag targeted at a signed-in user has to\n // see them. Before the render, necessarily: the document payload is\n // written as `bootstrapScriptContent` at the top of the body, so a\n // flag discovered mid-render could not be added to it.\n features: await app(FeatureManager).forClient(),\n };\n\n const { params, user } = pageData;\n\n const viewData = {};\n const breadcrumbs = {};\n for (const part of data ?? []) {\n const [key, value] = Object.entries(part)?.[0] ?? [];\n if (!key || !value) {\n continue;\n }\n breadcrumbs[`${key}:${currentPathName}`] = (value as any).breadcrumb;\n viewData[key] = value;\n }\n // The static not-found document's props (#828). Only there: the app's\n // hydrated `404` would ship them in its payload to a view that takes none.\n const notFoundDocument =\n currentPathName === null && this.notFound && !isViewDataRequest\n ? this.notFound.static\n : undefined;\n if (notFoundDocument && notFoundProps) {\n viewData[\"404\"] = notFoundProps;\n }\n\n const fileOutput: FileOutput | undefined = (viewData as any).FILE;\n if (fileOutput) {\n // No `session_id` of gemi's own, as for a static view: the cookies\n // sent are the ones the handler and middleware set.\n try {\n await this.onRequestEnd(httpRequest, { mintSession: false });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n // A handler's own Response carries the context too — `cache:public`,\n // a `Vary` — with its own headers winning, as on an api route.\n let response: Response;\n if (fileOutput instanceof Response) {\n response = mergeContextIntoResponse(fileOutput, headers, cookies);\n } else {\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n response = await createFileResponse(fileOutput, headers);\n }\n return dropCookiesFromSharedCacheable(response, currentPathName);\n }\n\n if (isViewDataRequest) {\n // NDJSON: envelope first — sent at handler speed — then one line\n // per query as it settles (#290). The client commits the\n // navigation off the envelope and hydrates the rest as it lands.\n headers.set(\"Content-Type\", \"application/x-ndjson; charset=utf-8\");\n // The body depends on the route the client came from, so no shared\n // cache may serve one client's partial response to another.\n headers.append(\"Vary\", PARTIAL_RENDER_HEADER);\n\n cookies.forEach((cookie) => headers.append(\"Set-Cookie\", cookie.toString()));\n\n await this.hooks.onRequestEnd(httpRequest);\n\n const envelope = {\n // Nothing that rendered touched the metadata, so the segments\n // that were skipped are still the ones that own it.\n meta: partial && !ctx.metadata.touched ? null : pageData.meta,\n data: {\n [urlPathname]: viewData,\n },\n breadcrumbs,\n // Resolved-so-far; the rest streams behind the envelope. The\n // snapshot marks its entries shipped so they aren't sent twice.\n prefetchedData: ctx.serverQueries.snapshotResolved(),\n i18n,\n // Sent on every navigation, **including a partial render**. Unlike\n // `meta`, flags are a property of the request rather than of the\n // segments that re-ran — omitting them on a partial would leave the\n // client showing the previous route's flag values.\n features: pageData.features,\n is404: !currentPathName,\n appId: pageData.appId,\n partial,\n };\n\n return new Response(\n createRoutePayloadStream(envelope, ctx.serverQueries, undefined, ({ aborted }) =>\n // No shell was marked, so the summary reports\n // `shellAt === settledAt` — the NDJSON body is one payload, not\n // a shell followed by streamed content.\n runInRequestScope(() =>\n this.completeStream(httpRequest, ctx.serverQueries.summarize(aborted)),\n ),\n ),\n {\n headers,\n },\n );\n }\n\n headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n\n // The streamed/settled decision is UA-derived (crawlers get inline\n // settled documents), so the body varies by User-Agent and a shared\n // cache must key on it — otherwise a cached browser shell full of\n // fallbacks and reveal scripts gets served to a bot. `no-stream`\n // routes serve one settled body to everyone, so they stay cacheable\n // without the (CDN-hostile) Vary.\n // A static view is one settled body for everyone, like `no-stream` —\n // unless the request became a 404, which renders as usual.\n //\n // A missing record turned a static route into the app's hydrated\n // `404`, which gets the cookies a hydrated page does — or into the\n // static `notFound` document, which gets that page's (#828).\n const documentStatic = currentPathName ? staticView : notFoundDocument;\n const staticDocument = Boolean(documentStatic);\n const documentCookies = staticCookiePolicy(documentStatic);\n if (!noStream && !staticDocument) {\n headers.append(\"Vary\", \"User-Agent\");\n }\n\n if (!staticDocument || documentCookies.session) {\n ensureSessionId();\n }\n\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n\n // const { csrfToken, csrfTokenHMAC } = this.generateCSRFTokenWithHmac();\n\n if (!staticDocument || documentCookies.csrf) {\n const csrfToken = Bun.CSRF.generate(process.env.SECRET);\n headers.append(\n \"Set-Cookie\",\n `csrf_token=${csrfToken}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now() + 1000 * 60 * 60 * 24).toUTCString()}`,\n );\n }\n\n try {\n await this.onRequestEnd(httpRequest, {\n mintSession: !staticDocument || documentCookies.session,\n });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n // The `notFound` page's `cacheControl` is for a path no route has\n // (#828). A route that became a 404 (a refusal, a missing record, a\n // feature gate) depends on who asked, so a shared cache must not keep it.\n if (staticDocument && (currentPathName || !matched)) {\n applyStaticCacheControl(headers, documentStatic!);\n }\n\n return await this.render({\n req: httpRequest,\n runInRequestScope,\n csrfTokenHMAC: Buffer.from(\"\"),\n currentPathName,\n headers,\n i18n,\n params,\n pathname: url.pathname,\n serverQueries: ctx.serverQueries,\n userAgent: req.headers.get(\"user-agent\"),\n noStream,\n noTheme,\n url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta: pageData.meta,\n appId: pageData.appId,\n features: pageData.features,\n isOgRequest,\n // Not when the request became a 404 (a gate or a missing record):\n // that renders the app's `404` view, which hydrates as usual —\n // unless these views have a static `notFound` (#828).\n staticView: documentStatic,\n refusedStatus: refusedStatus ?? undefined,\n });\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n // A cookie set before the break (an OAuth round trip's state cookie\n // ahead of `Redirect.external`) goes out with it, as on an api route.\n const broken = isViewDataRequest\n ? viewDataBreakResponse(err.payload.viewData ?? err.payload.api)\n : viewBreakResponse(err.payload.view);\n for (const cookie of ctx.cookies) broken.headers.append(\"Set-Cookie\", cookie.toString());\n return broken;\n }\n // `Query.instant` rethrows the entry's error object into this catch —\n // already reported when the rejection settled, so skip the duplicate.\n if (!reportedQueryErrors.has(err)) {\n this.hooks.onRequestFail(httpRequest, err);\n }\n // A loader or a middleware read a policied model it may not see. Left\n // to throw, it became the server's 500, whose body in production is\n // the error's stack and so the policy's message: a server error for\n // what is a refusal. The developer keeps the reason through\n // `onRequestFail` above and the log; the client gets the api's 403\n // body on a `.json` navigation and a 403 page otherwise.\n if (isPolicyDeniedError(err)) {\n console.error(err);\n return isViewDataRequest ? policyDeniedResponse() : viewBreakResponse(policyDeniedView());\n }\n // The same refusal one step removed: the loader's `Query.instant` hit\n // an api route that answered 403, a policy denial there among them.\n // The api side logged it and the query's rejection reported it, so\n // the view only passes the refusal on instead of turning it into a\n // 500.\n if (err instanceof QueryError && err.status === 403) {\n return isViewDataRequest ? policyDeniedResponse() : viewBreakResponse(policyDeniedView());\n }\n throw err;\n }\n }, carried);\n }\n}\n\n/** The visitor's stored theme, if the cookie holds one gemi recognises. */\nfunction readThemeCookie(req: HttpRequest, cookie: string): ThemeData[\"value\"] {\n const value = req.cookies?.get(cookie);\n return isTheme(value) ? value : null;\n}\n",
|
|
88
|
+
"import { HttpRequest } from \"../../http\";\nimport { GEMI_REQUEST_BREAKER_ERROR } from \"../../http/Error\";\nimport { type CarriedContext, ensureSessionId, RequestContext } from \"../../http/requestContext\";\nimport type { RouterMiddleware } from \"../../http/Router\";\nimport {\n createFlatViewRoutes,\n type FlatViewRoutes,\n type ViewRouteExec,\n} from \"./createFlatViewRoutes\";\nimport {\n viewRouteConfigDefaults,\n type LocaleRouting,\n type ThemeConfig,\n type ViewRouteConfig,\n} from \"./config\";\nimport { DEFAULT_THEME_COOKIE, isTheme, themeScriptSource, type ThemeData } from \"../../client/theme\";\nimport { resolvePartialRender } from \"./planPartialRender\";\nimport { matchViewRoute } from \"./matchViewRoute\";\nimport { PARTIAL_RENDER_HEADER, type PartialRenderInfo } from \"../../utils/partialRender\";\nimport { createElement, Fragment } from \"react\";\n\nimport { createFileResponse, type FileOutput, type ViewRoutes } from \"../../http/ViewRouter\";\nimport { createRouteManifest } from \"./createRouteManifest\";\nimport { createComponentTree } from \"./createComponentTree\";\nimport { flattenComponentTree } from \"../../client/helpers/flattenComponentTree\";\nimport type { ComponentTree } from \"../../client/types\";\nimport { Translator } from \"../../i18n/Translator\";\nimport { splitLocalePrefix } from \"../../i18n/localePrefix\";\nimport { resolveLocale } from \"../../i18n/resolveLocale\";\nimport { preloadDictionaries } from \"../../i18n/dictionaryRegistry\";\nimport { createDictionarySink } from \"../../i18n/dictionarySink\";\nimport { MiddlewareRegistry } from \"../middleware/MiddlewareRegistry\";\nimport { Log } from \"../../facades/Log\";\nimport { Lang } from \"../../facades/Lang\";\nimport { authViewRequirements, createAuthViewRouter } from \"../../auth/routes\";\nimport type { AuthConfig } from \"../../auth/config\";\nimport { KernelId } from \"../kernel-id/KernelId\";\nimport { FeatureManager } from \"../features/FeatureManager\";\nimport { app } from \"../../foundation/app\";\nimport { kernelContext } from \"../../kernel/context\";\nimport { ServerQueryStore, type StreamSummary } from \"./ServerQueryStore\";\nimport { isPolicyDeniedError, isRecordNotFoundError } from \"../../orm/errors\";\nimport { QueryError } from \"../../client/QueryError\";\nimport { policyDeniedResponse, policyDeniedView } from \"./policyDenied\";\nimport { createServerQueryFetcher } from \"./serverQueryFetcher\";\nimport { DomainRouter } from \"./DomainRouter\";\nimport { htmlSafeJson, injectQueryPayloads, isBotUserAgent } from \"./streamQueryInjection\";\nimport { createShellContentObserver, createShellContentReporter } from \"./shellContentReport\";\nimport { createRoutePayloadStream } from \"./routePayloadStream\";\nimport { loadSharp } from \"../../support/sharp\";\nimport type { StaticViewOptions } from \"../../http/ViewRouter\";\nimport { StaticRenderContext, createStaticRenderCollector } from \"../../client/islands\";\nimport {\n injectIslands,\n spliceIslandSlots,\n type DocumentScript,\n type IslandResolver,\n type StaticNavigationMarker,\n} from \"./staticDocument\";\nimport { documentScriptSource } from \"./documentScript\";\nimport {\n applyStaticCacheControl,\n dropCookiesFromSharedCacheable,\n staticCookiePolicy,\n} from \"./staticCache\";\nimport { mergeContextIntoResponse } from \"./ApiRouteDispatcher\";\n\n/**\n * `satori`, loaded on the first OG-image request rather than on import, for the\n * same reason `sharp` is (see `support/sharp.ts`): this module is reachable\n * from `gemi/services` through `RouteServiceProvider`, so a static import put\n * satori — and, one hop on, a font parser and an SVG layout engine — in the\n * module graph of every app and test that imported the barrel to reach\n * `CronJob` (#403).\n *\n * Rendering an OG image is a cold path by definition: a crawler asks for it\n * once and a CDN serves it afterwards.\n */\nconst loadSatori = async () => (await import(\"satori\")).default;\n\n/**\n * React's server renderer, loaded on the first render rather than on import.\n *\n * **Importing `react-dom/server.browser` keeps the process alive forever.** On\n * React 19.2.3 under Bun, that one import — nothing else, no render, no server\n * — is enough that the process never exits: `getActiveResourcesInfo()` comes\n * back empty, there are no timers, no sockets and an empty kqueue, and it hangs\n * anyway. `react-dom/server.node` does not do it. Reduced from #316's third\n * item, which reports the same hang from `await import(\"gemi/kernel\")` and\n * predates the 0.51 line.\n *\n * That import sat at module scope here, and this module is reachable from\n * `gemi/kernel` through `RouteServiceProvider` — so *any* script that touched\n * the kernel inherited the hang and needed an explicit `process.exit()`. A\n * one-off migration, a seeder, a cron entry point, a CI check: all of them\n * loaded the SSR renderer to get a `Kernel` they were going to use for\n * something else entirely.\n *\n * Deferring it costs one already-resolved dynamic import on the first document\n * render and nothing after — `react-dom` is external in the framework build, so\n * this stays a runtime resolve out of the app's own `node_modules` exactly as\n * the static import was. A server renders, so it pays this once at first\n * request; a script that never renders no longer pays it at all, which is the\n * whole point.\n *\n * Wrapped rather than awaited at each call site so the three of them read\n * unchanged.\n *\n * The slot is cleared on failure so a rejection is not what gets memoised. A\n * missing `react-dom` is fatal either way — this is about the diagnostic, not\n * about recovery: caching the rejected promise would make every later render\n * report whatever the loader threw the first time, with no stack from the call\n * that actually failed.\n */\nlet serverRenderer:\n | Promise<{ renderToReadableStream: (...args: any[]) => Promise<any> }>\n | undefined;\n\nconst renderToReadableStream = async (...args: any[]): Promise<any> => {\n // @ts-ignore\n serverRenderer ??= import(\"react-dom/server.browser\").catch((error) => {\n serverRenderer = undefined;\n throw error;\n });\n return (await serverRenderer).renderToReadableStream(...args);\n};\n\n/**\n * How long a document response may keep streaming before pending segments are\n * cut over to client rendering. One hung query must not hold the connection\n * open forever; the browser resolves whatever was aborted over `/api`.\n */\nconst STREAM_DEADLINE_MS = 10_000;\n\n/**\n * `\"no-locale\"` in a route's (or its router's) middleware list takes it out of\n * locale routing, as `localeRouting: \"off\"` does a whole view tree. A\n * directive read by the dispatcher, like `\"no-stream\"`, not real middleware.\n */\nconst NO_LOCALE_DIRECTIVE = \"no-locale\";\n\n/**\n * `\"no-theme\"` in a route's (or its router's) middleware list drops the theme\n * script from its documents, as `theme: false` does a whole view tree. A\n * directive, like `\"no-stream\"`.\n */\nconst NO_THEME_DIRECTIVE = \"no-theme\";\n\nasync function getTtfFont(\n family: string,\n weight: number,\n style: \"normal\" | \"italic\",\n): Promise<ArrayBuffer> {\n const familyParam = `${style === \"italic\" ? \"italic,\" : \"\"}wght@${style === \"italic\" ? \"1,\" : \"\"}${weight}`;\n\n // Get css style sheet with user agent Mozilla/5.0 Firefox/1.0 to ensure non-variable TTF is returned\n const cssCall = await fetch(\n `https://fonts.googleapis.com/css2?family=${family}:${familyParam}&display=swap`,\n {\n headers: {\n \"User-Agent\": \"Mozilla/5.0 Firefox/1.0\",\n },\n },\n );\n\n const css = await cssCall.text();\n const ttfUrl = css.match(/url\\(([^)]+)\\)/)?.[1];\n\n return await fetch(ttfUrl).then((res) => res.arrayBuffer());\n}\n\n/**\n * `/assets` is where the client build output is served from, ahead of the\n * router — a route mounted there could never be reached in production, and in\n * dev it would appear to work. Fail at boot instead of shipping that.\n */\nexport const RESERVED_ROUTE_PREFIX = \"/assets\";\n\n/**\n * `/assets` or anything under it. The boot-time route check and the production\n * static handler both ask this, so a route the router accepts is never one the\n * static handler answers from `dist/client` instead.\n */\nexport function isReservedAssetPath(path: string): boolean {\n return path === RESERVED_ROUTE_PREFIX || path.startsWith(`${RESERVED_ROUTE_PREFIX}/`);\n}\n\nexport function assertNoReservedRoutePaths(routePaths: string[]) {\n const reserved = routePaths.filter(isReservedAssetPath);\n\n if (reserved.length > 0) {\n const many = reserved.length > 1;\n throw new Error(\n `View route path${many ? \"s\" : \"\"} ${reserved.map((path) => `\"${path}\"`).join(\", \")} ` +\n `use${many ? \"\" : \"s\"} the reserved \"${RESERVED_ROUTE_PREFIX}\" prefix. ` +\n `The client build output is served from there before the router runs, so the route would never match. ` +\n `Mount it somewhere else, or set \\`assetRoutes: true\\` on these views' config (route.view or a route.domains group's view).`,\n );\n }\n}\n\n/** A request breaker's `payload.view` as the page response it stands for. */\n/** What a page learns of its host group — `useDomain()` reads it. */\nfunction clientDomain(req: HttpRequest) {\n const resolver = app(DomainRouter).resolver!;\n return {\n ...req.domain!,\n root: resolver.root,\n origin: resolver.publicOrigin(req.rawRequest),\n };\n}\n\nexport function viewBreakResponse(view: Record<string, any>) {\n // `body` is a page of the breaker's own (the same-site bounce); otherwise\n // the error's message, as before.\n const { status = 400, error, body, ...init } = view;\n return new Response(body ?? error?.message, {\n ...init,\n status,\n });\n}\n\n/**\n * The same break for a `.json` navigation, from its `payload.api`: the client\n * router reads `data` and `directive` out of the body.\n */\nexport function viewDataBreakResponse(api: Record<string, any>) {\n const { status = 400, data, directive, headers } = api;\n return new Response(JSON.stringify({ data, directive }), {\n headers,\n status,\n });\n}\n\nexport class ViewRouteDispatcher {\n static token = \"router.view\";\n\n flatViewRoutes: FlatViewRoutes = {};\n routeManifest: Record<string, string[]> = {};\n /** `routeManifest` without file routes — they have no component to render client side. */\n clientRouteManifest: Record<string, string[]> = {};\n componentTree: ComponentTree = [];\n flatComponentTree: string[] = [];\n /**\n * The views gemi's own `/auth` routes render, by name, with the config that\n * requires each (#1040). The servers check these exist before loading them,\n * so a missing one fails with the file and the setting, not a module error.\n */\n requiredViews: Record<string, string> = {};\n /**\n * Route patterns declared `.static()`. Shipped to the browser so a\n * client-side navigation to one becomes a full page load: the page has no\n * client router to render it into.\n */\n staticRoutes: string[] = [];\n root: any = null;\n /**\n * The shell-content hint (#294): React defers any boundary over\n * `progressiveChunkSize` on size alone, so a page that reads fine without\n * JS can go blank the day one more section pushes it over the budget — and\n * nothing else notices the transition (#289 was found by hand-measuring).\n * The reporter owns the once-per-route-per-boot dedup so a hot route\n * doesn't spam the dev console.\n */\n private shellReporter = createShellContentReporter();\n\n /**\n * `modulepreload` elements per route, built once instead of per request —\n * everything they derive from (the built chunk graph, the client entry) is\n * fixed at boot, and React elements are immutable, so one set is reusable\n * across every render of that route.\n *\n * Keyed on the manifest object rather than a plain field so a process that\n * ever renders against two of them — a test suite, most obviously — can\n * never serve one route's chunks out of the other's cache.\n */\n private preloadCache = new WeakMap<\n object,\n { clientEntry: unknown; byRoute: Map<string, any[]> }\n >();\n\n private readonly hooks: Required<\n Pick<\n ViewRouteConfig,\n \"onNotFound\" | \"onRequestStart\" | \"onRequestEnd\" | \"onRequestFail\" | \"onStreamComplete\"\n >\n >;\n\n /** See `ViewRouteConfig.partialRendering`. */\n readonly partialRendering: boolean;\n\n /** See `ViewRouteConfig.localeRouting`. */\n readonly localeRouting: LocaleRouting;\n\n /** See `ViewRouteConfig.detectLocale`. */\n readonly detectLocale: ViewRouteConfig[\"detectLocale\"];\n\n /** See `ViewRouteConfig.theme`. */\n readonly theme: ThemeConfig | false;\n\n /** See `ViewRouteConfig.meta`. */\n readonly defaultMeta: ViewRouteConfig[\"meta\"];\n\n /** See `ViewRouteConfig.notFound`. */\n readonly notFound: ViewRouteConfig[\"notFound\"];\n\n /** See `ViewRouteConfig.publicFiles`. */\n readonly publicFiles: boolean;\n\n /** See `ViewRouteConfig.assetRoutes`. */\n readonly assetRoutes: boolean;\n\n /** See `ViewRouteConfig.translate`. */\n readonly translate: boolean | undefined;\n\n /**\n * `auth` is the app's `auth` config: gemi's `/auth` view routes are mounted\n * for the features it turns on (#1040).\n */\n constructor(config: ViewRouteConfig, auth: AuthConfig = {}) {\n const defaults = viewRouteConfigDefaults();\n\n this.partialRendering = config.partialRendering ?? defaults.partialRendering;\n this.localeRouting = config.localeRouting ?? defaults.localeRouting;\n this.detectLocale = config.detectLocale;\n // On locale-routed views the URL, cookie and `Accept-Language` decide.\n if (this.detectLocale && this.localeRouting !== \"off\") {\n throw new Error(\n '`view.detectLocale` needs `view.localeRouting: \"off\"`: on locale-routed views the URL, the `i18n-locale` cookie and `Accept-Language` decide the locale. A `route.domains` group that inherits it and keeps locale routing can set `detectLocale: undefined`.',\n );\n }\n this.theme = config.theme ?? defaults.theme;\n this.defaultMeta = config.meta;\n this.notFound = config.notFound;\n this.publicFiles = config.publicFiles ?? defaults.publicFiles;\n this.assetRoutes = config.assetRoutes ?? defaults.assetRoutes;\n\n this.translate = config.translate;\n\n this.hooks = {\n onNotFound: config.onNotFound ?? defaults.onNotFound,\n onRequestStart: config.onRequestStart ?? defaults.onRequestStart,\n onRequestEnd: config.onRequestEnd ?? defaults.onRequestEnd,\n onRequestFail: config.onRequestFail ?? defaults.onRequestFail,\n onStreamComplete: config.onStreamComplete ?? defaults.onStreamComplete,\n };\n\n const routes: ViewRoutes = {\n \"/\": config.rootRouter,\n \"/auth\": createAuthViewRouter(auth),\n };\n this.requiredViews = Object.fromEntries(\n authViewRequirements(auth).map(({ view, requiredBy }) => [view, requiredBy]),\n );\n this.flatViewRoutes = createFlatViewRoutes(routes);\n // A group that owns `/assets` (#1015) is served there whenever the build\n // has no file, so its routes are reachable.\n if (!this.assetRoutes) {\n assertNoReservedRoutePaths(Object.keys(this.flatViewRoutes));\n }\n this.routeManifest = createRouteManifest(routes);\n this.clientRouteManifest = Object.fromEntries(\n Object.entries(this.routeManifest).filter(([, views]) => views.at(-1) !== \"FILE\"),\n );\n this.componentTree = createComponentTree(routes);\n this.flatComponentTree = flattenComponentTree(this.componentTree);\n this.staticRoutes = Object.entries(this.flatViewRoutes)\n .filter(([, route]) => route.static)\n .map(([path]) => path);\n // A static view's own document layout is a view module like any other —\n // the servers load every name in this list up front — but it is in no\n // route's chain, so it would not be here otherwise.\n for (const path of this.staticRoutes) {\n const layout = this.flatViewRoutes[path].static?.layout;\n if (layout && !this.flatComponentTree.includes(layout)) {\n this.flatComponentTree.push(layout);\n }\n }\n // The not-found view and its layout (#828): in no route's chain either,\n // and loaded up front like the rest.\n if (this.notFound) {\n for (const view of [this.notFound.view, this.notFound.static?.layout]) {\n if (view && !this.flatComponentTree.includes(view)) {\n this.flatComponentTree.push(view);\n }\n }\n }\n this.root = config.root;\n }\n\n /**\n * Whether every flag gating a route is on for this request.\n *\n * All must pass. Gates accumulate down the tree — a router's, then a layout's,\n * then the route's — and the intersection is the only reading that composes:\n * a route inside a gated section cannot be more reachable than the section.\n */\n private async passesFeatureGates(keys: string[]): Promise<boolean> {\n const features = app(FeatureManager);\n for (const key of keys) {\n if (!(await features.enabled(key))) return false;\n }\n return true;\n }\n\n async onRequestEnd(req: HttpRequest, options: { mintSession?: boolean } = {}) {\n // Idempotent, and normally a no-op by the time it gets here: the request\n // already minted the id up front so that everything which ran in between\n // saw it. Kept as a backstop for any path that reaches the end without\n // having asked. A static view skips it unless it asked (`.static({ session })`).\n if (options.mintSession !== false) {\n ensureSessionId();\n }\n\n return await this.hooks.onRequestEnd(req);\n }\n\n /**\n * Fires the provider's `onStreamComplete` from a stream callback — an\n * observability hook must never break the response body it observes, so\n * sync throws and rejections are logged and swallowed.\n *\n * Call sites must invoke this inside the request scope (see\n * `runInRequestScope` in `handleViewRequest`): stream callbacks are driven\n * by the HTTP server after the handler returned, outside the kernel\n * AsyncLocalStorage — where both the user's hook and this very `Log.error`\n * guard would break.\n */\n private completeStream(req: HttpRequest, summary: StreamSummary) {\n const logError = (err: any) => {\n Log.error(err?.message ?? 'Error in \"onStreamComplete\" event handler', {\n err: JSON.stringify(err),\n });\n };\n try {\n Promise.resolve(this.hooks.onStreamComplete(req, summary)).catch(logError);\n } catch (err) {\n logError(err);\n }\n }\n\n /** See `preloadCache`. */\n private modulePreloadLinks(args: {\n clientEntry?: { module: string; preload: string[] };\n modulePreloadManifest?: Record<string, string[]>;\n views: string[];\n routeKey: string;\n }) {\n const { clientEntry, modulePreloadManifest, views, routeKey } = args;\n\n const build = () => {\n const hrefs = new Set<string>(clientEntry?.preload ?? []);\n for (const view of views) {\n for (const href of modulePreloadManifest?.[view] ?? []) {\n hrefs.add(href);\n }\n }\n return [...hrefs].map((href) =>\n createElement(\"link\", {\n key: `modulepreload:${href}`,\n rel: \"modulepreload\",\n href,\n }),\n );\n };\n\n // Dev: no chunk graph to announce, so there is nothing worth caching.\n if (!modulePreloadManifest) {\n return build();\n }\n\n let cached = this.preloadCache.get(modulePreloadManifest);\n if (!cached || cached.clientEntry !== clientEntry) {\n cached = { clientEntry, byRoute: new Map() };\n this.preloadCache.set(modulePreloadManifest, cached);\n }\n let links = cached.byRoute.get(routeKey);\n if (!links) {\n links = build();\n cached.byRoute.set(routeKey, links);\n }\n return links;\n }\n\n /**\n * A `.static()` view's document: the same tree a hydrated view renders, but\n * settled before the first byte and sent with no client runtime — no entry\n * module, `modulepreload`s, `__GEMI_DATA__`, theme script, query or\n * dictionary payloads, or React's streaming scripts. Islands that rendered\n * add their loader (`injectIslands`).\n */\n private async renderStatic(args: {\n req: HttpRequest;\n runInRequestScope: <T>(fn: () => T) => T;\n staticView: StaticViewOptions;\n currentViews: string[];\n data: any;\n serverQueries: ServerQueryStore;\n headers: Headers;\n getStyles: (p: string[], options?: { static?: boolean; layout?: string }) => Promise<any[]>;\n viewImportMap: Record<string, any>;\n viewModules?: Record<string, any>;\n resolveIsland?: IslandResolver;\n buildId?: string;\n status: number;\n }) {\n const { req, runInRequestScope, staticView, currentViews, data, serverQueries, headers } =\n args;\n\n let rootLayout: unknown;\n if (staticView.layout) {\n rootLayout = args.viewImportMap[staticView.layout];\n if (!rootLayout) {\n throw new Error(\n `The static layout \"${staticView.layout}\" was not found. It is a view path: a file at app/views/${staticView.layout}.tsx whose default export renders the document.`,\n );\n }\n }\n\n const styles = await args.getStyles(currentViews, { static: true, layout: staticView.layout });\n\n serverQueries.markRenderStart();\n const dictionarySink = createDictionarySink();\n const deadline = new AbortController();\n const deadlineTimer = setTimeout(() => deadline.abort(), STREAM_DEADLINE_MS);\n const onError = (error: unknown) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(error);\n }\n };\n // Each island is its own React root in the browser, so it is rendered as\n // one here too: the HTML `hydrateRoot` sees is exactly what this produced,\n // `useId` included (hence the prefix), and nothing from the page's context\n // leaks in on the server that the browser would not have.\n //\n // The page's locale and zone are the one exception (#1095): an island\n // gets them, so `useDictionary` resolves in the page's locale, including\n // one middleware or `view.detectLocale` chose, and the browser is handed\n // the same in the document.\n const collector = createStaticRenderCollector(\n async (element, identifierPrefix) => {\n const stream = await renderToReadableStream(element, {\n signal: deadline.signal,\n identifierPrefix,\n progressiveChunkSize: Number.MAX_SAFE_INTEGER,\n onError,\n });\n await stream.allReady.catch(() => {});\n return await new Response(stream).text();\n },\n {\n currentLocale: data?.i18n?.currentLocale,\n defaultLocale: data?.i18n?.defaultLocale,\n timeZone: data?.i18n?.timeZone,\n },\n );\n\n try {\n // `.static({ script })` (#919): picked after the handler, like `version`.\n // Inside the `try`, as `version` is, so one that throws (or names no\n // file) still completes the request (the `finally`) like a failed render.\n let script: DocumentScript | undefined;\n const scriptName =\n typeof staticView.script === \"function\"\n ? await runInRequestScope(() => (staticView.script as Function)(req))\n : staticView.script;\n if (scriptName) {\n script = { name: scriptName, source: await documentScriptSource(scriptName) };\n }\n // `.static({ navigation })`: what the runtime compares before swapping\n // a fetched page in.\n let navigation: StaticNavigationMarker | undefined;\n if (staticView.navigation) {\n const options = staticView.navigation === true ? {} : staticView.navigation;\n const version = options.version\n ? String(await runInRequestScope(() => options.version!(req)))\n : \"\";\n // The script is part of the identity: a page is swapped in only when\n // the script it needs is the one already running, so it never runs\n // twice in one document and never goes missing.\n // `version` goes last: it is the only part that may hold a `|`.\n navigation = {\n identity: [staticView.layout ?? \"\", args.buildId ?? \"\", script?.name ?? \"\", version].join(\n \"|\",\n ),\n prefetch: options.prefetch === \"none\" ? \"none\" : \"intent\",\n };\n }\n const stream = await renderToReadableStream(\n createElement(StaticRenderContext.Provider, {\n value: collector,\n children: createElement(Fragment, {\n children: [\n ...styles,\n createElement(this.root, {\n data,\n viewImportMap: args.viewImportMap,\n viewModules: args.viewModules,\n serverQueries,\n dictionarySink,\n rootLayout,\n key: \"root\",\n }),\n ],\n }),\n }),\n {\n signal: deadline.signal,\n // With `allReady` awaited below, this keeps every boundary inline\n // rather than split out behind a reveal script (see `settled`).\n progressiveChunkSize: Number.MAX_SAFE_INTEGER,\n onError,\n },\n );\n await stream.allReady.catch(() => {});\n const html = spliceIslandSlots(await new Response(stream).text());\n\n return new Response(\n injectIslands(\n html,\n collector,\n args.resolveIsland,\n process.env.NODE_ENV !== \"production\",\n navigation,\n script,\n ),\n { status: args.status, headers },\n );\n } finally {\n clearTimeout(deadlineTimer);\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n );\n }\n }\n\n private async render(props: {\n req: HttpRequest;\n /**\n * Re-enters the kernel + request AsyncLocalStorage scopes captured while\n * the request was live. Every stream lifecycle callback below runs after\n * the handler returned — driven by the HTTP server, outside both scopes —\n * so user hooks are always invoked through this.\n */\n runInRequestScope: <T>(fn: () => T) => T;\n viewData: any;\n pathname: string;\n currentPathName: string;\n csrfTokenHMAC: Buffer;\n headers: any;\n url: URL;\n i18n: any;\n user: any;\n serverQueries: ServerQueryStore;\n userAgent: string | null;\n noStream: boolean;\n /** The route said `\"no-theme\"`. */\n noTheme?: boolean;\n params: any;\n breadcrumbs: any;\n urlLocaleSegment?: string;\n meta: any;\n isOgRequest?: boolean;\n appId: string;\n features: Record<string, boolean>;\n /** The matched route's `.static()` options; absent for a hydrated view. */\n staticView?: StaticViewOptions;\n /**\n * The status of a refusal that turned this request into the `404` view\n * (403 or 404). Absent, an unmatched request answers 404.\n */\n refusedStatus?: number;\n }) {\n const {\n req,\n runInRequestScope,\n csrfTokenHMAC,\n currentPathName,\n headers,\n i18n,\n params,\n pathname,\n serverQueries,\n userAgent,\n noStream,\n noTheme,\n url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta,\n isOgRequest,\n appId,\n features,\n staticView,\n } = props;\n\n // A static view has no script and one body for every visitor, so it must\n // not vary on the visitor's cookie.\n const theme: ThemeData | null =\n this.theme === false || noTheme || staticView\n ? null\n : {\n cookie: this.theme.cookie ?? DEFAULT_THEME_COOKIE,\n default: this.theme.default ?? null,\n value: readThemeCookie(req, this.theme.cookie ?? DEFAULT_THEME_COOKIE),\n };\n\n // Keyed like the `.json` envelope: the path without its locale segment,\n // so `/de-DE` and `/de-DE/` both land on `/` (#948).\n const pageDataKey = urlLocaleSegment\n ? splitLocalePrefix(pathname, [urlLocaleSegment]).pathname\n : pathname;\n\n const result = {\n kind: \"view\",\n data: {\n meta,\n pageData: {\n [pageDataKey]: viewData,\n },\n __csrf: csrfTokenHMAC.toString(\"base64\"),\n // Placeholder — re-snapshotted at render time (below) so everything\n // that resolved while styles and modules loaded still makes the\n // document payload instead of streaming.\n prefetchedData: {} as Record<string, Record<string, any>>,\n i18n,\n auth: { user },\n routeManifest: this.clientRouteManifest,\n breadcrumbs,\n router: {\n urlLocaleSegment,\n pathname: currentPathName,\n params,\n currentPath: pathname,\n searchParams: url.search,\n is404: !currentPathName ? true : false,\n // Only on the document: a client-side navigation never changes host.\n domain: req.domain ? clientDomain(req) : null,\n },\n appId,\n // Evaluated key -> value only. Rules, conditions, segment criteria and\n // the bucketing seed stay on the server: with the seed and a subject id\n // anyone could compute another user's bucket for every flag, including\n // unreleased ones.\n features,\n // `null` when these views run no theme script (`theme: false`,\n // `\"no-theme\"`); `ThemeProvider` then starts on `\"light\"` as before.\n theme,\n componentTree: [[\"404\", []], ...this.componentTree],\n // Only when there are any, so an app without static views ships the\n // payload it always did.\n ...(this.staticRoutes.length > 0 ? { staticRoutes: this.staticRoutes } : {}),\n },\n head: {},\n };\n\n const Root = this.root;\n const currentViews = this.routeManifest[currentPathName];\n return async (params: {\n /**\n * `static` is set for a static view, which has no client to load CSS\n * later: the styles must cover the views' whole import graph. `layout`\n * is its own document layout, whose CSS then replaces the app's\n * stylesheet.\n */\n getStyles: (p: string[], options?: { static?: boolean; layout?: string }) => Promise<any[]>;\n viewImportMap: any;\n bootstrapModules?: string[];\n loaders: string;\n cssManifest: Record<string, string[]>;\n ogMap: Record<string, any>;\n /**\n * Full view modules (not just default exports) so `Route` can render a\n * view's `Loading`/`Error` exports on the server — a streamed shell\n * carries real fallbacks, and they must match what the client hydrates.\n */\n viewModules?: Record<string, any>;\n /**\n * The client entry, when the server wants it booted from the bootstrap\n * script instead of handed to React as a `bootstrapModule`: `module` is\n * imported, `preload` is every chunk that import pulls in.\n *\n * React preloads its own `bootstrapModules` with `fetchPriority=\"low\"`\n * hardcoded (Fizz has no option for it), which parks the one module\n * that unblocks hydration behind everything else the page is fetching.\n * Emitting the `modulepreload` ourselves gets it the browser's default\n * script priority, and it is the same request either way — the\n * `import()` below consumes the preloaded module (#352).\n */\n clientEntry?: { module: string; preload: string[] };\n /**\n * Built chunk URLs per view name, like `cssManifest`. Only the current\n * route's chain is preloaded.\n */\n modulePreloadManifest?: Record<string, string[]>;\n /**\n * The prefix the client build was built with. `cssManifest` carries\n * manifest paths, not URLs — they double as the `id` of the `<style>`\n * each one is inlined into — so the client needs the base to fetch one.\n */\n assetBase?: string;\n /** Where island client modules are served from; see `injectIslands`. */\n resolveIsland?: IslandResolver;\n /**\n * Identifies the client build, so a static page with `navigation` loads\n * a page of another deploy in full rather than swapping it in.\n */\n buildId?: string;\n }) => {\n const {\n bootstrapModules = [],\n loaders,\n getStyles,\n viewImportMap,\n cssManifest,\n ogMap,\n viewModules,\n clientEntry,\n modulePreloadManifest,\n assetBase,\n resolveIsland,\n buildId,\n } = params;\n\n // `clientEntry` and `bootstrapModules` are two spellings of the same job,\n // and running both would boot the entry twice — once through React's\n // `<script type=\"module\">`, once through the `import()` below. The entry\n // wins where it is offered, so React is handed nothing and never emits\n // the `fetchPriority=\"low\"` preload that made it worth taking over.\n const reactBootstrapModules = clientEntry ? [] : bootstrapModules;\n\n const bootstrapScriptContent = (data: string) =>\n [\n data,\n `window.loaders=${loaders}`,\n // Nothing imports the entry when the server routed it through\n // `clientEntry` — the bootstrap script is where it starts. The\n // `.catch` re-throws out of the microtask because a bare `import()`\n // here would report a chunk that 404s after a deploy, or an entry\n // that throws while evaluating, as an `unhandledrejection` only —\n // which `window.onerror`-based reporters do not see. The page would\n // then sit permanently unhydrated with nothing raised.\n ...(clientEntry\n ? [\n `import(${JSON.stringify(clientEntry.module)}).catch(function(e){setTimeout(function(){throw e})})`,\n ]\n : []),\n ].join(\";\");\n\n if (isOgRequest) {\n let ogHandler = null;\n let ogComponent = null;\n // `currentViews` is `undefined` on an unmatched route. Without the\n // guard `GET /nope.og` throws here and `httpProd` answers with the raw\n // stack trace, where the 404 below is what a crawler should get.\n for (const view of currentViews ?? []) {\n if (typeof ogMap[view] === \"function\") {\n ogComponent = view;\n ogHandler = ogMap[view];\n }\n }\n if (!ogHandler) {\n return new Response(\"Not found\", { status: 404 });\n }\n const data = Object.values(result.data.pageData)[0];\n\n try {\n await renderToReadableStream(createElement(ogHandler, data[ogComponent]), {\n onError: () => {},\n });\n } catch (err) {\n const { fonts, ...options } = err.satoriOptions;\n const _fonts = await Promise.all(\n fonts.map((font) => {\n return getTtfFont(font.name, font.weight, font.style).then((data) => ({\n ...font,\n data,\n }));\n }),\n );\n\n const ogHeaders = new Headers(headers);\n ogHeaders.set(\"Content-Type\", \"image/png\");\n const [satori, sharp] = await Promise.all([\n loadSatori(),\n loadSharp(\"Rendering an OG image\"),\n ]);\n const svg = await satori(err.jsx, { ...options, fonts: _fonts });\n const png = await sharp(Buffer.from(svg))\n .png({\n compressionLevel: 0,\n effort: 10,\n })\n .toBuffer();\n\n return new Response(new Uint8Array(png), { headers: ogHeaders });\n }\n\n return new Response(\"data\");\n }\n\n if (staticView && currentPathName) {\n return await this.renderStatic({\n req,\n runInRequestScope,\n staticView,\n currentViews,\n data: result.data,\n serverQueries,\n headers,\n getStyles,\n viewImportMap,\n viewModules,\n resolveIsland,\n buildId,\n status: 200,\n });\n }\n\n // `notFound` (#828): the not-found document is a static one, rendered\n // with these views' own not-found view where the app's `404` would be.\n // The client router mounts `\"404\"` for it, so that is the name it is\n // given here; `onNotFound`'s props are under it in `pageData`.\n if (staticView && !currentPathName && this.notFound) {\n const view = this.notFound.view;\n if (!viewImportMap[view]) {\n throw new Error(\n `The not-found view \"${view}\" (route.view.notFound) was not found. It is a view path: a file at app/views/${view}.tsx.`,\n );\n }\n return await this.renderStatic({\n req,\n runInRequestScope,\n staticView,\n currentViews: [view],\n data: result.data,\n serverQueries,\n headers,\n getStyles,\n viewImportMap: { ...viewImportMap, \"404\": viewImportMap[view] },\n viewModules: viewModules && { ...viewModules, \"404\": viewModules[view] },\n resolveIsland,\n buildId,\n status: props.refusedStatus ?? 404,\n });\n }\n\n result.data[\"cssManifest\"] = cssManifest;\n // Client-side navigation reaches a route's chunks the same serial way a\n // hard load did, one `import()` per level, so it needs the same list the\n // shell head carries — shipped like `cssManifest` and warmed by\n // `preloadRouteModules` (#352).\n result.data[\"modulePreloadManifest\"] = modulePreloadManifest ?? {};\n // Only when there is one: the client's default is the root-relative `/`,\n // and a payload without the key is the one every app shipped before it.\n if (assetBase && assetBase !== \"/\") {\n result.data[\"assetBase\"] = assetBase;\n }\n // What the client compares a navigation's `x-gemi-build` with (#1056).\n // Not in dev, which has one build.\n if (buildId && buildId !== \"dev\") {\n result.data[\"buildId\"] = buildId;\n }\n\n // Hydration reaches each route segment through `window.loaders`, i.e. an\n // `import()` the browser cannot see until the entry has run — and it\n // sees a nested chunk only once its parent has parsed. On a real\n // network that serial chain shows every boundary's `Loading` fallback\n // where server-rendered content already is, collapsing the page height\n // and restoring it a round trip later (#352). Preloaded in the shell\n // head, the whole chain is fetched in parallel with the entry and is\n // resident before hydration asks for it.\n //\n // An unmatched route leaves `currentViews` undefined but still renders a\n // document — the `404` view, the one route class most likely to be hit\n // cold — so it preloads that view's chain, mirroring the `[\"404\"]` the\n // client mounts.\n const preloadLinks = this.modulePreloadLinks({\n clientEntry,\n modulePreloadManifest,\n views: currentViews ?? [\"404\"],\n routeKey: currentPathName ?? \"404\",\n });\n\n // The `404` document has no route views; it is styled with the `404`\n // view's chain, as it is preloaded above (#951).\n const styles = await getStyles(currentViews ?? [\"404\"]);\n\n // Everything resolved by now ships in the document payload; everything\n // still in flight streams in behind it. The snapshot marks its entries\n // as shipped so the injector doesn't send them twice.\n result.data.prefetchedData = serverQueries.snapshotResolved();\n serverQueries.markRenderStart();\n\n const deadline = new AbortController();\n const deadlineTimer = setTimeout(() => deadline.abort(), STREAM_DEADLINE_MS);\n\n // Decided before the render call because it changes *render-time*\n // behavior: React splits any boundary bigger than\n // `progressiveChunkSize` (~12.8KB) out of the shell as it renders, and\n // awaiting `allReady` afterwards settles the data but cannot undo the\n // split — a non-JS reader would see a body whose content is parked in\n // `<div hidden>` + `$RC()` reveal scripts (#286, #289). Two audiences\n // need the settled document: crawlers (detected by UA — progressive\n // chunking only exists to reach a browser sooner, which is worthless to\n // a client that buffers the whole response) and routes that declared\n // `\"no-stream\"` (marketing/content pages that must render for\n // JS-disabled humans, text browsers, and failed-script loads too).\n const settled = isBotUserAgent(userAgent) || noStream;\n\n // Dev-only: collect the streamed bytes so the close hook can measure\n // what a no-JS reader gets (#294). A settled document carries its\n // content inline by construction — nothing to measure — and a route\n // already hinted this boot skips the collection entirely.\n const shellObserver =\n process.env.NODE_ENV !== \"production\" &&\n !settled &&\n currentPathName &&\n this.shellReporter.shouldObserve(currentPathName)\n ? createShellContentObserver()\n : null;\n\n // Which dictionaries a page reads is only knowable once it has rendered,\n // so they cannot ride the `__GEMI_DATA__` snapshot (serialized below,\n // before the render starts). The sink collects them during the render and\n // the injector streams each one into the document.\n const dictionarySink = createDictionarySink();\n\n try {\n const stream = await renderToReadableStream(\n createElement(Fragment, {\n children: [\n // React hoists these into `<head>`, ahead of the inlined\n // stylesheets, so the browser starts the fetches on the shell's\n // first bytes.\n ...preloadLinks,\n ...styles,\n ...(theme\n ? [\n createElement(\"script\", {\n key: \"theme-script\",\n dangerouslySetInnerHTML: {\n __html: themeScriptSource(\n htmlSafeJson({ cookie: theme.cookie, default: theme.default }),\n ),\n },\n }),\n ]\n : []),\n createElement(Root, {\n data: result.data,\n viewImportMap,\n viewModules,\n serverQueries,\n dictionarySink,\n key: \"root\",\n }),\n ],\n }),\n {\n bootstrapScriptContent: bootstrapScriptContent(\n `window.__GEMI_DATA__ = ${htmlSafeJson(result.data)}`,\n ),\n bootstrapModules: reactBootstrapModules,\n signal: deadline.signal,\n ...(settled ? { progressiveChunkSize: Number.MAX_SAFE_INTEGER } : {}),\n // A query rejecting inside a streamed segment is expected: React\n // client-renders that boundary and the browser surfaces the error\n // through its own fetch. Log it and move on.\n onError(error: unknown) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(error);\n }\n },\n },\n );\n\n stream.allReady\n .catch(() => {})\n .finally(() => clearTimeout(deadlineTimer));\n\n // A settled response waits for everything before the first byte.\n // Works only together with the `progressiveChunkSize` override\n // above: this waits for the data, that keeps the content inline\n // instead of script-revealed.\n if (settled) {\n await stream.allReady.catch(() => {});\n }\n\n return new Response(\n injectQueryPayloads(stream, serverQueries, {\n // A settled body has no shell-then-stream phase — its first byte\n // already carries everything — so only progressive responses mark\n // one; the summary then reports `shellAt === settledAt` for the\n // settled ones.\n onShell: settled ? undefined : () => serverQueries.markShell(),\n onChunk: shellObserver?.onChunk,\n // The APM-visible end of the request: the body closed, not the\n // handler returned (that was at time-to-shell).\n onClose: () =>\n runInRequestScope(() => {\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted));\n if (shellObserver) {\n // The injector's `onChunk` collected the exact bytes the\n // visitor got; measured once the body closed (#294).\n this.shellReporter.report(currentPathName, shellObserver.measure());\n }\n }),\n },\n dictionarySink),\n {\n status: !currentPathName ? (props.refusedStatus ?? 404) : 200,\n headers,\n },\n );\n } catch (err) {\n clearTimeout(deadlineTimer);\n // The document below writes the message and stack into the page for\n // the dev overlay. In production they would reach whoever loaded the\n // page (#523), so the error goes on to the server's last-resort\n // handler instead, which answers a generic 500 and reports it. No\n // body will close to end the span, so it ends here.\n if (process.env.NODE_ENV === \"production\") {\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n );\n throw err;\n }\n const stream = await renderToReadableStream(createElement(\"div\"), {\n bootstrapScriptContent: bootstrapScriptContent(\n `window.error= ${htmlSafeJson(err.message)}; window.stack_trace=${htmlSafeJson(err.stack)};window.__GEMI_DATA__ = ${htmlSafeJson(result.data)}`,\n ),\n bootstrapModules:\n process.env.NODE_ENV === \"development\"\n ? [\"/render-error.js\", ...reactBootstrapModules]\n : reactBootstrapModules,\n });\n // The failed-render body still closes, and the span-ending hook is\n // pinned to the body closing, not the render succeeding — a span that\n // only ends on happy paths leaks for exactly the requests worth\n // seeing. No shell mark: this body is one settled error document.\n return new Response(\n injectQueryPayloads(stream, serverQueries, {\n onClose: () =>\n runInRequestScope(() =>\n this.completeStream(req, serverQueries.summarize(deadline.signal.aborted)),\n ),\n }),\n {\n status: !currentPathName ? (props.refusedStatus ?? 404) : 200,\n headers,\n },\n );\n }\n };\n }\n\n /**\n * The status a view route's middleware or loader error answers with as the\n * app's `404` view, or `null` for an error that is not a refusal and goes\n * on as before (#726):\n *\n * - a missing record (`RecordNotFoundError`): 404;\n * - a request breaker whose page answer is a 403 or a 404\n * (`InsufficientPermissionsError`, `NotFoundError`, `FileNotFoundError`,\n * or an app's own breaker with that status): its status;\n * - a policy denial: 403, reported through `onRequestFail` as before;\n * - a 403 or 404 from a loader's `Query.instant` (already reported): its\n * status.\n *\n * Any other breaker (a redirect, a 409) keeps its own answer.\n */\n private viewRefusalStatus(\n httpRequest: HttpRequest,\n err: unknown,\n reportedQueryErrors: Set<unknown>,\n ): number | null {\n if (isRecordNotFoundError(err)) {\n return 404;\n }\n if ((err as any)?.kind === GEMI_REQUEST_BREAKER_ERROR) {\n const status = (err as any).payload?.view?.status;\n return status === 403 || status === 404 ? status : null;\n }\n if (isPolicyDeniedError(err)) {\n if (!reportedQueryErrors.has(err)) {\n this.hooks.onRequestFail(httpRequest, err);\n }\n console.error(err);\n return 403;\n }\n if (err instanceof QueryError && (err.status === 403 || err.status === 404)) {\n return err.status;\n }\n return null;\n }\n\n async handleViewRequest(req: Request, carried?: CarriedContext | null) {\n const url = new URL(req.url);\n const isViewDataRequest = url.pathname.endsWith(\".json\");\n const isOgRequest = url.pathname.endsWith(\".og\");\n const urlPathnameWithLocale = url.pathname.replace(\".json\", \"\").replace(\".og\", \"\");\n\n const [, maybeLocale, ...rest] = urlPathnameWithLocale.split(\"/\");\n let urlPathname = urlPathnameWithLocale;\n let urlLocaleSegment = null;\n let urlLocale: string | null = null;\n\n const translator = app(Translator);\n\n // The route the path names as it stands, before any locale is read off it.\n const directMatch = matchViewRoute(this.flatViewRoutes, urlPathnameWithLocale);\n\n // Whether this request takes part in locale routing at all: a locale-aware\n // app, on a view tree that did not opt out (`localeRouting: \"off\"`, e.g. a\n // domain group serving pages that are not the app's own UI), for a route\n // without the `\"no-locale\"` directive. Without it, the URL never carries a\n // locale, nothing redirects, and nothing is detected per visitor.\n const localeRouted =\n translator.isLocaleAware &&\n this.localeRouting === \"prefix\" &&\n !directMatch?.route.middleware.includes(NO_LOCALE_DIRECTIVE);\n\n if (localeRouted && translator.supportedLocales.includes(maybeLocale)) {\n urlPathname = `/${rest.join(\"/\")}`;\n urlLocaleSegment = maybeLocale;\n urlLocale = maybeLocale;\n }\n\n // A page's address has no trailing slash: `/about/` (or `/about//`) is\n // sent for good to `/about`, query and all, since no route pattern\n // matches it and it would otherwise be a 404 (`/:path*` included). Only a\n // document request, and only a path no route matches as it stands; ahead\n // of the locale redirects, which keep the path's slash. A path that starts\n // with `//` is left alone: its slashless form would be a protocol-relative\n // Location naming another host.\n if (\n (req.method === \"GET\" || req.method === \"HEAD\") &&\n !isViewDataRequest &&\n !isOgRequest &&\n directMatch === null &&\n url.pathname.endsWith(\"/\") &&\n !url.pathname.startsWith(\"//\")\n ) {\n const slashless = url.pathname.replace(/\\/+$/, \"\");\n // A locale's root keeps its slash (`/de-DE/` is its home page, #948).\n const localeRoot = localeRouted && translator.supportedLocales.includes(slashless.slice(1));\n if (slashless && !localeRoot) {\n return new Response(\"\", {\n status: 301,\n headers: { Location: `${slashless}${url.search}` },\n });\n }\n }\n\n // A first path segment is not necessarily a locale, and the shapes overlap:\n // `de-luxe` is a language `de` with a legal 4-letter subtag, `en-suite` the\n // same for `en`. No tightening of the tag pattern separates them, so route\n // existence is the signal — a path the app actually serves is served, and\n // only one it does not is read as a locale that needs redirecting. Without\n // this, `/de-luxe` answered `302 /de-DE` and the page was gone.\n const pathIsARoute = urlLocale === null && directMatch !== null;\n\n if (localeRouted && !isOgRequest && urlLocale === null && !pathIsARoute) {\n // A locale prefix the app doesn't serve verbatim but can map onto one it\n // does — `/en/about` → `/en-US/about`, `/de-AT/about` → `/de-DE/about` —\n // is sent to that locale's URL rather than rendered as an unknown path.\n const resolvedLocale = resolveLocale(\n maybeLocale,\n translator.supportedLocales,\n translator.defaultLocale,\n );\n if (resolvedLocale) {\n // `rest` is the path after the locale segment; `.json` is re-appended\n // so a route-data request lands on the data it asked for.\n const restPath = rest.length ? `/${rest.join(\"/\")}` : \"\";\n return new Response(\"\", {\n status: 302,\n headers: {\n \"Cache-Control\": \"private, no-cache, no-store, max-age=0, must-revalidate\",\n Location: `/${resolvedLocale}${restPath}${isViewDataRequest ? \".json\" : \"\"}${url.search}`,\n },\n });\n }\n }\n\n if (localeRouted && !isOgRequest) {\n const locale = app(Translator).detectLocale(\n new HttpRequest(req, {}, \"view\", urlPathname),\n );\n\n if (urlLocale === null && locale !== translator.defaultLocale) {\n const _pathname = url.pathname === \"/\" ? \"\" : url.pathname;\n return new Response(\"\", {\n status: 302,\n headers: {\n \"Cache-Control\": \"private, no-cache, no-store, max-age=0, must-revalidate\",\n Location: `/${locale}${_pathname}${url.search}`,\n },\n });\n }\n }\n\n urlPathname = urlPathname.replace(\"//\", \"/\");\n let handlers: ViewRouteExec[] = [];\n let middlewares: (RouterMiddleware | string)[] = [];\n let currentPathName: null | string = null;\n let params: Record<string, any> = {};\n let partial: PartialRenderInfo | null = null;\n // `\"no-stream\"` in a route's (or its router's) middleware list opts the\n // route out of progressive streaming: everyone gets the fully settled\n // document a bot UA would (#289). It is a directive read here, not real\n // middleware — the middleware runner ignores unknown aliases.\n let noStream = false;\n let noTheme = false;\n // Flags gating the matched route, checked once the request scope is open\n // and middleware has run.\n let featureGates: string[] = [];\n // The matched route's `.static()` options, if it has any.\n let staticView: StaticViewOptions | undefined;\n // Whether the path names a route at all, whatever happens to it later.\n let matched = false;\n // A `this.file(...)` route: an asset, not a page.\n let fileRoute = false;\n\n try {\n let match = matchViewRoute(this.flatViewRoutes, urlPathname);\n // A `\"no-locale\"` route has no locale-prefixed URL: `/tr-TR/about` is\n // not its page under another name.\n if (urlLocale && match?.route.middleware.includes(NO_LOCALE_DIRECTIVE)) {\n match = null;\n }\n if (match) {\n matched = true;\n currentPathName = match.routePath;\n params = match.params;\n handlers = match.route.exec;\n middlewares = match.route.middleware;\n featureGates = match.route.features;\n noStream = middlewares.includes(\"no-stream\");\n noTheme = middlewares.includes(NO_THEME_DIRECTIVE);\n staticView = match.route.static;\n fileRoute = match.route.segments.at(-1)?.viewPath === \"FILE\";\n\n // Only navigations skip work. A document request renders the whole\n // tree, and the client has nothing to carry forward yet.\n if (isViewDataRequest && this.partialRendering) {\n const from = req.headers.get(PARTIAL_RENDER_HEADER);\n const plan = resolvePartialRender({\n flatViewRoutes: this.flatViewRoutes,\n supportedLocales: app(Translator).supportedLocales,\n from,\n origin: url.origin,\n to: { segments: match.route.segments, params, search: url.search },\n });\n\n if (plan.startIndex > 0) {\n handlers = handlers.slice(plan.startIndex);\n partial = { from, carriedViews: plan.carriedViews };\n }\n }\n }\n } catch (err) {\n // TODO: Handle this\n throw err;\n }\n\n // A static view's handler output reaches the browser only as the markup\n // it renders, and an app may rely on that (return a whole record, render\n // part of it). The `.json` payload would hand over all of it, and nothing\n // asks for one: the client router loads static routes as documents.\n if (staticView && isViewDataRequest) {\n return new Response(\"Not found\", { status: 404 });\n }\n\n const httpRequest = new HttpRequest(req, params, \"view\", currentPathName);\n this.hooks.onRequestStart(httpRequest);\n return await RequestContext.run(httpRequest, async () => {\n let pageData: {\n cookies: Set<string>;\n headers: Headers;\n currentPathName: string | null;\n data: Record<string, any>;\n prefetchedData: Record<string, any>;\n user: any; // TODO: fix type\n params: Record<string, any>;\n urlLocaleSegment: string | null;\n meta: any;\n appId: string;\n features: Record<string, boolean>;\n } | null = null;\n const ctx = RequestContext.getStore();\n // The HTTP server drives the response body — and therefore every stream\n // lifecycle callback — after `app.fetch` returned, outside the kernel\n // AsyncLocalStorage scope and outside this request's context (the same\n // phenomenon `createServerQueryFetcher` documents for render-discovered\n // fetches). Facades and `req.ctx()` inside `onStreamComplete` /\n // `onRequestFail` would break there, so capture both scopes while they\n // are live and re-enter them around every hook invocation below.\n const kernelStore = kernelContext.getStore();\n const runInRequestScope = <T>(fn: () => T): T =>\n kernelContext.run(kernelStore, () => RequestContext.runWith(ctx, fn));\n // Before middleware and handlers, so every `Query.prefetch` along the\n // way lands in one live, request-scoped store.\n ctx.serverQueries = new ServerQueryStore(createServerQueryFetcher(req));\n // A query rejecting during the streamed render (or a fire-and-forget\n // prefetch) never throws the handler, so the catch below can't see it —\n // error tracking wired to `onRequestFail` would miss server-side work\n // that failed. Route rejections through the hook here. The identity set\n // keeps `Query.instant` rethrows — which DO reach the catch — from\n // reporting the same error twice.\n const reportedQueryErrors = new Set<any>();\n ctx.serverQueries.onQueryFail((entry) => {\n reportedQueryErrors.add(entry.error);\n try {\n // In scope, and with the rejection handler attached *inside* the\n // scope, so a facade-using hook works for render-phase failures\n // exactly as it does for handler-phase ones.\n runInRequestScope(() =>\n Promise.resolve(this.hooks.onRequestFail(httpRequest, entry.error)).catch(\n () => {},\n ),\n );\n } catch {\n // An error-reporting hook must not break the settle chain it\n // observes — a suspended segment is waiting on it.\n }\n });\n\n // A static view is one body for every visitor, so it sets no cookie of\n // its own — no `i18n-locale`, `session_id` or `csrf_token` — unless it\n // asked for one. A per-visitor `Set-Cookie` is what keeps a CDN from\n // caching a page. The handler and middleware still set what they set.\n //\n // A path no route matches is already known to render `notFound`, so it\n // takes that page's policy (#828).\n //\n // A file route is an asset, and gets the same treatment as a static\n // view with no opt-ins (#1094).\n const staticCookies = staticCookiePolicy(\n fileRoute\n ? {}\n : (staticView ??\n (currentPathName === null && !isViewDataRequest\n ? this.notFound?.static\n : undefined)),\n );\n\n if (urlLocale) {\n const locale = urlLocale.replaceAll(\"/\", \"\");\n Lang.setLocale(locale, { cookie: staticCookies.locale });\n } else if (translator.isLocaleAware && !localeRouted) {\n // Out of locale routing: the default locale, not the visitor's, and no\n // cookie, unless `detectLocale` names one below. Middleware may still\n // pick one with `Lang.setLocale`.\n ctx.setLocale(translator.defaultLocale);\n } else {\n Lang.setLocale(undefined, { cookie: staticCookies.locale });\n }\n\n const httpRequest = ctx.req;\n\n // Before middleware, so that everything downstream — middleware, handlers,\n // feature-flag bucketing — reads one id, and the same one the browser is\n // about to be given. Both the document and the `.json` navigation path\n // come through here, which is the point: minting only on the document path\n // left a client-side navigation with no subject to bucket on.\n if (staticCookies.session) {\n ensureSessionId();\n }\n\n try {\n // A view middleware can resolve the record the route is about — the\n // workspace named in the path, the membership it implies — and raise\n // `RecordNotFoundError` doing it. That means here what it means in a\n // loader, so it is caught rather than left to the break path below:\n // the answer is not a refusal, it is this request becoming an\n // unmatched one.\n //\n // A refusal is caught the same way (#726): a 403 or 404 request\n // breaker (`InsufficientPermissionsError`, a resource policy's\n // `NotFoundError`), or a policy denial. It used to be answered with\n // the breaker's message as a plain-text body, which a browser shows\n // as a blank page. It renders the app's `404` view instead, under the\n // refusal's own status.\n let refusedStatus: number | null = null;\n\n // These views' own locale (#1092): before middleware and whether or\n // not a route matched, so the not-found page sees it too. Here rather\n // than above so a throw reaches `onRequestFail`.\n if (this.detectLocale && !localeRouted && app(Translator).isLocaleAware) {\n const { supportedLocales, defaultLocale } = app(Translator);\n const detected = await this.detectLocale(httpRequest, { supportedLocales, defaultLocale });\n const locale =\n typeof detected === \"string\"\n ? resolveLocale(detected, supportedLocales, defaultLocale)\n : null;\n if (locale) {\n ctx.setLocale(locale);\n }\n }\n\n try {\n await app(MiddlewareRegistry).runMiddleware(middlewares);\n } catch (err) {\n refusedStatus = this.viewRefusalStatus(httpRequest, err, reportedQueryErrors);\n if (refusedStatus === null) {\n throw err;\n }\n }\n\n // After middleware, not at match time: `auth` is what puts the user on\n // the request context, and a route gated on a flag that targets signed-in\n // users has to see them. The route table is built once at boot and is\n // shared by every visitor, so this is the only place a per-user decision\n // about a route can be made.\n //\n // Clearing the match rather than throwing is what produces the real 404:\n // the framework renders the application's `404` view exactly when\n // `currentPathName` is null, so a gated route becomes indistinguishable\n // from one that was never defined — status, view and component tree\n // included. A `RequestBreakerError` here would instead return a bare\n // text body, which both looks broken and confirms the route exists.\n //\n // A missing record or a refusal joins the gate here rather than getting a branch of\n // its own, because the outcome is the same one and it is spelled in\n // exactly these three assignments. Short-circuited: a request whose\n // middleware already found nothing must not go on to evaluate flags.\n if (\n refusedStatus !== null ||\n (featureGates.length > 0 && !(await this.passesFeatureGates(featureGates)))\n ) {\n currentPathName = null;\n handlers = [];\n // `routePath` too, and not only for tidiness: it is what selects this\n // request's translation namespace below, so leaving it would serve the\n // gated route's dictionary alongside its 404 while a genuinely\n // unmatched path carries none. For an unannounced feature the\n // translation keys are usually the most descriptive thing about it,\n // which makes that difference the leak this block exists to prevent.\n //\n // Safe this late: the feature context was built and memoized by the\n // gate check above, so a `when` reading `ctx.request.routePath` has\n // already seen the real value.\n httpRequest.routePath = \"\";\n }\n\n const translator = app(Translator);\n // Two ways to be an i18n app now. `isEnabled` means the legacy\n // `prefetch` config has dictionaries to serve; configured\n // `supportedLocales` alone means the app uses `defineDictionary` and\n // still needs its locale detected, or every `useDictionary` would fall\n // back to its source language. `isLocaleAware` is the same predicate\n // the locale-prefix redirect above uses — they have to agree.\n const hasLegacyDictionaries = translator.isEnabled;\n const isI18nEnabled = translator.isLocaleAware;\n // Shipped whether or not the app is locale-aware: `useFormatter` and\n // `useDictionary(...).format` read the zone (and, without a resolved\n // locale, the default one) from here, so the browser formats in exactly\n // what the server rendered with and hydration finds the same text.\n const detectionRequest = new HttpRequest(req, httpRequest.params as any);\n let i18n: Record<string, any> = {\n defaultLocale: translator.defaultLocale,\n timeZone: translator.detectTimeZone(detectionRequest),\n };\n if (isI18nEnabled) {\n let locale = null;\n if (urlLocale) {\n locale = urlLocale.replaceAll(\"/\", \"\");\n ctx.setLocale(locale);\n } else if (!localeRouted) {\n // Whatever middleware chose, else the default set above.\n locale = ctx.locale ?? translator.defaultLocale;\n } else {\n locale = translator.detectLocale(detectionRequest);\n ctx.setLocale(locale);\n }\n\n const translations = hasLegacyDictionaries\n ? translator.getPageTranslations(locale, httpRequest.routePath)\n : {};\n\n i18n = {\n ...i18n,\n supportedLocales: translator.supportedLocales,\n currentLocale: locale,\n dictionary: {\n [locale]: translations,\n },\n defaultLocale: translator.defaultLocale,\n // Tells the client router not to read or write a locale segment.\n ...(localeRouted ? {} : { localeRouting: \"off\" }),\n };\n }\n\n // Outside the `isI18nEnabled` branch on purpose. `defineDictionary`\n // needs no `translation` config at all — that is what `docs/i18n.md`\n // presents as the whole setup — so gating the preload on it left the\n // documented minimal app taking the unwarmed path: every\n // `useDictionary` suspends, and on a streamed route each component's\n // markup lands in `<div hidden>` behind a `$RC()` reveal instead of\n // inline in the shell (#286/#289). A reader without JS would see the\n // Suspense fallback where the page text belongs.\n //\n // An empty locale means the app configured none; `preloadDictionaries`\n // then warms each dictionary under its own source language, which is\n // the key `useDictionary` will ask for. It returns immediately when\n // nothing is registered, so an app with no dictionaries pays nothing.\n await preloadDictionaries(i18n.currentLocale ?? \"\");\n\n // Handlers gate the response — they decide redirects, status codes,\n // cookies — so they are awaited. Queries do not: `Query.prefetch`\n // starts its request the moment it is called (a live store, so a\n // prefetch after a handler's first `await` is no longer silently\n // dropped), and both response shapes stream whatever is still in\n // flight — the document as interleaved payload scripts, the `.json`\n // navigation payload as NDJSON lines (#290).\n // The loader's own lookup — `Page.findUniqueOrThrow(...)` guarding the\n // route — lands here. Becoming an unmatched request is the whole\n // answer: `currentPathName` being null is what makes the framework\n // render the application's `404` view, under a 404 for a page load and\n // under `is404` in a `.json` navigation's envelope. Same three\n // assignments as the gate above; this one cannot be folded into it\n // because a loader only runs after that decision is made.\n //\n // What it does NOT do is clear `ctx.serverQueries`. A loader that\n // prefetched before it threw keeps those results in the payload — they\n // ran as this user, under this request's policies, so it is waste\n // rather than a leak, and the guard belongs at the top of the loader\n // where the issue's example puts it.\n let data: unknown[];\n try {\n data = await Promise.all(handlers.map((fn) => fn(httpRequest as any)));\n } catch (err) {\n // A refusal too, as for middleware above (#726).\n refusedStatus = this.viewRefusalStatus(httpRequest, err, reportedQueryErrors);\n if (refusedStatus === null) {\n throw err;\n }\n currentPathName = null;\n handlers = [];\n httpRequest.routePath = \"\";\n data = [];\n }\n\n // The `404` view has no handler of its own: this is where the app\n // gives it a title and metadata (#954).\n let notFoundProps: void | Record<string, unknown> = undefined;\n if (currentPathName === null) {\n notFoundProps = await this.hooks.onNotFound(httpRequest, {\n status: refusedStatus ?? 404,\n });\n // Out of locale routing, the not-found page renders in the locale\n // current now, so `onNotFound` (or a handler before it threw) may\n // pick it with `Lang.setLocale` (#1099). `detectLocale` runs\n // before anyone knows the request ends here, so a rule meant only\n // for the 404 (say, `Accept-Language` where pages ignore it) has\n // nowhere else to live. Matched pages keep the payload decided\n // above; on locale-routed views the URL decides.\n if (isI18nEnabled && !localeRouted && ctx.locale && ctx.locale !== i18n.currentLocale) {\n const locale = ctx.locale;\n i18n = {\n ...i18n,\n currentLocale: locale,\n dictionary: {\n [locale]: hasLegacyDictionaries\n ? translator.getPageTranslations(locale, httpRequest.routePath)\n : {},\n },\n };\n await preloadDictionaries(locale);\n }\n }\n\n // The app's default fills whatever the handlers left unset (#1042).\n if (this.defaultMeta && !ctx.metadata.hasAllDefaultFields) {\n ctx.metadata.applyDefaults(\n typeof this.defaultMeta === \"function\"\n ? await this.defaultMeta(httpRequest)\n : this.defaultMeta,\n );\n }\n // And whether these views may be translated (#1087).\n if (this.translate !== undefined) {\n ctx.metadata.applyTranslateDefault(this.translate);\n }\n\n const cookies = ctx.cookies;\n const headers = ctx.headers;\n // A refusal depends on who asked, and turns into the page itself\n // when they may see it, at the same url: nothing may replay it.\n if (refusedStatus !== null) {\n headers.set(\"Cache-Control\", \"no-store\");\n }\n\n pageData = {\n data,\n cookies,\n headers,\n user: ctx.user,\n prefetchedData: ctx.serverQueries.snapshotResolved(),\n currentPathName,\n params: httpRequest.params,\n urlLocaleSegment,\n meta: ctx.renderMeta(),\n appId: app(KernelId).id,\n // After the handlers, deliberately: middleware and handlers are what\n // populate `ctx.user`, and a flag targeted at a signed-in user has to\n // see them. Before the render, necessarily: the document payload is\n // written as `bootstrapScriptContent` at the top of the body, so a\n // flag discovered mid-render could not be added to it.\n features: await app(FeatureManager).forClient(),\n };\n\n const { params, user } = pageData;\n\n const viewData = {};\n const breadcrumbs = {};\n for (const part of data ?? []) {\n const [key, value] = Object.entries(part)?.[0] ?? [];\n if (!key || !value) {\n continue;\n }\n breadcrumbs[`${key}:${currentPathName}`] = (value as any).breadcrumb;\n viewData[key] = value;\n }\n // The static not-found document's props (#828). Only there: the app's\n // hydrated `404` would ship them in its payload to a view that takes none.\n const notFoundDocument =\n currentPathName === null && this.notFound && !isViewDataRequest\n ? this.notFound.static\n : undefined;\n if (notFoundDocument && notFoundProps) {\n viewData[\"404\"] = notFoundProps;\n }\n\n const fileOutput: FileOutput | undefined = (viewData as any).FILE;\n if (fileOutput) {\n // No `session_id` of gemi's own, as for a static view: the cookies\n // sent are the ones the handler and middleware set.\n try {\n await this.onRequestEnd(httpRequest, { mintSession: false });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n // A handler's own Response carries the context too — `cache:public`,\n // a `Vary` — with its own headers winning, as on an api route.\n let response: Response;\n if (fileOutput instanceof Response) {\n response = mergeContextIntoResponse(fileOutput, headers, cookies);\n } else {\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n response = await createFileResponse(fileOutput, headers);\n }\n return dropCookiesFromSharedCacheable(response, currentPathName);\n }\n\n if (isViewDataRequest) {\n // NDJSON: envelope first — sent at handler speed — then one line\n // per query as it settles (#290). The client commits the\n // navigation off the envelope and hydrates the rest as it lands.\n headers.set(\"Content-Type\", \"application/x-ndjson; charset=utf-8\");\n // The body depends on the route the client came from, so no shared\n // cache may serve one client's partial response to another.\n headers.append(\"Vary\", PARTIAL_RENDER_HEADER);\n\n cookies.forEach((cookie) => headers.append(\"Set-Cookie\", cookie.toString()));\n\n await this.hooks.onRequestEnd(httpRequest);\n\n const envelope = {\n // Nothing that rendered touched the metadata, so the segments\n // that were skipped are still the ones that own it.\n meta: partial && !ctx.metadata.touched ? null : pageData.meta,\n data: {\n [urlPathname]: viewData,\n },\n breadcrumbs,\n // Resolved-so-far; the rest streams behind the envelope. The\n // snapshot marks its entries shipped so they aren't sent twice.\n prefetchedData: ctx.serverQueries.snapshotResolved(),\n i18n,\n // Sent on every navigation, **including a partial render**. Unlike\n // `meta`, flags are a property of the request rather than of the\n // segments that re-ran — omitting them on a partial would leave the\n // client showing the previous route's flag values.\n features: pageData.features,\n is404: !currentPathName,\n appId: pageData.appId,\n partial,\n };\n\n return new Response(\n createRoutePayloadStream(envelope, ctx.serverQueries, undefined, ({ aborted }) =>\n // No shell was marked, so the summary reports\n // `shellAt === settledAt` — the NDJSON body is one payload, not\n // a shell followed by streamed content.\n runInRequestScope(() =>\n this.completeStream(httpRequest, ctx.serverQueries.summarize(aborted)),\n ),\n ),\n {\n headers,\n },\n );\n }\n\n headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n\n // The streamed/settled decision is UA-derived (crawlers get inline\n // settled documents), so the body varies by User-Agent and a shared\n // cache must key on it — otherwise a cached browser shell full of\n // fallbacks and reveal scripts gets served to a bot. `no-stream`\n // routes serve one settled body to everyone, so they stay cacheable\n // without the (CDN-hostile) Vary.\n // A static view is one settled body for everyone, like `no-stream` —\n // unless the request became a 404, which renders as usual.\n //\n // A missing record turned a static route into the app's hydrated\n // `404`, which gets the cookies a hydrated page does — or into the\n // static `notFound` document, which gets that page's (#828).\n const documentStatic = currentPathName ? staticView : notFoundDocument;\n const staticDocument = Boolean(documentStatic);\n const documentCookies = staticCookiePolicy(documentStatic);\n if (!noStream && !staticDocument) {\n headers.append(\"Vary\", \"User-Agent\");\n }\n\n if (!staticDocument || documentCookies.session) {\n ensureSessionId();\n }\n\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n\n // const { csrfToken, csrfTokenHMAC } = this.generateCSRFTokenWithHmac();\n\n if (!staticDocument || documentCookies.csrf) {\n const csrfToken = Bun.CSRF.generate(process.env.SECRET);\n headers.append(\n \"Set-Cookie\",\n `csrf_token=${csrfToken}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now() + 1000 * 60 * 60 * 24).toUTCString()}`,\n );\n }\n\n try {\n await this.onRequestEnd(httpRequest, {\n mintSession: !staticDocument || documentCookies.session,\n });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n // The `notFound` page's `cacheControl` is for a path no route has\n // (#828). A route that became a 404 (a refusal, a missing record, a\n // feature gate) depends on who asked, so a shared cache must not keep it.\n if (staticDocument && (currentPathName || !matched)) {\n applyStaticCacheControl(headers, documentStatic!);\n }\n\n return await this.render({\n req: httpRequest,\n runInRequestScope,\n csrfTokenHMAC: Buffer.from(\"\"),\n currentPathName,\n headers,\n i18n,\n params,\n pathname: url.pathname,\n serverQueries: ctx.serverQueries,\n userAgent: req.headers.get(\"user-agent\"),\n noStream,\n noTheme,\n url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta: pageData.meta,\n appId: pageData.appId,\n features: pageData.features,\n isOgRequest,\n // Not when the request became a 404 (a gate or a missing record):\n // that renders the app's `404` view, which hydrates as usual —\n // unless these views have a static `notFound` (#828).\n staticView: documentStatic,\n refusedStatus: refusedStatus ?? undefined,\n });\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n // A cookie set before the break (an OAuth round trip's state cookie\n // ahead of `Redirect.external`) goes out with it, as on an api route.\n const broken = isViewDataRequest\n ? viewDataBreakResponse(err.payload.viewData ?? err.payload.api)\n : viewBreakResponse(err.payload.view);\n for (const cookie of ctx.cookies) broken.headers.append(\"Set-Cookie\", cookie.toString());\n return broken;\n }\n // `Query.instant` rethrows the entry's error object into this catch —\n // already reported when the rejection settled, so skip the duplicate.\n if (!reportedQueryErrors.has(err)) {\n this.hooks.onRequestFail(httpRequest, err);\n }\n // A loader or a middleware read a policied model it may not see. Left\n // to throw, it became the server's 500, whose body in production is\n // the error's stack and so the policy's message: a server error for\n // what is a refusal. The developer keeps the reason through\n // `onRequestFail` above and the log; the client gets the api's 403\n // body on a `.json` navigation and a 403 page otherwise.\n if (isPolicyDeniedError(err)) {\n console.error(err);\n return isViewDataRequest ? policyDeniedResponse() : viewBreakResponse(policyDeniedView());\n }\n // The same refusal one step removed: the loader's `Query.instant` hit\n // an api route that answered 403, a policy denial there among them.\n // The api side logged it and the query's rejection reported it, so\n // the view only passes the refusal on instead of turning it into a\n // 500.\n if (err instanceof QueryError && err.status === 403) {\n return isViewDataRequest ? policyDeniedResponse() : viewBreakResponse(policyDeniedView());\n }\n throw err;\n }\n }, carried);\n }\n}\n\n/** The visitor's stored theme, if the cookie holds one gemi recognises. */\nfunction readThemeCookie(req: HttpRequest, cookie: string): ThemeData[\"value\"] {\n const value = req.cookies?.get(cookie);\n return isTheme(value) ? value : null;\n}\n",
|
|
89
89
|
"import type { ViewRoutes } from \"../../http/ViewRouter\";\nfunction removeGroupPrefix(input: string) {\n // Remove all (str) patterns\n const withoutParentheses = input.replace(/\\([^)]*\\)/g, \"\");\n\n // Remove all double slashes // by replacing with single slash\n const withoutDoubleSlashes = withoutParentheses.replace(/\\/\\//g, \"/\");\n return withoutDoubleSlashes;\n}\n\nexport function createRouteManifest(routes: ViewRoutes) {\n const routeManifest: Record<string, string[]> = {};\n for (const [routePath, routeHandler] of Object.entries(routes)) {\n if (\"run\" in routeHandler) {\n // `viewPath` is \"FILE\" for file routes and \"REDIRECT\" for redirect routes,\n // neither of which resolves to a component — consumers filter them out.\n const viewPath = routeHandler.viewPath;\n\n if (\"children\" in routeHandler) {\n // Add the layout view\n routeManifest[routePath] = [viewPath];\n const children = new routeHandler.children();\n const manifest = createRouteManifest(children.routes);\n for (const [path, viewPaths] of Object.entries(manifest)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n routeManifest[_key] = [viewPath, ...viewPaths];\n }\n // **A layout with no index route is not a navigable path.**\n //\n // Still length 1 means nothing merged into this key — the layout has no\n // `\"/\"` child — so the path would resolve to layouts and no page, and\n // rendering it would produce a blank content area. `createFlatViewRoutes`\n // agrees: `/foo` and `/foo/bar` appear there only as *segments* of\n // `/foo/bar/baz`, never as matchable routes of their own.\n //\n // The condition is \"no index route\", which is broader than the \"no\n // children at all\" this comment used to claim — a layout whose only\n // children are deeper layouts is removed too, and that is the case the\n // stale test in this directory expected to survive.\n if (routeManifest[routePath].length === 1) {\n delete routeManifest[routePath];\n }\n } else {\n routeManifest[routePath] = [viewPath];\n }\n } else {\n const router = new routeHandler();\n\n const manifest = createRouteManifest(router.routes);\n for (const [path, viewPaths] of Object.entries(manifest)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n routeManifest[_key] = viewPaths;\n }\n }\n }\n\n return Object.fromEntries(\n Object.entries(routeManifest).map(([key, value]) => [\n removeGroupPrefix(key),\n value,\n ]),\n );\n}\n",
|
|
90
90
|
"import type { ComponentTree } from \"../../client/types\";\nimport type { ViewRoutes } from \"../../http/ViewRouter\";\n\n/**\n * Adds `node` to `tree`, folding it into a sibling with the same view path.\n *\n * Several routes can use one view (a legacy path and its replacement, or one\n * layout mounted under two prefixes). The tree describes what can render at\n * each depth, not one entry per route, so a view appears once per level —\n * otherwise `Tree` mounts every copy and the page renders twice (#788). The\n * subtrees of a repeated layout are merged the same way.\n */\nfunction addNode(tree: ComponentTree, node: ComponentTree[number]) {\n const [viewPath, branch] = node;\n const existing = tree.find(([path]) => path === viewPath);\n if (!existing) {\n tree.push([viewPath, [...branch]]);\n return;\n }\n for (const child of branch) {\n addNode(existing[1], child);\n }\n}\n\nexport function createComponentTree(routes: ViewRoutes): ComponentTree {\n const componentTree: ComponentTree = [];\n\n for (const [_, routeHandler] of Object.entries(routes)) {\n if (\"run\" in routeHandler) {\n const viewPath = routeHandler.viewPath;\n if (viewPath === \"__\") {\n continue;\n }\n\n // File and redirect routes never resolve to a component.\n if (viewPath === \"REDIRECT\") {\n continue;\n }\n\n if (viewPath === \"FILE\") {\n continue;\n }\n\n if (\"children\" in routeHandler) {\n const router = new routeHandler.children();\n const branch = createComponentTree(router.routes);\n addNode(componentTree, [viewPath, branch]);\n } else {\n addNode(componentTree, [viewPath, []]);\n }\n } else {\n const router = new routeHandler();\n const branch = createComponentTree(router.routes);\n for (const node of branch) {\n addNode(componentTree, node);\n }\n }\n }\n\n return componentTree;\n}\n",
|
|
91
91
|
"import type { ComponentTree } from \"../types\";\n\nexport function flattenComponentTree(componentTree: ComponentTree): string[] {\n let out: string[] = [];\n for (const [root, branches] of componentTree) {\n out.push(root, ...flattenComponentTree(branches).flat());\n }\n return Array.from(new Set(out));\n}\n",
|
|
@@ -99,8 +99,12 @@
|
|
|
99
99
|
"import { QueryError } from \"../../client/QueryError\";\nimport { HttpRequest } from \"../../http/HttpRequest\";\nimport { isHttpResponse } from \"../../http/HttpResponse\";\nimport { RequestContext } from \"../../http/requestContext\";\nimport { kernelContext } from \"../../kernel/context\";\nimport { applyParams } from \"../../utils/applyParams\";\nimport { app } from \"../../foundation/app\";\nimport { requestDomain, setRequestDomain } from \"../../http/requestDomain\";\nimport { DomainRouter } from \"./DomainRouter\";\nimport { Translator } from \"../../i18n/Translator\";\nimport type { ServerQueryFetcher } from \"./ServerQueryStore\";\n\n/**\n * The in-process \"fetch\" behind every server-side query: rebuild the request\n * the browser would have sent to `/api` and run the api handler directly.\n * Mirrors what `Query.prefetch` has always done, factored out so\n * render-discovered queries go through the identical path.\n *\n * Lives apart from `ServerQueryStore` on purpose: the store is pure and\n * unit-testable, while this pulls in the whole service-container graph.\n */\nexport function createServerQueryFetcher(req: Request): ServerQueryFetcher {\n // `app()` resolves through the kernel's AsyncLocalStorage. The factory runs\n // inside it (request handling always does), but a render-discovered query\n // fires from React's streaming render, which the http server drives\n // *outside* the kernel scope — so capture the store now and re-enter it\n // around every fetch.\n const kernelStore = kernelContext.getStore();\n // The view's own request context. Its locale is read per fetch, not here:\n // the view router creates this fetcher before it resolves the page's locale.\n const viewContext = RequestContext.getStore();\n return (patternPath, params, searchParams) => {\n const origin = new URL(req.url).origin;\n const pathnameWithSearch = [applyParams(patternPath, params), searchParams.toString()]\n .filter((s) => s.length > 0)\n .join(\"?\");\n const newReq = new Request(`${origin}/${pathnameWithSearch}`, {\n headers: req.headers,\n // The page request's: a client that leaves mid-render aborts the\n // queries the render started, as `req.signal` documents.\n signal: req.signal,\n });\n const domain = requestDomain(req);\n if (domain) {\n setRequestDomain(newReq, domain);\n }\n const httpRequest = new HttpRequest(newReq, params);\n return kernelContext.run(kernelStore, () =>\n RequestContext.run(httpRequest, async () => {\n // The locale the page renders in (URL prefix, then cookie, then\n // `accept-language`), so `req.locale()` in the handler matches it.\n // The rebuilt request has lost the URL prefix, so detecting here would\n // let a cookie override `/tr-TR/...` (#1074). Left unset when i18n is\n // off, as the api dispatcher leaves it.\n const locale = viewContext?.locale;\n if (locale && app(Translator).isLocaleAware) {\n RequestContext.getStore().setLocale(locale);\n }\n try {\n // The api of the page's own host group — on `admin.` that is the\n // admin api, which may not share a single route with the root's.\n const api = app(DomainRouter).dispatchers(domain).api;\n // The route's middleware first, as the browser's fetch of the same\n // url runs it: a handler reads what its middleware put on\n // `req.state`, and a route guarded by its own middleware must not\n // be answered unguarded here. A middleware's refusal is a\n // `Response`, handled below like a handler's.\n const data =\n (await api.runRouteMiddleware(patternPath, httpRequest)) ??\n (await api.getRouteData(patternPath));\n // A handler's `HttpResponse`: its body is the data, and a status\n // outside 2xx is the same `QueryError` the browser's fetch makes of\n // it, body included.\n if (isHttpResponse(data)) {\n if (!data.ok) {\n throw new QueryError(\n applyParams(patternPath, params),\n searchParams.toString(),\n data.status,\n data.body,\n );\n }\n return data.body;\n }\n // A handler that broke (`RequestBreakerError`) comes back as an\n // error `Response`, not a throw. Surface it as the same\n // `QueryError` the browser's fetch would produce — otherwise the\n // entry \"resolves\" and the view renders with a Response object for\n // data.\n if (data instanceof Response) {\n const body = await data.json().catch(() => null);\n if (!data.ok) {\n throw new QueryError(\n applyParams(patternPath, params),\n searchParams.toString(),\n data.status,\n body,\n );\n }\n return body;\n }\n return data;\n } catch (err) {\n if (err instanceof QueryError) throw err;\n // A raw throw inside the api handler (not a `RequestBreakerError`)\n // would otherwise leave this boundary unwrapped, so `onRequestFail`\n // would see an error with no path/variant/status attached — the\n // browser's fetch for the same failure produces a 500 `QueryError`.\n // Wrapping here keeps the two paths interchangeable and keeps the\n // error identity stable for the router's rethrow dedupe\n // (`Query.instant` rethrows the entry's — now wrapped — error).\n const wrapped = new QueryError(\n applyParams(patternPath, params),\n searchParams.toString(),\n 500,\n { message: err instanceof Error ? err.message : String(err) },\n );\n wrapped.cause = err;\n throw wrapped;\n }\n }),\n );\n };\n}\n",
|
|
100
100
|
"/**\n * Dev-mode guard against the silent no-JS blanking threshold (#289, #294).\n *\n * React defers any boundary bigger than `progressiveChunkSize` (~12.8 kB) out\n * of the shell on size alone, so a public page that reads fine without JS\n * today goes blank the day one more section pushes it over the budget — its\n * content is parked in `<div hidden>` segments revealed by `$RC()` scripts,\n * and nothing in typecheck, tests, or CI notices the transition. `\"no-stream\"`\n * fixes it, but only for routes someone already knows are affected.\n *\n * The measurement is nearly free where the bytes already flow: the stream\n * injector is the last thing to see the response body, so an observer hung on\n * its `onChunk` hook holds the document exactly as the visitor received it.\n * After the body closes, the bytes are split into shell-readable text (what a\n * no-JS reader can see) versus deferred text (parked behind reveal scripts),\n * and a route shipping its content deferred while its shell is near-blank gets\n * a console hint — once per route per boot.\n */\n\nexport interface ShellContentMeasurement {\n /** Non-whitespace text chars a no-JS reader can see in the shell. */\n shellChars: number;\n /** Non-whitespace text chars parked in `<div hidden>` reveal segments. */\n deferredChars: number;\n}\n\n/**\n * Their text is code, styling, or metadata — never readable content. React's\n * `<template id=\"B:...\">` fallback markers are empty anyway; skipping the tag\n * also covers hand-written templates.\n */\nconst RAW_TEXT_TAGS = new Set([\"script\", \"style\", \"template\", \"title\"]);\n\n/**\n * `hidden` as a standalone attribute (`<div hidden id=\"S:0\">`, `hidden=\"\"`).\n * Tested against the tag with its quoted attribute values blanked out\n * (`QUOTED_VALUE` below), so the word `hidden` inside a value — a Tailwind\n * list like `class=\"mt-2 hidden md:block\"` or prose like\n * `title=\"show hidden files\"` — never opens a deferred segment.\n */\nconst HIDDEN_ATTR = /\\shidden([\\s=/]|$)/i;\n\n/**\n * Quoted attribute values, to be blanked before the `HIDDEN_ATTR` test. Safe\n * as a regex because React escapes `\"` and `'` inside attribute values, so a\n * quoted span never contains its own delimiter.\n */\nconst QUOTED_VALUE = /\"[^\"]*\"|'[^']*'/g;\n\n/**\n * Splits a streamed HTML document into shell-readable versus deferred text.\n *\n * A scanner, not a parser: it only needs to tell text from markup, skip the\n * tags whose text is never content, and track `<div hidden>` nesting — the\n * container React streams deferred segments in. Attribute text and comments\n * (including React's `<!--$?-->` boundary marks) never count; whitespace\n * never counts.\n */\nexport function measureShellContent(html: string): ShellContentMeasurement {\n let shellChars = 0;\n let deferredChars = 0;\n /** `<div>` nesting depth inside the current hidden segment; 0 = in the shell. */\n let hiddenDepth = 0;\n let i = 0;\n\n while (i < html.length) {\n const lt = html.indexOf(\"<\", i);\n const textEnd = lt === -1 ? html.length : lt;\n if (textEnd > i) {\n const visible = html.slice(i, textEnd).replace(/\\s+/g, \"\").length;\n if (hiddenDepth > 0) {\n deferredChars += visible;\n } else {\n shellChars += visible;\n }\n }\n if (lt === -1) break;\n\n if (html.startsWith(\"<!--\", lt)) {\n const end = html.indexOf(\"-->\", lt + 4);\n i = end === -1 ? html.length : end + 3;\n continue;\n }\n\n const gt = html.indexOf(\">\", lt);\n if (gt === -1) break; // truncated tag — nothing readable follows\n const tag = html.slice(lt + 1, gt);\n i = gt + 1;\n\n const name = /^\\/?([a-zA-Z][a-zA-Z0-9-]*)/.exec(tag)?.[1]?.toLowerCase();\n if (!name) continue;\n const isClosing = tag.startsWith(\"/\");\n\n if (!isClosing && RAW_TEXT_TAGS.has(name) && !tag.endsWith(\"/\")) {\n const close = html.indexOf(`</${name}`, i);\n i = close === -1 ? html.length : close;\n continue;\n }\n\n // Only `div` is tracked because that is the container React streams\n // deferred segments in. A hand-written `<section hidden>` still counts as\n // shell text — a false negative (stays silent), never a false hint.\n if (name !== \"div\") continue;\n if (isClosing) {\n if (hiddenDepth > 0) hiddenDepth -= 1;\n } else if (hiddenDepth > 0) {\n hiddenDepth += 1;\n } else if (HIDDEN_ATTR.test(tag.replace(QUOTED_VALUE, '\"\"'))) {\n hiddenDepth = 1;\n }\n }\n\n return { shellChars, deferredChars };\n}\n\n/** Below this much deferred text the page isn't relying on reveal scripts. */\nexport const DEFERRED_TEXT_FLOOR = 1000;\n\n/**\n * \"Near zero\": under this many readable chars the shell is effectively blank\n * — less than a sentence, no headline worth of content.\n */\nexport const SHELL_TEXT_NEAR_ZERO = 64;\n\nfunction formatChars(chars: number): string {\n return chars >= 1000 ? `${(chars / 1000).toFixed(1)} kB` : `${chars} chars`;\n}\n\n/**\n * The hint for a route whose content streams behind reveal scripts while its\n * shell is near-blank — exactly the transition #289 was discovered through by\n * hand-measuring. Null when the measurement is fine: a shell that carries its\n * own text, or too little deferred text to matter.\n */\nexport function shellContentHint(\n routePath: string,\n measurement: ShellContentMeasurement,\n): string | null {\n if (measurement.deferredChars < DEFERRED_TEXT_FLOOR) return null;\n if (measurement.shellChars >= SHELL_TEXT_NEAR_ZERO) return null;\n return (\n `[gemi] GET ${routePath} streams ${formatChars(measurement.deferredChars)} of its ` +\n `content behind reveal scripts — a no-JS visitor sees ~${measurement.shellChars} chars. ` +\n `If this is a public/content route, add \"no-stream\" to its middleware.`\n );\n}\n\n/**\n * Owns the once-per-route-per-boot dedup (#294's \"logs the hint once\"): a hot\n * route must not spam the dev console, but a route whose measurement is\n * healthy today must stay eligible for the hint the day it crosses the\n * threshold — only an actually-emitted hint marks the route as done.\n *\n * `warn` is injectable for tests; production callers use the default.\n */\nexport function createShellContentReporter(warn: (hint: string) => void = console.warn) {\n /** Routes already hinted this boot. */\n const hintedRoutes = new Set<string>();\n return {\n /**\n * Whether collecting bytes for this route can still lead to a hint —\n * false once the route has been hinted, so the caller can skip the\n * observer entirely.\n */\n shouldObserve(routePath: string): boolean {\n return !hintedRoutes.has(routePath);\n },\n report(routePath: string, measurement: ShellContentMeasurement): void {\n if (hintedRoutes.has(routePath)) return;\n const hint = shellContentHint(routePath, measurement);\n if (!hint) return;\n hintedRoutes.add(routePath);\n warn(hint);\n },\n };\n}\n\nexport type ShellContentReporter = ReturnType<typeof createShellContentReporter>;\n\n/**\n * Accumulates the response body for a post-close measurement. Wire `onChunk`\n * into `StreamLifecycleHooks.onChunk`; call `measure` once the body closed.\n * Decoding is streaming-safe — a multi-byte character split across chunks\n * still decodes as one character.\n */\nexport function createShellContentObserver() {\n const decoder = new TextDecoder();\n let html = \"\";\n return {\n onChunk(chunk: Uint8Array) {\n html += decoder.decode(chunk, { stream: true });\n },\n measure(): ShellContentMeasurement {\n html += decoder.decode();\n return measureShellContent(html);\n },\n };\n}\n",
|
|
101
101
|
"import type { ServerQueryStore } from \"./ServerQueryStore\";\n\n/**\n * How long a navigation payload may keep streaming query results before it\n * closes with whatever has settled. A hung query must not hold the response\n * open — the suspended segment it strands resolves over `/api` instead.\n */\nconst PAYLOAD_STREAM_DEADLINE_MS = 10_000;\n\n/**\n * The streamed `.json` navigation response (#290): NDJSON, one JSON value per\n * line.\n *\n * - **Line 1 — the envelope**: route data, meta, i18n, partial info, and the\n * `prefetchedData` that has already resolved. Written immediately, so the\n * client can commit the navigation at handler speed instead of waiting for\n * `allSettled` — the blocking that made priming a heavy query a tax on\n * every navigation.\n * - **Later lines — query payloads**: `[path, variantKey, data]`, one per\n * query as it settles. The client hydrates each into the cache, which\n * settles any segment suspended on that variant — the same wake path the\n * document stream uses.\n *\n * The envelope is an object and payload lines are arrays, which is how the\n * reader tells them apart. `JSON.stringify` never emits a raw newline, so\n * line framing is unambiguous. Rejected queries stream nothing: the\n * suspended segment's own `/api` fetch surfaces the error into its boundary.\n */\nexport function createRoutePayloadStream(\n envelope: unknown,\n store: ServerQueryStore,\n deadlineMs: number = PAYLOAD_STREAM_DEADLINE_MS,\n /**\n * The body actually closed — every settled query streamed, the deadline\n * fired (`aborted: true`), or the client went away. Fires exactly once;\n * the stream-lifecycle mirror of the document injector's `onClose`.\n */\n onClose?: (info: { aborted: boolean }) => void,\n): ReadableStream<Uint8Array> {\n const encoder = new TextEncoder();\n let closeStream: (aborted: boolean) => void = () => {};\n\n return new ReadableStream<Uint8Array>({\n start(controller) {\n let closed = false;\n const close = (aborted: boolean) => {\n if (closed) return;\n closed = true;\n clearTimeout(deadline);\n try {\n controller.close();\n } catch {}\n onClose?.({ aborted });\n };\n closeStream = close;\n\n controller.enqueue(encoder.encode(`${JSON.stringify(envelope)}\\n`));\n\n // Entries the envelope's snapshot already shipped are skipped by the\n // store itself (same contract the document injector relies on).\n store.onSettle((entry) => {\n if (closed || entry.status !== \"resolved\") return;\n controller.enqueue(\n encoder.encode(\n `${JSON.stringify([entry.path, entry.variantKey, entry.data])}\\n`,\n ),\n );\n });\n\n const deadline = setTimeout(() => close(true), deadlineMs);\n store.allSettled().then(\n () => close(false),\n () => close(false),\n );\n },\n cancel() {\n closeStream(false);\n },\n });\n}\n",
|
|
102
|
-
"import {\n type ComponentType,\n type Context,\n type ReactElement,\n type ReactNode,\n Fragment,\n createContext,\n createElement,\n lazy,\n use,\n useContext,\n} from \"react\";\n\n/**\n * When an island's code is fetched and hydrated, per marker.\n *\n * - `\"eager\"` (default): as soon as the page has parsed. The island's chunks\n * and React are `modulepreload`ed from the head, so they are usually in\n * cache by then.\n * - `\"idle\"`: on `requestIdleCallback` (a timeout where unsupported).\n * - `\"visible\"`: when the island's content first scrolls into view. Suits a\n * heavy island far down the page, like a canvas or a map.\n */\nexport type IslandLoad = \"eager\" | \"idle\" | \"visible\";\n\nexport interface IslandOptions {\n /** When the island hydrates on a static page. Defaults to `\"eager\"`. */\n load?: IslandLoad;\n /** Which export of the module is the component. Defaults to `\"default\"`. */\n export?: string;\n /**\n * Also `modulepreload` the chunks the island's code loads with `import()`,\n * on static pages that render it, so a lazy piece it needs right after\n * hydrating (an animation runtime, say) arrives with it instead of one\n * round trip later. Applies to `\"eager\"` islands only; hydrated views are\n * unaffected. Defaults to `false`.\n */\n preloadDynamic?: boolean;\n}\n\n/**\n * `() => import(\"./Counter\")`, the argument `island()` takes. gemi's Vite\n * plugin adds the module's build key and the module itself, so the server can\n * render it synchronously in a hydrated view and point a static page at its\n * built chunk.\n */\nexport type IslandLoader<M = any> = (() => Promise<M>) & {\n /** @internal The module's path from the project root, the client manifest's key. */\n gemiIsland?: string;\n /** @internal The module, statically imported by the plugin. */\n gemiModule?: M;\n};\n\n/** @internal One island module a static page uses: an entry of the page's island table. */\nexport interface IslandEntry {\n /** The module's build key, or `undefined` when the plugin did not run. */\n module: string | undefined;\n export: string;\n load: IslandLoad;\n /** Preload the entry's dynamic imports too: set when any island() call sharing this entry asks. */\n preloadDynamic?: boolean;\n}\n\ninterface IslandInstance {\n html: Promise<string>;\n index: number;\n uid: string;\n props: string | undefined;\n}\n\n/**\n * @internal Provided by the view router around a static view's render; `null`\n * everywhere else, which is how `island()` knows to render a plain component.\n */\nexport interface StaticRenderCollector {\n /** The page's island table: what the loader imports, by marker index. */\n islands: IslandEntry[];\n /**\n * Renders one island as its own React root, settled, to HTML. Supplied by\n * the server, so this module never imports `react-dom/server`.\n */\n render: (element: ReactElement, identifierPrefix: string) => Promise<string>;\n /** Per-instance render state, keyed by the island's props object. */\n instances: WeakMap<object, IslandInstance>;\n /** Instances rendered so far, for each one's `identifierPrefix`. */\n count: number;\n}\n\n/** @internal */\nexport function createStaticRenderCollector(\n render: StaticRenderCollector[\"render\"],\n): StaticRenderCollector {\n return { islands: [], render, instances: new WeakMap(), count: 0 };\n}\n\n/** @internal The element an island's static children land in. */\nexport const ISLAND_SLOT_TAG = \"gemi-slot\";\n/** @internal On the empty slot an island's own render leaves for its children. */\nexport const ISLAND_SLOT_ATTRIBUTE = \"data-slot\";\n/** @internal On the template holding the children the page tree rendered. */\nexport const ISLAND_SLOT_TEMPLATE_ATTRIBUTE = \"data-gemi-slot\";\n\n/** The property gemi's Vite plugin attaches to an island's loader. */\nexport const ISLAND_MODULE_KEY = \"gemiIsland\";\n\nconst CONTEXT_KEY = Symbol.for(\"gemi.staticRender\");\n\n/**\n * @internal On `globalThis` rather than a module-level `createContext`: the\n * published package bundles `gemi/client` and the server side separately, so a\n * plain module singleton would give the provider and the islands two different\n * context objects.\n */\nexport const StaticRenderContext: Context<StaticRenderCollector | null> = ((\n globalThis as Record<symbol, unknown>\n)[CONTEXT_KEY] ??= createContext<StaticRenderCollector | null>(null)) as Context<\n StaticRenderCollector | null\n>;\n\nconst isProduction = () =>\n typeof process !== \"undefined\" && process.env?.NODE_ENV === \"production\";\n\n/**\n * Throws when `value` would not survive `JSON.stringify` and `JSON.parse`\n * unchanged, naming the prop. An island's props cross from the server to the\n * browser as JSON: a function would vanish and a `Date` would arrive as a\n * string, so the island would hydrate with other props than it rendered with.\n */\nexport function assertSerialisableProps(value: unknown, island: string): void {\n const seen = new Set<object>();\n const fail = (path: string, what: string): never => {\n throw new Error(\n `${island}: the prop \\`${path}\\` is ${what}. An island's props are sent to the browser ` +\n `as JSON, so they must be plain data: strings, finite numbers, booleans, null, ` +\n `arrays and plain objects. Pass static markup as children instead.`,\n );\n };\n const walk = (v: unknown, path: string, inArray: boolean): void => {\n switch (typeof v) {\n case \"string\":\n case \"boolean\":\n return;\n case \"number\":\n if (!Number.isFinite(v)) fail(path, String(v));\n return;\n case \"undefined\":\n // Dropped from an object, which reads back the same; not in an array.\n if (inArray) fail(path, \"undefined (it would arrive as null)\");\n return;\n case \"function\":\n fail(path, \"a function\");\n return;\n case \"symbol\":\n case \"bigint\":\n fail(path, `a ${typeof v}`);\n return;\n }\n if (v === null) return;\n const object = v as Record<string, unknown>;\n if (seen.has(object)) fail(path, \"a circular reference\");\n if (\"$$typeof\" in object) fail(path, \"a React element\");\n seen.add(object);\n if (Array.isArray(object)) {\n object.forEach((item, i) => walk(item, `${path}[${i}]`, true));\n } else {\n const proto = Object.getPrototypeOf(object);\n if (proto !== Object.prototype && proto !== null) {\n fail(path, `an instance of ${proto?.constructor?.name || \"a class\"}`);\n }\n for (const [key, item] of Object.entries(object)) {\n walk(item, path ? `${path}.${key}` : key, false);\n }\n }\n seen.delete(object);\n };\n walk(value, \"\", false);\n}\n\nconst hasChildren = (children: unknown) =>\n children !== undefined && children !== null && typeof children !== \"boolean\";\n\ntype AnyComponent = ComponentType<any>;\n\n/**\n * Makes a component an island: hydrated on its own on a static page, an\n * ordinary component everywhere else.\n *\n * ```tsx\n * // app/views/site/Counter.tsx: a plain React component\n * export default function Counter({ start }: { start: number }) {\n * const [n, setN] = useState(start);\n * return <button onClick={() => setN(n + 1)}>{n}</button>;\n * }\n *\n * // where it is used\n * const Counter = island(() => import(\"./Counter\"), { load: \"visible\" });\n * <Counter start={3} />\n * ```\n *\n * - In a **static** view (`this.view(...).static()`), it server-renders the\n * component as its own React root inside a `<gemi-island>` marker and\n * serialises its props. The page gets a tiny loader that, on the island's\n * `load` trigger, imports React (one chunk shared by every island) and the\n * component's chunk and calls `hydrateRoot` on the marker.\n * - In a **hydrated** view, it is the component itself: rendered inline, with\n * the page's context, and nothing extra to load.\n *\n * Write the loader exactly as `() => import(\"./path\")` inside the `island(`\n * call: gemi's Vite plugin finds that call, builds the module as its own\n * client entry and imports it statically for the server.\n *\n * Props must be plain data (checked in dev). `children` are rendered on the\n * server as static HTML and passed through untouched. On a static page the\n * island is a separate React root, so context from the page does not reach it.\n */\nexport function island<M extends { default: AnyComponent }>(\n loader: () => Promise<M>,\n options?: IslandOptions & { export?: \"default\" },\n): M[\"default\"];\nexport function island<M, K extends keyof M & string>(\n loader: () => Promise<M>,\n options: IslandOptions & { export: K },\n): M[K];\nexport function island(loader: IslandLoader, options: IslandOptions = {}): AnyComponent {\n if (typeof loader !== \"function\") {\n throw new Error(\n 'island() takes `() => import(\"./Component\")` and options since gemi 0.110. ' +\n 'The island(\"name\", Component, () => import(\"./x.island\")) form was removed: see UPGRADE.md.',\n );\n }\n const exportName = options.export ?? \"default\";\n const load: IslandLoad = options.load ?? \"eager\";\n const preloadDynamic = options.preloadDynamic === true ? true : undefined;\n const key = loader[ISLAND_MODULE_KEY];\n const label = `island(${key ?? \"() => import(…)\"}${exportName === \"default\" ? \"\" : `#${exportName}`})`;\n\n const pick = (mod: Record<string, unknown>): AnyComponent => {\n const component = mod?.[exportName];\n if (typeof component !== \"function\" && (typeof component !== \"object\" || component === null)) {\n throw new Error(`${label}: the module has no component export \\`${exportName}\\`.`);\n }\n return component as AnyComponent;\n };\n\n // A hydrated view renders the component in place. The plugin imported the\n // module statically; without it (a test that doesn't run the plugin) the\n // component loads lazily and suspends once.\n let inline: AnyComponent | undefined;\n const inlineComponent = (): AnyComponent =>\n (inline ??= loader.gemiModule\n ? pick(loader.gemiModule)\n : lazy(() => loader().then((mod) => ({ default: pick(mod) }))));\n\n const register = (collector: StaticRenderCollector): number => {\n const known = collector.islands.findIndex(\n (entry) =>\n key !== undefined && entry.module === key && entry.export === exportName && entry.load === load,\n );\n if (known !== -1) {\n // Another island() call with the same entry may be the one asking.\n if (preloadDynamic) collector.islands[known].preloadDynamic = true;\n return known;\n }\n return collector.islands.push({ module: key, export: exportName, load, preloadDynamic }) - 1;\n };\n\n const start = (collector: StaticRenderCollector, props: Record<string, unknown>): IslandInstance => {\n const { children, ...rest } = props;\n if (!isProduction()) {\n assertSerialisableProps(rest, label);\n }\n const uid = `i${collector.count++}-`;\n const component = loader.gemiModule\n ? Promise.resolve(pick(loader.gemiModule))\n : loader().then(pick);\n // The island's own render is a root of its own, as it will be in the\n // browser: islands nested in it are plain components of that root. Its\n // children are not rendered here: they belong to the page (and its\n // context), so the page tree renders them next to the marker and\n // `spliceIslandSlots` moves their HTML into this empty slot.\n const html = component.then((Component) =>\n collector.render(\n createElement(\n StaticRenderContext.Provider,\n { value: null },\n hasChildren(children)\n ? createElement(\n Component,\n rest,\n createElement(ISLAND_SLOT_TAG, { [ISLAND_SLOT_ATTRIBUTE]: uid, style: { display: \"contents\" } }),\n )\n : createElement(Component, rest),\n ),\n uid,\n ),\n );\n // A rejection surfaces through `use`; this keeps it from also being\n // reported as unhandled.\n html.catch(() => {});\n const json = JSON.stringify(rest);\n return { html, index: register(collector), uid, props: json === \"{}\" ? undefined : json };\n };\n\n function Island(props: Record<string, unknown>): ReactNode {\n const collector = useContext(StaticRenderContext);\n if (!collector) {\n return createElement(inlineComponent(), props);\n }\n\n // Suspending on `use` re-renders this component with the same props\n // object, so the render it started is found again rather than restarted.\n let instance = collector.instances.get(props);\n if (!instance) {\n instance = start(collector, props);\n collector.instances.set(props, instance);\n }\n\n const marker = createElement(\"gemi-island\", {\n \"data-island\": instance.index,\n \"data-uid\": instance.uid,\n // React escapes attribute values, so the JSON needs (and must get) no\n // escaping of its own.\n \"data-props\": instance.props,\n style: { display: \"contents\" },\n dangerouslySetInnerHTML: { __html: use(instance.html) },\n });\n if (!hasChildren(props.children)) {\n return marker;\n }\n // The children, rendered here in the page tree with the page's context\n // (islands among them are islands of their own), in a template the\n // static document splices into the island's slot before it is sent.\n return createElement(\n Fragment,\n null,\n marker,\n createElement(\"template\", { [ISLAND_SLOT_TEMPLATE_ATTRIBUTE]: instance.uid }, props.children as ReactNode),\n );\n }\n\n Island.displayName = label;\n return Island;\n}\n",
|
|
103
|
-
"import {
|
|
102
|
+
"import {\n type ComponentType,\n type Context,\n type ReactElement,\n type ReactNode,\n Fragment,\n createContext,\n createElement,\n lazy,\n use,\n useContext,\n} from \"react\";\nimport type { DictionarySink } from \"../i18n/dictionarySink\";\nimport type { LocaleStrings } from \"../i18n/dictionaryShape\";\nimport { DictionarySinkContext } from \"./DictionarySinkContext\";\nimport { type IslandI18n, IslandI18nContext } from \"./IslandI18nContext\";\n\n/**\n * When an island's code is fetched and hydrated, per marker.\n *\n * - `\"eager\"` (default): as soon as the page has parsed. The island's chunks\n * and React are `modulepreload`ed from the head, so they are usually in\n * cache by then.\n * - `\"idle\"`: on `requestIdleCallback` (a timeout where unsupported).\n * - `\"visible\"`: when the island's content first scrolls into view. Suits a\n * heavy island far down the page, like a canvas or a map.\n */\nexport type IslandLoad = \"eager\" | \"idle\" | \"visible\";\n\nexport interface IslandOptions {\n /** When the island hydrates on a static page. Defaults to `\"eager\"`. */\n load?: IslandLoad;\n /** Which export of the module is the component. Defaults to `\"default\"`. */\n export?: string;\n /**\n * Also `modulepreload` the chunks the island's code loads with `import()`,\n * on static pages that render it, so a lazy piece it needs right after\n * hydrating (an animation runtime, say) arrives with it instead of one\n * round trip later. Applies to `\"eager\"` islands only; hydrated views are\n * unaffected. Defaults to `false`.\n */\n preloadDynamic?: boolean;\n}\n\n/**\n * `() => import(\"./Counter\")`, the argument `island()` takes. gemi's Vite\n * plugin adds the module's build key and the module itself, so the server can\n * render it synchronously in a hydrated view and point a static page at its\n * built chunk.\n */\nexport type IslandLoader<M = any> = (() => Promise<M>) & {\n /** @internal The module's path from the project root, the client manifest's key. */\n gemiIsland?: string;\n /** @internal The module, statically imported by the plugin. */\n gemiModule?: M;\n};\n\n/** @internal One island module a static page uses: an entry of the page's island table. */\nexport interface IslandEntry {\n /** The module's build key, or `undefined` when the plugin did not run. */\n module: string | undefined;\n export: string;\n load: IslandLoad;\n /** Preload the entry's dynamic imports too: set when any island() call sharing this entry asks. */\n preloadDynamic?: boolean;\n}\n\ninterface IslandInstance {\n html: Promise<string>;\n index: number;\n uid: string;\n props: string | undefined;\n}\n\n/**\n * @internal Provided by the view router around a static view's render; `null`\n * everywhere else, which is how `island()` knows to render a plain component.\n */\nexport interface StaticRenderCollector {\n /** The page's island table: what the loader imports, by marker index. */\n islands: IslandEntry[];\n /**\n * Renders one island as its own React root, settled, to HTML. Supplied by\n * the server, so this module never imports `react-dom/server`.\n */\n render: (element: ReactElement, identifierPrefix: string) => Promise<string>;\n /** Per-instance render state, keyed by the island's props object. */\n instances: WeakMap<object, IslandInstance>;\n /** Instances rendered so far, for each one's `identifierPrefix`. */\n count: number;\n /**\n * What an island's own root gets of the page's i18n (#1095). Each read of\n * it sets `i18nUsed`.\n */\n i18n: IslandI18n;\n /**\n * The app has a locale configured: the page then always carries its i18n\n * for its islands, read or not, since an island may first read it in the\n * browser (a subtree that mounts after a click).\n */\n localeAware: boolean;\n /** The dictionary sink `useDictionary` reports into inside an island's root. */\n sink: DictionarySink;\n /** An island read the page's locale or zone (`useDictionary`, `useFormatter`). */\n i18nUsed: boolean;\n /** The dictionaries islands read, as `[id, locale, strings]`, once each. */\n dictionaries: IslandDictionary[];\n}\n\n/** @internal One dictionary an island read: what the island runtime seeds. */\nexport type IslandDictionary = [id: string, locale: string, strings: LocaleStrings];\n\n/**\n * @internal The page's i18n as the island runtime reads it, from the\n * document's `<script type=\"application/json\" id=\"gemi-island-i18n\">`.\n */\nexport interface IslandI18nPayload extends IslandI18n {\n /** Seeded into the dictionary registry before the island hydrates. */\n dictionaries?: IslandDictionary[];\n}\n\n/** @internal */\nexport function createStaticRenderCollector(\n render: StaticRenderCollector[\"render\"],\n i18n: IslandI18n = {},\n): StaticRenderCollector {\n const seen = new Set<string>();\n const collector: StaticRenderCollector = {\n islands: [],\n render,\n instances: new WeakMap(),\n count: 0,\n i18n: {},\n localeAware: Boolean(i18n.currentLocale),\n i18nUsed: false,\n dictionaries: [],\n sink: {\n use(id, locale, strings) {\n const key = `${id} ${locale}`;\n if (seen.has(key)) return;\n seen.add(key);\n collector.dictionaries.push([id, locale, strings]);\n },\n onUse() {},\n },\n };\n // Read through getters so the collector learns whether any island needed\n // the page's i18n: in an app without a locale, a page whose islands read\n // none of it is left as it was.\n for (const key of [\"currentLocale\", \"defaultLocale\", \"timeZone\"] as const) {\n Object.defineProperty(collector.i18n, key, {\n enumerable: true,\n get() {\n collector.i18nUsed = true;\n return i18n[key];\n },\n });\n }\n return collector;\n}\n\n/**\n * @internal The payload for a page with islands: always in an app with a\n * locale, else only when an island read the zone or a dictionary. Its\n * `dictionaries` are only the ones islands read during the server render.\n */\nexport function islandI18nPayload(collector: StaticRenderCollector): IslandI18nPayload | undefined {\n if (!collector.i18nUsed && !collector.localeAware) return undefined;\n const { currentLocale, defaultLocale, timeZone } = collector.i18n;\n return {\n ...(currentLocale ? { currentLocale } : {}),\n ...(defaultLocale ? { defaultLocale } : {}),\n ...(timeZone ? { timeZone } : {}),\n ...(collector.dictionaries.length > 0 ? { dictionaries: collector.dictionaries } : {}),\n };\n}\n\n/** @internal The element an island's static children land in. */\nexport const ISLAND_SLOT_TAG = \"gemi-slot\";\n/** @internal On the empty slot an island's own render leaves for its children. */\nexport const ISLAND_SLOT_ATTRIBUTE = \"data-slot\";\n/** @internal On the template holding the children the page tree rendered. */\nexport const ISLAND_SLOT_TEMPLATE_ATTRIBUTE = \"data-gemi-slot\";\n\n/** The property gemi's Vite plugin attaches to an island's loader. */\nexport const ISLAND_MODULE_KEY = \"gemiIsland\";\n\nconst CONTEXT_KEY = Symbol.for(\"gemi.staticRender\");\n\n/**\n * @internal On `globalThis` rather than a module-level `createContext`: the\n * published package bundles `gemi/client` and the server side separately, so a\n * plain module singleton would give the provider and the islands two different\n * context objects.\n */\nexport const StaticRenderContext: Context<StaticRenderCollector | null> = ((\n globalThis as Record<symbol, unknown>\n)[CONTEXT_KEY] ??= createContext<StaticRenderCollector | null>(null)) as Context<\n StaticRenderCollector | null\n>;\n\nconst isProduction = () =>\n typeof process !== \"undefined\" && process.env?.NODE_ENV === \"production\";\n\n/**\n * Throws when `value` would not survive `JSON.stringify` and `JSON.parse`\n * unchanged, naming the prop. An island's props cross from the server to the\n * browser as JSON: a function would vanish and a `Date` would arrive as a\n * string, so the island would hydrate with other props than it rendered with.\n */\nexport function assertSerialisableProps(value: unknown, island: string): void {\n const seen = new Set<object>();\n const fail = (path: string, what: string): never => {\n throw new Error(\n `${island}: the prop \\`${path}\\` is ${what}. An island's props are sent to the browser ` +\n `as JSON, so they must be plain data: strings, finite numbers, booleans, null, ` +\n `arrays and plain objects. Pass static markup as children instead.`,\n );\n };\n const walk = (v: unknown, path: string, inArray: boolean): void => {\n switch (typeof v) {\n case \"string\":\n case \"boolean\":\n return;\n case \"number\":\n if (!Number.isFinite(v)) fail(path, String(v));\n return;\n case \"undefined\":\n // Dropped from an object, which reads back the same; not in an array.\n if (inArray) fail(path, \"undefined (it would arrive as null)\");\n return;\n case \"function\":\n fail(path, \"a function\");\n return;\n case \"symbol\":\n case \"bigint\":\n fail(path, `a ${typeof v}`);\n return;\n }\n if (v === null) return;\n const object = v as Record<string, unknown>;\n if (seen.has(object)) fail(path, \"a circular reference\");\n if (\"$$typeof\" in object) fail(path, \"a React element\");\n seen.add(object);\n if (Array.isArray(object)) {\n object.forEach((item, i) => walk(item, `${path}[${i}]`, true));\n } else {\n const proto = Object.getPrototypeOf(object);\n if (proto !== Object.prototype && proto !== null) {\n fail(path, `an instance of ${proto?.constructor?.name || \"a class\"}`);\n }\n for (const [key, item] of Object.entries(object)) {\n walk(item, path ? `${path}.${key}` : key, false);\n }\n }\n seen.delete(object);\n };\n walk(value, \"\", false);\n}\n\nconst hasChildren = (children: unknown) =>\n children !== undefined && children !== null && typeof children !== \"boolean\";\n\ntype AnyComponent = ComponentType<any>;\n\n/**\n * Makes a component an island: hydrated on its own on a static page, an\n * ordinary component everywhere else.\n *\n * ```tsx\n * // app/views/site/Counter.tsx: a plain React component\n * export default function Counter({ start }: { start: number }) {\n * const [n, setN] = useState(start);\n * return <button onClick={() => setN(n + 1)}>{n}</button>;\n * }\n *\n * // where it is used\n * const Counter = island(() => import(\"./Counter\"), { load: \"visible\" });\n * <Counter start={3} />\n * ```\n *\n * - In a **static** view (`this.view(...).static()`), it server-renders the\n * component as its own React root inside a `<gemi-island>` marker and\n * serialises its props. The page gets a tiny loader that, on the island's\n * `load` trigger, imports React (one chunk shared by every island) and the\n * component's chunk and calls `hydrateRoot` on the marker.\n * - In a **hydrated** view, it is the component itself: rendered inline, with\n * the page's context, and nothing extra to load.\n *\n * Write the loader exactly as `() => import(\"./path\")` inside the `island(`\n * call: gemi's Vite plugin finds that call, builds the module as its own\n * client entry and imports it statically for the server.\n *\n * Props must be plain data (checked in dev). `children` are rendered on the\n * server as static HTML and passed through untouched. On a static page the\n * island is a separate React root, so context from the page does not reach it,\n * except the page's locale and time zone: `useDictionary` and `useFormatter`\n * work inside it, and the strings it read travel with the page.\n */\nexport function island<M extends { default: AnyComponent }>(\n loader: () => Promise<M>,\n options?: IslandOptions & { export?: \"default\" },\n): M[\"default\"];\nexport function island<M, K extends keyof M & string>(\n loader: () => Promise<M>,\n options: IslandOptions & { export: K },\n): M[K];\nexport function island(loader: IslandLoader, options: IslandOptions = {}): AnyComponent {\n if (typeof loader !== \"function\") {\n throw new Error(\n 'island() takes `() => import(\"./Component\")` and options since gemi 0.110. ' +\n 'The island(\"name\", Component, () => import(\"./x.island\")) form was removed: see UPGRADE.md.',\n );\n }\n const exportName = options.export ?? \"default\";\n const load: IslandLoad = options.load ?? \"eager\";\n const preloadDynamic = options.preloadDynamic === true ? true : undefined;\n const key = loader[ISLAND_MODULE_KEY];\n const label = `island(${key ?? \"() => import(…)\"}${exportName === \"default\" ? \"\" : `#${exportName}`})`;\n\n const pick = (mod: Record<string, unknown>): AnyComponent => {\n const component = mod?.[exportName];\n if (typeof component !== \"function\" && (typeof component !== \"object\" || component === null)) {\n throw new Error(`${label}: the module has no component export \\`${exportName}\\`.`);\n }\n return component as AnyComponent;\n };\n\n // A hydrated view renders the component in place. The plugin imported the\n // module statically; without it (a test that doesn't run the plugin) the\n // component loads lazily and suspends once.\n let inline: AnyComponent | undefined;\n const inlineComponent = (): AnyComponent =>\n (inline ??= loader.gemiModule\n ? pick(loader.gemiModule)\n : lazy(() => loader().then((mod) => ({ default: pick(mod) }))));\n\n const register = (collector: StaticRenderCollector): number => {\n const known = collector.islands.findIndex(\n (entry) =>\n key !== undefined && entry.module === key && entry.export === exportName && entry.load === load,\n );\n if (known !== -1) {\n // Another island() call with the same entry may be the one asking.\n if (preloadDynamic) collector.islands[known].preloadDynamic = true;\n return known;\n }\n return collector.islands.push({ module: key, export: exportName, load, preloadDynamic }) - 1;\n };\n\n const start = (collector: StaticRenderCollector, props: Record<string, unknown>): IslandInstance => {\n const { children, ...rest } = props;\n if (!isProduction()) {\n assertSerialisableProps(rest, label);\n }\n const uid = `i${collector.count++}-`;\n const component = loader.gemiModule\n ? Promise.resolve(pick(loader.gemiModule))\n : loader().then(pick);\n // The island's own render is a root of its own, as it will be in the\n // browser: islands nested in it are plain components of that root. Its\n // children are not rendered here: they belong to the page (and its\n // context), so the page tree renders them next to the marker and\n // `spliceIslandSlots` moves their HTML into this empty slot.\n //\n // It gets the page's locale and zone, and the island's sink records the\n // dictionaries it reads, so the browser can hydrate it with the same\n // strings without fetching them (#1095).\n const html = component.then((Component) =>\n collector.render(\n createElement(\n StaticRenderContext.Provider,\n { value: null },\n createElement(\n IslandI18nContext.Provider,\n { value: collector.i18n },\n createElement(\n DictionarySinkContext.Provider,\n { value: collector.sink },\n hasChildren(children)\n ? createElement(\n Component,\n rest,\n createElement(ISLAND_SLOT_TAG, { [ISLAND_SLOT_ATTRIBUTE]: uid, style: { display: \"contents\" } }),\n )\n : createElement(Component, rest),\n ),\n ),\n ),\n uid,\n ),\n );\n // A rejection surfaces through `use`; this keeps it from also being\n // reported as unhandled.\n html.catch(() => {});\n const json = JSON.stringify(rest);\n return { html, index: register(collector), uid, props: json === \"{}\" ? undefined : json };\n };\n\n function Island(props: Record<string, unknown>): ReactNode {\n const collector = useContext(StaticRenderContext);\n if (!collector) {\n return createElement(inlineComponent(), props);\n }\n\n // Suspending on `use` re-renders this component with the same props\n // object, so the render it started is found again rather than restarted.\n let instance = collector.instances.get(props);\n if (!instance) {\n instance = start(collector, props);\n collector.instances.set(props, instance);\n }\n\n const marker = createElement(\"gemi-island\", {\n \"data-island\": instance.index,\n \"data-uid\": instance.uid,\n // React escapes attribute values, so the JSON needs (and must get) no\n // escaping of its own.\n \"data-props\": instance.props,\n style: { display: \"contents\" },\n dangerouslySetInnerHTML: { __html: use(instance.html) },\n });\n if (!hasChildren(props.children)) {\n return marker;\n }\n // The children, rendered here in the page tree with the page's context\n // (islands among them are islands of their own), in a template the\n // static document splices into the island's slot before it is sent.\n return createElement(\n Fragment,\n null,\n marker,\n createElement(\"template\", { [ISLAND_SLOT_TEMPLATE_ATTRIBUTE]: instance.uid }, props.children as ReactNode),\n );\n }\n\n Island.displayName = label;\n return Island;\n}\n",
|
|
103
|
+
"import { createContext } from \"react\";\nimport type { DictionarySink } from \"../i18n/dictionarySink\";\n\n/**\n * The SSR-only collector `useDictionary` reports into. `null` in the browser,\n * where nothing needs collecting — the strings are already there.\n *\n * Mirrors `ServerQueryContext`: a server-supplied per-request object handed to\n * the tree by `createRoot`.\n */\nexport const DictionarySinkContext = createContext<DictionarySink | null>(null);\n",
|
|
104
|
+
"import { type Context, createContext, useContext } from \"react\";\nimport { useRouteData } from \"./useRouteData\";\n\n/**\n * The page's i18n, as much of it as an island on a static page gets (#1095):\n * the locale strings resolve in and the zone dates are formatted in.\n */\nexport interface IslandI18n {\n /** The page's resolved locale; absent when the app configures none. */\n currentLocale?: string;\n defaultLocale?: string;\n /** The IANA zone dates are formatted in, resolved on the server. */\n timeZone?: string;\n}\n\n/** The key the island runtime (`h`) finds this context under. */\nexport const ISLAND_I18N_CONTEXT_KEY = \"gemi.islandI18n\";\n\n/**\n * @internal Provided around an island's own root on a static page: by the\n * server while it renders the island, and by the island runtime when it\n * hydrates it, from the document's `gemi-island-i18n` payload. `null`\n * everywhere else.\n *\n * On `globalThis`, like `StaticRenderContext`: the runtime is plain source\n * with no imports of gemi's, so it looks the context up by this key, and the\n * published package bundles `gemi/client` and the server side separately.\n */\nexport const IslandI18nContext: Context<IslandI18n | null> = ((globalThis as Record<symbol, unknown>)[\n Symbol.for(ISLAND_I18N_CONTEXT_KEY)\n] ??= createContext<IslandI18n | null>(null)) as Context<IslandI18n | null>;\n\n/**\n * @internal The page's i18n payload: the route's in a view, the island's own\n * on a static page, where an island is a React root of its own and the\n * route's does not reach it.\n */\nexport function usePageI18n(): IslandI18n | undefined {\n const { i18n } = useRouteData();\n const island = useContext(IslandI18nContext);\n return i18n ?? island ?? undefined;\n}\n",
|
|
105
|
+
"import { useContext } from \"react\";\nimport { RouteStateContext } from \"./RouteStateContext\";\n\nexport function useRouteData() {\n const { data, i18n, prefetchedData, breadcrumbs } =\n useContext(RouteStateContext);\n\n return { data, i18n, prefetchedData, breadcrumbs };\n}\n",
|
|
106
|
+
"import type { Action } from \"history\";\nimport { createContext, type PropsWithChildren } from \"react\";\n\nexport interface RouteState {\n views: string[];\n params: Record<string, string>;\n search: string;\n state: Record<string, unknown>;\n pathname: string;\n hash: string;\n action: Action | null;\n routePath: string;\n locale: string | null;\n}\n\nexport type PageData = {\n data: Record<string, unknown>;\n i18n: {\n currentLocale: string;\n dictionary: Record<string, Record<string, unknown>>;\n supportedLocales: string[];\n defaultLocale?: string;\n /** The IANA zone dates are formatted in, resolved on the server. */\n timeZone?: string;\n };\n prefetchedData: Record<string, unknown>;\n breadcrumbs: any;\n appId: string;\n /**\n * Evaluated features, replaced on every navigation.\n *\n * Lives here rather than only on `ServerDataContext` for the same reason\n * `i18n` does: the server re-evaluates on each navigation payload, so reading\n * from route state is what makes switching a feature on land without a hard\n * reload.\n */\n features: Record<string, boolean>;\n};\n\nexport const RouteStateContext = createContext({} as RouteState & PageData);\n\nexport const RouteStateProvider = (\n props: PropsWithChildren<{\n state: RouteState & PageData;\n }>,\n) => {\n return (\n <RouteStateContext.Provider value={props.state}>\n {props.children}\n </RouteStateContext.Provider>\n );\n};\n",
|
|
107
|
+
"import { createHash } from \"node:crypto\";\nimport {\n ISLAND_SLOT_ATTRIBUTE,\n ISLAND_SLOT_TAG,\n ISLAND_SLOT_TEMPLATE_ATTRIBUTE,\n islandI18nPayload,\n type StaticRenderCollector,\n} from \"../../client/islands\";\nimport { htmlSafeJson } from \"./streamQueryInjection\";\nimport { ISLAND_LOADER_SOURCE } from \"../../internal/islandRuntime\";\nimport { STATIC_NAVIGATION_SOURCE } from \"../../internal/staticNavigationRuntime\";\nimport { DOCUMENT_SCRIPT_ATTRIBUTE } from \"./documentScript\";\n\nexport { ISLAND_LOADER_SOURCE, STATIC_NAVIGATION_SOURCE };\n\n/**\n * Where an island's entry is served from: `src` is imported by the loader,\n * `preload` is every chunk that import pulls in (itself first), React\n * included. `dynamicPreload` is what the entry's code loads lazily, preloaded\n * for an eager island with `preloadDynamic`.\n */\nexport type IslandAsset = { src: string; preload: string[]; dynamicPreload?: string[] };\n\n/** Maps an island module's build key (`app/views/site/Counter.tsx`) to its entry. */\nexport type IslandResolver = (moduleKey: string) => IslandAsset | undefined;\n\n/** The id of the JSON block the loader reads its island table from. */\nexport const ISLAND_DATA_ID = \"gemi-islands\";\n\n/**\n * The id of the JSON block with the page's i18n for its islands (#1095): the\n * locale, zone and the dictionaries islands read. Only on a page whose\n * islands read any of it. Its id is also in `ISLAND_HYDRATE_SOURCE`.\n */\nexport const ISLAND_I18N_DATA_ID = \"gemi-island-i18n\";\n\n/**\n * `'sha256-…'` for the production island loader, ready to put in a\n * `script-src` directive. The dev loader also installs the React Refresh\n * preamble and Vite's HMR client first, so it does not match; a dev policy\n * needs `'unsafe-inline'` as Vite itself does.\n */\nexport const ISLAND_LOADER_CSP_HASH = `'sha256-${createHash(\"sha256\")\n .update(ISLAND_LOADER_SOURCE)\n .digest(\"base64\")}'`;\n\n/**\n * `</head>` is looked up from the front and `</body>` from the back: the\n * document's own tags are the first and the last of each, and React escapes\n * either spelling anywhere in text.\n */\nfunction insertBefore(html: string, marker: string, insertion: string, fromEnd: boolean) {\n if (!insertion) return html;\n const at = fromEnd ? html.lastIndexOf(marker) : html.indexOf(marker);\n return at === -1 ? html + insertion : html.slice(0, at) + insertion + html.slice(at);\n}\n\nconst attr = (value: string) =>\n value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/</g, \"<\");\n\n/**\n * `'sha256-…'` for the production navigation runtime (`.static({ navigation })`),\n * for a `script-src` directive. It replaces the island loader on those pages\n * (it carries its own), so a policy for them needs this hash instead of (or\n * besides) `ISLAND_LOADER_CSP_HASH`. Like the loader's, the dev script differs.\n */\nexport const STATIC_NAVIGATION_CSP_HASH = `'sha256-${createHash(\"sha256\")\n .update(STATIC_NAVIGATION_SOURCE)\n .digest(\"base64\")}'`;\n\n/**\n * Dev scripts start with the React Refresh preamble (`@vitejs/plugin-react`\n * refuses to run a component module before it is installed), then Vite's HMR\n * client, so editing an island's component hot-updates it in place. Either is\n * missing without the React plugin or outside Vite, hence the catches.\n */\nconst DEV_PREAMBLE =\n 'await import(\"/refresh.js\").catch(()=>{});await import(\"/@vite/client\").catch(()=>{});';\n\n/** The name of the `<meta>` that identifies a navigable static document. */\nexport const STATIC_IDENTITY_META = \"gemi-static\";\n\n/**\n * A static document's navigation settings, from `.static({ navigation })`:\n * `identity` is the `<meta name=\"gemi-static\">` content (`layout|build|version`)\n * the runtime compares before it swaps a fetched page in.\n */\nexport interface StaticNavigationMarker {\n identity: string;\n prefetch: \"intent\" | \"none\";\n}\n\n/** A document script to inline: its name and bundled source (#919). */\nexport interface DocumentScript {\n name: string;\n source: string;\n}\n\n/**\n * Adds the client runtime to a settled static document.\n *\n * Without `navigation`, that is the island loader, and only when the render\n * recorded an island, so a page without one keeps no script at all. With it,\n * the page always gets the navigation runtime (which carries the loader) and\n * the `<meta name=\"gemi-static\">` that identifies it.\n *\n * Eager islands get `modulepreload`s in the head for their entry's whole\n * static import closure (React included), plus its dynamic imports with\n * `preloadDynamic`; lazy ones are fetched when their schedule fires, so\n * nothing about them is announced up front.\n *\n * Without a resolver (a test rendering through `app.fetch`), no island table\n * is injected and nothing is logged.\n *\n * When islands read the page's i18n (`useDictionary`, `useFormatter`), the\n * locale, zone and the dictionaries they read go next to the table, so they\n * hydrate with the strings they rendered without fetching them (#1095).\n *\n * A `script` (`.static({ script })`) is inlined at the end of the head as a\n * module script, whatever else the page has. The navigation runtime leaves\n * the head's scripts alone when it swaps a page in, so it runs once per\n * document.\n */\nexport function injectIslands(\n html: string,\n collector: StaticRenderCollector,\n resolveIsland: IslandResolver | undefined,\n dev: boolean,\n navigation?: StaticNavigationMarker,\n script?: DocumentScript,\n): string {\n const preloads = new Set<string>();\n let entries: ({ s: string; e: string; l: string } | null)[] = [];\n if (resolveIsland) {\n entries = collector.islands.map((island) => {\n const asset = island.module ? resolveIsland(island.module) : undefined;\n if (!asset) {\n // The markup is still there and still works without JS; a missing build\n // entry must not take the page down with it.\n console.error(\n `[gemi] island ${island.module ?? \"(unknown module)\"}: no client build entry. ` +\n \"Declare it as island(() => import(\\\"./Component\\\")) so gemi's Vite plugin builds it.\",\n );\n return null;\n }\n if (island.load === \"eager\") {\n for (const href of asset.preload) preloads.add(href);\n if (island.preloadDynamic) {\n for (const href of asset.dynamicPreload ?? []) preloads.add(href);\n }\n }\n return { s: asset.src, e: island.export, l: island.load };\n });\n }\n const hasIslands = entries.some((entry) => entry !== null);\n // The source's text is exactly what `documentScriptCspHash` hashes.\n const documentScript = script\n ? `<script type=\"module\" ${DOCUMENT_SCRIPT_ATTRIBUTE}=\"${attr(script.name)}\">${script.source}</script>`\n : \"\";\n\n if (!hasIslands && !navigation) {\n return insertBefore(html, \"</head>\", documentScript, false);\n }\n\n const identity = navigation\n ? `<meta name=\"${STATIC_IDENTITY_META}\" content=\"${attr(navigation.identity)}\"${\n navigation.prefetch === \"none\" ? ' data-prefetch=\"none\"' : \"\"\n }/>`\n : \"\";\n const head =\n identity +\n [...preloads].map((href) => `<link rel=\"modulepreload\" href=\"${attr(href)}\"/>`).join(\"\") +\n documentScript;\n const source = navigation ? STATIC_NAVIGATION_SOURCE : ISLAND_LOADER_SOURCE;\n const i18n = hasIslands ? islandI18nPayload(collector) : undefined;\n const body =\n (hasIslands\n ? `<script type=\"application/json\" id=\"${ISLAND_DATA_ID}\">${htmlSafeJson({ i: entries })}</script>`\n : \"\") +\n (i18n\n ? `<script type=\"application/json\" id=\"${ISLAND_I18N_DATA_ID}\">${htmlSafeJson(i18n)}</script>`\n : \"\") +\n `<script type=\"module\">${dev ? DEV_PREAMBLE + source : source}</script>`;\n\n return insertBefore(insertBefore(html, \"</head>\", head, false), \"</body>\", body, true);\n}\n\n/** The end of the `</template>` matching the `<template` at `from`, or -1. */\nfunction templateEnd(html: string, from: number): number {\n const tag = /<(\\/?)template\\b[^>]*>/gi;\n tag.lastIndex = from;\n let depth = 0;\n for (let match = tag.exec(html); match; match = tag.exec(html)) {\n depth += match[1] ? -1 : 1;\n if (depth === 0) return tag.lastIndex;\n }\n return -1;\n}\n\n/**\n * Moves each island's children into its slot.\n *\n * An island's own render (a root of its own) leaves an empty\n * `<gemi-slot data-slot=\"i0-\">`; the page tree renders the children, with the\n * page's context, right after the marker in `<template data-gemi-slot=\"i0-\">`.\n * Here the template's content replaces the placeholder (as\n * `<gemi-slot style=\"display:contents\">…</gemi-slot>`, what the browser\n * hydrates against) and the template goes away.\n *\n * The last template is spliced first: nothing after it can be inside it, so it\n * holds no other island's children, and an island's children that contain\n * islands are spliced after theirs are. Children the island didn't render are\n * dropped, as a component that ignores `children` drops them anywhere.\n */\nexport function spliceIslandSlots(html: string): string {\n const opening = `<template ${ISLAND_SLOT_TEMPLATE_ATTRIBUTE}=\"`;\n for (let at = html.lastIndexOf(opening); at !== -1; at = html.lastIndexOf(opening)) {\n const end = templateEnd(html, at);\n if (end === -1) break;\n const uidStart = at + opening.length;\n const uid = html.slice(uidStart, html.indexOf('\"', uidStart));\n const contentStart = html.indexOf(\">\", uidStart) + 1;\n const content = html.slice(contentStart, end - \"</template>\".length);\n html = html.slice(0, at) + html.slice(end);\n const placeholder = `<${ISLAND_SLOT_TAG} ${ISLAND_SLOT_ATTRIBUTE}=\"${uid}\" style=\"display:contents\"></${ISLAND_SLOT_TAG}>`;\n html = html\n .split(placeholder)\n .join(`<${ISLAND_SLOT_TAG} style=\"display:contents\">${content}</${ISLAND_SLOT_TAG}>`);\n }\n return html;\n}\n",
|
|
104
108
|
"// Generated by `bun scripts/build-static-navigation.ts` from\n// `internal/staticNavigation/runtime.js`. Do not edit; edit the source and regenerate.\n// No imports: `gemi/testing` (a browser bundle) and `gemi stats` read it too.\n\n/** The sha-256 of the source this was built from, so a test can tell it is stale. */\nexport const STATIC_NAVIGATION_SOURCE_HASH = \"38d6cb0484aa686a8b39adf41de1992d084fe0e504fbc0a1da2f066187451bce\";\n\n/**\n * The navigation runtime (with the island loader) a static view with\n * `.static({ navigation })` inlines. Byte-for-byte constant.\n */\nexport const STATIC_NAVIGATION_SOURCE =\n \"var r=document,i=window,a=history;i.__gemi_nav?.d();var L=new AbortController,h=(t,e,n,s)=>t.addEventListener(e,n,{signal:L.signal,...s}),q=i.__gemi_nav={d:()=>L.abort()},v=(t,e)=>{if(!t.g)t.g=1,import(e.s).then((n)=>{if(t.isConnected)t.r=n.h(t,n.m[e.e])}).catch((n)=>console.error(n))},D=(t)=>{let e=t.getElementById(\\\"gemi-islands\\\");return e?JSON.parse(e.textContent):{i:[]}},R=(t,e)=>{for(let n of t.querySelectorAll(\\\"gemi-island\\\")){let s=e.i[n.dataset.island];if(!s||n.o)continue;if(s.l==\\\"eager\\\")v(n,s);else if(s.l==\\\"idle\\\"||!i.IntersectionObserver||!n.children.length)(i.requestIdleCallback||setTimeout)(()=>v(n,s));else{let l=new IntersectionObserver((m)=>{if(m.some((d)=>d.isIntersecting))l.disconnect(),v(n,s)});for(let m of n.children)l.observe(m)}}},O='meta[name=\\\"gemi-static\\\"]',A=\\\"style:not([data-gemi-fonts])\\\",T=A+\\\",link[rel=stylesheet]\\\",K=`head>${A},body>${A},link[rel=stylesheet]`,I='meta[name]:not([name=viewport]),meta[property],link[rel~=canonical],link[rel~=alternate],link[rel~=icon],link[rel=preload][as=font],style[data-gemi-fonts],script[type=\\\"application/ld+json\\\"]',w=(t)=>t.querySelector(O)?.content,C=(t)=>[...t.querySelectorAll(K)].map((e)=>e.outerHTML).join(),c=(t)=>t.href.split(\\\"#\\\")[0],p=r.createElement(\\\"div\\\");p.setAttribute(\\\"aria-live\\\",\\\"polite\\\");p.style.cssText=\\\"position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap\\\";r.body.append(p);var _=(t)=>{q.p={url:location.href,title:r.title,initial:t},r.dispatchEvent(new CustomEvent(\\\"gemi:page-load\\\",{detail:q.p}))},f=new Map,k=(t)=>{let e=f.get(t);if(!e||Date.now()-e[0]>30000){let n=fetch(t,{headers:{accept:\\\"text/html\\\",\\\"x-gemi-navigate\\\":\\\"1\\\"},signal:AbortSignal.timeout(1e4)}).then((s)=>{if(!s.ok||!/^text\\\\/html/.test(s.headers.get(\\\"content-type\\\"))||new URL(s.url||t).origin!=location.origin)throw s;return s.text().then((l)=>[s.url||t,l])});e=[Date.now(),n],n.catch(()=>f.get(t)==e&&f.delete(t))}if(f.delete(t),f.set(t,e),f.size>10)f.delete(f.keys().next().value);return e[1]},M=(t)=>{let e=t.target.closest?.(\\\"a[href]\\\"),n=e?.getAttribute(\\\"target\\\");if(!e||n&&n!=\\\"_self\\\"||e.hasAttribute(\\\"download\\\")||/(^|\\\\s)external(\\\\s|$)/i.test(e.getAttribute(\\\"rel\\\"))||e.closest(\\\"[data-gemi-reload]\\\"))return;let s=new URL(e.getAttribute(\\\"href\\\"),r.baseURI);if(s.origin==location.origin&&!(s.href.includes(\\\"#\\\")&&c(s)==c(location)))return s},y={},U=()=>Math.random().toString(36).slice(2),E=()=>a.state?.g||a.replaceState({...a.state,g:U()},\\\"\\\"),P=c(location),b=0,N=(t)=>{if(!t.hasAttribute(\\\"tabindex\\\"))t.setAttribute(\\\"tabindex\\\",\\\"-1\\\"),t.addEventListener(\\\"blur\\\",()=>t.removeAttribute(\\\"tabindex\\\"),{once:!0});t.focus({preventScroll:!0})},Y=(t)=>{let e=r.body,n=t.body,s=D(t),l=r.documentElement;r.title=t.title;for(let o of[\\\"lang\\\",\\\"dir\\\"]){let u=t.documentElement.getAttribute(o);if(u==null)l.removeAttribute(o);else l.setAttribute(o,u)}for(let o of r.head.querySelectorAll(I))o.remove();let m=new Set([...r.querySelectorAll(\\\"link[rel=modulepreload]\\\")].map((o)=>o.getAttribute(\\\"href\\\")));r.head.append(...t.head.querySelectorAll(I),...[...t.head.querySelectorAll(\\\"link[rel=modulepreload]\\\")].filter((o)=>!m.has(o.getAttribute(\\\"href\\\"))));let d=new Map([...e.querySelectorAll(\\\"[data-gemi-persist]\\\")].map((o)=>[o.dataset.gemiPersist,o])),g=[...n.querySelectorAll(\\\"[data-gemi-persist]\\\")].map((o)=>[o,d.get(o.dataset.gemiPersist)]).filter((o)=>o[1]);for(let o of[...e.querySelectorAll(\\\"gemi-island\\\")].reverse())if(o.o=1,!g.some((u)=>u[1].contains(o)))try{o.r?.unmount()}catch(u){console.error(u)}for(let[o,u]of g)o.replaceWith(u);for(let o of[...e.childNodes])if(!o.matches?.(T))o.remove();for(let o of[...n.children])if(o.matches(T))o.remove();for(let o of[...e.attributes])e.removeAttribute(o.name);for(let o of n.attributes)e.setAttribute(o.name,o.value);e.append(...n.childNodes,p),R(e,s)},H=async(t,e)=>{let n=++b,s=!e&&y[a.state?.g];a.scrollRestoration=\\\"manual\\\";try{let[l,m]=await k(c(t));if(n!=b)return;let d=new DOMParser().parseFromString(m,\\\"text/html\\\");if(w(d)==null||w(d)!=w(r)||C(d)!=C(r))throw 0;if(e){let o=new URL(l);o.hash=t.hash,a.pushState({g:U()},\\\"\\\",o.href)}P=c(location),Y(d);let g=e&&t.hash&&r.getElementById(decodeURIComponent(t.hash.slice(1)));if(g)g.scrollIntoView({behavior:\\\"instant\\\"});else i.scrollTo({left:s?.[0]||0,top:s?.[1]||0,behavior:\\\"instant\\\"});if(e)N(g||r.querySelector(\\\"h1\\\")||r.querySelector(\\\"main\\\")||r.body);p.textContent=r.title,_(!1)}catch{if(n!=b)return;if(e)location.assign(t.href);else location.reload()}};h(r,\\\"click\\\",(t)=>{if(t.defaultPrevented||t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let e=M(t);if(e&&r.dispatchEvent(new CustomEvent(\\\"gemi:before-navigate\\\",{cancelable:!0,detail:{url:e.href}})))t.preventDefault(),E(),y[a.state.g]=[i.scrollX,i.scrollY],H(e,1)});h(i,\\\"popstate\\\",()=>{if(b++,c(location)==P){let t=y[a.state?.g];if(t)i.scrollTo({left:t[0],top:t[1],behavior:\\\"instant\\\"})}else if(a.state?.g)H(new URL(location.href),0);else location.reload()});h(i,\\\"hashchange\\\",E);h(i,\\\"scroll\\\",()=>a.state?.g&&(y[a.state.g]=[i.scrollX,i.scrollY]),{passive:!0});var S,x=(t)=>{if(r.querySelector(O)?.dataset.prefetch==\\\"none\\\"||navigator.connection?.saveData)return;let e=M(t);if(e&&c(e)!=c(location))k(c(e))};h(r,\\\"pointerover\\\",(t)=>{clearTimeout(S),S=setTimeout(()=>x(t),65)});h(r,\\\"pointerout\\\",()=>clearTimeout(S));h(r,\\\"focusin\\\",x);h(r,\\\"touchstart\\\",x,{passive:!0});E();R(r,D(r));_(!0);\";\n",
|
|
105
109
|
"import { createHash } from \"node:crypto\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { projectRoot } from \"../../support/discover\";\n\n/**\n * A static view's document script (#919): `.static({ script: \"site/clicks\" })`\n * inlines `app/views/site/clicks.script.ts`, bundled and minified, once in the\n * document's head.\n *\n * `gemi build` bundles every `app/views/**\\/*.script.{ts,js}` into\n * `dist/server/document-scripts.json` (name → source), which `gemi start`\n * reads. Anywhere else (dev, a test through `app.fetch`) a script is bundled\n * from source on each use, so an edit shows on the next load.\n */\n\n/** The suffix that marks a file under `app/views` as a document script. */\nexport const DOCUMENT_SCRIPT_SUFFIX = \".script\";\nconst EXTENSIONS = [\".ts\", \".js\"];\n/** Under `dist/server`. */\nexport const DOCUMENT_SCRIPTS_MANIFEST = \"document-scripts.json\";\n/** The attribute the inlined `<script>` carries, naming its script. */\nexport const DOCUMENT_SCRIPT_ATTRIBUTE = \"data-gemi-script\";\n\n/** A name as `script` takes it: a path under `app/views`, without the suffix. */\nconst NAME = /^[A-Za-z0-9_-]+(\\/[A-Za-z0-9_-]+)*$/;\n\nfunction assertName(name: string) {\n if (typeof name !== \"string\" || !NAME.test(name)) {\n throw new Error(\n `A static view's \\`script\\` is a path under app/views without the \".script.ts\" suffix, e.g. \"site/clicks\". Got ${JSON.stringify(name)}.`,\n );\n }\n}\n\n/** The source file of `name` under `appDir`, or `null` when there is none. */\nexport function documentScriptFile(appDir: string, name: string): string | null {\n for (const extension of EXTENSIONS) {\n const file = join(appDir, \"views\", `${name}${DOCUMENT_SCRIPT_SUFFIX}${extension}`);\n if (existsSync(file)) return file;\n }\n return null;\n}\n\n/**\n * Bundles one script for the browser: imports inlined, minified, wrapped in an\n * IIFE so nothing leaks into the page's scope. Throws when it does not bundle,\n * or when the output holds `</script` or `<!--`, which would end (or confuse)\n * the inline `<script>` element it is put in.\n */\nexport async function bundleDocumentScript(file: string): Promise<string> {\n const result = await Bun.build({\n entrypoints: [file],\n target: \"browser\",\n format: \"iife\",\n minify: true,\n throw: false,\n });\n if (!result.success || !result.outputs[0]) {\n const logs = result.logs.map((log) => String(log)).join(\"\\n\");\n throw new Error(`The document script ${file} does not bundle.\\n${logs}`);\n }\n const source = (await result.outputs[0].text()).trim();\n if (/<\\/script|<!--/i.test(source)) {\n throw new Error(\n `The document script ${file} contains \"</script\" or \"<!--\", which would end the inline <script> it is put in. Write it \"<\\\\/script\" or build the string from parts.`,\n );\n }\n return source;\n}\n\n/** Every document script under `appDir/views`, bundled: what `gemi build` writes. */\nexport async function bundleDocumentScripts(appDir: string): Promise<Record<string, string>> {\n const views = join(appDir, \"views\");\n const scripts: Record<string, string> = {};\n if (!existsSync(views)) return scripts;\n const glob = new Bun.Glob(`**/*${DOCUMENT_SCRIPT_SUFFIX}.{ts,js}`);\n const files = [...glob.scanSync({ cwd: views })].sort();\n for (const file of files) {\n if (file.split(\"/\").includes(\"node_modules\")) continue;\n const name = file.replace(/\\.script\\.[tj]s$/, \"\");\n if (!NAME.test(name) || name in scripts) continue;\n scripts[name] = await bundleDocumentScript(join(views, file));\n }\n return scripts;\n}\n\n/** `'sha256-…'` of `source`, for a `script-src` directive. */\nexport function cspHashOf(source: string): string {\n return `'sha256-${createHash(\"sha256\").update(source).digest(\"base64\")}'`;\n}\n\n// `gemi start`'s manifest, read once. `undefined`: not read yet; `null`: none.\nlet built: Record<string, string> | null | undefined;\n// Bundled from source in production when the manifest lacks a name: once.\nconst bundledInProduction = new Map<string, Promise<string>>();\n\nfunction builtScripts(): Record<string, string> | null {\n if (built === undefined) {\n const file = join(projectRoot(), \"dist\", \"server\", DOCUMENT_SCRIPTS_MANIFEST);\n built = existsSync(file) ? JSON.parse(readFileSync(file, \"utf8\")) : null;\n }\n return built ?? null;\n}\n\n/** Forgets the manifest read by `documentScriptSource` (tests). @internal */\nexport function resetDocumentScripts() {\n built = undefined;\n bundledInProduction.clear();\n}\n\n/**\n * The inlined text of the document script `name`.\n *\n * In production, from `dist/server/document-scripts.json`. A name the\n * manifest lacks (or no manifest) is bundled from source once. Elsewhere it is\n * bundled from source each time. Throws when there is no such file.\n */\nexport async function documentScriptSource(name: string): Promise<string> {\n assertName(name);\n const production = process.env.NODE_ENV === \"production\";\n if (production) {\n const fromBuild = builtScripts()?.[name];\n if (fromBuild !== undefined) return fromBuild;\n const pending = bundledInProduction.get(name);\n if (pending) return pending;\n }\n const appDir = join(projectRoot(), \"app\");\n const file = documentScriptFile(appDir, name);\n if (!file) {\n throw new Error(\n `The document script \"${name}\" was not found. It is a file at app/views/${name}${DOCUMENT_SCRIPT_SUFFIX}.ts (or .js).`,\n );\n }\n if (!production) return bundleDocumentScript(file);\n const pending = bundleDocumentScript(file);\n bundledInProduction.set(name, pending);\n pending.catch(() => bundledInProduction.delete(name));\n return pending;\n}\n\n/**\n * `'sha256-…'` for the document script `name` exactly as a page inlines it,\n * for a `script-src` directive next to `STATIC_NAVIGATION_CSP_HASH`. In dev\n * it follows the source, so it changes as the file does.\n */\nexport async function documentScriptCspHash(name: string): Promise<string> {\n return cspHashOf(await documentScriptSource(name));\n}\n",
|
|
106
110
|
"import type { StaticViewOptions } from \"../../http/ViewRouter\";\n\n/**\n * Which of the cookies gemi sets on its own a view request gets.\n *\n * A hydrated view gets all three. A static view (`.static()`) gets none unless\n * it asked: it is one body for every visitor, and a per-visitor `Set-Cookie`\n * is what keeps a CDN from caching it. `i18n-locale` has no opt-in — the url\n * carries a static page's locale.\n */\nexport function staticCookiePolicy(staticView: StaticViewOptions | undefined) {\n if (!staticView) {\n return { locale: true, session: true, csrf: true };\n }\n return {\n locale: false,\n session: staticView.session === true,\n csrf: staticView.csrf === true,\n };\n}\n\n/**\n * Sets a static page's `Cache-Control` from `.static({ cacheControl })`.\n *\n * The handler's own header wins. A response that sets a cookie is never handed\n * to a shared cache, whatever the option says: one visitor's cookie stored with\n * the page would be replayed to everyone who gets that copy.\n */\nexport function applyStaticCacheControl(headers: Headers, staticView: StaticViewOptions) {\n if (headers.getSetCookie().length > 0) {\n if (staticView.cacheControl && process.env.NODE_ENV !== \"production\") {\n console.warn(\n `[gemi] A static view with cacheControl \"${staticView.cacheControl}\" set a cookie, so it was sent \"private, no-store\" instead. Static pages are cacheable only when nothing on them sets a cookie.`,\n );\n }\n headers.set(\"Cache-Control\", \"private, no-store\");\n return;\n }\n if (staticView.cacheControl && !headers.has(\"Cache-Control\")) {\n headers.set(\"Cache-Control\", staticView.cacheControl);\n }\n}\n\n/**\n * Whether a shared cache may store this response: `public` or `s-maxage` in\n * its Cache-Control, as the static `dist/client` files carry\n * (`public, max-age=31536000`). A per-visitor cookie stored with such a\n * response would be handed to every visitor who gets that copy.\n */\nexport function sharedCacheable(response: Response) {\n const cacheControl = response.headers.get(\"Cache-Control\")?.toLowerCase() ?? \"\";\n return /(^|[\\s,])(public|s-maxage)\\b/.test(cacheControl);\n}\n\n/**\n * Takes every `Set-Cookie` off a response a shared cache may store (#1094). A\n * file route is an asset — a favicon, an image, a sitemap — and its caching\n * is the point of it, so the cookie goes rather than the caching, as on the\n * global-middleware path. The app's own cookie is reported in development.\n */\nconst warnedFileRoutes = new Set<string | null>();\n\nexport function dropCookiesFromSharedCacheable(response: Response, routePath: string | null) {\n if (!sharedCacheable(response) || response.headers.getSetCookie().length === 0) {\n return response;\n }\n if (process.env.NODE_ENV !== \"production\" && !warnedFileRoutes.has(routePath)) {\n warnedFileRoutes.add(routePath);\n console.warn(\n `[gemi] The file route \"${routePath ?? \"\"}\" set a cookie on a response with Cache-Control \"${response.headers.get(\"Cache-Control\")}\", so the cookie was not sent: a shared cache would hand it to every visitor. Make the response private, or set the cookie elsewhere.`,\n );\n }\n try {\n response.headers.delete(\"Set-Cookie\");\n return response;\n } catch {\n // A Response from fetch() has immutable headers.\n const headers = new Headers(response.headers);\n headers.delete(\"Set-Cookie\");\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n }\n}\n",
|
|
@@ -145,7 +149,7 @@
|
|
|
145
149
|
"import type { FeatureKey } from \"../client/rpc\";\nimport type { FeatureSubject } from \"../services/features/context\";\nimport {\n FeatureManager,\n type FeatureScope,\n type FeatureSetOptions,\n} from \"../services/features/FeatureManager\";\nimport type { FeatureEvaluation, FeatureListing } from \"../services/features/types\";\nimport { Facade } from \"./Facade\";\n\n/**\n * Features on the server.\n *\n * Keys are typed against the application's `app/features` declarations, so a\n * typo is a compile error rather than a feature that is silently always off.\n *\n * ```ts\n * if (await Features.enabled(\"new-checkout\")) { ... }\n *\n * // In a job or cron tick, where there is no request to read a user from:\n * if (await Features.for({ user }).enabled(\"digest-v2\")) { ... }\n * ```\n *\n * ## Everything is async, and there is no sync variant\n *\n * After the boot-time warm-up every call settles in a microtask with no I/O —\n * the snapshot is in memory and refreshes behind the request. The promise is\n * kept anyway because the *first* call in a cold process does hit the database,\n * and because a source that is not the local table will too. A sync variant\n * would have to answer that case with \"off\", which is a feature silently\n * disappearing during exactly the window a deploy is rolling.\n *\n * ## The ambient user\n *\n * Read from the request store, not `Auth.user()` — features must be evaluable on\n * an anonymous page without throwing. On a route with no `auth` middleware,\n * where nothing has resolved a session, a `when` that reads `ctx.user` sees\n * `null`.\n */\nexport class Features extends Facade {\n static getFacadeAccessor() {\n return FeatureManager;\n }\n\n /** Whether the feature is on for this request. */\n static enabled(key: FeatureKey): Promise<boolean> {\n return this.getFacadeRoot().enabled(key as string);\n }\n\n /**\n * Every client-visible feature for this request. This is what the SSR payload\n * carries.\n */\n static all(): Promise<Record<string, boolean>> {\n return this.getFacadeRoot().forClient();\n }\n\n /**\n * Value plus why.\n *\n * **Server-side only.** `reason` distinguishes \"targeted by name\" from \"landed\n * in the rollout\", which is a fact about the viewer — never serialize it into\n * a response.\n */\n static explain(key: FeatureKey): Promise<FeatureEvaluation> {\n return this.getFacadeRoot().explain(key as string);\n }\n\n /** Evaluation against an explicit subject rather than the ambient request. */\n static for(subject: FeatureSubject): FeatureScope {\n return this.getFacadeRoot().for(subject);\n }\n\n /**\n * Every feature declared in the code, with its switch — the list an admin\n * screen renders.\n *\n * The declarations are what exists. A feature is here because `app/features`\n * declares it, never because a row was inserted; `active` is `undefined` for a\n * feature that has been deployed but never switched on, which is deliberately\n * distinct from a row that says `false`.\n *\n * Check `unavailable` before rendering `active`. It means no snapshot has ever\n * loaded, so the switches are unknown rather than absent.\n *\n * **Server-side only, and the route must be gated.** The listing includes\n * `serverOnly` features — whose keys are the thing `serverOnly` exists to keep\n * out of the payload — and every descriptor carries `rollout` and `targeted`,\n * which describe who is in an experiment.\n *\n * ```ts\n * // app/http/routes/api.ts\n * \"/admin/features\": this.get([AdminFeatureController, \"index\"]).middleware([\"admin\"]),\n *\n * // app/http/controllers/AdminFeatureController.ts\n * public async index() {\n * return await Features.list();\n * }\n * ```\n */\n static list(): Promise<FeatureListing> {\n return this.getFacadeRoot().list();\n }\n\n /**\n * Switches a feature on or off through the configured source, and\n * `invalidate()`s so this process sees it immediately.\n *\n * ```ts\n * public async update(\n * request: HttpRequest<{ active: boolean }, { key: string }>,\n * ) {\n * const input = await request.input();\n *\n * await Features.set(request.params.key, input.get(\"active\"), {\n * actor: await Auth.user(),\n * });\n *\n * return await Features.list();\n * }\n * ```\n *\n * The key accepts any `string`, unlike `enabled()`: the caller is almost\n * always an admin route whose key is a route param, and the declared keys\n * still autocomplete. A typo is caught at runtime instead, before anything is\n * written. Throws:\n *\n * - `UndeclaredFeatureError` for a key `app/features` does not declare. A row\n * for it would be ignored, so the write would create a switch that looks\n * live and does nothing.\n * - `TypeError` for an `active` that is not a boolean, or an `actor` that\n * identifies nobody.\n * - `FeatureSourceReadOnlyError` when the configured source has no `write()`.\n * - `FeatureReloadError` when the write landed and the reload did not — see\n * `invalidate()`.\n *\n * `actor` is recorded as the row's `updatedBy` — a string as given, a user by\n * `publicId` (falling back to `id`) — when the source keeps one. The database\n * source does when the model has the optional `updatedBy String?` column, and\n * `list()` then reports it on each descriptor. Without the column the write\n * still happens and the actor is dropped, with a warning logged once.\n *\n * **Process-local, like `invalidate()`.** Other instances converge within\n * `ttl`.\n */\n static set(\n key: FeatureKey | (string & {}),\n active: boolean,\n options?: FeatureSetOptions,\n ): Promise<void> {\n return this.getFacadeRoot().set(key, active, options);\n }\n\n /** Reloads this process's snapshot now, rather than waiting for the TTL. */\n static refresh(): Promise<void> {\n return this.getFacadeRoot().refresh();\n }\n\n /**\n * Call this after writing to the `FeatureFlag` table yourself. `set()` calls\n * it for you.\n *\n * ```ts\n * public async update(\n * request: HttpRequest<{ active: boolean }, { key: string }>,\n * ) {\n * const input = await request.input();\n *\n * await FeatureFlag.update({\n * where: { key: request.params.key },\n * data: { active: input.get(\"active\") },\n * });\n *\n * await Features.invalidate();\n * return await Features.list();\n * }\n * ```\n *\n * Unlike `refresh()` this never settles on a load that started before it was\n * called, so the `list()` above reflects the write that precedes it. It also\n * clears the request's evaluation memo, so a feature read earlier in the same\n * request is re-evaluated rather than answered from before the write.\n *\n * **Throws `FeatureReloadError` when the reload fails.** The write landed and\n * the cache did not follow, so the switches in memory may still predate it;\n * returning normally would present them as the result of the update. This is\n * the one call in the subsystem that fails loudly — everywhere else an outage\n * means \"keep serving what we have\", which is right for evaluation and wrong\n * for an operator watching their own change.\n *\n * **Process-local.** The other instances are still serving their own\n * snapshots and converge within `ttl` — there is no cross-instance\n * invalidation. What this fixes is the window that reads as a bug: the admin\n * who flips a switch and is told for the next thirty seconds that nothing\n * happened.\n */\n static invalidate(): Promise<void> {\n return this.getFacadeRoot().invalidate();\n }\n}\n",
|
|
146
150
|
"import type { SQL } from \"bun\";\nimport type { DatabaseConnection } from \"../database/Connection\";\nimport { DatabaseManager } from \"../database/DatabaseManager\";\nimport type { Dialect } from \"../database/dialect\";\nimport type { DatabaseSchema } from \"../database/introspect/types\";\nimport { app } from \"../foundation/app\";\nimport {\n assertConnectionUsable,\n currentConnectionName,\n currentTransaction,\n runOnConnection,\n withTransaction,\n} from \"../orm/context\";\nimport { dialectFor } from \"../orm/dialect\";\nimport { renderFragment, type SqlFragment } from \"../orm/sql\";\nimport { Facade } from \"./Facade\";\n\n/**\n * What `readOnly` sets for its transaction (#1064). Every field is optional,\n * and each one is a `SET LOCAL`, so it ends with the transaction: safe behind\n * a pooler in transaction mode (PgBouncer), where a session `SET` would stay\n * on the server connection for the next client.\n */\nexport type ReadOnlyOptions = {\n /** `statement_timeout`, in milliseconds: a statement running longer is cancelled. */\n statementTimeoutMs?: number;\n /** `lock_timeout`, in milliseconds: how long a statement waits for a lock. */\n lockTimeoutMs?: number;\n /** `idle_in_transaction_session_timeout`, in milliseconds. */\n idleInTransactionTimeoutMs?: number;\n /**\n * `SET LOCAL ROLE`: run as this role, such as a NOLOGIN role with column\n * grants that leave secrets out. The connecting user must be a member of\n * it. A plain identifier (letters, digits, `_` and `$`, not starting with a\n * digit), quoted as written.\n */\n role?: string;\n};\n\n/** Thrown inside `readOnly`'s transaction to roll it back with a result. */\nclass ReadOnlyRollback<T> {\n constructor(readonly value: T) {}\n}\n\nconst ROLE_NAME = /^[A-Za-z_][A-Za-z0-9_$]*$/;\n\n/** The `SET` statements for one `readOnly` call, checked before anything runs. */\nfunction readOnlyStatements(options: ReadOnlyOptions): string[] {\n const statements = [\"SET TRANSACTION READ ONLY\"];\n const settings: [keyof ReadOnlyOptions, string][] = [\n [\"statementTimeoutMs\", \"statement_timeout\"],\n [\"lockTimeoutMs\", \"lock_timeout\"],\n [\"idleInTransactionTimeoutMs\", \"idle_in_transaction_session_timeout\"],\n ];\n for (const [option, setting] of settings) {\n const value = options[option];\n if (value === undefined) continue;\n if (typeof value !== \"number\" || !Number.isInteger(value) || value <= 0) {\n throw new TypeError(\n `DB.readOnly: ${option} must be a positive whole number of milliseconds, got ${String(value)}.`,\n );\n }\n statements.push(`SET LOCAL ${setting} = ${value}`);\n }\n if (options.role !== undefined) {\n if (typeof options.role !== \"string\" || !ROLE_NAME.test(options.role)) {\n throw new TypeError(\n `DB.readOnly: the role \"${String(options.role)}\" is not a plain identifier. Use letters, digits, _ and $.`,\n );\n }\n statements.push(`SET LOCAL ROLE \"${options.role}\"`);\n }\n return statements;\n}\n\n/**\n * The raw-SQL surface, pointed at one connection.\n *\n * `DB` itself is one of these — the one that resolves the **ambient**\n * connection per call — and `DB.connection(name)` returns one bound to a name.\n * Written once rather than twice so the two cannot drift: a fragment run\n * through a named connection has to reach the driver by exactly the path\n * `DB.query` does, or the ambient transaction, the placeholder numbering and\n * the string refusal would each be a thing that works on one of them.\n *\n * Every method resolves the manager, the connection and the dialect **per\n * call** and captures none of them, which is the rule `Model.$exec` follows and\n * what keeps the connection swappable in tests.\n */\nexport class ConnectionQueries {\n /**\n * `undefined` means *whichever connection is ambient*, which is the default\n * one unless an enclosing transaction or `Model.on` named another. That is\n * the mode `DB`'s own statics use, and it is why an unqualified `DB.query`\n * inside `DB.connection(\"analytics\").transaction(...)` joins that transaction\n * instead of being refused by it.\n */\n constructor(private readonly bound?: string) {}\n\n /** The name this handle will use for the call happening now. */\n get name(): string {\n return this.bound ?? currentConnectionName();\n }\n\n /**\n * The Bun `SQL` client. Tagged-template queries go through here.\n *\n * **The pool, not the open transaction.** `DB.sql` has always been Bun's own\n * template and has never joined the ambient transaction — on Postgres it runs\n * on a pooled connection and survives a rollback — and a named handle does\n * not change that, only which pool it is. `query` and `execute` are the ones\n * that join; reach for them when the difference matters.\n *\n * **This getter throws where the methods reject**, and it cannot do\n * otherwise: an accessor has nowhere to put a rejection. So\n * `DB.connection(\"typo\").sql` throws `UnknownConnectionError` synchronously,\n * and reading it while a transaction is open on another connection throws\n * `CrossConnectionTransactionError` the same way. `query`, `execute` and\n * `transaction` are `async` precisely so a `.catch()` cannot miss those.\n */\n get sql(): SQL {\n return this.connection().sql;\n }\n\n /**\n * Which database is in use, inferred from the connection URL. Read this when\n * generating SQL that differs across databases (upserts, `RETURNING`,\n * autoincrement, boolean and timestamp types).\n *\n * Throws rather than rejects, for the reason given on `sql` above.\n */\n get dialect(): Dialect {\n return this.connection().dialect;\n }\n\n // Runs a composed fragment and returns its rows.\n //\n // const where = filters.length ? sql`where ${join(filters, \" and \")}` : empty\n // const rows = await DB.query(sql`select * from \"Product\" ${where}`)\n //\n // Two things it does that `DB.sql` does not, and they are the reason it\n // exists rather than being sugar:\n //\n // - It takes a **fragment**, so a predicate can be built as a value and\n // passed around. See `orm/sql.ts` for why that shape is the one raw SQL\n // actually needs.\n // - It runs on the **ambient transaction** when there is one. A raw statement\n // that quietly escapes `Model.transaction` and commits while its neighbours\n // roll back is worse than no raw statement at all — so this resolves the\n // handle exactly as `Model.$exec` does, through `currentTransaction()`.\n //\n // A plain string is refused. That is deliberate: accepting one would make an\n // interpolated template the path of least resistance, which is the injection\n // this whole mechanism exists to keep closed. `unsafeSql` is the door, and it\n // is named so that using it is a decision.\n //\n // `async` rather than returning the driver's promise directly, so that a\n // rejected fragment — a plain string, a parameter count over the ceiling —\n // *rejects* instead of throwing synchronously. An API that does one sometimes\n // and the other otherwise is a footgun: `DB.query(...).catch(…)` would miss\n // exactly the errors this refuses to run.\n async query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return (await this.run(fragment, \"query\")) as T[];\n }\n\n // The same, for a statement whose answer is *how many rows it touched*.\n //\n // const won = await DB.execute(\n // sql`update \"Reservation\" set status = 'claimed'\n // where id = ${id} and status = 'reserved'`,\n // )\n // if (won === 0) { /* somebody else claimed it first */ }\n //\n // The count is the concurrency primitive there, not a diagnostic: 1 means this\n // caller won the compare-and-swap and 0 means it lost, and an API that\n // discarded it could not express that at all.\n //\n // **Where the number comes from.** Bun puts it on `count`, and leaves\n // `affectedRows` null — measured on both dialects rather than read from a\n // changelog, for `update`, `delete`, `insert`, a statement matching nothing,\n // and one with `returning`.\n //\n // `result.count` on what is otherwise an *array* reads like a bug, so: Bun\n // returns an array with `count`, `command` and `lastInsertRowid` hung off it,\n // on every statement including the ones that return no rows at all. A write\n // without `returning` is therefore a zero-length array whose `count` is the\n // number of rows it touched, and a write *with* one is an array of the rows\n // whose `count` matches their number. `compile/write.ts` records the same measurement\n // from the other side: the *ORM's* counts come from `RETURNING` instead,\n // because there the statement shape is ours to choose and an exact count that\n // depends on nothing undocumented is worth a key column per row. Here the\n // statement is the caller's, so there is nothing to add a `RETURNING` to.\n async execute(fragment: SqlFragment): Promise<number> {\n const result = await this.run(fragment, \"execute\");\n return Number((result as { count?: unknown })?.count ?? 0);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. The callback still receives the raw handle, as\n // it always has.\n //\n // It goes through the ORM's `withTransaction` rather than straight to\n // `sql.begin` so that the two transaction systems are one: a `User.create`\n // inside a `DB.transaction` joins it instead of committing separately on a\n // pooled connection, and a `DB.transaction` nested inside a\n // `Model.transaction` becomes a savepoint instead of throwing (Bun refuses\n // `begin` inside a transaction). Two systems that silently ignored each other\n // would be worse than either alone — a rollback would leave half the work\n // committed.\n //\n // The slow-transaction threshold comes from the same `database` config as it\n // does for the ORM, so a `DB.transaction` holding a connection too long warns\n // exactly as a `Model.transaction` would. Same reason as above: one system.\n //\n // On a named connection the whole callback runs with that connection ambient,\n // so a `User.create` inside `DB.connection(\"analytics\").transaction(...)`\n // joins the transaction rather than opening a second one on the hot path.\n //\n // `async` so that a handle used inside a transaction on another connection\n // *rejects* rather than throwing synchronously — the same reason `query`\n // above is, and the same `.catch()` that would otherwise miss it.\n async transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n const name = this.name;\n const connection = this.connection(name);\n\n return withTransaction(\n connection.sql,\n (tx) => runOnConnection(name, () => fn(tx)),\n {\n slowTransactionThreshold: connection.config.slowTransactionThreshold,\n connection: name,\n },\n );\n }\n\n // Runs the callback in a read-only transaction and always rolls it back,\n // returning what the callback returned (#1064).\n //\n // const rows = await DB.connection(\"analytics\").readOnly(\n // { statementTimeoutMs: 8_000, lockTimeoutMs: 1_000, role: \"app_readonly\" },\n // () => DB.connection(\"analytics\").query(sql`select ...`),\n // )\n //\n // It opens a transaction, issues `SET TRANSACTION READ ONLY` and then one\n // `SET LOCAL` per option, so the timeouts and the role end with the\n // transaction. A write inside fails with Postgres' own \"cannot execute …\n // in a read-only transaction\", and `query`, `execute` and the ORM inside\n // the callback join the transaction, as they do in `transaction`.\n //\n // **Always rolled back**, even when the callback resolves: nothing a\n // read-only transaction does needs committing, and rolling back means a\n // function with a side effect the read-only mode does not stop (`nextval`,\n // `pg_advisory_lock`'s transaction-level form) leaves nothing behind.\n // `afterCommit` callbacks queued inside never run.\n //\n // **Postgres only**, and refused inside an open transaction:\n // `SET TRANSACTION READ ONLY` has to be the first thing a transaction\n // does, and a savepoint cannot be made read-only.\n async readOnly<T>(\n optionsOrFn: ReadOnlyOptions | ((tx: SQL) => Promise<T>),\n maybeFn?: (tx: SQL) => Promise<T>,\n ): Promise<T> {\n const options = typeof optionsOrFn === \"function\" ? {} : optionsOrFn;\n const fn = typeof optionsOrFn === \"function\" ? optionsOrFn : maybeFn;\n if (typeof fn !== \"function\") {\n throw new TypeError(\"DB.readOnly needs a callback: readOnly(options, async (tx) => ...).\");\n }\n const statements = readOnlyStatements(options ?? {});\n const name = this.name;\n const connection = this.connection(name);\n if (connection.dialect !== \"postgres\") {\n throw new Error(\n `DB.readOnly is supported on Postgres only, and the \"${name}\" connection is ${connection.dialect}.`,\n );\n }\n if (currentTransaction() !== undefined) {\n throw new Error(\n \"DB.readOnly cannot run inside a transaction: SET TRANSACTION READ ONLY has to be the first statement of its own transaction. Call it outside the transaction.\",\n );\n }\n\n try {\n await withTransaction(\n connection.sql,\n async (tx) => {\n for (const statement of statements) await tx.unsafe(statement);\n const value = await runOnConnection(name, () => fn(tx));\n throw new ReadOnlyRollback(value);\n },\n {\n slowTransactionThreshold: connection.config.slowTransactionThreshold,\n connection: name,\n },\n );\n } catch (error) {\n if (error instanceof ReadOnlyRollback) return error.value as T;\n throw error;\n }\n // `withTransaction` only resolves when the callback does, and it always throws.\n throw new Error(\"DB.readOnly: the transaction committed, which it never should.\");\n }\n\n // The schema of the live database, read back from its own catalog: every\n // table, its columns and their types, its primary key, and the foreign keys\n // that relate it to the others.\n //\n // const { tables } = await DB.schema()\n // tables.find((t) => t.name === \"Post\")?.relations\n // // [{ columns: [\"authorId\"], referencedTable: \"User\", referencedColumns: [\"id\"], … }]\n //\n // **What the database says, not what the models say.** The ORM's schema is\n // generated from Prisma and never checked against the database; this is the\n // database's side of that, on every dialect including MySQL, where\n // `query` itself is not supported yet.\n //\n // The introspection code is loaded on the first call, not with the facade.\n // It is a diagnostic most apps never run, so nothing that imports `DB` pays\n // for it.\n //\n // On the ambient transaction when there is one, like `query`: a table created\n // earlier in the same transaction is in the answer. `async` for the same\n // reason as the others.\n async schema(): Promise<DatabaseSchema> {\n const db = this.connection();\n const { introspect } = await import(\"../database/introspect/index.js\");\n return introspect(this.handle() ?? db.sql, db.dialect);\n }\n\n private run(fragment: SqlFragment, operation: string) {\n const db = this.connection();\n // Per call, never captured: the same rule `Model.$exec` follows, and what\n // keeps the connection swappable in tests.\n const { text, values } = renderFragment(\n fragment,\n dialectFor(db.dialect),\n operation,\n );\n return (this.handle() ?? db.sql).unsafe(text, values);\n }\n\n /**\n * The open transaction, but only when it belongs to this handle's connection.\n *\n * `assertConnectionUsable` has already refused the case where they differ, so\n * reaching this with a mismatch is impossible — except for the unqualified\n * handle, whose name *is* the transaction's. The comparison is kept anyway\n * because it is what makes that reasoning local: nothing here has to know\n * which caller checked what.\n */\n private handle() {\n const tx = currentTransaction();\n if (tx === undefined) return undefined;\n return currentConnectionName() === this.name ? tx : undefined;\n }\n\n private connection(name = this.name): DatabaseConnection {\n assertConnectionUsable(name);\n return app(DatabaseManager).connection(name);\n }\n}\n\n/** The unqualified handle: whichever connection is ambient, per call. */\nconst ambient = new ConnectionQueries();\n\n// Access to the app's database connections. Bun's `SQL` client is a tagged\n// template, so queries read the same here as they do in Bun's own docs:\n//\n// const users = await DB.sql`select * from users where id = ${id}`\n//\n// Values interpolated into the template are bound as parameters, not\n// concatenated into the SQL string — `${id}` is a placeholder, so this is not a\n// SQL injection risk.\n//\n// Every static here works on the **ambient** connection: the default one,\n// unless an enclosing `DB.connection(name).transaction(...)` named another.\n// `DB.connection(name)` is the way to name one explicitly.\nexport class DB extends Facade {\n static getFacadeAccessor() {\n return DatabaseManager;\n }\n\n /**\n * The raw-SQL surface for a named connection.\n *\n * const rows = await DB.connection(\"analytics\").query(sql`…`)\n * await DB.connection(\"analytics\").transaction(async () => { … })\n *\n * The names are the keys of `connections` in `app/config/database.ts`, plus\n * `\"default\"` for the top-level `url`. An unknown one raises\n * `UnknownConnectionError` when the handle is used, listing what is\n * configured — never a silent fall back to the default, which would put the\n * query on precisely the pool the caller was trying to stay off.\n *\n * A transaction cannot span two connections. Using a named handle while a\n * transaction is open on another connection raises\n * `CrossConnectionTransactionError` rather than running the statement outside\n * that transaction, where it would survive the rollback.\n */\n // Built per call rather than memoised by name. A handle is one string and a\n // few methods that resolve everything else per call, so caching it saves an\n // allocation — and a `Map` keyed on the caller's string is a slow leak the\n // moment a name reaches it from a request, since an unknown name is not\n // rejected until the handle is *used*. Nothing is worth keeping here.\n static connection(name: string): ConnectionQueries {\n return new ConnectionQueries(name);\n }\n\n // The Bun `SQL` client. Tagged-template queries go through here.\n static get sql(): SQL {\n return ambient.sql;\n }\n\n // Which database is in use, inferred from the connection URL. Read this when\n // generating SQL that differs across databases (upserts, `RETURNING`,\n // autoincrement, boolean and timestamp types).\n static get dialect(): Dialect {\n return ambient.dialect;\n }\n\n // Runs a composed fragment and returns its rows, on the ambient transaction\n // when there is one. See `ConnectionQueries.query`, which is the whole of it.\n static query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return ambient.query<T>(fragment);\n }\n\n // The same, for a statement whose answer is *how many rows it touched* — the\n // compare-and-swap primitive. See `ConnectionQueries.execute`.\n static execute(fragment: SqlFragment): Promise<number> {\n return ambient.execute(fragment);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. One transaction system with the ORM's, so a\n // `User.create` inside this joins it. See `ConnectionQueries.transaction`.\n static transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n return ambient.transaction(fn);\n }\n\n // Runs the callback in a read-only transaction on the ambient connection\n // and always rolls it back. Postgres only. See `ConnectionQueries.readOnly`.\n static readOnly<T>(\n optionsOrFn: ReadOnlyOptions | ((tx: SQL) => Promise<T>),\n fn?: (tx: SQL) => Promise<T>,\n ): Promise<T> {\n return ambient.readOnly(optionsOrFn, fn);\n }\n\n // The schema of the live database: tables, columns and their types, primary\n // keys and foreign-key relations. Loads its code on first use. See\n // `ConnectionQueries.schema`.\n static schema(): Promise<DatabaseSchema> {\n return ambient.schema();\n }\n\n /** Closes every configured connection, not only the default one. */\n static close(): Promise<void> {\n return this.getFacadeRoot().close();\n }\n}\n"
|
|
147
151
|
],
|
|
148
|
-
"mappings": "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",
|
|
149
|
-
"debugId": "
|
|
152
|
+
"mappings": "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",
|
|
153
|
+
"debugId": "976BBF86269B2C1764756E2164756E21",
|
|
150
154
|
"names": []
|
|
151
155
|
}
|