gemi 0.119.2 → 0.120.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/index.js +2 -2
  4. package/dist/app/index.js.map +1 -1
  5. package/dist/bin/gemi.js +32 -5
  6. package/dist/bin/gemi.js.map +6 -5
  7. package/dist/bun/plugin.js +1 -1
  8. package/dist/bun/preload.js +1 -1
  9. package/dist/{chunk-x5m12vkw.js → chunk-0ejjgzwc.js} +2 -2
  10. package/dist/{chunk-x5m12vkw.js.map → chunk-0ejjgzwc.js.map} +1 -1
  11. package/dist/{chunk-7rffbkmg.js → chunk-0k02tza1.js} +1 -1
  12. package/dist/{chunk-14xk8kq0.js → chunk-0yj0s1pn.js} +2 -2
  13. package/dist/{chunk-14xk8kq0.js.map → chunk-0yj0s1pn.js.map} +1 -1
  14. package/dist/{chunk-6pqbsc5y.js → chunk-19dpzp4y.js} +3 -3
  15. package/dist/{chunk-6pqbsc5y.js.map → chunk-19dpzp4y.js.map} +1 -1
  16. package/dist/{chunk-3vt172y7.js → chunk-1wnnkde0.js} +3 -3
  17. package/dist/{chunk-3vt172y7.js.map → chunk-1wnnkde0.js.map} +1 -1
  18. package/dist/{chunk-ct1vwaw7.js → chunk-1xdrs2hx.js} +3 -3
  19. package/dist/{chunk-ct1vwaw7.js.map → chunk-1xdrs2hx.js.map} +1 -1
  20. package/dist/{chunk-79rtpahn.js → chunk-2c0s0561.js} +2 -2
  21. package/dist/{chunk-79rtpahn.js.map → chunk-2c0s0561.js.map} +1 -1
  22. package/dist/{chunk-nfq127pg.js → chunk-2n3pgfnb.js} +2 -2
  23. package/dist/{chunk-nfq127pg.js.map → chunk-2n3pgfnb.js.map} +1 -1
  24. package/dist/{chunk-s2h85rbf.js → chunk-32n8t8x6.js} +2 -2
  25. package/dist/{chunk-s2h85rbf.js.map → chunk-32n8t8x6.js.map} +1 -1
  26. package/dist/{chunk-6gfsjgra.js → chunk-3gsv1vv1.js} +2 -2
  27. package/dist/{chunk-6gfsjgra.js.map → chunk-3gsv1vv1.js.map} +1 -1
  28. package/dist/{chunk-862jeyz0.js → chunk-3wnghdsx.js} +2 -2
  29. package/dist/{chunk-862jeyz0.js.map → chunk-3wnghdsx.js.map} +1 -1
  30. package/dist/{chunk-yn4x9wxc.js → chunk-471htqmz.js} +2 -2
  31. package/dist/{chunk-yn4x9wxc.js.map → chunk-471htqmz.js.map} +1 -1
  32. package/dist/{chunk-w1zqg54r.js → chunk-48gmyaxc.js} +2 -2
  33. package/dist/{chunk-w1zqg54r.js.map → chunk-48gmyaxc.js.map} +1 -1
  34. package/dist/{chunk-299zx9dv.js → chunk-4acpw92g.js} +3 -3
  35. package/dist/{chunk-299zx9dv.js.map → chunk-4acpw92g.js.map} +1 -1
  36. package/dist/{chunk-9c5s06gc.js → chunk-4fx8p02c.js} +2 -2
  37. package/dist/{chunk-9c5s06gc.js.map → chunk-4fx8p02c.js.map} +1 -1
  38. package/dist/{chunk-xpz1bp50.js → chunk-51w5ktv2.js} +3 -3
  39. package/dist/{chunk-xpz1bp50.js.map → chunk-51w5ktv2.js.map} +1 -1
  40. package/dist/{chunk-9qkjkse0.js → chunk-5nj94s66.js} +4 -4
  41. package/dist/{chunk-9qkjkse0.js.map → chunk-5nj94s66.js.map} +1 -1
  42. package/dist/{chunk-j632p533.js → chunk-5tdxbwzg.js} +3 -3
  43. package/dist/{chunk-j632p533.js.map → chunk-5tdxbwzg.js.map} +1 -1
  44. package/dist/{chunk-zq1bhsdg.js → chunk-65beps2q.js} +3 -3
  45. package/dist/{chunk-zq1bhsdg.js.map → chunk-65beps2q.js.map} +1 -1
  46. package/dist/{chunk-xeh1mw1d.js → chunk-6yhpprzs.js} +3 -3
  47. package/dist/{chunk-xeh1mw1d.js.map → chunk-6yhpprzs.js.map} +1 -1
  48. package/dist/{chunk-620yeafr.js → chunk-7ftj43vp.js} +2 -2
  49. package/dist/{chunk-620yeafr.js.map → chunk-7ftj43vp.js.map} +1 -1
  50. package/dist/{chunk-4kj4e22e.js → chunk-7g649j8h.js} +2 -2
  51. package/dist/{chunk-4kj4e22e.js.map → chunk-7g649j8h.js.map} +1 -1
  52. package/dist/{chunk-675kzd7z.js → chunk-7mmw0jr2.js} +2 -2
  53. package/dist/{chunk-675kzd7z.js.map → chunk-7mmw0jr2.js.map} +1 -1
  54. package/dist/{chunk-k1ncgq7p.js → chunk-9d2d08qm.js} +2 -2
  55. package/dist/{chunk-k1ncgq7p.js.map → chunk-9d2d08qm.js.map} +1 -1
  56. package/dist/{chunk-wdg83tgd.js → chunk-9rr5h818.js} +3 -3
  57. package/dist/{chunk-wdg83tgd.js.map → chunk-9rr5h818.js.map} +1 -1
  58. package/dist/{chunk-30xxc6r7.js → chunk-9xyxbxgk.js} +2 -2
  59. package/dist/{chunk-30xxc6r7.js.map → chunk-9xyxbxgk.js.map} +1 -1
  60. package/dist/{chunk-khd9ft0s.js → chunk-ar4d3vmr.js} +3 -3
  61. package/dist/{chunk-khd9ft0s.js.map → chunk-ar4d3vmr.js.map} +1 -1
  62. package/dist/chunk-b5a5vvkk.js +57 -0
  63. package/dist/{chunk-bz5gda3b.js.map → chunk-b5a5vvkk.js.map} +7 -6
  64. package/dist/{chunk-6ggmk2eg.js → chunk-c0v61fp5.js} +2 -2
  65. package/dist/{chunk-6ggmk2eg.js.map → chunk-c0v61fp5.js.map} +1 -1
  66. package/dist/{chunk-bw2pfaz3.js → chunk-c7qs1xp3.js} +2 -2
  67. package/dist/{chunk-bw2pfaz3.js.map → chunk-c7qs1xp3.js.map} +1 -1
  68. package/dist/{chunk-2kegxt0s.js → chunk-cca0grq3.js} +2 -2
  69. package/dist/{chunk-2kegxt0s.js.map → chunk-cca0grq3.js.map} +1 -1
  70. package/dist/{chunk-b336h3hj.js → chunk-cskqet01.js} +2 -2
  71. package/dist/{chunk-b336h3hj.js.map → chunk-cskqet01.js.map} +1 -1
  72. package/dist/{chunk-pzk2a5sr.js → chunk-cvr5624r.js} +1 -1
  73. package/dist/chunk-cytq2msw.js +24 -0
  74. package/dist/{chunk-w8d37mcq.js.map → chunk-cytq2msw.js.map} +3 -3
  75. package/dist/{chunk-8507ez1g.js → chunk-d2c3947c.js} +2 -2
  76. package/dist/{chunk-8507ez1g.js.map → chunk-d2c3947c.js.map} +1 -1
  77. package/dist/{chunk-q0djcyj2.js → chunk-d5f1m3d2.js} +2 -2
  78. package/dist/{chunk-q0djcyj2.js.map → chunk-d5f1m3d2.js.map} +1 -1
  79. package/dist/{chunk-f9tfpn3w.js → chunk-dedqr5wb.js} +2 -2
  80. package/dist/{chunk-f9tfpn3w.js.map → chunk-dedqr5wb.js.map} +1 -1
  81. package/dist/{chunk-h02kyxgg.js → chunk-dhbgrv58.js} +1 -1
  82. package/dist/{chunk-d4dd7jde.js → chunk-dwedx1jb.js} +3 -3
  83. package/dist/{chunk-d4dd7jde.js.map → chunk-dwedx1jb.js.map} +1 -1
  84. package/dist/{chunk-5crtgt1y.js → chunk-ep0baa9g.js} +2 -2
  85. package/dist/{chunk-5crtgt1y.js.map → chunk-ep0baa9g.js.map} +1 -1
  86. package/dist/{chunk-kk77x2v4.js → chunk-er8acmch.js} +7 -7
  87. package/dist/{chunk-kk77x2v4.js.map → chunk-er8acmch.js.map} +3 -3
  88. package/dist/{chunk-thz75w6e.js → chunk-fcqx2t0p.js} +2 -2
  89. package/dist/{chunk-thz75w6e.js.map → chunk-fcqx2t0p.js.map} +1 -1
  90. package/dist/{chunk-1p87gdd2.js → chunk-fenc5tpv.js} +2 -2
  91. package/dist/{chunk-1p87gdd2.js.map → chunk-fenc5tpv.js.map} +1 -1
  92. package/dist/{chunk-fmea4sak.js → chunk-gc2dz11k.js} +2 -2
  93. package/dist/{chunk-fmea4sak.js.map → chunk-gc2dz11k.js.map} +1 -1
  94. package/dist/{chunk-qxxbp3nn.js → chunk-gemzbw7f.js} +2 -2
  95. package/dist/{chunk-qxxbp3nn.js.map → chunk-gemzbw7f.js.map} +1 -1
  96. package/dist/{chunk-qpy25jj9.js → chunk-gy81nd9a.js} +2 -2
  97. package/dist/{chunk-qpy25jj9.js.map → chunk-gy81nd9a.js.map} +1 -1
  98. package/dist/{chunk-c8vttyem.js → chunk-h43jp8ws.js} +2 -2
  99. package/dist/{chunk-c8vttyem.js.map → chunk-h43jp8ws.js.map} +1 -1
  100. package/dist/chunk-htgmy3x7.js +5 -0
  101. package/dist/{chunk-15v719sq.js.map → chunk-htgmy3x7.js.map} +1 -1
  102. package/dist/{chunk-xqd3zde5.js → chunk-jaa6xkeh.js} +2 -2
  103. package/dist/{chunk-xqd3zde5.js.map → chunk-jaa6xkeh.js.map} +1 -1
  104. package/dist/{chunk-2bja99cq.js → chunk-kk18xqgc.js} +2 -2
  105. package/dist/{chunk-2bja99cq.js.map → chunk-kk18xqgc.js.map} +1 -1
  106. package/dist/{chunk-mcjbck8e.js → chunk-krk7mcgm.js} +3 -3
  107. package/dist/{chunk-mcjbck8e.js.map → chunk-krk7mcgm.js.map} +1 -1
  108. package/dist/{chunk-hd5ztshp.js → chunk-krtybgz1.js} +2 -2
  109. package/dist/{chunk-hd5ztshp.js.map → chunk-krtybgz1.js.map} +1 -1
  110. package/dist/{chunk-fjhnn3de.js → chunk-m53fgf20.js} +3 -3
  111. package/dist/{chunk-fjhnn3de.js.map → chunk-m53fgf20.js.map} +1 -1
  112. package/dist/{chunk-4c1npv8k.js → chunk-m83zm86m.js} +2 -2
  113. package/dist/{chunk-4c1npv8k.js.map → chunk-m83zm86m.js.map} +1 -1
  114. package/dist/{chunk-q6a30w8w.js → chunk-meg8rtr6.js} +2 -2
  115. package/dist/{chunk-q6a30w8w.js.map → chunk-meg8rtr6.js.map} +1 -1
  116. package/dist/{chunk-vy0tnx2s.js → chunk-mr94nfp1.js} +3 -3
  117. package/dist/{chunk-vy0tnx2s.js.map → chunk-mr94nfp1.js.map} +1 -1
  118. package/dist/{chunk-zb8zzf5x.js → chunk-nz8z8jr1.js} +3 -3
  119. package/dist/{chunk-zb8zzf5x.js.map → chunk-nz8z8jr1.js.map} +1 -1
  120. package/dist/{chunk-d38x71xy.js → chunk-pemhmjzp.js} +3 -3
  121. package/dist/{chunk-d38x71xy.js.map → chunk-pemhmjzp.js.map} +1 -1
  122. package/dist/{chunk-d2v78b77.js → chunk-pn2x59ge.js} +3 -3
  123. package/dist/{chunk-d2v78b77.js.map → chunk-pn2x59ge.js.map} +1 -1
  124. package/dist/{chunk-qm6j85fq.js → chunk-qphjhpad.js} +2 -2
  125. package/dist/{chunk-qm6j85fq.js.map → chunk-qphjhpad.js.map} +1 -1
  126. package/dist/{chunk-p5xy9cn8.js → chunk-qsz9241c.js} +2 -2
  127. package/dist/{chunk-p5xy9cn8.js.map → chunk-qsz9241c.js.map} +1 -1
  128. package/dist/{chunk-d6nhcqvt.js → chunk-qy8c0gzr.js} +2 -2
  129. package/dist/{chunk-d6nhcqvt.js.map → chunk-qy8c0gzr.js.map} +1 -1
  130. package/dist/{chunk-7ns5506p.js → chunk-r01aqf0q.js} +2 -2
  131. package/dist/{chunk-7ns5506p.js.map → chunk-r01aqf0q.js.map} +1 -1
  132. package/dist/{chunk-0p6mdba6.js → chunk-rhvc1axc.js} +2 -2
  133. package/dist/{chunk-0p6mdba6.js.map → chunk-rhvc1axc.js.map} +1 -1
  134. package/dist/{chunk-pjz79c2c.js → chunk-s07v65x6.js} +3 -3
  135. package/dist/{chunk-pjz79c2c.js.map → chunk-s07v65x6.js.map} +1 -1
  136. package/dist/{chunk-q00f25na.js → chunk-s5k3yq6t.js} +2 -2
  137. package/dist/{chunk-q00f25na.js.map → chunk-s5k3yq6t.js.map} +1 -1
  138. package/dist/{chunk-ty8gxbgj.js → chunk-s6vvqsd0.js} +3 -3
  139. package/dist/{chunk-ty8gxbgj.js.map → chunk-s6vvqsd0.js.map} +3 -3
  140. package/dist/{chunk-2854taf5.js → chunk-sx340k85.js} +2 -2
  141. package/dist/{chunk-2854taf5.js.map → chunk-sx340k85.js.map} +1 -1
  142. package/dist/{chunk-j5q5ysng.js → chunk-tewhms9w.js} +2 -2
  143. package/dist/{chunk-j5q5ysng.js.map → chunk-tewhms9w.js.map} +1 -1
  144. package/dist/{chunk-7pxdvvrz.js → chunk-tk135gmj.js} +3 -3
  145. package/dist/{chunk-7pxdvvrz.js.map → chunk-tk135gmj.js.map} +1 -1
  146. package/dist/{chunk-yvd4pgd9.js → chunk-vx7hvyvq.js} +2 -2
  147. package/dist/{chunk-yvd4pgd9.js.map → chunk-vx7hvyvq.js.map} +1 -1
  148. package/dist/{chunk-xecnc8zv.js → chunk-wjkh2gem.js} +1 -1
  149. package/dist/{chunk-511zqetr.js → chunk-wqe47c0j.js} +2 -2
  150. package/dist/{chunk-511zqetr.js.map → chunk-wqe47c0j.js.map} +1 -1
  151. package/dist/{chunk-2y0r4b7g.js → chunk-y6wt5b6t.js} +1 -1
  152. package/dist/{chunk-kkx8a35r.js → chunk-yds7zwc3.js} +2 -2
  153. package/dist/{chunk-kkx8a35r.js.map → chunk-yds7zwc3.js.map} +1 -1
  154. package/dist/{chunk-w7am9q0q.js → chunk-zefs2b6h.js} +2 -2
  155. package/dist/{chunk-w7am9q0q.js.map → chunk-zefs2b6h.js.map} +1 -1
  156. package/dist/{chunk-de4t48j9.js → chunk-zg6hmc48.js} +1 -1
  157. package/dist/{chunk-svn6zvzd.js → chunk-zrcd9hxr.js} +2 -2
  158. package/dist/{chunk-svn6zvzd.js.map → chunk-zrcd9hxr.js.map} +1 -1
  159. package/dist/client/index.d.ts +1 -0
  160. package/dist/client/index.d.ts.map +1 -1
  161. package/dist/client/index.js +26 -1
  162. package/dist/client/index.js.map +1 -1
  163. package/dist/client/staticNavigation.d.ts +26 -0
  164. package/dist/client/staticNavigation.d.ts.map +1 -0
  165. package/dist/config/index.js +1 -1
  166. package/dist/console/run.js +2 -2
  167. package/dist/console/run.js.map +1 -1
  168. package/dist/container/index.js +2 -2
  169. package/dist/container/index.js.map +1 -1
  170. package/dist/database/index.js +2 -2
  171. package/dist/database/index.js.map +1 -1
  172. package/dist/email/index.js +2 -2
  173. package/dist/email/index.js.map +1 -1
  174. package/dist/facades/index.js +2 -2
  175. package/dist/facades/index.js.map +1 -1
  176. package/dist/foundation/index.js +2 -2
  177. package/dist/foundation/index.js.map +1 -1
  178. package/dist/http/ViewRouter.d.ts +36 -2
  179. package/dist/http/ViewRouter.d.ts.map +1 -1
  180. package/dist/http/index.d.ts +1 -1
  181. package/dist/http/index.d.ts.map +1 -1
  182. package/dist/http/index.js +2 -2
  183. package/dist/http/index.js.map +1 -1
  184. package/dist/i18n/dictionaryRuntime.js +2 -2
  185. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  186. package/dist/i18n/index.js +2 -2
  187. package/dist/i18n/index.js.map +2 -2
  188. package/dist/internal/islandRuntime.d.ts +16 -0
  189. package/dist/internal/islandRuntime.d.ts.map +1 -1
  190. package/dist/internal/staticNavigationRuntime.d.ts +8 -0
  191. package/dist/internal/staticNavigationRuntime.d.ts.map +1 -0
  192. package/dist/kernel/index.js +2 -2
  193. package/dist/kernel/index.js.map +2 -2
  194. package/dist/orm/index.js +2 -2
  195. package/dist/orm/index.js.map +1 -1
  196. package/dist/server/devFetch.d.ts.map +1 -1
  197. package/dist/server/httpProd.d.ts.map +1 -1
  198. package/dist/server/index.js +2 -2
  199. package/dist/server/index.js.map +1 -1
  200. package/dist/services/index.d.ts +1 -1
  201. package/dist/services/index.d.ts.map +1 -1
  202. package/dist/services/index.js +3 -3
  203. package/dist/services/index.js.map +2 -2
  204. package/dist/services/queue/work.js +2 -2
  205. package/dist/services/queue/work.js.map +1 -1
  206. package/dist/services/router/ViewRouteDispatcher.d.ts +5 -0
  207. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  208. package/dist/services/router/staticDocument.d.ts +30 -21
  209. package/dist/services/router/staticDocument.d.ts.map +1 -1
  210. package/dist/stats/bundleStats.d.ts +6 -2
  211. package/dist/stats/bundleStats.d.ts.map +1 -1
  212. package/dist/stats/route-table.js +2 -2
  213. package/dist/stats/route-table.js.map +3 -3
  214. package/dist/stats/routeTable.d.ts +5 -1
  215. package/dist/stats/routeTable.d.ts.map +1 -1
  216. package/dist/support/index.js +2 -2
  217. package/dist/support/index.js.map +1 -1
  218. package/dist/testing/index.d.ts +2 -0
  219. package/dist/testing/index.d.ts.map +1 -1
  220. package/dist/testing/index.js +185 -2
  221. package/dist/testing/index.js.map +1 -1
  222. package/dist/testing/staticDocument.d.ts +80 -0
  223. package/dist/testing/staticDocument.d.ts.map +1 -0
  224. package/dist/vitest/index.js +1 -1
  225. package/package.json +1 -1
  226. package/dist/chunk-15v719sq.js +0 -5
  227. package/dist/chunk-bz5gda3b.js +0 -57
  228. package/dist/chunk-w8d37mcq.js +0 -24
  229. /package/dist/{chunk-7rffbkmg.js.map → chunk-0k02tza1.js.map} +0 -0
  230. /package/dist/{chunk-pzk2a5sr.js.map → chunk-cvr5624r.js.map} +0 -0
  231. /package/dist/{chunk-h02kyxgg.js.map → chunk-dhbgrv58.js.map} +0 -0
  232. /package/dist/{chunk-xecnc8zv.js.map → chunk-wjkh2gem.js.map} +0 -0
  233. /package/dist/{chunk-2y0r4b7g.js.map → chunk-y6wt5b6t.js.map} +0 -0
  234. /package/dist/{chunk-de4t48j9.js.map → chunk-zg6hmc48.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../internal/isConstructor.ts", "../http/middlewareList.ts", "../http/contentDisposition.ts", "../http/createStreamResponse.ts", "../http/bodyLimit.ts", "../http/ApiRouter.ts", "../http/McpRouter.ts", "../utils/applyParams.ts", "../facades/Redirect.ts", "../http/HttpResponse.ts", "../http/ViewRouter.ts", "../http/Middleware.ts", "../http/middleware-config.ts", "../utils/intendedUrl.ts", "../auth/signInRedirect.ts", "../auth/accessToken.ts", "../http/AuthenticationMiddlware.ts", "../http/SameSiteBounceMiddleware.ts", "../http/CacheMiddleware.ts", "../http/CorsMiddleware.ts", "../services/rate-limiter/RateLimiter.ts", "../http/RateLimitMiddleware.ts", "../http/CSRFMiddleware.ts", "../http/BodyLimitMiddleware.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", "../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", "../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/ImageManager.ts", "../services/logging/LoggingRouter.ts", "../services/middleware/MiddlewareRegistry.ts", "../services/router/config.ts", "../services/router/createFlatApiRoutes.ts", "../services/router/createFlatViewRoutes.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", "../facades/Lang.ts", "../services/kernel-id/KernelId.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", "../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", "../services/router/staticCache.ts", "../services/router/notFound.ts", "../services/router/ApiRouteDispatcher.ts", "../services/router/DomainResolver.ts", "../services/router/DomainRouter.ts", "../auth/AuthManager.ts", "../facades/Auth.ts", "../facades/Prefetch.ts", "../utils/domainUrl.ts", "../facades/Url.ts", "../facades/Meta.ts", "../facades/Cookie.ts", "../facades/Redis.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", "../facades/Features.ts", "../facades/DB.ts"],
3
+ "sources": ["../internal/isConstructor.ts", "../http/middlewareList.ts", "../http/contentDisposition.ts", "../http/createStreamResponse.ts", "../http/bodyLimit.ts", "../http/ApiRouter.ts", "../http/McpRouter.ts", "../utils/applyParams.ts", "../facades/Redirect.ts", "../http/HttpResponse.ts", "../http/ViewRouter.ts", "../http/Middleware.ts", "../http/middleware-config.ts", "../utils/intendedUrl.ts", "../auth/signInRedirect.ts", "../auth/accessToken.ts", "../http/AuthenticationMiddlware.ts", "../http/SameSiteBounceMiddleware.ts", "../http/CacheMiddleware.ts", "../http/CorsMiddleware.ts", "../services/rate-limiter/RateLimiter.ts", "../http/RateLimitMiddleware.ts", "../http/CSRFMiddleware.ts", "../http/BodyLimitMiddleware.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", "../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", "../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/ImageManager.ts", "../services/logging/LoggingRouter.ts", "../services/middleware/MiddlewareRegistry.ts", "../services/router/config.ts", "../services/router/createFlatApiRoutes.ts", "../services/router/createFlatViewRoutes.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", "../facades/Lang.ts", "../services/kernel-id/KernelId.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", "../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/staticCache.ts", "../services/router/notFound.ts", "../services/router/ApiRouteDispatcher.ts", "../services/router/DomainResolver.ts", "../services/router/DomainRouter.ts", "../auth/AuthManager.ts", "../facades/Auth.ts", "../facades/Prefetch.ts", "../utils/domainUrl.ts", "../facades/Url.ts", "../facades/Meta.ts", "../facades/Cookie.ts", "../facades/Redis.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", "../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
  "/**\n * What a route's `.middleware()` accepts.\n *\n * A bare string is allowed because it is what people write — `\"auth\"` reads\n * better than `[\"auth\"]` for the overwhelmingly common single-middleware case,\n * and the array form was accepted silently wrong for long enough that the\n * starter template itself does it (`.middleware(\"cache:private\")`).\n */\nexport type MiddlewareInput = string | string[];\n\n/**\n * Normalizes `.middleware()`'s argument to the array the registry expects.\n *\n * Without this, a bare string was assigned straight to `middlewares`, and\n * `transformMiddleware` iterates its input — so a string was iterated one\n * **character** at a time. Each character became an alias lookup that resolved\n * to nothing and was dropped by the trailing `.filter(Boolean)`, which means the\n * middleware did not run and nothing anywhere said so. A route that looked\n * authenticated was public.\n *\n * The type said `string[]`, so this was a type error at every call site — but\n * only for a project whose `tsc` is clean, and the failure at runtime is silent\n * either way. Accepting both shapes removes the trap rather than documenting it.\n */\nexport function toMiddlewareList(input: MiddlewareInput): string[] {\n return typeof input === \"string\" ? [input] : input;\n}\n",
@@ -12,7 +12,7 @@
12
12
  "export function applyParams<T extends string>(\n url: T,\n params: Record<string, string | number | undefined>,\n): string {\n return (\n url\n .replace(/:([^/]+[*?]?)/g, (_, key) => {\n const hasSuffix = key.endsWith(\"?\") || key.endsWith(\"*\");\n const paramName = hasSuffix ? key.slice(0, -1) : key;\n const value = params[paramName];\n\n if (value === undefined) {\n if (hasSuffix) {\n return \"\"; // Remove the optional segment if no value is provided\n }\n // @ts-ignore\n if (import.meta.env.DEV) {\n throw new Error(`Missing parameter: ${paramName}`);\n }\n console.error(`Missing parameter: ${paramName} in URL: ${url}`);\n }\n\n return String(value);\n })\n // remove double slashes\n .replace(/\\/\\//g, \"/\")\n // remove trailing slash\n .replace(/\\/$/, \"\")\n );\n}\n",
13
13
  "import type { UrlParser, ViewPaths } from \"../client/types\";\nimport { RequestBreakerError } from \"../http/Error\";\nimport { applyParams } from \"../utils/applyParams\";\n\nclass RedirectError extends RequestBreakerError {\n constructor(path: string, status = 307) {\n super(\"Redirect error\");\n this.name = \"RedirectError\";\n this.payload = {\n api: {\n status: 200,\n data: {},\n directive: { kind: \"Redirect\", path },\n },\n view: {\n status,\n headers: {\n \"Cache-Control\":\n \"private, no-cache, no-store, max-age=0, must-revalidate\",\n Location: path,\n },\n },\n };\n }\n}\n\ntype Options<T extends ViewPaths> = UrlParser<T> extends Record<string, never>\n ? {\n search?: Record<string, string | number | boolean | undefined | null>;\n status?: number;\n permanent?: boolean;\n }\n : {\n search?: Record<string, string | number | boolean | undefined | null>;\n params: UrlParser<T>;\n status?: number;\n permanent?: boolean;\n };\n\nexport class Redirect {\n static to<T extends ViewPaths>(\n path: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? [options?: Options<T>]\n : [options: Options<T>]\n ) {\n const [options = {}] = args;\n const {\n search = {},\n params = {},\n permanent,\n status,\n } = {\n params: {},\n status: 307,\n permanent: false,\n ...options,\n };\n const searchParams = new URLSearchParams(search).toString();\n throw new RedirectError(\n // `applyParams` strips a trailing slash, so the root collapses to `\"\"`\n // and `filter(Boolean)` then drops it — an empty `Location`. Reachable\n // with nothing stranger than `Redirect.to(Auth.intendedUrl())`, which\n // returns `/` when there is no page to go back to.\n [applyParams(path, params) || \"/\", searchParams.toString()]\n .filter(Boolean)\n .join(\"?\"),\n status ?? (permanent ? 301 : 307),\n );\n }\n\n static external(url: string, status = 307) {\n throw new RedirectError(url, status);\n }\n}\n",
14
14
  "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 * `.text()` or `.redirect()` would each add one, and a `case` in `serialize`.\n */\ntype HttpResponseKind = \"json\";\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 * For api routes. A view's handler returns its props; returning one there\n * 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);\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 /** 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 }\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()` has.\n */\nfunction assertStatus(status: number) {\n if (!Number.isInteger(status) || status < 200 || status > 599) {\n throw new RangeError(`HttpResponse: status must be an integer from 200 to 599, got ${status}.`);\n }\n if (status === 204 || status === 205 || status === 304) {\n throw new RangeError(`HttpResponse.json: a ${status} response has no body.`);\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",
15
- "import type { RemoveGroupPrefix } from \"../client/types\";\nimport { Redirect } from \"../facades/Redirect\";\nimport type { KeyAndValue, KeyAndValueToObject } from \"../internal/type-utils\";\nimport { contentDisposition } from \"./contentDisposition\";\nimport { isHttpResponse } from \"./HttpResponse\";\nimport type { Controller } from \"./Controller\";\nimport type { HttpRequest } from \"./HttpRequest\";\nimport type { FeatureKey } from \"../client/rpc\";\nimport { type MiddlewareInput, toMiddlewareList } from \"./middlewareList\";\n\ntype ControllerMethods<T extends new () => Controller> = {\n [K in keyof InstanceType<T>]: InstanceType<T>[K] extends Function ? K : never;\n}[keyof InstanceType<T>];\n\nexport type ViewRoutes = Record<\n string,\n | ViewRoute<any, any, any>\n | LayoutRoute<any, any, any, any>\n | RedirectRoute<any, any, any>\n | FileRoute<any, any>\n | (new () => ViewRouter)\n>;\n\ntype CallbackHandler<Input, Output, Params> = (\n req: HttpRequest<Input, Params>,\n) => Promise<Output> | Output;\n\nexport type ViewHandler<Input, Output, Params> =\n | CallbackHandler<Input, Output, Params>\n | (new () => Controller);\n\ntype ParseViewControllerHandler<\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => infer Output\n ? ViewRoute<Input, Output, Params>\n : never;\n\ntype ParseFileControllerHandler<\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => any\n ? FileRoute<Input, Params>\n : never;\n\ntype ParseLayoutControllerHandler<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => infer Output\n ? LayoutRoute<T, Input, Output, Params>\n : never;\n\ntype RedirectOutput = {\n destination: string;\n permanent?: boolean;\n status?: number;\n};\n\nexport class RedirectRoute<Input, Output, Params> {\n kind = \"redirect\" as const;\n viewPath = \"REDIRECT\";\n\n // @internal\n middlewares: string[] = [];\n featureGates: string[] = [];\n private handler: (req: HttpRequest<Input, Params>) => Promise<RedirectOutput>;\n constructor(\n handler?:\n | CallbackHandler<Input, RedirectOutput, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => ({})) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>): Promise<RedirectOutput> => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const { destination, permanent = false, status = 307 } = await this.handler(req);\n\n if (!destination) {\n throw new Error(`Redirect destination is required see ${path}`);\n }\n\n Redirect.to(destination as never, { permanent, status });\n\n return {};\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport type FileBody = Blob | ReadableStream | ArrayBuffer | ArrayBufferView | string;\n\nexport type FileOutput =\n | Blob\n | Response\n | {\n file: FileBody;\n /** File name sent in `Content-Disposition`. Defaults to the blob name, if any. */\n name?: string;\n /** Overrides the mime type. Defaults to the blob type, then `application/octet-stream`. */\n type?: string;\n /** `true` sends `attachment` (download), `false` (default) sends `inline`. */\n download?: boolean;\n status?: number;\n headers?: Record<string, string>;\n };\n\nexport async function createFileResponse(output: FileOutput, headers: Headers) {\n if (output instanceof Response) {\n return output;\n }\n\n const isBlob = output instanceof Blob;\n const body = isBlob ? output : output.file;\n const name = isBlob ? (output as File).name : (output.name ?? (output.file as File)?.name);\n const type = (isBlob ? output.type : (output.type ?? (output.file as Blob)?.type)) || \"\";\n const download = isBlob ? false : (output.download ?? false);\n const status = isBlob ? 200 : (output.status ?? 200);\n\n if (!isBlob) {\n for (const [key, value] of Object.entries(output.headers ?? {})) {\n headers.set(key, value);\n }\n }\n\n // `Bun.file()` is lazy, a missing path only blows up once the stream is read,\n // which is after the response has been committed. Check it up front instead.\n if (body instanceof Blob && \"exists\" in body && typeof body.exists === \"function\") {\n const exists = await (body as any).exists();\n if (!exists) {\n return new Response(\"Not found\", { status: 404 });\n }\n }\n\n headers.set(\"Content-Type\", type || \"application/octet-stream\");\n if (body instanceof Blob) {\n headers.set(\"Content-Length\", String(body.size));\n }\n if (name) {\n headers.set(\"Content-Disposition\", contentDisposition(name, download));\n }\n\n return new Response((body instanceof Blob ? body.stream() : body) as BodyInit, {\n status,\n headers,\n });\n}\n\nexport class FileRoute<Input, Params> {\n kind = \"file\" as const;\n viewPath = \"FILE\";\n\n // @internal\n middlewares: string[] = [];\n featureGates: string[] = [];\n private handler: (req: HttpRequest<Input, Params>) => Promise<FileOutput> | FileOutput;\n constructor(\n handler?:\n | CallbackHandler<Input, FileOutput, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => null) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>) => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const file = await this.handler(req);\n\n if (!file) {\n throw new Error(`File route handler must return a file see ${path}`);\n }\n\n return { FILE: file };\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\n/**\n * A view's handler answers its props, which gemi renders; it has no status or\n * headers of its own to give. Spread into props, an `HttpResponse` rendered the\n * view with `kind`, `body` and `status` for data, and no error anywhere.\n */\nfunction assertNotHttpResponse<T>(data: T, viewPath: string): T {\n if (isHttpResponse(data)) {\n throw new Error(\n `The handler of view \"${viewPath}\" returned an HttpResponse. HttpResponse is for api routes; a view handler returns its props.`,\n );\n }\n return data;\n}\n\n/** Options for `ViewRoute.static()`. */\nexport interface StaticViewOptions {\n /**\n * A view path (a file under `app/views`, like any view) whose default export\n * renders the whole document — `<html>`, `<Head />`, `<body>` — in place of\n * the app's `RootLayout`. Its stylesheet replaces the app's: the page gets\n * the CSS this layout and the route's own views import, and none of what the\n * app's client entry imports.\n *\n * Left out, the page renders inside the app's `RootLayout` with the app's\n * stylesheet, exactly as a hydrated view would.\n */\n layout?: string;\n /**\n * The `Cache-Control` header the page is sent with, for example\n * `\"public, max-age=60, s-maxage=600, stale-while-revalidate=86400\"` to let a\n * CDN cache it. Left out, gemi sends none and the cache in front decides.\n *\n * Only the rendered page gets it — not a redirect, an error or the 404 a\n * missing record turns the request into — and only when the response sets\n * no cookie: a page whose handler or middleware set one is sent\n * `private, no-store` instead, so a shared cache never stores one visitor's\n * cookie and hands it to the next. A `Cache-Control` the handler set itself\n * (`req.ctx().headers`) wins over this option.\n */\n cacheControl?: string;\n /**\n * Mint the `session_id` cookie for a visitor who has none, as a hydrated view\n * does. Off by default: a static page is one body for everyone, and a\n * per-visitor `Set-Cookie` keeps a CDN from caching it. Turn it on when the\n * page's flags roll out by percentage to anonymous visitors (the rollout\n * subject is that cookie) and the page is not meant to be cached.\n */\n session?: boolean;\n /**\n * Set the `csrf_token` cookie, as a hydrated view does. Off by default, for\n * the same reason as `session`. Turn it on only when a form on this page\n * posts to a same-origin route behind `CSRFMiddleware`; a form that posts to\n * an api route with its own protection (a honeypot, a token in the body, an\n * `Origin` check) needs nothing from the page.\n */\n csrf?: boolean;\n}\n\nexport class ViewRoute<Input, Output, Params> {\n middlewares: string[] = [];\n featureGates: string[] = [];\n /** @internal Set by `static()`. `null` for a hydrated view. */\n staticOptions: StaticViewOptions | null = null;\n private handler: (req: HttpRequest<Input, Params>) => Output;\n constructor(\n public viewPath: string,\n handler?:\n | CallbackHandler<Input, Output, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => ({})) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>): Output => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const data = assertNotHttpResponse(await this.handler(req), this.viewPath);\n\n return {\n [this.viewPath]: {\n ...data,\n breadcrumb: {\n label: (data as any)?.breadcrumb ?? \"\",\n href: path,\n },\n },\n };\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Serves this view as a static document: rendered on the server as usual,\n * but sent with no React on the client.\n *\n * The handler, middleware, redirects, `Query.prefetch`, `useQuery` reads,\n * `Head` metadata, dictionaries and status codes all work as for any view.\n * What changes is the document: gemi waits for the whole tree to settle\n * (no streaming) and sends it without the client entry, `modulepreload`s,\n * the `__GEMI_DATA__` payload, the theme script or React's streaming\n * scripts. A page with no islands ships no JavaScript at all.\n *\n * Interactive parts are islands — see `island()` in `gemi/client` — which\n * add one small loader plus each used island's own module.\n *\n * Because nothing hydrates, event handlers, effects and state in the view\n * never run in the browser. Links are plain `<a>`s, and a client-side\n * navigation from a hydrated page to this route becomes a full page load.\n *\n * Returns `this`, so the route's type (and its `ViewPaths` entry) is\n * unchanged.\n */\n static(options: StaticViewOptions = {}): this {\n this.staticOptions = { ...options };\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport class LayoutRoute<T extends ViewRoutes, Input, Output, Params> {\n children: new () => ViewRouter;\n middlewares: string[] = [];\n featureGates: string[] = [];\n /** @internal Set by `alwaysRun()`. */\n alwaysRuns = false;\n private handler: (req: HttpRequest<Input, Params>) => Output = (() => ({})) as any;\n constructor(\n public viewPath: string,\n handlerOrRoutes:\n | CallbackHandler<Input, Output, Params>\n | [new () => Controller, ControllerMethods<any>]\n | T,\n routes?: T,\n ) {\n if (typeof handlerOrRoutes === \"function\") {\n this.handler = handlerOrRoutes as any;\n this.children = class extends ViewRouter {\n routes = routes ?? ({} as T);\n };\n } else if (Array.isArray(handlerOrRoutes)) {\n const [controller, methodName] = handlerOrRoutes;\n this.handler = (req: HttpRequest<Input, Params>): Output => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n this.children = class extends ViewRouter {\n routes = routes ?? ({} as T);\n };\n } else {\n this.children = class extends ViewRouter {\n routes = handlerOrRoutes as T;\n };\n this.handler = () => ({}) as Output;\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const data = assertNotHttpResponse(await this.handler(req), this.viewPath);\n\n return {\n [this.viewPath]: {\n ...data,\n breadcrumb: {\n label: (data as any)?.breadcrumb ?? \"\",\n href: path,\n },\n },\n };\n }\n\n /**\n * Runs this layout's handler on every navigation underneath it, instead of\n * only when the client enters the layout.\n *\n * Costs a handler run per navigation, so reach for it when the layout's data\n * genuinely changes as the routes below it change. It is not a way to make a\n * handler-level access check reliable — use middleware for that, which runs\n * on every request regardless.\n */\n alwaysRun() {\n this.alwaysRuns = true;\n return this;\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport class ViewRouter {\n middlewares: string[] = [];\n featureGates: string[] = [];\n routes: ViewRoutes = {};\n\n public view<C extends new () => Controller, M extends ControllerMethods<C>>(\n viewPath: string,\n handler?: [C, M],\n ): ParseViewControllerHandler<C, M>;\n public view<Input, Output, Params>(\n viewPath: string,\n handler?: ViewHandler<Input, Output, Params>,\n ): ViewRoute<Input, Output, Params>;\n public view<C extends new () => Controller, M extends ControllerMethods<C>>(\n viewPath: string,\n handler?: [C, M] | ViewHandler<any, any, any>,\n ) {\n return new ViewRoute(viewPath, handler as any);\n }\n\n public file<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler: [C, M],\n ): ParseFileControllerHandler<C, M>;\n public file<Input, Params>(\n handler: CallbackHandler<Input, FileOutput, Params>,\n ): FileRoute<Input, Params>;\n public file<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler: [C, M] | CallbackHandler<any, FileOutput, any>,\n ) {\n return new FileRoute(handler as any);\n }\n\n // @ts-expect-error\n public redirect<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler?: [C, M],\n ): ParseViewControllerHandler<C, M>;\n public redirect<Input, Output, Params>(\n handler?: ViewHandler<Input, Output, Params>,\n ): ViewRoute<Input, Output, Params>;\n public redirect<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler?: [C, M] | ViewHandler<any, any, any>,\n ) {\n return new RedirectRoute(handler as any);\n }\n\n public layout<T extends ViewRoutes>(\n viewPath: string,\n handlerOrRoutes: T,\n routes?: T,\n ): LayoutRoute<T, any, any, any>;\n public layout<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n >(viewPath: string, handlerOrRoutes: [C, M], routes?: T): ParseLayoutControllerHandler<T, C, M>;\n public layout<T extends ViewRoutes, Input, Output, Params>(\n viewPath: string,\n handlerOrRoutes: CallbackHandler<Input, Output, Params>,\n routes?: T,\n ): LayoutRoute<T, Input, Output, Params>;\n public layout<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n >(viewPath: string, handlerOrRoutes: ViewHandler<any, any, any> | [C, M] | T, routes?: T) {\n return new LayoutRoute(viewPath, handlerOrRoutes as any, routes);\n }\n}\n\ntype ViewRouteParser<T, Prefix extends PropertyKey = \"\"> =\n T extends ViewRoute<infer Input, infer Output, infer Params>\n ? KeyAndValue<`view:${Prefix & string}`, ViewHandler<Input, Output, Params>>\n : never;\n\ntype LayoutRouteParser<T, Prefix extends PropertyKey = \"\"> =\n T extends LayoutRoute<infer Routes, infer I, infer O, infer P>\n ? RoutesParser<Routes, Prefix> | KeyAndValue<`layout:${Prefix & string}`, ViewHandler<I, O, P>>\n : never;\n\ntype ParsePrefixAndKey<\n P extends PropertyKey,\n K extends PropertyKey,\n U extends string = `${P & string}${K & string}`,\n> = U extends \"//\"\n ? \"/\"\n : U extends `${infer T1}//${infer T2}`\n ? `${RemoveGroupPrefix<T1>}/${RemoveGroupPrefix<T2>}`\n : U extends `${infer T1}/${infer T2}/`\n ? `${RemoveGroupPrefix<T1>}/${RemoveGroupPrefix<T2>}`\n : RemoveGroupPrefix<U>;\n\ntype RouterInstanceParser<\n T extends new () => ViewRouter,\n Prefix extends PropertyKey = \"\",\n> = RoutesParser<InstanceType<T>[\"routes\"], Prefix>;\n\ntype RoutesParser<\n T extends ViewRoutes,\n Prefix extends PropertyKey = \"\",\n K extends keyof T = keyof T,\n> = K extends any\n ? T[K] extends new () => ViewRouter\n ? RouterInstanceParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : T[K] extends LayoutRoute<any, any, any, any>\n ? LayoutRouteParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : T[K] extends FileRoute<any, any>\n ? never\n : T[K] extends ViewRoute<any, any, any>\n ? ViewRouteParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : never\n : never;\n\nexport type CreateViewRPC<\n T extends ViewRouter,\n Prefix extends PropertyKey = \"\",\n> = KeyAndValueToObject<RoutesParser<T[\"routes\"], Prefix>>;\n",
15
+ "import type { RemoveGroupPrefix } from \"../client/types\";\nimport { Redirect } from \"../facades/Redirect\";\nimport type { KeyAndValue, KeyAndValueToObject } from \"../internal/type-utils\";\nimport { contentDisposition } from \"./contentDisposition\";\nimport { isHttpResponse } from \"./HttpResponse\";\nimport type { Controller } from \"./Controller\";\nimport type { HttpRequest } from \"./HttpRequest\";\nimport type { FeatureKey } from \"../client/rpc\";\nimport { type MiddlewareInput, toMiddlewareList } from \"./middlewareList\";\n\ntype ControllerMethods<T extends new () => Controller> = {\n [K in keyof InstanceType<T>]: InstanceType<T>[K] extends Function ? K : never;\n}[keyof InstanceType<T>];\n\nexport type ViewRoutes = Record<\n string,\n | ViewRoute<any, any, any>\n | LayoutRoute<any, any, any, any>\n | RedirectRoute<any, any, any>\n | FileRoute<any, any>\n | (new () => ViewRouter)\n>;\n\ntype CallbackHandler<Input, Output, Params> = (\n req: HttpRequest<Input, Params>,\n) => Promise<Output> | Output;\n\nexport type ViewHandler<Input, Output, Params> =\n | CallbackHandler<Input, Output, Params>\n | (new () => Controller);\n\ntype ParseViewControllerHandler<\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => infer Output\n ? ViewRoute<Input, Output, Params>\n : never;\n\ntype ParseFileControllerHandler<\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => any\n ? FileRoute<Input, Params>\n : never;\n\ntype ParseLayoutControllerHandler<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n> = InstanceType<C>[M] extends (req: HttpRequest<infer Input, infer Params>) => infer Output\n ? LayoutRoute<T, Input, Output, Params>\n : never;\n\ntype RedirectOutput = {\n destination: string;\n permanent?: boolean;\n status?: number;\n};\n\nexport class RedirectRoute<Input, Output, Params> {\n kind = \"redirect\" as const;\n viewPath = \"REDIRECT\";\n\n // @internal\n middlewares: string[] = [];\n featureGates: string[] = [];\n private handler: (req: HttpRequest<Input, Params>) => Promise<RedirectOutput>;\n constructor(\n handler?:\n | CallbackHandler<Input, RedirectOutput, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => ({})) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>): Promise<RedirectOutput> => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const { destination, permanent = false, status = 307 } = await this.handler(req);\n\n if (!destination) {\n throw new Error(`Redirect destination is required see ${path}`);\n }\n\n Redirect.to(destination as never, { permanent, status });\n\n return {};\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport type FileBody = Blob | ReadableStream | ArrayBuffer | ArrayBufferView | string;\n\nexport type FileOutput =\n | Blob\n | Response\n | {\n file: FileBody;\n /** File name sent in `Content-Disposition`. Defaults to the blob name, if any. */\n name?: string;\n /** Overrides the mime type. Defaults to the blob type, then `application/octet-stream`. */\n type?: string;\n /** `true` sends `attachment` (download), `false` (default) sends `inline`. */\n download?: boolean;\n status?: number;\n headers?: Record<string, string>;\n };\n\nexport async function createFileResponse(output: FileOutput, headers: Headers) {\n if (output instanceof Response) {\n return output;\n }\n\n const isBlob = output instanceof Blob;\n const body = isBlob ? output : output.file;\n const name = isBlob ? (output as File).name : (output.name ?? (output.file as File)?.name);\n const type = (isBlob ? output.type : (output.type ?? (output.file as Blob)?.type)) || \"\";\n const download = isBlob ? false : (output.download ?? false);\n const status = isBlob ? 200 : (output.status ?? 200);\n\n if (!isBlob) {\n for (const [key, value] of Object.entries(output.headers ?? {})) {\n headers.set(key, value);\n }\n }\n\n // `Bun.file()` is lazy, a missing path only blows up once the stream is read,\n // which is after the response has been committed. Check it up front instead.\n if (body instanceof Blob && \"exists\" in body && typeof body.exists === \"function\") {\n const exists = await (body as any).exists();\n if (!exists) {\n return new Response(\"Not found\", { status: 404 });\n }\n }\n\n headers.set(\"Content-Type\", type || \"application/octet-stream\");\n if (body instanceof Blob) {\n headers.set(\"Content-Length\", String(body.size));\n }\n if (name) {\n headers.set(\"Content-Disposition\", contentDisposition(name, download));\n }\n\n return new Response((body instanceof Blob ? body.stream() : body) as BodyInit, {\n status,\n headers,\n });\n}\n\nexport class FileRoute<Input, Params> {\n kind = \"file\" as const;\n viewPath = \"FILE\";\n\n // @internal\n middlewares: string[] = [];\n featureGates: string[] = [];\n private handler: (req: HttpRequest<Input, Params>) => Promise<FileOutput> | FileOutput;\n constructor(\n handler?:\n | CallbackHandler<Input, FileOutput, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => null) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>) => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const file = await this.handler(req);\n\n if (!file) {\n throw new Error(`File route handler must return a file see ${path}`);\n }\n\n return { FILE: file };\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\n/**\n * A view's handler answers its props, which gemi renders; it has no status or\n * headers of its own to give. Spread into props, an `HttpResponse` rendered the\n * view with `kind`, `body` and `status` for data, and no error anywhere.\n */\nfunction assertNotHttpResponse<T>(data: T, viewPath: string): T {\n if (isHttpResponse(data)) {\n throw new Error(\n `The handler of view \"${viewPath}\" returned an HttpResponse. HttpResponse is for api routes; a view handler returns its props.`,\n );\n }\n return data;\n}\n\n/** Options for `ViewRoute.static()`. */\nexport interface StaticViewOptions {\n /**\n * A view path (a file under `app/views`, like any view) whose default export\n * renders the whole document — `<html>`, `<Head />`, `<body>` — in place of\n * the app's `RootLayout`. Its stylesheet replaces the app's: the page gets\n * the CSS this layout and the route's own views import, and none of what the\n * app's client entry imports.\n *\n * Left out, the page renders inside the app's `RootLayout` with the app's\n * stylesheet, exactly as a hydrated view would.\n */\n layout?: string;\n /**\n * The `Cache-Control` header the page is sent with, for example\n * `\"public, max-age=60, s-maxage=600, stale-while-revalidate=86400\"` to let a\n * CDN cache it. Left out, gemi sends none and the cache in front decides.\n *\n * Only the rendered page gets it — not a redirect, an error or the 404 a\n * missing record turns the request into — and only when the response sets\n * no cookie: a page whose handler or middleware set one is sent\n * `private, no-store` instead, so a shared cache never stores one visitor's\n * cookie and hands it to the next. A `Cache-Control` the handler set itself\n * (`req.ctx().headers`) wins over this option.\n */\n cacheControl?: string;\n /**\n * Mint the `session_id` cookie for a visitor who has none, as a hydrated view\n * does. Off by default: a static page is one body for everyone, and a\n * per-visitor `Set-Cookie` keeps a CDN from caching it. Turn it on when the\n * page's flags roll out by percentage to anonymous visitors (the rollout\n * subject is that cookie) and the page is not meant to be cached.\n */\n session?: boolean;\n /**\n * Set the `csrf_token` cookie, as a hydrated view does. Off by default, for\n * the same reason as `session`. Turn it on only when a form on this page\n * posts to a same-origin route behind `CSRFMiddleware`; a form that posts to\n * an api route with its own protection (a honeypot, a token in the body, an\n * `Origin` check) needs nothing from the page.\n */\n csrf?: boolean;\n /**\n * Client-side navigation between static pages (#865). Off by default, and\n * then the document is exactly what it was without it.\n *\n * On, the page ships a small runtime (about 2.5 KB gzip, with the island\n * loader it replaces; no React unless the page has islands) that follows\n * same-origin links by fetching the next page and swapping it in: title,\n * the head tags `Head`/`Meta` render and the body, re-hydrating the new\n * page's islands and unmounting the old ones. When the next page has\n * another layout, build, `version` or stylesheet, or anything fails, it is\n * an ordinary full page load. Without JavaScript, links are plain links.\n *\n * `true` is `{}`: the defaults below.\n */\n navigation?: boolean | StaticNavigationOptions;\n}\n\n/** `.static({ navigation: { … } })`. */\nexport interface StaticNavigationOptions {\n /**\n * Any string identifying what the page is built from beyond gemi's build:\n * a page whose version differs from the current one is loaded in full\n * rather than swapped in (a new publication with its own assets or theme,\n * say). Called per request, after the handler. Defaults to `\"\"`, so only the\n * layout and the build decide.\n */\n version?: (req: HttpRequest<any, any>) => string | Promise<string>;\n /**\n * `\"intent\"` (default): fetch a link's page ahead when the pointer rests on\n * it (65 ms), it gets focus or a touch starts, into a small cache (10 pages,\n * 30 s), which the navigation then uses. Off when the visitor asked to save\n * data. `\"none\"`: fetch on click only.\n */\n prefetch?: \"intent\" | \"none\";\n}\n\nexport class ViewRoute<Input, Output, Params> {\n middlewares: string[] = [];\n featureGates: string[] = [];\n /** @internal Set by `static()`. `null` for a hydrated view. */\n staticOptions: StaticViewOptions | null = null;\n private handler: (req: HttpRequest<Input, Params>) => Output;\n constructor(\n public viewPath: string,\n handler?:\n | CallbackHandler<Input, Output, Params>\n | [new () => Controller, ControllerMethods<any>],\n ) {\n if (!handler) {\n this.handler = (() => ({})) as any;\n } else if (typeof handler === \"function\") {\n this.handler = handler as any;\n } else {\n const [controller, methodName] = handler;\n this.handler = (req: HttpRequest<Input, Params>): Output => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const data = assertNotHttpResponse(await this.handler(req), this.viewPath);\n\n return {\n [this.viewPath]: {\n ...data,\n breadcrumb: {\n label: (data as any)?.breadcrumb ?? \"\",\n href: path,\n },\n },\n };\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Serves this view as a static document: rendered on the server as usual,\n * but sent with no React on the client.\n *\n * The handler, middleware, redirects, `Query.prefetch`, `useQuery` reads,\n * `Head` metadata, dictionaries and status codes all work as for any view.\n * What changes is the document: gemi waits for the whole tree to settle\n * (no streaming) and sends it without the client entry, `modulepreload`s,\n * the `__GEMI_DATA__` payload, the theme script or React's streaming\n * scripts. A page with no islands ships no JavaScript at all.\n *\n * Interactive parts are islands — see `island()` in `gemi/client` — which\n * add one small loader plus each used island's own module.\n *\n * Because nothing hydrates, event handlers, effects and state in the view\n * never run in the browser. Links are plain `<a>`s (followed client-side\n * between static pages with `navigation`), and a client-side navigation\n * from a hydrated page to this route becomes a full page load.\n *\n * Returns `this`, so the route's type (and its `ViewPaths` entry) is\n * unchanged.\n */\n static(options: StaticViewOptions = {}): this {\n this.staticOptions = { ...options };\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport class LayoutRoute<T extends ViewRoutes, Input, Output, Params> {\n children: new () => ViewRouter;\n middlewares: string[] = [];\n featureGates: string[] = [];\n /** @internal Set by `alwaysRun()`. */\n alwaysRuns = false;\n private handler: (req: HttpRequest<Input, Params>) => Output = (() => ({})) as any;\n constructor(\n public viewPath: string,\n handlerOrRoutes:\n | CallbackHandler<Input, Output, Params>\n | [new () => Controller, ControllerMethods<any>]\n | T,\n routes?: T,\n ) {\n if (typeof handlerOrRoutes === \"function\") {\n this.handler = handlerOrRoutes as any;\n this.children = class extends ViewRouter {\n routes = routes ?? ({} as T);\n };\n } else if (Array.isArray(handlerOrRoutes)) {\n const [controller, methodName] = handlerOrRoutes;\n this.handler = (req: HttpRequest<Input, Params>): Output => {\n const controllerInstance = new controller();\n return controllerInstance[methodName](req);\n };\n this.children = class extends ViewRouter {\n routes = routes ?? ({} as T);\n };\n } else {\n this.children = class extends ViewRouter {\n routes = handlerOrRoutes as T;\n };\n this.handler = () => ({}) as Output;\n }\n }\n\n async run(req: HttpRequest<Input, Params>, path: string) {\n const data = assertNotHttpResponse(await this.handler(req), this.viewPath);\n\n return {\n [this.viewPath]: {\n ...data,\n breadcrumb: {\n label: (data as any)?.breadcrumb ?? \"\",\n href: path,\n },\n },\n };\n }\n\n /**\n * Runs this layout's handler on every navigation underneath it, instead of\n * only when the client enters the layout.\n *\n * Costs a handler run per navigation, so reach for it when the layout's data\n * genuinely changes as the routes below it change. It is not a way to make a\n * handler-level access check reliable — use middleware for that, which runs\n * on every request regardless.\n */\n alwaysRun() {\n this.alwaysRuns = true;\n return this;\n }\n\n middleware(middlewares: MiddlewareInput) {\n this.middlewares = toMiddlewareList(middlewares);\n return this;\n }\n\n /**\n * Hides this route behind a feature flag.\n *\n * When the flag is off the route behaves as though it does not exist — the\n * application's own `404` view, with a 404 status — rather than returning an\n * error page that confirms something is there.\n *\n * Returns `this`, so the route's type is unchanged and the path keeps its\n * entry in `ViewPaths`: `<Link>` and `Redirect.to` stay typed. That also means\n * the path is still in the route manifest the browser receives, so this gates\n * the *response*, not the route's existence. Declare the feature\n * `defineFeature({ serverOnly: true })` and keep unreleased routes out of the\n * client tree if the name itself is the secret.\n *\n * ## A `rollout` is not access control\n *\n * Gate on `active` — a feature nobody has switched on is unreachable, which is\n * the case this is for — or on a `when` that reads something the visitor\n * cannot choose, like the signed-in user.\n *\n * A `rollout` is neither, for an anonymous visitor. The subject is their\n * `session_id` cookie, which they supply; bucketing is a published pure\n * function of it, so they can compute one that lands inside any percentage and\n * send it. Signing the cookie would not fix this — they can equally well\n * discard it and ask for a fresh one until a signed id happens to land inside,\n * which for a 5% rollout is a couple of dozen requests. Nothing that hands out\n * identities on demand can restrict anything to a fraction of them.\n */\n feature(key: FeatureKey): this {\n this.featureGates = [...this.featureGates, key as string];\n return this;\n }\n}\n\nexport class ViewRouter {\n middlewares: string[] = [];\n featureGates: string[] = [];\n routes: ViewRoutes = {};\n\n public view<C extends new () => Controller, M extends ControllerMethods<C>>(\n viewPath: string,\n handler?: [C, M],\n ): ParseViewControllerHandler<C, M>;\n public view<Input, Output, Params>(\n viewPath: string,\n handler?: ViewHandler<Input, Output, Params>,\n ): ViewRoute<Input, Output, Params>;\n public view<C extends new () => Controller, M extends ControllerMethods<C>>(\n viewPath: string,\n handler?: [C, M] | ViewHandler<any, any, any>,\n ) {\n return new ViewRoute(viewPath, handler as any);\n }\n\n public file<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler: [C, M],\n ): ParseFileControllerHandler<C, M>;\n public file<Input, Params>(\n handler: CallbackHandler<Input, FileOutput, Params>,\n ): FileRoute<Input, Params>;\n public file<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler: [C, M] | CallbackHandler<any, FileOutput, any>,\n ) {\n return new FileRoute(handler as any);\n }\n\n // @ts-expect-error\n public redirect<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler?: [C, M],\n ): ParseViewControllerHandler<C, M>;\n public redirect<Input, Output, Params>(\n handler?: ViewHandler<Input, Output, Params>,\n ): ViewRoute<Input, Output, Params>;\n public redirect<C extends new () => Controller, M extends ControllerMethods<C>>(\n handler?: [C, M] | ViewHandler<any, any, any>,\n ) {\n return new RedirectRoute(handler as any);\n }\n\n public layout<T extends ViewRoutes>(\n viewPath: string,\n handlerOrRoutes: T,\n routes?: T,\n ): LayoutRoute<T, any, any, any>;\n public layout<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n >(viewPath: string, handlerOrRoutes: [C, M], routes?: T): ParseLayoutControllerHandler<T, C, M>;\n public layout<T extends ViewRoutes, Input, Output, Params>(\n viewPath: string,\n handlerOrRoutes: CallbackHandler<Input, Output, Params>,\n routes?: T,\n ): LayoutRoute<T, Input, Output, Params>;\n public layout<\n T extends ViewRoutes,\n C extends new () => Controller,\n M extends ControllerMethods<C>,\n >(viewPath: string, handlerOrRoutes: ViewHandler<any, any, any> | [C, M] | T, routes?: T) {\n return new LayoutRoute(viewPath, handlerOrRoutes as any, routes);\n }\n}\n\ntype ViewRouteParser<T, Prefix extends PropertyKey = \"\"> =\n T extends ViewRoute<infer Input, infer Output, infer Params>\n ? KeyAndValue<`view:${Prefix & string}`, ViewHandler<Input, Output, Params>>\n : never;\n\ntype LayoutRouteParser<T, Prefix extends PropertyKey = \"\"> =\n T extends LayoutRoute<infer Routes, infer I, infer O, infer P>\n ? RoutesParser<Routes, Prefix> | KeyAndValue<`layout:${Prefix & string}`, ViewHandler<I, O, P>>\n : never;\n\ntype ParsePrefixAndKey<\n P extends PropertyKey,\n K extends PropertyKey,\n U extends string = `${P & string}${K & string}`,\n> = U extends \"//\"\n ? \"/\"\n : U extends `${infer T1}//${infer T2}`\n ? `${RemoveGroupPrefix<T1>}/${RemoveGroupPrefix<T2>}`\n : U extends `${infer T1}/${infer T2}/`\n ? `${RemoveGroupPrefix<T1>}/${RemoveGroupPrefix<T2>}`\n : RemoveGroupPrefix<U>;\n\ntype RouterInstanceParser<\n T extends new () => ViewRouter,\n Prefix extends PropertyKey = \"\",\n> = RoutesParser<InstanceType<T>[\"routes\"], Prefix>;\n\ntype RoutesParser<\n T extends ViewRoutes,\n Prefix extends PropertyKey = \"\",\n K extends keyof T = keyof T,\n> = K extends any\n ? T[K] extends new () => ViewRouter\n ? RouterInstanceParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : T[K] extends LayoutRoute<any, any, any, any>\n ? LayoutRouteParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : T[K] extends FileRoute<any, any>\n ? never\n : T[K] extends ViewRoute<any, any, any>\n ? ViewRouteParser<T[K], ParsePrefixAndKey<Prefix, K>>\n : never\n : never;\n\nexport type CreateViewRPC<\n T extends ViewRouter,\n Prefix extends PropertyKey = \"\",\n> = KeyAndValueToObject<RoutesParser<T[\"routes\"], Prefix>>;\n",
16
16
  "import { HttpRequest } from \"./HttpRequest\";\n\nexport class Middleware<T extends Record<string, any> = Record<string, any>> {\n /**\n * Run this middleware even when one before it in the chain refused the\n * request, so the headers it sets reach the refusal (a `body-limit` 413, a\n * `rate-limit` 429, an `auth` 401). `CorsMiddleware` sets it, and so should\n * an app's own middleware that only adds response headers such as CORS.\n *\n * Such a middleware must not refuse, read the body, or rely on what the\n * middleware before it returned: after a refusal it runs on a request that\n * will not reach the handler. One that throws then is logged and ignored.\n */\n static runsOnRefusal = false;\n\n config: T = {} as T;\n constructor(protected req: HttpRequest) {}\n run(..._args: any[]): Promise<any> | any {\n return {};\n }\n\n static configure<T extends Middleware<any>>(\n this: new (req: HttpRequest<any, any>) => T,\n config: T[\"config\"],\n ) {\n const self = this as any;\n return class extends self {\n config = config;\n } as any;\n }\n}\n",
17
17
  "import type { HttpRequest } from \"./HttpRequest\";\nimport type { Middleware } from \"./Middleware\";\n\ntype MiddlewareClass = new (req: HttpRequest) => Middleware;\n\n// Config key: `middleware`. Derived from `MiddlewareServiceProvider`.\nexport interface MiddlewareConfig {\n aliases?: Record<string, MiddlewareClass>;\n /**\n * Runs, in order, on every request the server receives — static files\n * included — before the router matches a route and before any route\n * middleware. Each entry is a middleware class or an alias from `aliases`,\n * with `alias:param` arguments as in a route's list. See `docs/middleware.md`.\n */\n global?: (string | MiddlewareClass)[];\n /**\n * The request body limit for every api route without a `body-limit` of its\n * own: bytes, or a size such as `\"1mb\"`. A route's `body-limit:…` replaces\n * it, raising it as well as lowering it (`body-limit:none` lifts it). Unset,\n * only Bun's server-wide `maxRequestBodySize` applies. See\n * `docs/middleware.md`.\n */\n bodyLimit?: string | number | null;\n}\n\nexport function defineMiddlewareConfig(\n config: MiddlewareConfig,\n): MiddlewareConfig {\n return config;\n}\n\nexport function middlewareConfigDefaults(): Required<MiddlewareConfig> {\n return {\n aliases: {},\n global: [],\n bodyLimit: null,\n };\n}\n",
18
18
  "/**\n * The search parameter carrying the page a signed-out visitor was trying to\n * reach. `AuthenticationMiddleware` writes it onto the sign-in redirect —\n * `/auth/sign-in?redirect=%2Finvoices%3Fpage%3D2` — and `Auth.intendedUrl()` /\n * `useIntendedUrl()` read it back after sign-in.\n */\nexport const INTENDED_URL_PARAM = \"redirect\";\n\n// Only ever compared against, never requested.\nconst PROBE_ORIGIN = \"http://gemi.invalid\";\n\n/**\n * `value` if it is a path on this origin, `fallback` otherwise.\n *\n * The intended URL arrives in a query string anybody can write, so reading it\n * back unchecked is an open redirect: `?redirect=https://evil.example` signs\n * the user in and hands them to a look-alike. Only a same-origin path passes:\n * `//evil.example` and `/\\evil.example` are protocol-relative to a browser and\n * are refused, as is anything a browser would strip control characters out of\n * before resolving.\n *\n * Returns path, search and hash — never an origin — so the result is safe to\n * hand to `push`, `Redirect.to` or a `Location` header alike.\n */\nexport function safeRedirectPath(value: unknown, fallback = \"/\"): string {\n if (typeof value !== \"string\" || !value.startsWith(\"/\")) {\n return fallback;\n }\n if (/[\\u0000-\\u001f\\u007f\\\\]/.test(value) || value.startsWith(\"//\")) {\n return fallback;\n }\n try {\n const url = new URL(value, PROBE_ORIGIN);\n if (url.origin !== PROBE_ORIGIN) {\n return fallback;\n }\n // `push` and `Redirect.to` run their path through `applyParams`, which\n // reads `:x` as a route parameter and collapses `//` — both legal in a\n // query (`?next=https://…`) and in a path. Percent-encoded they mean the\n // same to `URLSearchParams` and survive the trip; left raw, `?redirect=/:x`\n // throws in dev and navigates to `/undefined` in production.\n const tail = `${url.search}${url.hash}`.replaceAll(\"/\", \"%2F\");\n const path = `${url.pathname}${tail}`.replaceAll(\":\", \"%3A\");\n // The `//` test above reads the input, but `.` and `..` segments are\n // resolved away by `new URL` afterwards, and resolving them can *produce* a\n // leading `//`: `/..//evil.example` normalizes to `//evil.example`, which is\n // protocol-relative to a browser. Test what actually goes out.\n return path.startsWith(\"//\") ? fallback : path;\n } catch {\n return fallback;\n }\n}\n\n/**\n * Whether the client addressed this request over https — through the proxy in\n * front if there is one, since TLS is nearly always terminated before the app\n * and a forged `X-Forwarded-Proto` only spoils the forger's own cookie.\n *\n * Not `origin.includes(\"localhost\")`: the URL is built from the `Host` header,\n * so `localhost.evil.example` would read as local and drop `Secure`.\n */\nexport function isSecureRequest(request: Request): boolean {\n const forwarded = request.headers.get(\"x-forwarded-proto\")?.split(\",\")[0]?.trim();\n return forwarded ? forwarded === \"https\" : new URL(request.url).protocol === \"https:\";\n}\n\n/**\n * Whether a `Redirect` directive names somewhere outside the router — an\n * absolute http(s) URL or a protocol-relative one — and so has to leave the\n * page rather than be looked up as a route.\n *\n * Only those two shapes. The value goes to `location.replace`, and *any*\n * scheme that parses would include `javascript:`, which runs in this document\n * rather than navigating away from it: an app passing a user-influenced value\n * to `Redirect.external` would be handing out same-origin script execution.\n * Anything else falls through to the router, which cannot leave the origin.\n */\nexport function isExternalRedirect(path: string | null | undefined): boolean {\n return /^(https?:\\/\\/|\\/\\/)/i.test(path ?? \"\");\n}\n",
@@ -62,7 +62,7 @@
62
62
  "// @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",
63
63
  "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",
64
64
  "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",
65
- "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 { viewRouteConfigDefaults, type LocaleRouting, type ViewRouteConfig } from \"./config\";\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 { 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 { AuthViewRouter } from \"../../auth/routes\";\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 { injectIslands, spliceIslandSlots, type IslandResolver } from \"./staticDocument\";\nimport { applyStaticCacheControl, staticCookiePolicy } from \"./staticCache\";\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\nconst themeScript = `\n!function(){try{var d=document.documentElement,c=d.classList;\nc.remove('light','dark');\nvar e=localStorage.getItem('theme');\nif('system'===e||(!e&&'system'===defaultTheme)){\n var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);\n if(m.media!==t||m.matches){d.style.colorScheme='dark';c.add('dark')}\n else{d.style.colorScheme='light';c.add('light')}\n}else if(e){\n c.add(e||'')\n}}catch(e){}}()\n`;\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.`,\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 * 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 \"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 constructor(config: ViewRouteConfig) {\n const defaults = viewRouteConfigDefaults();\n\n this.partialRendering = config.partialRendering ?? defaults.partialRendering;\n this.localeRouting = config.localeRouting ?? defaults.localeRouting;\n\n this.hooks = {\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\": AuthViewRouter,\n };\n this.flatViewRoutes = createFlatViewRoutes(routes);\n assertNoReservedRoutePaths(Object.keys(this.flatViewRoutes));\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 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 }) {\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 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(html, collector, args.resolveIsland, process.env.NODE_ENV !== \"production\"),\n { status: 200, 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 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 url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta,\n isOgRequest,\n appId,\n features,\n staticView,\n } = props;\n\n const pageDataKey = pathname.replace(`/${urlLocaleSegment}`, \"\");\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 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 const {\n bootstrapModules = [],\n loaders,\n getStyles,\n viewImportMap,\n cssManifest,\n ogMap,\n viewModules,\n clientEntry,\n modulePreloadManifest,\n assetBase,\n resolveIsland,\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 });\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\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 const styles = await getStyles(currentViews);\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 createElement(\"script\", {\n key: \"theme-script\",\n dangerouslySetInnerHTML: {\n __html: themeScript,\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 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 // 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\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 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 staticView = match.route.static;\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 const staticCookies = staticCookiePolicy(staticView);\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. Middleware may still 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 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 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\n const fileOutput: FileOutput | undefined = (viewData as any).FILE;\n if (fileOutput) {\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n\n try {\n await this.onRequestEnd(httpRequest);\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n return await createFileResponse(fileOutput, headers);\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 if (!noStream && !(staticView && currentPathName)) {\n headers.append(\"Vary\", \"User-Agent\");\n }\n\n // A missing record turned a static route into the app's hydrated\n // `404`, which gets the cookies a hydrated page does.\n const staticDocument = Boolean(staticView && currentPathName);\n if (!staticDocument || staticCookies.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 || staticCookies.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 || staticCookies.session,\n });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n if (staticDocument) {\n applyStaticCacheControl(headers, staticView!);\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 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 staticView: currentPathName ? staticView : undefined,\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",
65
+ "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 { viewRouteConfigDefaults, type LocaleRouting, type ViewRouteConfig } from \"./config\";\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 { 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 { AuthViewRouter } from \"../../auth/routes\";\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 IslandResolver,\n type StaticNavigationMarker,\n} from \"./staticDocument\";\nimport { applyStaticCacheControl, staticCookiePolicy } from \"./staticCache\";\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\nconst themeScript = `\n!function(){try{var d=document.documentElement,c=d.classList;\nc.remove('light','dark');\nvar e=localStorage.getItem('theme');\nif('system'===e||(!e&&'system'===defaultTheme)){\n var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);\n if(m.media!==t||m.matches){d.style.colorScheme='dark';c.add('dark')}\n else{d.style.colorScheme='light';c.add('light')}\n}else if(e){\n c.add(e||'')\n}}catch(e){}}()\n`;\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.`,\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 * 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 \"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 constructor(config: ViewRouteConfig) {\n const defaults = viewRouteConfigDefaults();\n\n this.partialRendering = config.partialRendering ?? defaults.partialRendering;\n this.localeRouting = config.localeRouting ?? defaults.localeRouting;\n\n this.hooks = {\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\": AuthViewRouter,\n };\n this.flatViewRoutes = createFlatViewRoutes(routes);\n assertNoReservedRoutePaths(Object.keys(this.flatViewRoutes));\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 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 }) {\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({ navigation })`: what the runtime compares before swapping\n // a fetched page in. Inside the `try`, so a `version` that throws still\n // completes the request (the `finally`) like a failed render.\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 navigation = {\n identity: [staticView.layout ?? \"\", args.buildId ?? \"\", version].join(\"|\"),\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 ),\n { status: 200, 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 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 url,\n user,\n viewData,\n breadcrumbs,\n urlLocaleSegment,\n meta,\n isOgRequest,\n appId,\n features,\n staticView,\n } = props;\n\n const pageDataKey = pathname.replace(`/${urlLocaleSegment}`, \"\");\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 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 });\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\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 const styles = await getStyles(currentViews);\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 createElement(\"script\", {\n key: \"theme-script\",\n dangerouslySetInnerHTML: {\n __html: themeScript,\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 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 // 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\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 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 staticView = match.route.static;\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 const staticCookies = staticCookiePolicy(staticView);\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. Middleware may still 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 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 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\n const fileOutput: FileOutput | undefined = (viewData as any).FILE;\n if (fileOutput) {\n for (const cookie of cookies) {\n headers.append(\"Set-Cookie\", cookie.toString());\n }\n\n try {\n await this.onRequestEnd(httpRequest);\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n return await createFileResponse(fileOutput, headers);\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 if (!noStream && !(staticView && currentPathName)) {\n headers.append(\"Vary\", \"User-Agent\");\n }\n\n // A missing record turned a static route into the app's hydrated\n // `404`, which gets the cookies a hydrated page does.\n const staticDocument = Boolean(staticView && currentPathName);\n if (!staticDocument || staticCookies.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 || staticCookies.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 || staticCookies.session,\n });\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n }\n\n if (staticDocument) {\n applyStaticCacheControl(headers, staticView!);\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 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 staticView: currentPathName ? staticView : undefined,\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",
66
66
  "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",
67
67
  "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",
68
68
  "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",
@@ -84,7 +84,8 @@
84
84
  "/**\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",
85
85
  "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",
86
86
  "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\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}\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 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 return known !== -1 ? known : collector.islands.push({ module: key, export: exportName, load }) - 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",
87
- "import { createHash } from \"node:crypto\";\nimport {\n ISLAND_SLOT_ATTRIBUTE,\n ISLAND_SLOT_TAG,\n ISLAND_SLOT_TEMPLATE_ATTRIBUTE,\n type StaticRenderCollector,\n} from \"../../client/islands\";\nimport { htmlSafeJson } from \"./streamQueryInjection\";\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.\n */\nexport type IslandAsset = { src: string; preload: 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 island loader, inlined into a static document that uses islands.\n *\n * Kept byte-for-byte constant (the per-page island table travels in a\n * separate `<script type=\"application/json\">`, which a Content Security Policy\n * does not treat as script), so a strict policy can allow it by hash:\n * `script-src 'sha256-…'` with `ISLAND_LOADER_CSP_HASH`. Everything it loads\n * is a plain `import()` of a same-origin (or asset-base) file.\n *\n * The table is `{ i: [{ s: entry URL, e: export, l: load }] }` and each\n * marker's `data-island` indexes `i`. Per marker, on its schedule: import the\n * island's entry (the module as `m`, the runtime's `h`), then\n * `h(marker, m[export])`, which calls `hydrateRoot`. A failure is logged and\n * leaves the server-rendered markup in place.\n */\nexport const ISLAND_LOADER_SOURCE =\n 'const d=document,c=JSON.parse(d.getElementById(\"gemi-islands\").textContent),' +\n \"w=f=>(window.requestIdleCallback||setTimeout)(f),\" +\n \"m=(e,o)=>{if(!e.g){e.g=1;import(o.s).then(x=>x.h(e,x.m[o.e])).catch(r=>console.error(r))}};\" +\n 'for(const e of d.querySelectorAll(\"gemi-island\")){const o=c.i[e.dataset.island];if(!o)continue;' +\n 'if(o.l==\"eager\")m(e,o);else if(o.l==\"idle\"||!window.IntersectionObserver||!e.children.length)w(()=>m(e,o));' +\n \"else{const v=new IntersectionObserver(n=>{if(n.some(x=>x.isIntersecting)){v.disconnect();m(e,o)}});for(const k of e.children)v.observe(k)}}\";\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 * The dev loader: the React Refresh preamble first (`@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_ISLAND_LOADER_SOURCE =\n 'await import(\"/refresh.js\").catch(()=>{});await import(\"/@vite/client\").catch(()=>{});' +\n ISLAND_LOADER_SOURCE;\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, \"&amp;\").replace(/\"/g, \"&quot;\").replace(/</g, \"&lt;\");\n\n/**\n * Adds the island loader to a settled static document, only when the render\n * recorded an island, so a page without one keeps no script at all.\n *\n * Eager islands get `modulepreload`s in the head for their entry's whole\n * static import closure (React included); lazy ones are fetched when their\n * schedule fires, so nothing about them is announced up front.\n *\n * Without a resolver (a test rendering through `app.fetch`), the markup is\n * the whole result: nothing is injected and nothing is logged.\n */\nexport function injectIslands(\n html: string,\n collector: StaticRenderCollector,\n resolveIsland: IslandResolver | undefined,\n dev: boolean,\n): string {\n if (collector.islands.length === 0 || !resolveIsland) {\n return html;\n }\n\n const preloads = new Set<string>();\n const 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 }\n return { s: asset.src, e: island.export, l: island.load };\n });\n\n if (entries.every((entry) => entry === null)) {\n return html;\n }\n\n const head = [...preloads].map((href) => `<link rel=\"modulepreload\" href=\"${attr(href)}\"/>`).join(\"\");\n const body =\n `<script type=\"application/json\" id=\"${ISLAND_DATA_ID}\">${htmlSafeJson({ i: entries })}</script>` +\n `<script type=\"module\">${dev ? DEV_ISLAND_LOADER_SOURCE : ISLAND_LOADER_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",
87
+ "import { createHash } from \"node:crypto\";\nimport {\n ISLAND_SLOT_ATTRIBUTE,\n ISLAND_SLOT_TAG,\n ISLAND_SLOT_TEMPLATE_ATTRIBUTE,\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\";\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.\n */\nexport type IslandAsset = { src: string; preload: 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 * `'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, \"&amp;\").replace(/\"/g, \"&quot;\").replace(/</g, \"&lt;\");\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/**\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); lazy ones are fetched when their\n * schedule fires, so 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 */\nexport function injectIslands(\n html: string,\n collector: StaticRenderCollector,\n resolveIsland: IslandResolver | undefined,\n dev: boolean,\n navigation?: StaticNavigationMarker,\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 }\n return { s: asset.src, e: island.export, l: island.load };\n });\n }\n const hasIslands = entries.some((entry) => entry !== null);\n\n if (!hasIslands && !navigation) {\n return html;\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 const source = navigation ? STATIC_NAVIGATION_SOURCE : ISLAND_LOADER_SOURCE;\n const body =\n (hasIslands\n ? `<script type=\"application/json\" id=\"${ISLAND_DATA_ID}\">${htmlSafeJson({ i: entries })}</script>`\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",
88
+ "// 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",
88
89
  "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",
89
90
  "import { refusal } from \"../../http/Error\";\n\n/**\n * What a client gets when a request's ORM lookup matched nothing.\n *\n * `findUniqueOrThrow`, `findFirstOrThrow`, and `update`/`delete` on a missing\n * row throw `RecordNotFoundError`, which is a plain `Error` — so a route that\n * looks a record up by an id taken from the URL used to answer 500 for an id\n * that simply does not exist. The record being absent is what the client asked\n * about, not a server failure, and 404 is the answer to it. Laravel does the\n * same with `ModelNotFoundException`.\n *\n * Not the error's message: that is `No Page found (Page.findUniqueOrThrow)`,\n * which names the model and the operation. A 404 is handed to anyone who can\n * guess a url, so it says only that there is nothing here — the same body\n * `FileNotFoundError` already answers with, and the same one the router uses\n * for a path that matches no route at all. The developer still gets the real\n * error in the log.\n */\nexport function notFoundResponse() {\n const body = JSON.stringify({ error: refusal(\"not_found\", \"Not found\", 404) });\n // Sized, so `isOpenEndedBody` ends the request when it is returned. Without\n // the length it would wait for the body to be read, and an in-process caller\n // that only checks the status would never end it. (Same reason as\n // `policyDeniedResponse`.)\n return new Response(body, {\n status: 404,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Content-Length\": String(Buffer.byteLength(body)),\n // A 404 for a record turns into a 200 the moment the record is created,\n // and the url does not change when it does. Nothing may replay this.\n \"Cache-Control\": \"no-store\",\n },\n });\n}\n",
90
91
  "import { AuthApiRouter } from \"../../auth/routes\";\nimport { ACCESS_TOKEN } from \"../../auth/accessToken\";\nimport type { User } from \"../../auth/types\";\nimport type { McpGrant, ProgressSink } from \"../../http/modelOriginated\";\nimport { ApiRouter, HttpRequest } from \"../../http\";\nimport { GEMI_REQUEST_BREAKER_ERROR, refusal } from \"../../http/Error\";\nimport { HttpResponse, isHttpResponse } from \"../../http/HttpResponse\";\nimport { I18nRouter } from \"../../i18n/I18nRouter\";\nimport { type CarriedContext, RequestContext } from \"../../http/requestContext\";\nimport { ImageOptimizationRouter } from \"../image-optimization/ImageManager\";\nimport { LoggingRouter } from \"../logging/LoggingRouter\";\nimport { MiddlewareRegistry } from \"../middleware/MiddlewareRegistry\";\nimport { apiRouteConfigDefaults, type ApiRouteConfig } from \"./config\";\nimport { createFlatApiRoutes, type FlatApiRoutes } from \"./createFlatApiRoutes\";\nimport { ViewRouteDispatcher } from \"./ViewRouteDispatcher\";\nimport { Translator } from \"../../i18n/Translator\";\nimport { app } from \"../../foundation/app\";\nimport { markModelOriginated } from \"../../http/modelOriginated\";\nimport { setRequestDomain } from \"../../http/requestDomain\";\nimport { clientIp } from \"../../http/RateLimitMiddleware\";\nimport { ormContext } from \"../../orm/context\";\nimport { Log } from \"../../facades/Log\";\nimport { isPolicyDeniedError, isRecordNotFoundError } from \"../../orm/errors\";\nimport { apiPath } from \"./apiPath\";\nimport { notFoundResponse } from \"./notFound\";\nimport { policyDeniedResponse } from \"./policyDenied\";\n\nclass DebugRouter extends ApiRouter {\n routes = {\n \"/api-routes\": this.get(() => {\n const flatroutes = app(ApiRouteDispatcher).flatRoutes;\n const out = [];\n for (const [path, methods] of Object.entries(flatroutes)) {\n for (const [method, handler] of Object.entries(methods)) {\n const { exec, middleware } = handler;\n out.push({ path, method, middleware });\n }\n }\n return out;\n }),\n \"/view-routes\": this.get(() => {\n const flatroutes = app(ViewRouteDispatcher).flatViewRoutes;\n const out = [];\n for (const [path, { middleware, viewPath }] of Object.entries(flatroutes)) {\n out.push({ path, method: \"GET\", viewPath, middleware });\n }\n return out;\n }),\n };\n}\n\nexport type InProcessMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\n/**\n * Credentials of the app's own that a `dispatchAs` request carries beside\n * gemi's access token: a cookie an app middleware reads (an anonymous owner's\n * id), or a header the app signed for this call (a short-lived grant).\n *\n * A `null` or `undefined` value is skipped, so `req.cookies.get(\"x\")` can be\n * passed as it is. The values are sent as given — a cookie value is not\n * encoded, the same as `HttpRequest.cookies` reads it.\n */\nexport type DispatchCredentials = {\n headers?: Record<string, string | null | undefined>;\n cookies?: Record<string, string | null | undefined>;\n};\n\nexport type DispatchAsOptions = {\n credentials?: DispatchCredentials;\n /**\n * Dispatches as this user instead of copying the initiator's access token\n * (#762): the user is on the request context before the route's middleware\n * runs, as a global middleware's would be, so `auth` passes and policies\n * see them. For a caller whose identity was verified some other way than a\n * gemi session — a remote MCP client's OAuth token or API key — which has\n * no session token to copy, and whose own credential must not be passed on.\n *\n * Only trusted code builds one: it is exactly as powerful as an app\n * middleware calling `setUser`, and gemi's only writer is the MCP registry,\n * from a principal a caller resolver verified. With it, nothing of the\n * initiator's credentials is copied — not its `access_token` cookie or\n * header — so a request that carried both cannot run as the session's user.\n * `grant` is what `req.mcpGrant()` answers on the dispatched request.\n */\n identity?: DispatchIdentity;\n /** Aborts the dispatched request: its `req.signal`, for a route that honours it. */\n signal?: AbortSignal;\n /**\n * Receives what the route reports with `req.reportProgress` — a remote MCP\n * client's `notifications/progress`.\n */\n progress?: ProgressSink;\n};\n\nexport type DispatchIdentity = {\n user: User;\n grant?: McpGrant;\n};\n\n/**\n * Headers `credentials` may not set. Each one is either gemi's identity, which\n * stays the initiator's, or something `dispatchAs` writes itself: the body's\n * framing, the cookie jar it builds, the host the request is routed by, and\n * the agent a session is bound to. `x-forwarded-*` and `forwarded` are refused\n * as a prefix and a name: they are how a proxy describes a client, and the\n * synthetic request has no proxy in front of it.\n */\nconst RESERVED_HEADERS = new Set([\n ACCESS_TOKEN,\n \"cookie\",\n \"content-type\",\n \"content-length\",\n \"transfer-encoding\",\n \"connection\",\n \"host\",\n \"user-agent\",\n \"forwarded\",\n]);\n\n/** RFC 6265's cookie-name: an HTTP token. */\nconst COOKIE_NAME = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\n/** RFC 6265's cookie-octets: no control characters, whitespace, `\"`, `,`, `;` or a backslash. */\nconst COOKIE_VALUE = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]*$/;\n\nfunction applyCredentials(\n headers: Headers,\n cookies: string[],\n credentials: DispatchCredentials,\n asIdentity: boolean,\n) {\n for (const [name, value] of Object.entries(credentials.headers ?? {})) {\n if (value === undefined || value === null) continue;\n const lower = name.toLowerCase();\n if (RESERVED_HEADERS.has(lower) || lower.startsWith(\"x-forwarded-\")) {\n throw new Error(\n `dispatchAs: credentials may not set the \"${name}\" header. The access token stays the initiator's, and the request's framing is dispatchAs's own.`,\n );\n }\n // Dispatched as a verified identity, the initiator is a remote MCP\n // client's request, and its Authorization is a token for the MCP\n // endpoint: handing it on to a route is the token passthrough the MCP\n // authorization spec forbids, whichever hook returns it.\n if (asIdentity && lower === \"authorization\") {\n throw new Error(\n 'dispatchAs: credentials may not set \"Authorization\" on a call dispatched as an identity. The caller\\'s token is for the MCP endpoint and is never passed on.',\n );\n }\n headers.set(name, value);\n }\n for (const [name, value] of Object.entries(credentials.cookies ?? {})) {\n if (value === undefined || value === null) continue;\n if (name === ACCESS_TOKEN) {\n throw new Error(\n `dispatchAs: credentials may not set the \"${ACCESS_TOKEN}\" cookie. The access token stays the initiator's.`,\n );\n }\n if (!COOKIE_NAME.test(name) || !COOKIE_VALUE.test(value)) {\n throw new Error(`dispatchAs: \"${name}\" is not a cookie a Cookie header can carry.`);\n }\n cookies.push(`${name}=${value}`);\n }\n}\n\n/**\n * The same response, with a body that calls `end` once when it is read to the\n * end, errors, or is cancelled — Bun cancels it when the client disconnects.\n * Once, and not once per path: a cancel lands while a read is in flight, and\n * that read then finishes too.\n *\n * Status, status text and every header are carried over, `Set-Cookie`s the\n * context merged in included. A body nobody reads or cancels never ends; the\n * server always does one or the other, and the store is collected with it.\n */\nfunction endWhenBodyEnds(response: Response, end: () => void): Response {\n const reader = response.body!.getReader();\n let ended = false;\n const endOnce = () => {\n if (ended) {\n return;\n }\n ended = true;\n try {\n end();\n } catch (err) {\n // An `onRequestEnd` that throws here would error a body the client has\n // already read in full. Nobody is left to answer a 500 to.\n console.error(err);\n }\n };\n\n const body = new ReadableStream<Uint8Array>(\n {\n async pull(controller) {\n let chunk: Awaited<ReturnType<typeof reader.read>>;\n try {\n chunk = await reader.read();\n } catch (err) {\n endOnce();\n controller.error(err);\n return;\n }\n if (chunk.done) {\n // Synchronous when nothing is pending, so whoever reads to the end\n // finds `onRequestEnd` already run when they see `done`. The order\n // against close() does not decide that — the reader resumes in a\n // later microtask either way — the synchronous end does.\n endOnce();\n try {\n controller.close();\n } catch {\n // Already cancelled; the cancel path has ended it.\n }\n return;\n }\n try {\n controller.enqueue(chunk.value);\n } catch {\n // Cancelled while this read was in flight.\n }\n },\n async cancel(reason) {\n try {\n await reader.cancel(reason);\n } finally {\n endOnce();\n }\n },\n },\n // Read the handler's stream only as fast as the client does.\n { highWaterMark: 0 },\n );\n\n return new Response(body, {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n}\n\n/**\n * A RequestBreakerError's `api` payload as a Response, from a middleware or a\n * handler.\n *\n * `no-store` unless the breaker says otherwise, as `policyDeniedResponse` does:\n * the context's headers fill this Response's gaps, and `cache` puts the route's\n * Cache-Control there for the success it expected. A 429, 401 or 403 that\n * inherited `public, max-age=864000` would let a shared cache answer one\n * client's rejection to everyone for ten days.\n */\nexport function breakResponse(payload: {\n status?: number;\n data?: unknown;\n headers?: Record<string, string>;\n}) {\n const { status = 400, data, headers: own } = payload;\n const headers = new Headers({ \"Content-Type\": \"application/json\", ...own });\n if (!headers.has(\"Cache-Control\")) {\n headers.set(\"Cache-Control\", \"no-store\");\n }\n return new Response(JSON.stringify(data), { status, headers });\n}\n\n/**\n * Copies request-context headers and cookies onto a Response a handler built\n * itself, or a middleware's break or policy 403, without disturbing what that\n * Response already set. Also what puts a global middleware's context on the\n * response a request ends with (`globalMiddleware.ts`).\n */\nexport function mergeContextIntoResponse(\n response: Response,\n headers: Headers,\n cookies: Set<string>,\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 const entries: [string, string][] = [];\n headers?.forEach((value, key) => entries.push([key, value]));\n const setCookies = [\n ...(typeof headers?.getSetCookie === \"function\" ? headers.getSetCookie() : []),\n ...Array.from(cookies ?? []),\n ];\n\n if (entries.length === 0 && setCookies.length === 0) {\n return response;\n }\n\n const apply = (target: Headers) => {\n for (const [key, value] of entries) {\n if (key.toLowerCase() === \"set-cookie\") {\n continue;\n }\n if (!target.has(key)) {\n target.set(key, value);\n }\n }\n for (const cookie of setCookies) {\n target.append(\"Set-Cookie\", cookie);\n }\n };\n\n try {\n // Mutating in place keeps the original Response object, and with it a\n // sized Blob body — rebuilding turns that into a stream, which costs the\n // Content-Length that Bun only emits for known-length bodies.\n apply(response.headers);\n return response;\n } catch {\n // A Response from fetch() — this.proxy() routes — has immutable headers.\n const merged = new Headers(response.headers);\n apply(merged);\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers: merged,\n });\n }\n}\n\nexport class ApiRouteDispatcher {\n static token = \"router.api\";\n\n flatRoutes: FlatApiRoutes = {};\n\n private readonly onRequestStart: NonNullable<ApiRouteConfig[\"onRequestStart\"]>;\n private readonly onRequestEnd: NonNullable<ApiRouteConfig[\"onRequestEnd\"]>;\n private readonly onRequestFail: NonNullable<ApiRouteConfig[\"onRequestFail\"]>;\n\n constructor(config: ApiRouteConfig) {\n const defaults = apiRouteConfigDefaults();\n\n this.onRequestStart = config.onRequestStart ?? defaults.onRequestStart;\n this.onRequestEnd = config.onRequestEnd ?? defaults.onRequestEnd;\n this.onRequestFail = config.onRequestFail ?? defaults.onRequestFail;\n\n this.flatRoutes = createFlatApiRoutes({\n \"/\": config.rootRouter,\n \"/auth\": AuthApiRouter,\n \"/__gemi__/services/i18n\": I18nRouter,\n \"/__gemi__/services/logs\": LoggingRouter,\n \"/__gemi__/services/image\": ImageOptimizationRouter,\n \"/__gemi__/debug\": DebugRouter,\n });\n }\n\n public getRouteHandlerAndParams(req: Request) {\n const url = new URL(req.url);\n\n const routePath = apiPath(url.pathname);\n\n let params: Record<string, any> = {};\n let path: string;\n for (const [_path] of Object.entries(this.flatRoutes)) {\n try {\n const pattern = new URLPattern({ pathname: _path });\n if (pattern.test({ pathname: routePath })) {\n path = _path;\n params = pattern.exec({ pathname: routePath })?.pathname.groups!;\n break;\n }\n } catch (err) {\n console.error(err);\n // Do something\n }\n }\n return { params, path };\n }\n\n async runRouteMiddleware(path: string, httpRequest: HttpRequest) {\n const routeHandler = this.flatRoutes[path];\n const middlewares = routeHandler[httpRequest.rawRequest.method].middleware;\n try {\n await app(MiddlewareRegistry).runMiddleware(middlewares);\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n // Unconditionally: every request here is an api request, whatever its\n // url says. A break that returned nothing would let the handler run\n // after the middleware rejected the request.\n return breakResponse(err.payload.api);\n } else {\n // Before `onRequestFail`, for the reason a `RequestBreakerError` is:\n // the record not existing is the answer to the request, not a failure\n // of it. A middleware that loads the record the route is about — the\n // membership row, the tenant — asks the same question the handler does.\n if (isRecordNotFoundError(err)) {\n return notFoundResponse();\n }\n this.onRequestFail(httpRequest, err);\n console.error(err);\n // A middleware can load a policied model, a membership check say, and\n // its denial is the same refusal as the handler's.\n if (isPolicyDeniedError(err)) {\n return policyDeniedResponse();\n }\n throw err;\n }\n }\n }\n\n async getRouteData(path: string): Promise<any> {\n const routeHandler = this.flatRoutes[path];\n\n const ctx = RequestContext.getStore();\n const exec = routeHandler[ctx.req.rawRequest.method].exec ?? (() => Promise.resolve({}));\n\n let data = {};\n try {\n data = await exec();\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n return breakResponse(err.payload.api);\n }\n // Before `onRequestFail` and the log, unlike a policy denial below. A\n // route keyed on an id from the url answers this for every stale link\n // and every crawler, so reporting it would drown the failures that are\n // the server's. It is a 404 in the access log like any other.\n if (isRecordNotFoundError(err)) {\n return notFoundResponse();\n }\n this.onRequestFail(ctx.req, err);\n console.error(err);\n // Answered here rather than in `server/`, so an in-process `dispatchAs`\n // call gets the same 403 a client does. Left to throw, it became the\n // server's 500 with the policy's message as its body.\n if (isPolicyDeniedError(err)) {\n return policyDeniedResponse();\n }\n throw err;\n }\n\n return data;\n }\n\n /**\n * The matched route, not the URL: a query value that mentions `/__gemi__`\n * would otherwise keep an app route out of onRequestStart/End.\n */\n private isFrameworkRoute(path: string) {\n return path.startsWith(\"/__gemi__\");\n }\n\n /**\n * How every request that started ends: `onRequestEnd`, then `destroy()`.\n * One place, so an exit cannot answer without it — a break that skipped it\n * left request logging with a start and no end for exactly the rejected\n * requests. `ctx` is passed rather than read so a caller that ends the\n * request later, outside the request's async scope, can still reach it.\n *\n * Work handed to `ctx.waitUntil` — an agent run the client may have left —\n * holds both back until it settles. With none, the end is not deferred, as\n * it always was, so a plain JSON response has ended before it is returned.\n * The hold applies on every path, JSON included: a route that starts a run\n * and answers without waiting for it ends when the run does, so a duration\n * logged in `onRequestEnd` spans the run, not the response. That is the\n * point — the run's tools need the user — but it is not \"response sent\".\n *\n * The hook is awaited, since destroy() empties the store it reads from, and\n * a hook that fails is logged rather than thrown: it must not turn the\n * response it was told about into a 500, nor skip the destroy() after it.\n */\n private async endRequest(\n ctx: ReturnType<typeof RequestContext.getStore>,\n httpRequest: HttpRequest,\n path: string,\n ) {\n const end = async () => {\n try {\n if (!this.isFrameworkRoute(path)) {\n await this.onRequestEnd(httpRequest);\n }\n } catch (err) {\n Log.error(err?.message ?? 'Error in \"onRequestEnd\" event handler', {\n err: JSON.stringify(err),\n });\n } finally {\n // A hook that throws still releases the user, cookies and headers.\n ctx.destroy();\n }\n };\n if (!ctx.hasPendingWork()) {\n await end();\n return;\n }\n void ctx\n .whenIdle()\n .then(end)\n .catch((err) => {\n // The response is long gone; there is no one left to answer a 500 to.\n console.error(err);\n });\n }\n\n /**\n * Whether a handler's Response is still running code after it is returned.\n * A body with no declared length is: an SSE stream, an agent run, anything\n * built on a `ReadableStream`, all of which may read `req.ctx()` between\n * chunks. A declared `Content-Length` means the bytes were decided before\n * the handler returned — every sized file `this.stream()` serves has one —\n * and those are left alone, because wrapping a body costs it that header:\n * Bun sends any stream body chunked, and a file then loses its length and\n * the server's sendfile path. The only way to see a body end is to wrap it,\n * and Bun gives no way to tell a stream body from a string or a Blob, so a\n * handler's own `new Response(\"…\")` is wrapped too; its end then waits for\n * the body to be read.\n *\n * A HEAD response is never open-ended, whatever its body: Bun.serve drops\n * that body without reading or cancelling it, so a wrapped one would never\n * end, and the store would keep the user until it was collected. A stream\n * route answers HEAD, and its 404, a breaker's JSON or a handler's own\n * Response can all carry an unsized body there.\n *\n * `Content-Length` is checked before `response.body`, and the order matters:\n * on Bun 1.3.14 on Linux, reading `.body` of a Response built on a sliced\n * Blob — a `this.stream()` Range response — turns it into a stream that runs\n * past the slice's end, and Bun.serve then sends the rest of the object\n * under a 206 (#725).\n */\n private isOpenEndedBody(request: Request, response: Response) {\n return (\n request.method !== \"HEAD\" && !response.headers.has(\"Content-Length\") && response.body !== null\n );\n }\n\n async handleApiRequest(req: Request, carried?: CarriedContext | null) {\n const { params, path } = this.getRouteHandlerAndParams(req);\n\n const routeHandler = this.flatRoutes[path];\n\n if (!routeHandler || !routeHandler[req.method]) {\n return new Response(JSON.stringify({ error: refusal(\"not_found\", \"Not found\", 404) }), {\n status: 404,\n });\n }\n\n const httpRequest = new HttpRequest(req, params, \"api\", path);\n if (!this.isFrameworkRoute(path)) {\n this.onRequestStart(httpRequest);\n }\n return await RequestContext.run(httpRequest, async () => {\n const ctx = RequestContext.getStore();\n // Set once this request's end has run, been scheduled, or been handed to\n // a streaming body, so the throw path below never ends it twice.\n let endDecided = false;\n const end = async () => {\n endDecided = true;\n await this.endRequest(ctx, httpRequest, path);\n };\n\n try {\n const translator = app(Translator);\n if (translator.isEnabled) {\n const locale = translator.detectLocale(httpRequest);\n ctx.setLocale(locale);\n }\n\n ctx.setRequest(httpRequest);\n // Before the route's middleware, whose own `body-limit` replaces it.\n app(MiddlewareRegistry).applyDefaultBodyLimit(req);\n const middlewareResponse = await this.runRouteMiddleware(path, httpRequest);\n\n if (middlewareResponse instanceof Response) {\n // A breaker's or a policy denial's Response carries what the earlier\n // middleware put on the context, as a handler's does. Returned as is,\n // a 401 or 429 after `cors` had no CORS headers, so the browser\n // reported an opaque CORS failure instead of the status, and a\n // Set-Cookie set before the break was lost. Merged before the end,\n // which destroys the context's headers and cookies.\n const response = mergeContextIntoResponse(middlewareResponse, ctx.headers, ctx.cookies);\n await end();\n return response;\n }\n const data = await this.getRouteData(path);\n\n const headers = ctx.headers;\n const cookies = ctx.cookies;\n\n if (data instanceof Response) {\n // A handler owning its own Response — stream, file and proxy routes,\n // and the RequestBreakerError path in getRouteData — still has to carry\n // what the request context accumulated: headers set by middleware via\n // ctx.setHeaders (CORS, Cache-Control) and any Set-Cookie. The\n // response's own headers win; the context only fills gaps.\n const response = mergeContextIntoResponse(data, headers, cookies);\n if (this.isOpenEndedBody(req, response)) {\n // Ended by its body rather than here: a streaming agent route\n // returns before any of its tools run, and ending now would destroy\n // the `user` every one of them reads.\n const streamed = endWhenBodyEnds(response, () =>\n this.endRequest(ctx, httpRequest, path),\n );\n endDecided = true;\n return streamed;\n }\n await end();\n return response;\n }\n\n // A plain return is `HttpResponse.json(data)`: one path writes the\n // context's headers and cookies onto both, and an `HttpResponse` only\n // adds its status and headers on top of them.\n const response = (isHttpResponse(data) ? data : HttpResponse.json(data)).toResponse(\n headers,\n cookies,\n );\n\n await end();\n\n return response;\n } catch (err) {\n // A middleware or handler that throws something other than a break or\n // a policy denial has already run onRequestFail, and its error goes on\n // to the server's 500 (or back to a dispatchAs caller). A throw from\n // before the middleware, such as detectLocale, skips onRequestFail but\n // ends here all the same. Either way the request still ends: without\n // this, an app pairing onRequestStart with onRequestEnd saw a start and\n // no end for exactly the requests that crashed, and the store kept its\n // user and cookies until collected.\n if (!endDecided) {\n try {\n await end();\n } catch (endErr) {\n // A throwing onRequestEnd must not replace the error the server\n // renders; destroy() has run regardless.\n console.error(endErr);\n }\n }\n throw err;\n }\n }, carried);\n }\n\n /**\n * Runs an api route in-process, as the user who made `initiator`, through\n * exactly what a client's request to `path` would go through: route match,\n * `onRequestStart`, middleware, handler, `onRequestEnd`. Answers the\n * `Response` that client would get, and throws what `handleApiRequest` throws\n * — the server's 500 rendering lives in `server/`, not here.\n *\n * It must never reach for a flat route's `exec`, however much shorter that\n * is: `exec` is the handler alone, with no auth, no policies and no rate\n * limit, and a tool call that could do more than the same user's HTTP request\n * is the one thing the MCP router promises cannot happen.\n *\n * `initiator` is an argument rather than `RequestContext.getStore().req` so a\n * caller with no ambient gemi request — a remote MCP client — only has to\n * produce one to use this. Only its origin and credentials are read. Every\n * other header describes the initiator's own body and transport:\n * `content-type` would mis-parse this body, and a copied cookie jar would\n * hand the route state nobody decided to give it. `x-forwarded-for` is left\n * behind too: it is client-written, and copying it would pass it off as part\n * of a request the server built. The initiator's address is resolved here\n * with `clientIp` instead and carried beside the model-originated marker, so\n * a tool call spends the rate-limit budget of the user who started the run\n * rather than one `unknown:<route>` budget shared by every user's agent.\n *\n * `path` is the route's path as the app routes it, without `/api`, with its\n * params filled in and any query string attached — `/42/orders?status=open`.\n * A param from a model must be `encodeURIComponent`ed by the caller: a path\n * that URL parsing would rewrite — a `..` segment walking out of the route —\n * is refused rather than resolved, as is anything under `/__gemi__`, which\n * skips the lifecycle hooks and is not an app route. So is `/auth`: its\n * routes are the framework's, and a tool call that signed out the session\n * that started the run, or signed in to a cookie nobody keeps, is never what\n * a model meant.\n *\n * `options.credentials` adds the app's own credentials to the request — a\n * cookie or a signed header its middleware reads — beside the access token,\n * never instead of it. Nothing is copied from the initiator on the app's\n * behalf: the app names each value, so an app that wants a cookie of the\n * initiator's forwarded reads it and passes it. The names that would swap\n * the identity or the framing are refused with a throw (see\n * `RESERVED_HEADERS`). The app's middleware still decides what a credential\n * is worth, so this grants nothing a direct request carrying the same\n * values would not get.\n */\n async dispatchAs(\n initiator: HttpRequest<any, any>,\n method: InProcessMethod,\n path: string,\n body?: FormData | Record<string, unknown>,\n options?: DispatchAsOptions,\n ): Promise<Response> {\n const origin = new URL(initiator.rawRequest.url).origin;\n const url = new URL(`${origin}/api${path}`);\n const expectedPathname = `/api${path.split(/[?#]/)[0]}`;\n if (\n !path.startsWith(\"/\") ||\n url.origin !== origin ||\n url.pathname !== expectedPathname ||\n url.hash !== \"\" ||\n url.pathname.startsWith(\"/api/__gemi__\") ||\n url.pathname === \"/api/auth\" ||\n url.pathname.startsWith(\"/api/auth/\")\n ) {\n throw new Error(\n `dispatchAs: \"${path}\" is not an app api path. Pass the route's own path, without \"/api\", with every param encoded.`,\n );\n }\n\n // gemi's own token, on both transports, is the only identity carried. A\n // user the initiator's global middleware signed in some other way — an\n // SSO header, an API key — is not: no global middleware runs for this\n // request and nothing from the initiator's context crosses over, so its\n // `auth` routes refuse such a user, failing closed — unless the app passes\n // that credential itself as `options.credentials`, which is the app's\n // decision to make, value by value.\n const identity = options?.identity;\n if (identity !== undefined && (typeof identity !== \"object\" || !identity?.user)) {\n throw new Error(\"dispatchAs: identity needs the user to dispatch as.\");\n }\n const headers = new Headers();\n const cookies: string[] = [];\n const cookieToken = identity ? null : initiator.cookies.get(ACCESS_TOKEN);\n if (cookieToken) {\n cookies.push(`${ACCESS_TOKEN}=${cookieToken}`);\n }\n if (options?.credentials) {\n applyCredentials(headers, cookies, options.credentials, identity !== undefined);\n }\n if (cookies.length > 0) {\n headers.set(\"Cookie\", cookies.join(\"; \"));\n }\n const headerToken = identity ? null : initiator.headers.get(ACCESS_TOKEN);\n if (headerToken) {\n headers.set(ACCESS_TOKEN, headerToken);\n }\n // Not a credential, but `AuthManager.getSession` gets it beside the token,\n // so a user provider that binds a session to its agent sees the same one it\n // would for the user.\n const userAgent = initiator.headers.get(\"User-Agent\");\n if (userAgent) {\n headers.set(\"User-Agent\", userAgent);\n }\n\n let requestBody: BodyInit | undefined;\n if (body instanceof FormData) {\n // No content-type of our own: the runtime writes the multipart boundary.\n requestBody = body;\n } else if (body !== undefined) {\n headers.set(\"Content-Type\", \"application/json\");\n requestBody = JSON.stringify(body);\n }\n\n const req = new Request(url, {\n method,\n headers,\n body: requestBody,\n ...(options?.signal ? { signal: options.signal } : {}),\n });\n markModelOriginated(req, clientIp(initiator), identity?.grant, options?.progress);\n // The tool call acts for the same tenant as the request that started it.\n if (initiator.domain) {\n setRequestDomain(req, initiator.domain);\n }\n\n // Started from outside the initiator's scopes, as the server's `fetch` is.\n // `handleApiRequest` opens a fresh request store of its own, but\n // `onRequestStart` runs before it does and would otherwise see the\n // initiator's. The ORM scope is the one that matters: inside an\n // `asSystem` block, or an `asUser` for someone else, the route's queries\n // would skip or swap the policies a client's request would meet. The\n // kernel scope is kept — it is the Application, not a caller.\n // An identity rides in as a global middleware's user does: on the new\n // request's store, before its middleware runs.\n const carried = identity ? { user: identity.user } : undefined;\n return RequestContext.exit(() =>\n ormContext.exit(() => this.handleApiRequest(req, carried)),\n );\n }\n}\n",
@@ -113,7 +114,7 @@
113
114
  "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",
114
115
  "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 * 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 // 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 // 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"
115
116
  ],
116
- "mappings": "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",
117
- "debugId": "305560AF76113A8764756E2164756E21",
117
+ "mappings": "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",
118
+ "debugId": "2ABE2C5F2E52D06464756E2164756E21",
118
119
  "names": []
119
120
  }