@timber-js/app 0.2.0-alpha.20 → 0.2.0-alpha.201

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 (1332) hide show
  1. package/LICENSE +8 -0
  2. package/agent-skill.md +346 -0
  3. package/bin/timber.mjs +15 -1
  4. package/dist/_chunks/actions-HUdJADAD.js +345 -0
  5. package/dist/_chunks/actions-HUdJADAD.js.map +1 -0
  6. package/dist/_chunks/als-registry-C6kcfprT.js +41 -0
  7. package/dist/_chunks/als-registry-C6kcfprT.js.map +1 -0
  8. package/dist/_chunks/als-slots-BEEIPKYm.js +26 -0
  9. package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -0
  10. package/dist/_chunks/base-path-DaQrzbez.js +80 -0
  11. package/dist/_chunks/base-path-DaQrzbez.js.map +1 -0
  12. package/dist/_chunks/build-manifest-DWppEdLB.js +86 -0
  13. package/dist/_chunks/build-manifest-DWppEdLB.js.map +1 -0
  14. package/dist/_chunks/build-output-helper-9dqCv1pZ.js +370 -0
  15. package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +1 -0
  16. package/dist/_chunks/cache-api-CAPbZTga.js +1149 -0
  17. package/dist/_chunks/cache-api-CAPbZTga.js.map +1 -0
  18. package/dist/_chunks/canonicalize-CgHoscYO.js +66 -0
  19. package/dist/_chunks/canonicalize-CgHoscYO.js.map +1 -0
  20. package/dist/_chunks/chains-CBNA0Ozj.js +412 -0
  21. package/dist/_chunks/chains-CBNA0Ozj.js.map +1 -0
  22. package/dist/_chunks/cli-check-BzMGuIH6.js +293 -0
  23. package/dist/_chunks/cli-check-BzMGuIH6.js.map +1 -0
  24. package/dist/_chunks/cli-schema-sync-DnXqcIIj.js +299 -0
  25. package/dist/_chunks/cli-schema-sync-DnXqcIIj.js.map +1 -0
  26. package/dist/_chunks/cloudflare-DxX1SU0g.js +1290 -0
  27. package/dist/_chunks/cloudflare-DxX1SU0g.js.map +1 -0
  28. package/dist/_chunks/codec-registry-oOUxugz3.js +21 -0
  29. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -0
  30. package/dist/_chunks/convention-lint-DHOFvX5s.js +803 -0
  31. package/dist/_chunks/convention-lint-DHOFvX5s.js.map +1 -0
  32. package/dist/_chunks/csp-nonce-hOGniaG4.js +227 -0
  33. package/dist/_chunks/csp-nonce-hOGniaG4.js.map +1 -0
  34. package/dist/_chunks/dev-server-DioP7tkQ.js +2288 -0
  35. package/dist/_chunks/dev-server-DioP7tkQ.js.map +1 -0
  36. package/dist/_chunks/dist-DtrJyBbw.js +386 -0
  37. package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
  38. package/dist/_chunks/error-boundary-BQKxl6EX.js +1044 -0
  39. package/dist/_chunks/error-boundary-BQKxl6EX.js.map +1 -0
  40. package/dist/_chunks/fast-hash-C-tVYrLb.js +41 -0
  41. package/dist/_chunks/fast-hash-C-tVYrLb.js.map +1 -0
  42. package/dist/_chunks/file-cache-Dw6BJPG7.js +458 -0
  43. package/dist/_chunks/file-cache-Dw6BJPG7.js.map +1 -0
  44. package/dist/_chunks/format-BKclgVbk.js +14 -0
  45. package/dist/_chunks/format-BKclgVbk.js.map +1 -0
  46. package/dist/_chunks/fs-identity-D7vb6GdI.js +208 -0
  47. package/dist/_chunks/fs-identity-D7vb6GdI.js.map +1 -0
  48. package/dist/_chunks/graph-cache-Cv3njEH8.js +304 -0
  49. package/dist/_chunks/graph-cache-Cv3njEH8.js.map +1 -0
  50. package/dist/_chunks/href-validation-BIrxavIy.js +213 -0
  51. package/dist/_chunks/href-validation-BIrxavIy.js.map +1 -0
  52. package/dist/_chunks/json-lossy-check-ClNvBM_3.js +63 -0
  53. package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +1 -0
  54. package/dist/_chunks/live-graph-VjHFF5EV.js +150 -0
  55. package/dist/_chunks/live-graph-VjHFF5EV.js.map +1 -0
  56. package/dist/_chunks/logger-DqJ2VoAY.js +1476 -0
  57. package/dist/_chunks/logger-DqJ2VoAY.js.map +1 -0
  58. package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js → metadata-routes-DSDjM_hJ.js} +71 -27
  59. package/dist/_chunks/metadata-routes-DSDjM_hJ.js.map +1 -0
  60. package/dist/_chunks/navigation-context-D0TU0Jog.js +135 -0
  61. package/dist/_chunks/navigation-context-D0TU0Jog.js.map +1 -0
  62. package/dist/_chunks/navigation-root-mHSK9psY.js +126 -0
  63. package/dist/_chunks/navigation-root-mHSK9psY.js.map +1 -0
  64. package/dist/_chunks/param-value-C8TNYchQ.js +66 -0
  65. package/dist/_chunks/param-value-C8TNYchQ.js.map +1 -0
  66. package/dist/_chunks/plugin-context-8idfR3UZ.js +321 -0
  67. package/dist/_chunks/plugin-context-8idfR3UZ.js.map +1 -0
  68. package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
  69. package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
  70. package/dist/_chunks/poison-scan-lEbz4pQE.js +101 -0
  71. package/dist/_chunks/poison-scan-lEbz4pQE.js.map +1 -0
  72. package/dist/_chunks/purge-store-Byr8XOjU.js +14 -0
  73. package/dist/_chunks/purge-store-Byr8XOjU.js.map +1 -0
  74. package/dist/_chunks/resolve-schema-CBR6Lm4i.js +50 -0
  75. package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -0
  76. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  77. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js +243 -0
  78. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js.map +1 -0
  79. package/dist/_chunks/rsc-media-type-DDc7duTD.js +61 -0
  80. package/dist/_chunks/rsc-media-type-DDc7duTD.js.map +1 -0
  81. package/dist/_chunks/rsc-payload-path-B_LBodc2.js +48 -0
  82. package/dist/_chunks/rsc-payload-path-B_LBodc2.js.map +1 -0
  83. package/dist/_chunks/scan-BoP17W3w.js +140 -0
  84. package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
  85. package/dist/_chunks/scanner-B_tnqFcF.js +1671 -0
  86. package/dist/_chunks/scanner-B_tnqFcF.js.map +1 -0
  87. package/dist/_chunks/schema-bridge-C83xa9lT.js +199 -0
  88. package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -0
  89. package/dist/_chunks/segment-classify-C539Pa2O.js +197 -0
  90. package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -0
  91. package/dist/_chunks/segment-context-D9_89u34.js +34 -0
  92. package/dist/_chunks/segment-context-D9_89u34.js.map +1 -0
  93. package/dist/_chunks/segment-keys-D5hu1hz4.js +62 -0
  94. package/dist/_chunks/segment-keys-D5hu1hz4.js.map +1 -0
  95. package/dist/_chunks/singleflight-2lUWfcAk.js +54 -0
  96. package/dist/_chunks/singleflight-2lUWfcAk.js.map +1 -0
  97. package/dist/_chunks/sizeof-lXffQ1Vr.js +35 -0
  98. package/dist/_chunks/sizeof-lXffQ1Vr.js.map +1 -0
  99. package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-D6T6Y3ef.js} +3 -31
  100. package/dist/_chunks/ssr-data-D6T6Y3ef.js.map +1 -0
  101. package/dist/_chunks/state-FippDgxN.js +52 -0
  102. package/dist/_chunks/state-FippDgxN.js.map +1 -0
  103. package/dist/_chunks/status-page-marker-DwQBrLBz.js +496 -0
  104. package/dist/_chunks/status-page-marker-DwQBrLBz.js.map +1 -0
  105. package/dist/_chunks/tree-match-CdbvYTBz.js +122 -0
  106. package/dist/_chunks/tree-match-CdbvYTBz.js.map +1 -0
  107. package/dist/_chunks/use-query-states-I3JMng6J.js +226 -0
  108. package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -0
  109. package/dist/_chunks/walkers-Cm3PC5JT.js +144 -0
  110. package/dist/_chunks/walkers-Cm3PC5JT.js.map +1 -0
  111. package/dist/adapters/build-output-helper.d.ts +72 -0
  112. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  113. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  114. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  115. package/dist/adapters/cloudflare-dev.js +74 -0
  116. package/dist/adapters/cloudflare-dev.js.map +1 -0
  117. package/dist/adapters/cloudflare-kv-cache.d.ts +65 -0
  118. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  119. package/dist/adapters/cloudflare-kv-cache.js +123 -0
  120. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  121. package/dist/adapters/cloudflare.d.ts +200 -22
  122. package/dist/adapters/cloudflare.d.ts.map +1 -1
  123. package/dist/adapters/cloudflare.js +2 -188
  124. package/dist/adapters/compress-module.d.ts +17 -4
  125. package/dist/adapters/compress-module.d.ts.map +1 -1
  126. package/dist/adapters/fs-identity.d.ts +64 -0
  127. package/dist/adapters/fs-identity.d.ts.map +1 -0
  128. package/dist/adapters/nitro-presets.d.ts +37 -0
  129. package/dist/adapters/nitro-presets.d.ts.map +1 -0
  130. package/dist/adapters/nitro-preview.d.ts +32 -0
  131. package/dist/adapters/nitro-preview.d.ts.map +1 -0
  132. package/dist/adapters/nitro.d.ts +66 -37
  133. package/dist/adapters/nitro.d.ts.map +1 -1
  134. package/dist/adapters/nitro.js +457 -300
  135. package/dist/adapters/nitro.js.map +1 -1
  136. package/dist/adapters/shared.d.ts +62 -0
  137. package/dist/adapters/shared.d.ts.map +1 -0
  138. package/dist/adapters/types.d.ts +28 -6
  139. package/dist/adapters/types.d.ts.map +1 -1
  140. package/dist/analyze/chains.d.ts +124 -0
  141. package/dist/analyze/chains.d.ts.map +1 -0
  142. package/dist/analyze/classify.d.ts +150 -0
  143. package/dist/analyze/classify.d.ts.map +1 -0
  144. package/dist/analyze/crawl-entry.d.ts +17 -0
  145. package/dist/analyze/crawl-entry.d.ts.map +1 -0
  146. package/dist/analyze/crawl-entry.js +313 -0
  147. package/dist/analyze/crawl-entry.js.map +1 -0
  148. package/dist/analyze/crawl.d.ts +134 -0
  149. package/dist/analyze/crawl.d.ts.map +1 -0
  150. package/dist/analyze/graph-cache.d.ts +104 -0
  151. package/dist/analyze/graph-cache.d.ts.map +1 -0
  152. package/dist/analyze/graph-command.d.ts +43 -0
  153. package/dist/analyze/graph-command.d.ts.map +1 -0
  154. package/dist/analyze/graph-command.js +472 -0
  155. package/dist/analyze/graph-command.js.map +1 -0
  156. package/dist/analyze/live-graph.d.ts +81 -0
  157. package/dist/analyze/live-graph.d.ts.map +1 -0
  158. package/dist/analyze/poison-rules.d.ts +72 -0
  159. package/dist/analyze/poison-rules.d.ts.map +1 -0
  160. package/dist/analyze/poison-scan.d.ts +48 -0
  161. package/dist/analyze/poison-scan.d.ts.map +1 -0
  162. package/dist/analyze/scan.d.ts +73 -0
  163. package/dist/analyze/scan.d.ts.map +1 -0
  164. package/dist/cache/cache-api.d.ts +48 -0
  165. package/dist/cache/cache-api.d.ts.map +1 -0
  166. package/dist/cache/fast-hash.d.ts +5 -0
  167. package/dist/cache/fast-hash.d.ts.map +1 -1
  168. package/dist/cache/handler-store.d.ts +33 -0
  169. package/dist/cache/handler-store.d.ts.map +1 -0
  170. package/dist/cache/index.d.ts +32 -9
  171. package/dist/cache/index.d.ts.map +1 -1
  172. package/dist/cache/index.js +3 -326
  173. package/dist/cache/invalidation-epoch.d.ts +43 -0
  174. package/dist/cache/invalidation-epoch.d.ts.map +1 -0
  175. package/dist/cache/json-lossy-check.d.ts +11 -0
  176. package/dist/cache/json-lossy-check.d.ts.map +1 -0
  177. package/dist/cache/redis-handler.d.ts +141 -9
  178. package/dist/cache/redis-handler.d.ts.map +1 -1
  179. package/dist/cache/singleflight.d.ts +21 -2
  180. package/dist/cache/singleflight.d.ts.map +1 -1
  181. package/dist/cache/sizeof.d.ts +22 -0
  182. package/dist/cache/sizeof.d.ts.map +1 -0
  183. package/dist/cache/stable-stringify.d.ts +9 -0
  184. package/dist/cache/stable-stringify.d.ts.map +1 -1
  185. package/dist/cache/store.d.ts +53 -0
  186. package/dist/cache/store.d.ts.map +1 -0
  187. package/dist/cache/stores/cloudflare-kv.d.ts +38 -0
  188. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -0
  189. package/dist/cache/stores/cloudflare-kv.js +29 -0
  190. package/dist/cache/stores/cloudflare-kv.js.map +1 -0
  191. package/dist/cache/stores/memory.d.ts +42 -0
  192. package/dist/cache/stores/memory.d.ts.map +1 -0
  193. package/dist/cache/stores/memory.js +90 -0
  194. package/dist/cache/stores/memory.js.map +1 -0
  195. package/dist/cache/stores/redis.d.ts +69 -0
  196. package/dist/cache/stores/redis.d.ts.map +1 -0
  197. package/dist/cache/stores/redis.js +35 -0
  198. package/dist/cache/stores/redis.js.map +1 -0
  199. package/dist/cache/stores/vercel.d.ts +36 -0
  200. package/dist/cache/stores/vercel.d.ts.map +1 -0
  201. package/dist/cache/stores/vercel.js +33 -0
  202. package/dist/cache/stores/vercel.js.map +1 -0
  203. package/dist/cache/tag-aware-handler.d.ts +52 -0
  204. package/dist/cache/tag-aware-handler.d.ts.map +1 -0
  205. package/dist/cache/timber-cache.d.ts +21 -11
  206. package/dist/cache/timber-cache.d.ts.map +1 -1
  207. package/dist/cdn/cloudflare-purge.d.ts +23 -0
  208. package/dist/cdn/cloudflare-purge.d.ts.map +1 -0
  209. package/dist/cdn/cloudflare-purge.js +30 -0
  210. package/dist/cdn/cloudflare-purge.js.map +1 -0
  211. package/dist/cdn/fastly-purge.d.ts +25 -0
  212. package/dist/cdn/fastly-purge.d.ts.map +1 -0
  213. package/dist/cdn/fastly-purge.js +33 -0
  214. package/dist/cdn/fastly-purge.js.map +1 -0
  215. package/dist/cdn/headers.d.ts +97 -0
  216. package/dist/cdn/headers.d.ts.map +1 -0
  217. package/dist/cdn/index.d.ts +5 -0
  218. package/dist/cdn/index.d.ts.map +1 -0
  219. package/dist/cdn/index.js +94 -0
  220. package/dist/cdn/index.js.map +1 -0
  221. package/dist/cdn/purge-store.d.ts +23 -0
  222. package/dist/cdn/purge-store.d.ts.map +1 -0
  223. package/dist/cdn/workers-cache-purge.d.ts +20 -0
  224. package/dist/cdn/workers-cache-purge.d.ts.map +1 -0
  225. package/dist/cdn/workers-cache-purge.js +35 -0
  226. package/dist/cdn/workers-cache-purge.js.map +1 -0
  227. package/dist/cli-check.d.ts +163 -0
  228. package/dist/cli-check.d.ts.map +1 -0
  229. package/dist/cli-schema-sync.d.ts +59 -0
  230. package/dist/cli-schema-sync.d.ts.map +1 -0
  231. package/dist/cli.d.ts +81 -9
  232. package/dist/cli.d.ts.map +1 -1
  233. package/dist/cli.js +216 -51
  234. package/dist/cli.js.map +1 -1
  235. package/dist/client/browser-dev.d.ts +37 -1
  236. package/dist/client/browser-dev.d.ts.map +1 -1
  237. package/dist/client/browser-entry/action-dispatch.d.ts +19 -0
  238. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  239. package/dist/client/browser-entry/action-queue.d.ts +63 -0
  240. package/dist/client/browser-entry/action-queue.d.ts.map +1 -0
  241. package/dist/client/browser-entry/hmr.d.ts +21 -0
  242. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  243. package/dist/client/browser-entry/hydrate.d.ts +63 -0
  244. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  245. package/dist/client/browser-entry/index.d.ts +30 -0
  246. package/dist/client/browser-entry/index.d.ts.map +1 -0
  247. package/dist/client/browser-entry/post-hydration.d.ts +29 -0
  248. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  249. package/dist/client/browser-entry/router-init.d.ts +46 -0
  250. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  251. package/dist/client/browser-entry/rsc-stream.d.ts +32 -0
  252. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  253. package/dist/client/browser-entry/scroll.d.ts +28 -0
  254. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  255. package/dist/client/deny-last-resort.d.ts +29 -0
  256. package/dist/client/deny-last-resort.d.ts.map +1 -0
  257. package/dist/client/error-boundary.d.ts +55 -7
  258. package/dist/client/error-boundary.d.ts.map +1 -1
  259. package/dist/client/error-boundary.js +2 -126
  260. package/dist/client/error-reconstituter.d.ts +61 -0
  261. package/dist/client/error-reconstituter.d.ts.map +1 -0
  262. package/dist/client/form.d.ts +16 -27
  263. package/dist/client/form.d.ts.map +1 -1
  264. package/dist/client/global-context.d.ts +15 -0
  265. package/dist/client/global-context.d.ts.map +1 -0
  266. package/dist/client/history.d.ts +50 -9
  267. package/dist/client/history.d.ts.map +1 -1
  268. package/dist/client/index.d.ts +20 -33
  269. package/dist/client/index.d.ts.map +1 -1
  270. package/dist/client/index.js +323 -1148
  271. package/dist/client/index.js.map +1 -1
  272. package/dist/client/internal.d.ts +20 -0
  273. package/dist/client/internal.d.ts.map +1 -0
  274. package/dist/client/internal.js +818 -0
  275. package/dist/client/internal.js.map +1 -0
  276. package/dist/client/link.d.ts +63 -60
  277. package/dist/client/link.d.ts.map +1 -1
  278. package/dist/client/location-search.d.ts +12 -0
  279. package/dist/client/location-search.d.ts.map +1 -0
  280. package/dist/client/navigation-api.d.ts +121 -0
  281. package/dist/client/navigation-api.d.ts.map +1 -0
  282. package/dist/client/navigation-commit.d.ts +98 -0
  283. package/dist/client/navigation-commit.d.ts.map +1 -0
  284. package/dist/client/navigation-context.d.ts +51 -31
  285. package/dist/client/navigation-context.d.ts.map +1 -1
  286. package/dist/client/navigation-root.d.ts +98 -0
  287. package/dist/client/navigation-root.d.ts.map +1 -0
  288. package/dist/client/navigation-transition.d.ts +187 -0
  289. package/dist/client/navigation-transition.d.ts.map +1 -0
  290. package/dist/client/nuqs-adapter.d.ts +1 -1
  291. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  292. package/dist/client/params-context.d.ts +81 -0
  293. package/dist/client/params-context.d.ts.map +1 -0
  294. package/dist/client/react-root.d.ts +44 -0
  295. package/dist/client/react-root.d.ts.map +1 -0
  296. package/dist/client/router-effects.d.ts +130 -0
  297. package/dist/client/router-effects.d.ts.map +1 -0
  298. package/dist/client/router-lifecycle.d.ts +98 -0
  299. package/dist/client/router-lifecycle.d.ts.map +1 -0
  300. package/dist/client/router-pipeline.d.ts +87 -0
  301. package/dist/client/router-pipeline.d.ts.map +1 -0
  302. package/dist/client/router-ref.d.ts +2 -2
  303. package/dist/client/router-ref.d.ts.map +1 -1
  304. package/dist/client/router-skew.d.ts +21 -0
  305. package/dist/client/router-skew.d.ts.map +1 -0
  306. package/dist/client/router-types.d.ts +272 -0
  307. package/dist/client/router-types.d.ts.map +1 -0
  308. package/dist/client/router.d.ts +1 -97
  309. package/dist/client/router.d.ts.map +1 -1
  310. package/dist/client/rsc-fetch.d.ts +104 -26
  311. package/dist/client/rsc-fetch.d.ts.map +1 -1
  312. package/dist/client/segment-cache.d.ts +161 -25
  313. package/dist/client/segment-cache.d.ts.map +1 -1
  314. package/dist/client/segment-context.d.ts.map +1 -1
  315. package/dist/client/segment-outlet.d.ts +68 -0
  316. package/dist/client/segment-outlet.d.ts.map +1 -0
  317. package/dist/client/segment-update-context.d.ts +15 -0
  318. package/dist/client/segment-update-context.d.ts.map +1 -0
  319. package/dist/client/shallow-url.d.ts +10 -0
  320. package/dist/client/shallow-url.d.ts.map +1 -0
  321. package/dist/client/slot-content-cache-context.d.ts +35 -0
  322. package/dist/client/slot-content-cache-context.d.ts.map +1 -0
  323. package/dist/client/slot-context.d.ts +31 -0
  324. package/dist/client/slot-context.d.ts.map +1 -0
  325. package/dist/client/slot-outlet.d.ts +16 -0
  326. package/dist/client/slot-outlet.d.ts.map +1 -0
  327. package/dist/client/slot-provider.d.ts +25 -0
  328. package/dist/client/slot-provider.d.ts.map +1 -0
  329. package/dist/client/ssr-data.d.ts +29 -7
  330. package/dist/client/ssr-data.d.ts.map +1 -1
  331. package/dist/client/stale-client.d.ts +69 -0
  332. package/dist/client/stale-client.d.ts.map +1 -0
  333. package/dist/client/state.d.ts +19 -8
  334. package/dist/client/state.d.ts.map +1 -1
  335. package/dist/client/status-page-marker.d.ts +25 -0
  336. package/dist/client/status-page-marker.d.ts.map +1 -0
  337. package/dist/client/top-loader.d.ts +7 -6
  338. package/dist/client/top-loader.d.ts.map +1 -1
  339. package/dist/client/unload-guard.d.ts +5 -0
  340. package/dist/client/unload-guard.d.ts.map +1 -1
  341. package/dist/client/use-cookie.d.ts +12 -0
  342. package/dist/client/use-cookie.d.ts.map +1 -1
  343. package/dist/client/use-link-status.d.ts +5 -5
  344. package/dist/client/use-link-status.d.ts.map +1 -1
  345. package/dist/client/use-pathname.d.ts +13 -11
  346. package/dist/client/use-pathname.d.ts.map +1 -1
  347. package/dist/client/use-pending-navigation.d.ts +23 -0
  348. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  349. package/dist/client/use-query-states.d.ts +10 -4
  350. package/dist/client/use-query-states.d.ts.map +1 -1
  351. package/dist/client/use-router.d.ts +2 -2
  352. package/dist/client/use-router.d.ts.map +1 -1
  353. package/dist/client/use-search-params.d.ts +15 -8
  354. package/dist/client/use-search-params.d.ts.map +1 -1
  355. package/dist/client/use-segment-params.d.ts +55 -0
  356. package/dist/client/use-segment-params.d.ts.map +1 -0
  357. package/dist/codec.d.ts +69 -0
  358. package/dist/codec.d.ts.map +1 -0
  359. package/dist/codec.js +76 -0
  360. package/dist/codec.js.map +1 -0
  361. package/dist/config-types.d.ts +322 -0
  362. package/dist/config-types.d.ts.map +1 -0
  363. package/dist/config-validation.d.ts +51 -0
  364. package/dist/config-validation.d.ts.map +1 -0
  365. package/dist/cookies/define-cookie.d.ts +58 -25
  366. package/dist/cookies/define-cookie.d.ts.map +1 -1
  367. package/dist/cookies/index.d.ts +3 -2
  368. package/dist/cookies/index.d.ts.map +1 -1
  369. package/dist/cookies/index.js +256 -36
  370. package/dist/cookies/index.js.map +1 -1
  371. package/dist/cookies/json-cookie.d.ts +64 -0
  372. package/dist/cookies/json-cookie.d.ts.map +1 -0
  373. package/dist/cookies/validation.d.ts +34 -0
  374. package/dist/cookies/validation.d.ts.map +1 -0
  375. package/dist/dev-tools/404-page.d.ts +50 -0
  376. package/dist/dev-tools/404-page.d.ts.map +1 -0
  377. package/dist/dev-tools/browser-logs.d.ts +40 -0
  378. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  379. package/dist/dev-tools/debug-channel.d.ts +55 -0
  380. package/dist/dev-tools/debug-channel.d.ts.map +1 -0
  381. package/dist/dev-tools/dev-page-shell.d.ts +78 -0
  382. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  383. package/dist/dev-tools/error-page.d.ts +32 -0
  384. package/dist/dev-tools/error-page.d.ts.map +1 -0
  385. package/dist/dev-tools/holding-server.d.ts +46 -0
  386. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  387. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  388. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  389. package/dist/dev-tools/index.d.ts +31 -0
  390. package/dist/dev-tools/index.d.ts.map +1 -0
  391. package/dist/dev-tools/instrumentation.d.ts +59 -0
  392. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  393. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  394. package/dist/dev-tools/logger.d.ts.map +1 -0
  395. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  396. package/dist/dev-tools/logs.d.ts.map +1 -0
  397. package/dist/dev-tools/overlay.d.ts +91 -0
  398. package/dist/dev-tools/overlay.d.ts.map +1 -0
  399. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  400. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  401. package/dist/dev-tools/terminal.d.ts +28 -0
  402. package/dist/dev-tools/terminal.d.ts.map +1 -0
  403. package/dist/fonts/ast-walk.d.ts +68 -0
  404. package/dist/fonts/ast-walk.d.ts.map +1 -0
  405. package/dist/fonts/ast.d.ts +112 -8
  406. package/dist/fonts/ast.d.ts.map +1 -1
  407. package/dist/fonts/bundle.d.ts +50 -0
  408. package/dist/fonts/bundle.d.ts.map +1 -0
  409. package/dist/fonts/css.d.ts +1 -1
  410. package/dist/fonts/dev-middleware.d.ts +22 -0
  411. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  412. package/dist/fonts/fallbacks.d.ts +0 -7
  413. package/dist/fonts/fallbacks.d.ts.map +1 -1
  414. package/dist/fonts/google.d.ts +5 -3
  415. package/dist/fonts/google.d.ts.map +1 -1
  416. package/dist/fonts/local.d.ts +5 -5
  417. package/dist/fonts/local.d.ts.map +1 -1
  418. package/dist/fonts/paths.d.ts +43 -0
  419. package/dist/fonts/paths.d.ts.map +1 -0
  420. package/dist/fonts/pipeline.d.ts +177 -0
  421. package/dist/fonts/pipeline.d.ts.map +1 -0
  422. package/dist/fonts/transform.d.ts +82 -0
  423. package/dist/fonts/transform.d.ts.map +1 -0
  424. package/dist/fonts/types.d.ts +47 -1
  425. package/dist/fonts/types.d.ts.map +1 -1
  426. package/dist/fonts/virtual-modules.d.ts +77 -0
  427. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  428. package/dist/index.d.ts +35 -181
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +8462 -14279
  431. package/dist/index.js.map +1 -1
  432. package/dist/params/codec-registry.d.ts +26 -0
  433. package/dist/params/codec-registry.d.ts.map +1 -0
  434. package/dist/params/define-schema.d.ts +81 -0
  435. package/dist/params/define-schema.d.ts.map +1 -0
  436. package/dist/params/index.d.ts +5 -0
  437. package/dist/params/index.d.ts.map +1 -0
  438. package/dist/params/index.js +34 -0
  439. package/dist/params/index.js.map +1 -0
  440. package/dist/params/resolve-schema.d.ts +34 -0
  441. package/dist/params/resolve-schema.d.ts.map +1 -0
  442. package/dist/plugin-context.d.ts +276 -0
  443. package/dist/plugin-context.d.ts.map +1 -0
  444. package/dist/plugins/adapter-build.d.ts +21 -1
  445. package/dist/plugins/adapter-build.d.ts.map +1 -1
  446. package/dist/plugins/build-manifest.d.ts +7 -3
  447. package/dist/plugins/build-manifest.d.ts.map +1 -1
  448. package/dist/plugins/build-report.d.ts +47 -10
  449. package/dist/plugins/build-report.d.ts.map +1 -1
  450. package/dist/plugins/cache.d.ts +64 -0
  451. package/dist/plugins/cache.d.ts.map +1 -0
  452. package/dist/plugins/callsite-ast.d.ts +117 -0
  453. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  454. package/dist/plugins/callsite-jsx.d.ts +35 -0
  455. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  456. package/dist/plugins/chunks.d.ts +11 -4
  457. package/dist/plugins/chunks.d.ts.map +1 -1
  458. package/dist/plugins/client-chunks.d.ts +40 -0
  459. package/dist/plugins/client-chunks.d.ts.map +1 -0
  460. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  461. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  462. package/dist/plugins/content.d.ts +1 -1
  463. package/dist/plugins/content.d.ts.map +1 -1
  464. package/dist/plugins/dev-discovery.d.ts +123 -0
  465. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  466. package/dist/plugins/dev-server.d.ts +24 -1
  467. package/dist/plugins/dev-server.d.ts.map +1 -1
  468. package/dist/plugins/entries.d.ts +28 -4
  469. package/dist/plugins/entries.d.ts.map +1 -1
  470. package/dist/plugins/fonts.d.ts +16 -73
  471. package/dist/plugins/fonts.d.ts.map +1 -1
  472. package/dist/plugins/graph-endpoint.d.ts +112 -0
  473. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  474. package/dist/plugins/mdx.d.ts +18 -5
  475. package/dist/plugins/mdx.d.ts.map +1 -1
  476. package/dist/plugins/prebuilt-capture.d.ts +60 -0
  477. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  478. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  479. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  480. package/dist/plugins/prebuilt.d.ts +82 -0
  481. package/dist/plugins/prebuilt.d.ts.map +1 -0
  482. package/dist/plugins/prerender-sugar.d.ts +39 -0
  483. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  484. package/dist/plugins/request-dep/analysis.d.ts +106 -0
  485. package/dist/plugins/request-dep/analysis.d.ts.map +1 -0
  486. package/dist/plugins/request-dep/index.d.ts +75 -0
  487. package/dist/plugins/request-dep/index.d.ts.map +1 -0
  488. package/dist/plugins/request-dep/origin.d.ts +61 -0
  489. package/dist/plugins/request-dep/origin.d.ts.map +1 -0
  490. package/dist/plugins/routing.d.ts +1 -1
  491. package/dist/plugins/routing.d.ts.map +1 -1
  492. package/dist/plugins/server-bundle.d.ts.map +1 -1
  493. package/dist/plugins/shims.d.ts +29 -5
  494. package/dist/plugins/shims.d.ts.map +1 -1
  495. package/dist/plugins/static-build.d.ts +218 -21
  496. package/dist/plugins/static-build.d.ts.map +1 -1
  497. package/dist/routing/codegen-shared.d.ts +26 -0
  498. package/dist/routing/codegen-shared.d.ts.map +1 -0
  499. package/dist/routing/codegen-types.d.ts +61 -0
  500. package/dist/routing/codegen-types.d.ts.map +1 -0
  501. package/dist/routing/codegen-write.d.ts +51 -0
  502. package/dist/routing/codegen-write.d.ts.map +1 -0
  503. package/dist/routing/codegen.d.ts +8 -3
  504. package/dist/routing/codegen.d.ts.map +1 -1
  505. package/dist/routing/collision-probe.d.ts +104 -0
  506. package/dist/routing/collision-probe.d.ts.map +1 -0
  507. package/dist/routing/collision-spaces.d.ts +26 -0
  508. package/dist/routing/collision-spaces.d.ts.map +1 -0
  509. package/dist/routing/convention-lint.d.ts +55 -0
  510. package/dist/routing/convention-lint.d.ts.map +1 -0
  511. package/dist/routing/export-detect.d.ts +72 -0
  512. package/dist/routing/export-detect.d.ts.map +1 -0
  513. package/dist/routing/file-cache.d.ts +8 -0
  514. package/dist/routing/file-cache.d.ts.map +1 -0
  515. package/dist/routing/index.d.ts +13 -7
  516. package/dist/routing/index.d.ts.map +1 -1
  517. package/dist/routing/index.js +5 -2
  518. package/dist/routing/interception-overlap.d.ts +35 -0
  519. package/dist/routing/interception-overlap.d.ts.map +1 -0
  520. package/dist/routing/interception.d.ts +234 -10
  521. package/dist/routing/interception.d.ts.map +1 -1
  522. package/dist/routing/link-codegen.d.ts +105 -0
  523. package/dist/routing/link-codegen.d.ts.map +1 -0
  524. package/dist/routing/manifest-codegen.d.ts +26 -0
  525. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  526. package/dist/routing/scanner.d.ts +14 -10
  527. package/dist/routing/scanner.d.ts.map +1 -1
  528. package/dist/routing/schema-validation.d.ts +35 -0
  529. package/dist/routing/schema-validation.d.ts.map +1 -0
  530. package/dist/routing/segment-classify.d.ts +114 -0
  531. package/dist/routing/segment-classify.d.ts.map +1 -0
  532. package/dist/routing/segment-codegen.d.ts +38 -0
  533. package/dist/routing/segment-codegen.d.ts.map +1 -0
  534. package/dist/routing/segment-keys.d.ts +118 -0
  535. package/dist/routing/segment-keys.d.ts.map +1 -0
  536. package/dist/routing/slot-placement.d.ts +48 -0
  537. package/dist/routing/slot-placement.d.ts.map +1 -0
  538. package/dist/routing/types.d.ts +74 -26
  539. package/dist/routing/types.d.ts.map +1 -1
  540. package/dist/routing/walkers.d.ts +57 -0
  541. package/dist/routing/walkers.d.ts.map +1 -0
  542. package/dist/rsc-runtime/rsc.d.ts +1 -1
  543. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  544. package/dist/rsc-runtime/ssr.d.ts +14 -0
  545. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  546. package/dist/rsc-runtime/transforms.d.ts +13 -0
  547. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  548. package/dist/schema-bridge.d.ts +145 -0
  549. package/dist/schema-bridge.d.ts.map +1 -0
  550. package/dist/search-params/define.d.ts +262 -0
  551. package/dist/search-params/define.d.ts.map +1 -0
  552. package/dist/search-params/index.d.ts +3 -7
  553. package/dist/search-params/index.d.ts.map +1 -1
  554. package/dist/search-params/index.js +179 -360
  555. package/dist/search-params/index.js.map +1 -1
  556. package/dist/search-params/parse-total.d.ts +81 -0
  557. package/dist/search-params/parse-total.d.ts.map +1 -0
  558. package/dist/search-params/serialize-equal.d.ts +9 -0
  559. package/dist/search-params/serialize-equal.d.ts.map +1 -0
  560. package/dist/search-params/wrappers.d.ts +76 -0
  561. package/dist/search-params/wrappers.d.ts.map +1 -0
  562. package/dist/server/access-gate.d.ts +98 -10
  563. package/dist/server/access-gate.d.ts.map +1 -1
  564. package/dist/server/action-client.d.ts +42 -7
  565. package/dist/server/action-client.d.ts.map +1 -1
  566. package/dist/server/action-encryption.d.ts +76 -0
  567. package/dist/server/action-encryption.d.ts.map +1 -0
  568. package/dist/server/action-handler.d.ts +39 -5
  569. package/dist/server/action-handler.d.ts.map +1 -1
  570. package/dist/server/actions.d.ts +29 -35
  571. package/dist/server/actions.d.ts.map +1 -1
  572. package/dist/server/als-registry.d.ts +117 -13
  573. package/dist/server/als-registry.d.ts.map +1 -1
  574. package/dist/server/asset-headers.d.ts +8 -18
  575. package/dist/server/asset-headers.d.ts.map +1 -1
  576. package/dist/server/body-limits.d.ts.map +1 -1
  577. package/dist/server/build-manifest.d.ts +25 -30
  578. package/dist/server/build-manifest.d.ts.map +1 -1
  579. package/dist/server/canonicalize.d.ts +10 -0
  580. package/dist/server/canonicalize.d.ts.map +1 -1
  581. package/dist/server/chain-url-parts.d.ts +82 -0
  582. package/dist/server/chain-url-parts.d.ts.map +1 -0
  583. package/dist/server/children-interception.d.ts +49 -0
  584. package/dist/server/children-interception.d.ts.map +1 -0
  585. package/dist/server/coalesce-tick.d.ts +40 -0
  586. package/dist/server/coalesce-tick.d.ts.map +1 -0
  587. package/dist/server/compress.d.ts.map +1 -1
  588. package/dist/server/cookie-context.d.ts +170 -0
  589. package/dist/server/cookie-context.d.ts.map +1 -0
  590. package/dist/server/cookie-parsing.d.ts +65 -0
  591. package/dist/server/cookie-parsing.d.ts.map +1 -0
  592. package/dist/server/csp-nonce.d.ts +45 -0
  593. package/dist/server/csp-nonce.d.ts.map +1 -0
  594. package/dist/server/csrf.d.ts +3 -2
  595. package/dist/server/csrf.d.ts.map +1 -1
  596. package/dist/server/default-logger.d.ts +22 -0
  597. package/dist/server/default-logger.d.ts.map +1 -0
  598. package/dist/server/default-status-page.d.ts +45 -0
  599. package/dist/server/default-status-page.d.ts.map +1 -0
  600. package/dist/server/deny-boundary.d.ts +251 -0
  601. package/dist/server/deny-boundary.d.ts.map +1 -0
  602. package/dist/server/deny-renderer.d.ts +20 -10
  603. package/dist/server/deny-renderer.d.ts.map +1 -1
  604. package/dist/server/dev-source-map.d.ts +22 -0
  605. package/dist/server/dev-source-map.d.ts.map +1 -0
  606. package/dist/server/early-hints-sender.d.ts.map +1 -1
  607. package/dist/server/early-hints.d.ts +14 -12
  608. package/dist/server/early-hints.d.ts.map +1 -1
  609. package/dist/server/error-boundary-wrapper.d.ts +94 -10
  610. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  611. package/dist/server/error-response-headers.d.ts +3 -0
  612. package/dist/server/error-response-headers.d.ts.map +1 -0
  613. package/dist/server/fallback-error.d.ts +12 -7
  614. package/dist/server/fallback-error.d.ts.map +1 -1
  615. package/dist/server/flight-injection-state.d.ts +66 -0
  616. package/dist/server/flight-injection-state.d.ts.map +1 -0
  617. package/dist/server/flight-scripts.d.ts +45 -0
  618. package/dist/server/flight-scripts.d.ts.map +1 -0
  619. package/dist/server/form-data.d.ts +41 -0
  620. package/dist/server/form-data.d.ts.map +1 -1
  621. package/dist/server/form-flash.d.ts +1 -1
  622. package/dist/server/head-response.d.ts +35 -0
  623. package/dist/server/head-response.d.ts.map +1 -0
  624. package/dist/server/html-injector-core.d.ts +257 -0
  625. package/dist/server/html-injector-core.d.ts.map +1 -0
  626. package/dist/server/html-injectors.d.ts +84 -42
  627. package/dist/server/html-injectors.d.ts.map +1 -1
  628. package/dist/server/index.d.ts +18 -54
  629. package/dist/server/index.d.ts.map +1 -1
  630. package/dist/server/index.js +195 -2922
  631. package/dist/server/index.js.map +1 -1
  632. package/dist/server/instrumentation.d.ts +1 -1
  633. package/dist/server/internal.d.ts +50 -0
  634. package/dist/server/internal.d.ts.map +1 -0
  635. package/dist/server/internal.js +3859 -0
  636. package/dist/server/internal.js.map +1 -0
  637. package/dist/server/logger.d.ts +39 -7
  638. package/dist/server/logger.d.ts.map +1 -1
  639. package/dist/server/metadata-collector.d.ts +71 -0
  640. package/dist/server/metadata-collector.d.ts.map +1 -0
  641. package/dist/server/metadata-platform.d.ts +2 -2
  642. package/dist/server/metadata-render.d.ts +2 -2
  643. package/dist/server/metadata-render.d.ts.map +1 -1
  644. package/dist/server/metadata-routes.d.ts +60 -11
  645. package/dist/server/metadata-routes.d.ts.map +1 -1
  646. package/dist/server/metadata-social.d.ts +2 -2
  647. package/dist/server/metadata.d.ts +10 -2
  648. package/dist/server/metadata.d.ts.map +1 -1
  649. package/dist/server/middleware-runner.d.ts +20 -5
  650. package/dist/server/middleware-runner.d.ts.map +1 -1
  651. package/dist/server/node-stream-transforms.d.ts +105 -0
  652. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  653. package/dist/server/nuqs-ssr-provider.d.ts +7 -3
  654. package/dist/server/nuqs-ssr-provider.d.ts.map +1 -1
  655. package/dist/server/param-coercion.d.ts +78 -0
  656. package/dist/server/param-coercion.d.ts.map +1 -0
  657. package/dist/server/pipeline-helpers.d.ts +77 -0
  658. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  659. package/dist/server/pipeline-interception.d.ts +59 -9
  660. package/dist/server/pipeline-interception.d.ts.map +1 -1
  661. package/dist/server/pipeline-metadata.d.ts +7 -1
  662. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  663. package/dist/server/pipeline-outcome.d.ts +49 -0
  664. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  665. package/dist/server/pipeline-phases.d.ts +70 -0
  666. package/dist/server/pipeline-phases.d.ts.map +1 -0
  667. package/dist/server/pipeline.d.ts +161 -20
  668. package/dist/server/pipeline.d.ts.map +1 -1
  669. package/dist/server/port-resolution.d.ts +31 -0
  670. package/dist/server/port-resolution.d.ts.map +1 -0
  671. package/dist/server/prebuilt/cache-key.d.ts +63 -0
  672. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  673. package/dist/server/prebuilt/capture-state.d.ts +57 -0
  674. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  675. package/dist/server/prebuilt/key-discipline.d.ts +52 -0
  676. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  677. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  678. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  679. package/dist/server/prebuilt/overlay.d.ts +100 -0
  680. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  681. package/dist/server/prebuilt/payload-source.d.ts +79 -0
  682. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  683. package/dist/server/prebuilt/slots.d.ts +99 -0
  684. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  685. package/dist/server/prebuilt/synthetic-store.d.ts +67 -0
  686. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  687. package/dist/server/prebuilt-builder.d.ts +121 -0
  688. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  689. package/dist/server/prebuilt-runtime.d.ts +111 -0
  690. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  691. package/dist/server/primitives.d.ts +131 -45
  692. package/dist/server/primitives.d.ts.map +1 -1
  693. package/dist/server/publish-params.d.ts +33 -0
  694. package/dist/server/publish-params.d.ts.map +1 -0
  695. package/dist/server/render-timeout.d.ts +51 -0
  696. package/dist/server/render-timeout.d.ts.map +1 -0
  697. package/dist/server/render-utils.d.ts +26 -0
  698. package/dist/server/render-utils.d.ts.map +1 -0
  699. package/dist/server/request-context.d.ts +111 -107
  700. package/dist/server/request-context.d.ts.map +1 -1
  701. package/dist/server/request-dep.d.ts +15 -0
  702. package/dist/server/request-dep.d.ts.map +1 -0
  703. package/dist/server/response-cache-policy.d.ts +3 -0
  704. package/dist/server/response-cache-policy.d.ts.map +1 -0
  705. package/dist/server/route-element-builder.d.ts +57 -30
  706. package/dist/server/route-element-builder.d.ts.map +1 -1
  707. package/dist/server/route-element-helpers.d.ts +12 -0
  708. package/dist/server/route-element-helpers.d.ts.map +1 -0
  709. package/dist/server/route-handler.d.ts +1 -1
  710. package/dist/server/route-handler.d.ts.map +1 -1
  711. package/dist/server/route-matcher.d.ts +40 -38
  712. package/dist/server/route-matcher.d.ts.map +1 -1
  713. package/dist/server/route-module-loader.d.ts +37 -0
  714. package/dist/server/route-module-loader.d.ts.map +1 -0
  715. package/dist/server/rsc-cache-key-guard.d.ts +78 -0
  716. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -0
  717. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  718. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  719. package/dist/server/rsc-entry/api-handler.d.ts +12 -3
  720. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  721. package/dist/server/rsc-entry/deny-fallback.d.ts +29 -0
  722. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  723. package/dist/server/rsc-entry/error-renderer.d.ts +34 -13
  724. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  725. package/dist/server/rsc-entry/helpers.d.ts +47 -51
  726. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  727. package/dist/server/rsc-entry/index.d.ts +40 -6
  728. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  729. package/dist/server/rsc-entry/render-route.d.ts +52 -0
  730. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  731. package/dist/server/rsc-entry/revalidate-renderer.d.ts +108 -0
  732. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  733. package/dist/server/rsc-entry/rsc-payload.d.ts +26 -6
  734. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  735. package/dist/server/rsc-entry/rsc-stream.d.ts +36 -3
  736. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  737. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  738. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  739. package/dist/server/rsc-entry/ssr-renderer.d.ts +38 -5
  740. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  741. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +89 -0
  742. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  743. package/dist/server/rsc-error-envelope.d.ts +11 -0
  744. package/dist/server/rsc-error-envelope.d.ts.map +1 -0
  745. package/dist/server/safe-load.d.ts +46 -0
  746. package/dist/server/safe-load.d.ts.map +1 -0
  747. package/dist/server/sensitive-fields.d.ts +74 -0
  748. package/dist/server/sensitive-fields.d.ts.map +1 -0
  749. package/dist/server/sitemap-generator.d.ts +130 -0
  750. package/dist/server/sitemap-generator.d.ts.map +1 -0
  751. package/dist/server/sitemap-handler.d.ts +22 -0
  752. package/dist/server/sitemap-handler.d.ts.map +1 -0
  753. package/dist/server/skippable-prefix.d.ts +29 -0
  754. package/dist/server/skippable-prefix.d.ts.map +1 -0
  755. package/dist/server/slot-interception.d.ts +80 -0
  756. package/dist/server/slot-interception.d.ts.map +1 -0
  757. package/dist/server/slot-resolver.d.ts +137 -7
  758. package/dist/server/slot-resolver.d.ts.map +1 -1
  759. package/dist/server/slot-subtree-contain.d.ts +54 -0
  760. package/dist/server/slot-subtree-contain.d.ts.map +1 -0
  761. package/dist/server/ssr-bridge-types.d.ts +160 -0
  762. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  763. package/dist/server/ssr-entry.d.ts +1 -43
  764. package/dist/server/ssr-entry.d.ts.map +1 -1
  765. package/dist/server/ssr-render.d.ts +69 -22
  766. package/dist/server/ssr-render.d.ts.map +1 -1
  767. package/dist/server/ssr-wrappers.d.ts +93 -0
  768. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  769. package/dist/server/state-tree-diff.d.ts +44 -9
  770. package/dist/server/state-tree-diff.d.ts.map +1 -1
  771. package/dist/server/static-generator.d.ts +112 -0
  772. package/dist/server/static-generator.d.ts.map +1 -0
  773. package/dist/server/static-not-found.d.ts +52 -0
  774. package/dist/server/static-not-found.d.ts.map +1 -0
  775. package/dist/server/status-code-resolver.d.ts +26 -15
  776. package/dist/server/status-code-resolver.d.ts.map +1 -1
  777. package/dist/server/stream-utils.d.ts +47 -0
  778. package/dist/server/stream-utils.d.ts.map +1 -0
  779. package/dist/server/tracing.d.ts +46 -11
  780. package/dist/server/tracing.d.ts.map +1 -1
  781. package/dist/server/tree-match.d.ts +49 -0
  782. package/dist/server/tree-match.d.ts.map +1 -0
  783. package/dist/server/types.d.ts +88 -7
  784. package/dist/server/types.d.ts.map +1 -1
  785. package/dist/server/utils/element-type.d.ts +50 -0
  786. package/dist/server/utils/element-type.d.ts.map +1 -0
  787. package/dist/server/utils/escape-html.d.ts +14 -0
  788. package/dist/server/utils/escape-html.d.ts.map +1 -0
  789. package/dist/server/version-skew.d.ts +61 -0
  790. package/dist/server/version-skew.d.ts.map +1 -0
  791. package/dist/server/workers-cache-bridge.d.ts +26 -0
  792. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  793. package/dist/shared/als-slots.d.ts +42 -0
  794. package/dist/shared/als-slots.d.ts.map +1 -0
  795. package/dist/shared/base-path.d.ts +56 -0
  796. package/dist/shared/base-path.d.ts.map +1 -0
  797. package/dist/shared/href-validation.d.ts +49 -0
  798. package/dist/shared/href-validation.d.ts.map +1 -0
  799. package/dist/shared/merge-search-params.d.ts +22 -0
  800. package/dist/shared/merge-search-params.d.ts.map +1 -0
  801. package/dist/shared/param-value.d.ts +104 -0
  802. package/dist/shared/param-value.d.ts.map +1 -0
  803. package/dist/shared/payload-root.d.ts +109 -0
  804. package/dist/shared/payload-root.d.ts.map +1 -0
  805. package/dist/shared/redirect-type.d.ts +17 -0
  806. package/dist/shared/redirect-type.d.ts.map +1 -0
  807. package/dist/shared/rsc-cache-key.d.ts +163 -0
  808. package/dist/shared/rsc-cache-key.d.ts.map +1 -0
  809. package/dist/shared/rsc-error-envelope.d.ts +16 -0
  810. package/dist/shared/rsc-error-envelope.d.ts.map +1 -0
  811. package/dist/shared/rsc-manifest.d.ts +28 -0
  812. package/dist/shared/rsc-manifest.d.ts.map +1 -0
  813. package/dist/shared/rsc-media-type.d.ts +52 -0
  814. package/dist/shared/rsc-media-type.d.ts.map +1 -0
  815. package/dist/shared/rsc-payload-path.d.ts +42 -0
  816. package/dist/shared/rsc-payload-path.d.ts.map +1 -0
  817. package/dist/shared/segment-info.d.ts +66 -0
  818. package/dist/shared/segment-info.d.ts.map +1 -0
  819. package/dist/shared/slot-params.d.ts +52 -0
  820. package/dist/shared/slot-params.d.ts.map +1 -0
  821. package/dist/shared/static-platform-files.d.ts +71 -0
  822. package/dist/shared/static-platform-files.d.ts.map +1 -0
  823. package/dist/shared/status-reason-phrase.d.ts +26 -0
  824. package/dist/shared/status-reason-phrase.d.ts.map +1 -0
  825. package/dist/shims/font-google.d.ts +1 -1
  826. package/dist/shims/font-google.d.ts.map +1 -1
  827. package/dist/shims/font-google.js +42 -0
  828. package/dist/shims/font-google.js.map +1 -0
  829. package/dist/shims/font-local.d.ts +26 -0
  830. package/dist/shims/font-local.d.ts.map +1 -0
  831. package/dist/shims/font-local.js +20 -0
  832. package/dist/shims/font-local.js.map +1 -0
  833. package/dist/shims/headers.d.ts +53 -1
  834. package/dist/shims/headers.d.ts.map +1 -1
  835. package/dist/shims/image.d.ts +120 -120
  836. package/dist/shims/image.d.ts.map +1 -1
  837. package/dist/shims/navigation-client.d.ts +25 -12
  838. package/dist/shims/navigation-client.d.ts.map +1 -1
  839. package/dist/shims/navigation-rsc.d.ts +21 -0
  840. package/dist/shims/navigation-rsc.d.ts.map +1 -0
  841. package/dist/shims/navigation.d.ts +10 -5
  842. package/dist/shims/navigation.d.ts.map +1 -1
  843. package/dist/utils/state-machine.d.ts +80 -0
  844. package/dist/utils/state-machine.d.ts.map +1 -0
  845. package/docs/api/30-api-server.mdx +236 -0
  846. package/docs/api/31-api-client.mdx +167 -0
  847. package/docs/api/32-api-cache.mdx +311 -0
  848. package/docs/api/33-api-search-params.mdx +176 -0
  849. package/docs/api/34-api-config.mdx +329 -0
  850. package/docs/api/35-api-typescript.mdx +91 -0
  851. package/docs/api/36-cli.mdx +192 -0
  852. package/docs/learn/00-introduction.mdx +109 -0
  853. package/docs/learn/01-quick-start.mdx +94 -0
  854. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  855. package/docs/learn/03-fetching-data.mdx +211 -0
  856. package/docs/learn/04-access-control.mdx +115 -0
  857. package/docs/learn/05-the-flush-point.mdx +175 -0
  858. package/docs/learn/06-typed-params.mdx +275 -0
  859. package/docs/learn/07-typed-routes.mdx +108 -0
  860. package/docs/learn/08-forms-and-actions.mdx +146 -0
  861. package/docs/learn/09-streaming.mdx +140 -0
  862. package/docs/learn/10-caching.mdx +252 -0
  863. package/docs/learn/11-middleware.mdx +158 -0
  864. package/docs/learn/12-error-handling.mdx +187 -0
  865. package/docs/learn/13-deploying.mdx +287 -0
  866. package/llms.txt +55 -0
  867. package/package.json +116 -30
  868. package/src/adapters/build-output-helper.ts +351 -0
  869. package/src/adapters/cloudflare-dev.ts +183 -0
  870. package/src/adapters/cloudflare-kv-cache.ts +207 -0
  871. package/src/adapters/cloudflare.ts +747 -130
  872. package/src/adapters/compress-module.ts +101 -88
  873. package/src/adapters/fs-identity.ts +156 -0
  874. package/src/adapters/nitro-presets.ts +139 -0
  875. package/src/adapters/nitro-preview.ts +340 -0
  876. package/src/adapters/nitro.ts +249 -426
  877. package/src/adapters/raw-imports.d.ts +5 -0
  878. package/src/adapters/shared.ts +274 -0
  879. package/src/adapters/types.ts +28 -7
  880. package/src/adapters/wrangler.d.ts +7 -0
  881. package/src/analyze/chains.ts +411 -0
  882. package/src/analyze/classify.ts +258 -0
  883. package/src/analyze/crawl-entry.ts +68 -0
  884. package/src/analyze/crawl.ts +500 -0
  885. package/src/analyze/graph-cache.ts +332 -0
  886. package/src/analyze/graph-command.ts +762 -0
  887. package/src/analyze/live-graph.ts +232 -0
  888. package/src/analyze/poison-rules.ts +165 -0
  889. package/src/analyze/poison-scan.ts +162 -0
  890. package/src/analyze/scan.ts +149 -0
  891. package/src/cache/cache-api.ts +107 -0
  892. package/src/cache/fast-hash.ts +5 -0
  893. package/src/cache/handler-store.ts +76 -0
  894. package/src/cache/index.ts +115 -22
  895. package/src/cache/invalidation-epoch.ts +93 -0
  896. package/src/cache/json-lossy-check.ts +75 -0
  897. package/src/cache/redis-handler.ts +198 -20
  898. package/src/cache/singleflight.ts +69 -6
  899. package/src/cache/sizeof.ts +33 -0
  900. package/src/cache/stable-stringify.ts +65 -2
  901. package/src/cache/store.ts +71 -0
  902. package/src/cache/stores/cloudflare-kv.ts +52 -0
  903. package/src/cache/stores/memory.ts +125 -0
  904. package/src/cache/stores/redis.ts +97 -0
  905. package/src/cache/stores/vercel.ts +59 -0
  906. package/src/cache/tag-aware-handler.ts +237 -0
  907. package/src/cache/timber-cache.ts +165 -40
  908. package/src/cdn/cloudflare-purge.ts +50 -0
  909. package/src/cdn/fastly-purge.ts +63 -0
  910. package/src/cdn/headers.ts +153 -0
  911. package/src/cdn/index.ts +23 -0
  912. package/src/cdn/purge-store.ts +34 -0
  913. package/src/cdn/workers-cache-purge.ts +34 -0
  914. package/src/cli-check.ts +507 -0
  915. package/src/cli-schema-sync.ts +401 -0
  916. package/src/cli.ts +323 -62
  917. package/src/client/browser-dev.ts +157 -2
  918. package/src/client/browser-entry/action-dispatch.ts +209 -0
  919. package/src/client/browser-entry/action-queue.ts +152 -0
  920. package/src/client/browser-entry/hmr.ts +70 -0
  921. package/src/client/browser-entry/hydrate.ts +148 -0
  922. package/src/client/browser-entry/index.ts +131 -0
  923. package/src/client/browser-entry/post-hydration.ts +123 -0
  924. package/src/client/browser-entry/router-init.ts +418 -0
  925. package/src/client/browser-entry/rsc-stream.ts +222 -0
  926. package/src/client/browser-entry/scroll.ts +50 -0
  927. package/src/client/deny-last-resort.tsx +54 -0
  928. package/src/client/error-boundary.tsx +289 -39
  929. package/src/client/error-reconstituter.tsx +79 -0
  930. package/src/client/form.tsx +36 -32
  931. package/src/client/global-context.ts +31 -0
  932. package/src/client/history.ts +81 -10
  933. package/src/client/index.ts +89 -53
  934. package/src/client/internal.ts +59 -0
  935. package/src/client/link.tsx +439 -151
  936. package/src/client/location-search.ts +15 -0
  937. package/src/client/navigation-api.ts +347 -0
  938. package/src/client/navigation-commit.ts +295 -0
  939. package/src/client/navigation-context.ts +67 -98
  940. package/src/client/navigation-root.tsx +224 -0
  941. package/src/client/navigation-transition.ts +327 -0
  942. package/src/client/nuqs-adapter.tsx +21 -9
  943. package/src/client/params-context.ts +187 -0
  944. package/src/client/react-root.ts +72 -0
  945. package/src/client/router-effects.ts +228 -0
  946. package/src/client/router-lifecycle.ts +354 -0
  947. package/src/client/router-pipeline.ts +490 -0
  948. package/src/client/router-ref.ts +3 -3
  949. package/src/client/router-skew.ts +30 -0
  950. package/src/client/router-types.ts +294 -0
  951. package/src/client/router.ts +435 -421
  952. package/src/client/rsc-fetch.ts +512 -73
  953. package/src/client/segment-cache.ts +327 -40
  954. package/src/client/segment-context.ts +7 -4
  955. package/src/client/segment-outlet.tsx +96 -0
  956. package/src/client/segment-update-context.ts +23 -0
  957. package/src/client/shallow-url.ts +22 -0
  958. package/src/client/slot-content-cache-context.ts +43 -0
  959. package/src/client/slot-context.ts +50 -0
  960. package/src/client/slot-outlet.tsx +22 -0
  961. package/src/client/slot-provider.tsx +32 -0
  962. package/src/client/ssr-data.ts +30 -9
  963. package/src/client/stale-client.ts +191 -0
  964. package/src/client/state.ts +29 -15
  965. package/src/client/status-page-marker.tsx +32 -0
  966. package/src/client/top-loader.tsx +13 -10
  967. package/src/client/unload-guard.ts +35 -3
  968. package/src/client/use-cookie.ts +70 -18
  969. package/src/client/use-link-status.ts +7 -7
  970. package/src/client/use-pathname.ts +22 -31
  971. package/src/client/use-pending-navigation.ts +40 -0
  972. package/src/client/use-query-states.ts +206 -36
  973. package/src/client/use-router.ts +6 -3
  974. package/src/client/use-search-params.ts +38 -49
  975. package/src/client/use-segment-params.ts +69 -0
  976. package/src/client/use-selected-layout-segment.ts +2 -2
  977. package/src/codec.ts +149 -0
  978. package/src/config-types.ts +322 -0
  979. package/src/config-validation.ts +347 -0
  980. package/src/cookies/define-cookie.ts +222 -53
  981. package/src/cookies/index.ts +13 -2
  982. package/src/cookies/json-cookie.ts +105 -0
  983. package/src/cookies/validation.ts +192 -0
  984. package/src/dev-tools/404-page.ts +286 -0
  985. package/src/dev-tools/browser-logs.ts +55 -0
  986. package/src/dev-tools/debug-channel.ts +151 -0
  987. package/src/dev-tools/dev-page-shell.ts +260 -0
  988. package/src/dev-tools/error-page.ts +331 -0
  989. package/src/dev-tools/holding-server.ts +185 -0
  990. package/src/dev-tools/hydration-overlay.ts +158 -0
  991. package/src/dev-tools/index.ts +83 -0
  992. package/src/dev-tools/instrumentation.ts +213 -0
  993. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  994. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  995. package/src/dev-tools/overlay.ts +469 -0
  996. package/src/dev-tools/stack-classifier.ts +75 -0
  997. package/src/dev-tools/terminal.ts +182 -0
  998. package/src/fonts/ast-walk.ts +235 -0
  999. package/src/fonts/ast.ts +479 -128
  1000. package/src/fonts/bundle.ts +138 -0
  1001. package/src/fonts/css.ts +1 -1
  1002. package/src/fonts/dev-middleware.ts +85 -0
  1003. package/src/fonts/fallbacks.ts +0 -23
  1004. package/src/fonts/google.ts +101 -19
  1005. package/src/fonts/local.ts +12 -11
  1006. package/src/fonts/paths.ts +58 -0
  1007. package/src/fonts/pipeline.ts +348 -0
  1008. package/src/fonts/transform.ts +311 -0
  1009. package/src/fonts/types.ts +52 -1
  1010. package/src/fonts/virtual-modules.ts +179 -0
  1011. package/src/index.ts +482 -377
  1012. package/src/params/codec-registry.ts +34 -0
  1013. package/src/params/define-schema.ts +115 -0
  1014. package/src/params/index.ts +17 -0
  1015. package/src/params/resolve-schema.ts +84 -0
  1016. package/src/plugin-context.ts +503 -0
  1017. package/src/plugins/adapter-build.ts +229 -7
  1018. package/src/plugins/build-manifest.ts +201 -26
  1019. package/src/plugins/build-report.ts +259 -47
  1020. package/src/plugins/cache.ts +243 -0
  1021. package/src/plugins/callsite-ast.ts +472 -0
  1022. package/src/plugins/callsite-jsx.ts +243 -0
  1023. package/src/plugins/chunks.ts +74 -5
  1024. package/src/plugins/client-chunks.ts +185 -0
  1025. package/src/plugins/cloudflare-wasm.ts +141 -0
  1026. package/src/plugins/content.ts +5 -1
  1027. package/src/plugins/dev-discovery.ts +218 -0
  1028. package/src/plugins/dev-server.ts +418 -94
  1029. package/src/plugins/entries.ts +141 -16
  1030. package/src/plugins/fonts.ts +234 -659
  1031. package/src/plugins/graph-endpoint.ts +532 -0
  1032. package/src/plugins/mdx.ts +108 -35
  1033. package/src/plugins/prebuilt-capture.ts +217 -0
  1034. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  1035. package/src/plugins/prebuilt.ts +655 -0
  1036. package/src/plugins/prerender-sugar.ts +320 -0
  1037. package/src/plugins/request-dep/analysis.ts +447 -0
  1038. package/src/plugins/request-dep/index.ts +376 -0
  1039. package/src/plugins/request-dep/origin.ts +310 -0
  1040. package/src/plugins/routing.ts +273 -277
  1041. package/src/plugins/server-bundle.ts +99 -14
  1042. package/src/plugins/shims.ts +259 -97
  1043. package/src/plugins/static-build.ts +708 -66
  1044. package/src/react-canary.d.ts +2 -0
  1045. package/src/routing/codegen-shared.ts +39 -0
  1046. package/src/routing/codegen-types.ts +62 -0
  1047. package/src/routing/codegen-write.ts +141 -0
  1048. package/src/routing/codegen.ts +349 -232
  1049. package/src/routing/collision-probe.ts +438 -0
  1050. package/src/routing/collision-spaces.ts +281 -0
  1051. package/src/routing/convention-lint.ts +516 -0
  1052. package/src/routing/export-detect.ts +448 -0
  1053. package/src/routing/file-cache.ts +23 -0
  1054. package/src/routing/index.ts +16 -7
  1055. package/src/routing/interception-overlap.ts +141 -0
  1056. package/src/routing/interception.ts +1044 -67
  1057. package/src/routing/link-codegen.ts +280 -0
  1058. package/src/routing/manifest-codegen.ts +226 -0
  1059. package/src/routing/scanner.ts +408 -223
  1060. package/src/routing/schema-validation.ts +155 -0
  1061. package/src/routing/segment-classify.ts +280 -0
  1062. package/src/routing/segment-codegen.ts +98 -0
  1063. package/src/routing/segment-keys.ts +186 -0
  1064. package/src/routing/slot-placement.ts +97 -0
  1065. package/src/routing/types.ts +75 -26
  1066. package/src/routing/walkers.ts +98 -0
  1067. package/src/rsc-runtime/rsc.ts +9 -0
  1068. package/src/rsc-runtime/ssr.ts +51 -0
  1069. package/src/rsc-runtime/transforms.ts +13 -0
  1070. package/src/rsc-runtime/vendor-types.d.ts +19 -0
  1071. package/src/schema-bridge.ts +380 -0
  1072. package/src/search-params/define.ts +677 -0
  1073. package/src/search-params/index.ts +14 -20
  1074. package/src/search-params/parse-total.ts +91 -0
  1075. package/src/search-params/serialize-equal.ts +14 -0
  1076. package/src/search-params/wrappers.ts +150 -0
  1077. package/src/server/access-gate.tsx +194 -56
  1078. package/src/server/action-client.ts +122 -31
  1079. package/src/server/action-encryption.ts +144 -0
  1080. package/src/server/action-handler.ts +256 -56
  1081. package/src/server/actions.ts +112 -68
  1082. package/src/server/als-registry.ts +160 -21
  1083. package/src/server/asset-headers.ts +15 -37
  1084. package/src/server/body-limits.ts +10 -2
  1085. package/src/server/build-manifest.ts +33 -57
  1086. package/src/server/canonicalize.ts +6 -3
  1087. package/src/server/chain-url-parts.ts +163 -0
  1088. package/src/server/children-interception.ts +115 -0
  1089. package/src/server/coalesce-tick.ts +75 -0
  1090. package/src/server/compress.ts +43 -8
  1091. package/src/server/cookie-context.ts +484 -0
  1092. package/src/server/cookie-parsing.ts +163 -0
  1093. package/src/server/csp-nonce.ts +70 -0
  1094. package/src/server/csrf.ts +39 -6
  1095. package/src/server/default-logger.ts +99 -0
  1096. package/src/server/default-status-page.ts +88 -0
  1097. package/src/server/deny-boundary.ts +515 -0
  1098. package/src/server/deny-renderer.ts +211 -113
  1099. package/src/server/dev-source-map.ts +31 -0
  1100. package/src/server/early-hints-sender.ts +4 -3
  1101. package/src/server/early-hints.ts +39 -29
  1102. package/src/server/error-boundary-wrapper.ts +157 -44
  1103. package/src/server/error-response-headers.ts +18 -0
  1104. package/src/server/fallback-error.ts +79 -102
  1105. package/src/server/flight-injection-state.ts +113 -0
  1106. package/src/server/flight-scripts.ts +67 -0
  1107. package/src/server/form-data.ts +124 -12
  1108. package/src/server/form-flash.ts +2 -2
  1109. package/src/server/head-response.ts +54 -0
  1110. package/src/server/html-injector-core.ts +512 -0
  1111. package/src/server/html-injectors.ts +272 -255
  1112. package/src/server/index.ts +40 -192
  1113. package/src/server/instrumentation.ts +1 -1
  1114. package/src/server/internal.ts +173 -0
  1115. package/src/server/logger.ts +73 -37
  1116. package/src/server/metadata-collector.ts +174 -0
  1117. package/src/server/metadata-platform.ts +2 -2
  1118. package/src/server/metadata-render.ts +30 -8
  1119. package/src/server/metadata-routes.ts +205 -24
  1120. package/src/server/metadata-social.ts +2 -2
  1121. package/src/server/metadata.ts +23 -2
  1122. package/src/server/middleware-runner.ts +32 -5
  1123. package/src/server/node-stream-transforms.ts +323 -0
  1124. package/src/server/nuqs-ssr-provider.tsx +8 -7
  1125. package/src/server/param-coercion.ts +198 -0
  1126. package/src/server/pipeline-helpers.ts +159 -0
  1127. package/src/server/pipeline-interception.ts +109 -33
  1128. package/src/server/pipeline-metadata.ts +15 -1
  1129. package/src/server/pipeline-outcome.ts +218 -0
  1130. package/src/server/pipeline-phases.ts +606 -0
  1131. package/src/server/pipeline.ts +333 -384
  1132. package/src/server/port-resolution.ts +53 -0
  1133. package/src/server/prebuilt/cache-key.ts +299 -0
  1134. package/src/server/prebuilt/capture-state.ts +89 -0
  1135. package/src/server/prebuilt/key-discipline.ts +122 -0
  1136. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  1137. package/src/server/prebuilt/overlay.ts +256 -0
  1138. package/src/server/prebuilt/payload-source.ts +202 -0
  1139. package/src/server/prebuilt/slots.ts +190 -0
  1140. package/src/server/prebuilt/synthetic-store.ts +122 -0
  1141. package/src/server/prebuilt-builder.ts +804 -0
  1142. package/src/server/prebuilt-runtime.ts +817 -0
  1143. package/src/server/primitives.ts +240 -98
  1144. package/src/server/publish-params.ts +42 -0
  1145. package/src/server/render-timeout.ts +108 -0
  1146. package/src/server/render-utils.ts +35 -0
  1147. package/src/server/request-context.ts +244 -334
  1148. package/src/server/request-dep.ts +37 -0
  1149. package/src/server/response-cache-policy.ts +45 -0
  1150. package/src/server/route-element-builder.ts +508 -355
  1151. package/src/server/route-element-helpers.ts +37 -0
  1152. package/src/server/route-handler.ts +40 -13
  1153. package/src/server/route-matcher.ts +165 -272
  1154. package/src/server/route-module-loader.ts +161 -0
  1155. package/src/server/rsc-cache-key-guard.ts +122 -0
  1156. package/src/server/rsc-entry/action-middleware-runner.ts +174 -0
  1157. package/src/server/rsc-entry/api-handler.ts +78 -34
  1158. package/src/server/rsc-entry/deny-fallback.ts +93 -0
  1159. package/src/server/rsc-entry/error-renderer.ts +341 -91
  1160. package/src/server/rsc-entry/helpers.ts +180 -106
  1161. package/src/server/rsc-entry/index.ts +371 -331
  1162. package/src/server/rsc-entry/render-route.ts +315 -0
  1163. package/src/server/rsc-entry/revalidate-renderer.ts +350 -0
  1164. package/src/server/rsc-entry/rsc-payload.ts +209 -55
  1165. package/src/server/rsc-entry/rsc-stream.ts +154 -26
  1166. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  1167. package/src/server/rsc-entry/ssr-renderer.ts +317 -60
  1168. package/src/server/rsc-entry/wrap-action-dispatch.ts +186 -0
  1169. package/src/server/rsc-error-envelope.ts +18 -0
  1170. package/src/server/rsc-prop-warnings.ts +1 -1
  1171. package/src/server/safe-load.ts +60 -0
  1172. package/src/server/sensitive-fields.ts +230 -0
  1173. package/src/server/server-only-guard-noop.js +3 -0
  1174. package/src/server/server-timing.ts +1 -1
  1175. package/src/server/sitemap-generator.ts +337 -0
  1176. package/src/server/sitemap-handler.ts +157 -0
  1177. package/src/server/skippable-prefix.ts +172 -0
  1178. package/src/server/slot-interception.ts +168 -0
  1179. package/src/server/slot-resolver.ts +707 -300
  1180. package/src/server/slot-subtree-contain.ts +255 -0
  1181. package/src/server/ssr-bridge-types.ts +165 -0
  1182. package/src/server/ssr-entry.ts +230 -85
  1183. package/src/server/ssr-render.ts +357 -85
  1184. package/src/server/ssr-wrappers.tsx +162 -0
  1185. package/src/server/state-tree-diff.ts +85 -30
  1186. package/src/server/static-generator.ts +715 -0
  1187. package/src/server/static-not-found.ts +134 -0
  1188. package/src/server/status-code-resolver.ts +107 -148
  1189. package/src/server/stream-utils.ts +292 -0
  1190. package/src/server/tracing.ts +128 -16
  1191. package/src/server/tree-match.ts +262 -0
  1192. package/src/server/types.ts +95 -10
  1193. package/src/server/utils/element-type.ts +88 -0
  1194. package/src/server/utils/escape-html.ts +20 -0
  1195. package/src/server/version-skew.ts +104 -0
  1196. package/src/server/waituntil-bridge.ts +1 -1
  1197. package/src/server/workers-cache-bridge.ts +33 -0
  1198. package/src/shared/als-slots.ts +74 -0
  1199. package/src/shared/base-path.ts +80 -0
  1200. package/src/shared/href-validation.ts +159 -0
  1201. package/src/shared/merge-search-params.ts +55 -0
  1202. package/src/shared/param-value.ts +281 -0
  1203. package/src/shared/payload-root.ts +152 -0
  1204. package/src/shared/redirect-type.ts +17 -0
  1205. package/src/shared/rsc-cache-key.ts +269 -0
  1206. package/src/shared/rsc-error-envelope.ts +16 -0
  1207. package/src/shared/rsc-manifest.ts +29 -0
  1208. package/src/shared/rsc-media-type.ts +59 -0
  1209. package/src/shared/rsc-payload-path.ts +45 -0
  1210. package/src/shared/segment-info.ts +67 -0
  1211. package/src/shared/slot-params.ts +109 -0
  1212. package/src/shared/static-platform-files.ts +75 -0
  1213. package/src/shared/status-reason-phrase.ts +61 -0
  1214. package/src/shims/font-google.ts +1 -1
  1215. package/src/shims/font-local.ts +34 -0
  1216. package/src/shims/headers.ts +122 -1
  1217. package/src/shims/navigation-client.ts +36 -32
  1218. package/src/shims/navigation-rsc.ts +47 -0
  1219. package/src/shims/navigation.ts +10 -7
  1220. package/src/utils/state-machine.ts +111 -0
  1221. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  1222. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  1223. package/dist/_chunks/debug-B3Gypr3D.js +0 -108
  1224. package/dist/_chunks/debug-B3Gypr3D.js.map +0 -1
  1225. package/dist/_chunks/format-RyoGQL74.js +0 -164
  1226. package/dist/_chunks/format-RyoGQL74.js.map +0 -1
  1227. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  1228. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  1229. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js.map +0 -1
  1230. package/dist/_chunks/request-context-BQUC8PHn.js +0 -330
  1231. package/dist/_chunks/request-context-BQUC8PHn.js.map +0 -1
  1232. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  1233. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  1234. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  1235. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  1236. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  1237. package/dist/_chunks/use-query-states-D5KaffOK.js +0 -109
  1238. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  1239. package/dist/adapters/cloudflare.js.map +0 -1
  1240. package/dist/cache/index.js.map +0 -1
  1241. package/dist/cache/register-cached-function.d.ts +0 -17
  1242. package/dist/cache/register-cached-function.d.ts.map +0 -1
  1243. package/dist/client/browser-entry.d.ts +0 -21
  1244. package/dist/client/browser-entry.d.ts.map +0 -1
  1245. package/dist/client/error-boundary.js.map +0 -1
  1246. package/dist/client/head.d.ts +0 -16
  1247. package/dist/client/head.d.ts.map +0 -1
  1248. package/dist/client/link-status-provider.d.ts +0 -11
  1249. package/dist/client/link-status-provider.d.ts.map +0 -1
  1250. package/dist/client/segment-merger.d.ts +0 -119
  1251. package/dist/client/segment-merger.d.ts.map +0 -1
  1252. package/dist/client/stale-reload.d.ts +0 -44
  1253. package/dist/client/stale-reload.d.ts.map +0 -1
  1254. package/dist/client/transition-root.d.ts +0 -74
  1255. package/dist/client/transition-root.d.ts.map +0 -1
  1256. package/dist/client/use-navigation-pending.d.ts +0 -26
  1257. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  1258. package/dist/client/use-params.d.ts +0 -92
  1259. package/dist/client/use-params.d.ts.map +0 -1
  1260. package/dist/content/index.d.ts +0 -11
  1261. package/dist/content/index.d.ts.map +0 -1
  1262. package/dist/content/index.js +0 -2
  1263. package/dist/plugins/cache-transform.d.ts +0 -36
  1264. package/dist/plugins/cache-transform.d.ts.map +0 -1
  1265. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  1266. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  1267. package/dist/plugins/dev-logs.d.ts.map +0 -1
  1268. package/dist/plugins/dynamic-transform.d.ts +0 -72
  1269. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  1270. package/dist/plugins/server-action-exports.d.ts +0 -26
  1271. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  1272. package/dist/routing/status-file-lint.d.ts +0 -33
  1273. package/dist/routing/status-file-lint.d.ts.map +0 -1
  1274. package/dist/search-params/analyze.d.ts +0 -54
  1275. package/dist/search-params/analyze.d.ts.map +0 -1
  1276. package/dist/search-params/builtin-codecs.d.ts +0 -105
  1277. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  1278. package/dist/search-params/codecs.d.ts +0 -53
  1279. package/dist/search-params/codecs.d.ts.map +0 -1
  1280. package/dist/search-params/create.d.ts +0 -106
  1281. package/dist/search-params/create.d.ts.map +0 -1
  1282. package/dist/search-params/registry.d.ts +0 -20
  1283. package/dist/search-params/registry.d.ts.map +0 -1
  1284. package/dist/server/client-module-map.d.ts +0 -47
  1285. package/dist/server/client-module-map.d.ts.map +0 -1
  1286. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  1287. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  1288. package/dist/server/dev-logger.d.ts.map +0 -1
  1289. package/dist/server/dev-span-processor.d.ts +0 -29
  1290. package/dist/server/dev-span-processor.d.ts.map +0 -1
  1291. package/dist/server/dev-warnings.d.ts +0 -129
  1292. package/dist/server/dev-warnings.d.ts.map +0 -1
  1293. package/dist/server/flush.d.ts +0 -74
  1294. package/dist/server/flush.d.ts.map +0 -1
  1295. package/dist/server/manifest-status-resolver.d.ts +0 -58
  1296. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  1297. package/dist/server/prerender.d.ts +0 -77
  1298. package/dist/server/prerender.d.ts.map +0 -1
  1299. package/dist/server/tree-builder.d.ts +0 -126
  1300. package/dist/server/tree-builder.d.ts.map +0 -1
  1301. package/dist/utils/directive-parser.d.ts +0 -70
  1302. package/dist/utils/directive-parser.d.ts.map +0 -1
  1303. package/src/cache/register-cached-function.ts +0 -103
  1304. package/src/client/browser-entry.ts +0 -678
  1305. package/src/client/head.ts +0 -61
  1306. package/src/client/link-status-provider.tsx +0 -30
  1307. package/src/client/segment-merger.ts +0 -339
  1308. package/src/client/stale-reload.ts +0 -87
  1309. package/src/client/transition-root.tsx +0 -166
  1310. package/src/client/use-navigation-pending.ts +0 -38
  1311. package/src/client/use-params.ts +0 -141
  1312. package/src/content/index.ts +0 -13
  1313. package/src/plugins/cache-transform.ts +0 -199
  1314. package/src/plugins/dev-error-overlay.ts +0 -230
  1315. package/src/plugins/dynamic-transform.ts +0 -161
  1316. package/src/plugins/server-action-exports.ts +0 -220
  1317. package/src/routing/status-file-lint.ts +0 -112
  1318. package/src/search-params/analyze.ts +0 -192
  1319. package/src/search-params/builtin-codecs.ts +0 -228
  1320. package/src/search-params/codecs.ts +0 -153
  1321. package/src/search-params/create.ts +0 -321
  1322. package/src/search-params/registry.ts +0 -31
  1323. package/src/server/client-module-map.ts +0 -58
  1324. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1325. package/src/server/dev-span-processor.ts +0 -78
  1326. package/src/server/dev-warnings.ts +0 -283
  1327. package/src/server/flush.ts +0 -182
  1328. package/src/server/manifest-status-resolver.ts +0 -215
  1329. package/src/server/prerender.ts +0 -139
  1330. package/src/server/tree-builder.ts +0 -382
  1331. package/src/shims/server-only-noop.js +0 -6
  1332. package/src/utils/directive-parser.ts +0 -529
