alepha 0.22.0 → 0.23.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.
Files changed (111) hide show
  1. package/dist/api/jobs/index.d.ts +20 -20
  2. package/dist/api/jobs/index.d.ts.map +1 -1
  3. package/dist/api/keys/index.d.ts +6 -6
  4. package/dist/api/users/index.d.ts +43 -9
  5. package/dist/api/users/index.d.ts.map +1 -1
  6. package/dist/api/users/index.js +24 -3
  7. package/dist/api/users/index.js.map +1 -1
  8. package/dist/api/verifications/index.d.ts +13 -13
  9. package/dist/cli/core/index.d.ts +46 -40
  10. package/dist/cli/core/index.d.ts.map +1 -1
  11. package/dist/cli/core/index.js +51 -101
  12. package/dist/cli/core/index.js.map +1 -1
  13. package/dist/cli/i18n/index.d.ts +12 -5
  14. package/dist/cli/i18n/index.d.ts.map +1 -1
  15. package/dist/cli/i18n/index.js +45 -11
  16. package/dist/cli/i18n/index.js.map +1 -1
  17. package/dist/cli/platform-lib/index.d.ts +32 -6
  18. package/dist/cli/platform-lib/index.d.ts.map +1 -1
  19. package/dist/cli/platform-lib/index.js +82 -19
  20. package/dist/cli/platform-lib/index.js.map +1 -1
  21. package/dist/command/index.d.ts +1 -1
  22. package/dist/mcp/index.d.ts +9 -0
  23. package/dist/mcp/index.d.ts.map +1 -1
  24. package/dist/mcp/index.js +23 -0
  25. package/dist/mcp/index.js.map +1 -1
  26. package/dist/react/form/index.d.ts +0 -1
  27. package/dist/react/form/index.d.ts.map +1 -1
  28. package/dist/react/form/index.js +16 -15
  29. package/dist/react/form/index.js.map +1 -1
  30. package/dist/react/i18n/index.d.ts +43 -0
  31. package/dist/react/i18n/index.d.ts.map +1 -1
  32. package/dist/react/i18n/index.js +114 -10
  33. package/dist/react/i18n/index.js.map +1 -1
  34. package/dist/react/router/index.browser.js +128 -5
  35. package/dist/react/router/index.browser.js.map +1 -1
  36. package/dist/react/router/index.d.ts +108 -1
  37. package/dist/react/router/index.d.ts.map +1 -1
  38. package/dist/react/router/index.js +184 -6
  39. package/dist/react/router/index.js.map +1 -1
  40. package/dist/react/sitemap/index.browser.js +35 -0
  41. package/dist/react/sitemap/index.browser.js.map +1 -0
  42. package/dist/react/sitemap/index.d.ts +92 -0
  43. package/dist/react/sitemap/index.d.ts.map +1 -0
  44. package/dist/react/sitemap/index.js +131 -0
  45. package/dist/react/sitemap/index.js.map +1 -0
  46. package/dist/server/auth/index.d.ts +105 -1
  47. package/dist/server/auth/index.d.ts.map +1 -1
  48. package/dist/server/auth/index.js +1604 -7
  49. package/dist/server/auth/index.js.map +1 -1
  50. package/dist/server/cookies/index.d.ts +15 -0
  51. package/dist/server/cookies/index.d.ts.map +1 -1
  52. package/dist/server/cookies/index.js +22 -3
  53. package/dist/server/cookies/index.js.map +1 -1
  54. package/dist/server/core/index.d.ts +18 -0
  55. package/dist/server/core/index.d.ts.map +1 -1
  56. package/dist/server/core/index.js +25 -0
  57. package/dist/server/core/index.js.map +1 -1
  58. package/package.json +16 -3
  59. package/src/api/users/controllers/RealmController.ts +1 -0
  60. package/src/api/users/primitives/$realm.ts +26 -0
  61. package/src/api/users/providers/RealmProvider.ts +15 -0
  62. package/src/api/users/schemas/realmConfigSchema.ts +14 -0
  63. package/src/cli/core/atoms/buildOptions.ts +0 -12
  64. package/src/cli/core/commands/build.ts +0 -10
  65. package/src/cli/core/index.ts +0 -3
  66. package/src/cli/core/tasks/BuildCloudflareTask.ts +37 -17
  67. package/src/cli/core/tasks/BuildPrerenderTask.ts +44 -7
  68. package/src/cli/i18n/__tests__/I18nCheckService.spec.ts +48 -0
  69. package/src/cli/i18n/services/I18nCheckService.ts +65 -11
  70. package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +128 -36
  71. package/src/mcp/__tests__/McpServerProvider.spec.ts +71 -0
  72. package/src/mcp/providers/McpServerProvider.ts +55 -0
  73. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +71 -0
  74. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +96 -0
  75. package/src/react/form/services/FormModel.ts +57 -39
  76. package/src/react/i18n/__tests__/I18nProvider.spec.ts +89 -0
  77. package/src/react/i18n/__tests__/locale-routing.spec.ts +107 -0
  78. package/src/react/i18n/providers/I18nProvider.ts +171 -12
  79. package/src/react/router/__tests__/RouterLocaleProvider.spec.ts +127 -0
  80. package/src/react/router/index.browser.ts +4 -0
  81. package/src/react/router/index.shared.ts +1 -0
  82. package/src/react/router/index.ts +9 -0
  83. package/src/react/router/providers/ReactBrowserRouterProvider.ts +15 -1
  84. package/src/react/router/providers/ReactPageProvider.ts +12 -1
  85. package/src/react/router/providers/ReactServerProvider.ts +92 -1
  86. package/src/react/router/providers/RootComponentsProvider.ts +13 -0
  87. package/src/react/router/providers/RouterLocaleProvider.ts +125 -0
  88. package/src/react/router/providers/__tests__/RootComponentsProvider.spec.ts +15 -0
  89. package/src/react/router/providers/__tests__/rootComponents.ssr.browser.spec.tsx +67 -0
  90. package/src/react/sitemap/__tests__/$sitemap.spec.ts +131 -0
  91. package/src/react/sitemap/index.browser.ts +21 -0
  92. package/src/react/sitemap/index.ts +25 -0
  93. package/src/react/sitemap/primitives/$sitemap.browser.ts +26 -0
  94. package/src/react/sitemap/primitives/$sitemap.ts +196 -0
  95. package/src/server/auth/__tests__/appleClientSecret.spec.ts +34 -0
  96. package/src/server/auth/__tests__/authFederationClient.spec.ts +40 -0
  97. package/src/server/auth/__tests__/federationAssertion.spec.ts +146 -0
  98. package/src/server/auth/__tests__/federationRedirectReplay.spec.ts +44 -0
  99. package/src/server/auth/helpers/appleClientSecret.ts +24 -0
  100. package/src/server/auth/helpers/federationAssertion.ts +74 -0
  101. package/src/server/auth/helpers/jtiReplayGuard.ts +41 -0
  102. package/src/server/auth/helpers/safeRedirectPath.ts +19 -0
  103. package/src/server/auth/index.ts +4 -0
  104. package/src/server/auth/primitives/$authFederationBroker.ts +273 -0
  105. package/src/server/auth/primitives/$authFederationClient.ts +89 -0
  106. package/src/server/auth/providers/ServerAuthProvider.ts +18 -4
  107. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +70 -0
  108. package/src/server/cookies/providers/ServerCookiesProvider.ts +23 -3
  109. package/src/server/core/interfaces/ServerRequest.ts +8 -0
  110. package/src/server/core/primitives/$route.ts +27 -0
  111. package/src/cli/core/tasks/BuildSitemapTask.ts +0 -130