@@ -15,22 +15,32 @@
15
15
  * See design/10-error-handling.md §"Status-Code Files"
16
16
  */
17
17
 
18
- import { createElement } from 'react';
19
- import { renderToReadableStream } from '#/rsc-runtime/rsc.js';
20
-
21
- import { DenySignal } from './primitives.js';
22
- import { logRenderError } from './logger.js';
23
- import { isDebug } from './debug.js';
24
- import { resolveMetadata, renderMetadataToElements } from './metadata.js';
25
- import { resolveManifestStatusFile } from './manifest-status-resolver.js';
26
- import type { ManifestSegmentNode } from './route-matcher.js';
27
- import type { RouteMatch } from './pipeline.js';
28
- import type { NavContext } from './ssr-entry.js';
29
- import type { ClientBootstrapConfig } from './html-injectors.js';
30
- import type { Metadata } from './types.js';
31
-
32
- /** RSC content type for client navigation payload requests. */
33
- const RSC_CONTENT_TYPE = 'text/x-component';
18
+ import { createElement, Fragment } from 'react';
19
+ import { renderToReadableStream } from '../rsc-runtime/rsc.ts';
20
+
21
+ import { DenySignal } from './primitives.ts';
22
+ import { appVisibleSearch } from '../shared/rsc-cache-key.ts';
23
+ import { getSlotParamsForClient } from './request-context.ts';
24
+ import { withPublishedParams } from './publish-params.ts';
25
+ import { renderDenyEntry, type DenyEntryShape } from './deny-boundary.ts';
26
+ import { getCookiesForSsr } from './cookie-context.ts';
27
+ import { logRenderError } from './logger.ts';
28
+ import { loadModule } from './safe-load.ts';
29
+ import { isDebug } from './debug.ts';
30
+ import { resolveMetadata, renderMetadataToElements } from './metadata.ts';
31
+ import { headElementsToReact } from './metadata.ts';
32
+ import { resolveStatusFile } from './status-code-resolver.ts';
33
+ import { defaultStatusPageResponse } from './default-status-page.ts';
34
+ import { rscErrorEnvelope } from './rsc-error-envelope.ts';
35
+ import type { ManifestSegmentNode } from './route-matcher.ts';
36
+ import type { RouteMatch } from './pipeline.ts';
37
+ import type { NavContext } from './ssr-bridge-types.ts';
38
+ import { flightInitScript } from './flight-scripts.ts';
39
+ import { getCspNonce } from './csp-nonce.ts';
40
+ import type { ClientBootstrapConfig } from './html-injectors.ts';
41
+ import type { Metadata } from './types.ts';
42
+ import { teeWithErrorPropagation } from './stream-utils.ts';
43
+ import { RSC_CONTENT_TYPE } from '../shared/rsc-media-type.ts';
34
44
 
35
45
  /** Layout component entry for deny page wrapping. */
36
46
  export interface LayoutEntry {
@@ -40,7 +50,6 @@ export interface LayoutEntry {
40
50
 
41
51
  /** Callback to create a debug channel sink for RSC rendering. */
42
52
  export type DebugChannelFactory = () => {
43
- readable: ReadableStream;
44
53
  writable: WritableStream;
45
54
  };
46
55
 
@@ -58,12 +67,45 @@ function isApiRoute(segments: ReadonlyArray<ManifestSegmentNode>): boolean {
58
67
  return !!leaf?.route;
59
68
  }
60
69
 
70
+ /**
71
+ * Build the deny page element for a resolved status file with the correct
72
+ * props contract for the file's convention. Delegates to renderDenyEntry
73
+ * (deny-boundary.ts) so the in-tree and re-render deny paths render
74
+ * identical elements — in particular, error.tsx serving a deny gets
75
+ * { error, digest, reset } via ErrorReconstituter, not bare deny props.
76
+ * See TIM-1081.
77
+ */
78
+ function buildDenyElement(
79
+ deny: DenySignal,
80
+ component: (...args: unknown[]) => unknown,
81
+ resolutionKind: 'exact' | 'category' | 'error',
82
+ filePath: string
83
+ ): React.ReactElement {
84
+ const entry: DenyEntryShape = {
85
+ component,
86
+ kind: resolutionKind === 'error' ? 'error' : 'status',
87
+ };
88
+ return renderDenyEntry(entry, deny.status, deny.data);
89
+ }
90
+
91
+ /**
92
+ * Supplies a replacement for the framework default page at the end of the
93
+ * chain. Returning `null` keeps the framework default.
94
+ *
95
+ * The dev server uses this to substitute its route-listing 404 page. It is a
96
+ * parameter rather than a check on the produced Response because "the app
97
+ * authored no status page" is a fact about the *chain*, and inspecting the
98
+ * result for it (e.g. an empty body) stops being true the moment the chain
99
+ * grows a real terminal — which is exactly what TIM-1258 did.
100
+ */
101
+ export type DefaultPageRenderer = (status: number, responseHeaders: Headers) => Response | null;
102
+
61
103
  /**
62
104
  * Render a status-code error page for a DenySignal.
63
105
  *
64
106
  * Resolves the appropriate status-code file from the segment chain based
65
- * on format preference. Returns an HTML Response (component), JSON Response,
66
- * or bare fallback Response.
107
+ * on format preference. Returns an HTML Response (component), a JSON Response,
108
+ * or the framework default status page.
67
109
  */
68
110
  export async function renderDenyPage(
69
111
  deny: DenySignal,
@@ -74,29 +116,41 @@ export async function renderDenyPage(
74
116
  responseHeaders: Headers,
75
117
  clientBootstrap: ClientBootstrapConfig,
76
118
  createDebugChannelSink: DebugChannelFactory,
77
- callSsr: CallSsrFn
119
+ callSsr: CallSsrFn,
120
+ defaultPage?: DefaultPageRenderer,
121
+ firstDeniedIndex = Infinity
78
122
  ): Promise<Response> {
123
+ // Clamp the resolution walk to the denied segment — a status file below
124
+ // the denial is invisible to the in-tree chain and must not be selected
125
+ // by the fallback. The denying segment itself IS included (matching
126
+ // buildDenyPageChain's start-at-i semantics), but its layout is not
127
+ // (the gate-outside-layout rule from TIM-1074). See TIM-1358.
128
+ const maxIndex = firstDeniedIndex < Infinity ? firstDeniedIndex : undefined;
129
+
79
130
  // API routes (route.ts) → JSON only, never render components
80
131
  if (isApiRoute(segments)) {
81
- const jsonResponse = await renderDenyPageJson(deny, segments, responseHeaders);
132
+ const jsonResponse = await renderDenyPageJson(deny, segments, responseHeaders, maxIndex);
82
133
  if (jsonResponse) return jsonResponse;
83
134
  return bareJsonResponse(deny.status, responseHeaders);
84
135
  }
85
136
 
86
137
  // Page routes → component chain first, JSON fallback only if no component found.
87
- const resolution = resolveManifestStatusFile(deny.status, segments, 'component');
138
+ const resolution = resolveStatusFile(deny.status, segments, 'component', maxIndex);
88
139
 
89
- // No component status file — try JSON chain before bare fallback
140
+ // No component status file — try JSON chain, then the framework default page.
90
141
  if (!resolution) {
91
- const jsonResponse = await renderDenyPageJson(deny, segments, responseHeaders);
142
+ const jsonResponse = await renderDenyPageJson(deny, segments, responseHeaders, maxIndex);
92
143
  if (jsonResponse) return jsonResponse;
93
- return new Response(null, { status: deny.status, headers: responseHeaders });
144
+ return (
145
+ defaultPage?.(deny.status, responseHeaders) ??
146
+ defaultStatusPageResponse(deny.status, responseHeaders)
147
+ );
94
148
  }
95
149
 
96
150
  // Dev warning: JSON status file exists but is shadowed by the component chain.
97
151
  // This helps developers understand why their .json file isn't being served.
98
152
  if (isDebug()) {
99
- const jsonResolution = resolveManifestStatusFile(deny.status, segments, 'json');
153
+ const jsonResolution = resolveStatusFile(deny.status, segments, 'json');
100
154
  if (jsonResolution) {
101
155
  console.warn(
102
156
  `[timber] ${jsonResolution.file.filePath} exists but is shadowed by ` +
@@ -107,83 +161,112 @@ export async function renderDenyPage(
107
161
  }
108
162
  }
109
163
 
110
- // Load the status-code page component
111
- const mod = (await resolution.file.load()) as Record<string, unknown>;
112
- if (!mod.default) {
113
- return new Response(null, { status: deny.status, headers: responseHeaders });
164
+ // Load the status-code page component. A file that resolved but exports no
165
+ // default — or whose module fails to import or evaluate — is not a usable
166
+ // component match: continue down the documented chain (JSON, then framework
167
+ // default) rather than returning an empty body or letting the loader's
168
+ // rejection escape request handling. Mirrors buildDenyPageChain and the
169
+ // error-file resolver, which both swallow the load failure.
170
+ const mod = await loadModule(resolution.file).catch(() => null);
171
+ if (!mod?.default) {
172
+ const jsonResponse = await renderDenyPageJson(deny, segments, responseHeaders, maxIndex);
173
+ if (jsonResponse) return jsonResponse;
174
+ return (
175
+ defaultPage?.(deny.status, responseHeaders) ??
176
+ defaultStatusPageResponse(deny.status, responseHeaders)
177
+ );
114
178
  }
115
179
 
116
180
  const ErrorPageComponent = mod.default as (...args: unknown[]) => unknown;
117
181
  const h = createElement as (...args: unknown[]) => React.ReactElement;
118
182
 
119
- // Check shell opt-out: export const shell = false
120
- const shellEnabled = mod.shell !== false;
121
-
122
- // 4xx status-code pages receive { status, dangerouslyPassData }
123
- // per design/10-error-handling.md §"Status-Code File Props"
124
- let element = h(ErrorPageComponent, {
125
- status: deny.status,
126
- dangerouslyPassData: deny.data,
127
- });
128
-
129
- // Wrap in layouts unless shell is explicitly disabled
130
- if (shellEnabled) {
131
- const resolvedSegments = new Set(segments.slice(0, resolution.segmentIndex + 1));
132
- const layoutsToWrap = layoutComponents.filter((lc) => resolvedSegments.has(lc.segment));
133
- for (let i = layoutsToWrap.length - 1; i >= 0; i--) {
134
- const { component } = layoutsToWrap[i];
135
- element = h(component, null, element);
136
- }
137
- } else if (isDebug()) {
138
- // Dev-mode: warn if shell=false might conflict with Suspense
139
- // The actual Suspense boundary check happens at render time in the pipeline.
140
- // This is a preemptive log for developer awareness.
141
- console.warn(
142
- `[timber] Status-code file ${resolution.file.filePath} exports shell = false. ` +
143
- 'If deny() fires inside a Suspense boundary, layouts are already committed and ' +
144
- 'cannot be unwrapped. The shell opt-out will be ignored in that case.'
145
- );
183
+ // 4xx status-code pages receive { status, data }; an
184
+ // error.tsx match gets { error, digest, reset } via ErrorReconstituter.
185
+ // See design/10-error-handling.md §"Status-Code File Props" and TIM-1081.
186
+ let element = buildDenyElement(
187
+ deny,
188
+ ErrorPageComponent,
189
+ resolution.kind,
190
+ resolution.file.filePath
191
+ );
192
+
193
+ // Wrap in layout shell, clamped so a denied segment's layout never
194
+ // executes — the gate-outside-layout rule from TIM-1074. The denied
195
+ // segment's layout was loaded into `layoutComponents` but must not
196
+ // appear in the fallback response. See TIM-1358.
197
+ const layoutCeiling = Math.min(resolution.segmentIndex, firstDeniedIndex - 1);
198
+ const resolvedSegments = new Set(segments.slice(0, layoutCeiling + 1));
199
+ const layoutsToWrap = layoutComponents.filter((lc) => resolvedSegments.has(lc.segment));
200
+ for (let i = layoutsToWrap.length - 1; i >= 0; i--) {
201
+ const { component } = layoutsToWrap[i];
202
+ element = h(component, null, element);
146
203
  }
147
204
 
148
- // Build head HTML from error page metadata (if any)
149
- let headHtml = '';
205
+ // Embed metadata as React elements in the tree — React 19 Float hoists
206
+ // them into <head> during SSR. See TIM-1151.
150
207
  if (mod.metadata) {
151
208
  const resolvedMeta = resolveMetadata([{ metadata: mod.metadata as Metadata, isPage: true }]);
152
209
  const headElements = renderMetadataToElements(resolvedMeta);
153
- for (const el of headElements) {
154
- if (el.tag === 'title' && el.content) {
155
- headHtml += `<title>${escapeHtml(el.content)}</title>`;
156
- } else if (el.attrs) {
157
- const attrs = Object.entries(el.attrs)
158
- .map(([k, v]) => `${k}="${escapeHtml(v)}"`)
159
- .join(' ');
160
- headHtml += `<${el.tag} ${attrs}>`;
161
- }
162
- }
210
+ const metaEl = headElementsToReact(headElements);
211
+ element = h(Fragment, null, metaEl, element);
163
212
  }
164
213
 
165
214
  // Render the error page to a fresh RSC Flight stream.
166
- const rscStream = renderToReadableStream(element, {
215
+ const rscStream = renderToReadableStream(withPublishedParams(element), {
216
+ signal: req.signal,
167
217
  onError(error: unknown) {
168
218
  logRenderError({ method: req.method, path: new URL(req.url).pathname, error });
169
219
  },
170
220
  debugChannel: createDebugChannelSink(),
171
221
  });
172
222
 
173
- const [ssrStream, inlineStream] = rscStream.tee();
223
+ const [ssrStream, inlineStream] = teeWithErrorPropagation(rscStream);
174
224
 
225
+ const slotParams = getSlotParamsForClient();
226
+
227
+ const denyUrl = new URL(req.url);
228
+ const nonce = getCspNonce();
175
229
  const navContext: NavContext = {
176
- pathname: new URL(req.url).pathname,
177
- params: match.params,
178
- searchParams: Object.fromEntries(new URL(req.url).searchParams),
230
+ pathname: denyUrl.pathname,
231
+ search: appVisibleSearch(denyUrl).search,
232
+ segmentParams: match.segmentParams,
233
+ slotParams,
179
234
  statusCode: deny.status,
180
235
  responseHeaders,
181
- headHtml,
236
+ headHtml: flightInitScript(nonce),
182
237
  bootstrapScriptContent: clientBootstrap.bootstrapScriptContent,
238
+ nonce,
183
239
  rscStream: inlineStream,
240
+ signal: req.signal,
241
+ cookies: getCookiesForSsr(),
184
242
  };
185
243
 
186
- return callSsr(ssrStream, navContext);
244
+ try {
245
+ // `await` inside the try on purpose — see the same note in
246
+ // rsc-entry/error-renderer.ts. A status page that crashes during SSR
247
+ // ends in the framework default page, not a blank body: the pipeline's
248
+ // own deny fallback catches this and can only produce an empty response,
249
+ // and a crashing 404.tsx is exactly when the reader has nothing else to
250
+ // go on (TIM-1258).
251
+ return await callSsr(ssrStream, navContext);
252
+ } catch (renderError) {
253
+ logRenderError({ method: req.method, path: new URL(req.url).pathname, error: renderError });
254
+ return defaultStatusPageResponse(deny.status, responseHeaders);
255
+ }
256
+ }
257
+
258
+ /**
259
+ * Terminal fallback for a client-navigation deny with no status-code file.
260
+ *
261
+ * The HTML path answers this case with the framework default page, but a
262
+ * client-navigation response cannot carry HTML — the Flight decoder would
263
+ * choke on it. Emit the hard-navigate envelope instead: the client abandons
264
+ * SPA navigation and the resulting document request renders that same default
265
+ * page. Before TIM-1258 this returned an empty Flight body, which the decoder
266
+ * hit as a malformed stream.
267
+ */
268
+ function denyHardNavigateResponse(status: number, responseHeaders: Headers): Response {
269
+ return rscErrorEnvelope(status, responseHeaders);
187
270
  }
188
271
 
189
272
  /**
@@ -196,44 +279,44 @@ export async function renderDenyPageAsRsc(
196
279
  deny: DenySignal,
197
280
  segments: ManifestSegmentNode[],
198
281
  layoutComponents: LayoutEntry[],
282
+ req: Request,
199
283
  responseHeaders: Headers,
200
- createDebugChannelSink: DebugChannelFactory
284
+ createDebugChannelSink: DebugChannelFactory,
285
+ firstDeniedIndex = Infinity
201
286
  ): Promise<Response> {
202
- const resolution = resolveManifestStatusFile(deny.status, segments, 'component');
287
+ const maxIndex = firstDeniedIndex < Infinity ? firstDeniedIndex : undefined;
288
+ const resolution = resolveStatusFile(deny.status, segments, 'component', maxIndex);
203
289
 
204
290
  if (!resolution) {
205
- responseHeaders.set('content-type', `${RSC_CONTENT_TYPE}; charset=utf-8`);
206
- return new Response(null, { status: deny.status, headers: responseHeaders });
291
+ return denyHardNavigateResponse(deny.status, responseHeaders);
207
292
  }
208
293
 
209
- const mod = (await resolution.file.load()) as Record<string, unknown>;
210
- if (!mod.default) {
211
- responseHeaders.set('content-type', `${RSC_CONTENT_TYPE}; charset=utf-8`);
212
- return new Response(null, { status: deny.status, headers: responseHeaders });
294
+ const mod = await loadModule(resolution.file).catch(() => null);
295
+ if (!mod?.default) {
296
+ return denyHardNavigateResponse(deny.status, responseHeaders);
213
297
  }
214
298
 
215
299
  const ErrorPageComponent = mod.default as (...args: unknown[]) => unknown;
216
300
  const h = createElement as (...args: unknown[]) => React.ReactElement;
217
301
 
218
- // Check shell opt-out
219
- const shellEnabled = mod.shell !== false;
220
-
221
- let element = h(ErrorPageComponent, {
222
- status: deny.status,
223
- dangerouslyPassData: deny.data,
224
- });
225
-
226
- // Wrap in layouts unless shell is explicitly disabled
227
- if (shellEnabled) {
228
- const resolvedSegments = new Set(segments.slice(0, resolution.segmentIndex + 1));
229
- const layoutsToWrap = layoutComponents.filter((lc) => resolvedSegments.has(lc.segment));
230
- for (let i = layoutsToWrap.length - 1; i >= 0; i--) {
231
- const { component } = layoutsToWrap[i];
232
- element = h(component, null, element);
233
- }
302
+ let element = buildDenyElement(
303
+ deny,
304
+ ErrorPageComponent,
305
+ resolution.kind,
306
+ resolution.file.filePath
307
+ );
308
+
309
+ // Wrap in layout shell, clamped to exclude denied segment layouts. TIM-1358.
310
+ const layoutCeiling = Math.min(resolution.segmentIndex, firstDeniedIndex - 1);
311
+ const resolvedSegments = new Set(segments.slice(0, layoutCeiling + 1));
312
+ const layoutsToWrap = layoutComponents.filter((lc) => resolvedSegments.has(lc.segment));
313
+ for (let i = layoutsToWrap.length - 1; i >= 0; i--) {
314
+ const { component } = layoutsToWrap[i];
315
+ element = h(component, null, element);
234
316
  }
235
317
 
236
- const rscStream = renderToReadableStream(element, {
318
+ const rscStream = renderToReadableStream(withPublishedParams(element), {
319
+ signal: req.signal,
237
320
  onError(error: unknown) {
238
321
  console.error('[timber] Error page RSC render error:', error);
239
322
  },
@@ -241,9 +324,12 @@ export async function renderDenyPageAsRsc(
241
324
  });
242
325
 
243
326
  responseHeaders.set('content-type', `${RSC_CONTENT_TYPE}; charset=utf-8`);
244
- responseHeaders.set('Vary', 'Accept');
327
+ // 200, like every Flight payload response: the deny is the page in the body, and
328
+ // the client router — the only reader of this status — renders what it is
329
+ // sent. See design/04-authorization.md §"Status codes on the RSC payload
330
+ // path" (TIM-1495).
245
331
  return new Response(rscStream, {
246
- status: deny.status,
332
+ status: 200,
247
333
  headers: responseHeaders,
248
334
  });
249
335
  }
@@ -261,9 +347,10 @@ export async function renderDenyPageAsRsc(
261
347
  async function renderDenyPageJson(
262
348
  deny: DenySignal,
263
349
  segments: ManifestSegmentNode[],
264
- responseHeaders: Headers
350
+ responseHeaders: Headers,
351
+ maxIndex?: number
265
352
  ): Promise<Response | null> {
266
- const resolution = resolveManifestStatusFile(deny.status, segments, 'json');
353
+ const resolution = resolveStatusFile(deny.status, segments, 'json', maxIndex);
267
354
 
268
355
  if (!resolution) {
269
356
  return null;
@@ -272,7 +359,24 @@ async function renderDenyPageJson(
272
359
  // JSON status files are loaded as modules that export the JSON content.
273
360
  // The manifest's load() imports the .json file, which Vite handles as a
274
361
  // default export of the parsed JSON object.
275
- const mod = (await resolution.file.load()) as Record<string, unknown>;
362
+ // A .json status file that fails to load is not a usable match — return
363
+ // null so the caller continues to the framework default rather than
364
+ // rejecting out of the chain.
365
+ // Dev warning: deny(status, { dangerouslyPassData }) carries data but JSON
366
+ // status files are static bodies — the data is silently dropped. The same
367
+ // deny() would deliver the data to a .tsx file's data prop. See
368
+ // design/10-error-handling.md §"Status-Code File Variants".
369
+ if (isDebug() && deny.data !== undefined) {
370
+ console.warn(
371
+ `[timber] deny(${deny.status}, data) resolved to ${resolution.file.filePath}, ` +
372
+ `which is a static JSON file. The data argument is dropped — JSON status files ` +
373
+ `are returned verbatim with no interpolation. If you need the data in the ` +
374
+ `response, use a .tsx status file or a route handler (route.ts).`
375
+ );
376
+ }
377
+
378
+ const mod = await loadModule(resolution.file).catch(() => null);
379
+ if (!mod) return null;
276
380
  const jsonContent = mod.default ?? mod;
277
381
 
278
382
  responseHeaders.set('content-type', 'application/json; charset=utf-8');
@@ -294,10 +398,4 @@ function bareJsonResponse(status: number, responseHeaders: Headers): Response {
294
398
  });
295
399
  }
296
400
 
297
- function escapeHtml(str: string): string {
298
- return str
299
- .replace(/&/g, '&amp;')
300
- .replace(/</g, '&lt;')
301
- .replace(/>/g, '&gt;')
302
- .replace(/"/g, '&quot;');
303
- }
401
+ // escapeHtml imported from server/utils/escape-html.ts
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Dev-only error source-mapping bridge.
3
+ *
4
+ * Stores a callback that rewrites an error's stack trace using the Vite
5
+ * dev server's module graph. Set by the RSC entry on startup (via
6
+ * setDevSourceMapHandler), consumed by error renderers before generating
7
+ * error pages.
8
+ *
9
+ * In production, the callback is never set — all calls are no-ops.
10
+ *
11
+ * See TIM-811.
12
+ */
13
+
14
+ let _sourceMapError: ((error: Error) => void) | undefined;
15
+
16
+ /**
17
+ * Set the source-map callback. Called once during dev server initialization.
18
+ */
19
+ export function setSourceMapCallback(fn: (error: Error) => void): void {
20
+ _sourceMapError = fn;
21
+ }
22
+
23
+ /**
24
+ * Source-map an error's stack trace in-place if the callback is available.
25
+ * No-op in production or before the dev server initializes.
26
+ */
27
+ export function sourceMapError(error: unknown): void {
28
+ if (_sourceMapError && error instanceof Error) {
29
+ _sourceMapError(error);
30
+ }
31
+ }
@@ -18,7 +18,8 @@
18
18
  * Design doc: 02-rendering-pipeline.md §"Early Hints (103)"
19
19
  */
20
20
 
21
- import { earlyHintsSenderAls } from './als-registry.js';
21
+ import { earlyHintsSenderAls } from './als-registry.ts';
22
+ import { swallow } from './logger.ts';
22
23
 
23
24
  /** Function that sends Link header values as a 103 Early Hints response. */
24
25
  export type EarlyHintsSenderFn = (links: string[]) => void;
@@ -47,7 +48,7 @@ export function sendEarlyHints103(links: string[]): void {
47
48
  if (!sender) return;
48
49
  try {
49
50
  sender(links);
50
- } catch {
51
- // Sending 103 is best-effort — failure never blocks the request.
51
+ } catch (err) {
52
+ swallow(err, 'early hints 103 send failed');
52
53
  }
53
54
  }
@@ -19,8 +19,8 @@ import {
19
19
  collectRouteCss,
20
20
  collectRouteFonts,
21
21
  collectRouteModulepreloads,
22
- } from './build-manifest.js';
23
- import type { BuildManifest } from './build-manifest.js';
22
+ } from './build-manifest.ts';
23
+ import type { BuildManifest } from './build-manifest.ts';
24
24
 
25
25
  /** Minimal segment shape needed for early hint collection. */
26
26
  interface SegmentWithFiles {
@@ -58,15 +58,31 @@ export interface EarlyHint {
58
58
  /**
59
59
  * Format a single EarlyHint as a Link header value.
60
60
  *
61
+ * Attribute order: `as` before `rel` to match Cloudflare CDN's cached
62
+ * Early Hints format. Cloudflare caches Link headers from 200 responses
63
+ * and re-emits them as 103 Early Hints on subsequent requests. If our
64
+ * attribute order differs from Cloudflare's cached copy, the browser
65
+ * sees two preload headers for the same URL (different attribute order)
66
+ * and warns "Preload was ignored." Matching the order ensures the
67
+ * browser deduplicates them correctly.
68
+ *
61
69
  * Examples:
62
- * `</styles/root.css>; rel=preload; as=style`
63
- * `</fonts/inter.woff2>; rel=preload; as=font; crossorigin=anonymous`
70
+ * `</styles/root.css>; as=style; rel=preload`
71
+ * `</fonts/inter.woff2>; as=font; rel=preload; crossorigin=anonymous`
64
72
  * `</_timber/client.js>; rel=modulepreload`
65
73
  * `<https://fonts.googleapis.com>; rel=preconnect`
66
74
  */
67
75
  export function formatLinkHeader(hint: EarlyHint): string {
76
+ // For preload hints, emit `as` before `rel` to match Cloudflare's
77
+ // cached header format and avoid duplicate preload warnings.
78
+ if (hint.as !== undefined) {
79
+ let value = `<${hint.href}>; as=${hint.as}; rel=${hint.rel}`;
80
+ if (hint.crossOrigin !== undefined) value += `; crossorigin=${hint.crossOrigin}`;
81
+ if (hint.fetchPriority !== undefined) value += `; fetchpriority=${hint.fetchPriority}`;
82
+ return value;
83
+ }
84
+ // For modulepreload / preconnect (no `as`), emit rel first.
68
85
  let value = `<${hint.href}>; rel=${hint.rel}`;
69
- if (hint.as !== undefined) value += `; as=${hint.as}`;
70
86
  if (hint.crossOrigin !== undefined) value += `; crossorigin=${hint.crossOrigin}`;
71
87
  if (hint.fetchPriority !== undefined) value += `; fetchpriority=${hint.fetchPriority}`;
72
88
  return value;
@@ -84,17 +100,11 @@ export interface EarlyHintOptions {
84
100
  * Collect all Link header strings for a matched route's segment chain.
85
101
  *
86
102
  * Walks the build manifest to emit hints for:
87
- * - CSS stylesheets (rel=preload; as=style)
88
- * - Font assets (rel=preload; as=font; crossorigin)
103
+ * - CSS stylesheets (as=style; rel=preload)
104
+ * - Font assets (as=font; rel=preload; crossorigin)
89
105
  * - JS modulepreload hints (rel=modulepreload) — unless skipJs is set
90
106
  *
91
- * Also emits global CSS from the `_global` manifest key. Route files
92
- * are server components that don't appear in the client bundle, so
93
- * per-route CSS keying doesn't work with the RSC plugin. The `_global`
94
- * key contains all CSS assets from the client build — fine for early
95
- * hints since they're just prefetch signals.
96
- *
97
- * Returns formatted Link header strings, deduplicated, root → leaf order.
107
+ * Returns formatted Link header strings, deduplicated by URL, root → leaf order.
98
108
  * Returns an empty array in dev mode (manifest is empty).
99
109
  */
100
110
  export function collectEarlyHintHeaders(
@@ -103,30 +113,30 @@ export function collectEarlyHintHeaders(
103
113
  options?: EarlyHintOptions
104
114
  ): string[] {
105
115
  const result: string[] = [];
106
- const seen = new Set<string>();
116
+ // Dedup by URL (href), not by full formatted header string.
117
+ // Different code paths can produce the same URL with different attribute
118
+ // ordering, which would bypass a full-string dedup and produce duplicate
119
+ // Link headers that trigger browser "preload was ignored" warnings.
120
+ const seenUrls = new Set<string>();
107
121
 
108
- const add = (header: string) => {
109
- if (!seen.has(header)) {
110
- seen.add(header);
122
+ const add = (url: string, header: string) => {
123
+ if (!seenUrls.has(url)) {
124
+ seenUrls.add(url);
111
125
  result.push(header);
112
126
  }
113
127
  };
114
128
 
115
- // Per-route CSS — rel=preload; as=style
129
+ // Per-route CSS — as=style; rel=preload
130
+ // The HTML <head> also contains a matching <link rel="preload" as="style">
131
+ // tag so browsers can deduplicate the 103 hint against the HTML tag.
116
132
  for (const url of collectRouteCss(segments, manifest)) {
117
- add(formatLinkHeader({ href: url, rel: 'preload', as: 'style' }));
118
- }
119
-
120
- // Global CSS — all CSS assets from the client bundle.
121
- // Covers CSS that the RSC plugin injects via data-rsc-css-href,
122
- // which isn't keyed to route segments in our manifest.
123
- for (const url of manifest.css['_global'] ?? []) {
124
- add(formatLinkHeader({ href: url, rel: 'preload', as: 'style' }));
133
+ add(url, formatLinkHeader({ href: url, rel: 'preload', as: 'style' }));
125
134
  }
126
135
 
127
- // Fonts — rel=preload; as=font; crossorigin (crossorigin required per spec)
136
+ // Fonts — as=font; rel=preload; crossorigin (crossorigin required per spec)
128
137
  for (const font of collectRouteFonts(segments, manifest)) {
129
138
  add(
139
+ font.href,
130
140
  formatLinkHeader({ href: font.href, rel: 'preload', as: 'font', crossOrigin: 'anonymous' })
131
141
  );
132
142
  }
@@ -134,7 +144,7 @@ export function collectEarlyHintHeaders(
134
144
  // JS chunks — rel=modulepreload (skip when client JS is disabled)
135
145
  if (!options?.skipJs) {
136
146
  for (const url of collectRouteModulepreloads(segments, manifest)) {
137
- add(formatLinkHeader({ href: url, rel: 'modulepreload' }));
147
+ add(url, formatLinkHeader({ href: url, rel: 'modulepreload' }));
138
148
  }
139
149
  }
140
150