@@ -24,6 +24,21 @@ declare class ServerCookiesProvider {
24
24
  readonly onAction: import("alepha").HookPrimitive<"action:onRequest">;
25
25
  readonly onSend: import("alepha").HookPrimitive<"server:onSend">;
26
26
  protected getCookiesFromContext(cookies?: Cookies): Cookies;
27
+ /**
28
+ * Namespaces a cookie name with the app's `APP_NAME` (lowercased) so that
29
+ * two Alepha apps sharing a cookie jar do not collide.
30
+ *
31
+ * Cookies are scoped by host + path only — never by port — so two apps on
32
+ * `localhost:3000` and `localhost:4000` would otherwise both read/write a
33
+ * cookie literally named `tokens` and silently clobber each other (and,
34
+ * because each encrypts with its own `APP_SECRET`, the foreign cookie fails
35
+ * to decrypt and gets deleted, logging the user out).
36
+ *
37
+ * When `APP_NAME` is unset the name is returned unchanged, so existing
38
+ * single-app deployments keep their current cookie names. Same convention as
39
+ * the `APP_NAME` prefix used by R2 storage and server-timing.
40
+ */
41
+ protected prefixName(name: string): string;
27
42
  getCookie<T extends TSchema>(name: string, options: CookiePrimitiveOptions<T>, contextCookies?: Cookies): Static<T> | undefined;
28
43
  setCookie<T extends TSchema>(name: string, options: CookiePrimitiveOptions<T>, data: Static<T>, contextCookies?: Cookies): void;
29
44
  deleteCookie<T extends TSchema>(name: string, contextCookies?: Cookies): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"mappings":"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"}
@@ -89,9 +89,28 @@ var ServerCookiesProvider = class {
89
89
  if (contextCookies) return contextCookies;
90
90
  throw new AlephaError("Cookie context is not available. This method must be called within a server request cycle.");
91
91
  }
92
+ /**
93
+ * Namespaces a cookie name with the app's `APP_NAME` (lowercased) so that
94
+ * two Alepha apps sharing a cookie jar do not collide.
95
+ *
96
+ * Cookies are scoped by host + path only — never by port — so two apps on
97
+ * `localhost:3000` and `localhost:4000` would otherwise both read/write a
98
+ * cookie literally named `tokens` and silently clobber each other (and,
99
+ * because each encrypts with its own `APP_SECRET`, the foreign cookie fails
100
+ * to decrypt and gets deleted, logging the user out).
101
+ *
102
+ * When `APP_NAME` is unset the name is returned unchanged, so existing
103
+ * single-app deployments keep their current cookie names. Same convention as
104
+ * the `APP_NAME` prefix used by R2 storage and server-timing.
105
+ */
106
+ prefixName(name) {
107
+ const app = this.alepha.env.APP_NAME;
108
+ if (!app) return name;
109
+ return `${String(app).toLowerCase()}.${name}`;
110
+ }
92
111
  getCookie(name, options, contextCookies) {
93
112
  const cookies = this.getCookiesFromContext(contextCookies);
94
- let rawValue = cookies.req[name];
113
+ let rawValue = cookies.req[this.prefixName(name)];
95
114
  if (!rawValue) return void 0;
96
115
  try {
97
116
  rawValue = decodeURIComponent(rawValue);
@@ -129,11 +148,11 @@ var ServerCookiesProvider = class {
129
148
  domain: options.domain
130
149
  };
131
150
  if (options.ttl) cookie.maxAge = this.dateTimeProvider.duration(options.ttl).as("seconds");
132
- cookies.res[name] = cookie;
151
+ cookies.res[this.prefixName(name)] = cookie;
133
152
  }
134
153
  deleteCookie(name, contextCookies) {
135
154
  const cookies = this.getCookiesFromContext(contextCookies);
136
- cookies.res[name] = null;
155
+ cookies.res[this.prefixName(name)] = null;
137
156
  }
138
157
  encrypt(text) {
139
158
  const iv = randomBytes(this.IV_LENGTH);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"sourcesContent":["import type { Cookie } from \"../primitives/$cookie.ts\";\n\nexport class CookieParser {\n public parseRequestCookies(header: string): Record<string, string> {\n const cookies: Record<string, string> = {};\n const parts = header.split(\";\");\n for (const part of parts) {\n const eqIndex = part.indexOf(\"=\");\n if (eqIndex === -1) {\n continue;\n }\n\n const key = part.slice(0, eqIndex).trim();\n const value = part.slice(eqIndex + 1).trim();\n\n if (!key || !value) {\n continue;\n }\n\n cookies[key] = value;\n }\n\n return cookies;\n }\n\n public serializeResponseCookies(\n cookies: Record<string, Cookie | null>,\n isHttps: boolean,\n ): string[] {\n const headers = [];\n\n for (const [name, cookie] of Object.entries(cookies)) {\n // If the cookie is null, we need to delete it\n if (cookie == null) {\n headers.push(`${name}=; Path=/; Max-Age=0`);\n continue;\n }\n\n if (!cookie.value) {\n continue;\n }\n\n headers.push(this.cookieToString(name, cookie, isHttps));\n }\n\n return headers;\n }\n\n public cookieToString(\n name: string,\n cookie: Cookie,\n isHttps?: boolean,\n ): string {\n const parts: string[] = [];\n\n parts.push(`${name}=${cookie.value}`);\n\n if (cookie.path) {\n parts.push(`Path=${cookie.path}`);\n }\n if (cookie.maxAge) {\n parts.push(`Max-Age=${cookie.maxAge}`);\n }\n if (cookie.secure !== false && isHttps) {\n parts.push(\"Secure\");\n }\n if (cookie.httpOnly) {\n parts.push(\"HttpOnly\");\n }\n if (cookie.sameSite) {\n parts.push(`SameSite=${cookie.sameSite}`);\n }\n if (cookie.domain) {\n parts.push(`Domain=${cookie.domain}`);\n }\n\n return parts.join(\"; \");\n }\n}\n","import {\n createCipheriv,\n createDecipheriv,\n createHash,\n createHmac,\n randomBytes,\n timingSafeEqual,\n} from \"node:crypto\";\nimport { deflateRawSync, inflateRawSync } from \"node:zlib\";\nimport {\n $hook,\n $inject,\n Alepha,\n AlephaError,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport { SecretProvider } from \"alepha/crypto\";\nimport { DateTimeProvider } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport type {\n Cookie,\n CookiePrimitiveOptions,\n Cookies,\n} from \"../primitives/$cookie.ts\";\nimport { CookieParser } from \"../services/CookieParser.ts\";\n\nexport class ServerCookiesProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n protected readonly cookieParser = $inject(CookieParser);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly secretProvider = $inject(SecretProvider);\n\n // crypto constants\n protected readonly ALGORITHM = \"aes-256-gcm\";\n protected readonly IV_LENGTH = 16; // For GCM\n protected readonly AUTH_TAG_LENGTH = 16;\n protected readonly SIGNATURE_LENGTH = 32; // For SHA256\n\n public readonly onRequest = $hook({\n on: \"server:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onAction = $hook({\n on: \"action:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onSend = $hook({\n on: \"server:onSend\",\n handler: ({ request }) => {\n if (request.cookies && Object.keys(request.cookies.res).length > 0) {\n const setCookieHeaders = this.cookieParser.serializeResponseCookies(\n request.cookies.res,\n request.url.protocol === \"https:\",\n );\n if (setCookieHeaders.length > 0) {\n request.reply.headers[\"set-cookie\"] = setCookieHeaders;\n }\n }\n },\n });\n\n protected getCookiesFromContext(cookies?: Cookies): Cookies {\n const contextCookies = this.alepha.store.get(\n \"alepha.http.request\",\n )?.cookies;\n if (cookies) return cookies;\n if (contextCookies) return contextCookies;\n throw new AlephaError(\n \"Cookie context is not available. This method must be called within a server request cycle.\",\n );\n }\n\n public getCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n contextCookies?: Cookies,\n ): Static<T> | undefined {\n const cookies = this.getCookiesFromContext(contextCookies);\n let rawValue = cookies.req[name];\n\n if (!rawValue) return undefined;\n\n try {\n rawValue = decodeURIComponent(rawValue);\n\n if (options.sign) {\n const signature = rawValue.substring(0, this.SIGNATURE_LENGTH * 2);\n const value = rawValue.substring(this.SIGNATURE_LENGTH * 2);\n const expectedSignature = this.sign(value);\n\n if (\n !timingSafeEqual(\n Buffer.from(signature, \"hex\"),\n Buffer.from(expectedSignature, \"hex\"),\n )\n ) {\n this.log.warn(`Invalid signature for cookie \"${name}\".`);\n return undefined;\n }\n rawValue = value;\n }\n\n if (options.encrypt) {\n rawValue = this.decrypt(rawValue);\n }\n\n if (options.compress) {\n rawValue = inflateRawSync(Buffer.from(rawValue, \"base64\")).toString(\n \"utf8\",\n );\n }\n\n return this.alepha.codec.decode(options.schema, JSON.parse(rawValue));\n } catch (error) {\n this.log.warn(`Failed to parse cookie \"${name}\"`, error);\n // corrupted or invalid cookie, instruct browser to delete it on next response\n this.deleteCookie(name, cookies);\n return undefined;\n }\n }\n\n public setCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n data: Static<T>,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n let value = JSON.stringify(this.alepha.codec.decode(options.schema, data));\n\n if (options.compress) {\n value = deflateRawSync(value).toString(\"base64\");\n }\n\n if (options.encrypt) {\n value = this.encrypt(value);\n }\n\n if (options.sign) {\n value = this.sign(value) + value;\n }\n\n const cookie: Cookie = {\n value: encodeURIComponent(value),\n path: options.path ?? \"/\",\n // \"lax\" is correct here — \"strict\" would break OAuth flows because OAuth callbacks\n // are top-level redirects from the IdP, and strict cookies are not sent on cross-site\n // top-level navigations. \"lax\" is Chrome's own default and the industry standard.\n sameSite: options.sameSite ?? \"lax\",\n secure: options.secure ?? this.alepha.isProduction(),\n httpOnly: options.httpOnly,\n domain: options.domain,\n };\n\n if (options.ttl) {\n cookie.maxAge = this.dateTimeProvider.duration(options.ttl).as(\"seconds\");\n }\n\n cookies.res[name] = cookie;\n }\n\n public deleteCookie<T extends TSchema>(\n name: string,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n cookies.res[name] = null;\n }\n\n // --- Crypto & Parsing ---\n\n protected encrypt(text: string): string {\n const iv = randomBytes(this.IV_LENGTH);\n const cipher = createCipheriv(this.ALGORITHM, this.deriveKey(), iv);\n const encrypted = Buffer.concat([\n cipher.update(text, \"utf8\"),\n cipher.final(),\n ]);\n const authTag = cipher.getAuthTag();\n return Buffer.concat([iv, authTag, encrypted]).toString(\"base64\");\n }\n\n protected decrypt(encryptedText: string): string {\n const data = Buffer.from(encryptedText, \"base64\");\n const iv = data.subarray(0, this.IV_LENGTH);\n const authTag = data.subarray(\n this.IV_LENGTH,\n this.IV_LENGTH + this.AUTH_TAG_LENGTH,\n );\n\n const encrypted = data.subarray(this.IV_LENGTH + this.AUTH_TAG_LENGTH);\n const decipher = createDecipheriv(this.ALGORITHM, this.deriveKey(), iv);\n\n decipher.setAuthTag(authTag);\n\n const decrypted = Buffer.concat([\n decipher.update(encrypted),\n decipher.final(),\n ]);\n\n return decrypted.toString(\"utf8\");\n }\n\n /**\n * Derives a 32-byte key from APP_SECRET via SHA-256.\n * Accepts any string length — no padding or truncation needed.\n */\n protected deriveKey(): Buffer {\n return createHash(\"sha256\").update(this.secretProvider.secretKey).digest();\n }\n\n protected sign(data: string): string {\n return createHmac(\"sha256\", this.deriveKey()).update(data).digest(\"hex\");\n }\n}\n","import {\n $inject,\n createPrimitive,\n KIND,\n Primitive,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport type { DurationLike } from \"alepha/datetime\";\nimport { ServerCookiesProvider } from \"../providers/ServerCookiesProvider.ts\";\n\n/**\n * Declares a type-safe, configurable HTTP cookie.\n * This primitive provides methods to get, set, and delete the cookie\n * within the server request/response cycle.\n */\nexport const $cookie = <T extends TSchema>(\n options: CookiePrimitiveOptions<T>,\n extendedOptions?: Omit<CookiePrimitiveOptions<T>, \"schema\">,\n): AbstractCookiePrimitive<T> => {\n if (extendedOptions) {\n options = {\n key: options.key,\n schema: options.schema,\n ...extendedOptions,\n };\n }\n return createPrimitive(CookiePrimitive<T>, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CookiePrimitiveOptions<T extends TSchema> {\n /**\n * The schema for the cookie's value, used for validation and type safety.\n */\n schema: T;\n\n /**\n * The name of the cookie.\n */\n name?: string;\n\n /**\n * The cookie's path. Defaults to \"/\".\n */\n path?: string;\n\n /**\n * Time-to-live for the cookie. Maps to `Max-Age`.\n */\n ttl?: DurationLike;\n\n /**\n * If true, the cookie is only sent over HTTPS. Defaults to true in production.\n */\n secure?: boolean;\n\n /**\n * If true, the cookie cannot be accessed by client-side scripts.\n */\n httpOnly?: boolean;\n\n /**\n * SameSite policy for the cookie. Defaults to \"lax\".\n */\n sameSite?: \"strict\" | \"lax\" | \"none\";\n\n /**\n * The domain for the cookie.\n */\n domain?: string;\n\n /**\n * If true, the cookie value will be compressed using zlib.\n */\n compress?: boolean;\n\n /**\n * If true, the cookie value will be encrypted. Requires `COOKIE_SECRET` env var.\n */\n encrypt?: boolean;\n\n /**\n * If true, the cookie will be signed to prevent tampering. Requires `COOKIE_SECRET` env var.\n */\n sign?: boolean;\n\n /**\n * Optional key to link this cookie to an Atom, enabling automatic synchronization between the cookie and the Atom's state.\n */\n key?: string;\n}\n\nexport interface AbstractCookiePrimitive<T extends TSchema> {\n readonly name: string;\n readonly options: CookiePrimitiveOptions<T>;\n set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void;\n get(options?: { cookies?: Cookies }): Static<T> | undefined;\n del(options?: { cookies?: Cookies }): void;\n}\n\nexport class CookiePrimitive<T extends TSchema>\n extends Primitive<CookiePrimitiveOptions<T>>\n implements AbstractCookiePrimitive<T>\n{\n protected readonly serverCookiesProvider = $inject(ServerCookiesProvider);\n\n protected onInit() {\n if (this.options.key) {\n this.alepha.events.on(\"state:mutate\", ({ key, value }) => {\n if (key === this.options.key) {\n this.set(value);\n }\n });\n this.alepha.events.on(\"server:onRequest\", ({ request }) => {\n try {\n const value = this.get(request);\n if (value !== undefined) {\n this.alepha.store.set(this.options.key as any, value, {\n skipEvents: true,\n });\n }\n } catch {}\n });\n }\n }\n\n public get schema(): T {\n return this.options.schema;\n }\n\n public get name(): string {\n return this.options.name ?? `${this.config.propertyKey}`;\n }\n\n /**\n * Sets the cookie with the given value in the current request's response.\n */\n public set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void {\n this.serverCookiesProvider.setCookie(\n this.name,\n {\n ...this.options,\n ttl: options?.ttl ?? this.options.ttl,\n },\n value,\n options?.cookies,\n );\n }\n\n /**\n * Gets the cookie value from the current request. Returns undefined if not found or invalid.\n */\n public get(options?: { cookies?: Cookies }): Static<T> | undefined {\n return this.serverCookiesProvider.getCookie(\n this.name,\n this.options,\n options?.cookies,\n );\n }\n\n /**\n * Deletes the cookie in the current request's response.\n */\n public del(options?: { cookies?: Cookies }): void {\n this.serverCookiesProvider.deleteCookie(this.name, options?.cookies);\n }\n}\n\n$cookie[KIND] = CookiePrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Cookies {\n req: Record<string, string>;\n res: Record<string, Cookie | null>;\n}\n\nexport interface Cookie {\n value: string;\n path?: string;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { $cookie, type Cookies } from \"./primitives/$cookie.ts\";\nimport { ServerCookiesProvider } from \"./providers/ServerCookiesProvider.ts\";\nimport { CookieParser } from \"./services/CookieParser.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cookie.ts\";\nexport * from \"./providers/ServerCookiesProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"alepha/server\" {\n interface ServerRequest {\n cookies: Cookies;\n }\n}\n\n/**\n * Server and browser-safe cookie handling.\n *\n * **Features:**\n * - Cookie management on server and browser\n *\n * @module alepha.server.cookies\n */\nexport const AlephaServerCookies = $module({\n name: \"alepha.server.cookies\",\n primitives: [$cookie],\n services: [AlephaServer, ServerCookiesProvider, CookieParser],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/server/cookies/services/CookieParser.ts","../../../src/server/cookies/providers/ServerCookiesProvider.ts","../../../src/server/cookies/primitives/$cookie.ts","../../../src/server/cookies/index.ts"],"sourcesContent":["import type { Cookie } from \"../primitives/$cookie.ts\";\n\nexport class CookieParser {\n public parseRequestCookies(header: string): Record<string, string> {\n const cookies: Record<string, string> = {};\n const parts = header.split(\";\");\n for (const part of parts) {\n const eqIndex = part.indexOf(\"=\");\n if (eqIndex === -1) {\n continue;\n }\n\n const key = part.slice(0, eqIndex).trim();\n const value = part.slice(eqIndex + 1).trim();\n\n if (!key || !value) {\n continue;\n }\n\n cookies[key] = value;\n }\n\n return cookies;\n }\n\n public serializeResponseCookies(\n cookies: Record<string, Cookie | null>,\n isHttps: boolean,\n ): string[] {\n const headers = [];\n\n for (const [name, cookie] of Object.entries(cookies)) {\n // If the cookie is null, we need to delete it\n if (cookie == null) {\n headers.push(`${name}=; Path=/; Max-Age=0`);\n continue;\n }\n\n if (!cookie.value) {\n continue;\n }\n\n headers.push(this.cookieToString(name, cookie, isHttps));\n }\n\n return headers;\n }\n\n public cookieToString(\n name: string,\n cookie: Cookie,\n isHttps?: boolean,\n ): string {\n const parts: string[] = [];\n\n parts.push(`${name}=${cookie.value}`);\n\n if (cookie.path) {\n parts.push(`Path=${cookie.path}`);\n }\n if (cookie.maxAge) {\n parts.push(`Max-Age=${cookie.maxAge}`);\n }\n if (cookie.secure !== false && isHttps) {\n parts.push(\"Secure\");\n }\n if (cookie.httpOnly) {\n parts.push(\"HttpOnly\");\n }\n if (cookie.sameSite) {\n parts.push(`SameSite=${cookie.sameSite}`);\n }\n if (cookie.domain) {\n parts.push(`Domain=${cookie.domain}`);\n }\n\n return parts.join(\"; \");\n }\n}\n","import {\n createCipheriv,\n createDecipheriv,\n createHash,\n createHmac,\n randomBytes,\n timingSafeEqual,\n} from \"node:crypto\";\nimport { deflateRawSync, inflateRawSync } from \"node:zlib\";\nimport {\n $hook,\n $inject,\n Alepha,\n AlephaError,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport { SecretProvider } from \"alepha/crypto\";\nimport { DateTimeProvider } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport type {\n Cookie,\n CookiePrimitiveOptions,\n Cookies,\n} from \"../primitives/$cookie.ts\";\nimport { CookieParser } from \"../services/CookieParser.ts\";\n\nexport class ServerCookiesProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n protected readonly cookieParser = $inject(CookieParser);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly secretProvider = $inject(SecretProvider);\n\n // crypto constants\n protected readonly ALGORITHM = \"aes-256-gcm\";\n protected readonly IV_LENGTH = 16; // For GCM\n protected readonly AUTH_TAG_LENGTH = 16;\n protected readonly SIGNATURE_LENGTH = 32; // For SHA256\n\n public readonly onRequest = $hook({\n on: \"server:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onAction = $hook({\n on: \"action:onRequest\",\n handler: ({ request }) => {\n request.cookies = {\n req: this.cookieParser.parseRequestCookies(\n request.headers.cookie ?? \"\",\n ),\n res: {},\n };\n },\n });\n\n public readonly onSend = $hook({\n on: \"server:onSend\",\n handler: ({ request }) => {\n if (request.cookies && Object.keys(request.cookies.res).length > 0) {\n const setCookieHeaders = this.cookieParser.serializeResponseCookies(\n request.cookies.res,\n request.url.protocol === \"https:\",\n );\n if (setCookieHeaders.length > 0) {\n request.reply.headers[\"set-cookie\"] = setCookieHeaders;\n }\n }\n },\n });\n\n protected getCookiesFromContext(cookies?: Cookies): Cookies {\n const contextCookies = this.alepha.store.get(\n \"alepha.http.request\",\n )?.cookies;\n if (cookies) return cookies;\n if (contextCookies) return contextCookies;\n throw new AlephaError(\n \"Cookie context is not available. This method must be called within a server request cycle.\",\n );\n }\n\n /**\n * Namespaces a cookie name with the app's `APP_NAME` (lowercased) so that\n * two Alepha apps sharing a cookie jar do not collide.\n *\n * Cookies are scoped by host + path only — never by port — so two apps on\n * `localhost:3000` and `localhost:4000` would otherwise both read/write a\n * cookie literally named `tokens` and silently clobber each other (and,\n * because each encrypts with its own `APP_SECRET`, the foreign cookie fails\n * to decrypt and gets deleted, logging the user out).\n *\n * When `APP_NAME` is unset the name is returned unchanged, so existing\n * single-app deployments keep their current cookie names. Same convention as\n * the `APP_NAME` prefix used by R2 storage and server-timing.\n */\n protected prefixName(name: string): string {\n const app = this.alepha.env.APP_NAME;\n if (!app) return name;\n return `${String(app).toLowerCase()}.${name}`;\n }\n\n public getCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n contextCookies?: Cookies,\n ): Static<T> | undefined {\n const cookies = this.getCookiesFromContext(contextCookies);\n let rawValue = cookies.req[this.prefixName(name)];\n\n if (!rawValue) return undefined;\n\n try {\n rawValue = decodeURIComponent(rawValue);\n\n if (options.sign) {\n const signature = rawValue.substring(0, this.SIGNATURE_LENGTH * 2);\n const value = rawValue.substring(this.SIGNATURE_LENGTH * 2);\n const expectedSignature = this.sign(value);\n\n if (\n !timingSafeEqual(\n Buffer.from(signature, \"hex\"),\n Buffer.from(expectedSignature, \"hex\"),\n )\n ) {\n this.log.warn(`Invalid signature for cookie \"${name}\".`);\n return undefined;\n }\n rawValue = value;\n }\n\n if (options.encrypt) {\n rawValue = this.decrypt(rawValue);\n }\n\n if (options.compress) {\n rawValue = inflateRawSync(Buffer.from(rawValue, \"base64\")).toString(\n \"utf8\",\n );\n }\n\n return this.alepha.codec.decode(options.schema, JSON.parse(rawValue));\n } catch (error) {\n this.log.warn(`Failed to parse cookie \"${name}\"`, error);\n // corrupted or invalid cookie, instruct browser to delete it on next response\n this.deleteCookie(name, cookies);\n return undefined;\n }\n }\n\n public setCookie<T extends TSchema>(\n name: string,\n options: CookiePrimitiveOptions<T>,\n data: Static<T>,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n let value = JSON.stringify(this.alepha.codec.decode(options.schema, data));\n\n if (options.compress) {\n value = deflateRawSync(value).toString(\"base64\");\n }\n\n if (options.encrypt) {\n value = this.encrypt(value);\n }\n\n if (options.sign) {\n value = this.sign(value) + value;\n }\n\n const cookie: Cookie = {\n value: encodeURIComponent(value),\n path: options.path ?? \"/\",\n // \"lax\" is correct here — \"strict\" would break OAuth flows because OAuth callbacks\n // are top-level redirects from the IdP, and strict cookies are not sent on cross-site\n // top-level navigations. \"lax\" is Chrome's own default and the industry standard.\n sameSite: options.sameSite ?? \"lax\",\n secure: options.secure ?? this.alepha.isProduction(),\n httpOnly: options.httpOnly,\n domain: options.domain,\n };\n\n if (options.ttl) {\n cookie.maxAge = this.dateTimeProvider.duration(options.ttl).as(\"seconds\");\n }\n\n cookies.res[this.prefixName(name)] = cookie;\n }\n\n public deleteCookie<T extends TSchema>(\n name: string,\n contextCookies?: Cookies,\n ): void {\n const cookies = this.getCookiesFromContext(contextCookies);\n cookies.res[this.prefixName(name)] = null;\n }\n\n // --- Crypto & Parsing ---\n\n protected encrypt(text: string): string {\n const iv = randomBytes(this.IV_LENGTH);\n const cipher = createCipheriv(this.ALGORITHM, this.deriveKey(), iv);\n const encrypted = Buffer.concat([\n cipher.update(text, \"utf8\"),\n cipher.final(),\n ]);\n const authTag = cipher.getAuthTag();\n return Buffer.concat([iv, authTag, encrypted]).toString(\"base64\");\n }\n\n protected decrypt(encryptedText: string): string {\n const data = Buffer.from(encryptedText, \"base64\");\n const iv = data.subarray(0, this.IV_LENGTH);\n const authTag = data.subarray(\n this.IV_LENGTH,\n this.IV_LENGTH + this.AUTH_TAG_LENGTH,\n );\n\n const encrypted = data.subarray(this.IV_LENGTH + this.AUTH_TAG_LENGTH);\n const decipher = createDecipheriv(this.ALGORITHM, this.deriveKey(), iv);\n\n decipher.setAuthTag(authTag);\n\n const decrypted = Buffer.concat([\n decipher.update(encrypted),\n decipher.final(),\n ]);\n\n return decrypted.toString(\"utf8\");\n }\n\n /**\n * Derives a 32-byte key from APP_SECRET via SHA-256.\n * Accepts any string length — no padding or truncation needed.\n */\n protected deriveKey(): Buffer {\n return createHash(\"sha256\").update(this.secretProvider.secretKey).digest();\n }\n\n protected sign(data: string): string {\n return createHmac(\"sha256\", this.deriveKey()).update(data).digest(\"hex\");\n }\n}\n","import {\n $inject,\n createPrimitive,\n KIND,\n Primitive,\n type Static,\n type TSchema,\n} from \"alepha\";\nimport type { DurationLike } from \"alepha/datetime\";\nimport { ServerCookiesProvider } from \"../providers/ServerCookiesProvider.ts\";\n\n/**\n * Declares a type-safe, configurable HTTP cookie.\n * This primitive provides methods to get, set, and delete the cookie\n * within the server request/response cycle.\n */\nexport const $cookie = <T extends TSchema>(\n options: CookiePrimitiveOptions<T>,\n extendedOptions?: Omit<CookiePrimitiveOptions<T>, \"schema\">,\n): AbstractCookiePrimitive<T> => {\n if (extendedOptions) {\n options = {\n key: options.key,\n schema: options.schema,\n ...extendedOptions,\n };\n }\n return createPrimitive(CookiePrimitive<T>, options);\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CookiePrimitiveOptions<T extends TSchema> {\n /**\n * The schema for the cookie's value, used for validation and type safety.\n */\n schema: T;\n\n /**\n * The name of the cookie.\n */\n name?: string;\n\n /**\n * The cookie's path. Defaults to \"/\".\n */\n path?: string;\n\n /**\n * Time-to-live for the cookie. Maps to `Max-Age`.\n */\n ttl?: DurationLike;\n\n /**\n * If true, the cookie is only sent over HTTPS. Defaults to true in production.\n */\n secure?: boolean;\n\n /**\n * If true, the cookie cannot be accessed by client-side scripts.\n */\n httpOnly?: boolean;\n\n /**\n * SameSite policy for the cookie. Defaults to \"lax\".\n */\n sameSite?: \"strict\" | \"lax\" | \"none\";\n\n /**\n * The domain for the cookie.\n */\n domain?: string;\n\n /**\n * If true, the cookie value will be compressed using zlib.\n */\n compress?: boolean;\n\n /**\n * If true, the cookie value will be encrypted. Requires `COOKIE_SECRET` env var.\n */\n encrypt?: boolean;\n\n /**\n * If true, the cookie will be signed to prevent tampering. Requires `COOKIE_SECRET` env var.\n */\n sign?: boolean;\n\n /**\n * Optional key to link this cookie to an Atom, enabling automatic synchronization between the cookie and the Atom's state.\n */\n key?: string;\n}\n\nexport interface AbstractCookiePrimitive<T extends TSchema> {\n readonly name: string;\n readonly options: CookiePrimitiveOptions<T>;\n set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void;\n get(options?: { cookies?: Cookies }): Static<T> | undefined;\n del(options?: { cookies?: Cookies }): void;\n}\n\nexport class CookiePrimitive<T extends TSchema>\n extends Primitive<CookiePrimitiveOptions<T>>\n implements AbstractCookiePrimitive<T>\n{\n protected readonly serverCookiesProvider = $inject(ServerCookiesProvider);\n\n protected onInit() {\n if (this.options.key) {\n this.alepha.events.on(\"state:mutate\", ({ key, value }) => {\n if (key === this.options.key) {\n this.set(value);\n }\n });\n this.alepha.events.on(\"server:onRequest\", ({ request }) => {\n try {\n const value = this.get(request);\n if (value !== undefined) {\n this.alepha.store.set(this.options.key as any, value, {\n skipEvents: true,\n });\n }\n } catch {}\n });\n }\n }\n\n public get schema(): T {\n return this.options.schema;\n }\n\n public get name(): string {\n return this.options.name ?? `${this.config.propertyKey}`;\n }\n\n /**\n * Sets the cookie with the given value in the current request's response.\n */\n public set(\n value: Static<T>,\n options?: { cookies?: Cookies; ttl?: DurationLike },\n ): void {\n this.serverCookiesProvider.setCookie(\n this.name,\n {\n ...this.options,\n ttl: options?.ttl ?? this.options.ttl,\n },\n value,\n options?.cookies,\n );\n }\n\n /**\n * Gets the cookie value from the current request. Returns undefined if not found or invalid.\n */\n public get(options?: { cookies?: Cookies }): Static<T> | undefined {\n return this.serverCookiesProvider.getCookie(\n this.name,\n this.options,\n options?.cookies,\n );\n }\n\n /**\n * Deletes the cookie in the current request's response.\n */\n public del(options?: { cookies?: Cookies }): void {\n this.serverCookiesProvider.deleteCookie(this.name, options?.cookies);\n }\n}\n\n$cookie[KIND] = CookiePrimitive;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Cookies {\n req: Record<string, string>;\n res: Record<string, Cookie | null>;\n}\n\nexport interface Cookie {\n value: string;\n path?: string;\n maxAge?: number;\n secure?: boolean;\n httpOnly?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n}\n","import { $module } from \"alepha\";\nimport { AlephaServer } from \"alepha/server\";\nimport { $cookie, type Cookies } from \"./primitives/$cookie.ts\";\nimport { ServerCookiesProvider } from \"./providers/ServerCookiesProvider.ts\";\nimport { CookieParser } from \"./services/CookieParser.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cookie.ts\";\nexport * from \"./providers/ServerCookiesProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"alepha/server\" {\n interface ServerRequest {\n cookies: Cookies;\n }\n}\n\n/**\n * Server and browser-safe cookie handling.\n *\n * **Features:**\n * - Cookie management on server and browser\n *\n * @module alepha.server.cookies\n */\nexport const AlephaServerCookies = $module({\n name: \"alepha.server.cookies\",\n primitives: [$cookie],\n services: [AlephaServer, ServerCookiesProvider, CookieParser],\n});\n"],"mappings":"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"}
@@ -208,6 +208,13 @@ interface ServerRoute<TConfig extends RequestConfigSchema = RequestConfigSchema>
208
208
  * @see ServerLoggerProvider
209
209
  */
210
210
  silent?: boolean;
211
+ /**
212
+ * Mark this `GET` route as prerenderable. When `true`, the build invokes the
213
+ * handler in-process and writes its body verbatim to `dist/public/{path}`,
214
+ * so the route is served as a static file (e.g. `sitemap.xml`, `robots.txt`).
215
+ * The route still serves live at request time for runtimes that have a server.
216
+ */
217
+ static?: boolean;
211
218
  }
212
219
  /**
213
220
  * Input type for `createRoute()`. Accepts both a `PipelineHandler` and a plain handler function.
@@ -944,6 +951,17 @@ interface RoutePrimitiveOptions<TConfig extends RequestConfigSchema = RequestCon
944
951
  declare class RoutePrimitive<TConfig extends RequestConfigSchema> extends PipelinePrimitive<RoutePrimitiveOptions<TConfig>> {
945
952
  protected readonly serverRouterProvider: ServerRouterProvider;
946
953
  protected onInit(): void;
954
+ /**
955
+ * Invoke this route's handler in-process (no HTTP server) and return its path
956
+ * and body. Used by the build to snapshot `static` routes to files.
957
+ *
958
+ * Only meaningful for self-contained `GET` handlers that return a string or
959
+ * Buffer (e.g. `sitemap.xml`, `robots.txt`).
960
+ */
961
+ prerender(): Promise<{
962
+ path: string;
963
+ body: string | Buffer;
964
+ }>;
947
965
  }
948
966
  //#endregion
949
967
  //#region ../../src/server/core/primitives/$sse.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/core/schemas/errorSchema.ts","../../../src/server/core/errors/HttpError.ts","../../../src/server/core/constants/routeMethods.ts","../../../src/server/core/helpers/ServerReply.ts","../../../src/server/core/services/UserAgentParser.ts","../../../src/server/core/interfaces/ServerRequest.ts","../../../src/server/core/services/ServerRequestParser.ts","../../../src/server/core/providers/ServerTimingProvider.ts","../../../src/server/core/providers/ServerRouterProvider.ts","../../../src/server/core/providers/ServerProvider.ts","../../../src/server/core/services/HttpClient.ts","../../../src/server/core/primitives/$action.ts","../../../src/server/core/errors/BadRequestError.ts","../../../src/server/core/errors/ConflictError.ts","../../../src/server/core/errors/ForbiddenError.ts","../../../src/server/core/errors/NotFoundError.ts","../../../src/server/core/errors/UnauthorizedError.ts","../../../src/server/core/errors/ValidationError.ts","../../../src/server/core/helpers/isMultipart.ts","../../../src/server/core/schemas/okSchema.ts","../../../src/server/core/primitives/$circuit.ts","../../../src/server/core/primitives/$middleware.ts","../../../src/server/core/primitives/$route.ts","../../../src/server/core/primitives/$sse.ts","../../../src/server/core/providers/BunHttpServerProvider.ts","../../../src/server/core/providers/NodeHttpServerProvider.ts","../../../src/server/core/providers/ServerCompressProvider.ts","../../../src/server/core/providers/ServerHelmetProvider.ts","../../../src/server/core/providers/ServerLoggerProvider.ts","../../../src/server/core/providers/ServerMultipartProvider.ts","../../../src/server/core/providers/ServerNotReadyProvider.ts","../../../src/server/core/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/core/schemas/errorSchema.ts","../../../src/server/core/errors/HttpError.ts","../../../src/server/core/constants/routeMethods.ts","../../../src/server/core/helpers/ServerReply.ts","../../../src/server/core/services/UserAgentParser.ts","../../../src/server/core/interfaces/ServerRequest.ts","../../../src/server/core/services/ServerRequestParser.ts","../../../src/server/core/providers/ServerTimingProvider.ts","../../../src/server/core/providers/ServerRouterProvider.ts","../../../src/server/core/providers/ServerProvider.ts","../../../src/server/core/services/HttpClient.ts","../../../src/server/core/primitives/$action.ts","../../../src/server/core/errors/BadRequestError.ts","../../../src/server/core/errors/ConflictError.ts","../../../src/server/core/errors/ForbiddenError.ts","../../../src/server/core/errors/NotFoundError.ts","../../../src/server/core/errors/UnauthorizedError.ts","../../../src/server/core/errors/ValidationError.ts","../../../src/server/core/helpers/isMultipart.ts","../../../src/server/core/schemas/okSchema.ts","../../../src/server/core/primitives/$circuit.ts","../../../src/server/core/primitives/$middleware.ts","../../../src/server/core/primitives/$route.ts","../../../src/server/core/primitives/$sse.ts","../../../src/server/core/providers/BunHttpServerProvider.ts","../../../src/server/core/providers/NodeHttpServerProvider.ts","../../../src/server/core/providers/ServerCompressProvider.ts","../../../src/server/core/providers/ServerHelmetProvider.ts","../../../src/server/core/providers/ServerLoggerProvider.ts","../../../src/server/core/providers/ServerMultipartProvider.ts","../../../src/server/core/providers/ServerNotReadyProvider.ts","../../../src/server/core/index.ts"],"mappings":"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"}
@@ -1615,6 +1615,31 @@ var RoutePrimitive = class extends PipelinePrimitive {
1615
1615
  handler: this.handler
1616
1616
  });
1617
1617
  }
1618
+ /**
1619
+ * Invoke this route's handler in-process (no HTTP server) and return its path
1620
+ * and body. Used by the build to snapshot `static` routes to files.
1621
+ *
1622
+ * Only meaningful for self-contained `GET` handlers that return a string or
1623
+ * Buffer (e.g. `sitemap.xml`, `robots.txt`).
1624
+ */
1625
+ async prerender() {
1626
+ const reply = new ServerReply();
1627
+ const request = {
1628
+ method: this.options.method ?? "GET",
1629
+ url: new URL(`http://localhost${this.options.path}`),
1630
+ params: {},
1631
+ query: {},
1632
+ headers: {},
1633
+ body: void 0,
1634
+ metadata: {},
1635
+ reply
1636
+ };
1637
+ const body = await this.handler.run(request) ?? reply.body;
1638
+ return {
1639
+ path: this.options.path,
1640
+ body
1641
+ };
1642
+ }
1618
1643
  };
1619
1644
  $route[KIND] = RoutePrimitive;
1620
1645
  //#endregion