@rangojs/router 0.0.0-experimental.35 → 0.0.0-experimental.358c376d

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 (1311) hide show
  1. package/AGENTS.md +11 -3
  2. package/README.md +320 -735
  3. package/dist/bin/rango.js +983 -241
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/types/__internal.d.ts +127 -0
  6. package/dist/types/bin/rango.d.ts +1 -0
  7. package/dist/types/browser/action-coordinator.d.ts +57 -0
  8. package/dist/types/browser/action-fence.d.ts +33 -0
  9. package/dist/types/browser/app-shell.d.ts +34 -0
  10. package/dist/types/browser/app-version.d.ts +6 -0
  11. package/dist/types/browser/connection-warmup.d.ts +31 -0
  12. package/dist/types/browser/cookie-name.d.ts +66 -0
  13. package/dist/types/browser/dev-discovery.d.ts +11 -0
  14. package/dist/types/browser/event-controller.d.ts +231 -0
  15. package/dist/types/browser/history-state.d.ts +26 -0
  16. package/dist/types/browser/index.d.ts +1 -0
  17. package/dist/types/browser/intercept-utils.d.ts +30 -0
  18. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  19. package/dist/types/browser/link-interceptor.d.ts +53 -0
  20. package/dist/types/browser/logging.d.ts +33 -0
  21. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  22. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  23. package/dist/types/browser/navigation-client.d.ts +17 -0
  24. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  25. package/dist/types/browser/navigation-store.d.ts +85 -0
  26. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  27. package/dist/types/browser/network-error-handler.d.ts +35 -0
  28. package/dist/types/browser/notify-listeners.d.ts +2 -0
  29. package/dist/types/browser/partial-update.d.ts +61 -0
  30. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  31. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  32. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  33. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  34. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  35. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  36. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  37. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  38. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  39. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  40. package/dist/types/browser/rango-state.d.ts +56 -0
  41. package/dist/types/browser/react/Link.d.ts +132 -0
  42. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types/browser/react/context.d.ts +57 -0
  45. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types/browser/react/index.d.ts +1 -0
  47. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types/browser/react/location-state.d.ts +29 -0
  49. package/dist/types/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types/browser/react/use-action.d.ts +61 -0
  53. package/dist/types/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types/browser/react/use-href.d.ts +32 -0
  55. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types/browser/react/use-params.d.ts +21 -0
  59. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types/browser/react/use-router.d.ts +23 -0
  62. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types/browser/response-adapter.d.ts +58 -0
  65. package/dist/types/browser/rsc-router.d.ts +146 -0
  66. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types/browser/types.d.ts +546 -0
  71. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types/build/generate-manifest.d.ts +106 -0
  74. package/dist/types/build/generate-route-types.d.ts +8 -0
  75. package/dist/types/build/index.d.ts +21 -0
  76. package/dist/types/build/merge-full-manifests.d.ts +3 -0
  77. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  78. package/dist/types/build/route-trie.d.ts +20 -0
  79. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  80. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  81. package/dist/types/build/route-types/codegen.d.ts +16 -0
  82. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  83. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  84. package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
  85. package/dist/types/build/route-types/router-processing.d.ts +81 -0
  86. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  87. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  88. package/dist/types/build/runtime-discovery.d.ts +24 -0
  89. package/dist/types/cache/background-task.d.ts +21 -0
  90. package/dist/types/cache/cache-error.d.ts +71 -0
  91. package/dist/types/cache/cache-exec-scope.d.ts +31 -0
  92. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  93. package/dist/types/cache/cache-policy.d.ts +59 -0
  94. package/dist/types/cache/cache-runtime.d.ts +51 -0
  95. package/dist/types/cache/cache-scope.d.ts +215 -0
  96. package/dist/types/cache/cache-tag.d.ts +79 -0
  97. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  98. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  99. package/dist/types/cache/cf/cf-cache-store.d.ts +616 -0
  100. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  101. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  102. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  103. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  104. package/dist/types/cache/cf/index.d.ts +4 -0
  105. package/dist/types/cache/document-cache.d.ts +71 -0
  106. package/dist/types/cache/handle-capture.d.ts +23 -0
  107. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  108. package/dist/types/cache/index.d.ts +9 -0
  109. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  110. package/dist/types/cache/profile-registry.d.ts +40 -0
  111. package/dist/types/cache/read-through-swr.d.ts +61 -0
  112. package/dist/types/cache/search-params-filter.d.ts +64 -0
  113. package/dist/types/cache/segment-codec.d.ts +78 -0
  114. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  115. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  116. package/dist/types/cache/taint.d.ts +77 -0
  117. package/dist/types/cache/types.d.ts +503 -0
  118. package/dist/types/cache/vercel/index.d.ts +1 -0
  119. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  120. package/dist/types/client-urls/client-root.d.ts +38 -0
  121. package/dist/types/client-urls/client-urls.d.ts +5 -0
  122. package/dist/types/client-urls/navigation.d.ts +38 -0
  123. package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
  124. package/dist/types/client-urls/server-projection.d.ts +62 -0
  125. package/dist/types/client-urls/types.d.ts +144 -0
  126. package/dist/types/client.d.ts +191 -0
  127. package/dist/types/client.rsc.d.ts +41 -0
  128. package/dist/types/cloudflare/index.d.ts +7 -0
  129. package/dist/types/cloudflare/tracing.d.ts +57 -0
  130. package/dist/types/component-utils.d.ts +46 -0
  131. package/dist/types/components/DefaultDocument.d.ts +13 -0
  132. package/dist/types/context-var.d.ts +84 -0
  133. package/dist/types/debug.d.ts +57 -0
  134. package/dist/types/decode-loader-results.d.ts +42 -0
  135. package/dist/types/default-error-boundary.d.ts +10 -0
  136. package/dist/types/defer.d.ts +89 -0
  137. package/dist/types/deps/browser.d.ts +1 -0
  138. package/dist/types/deps/html-stream-client.d.ts +1 -0
  139. package/dist/types/deps/html-stream-server.d.ts +1 -0
  140. package/dist/types/deps/rsc.d.ts +1 -0
  141. package/dist/types/deps/ssr.d.ts +1 -0
  142. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  143. package/dist/types/encode-kv.d.ts +35 -0
  144. package/dist/types/errors.d.ts +227 -0
  145. package/dist/types/escape-script.d.ts +44 -0
  146. package/dist/types/handle.d.ts +93 -0
  147. package/dist/types/handles/MetaTags.d.ts +17 -0
  148. package/dist/types/handles/Scripts.d.ts +38 -0
  149. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  150. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  151. package/dist/types/handles/is-thenable.d.ts +10 -0
  152. package/dist/types/handles/meta.d.ts +43 -0
  153. package/dist/types/handles/script.d.ts +139 -0
  154. package/dist/types/host/cookie-handler.d.ts +8 -0
  155. package/dist/types/host/errors.d.ts +40 -0
  156. package/dist/types/host/index.d.ts +33 -0
  157. package/dist/types/host/pattern-matcher.d.ts +30 -0
  158. package/dist/types/host/router.d.ts +12 -0
  159. package/dist/types/host/testing.d.ts +41 -0
  160. package/dist/types/host/types.d.ts +148 -0
  161. package/dist/types/host/utils.d.ts +20 -0
  162. package/dist/types/href-client.d.ts +214 -0
  163. package/dist/types/index.d.ts +113 -0
  164. package/dist/types/index.rsc.d.ts +52 -0
  165. package/dist/types/internal-debug.d.ts +1 -0
  166. package/dist/types/loader-redirect.d.ts +18 -0
  167. package/dist/types/loader-store.d.ts +193 -0
  168. package/dist/types/loader.d.ts +18 -0
  169. package/dist/types/loader.rsc.d.ts +18 -0
  170. package/dist/types/missing-id-error.d.ts +1 -0
  171. package/dist/types/outlet-context.d.ts +24 -0
  172. package/dist/types/outlet-provider.d.ts +14 -0
  173. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  174. package/dist/types/prerender/param-hash.d.ts +6 -0
  175. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  176. package/dist/types/prerender/store.d.ts +63 -0
  177. package/dist/types/prerender.d.ts +292 -0
  178. package/dist/types/redirect-origin.d.ts +67 -0
  179. package/dist/types/regex-escape.d.ts +6 -0
  180. package/dist/types/render-error-thrower.d.ts +13 -0
  181. package/dist/types/response-utils.d.ts +35 -0
  182. package/dist/types/reverse.d.ts +206 -0
  183. package/dist/types/root-error-boundary.d.ts +32 -0
  184. package/dist/types/route-content-wrapper.d.ts +81 -0
  185. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  186. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  187. package/dist/types/route-definition/helpers-types.d.ts +404 -0
  188. package/dist/types/route-definition/index.d.ts +7 -0
  189. package/dist/types/route-definition/redirect.d.ts +48 -0
  190. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  191. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  192. package/dist/types/route-definition.d.ts +1 -0
  193. package/dist/types/route-map-builder.d.ts +102 -0
  194. package/dist/types/route-name.d.ts +27 -0
  195. package/dist/types/route-types.d.ts +172 -0
  196. package/dist/types/router/basename.d.ts +10 -0
  197. package/dist/types/router/content-negotiation.d.ts +91 -0
  198. package/dist/types/router/debug-manifest.d.ts +7 -0
  199. package/dist/types/router/error-handling.d.ts +110 -0
  200. package/dist/types/router/find-match.d.ts +19 -0
  201. package/dist/types/router/handler-context.d.ts +41 -0
  202. package/dist/types/router/instrument.d.ts +191 -0
  203. package/dist/types/router/intercept-resolution.d.ts +91 -0
  204. package/dist/types/router/lazy-includes.d.ts +26 -0
  205. package/dist/types/router/loader-resolution.d.ts +85 -0
  206. package/dist/types/router/logging.d.ts +41 -0
  207. package/dist/types/router/manifest.d.ts +8 -0
  208. package/dist/types/router/match-api.d.ts +19 -0
  209. package/dist/types/router/match-context.d.ts +184 -0
  210. package/dist/types/router/match-handlers.d.ts +48 -0
  211. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  212. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  213. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  214. package/dist/types/router/match-middleware/index.d.ts +80 -0
  215. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  216. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  217. package/dist/types/router/match-pipelines.d.ts +103 -0
  218. package/dist/types/router/match-result.d.ts +114 -0
  219. package/dist/types/router/metrics.d.ts +6 -0
  220. package/dist/types/router/middleware-types.d.ts +74 -0
  221. package/dist/types/router/middleware.d.ts +116 -0
  222. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  223. package/dist/types/router/params-util.d.ts +8 -0
  224. package/dist/types/router/parse-pattern.d.ts +38 -0
  225. package/dist/types/router/pattern-matching.d.ts +169 -0
  226. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  227. package/dist/types/router/prefetch-default.d.ts +28 -0
  228. package/dist/types/router/prefetch-limits.d.ts +20 -0
  229. package/dist/types/router/prerender-match.d.ts +53 -0
  230. package/dist/types/router/preview-match.d.ts +22 -0
  231. package/dist/types/router/request-classification.d.ts +104 -0
  232. package/dist/types/router/revalidation.d.ts +64 -0
  233. package/dist/types/router/route-snapshot.d.ts +112 -0
  234. package/dist/types/router/route-trie-builder.d.ts +77 -0
  235. package/dist/types/router/router-context.d.ts +137 -0
  236. package/dist/types/router/router-interfaces.d.ts +461 -0
  237. package/dist/types/router/router-options.d.ts +792 -0
  238. package/dist/types/router/router-registry.d.ts +15 -0
  239. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  240. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  241. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  242. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  243. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  244. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  245. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  246. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  247. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  248. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  249. package/dist/types/router/segment-resolution.d.ts +3 -0
  250. package/dist/types/router/segment-wrappers.d.ts +53 -0
  251. package/dist/types/router/state-cookie-name.d.ts +1 -0
  252. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  253. package/dist/types/router/telemetry-otel.d.ts +113 -0
  254. package/dist/types/router/telemetry.d.ts +216 -0
  255. package/dist/types/router/timeout.d.ts +107 -0
  256. package/dist/types/router/tracing.d.ts +139 -0
  257. package/dist/types/router/transition-when.d.ts +13 -0
  258. package/dist/types/router/trie-matching.d.ts +32 -0
  259. package/dist/types/router/types.d.ts +98 -0
  260. package/dist/types/router/url-params.d.ts +26 -0
  261. package/dist/types/router.d.ts +7 -0
  262. package/dist/types/rsc/capture-queue.d.ts +49 -0
  263. package/dist/types/rsc/full-payload.d.ts +22 -0
  264. package/dist/types/rsc/handler-context.d.ts +32 -0
  265. package/dist/types/rsc/handler.d.ts +9 -0
  266. package/dist/types/rsc/helpers.d.ts +127 -0
  267. package/dist/types/rsc/index.d.ts +17 -0
  268. package/dist/types/rsc/json-route-result.d.ts +20 -0
  269. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  270. package/dist/types/rsc/manifest-init.d.ts +18 -0
  271. package/dist/types/rsc/nonce.d.ts +28 -0
  272. package/dist/types/rsc/origin-guard.d.ts +50 -0
  273. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  274. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  275. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  276. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  277. package/dist/types/rsc/response-error.d.ts +19 -0
  278. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  279. package/dist/types/rsc/routine-plan.d.ts +124 -0
  280. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  281. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  282. package/dist/types/rsc/server-action.d.ts +68 -0
  283. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  284. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  285. package/dist/types/rsc/shell-capture.d.ts +406 -0
  286. package/dist/types/rsc/shell-serve.d.ts +189 -0
  287. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  288. package/dist/types/rsc/stream-idle.d.ts +60 -0
  289. package/dist/types/rsc/transition-gate.d.ts +23 -0
  290. package/dist/types/rsc/types.d.ts +328 -0
  291. package/dist/types/runtime-env.d.ts +1 -0
  292. package/dist/types/search-params.d.ts +125 -0
  293. package/dist/types/segment-content-promise.d.ts +13 -0
  294. package/dist/types/segment-fragments.d.ts +79 -0
  295. package/dist/types/segment-loader-promise.d.ts +22 -0
  296. package/dist/types/segment-system.d.ts +86 -0
  297. package/dist/types/serialize.d.ts +164 -0
  298. package/dist/types/server/context.d.ts +520 -0
  299. package/dist/types/server/cookie-parse.d.ts +10 -0
  300. package/dist/types/server/cookie-store.d.ts +107 -0
  301. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  302. package/dist/types/server/handle-store.d.ts +131 -0
  303. package/dist/types/server/loader-registry.d.ts +32 -0
  304. package/dist/types/server/request-context.d.ts +717 -0
  305. package/dist/types/server/root-layout.d.ts +3 -0
  306. package/dist/types/server.d.ts +16 -0
  307. package/dist/types/ssr/index.d.ts +233 -0
  308. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  309. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  310. package/dist/types/ssr/ssr-root.d.ts +69 -0
  311. package/dist/types/static-handler.d.ts +71 -0
  312. package/dist/types/testing/cache-status.d.ts +63 -0
  313. package/dist/types/testing/collect-handle.d.ts +20 -0
  314. package/dist/types/testing/dispatch.d.ts +127 -0
  315. package/dist/types/testing/dom.entry.d.ts +15 -0
  316. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  317. package/dist/types/testing/e2e/index.d.ts +31 -0
  318. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  319. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  320. package/dist/types/testing/e2e/parity.d.ts +111 -0
  321. package/dist/types/testing/e2e/server.d.ts +35 -0
  322. package/dist/types/testing/flight-matchers.d.ts +55 -0
  323. package/dist/types/testing/flight-normalize.d.ts +1 -0
  324. package/dist/types/testing/flight-tree.d.ts +192 -0
  325. package/dist/types/testing/flight.d.ts +115 -0
  326. package/dist/types/testing/flight.entry.d.ts +27 -0
  327. package/dist/types/testing/generated-routes.d.ts +66 -0
  328. package/dist/types/testing/index.d.ts +54 -0
  329. package/dist/types/testing/internal/context.d.ts +225 -0
  330. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  331. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  332. package/dist/types/testing/render-handler.d.ts +160 -0
  333. package/dist/types/testing/render-route.d.ts +265 -0
  334. package/dist/types/testing/run-loader.d.ts +195 -0
  335. package/dist/types/testing/run-middleware.d.ts +132 -0
  336. package/dist/types/testing/run-transition-when.d.ts +78 -0
  337. package/dist/types/testing/shell-status.d.ts +81 -0
  338. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  339. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  340. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  341. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  342. package/dist/types/testing/vitest.d.ts +205 -0
  343. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  344. package/dist/types/theme/ThemeScript.d.ts +45 -0
  345. package/dist/types/theme/constants.d.ts +39 -0
  346. package/dist/types/theme/index.d.ts +29 -0
  347. package/dist/types/theme/theme-context.d.ts +21 -0
  348. package/dist/types/theme/theme-script.d.ts +26 -0
  349. package/dist/types/theme/types.d.ts +162 -0
  350. package/dist/types/theme/use-theme.d.ts +8 -0
  351. package/dist/types/types/boundaries.d.ts +110 -0
  352. package/dist/types/types/cache-types.d.ts +191 -0
  353. package/dist/types/types/error-types.d.ts +114 -0
  354. package/dist/types/types/global-namespace.d.ts +90 -0
  355. package/dist/types/types/handler-context.d.ts +658 -0
  356. package/dist/types/types/index.d.ts +11 -0
  357. package/dist/types/types/loader-types.d.ts +234 -0
  358. package/dist/types/types/request-scope.d.ts +93 -0
  359. package/dist/types/types/route-config.d.ts +105 -0
  360. package/dist/types/types/route-entry.d.ts +98 -0
  361. package/dist/types/types/segments.d.ts +246 -0
  362. package/dist/types/types.d.ts +1 -0
  363. package/dist/types/urls/include-helper.d.ts +17 -0
  364. package/dist/types/urls/include-provider.d.ts +27 -0
  365. package/dist/types/urls/index.d.ts +6 -0
  366. package/dist/types/urls/path-helper-types.d.ts +203 -0
  367. package/dist/types/urls/path-helper.d.ts +12 -0
  368. package/dist/types/urls/pattern-types.d.ts +166 -0
  369. package/dist/types/urls/response-types.d.ts +67 -0
  370. package/dist/types/urls/type-extraction.d.ts +157 -0
  371. package/dist/types/urls/urls-function.d.ts +24 -0
  372. package/dist/types/urls.d.ts +1 -0
  373. package/dist/types/use-loader.d.ts +150 -0
  374. package/dist/types/vercel/index.d.ts +10 -0
  375. package/dist/types/vercel/tracing.d.ts +71 -0
  376. package/dist/types/vite/debug.d.ts +80 -0
  377. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  378. package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
  379. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  380. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  381. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  382. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  383. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  384. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  385. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  386. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  387. package/dist/types/vite/discovery/state.d.ts +170 -0
  388. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  389. package/dist/types/vite/encryption-key.d.ts +2 -0
  390. package/dist/types/vite/index.d.ts +11 -0
  391. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  392. package/dist/types/vite/plugin-types.d.ts +298 -0
  393. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  394. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  395. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  396. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  397. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  398. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  399. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  400. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  401. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  402. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  403. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  404. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  405. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  406. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  407. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  408. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  409. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  410. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  411. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  412. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  413. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  414. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  415. package/dist/types/vite/rango.d.ts +29 -0
  416. package/dist/types/vite/router-discovery.d.ts +23 -0
  417. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  418. package/dist/types/vite/utils/banner.d.ts +2 -0
  419. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  420. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  421. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  422. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  423. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  424. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  425. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  426. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  427. package/dist/types.backup/__internal.d.ts +127 -0
  428. package/dist/types.backup/bin/rango.d.ts +1 -0
  429. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  430. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  431. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  432. package/dist/types.backup/browser/app-version.d.ts +6 -0
  433. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  434. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  435. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  436. package/dist/types.backup/browser/history-state.d.ts +26 -0
  437. package/dist/types.backup/browser/index.d.ts +1 -0
  438. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  439. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  440. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  441. package/dist/types.backup/browser/logging.d.ts +33 -0
  442. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  443. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  444. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  445. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  446. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  447. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  448. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  449. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  450. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  451. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  452. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  453. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  454. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  455. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  456. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  457. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  458. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  459. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  460. package/dist/types.backup/browser/react/context.d.ts +54 -0
  461. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  462. package/dist/types.backup/browser/react/index.d.ts +1 -0
  463. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  464. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  465. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  466. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  467. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  468. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  469. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  470. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  471. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  472. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  473. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  474. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  475. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  476. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  477. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  478. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  479. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  480. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  481. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  482. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  483. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  484. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  485. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  486. package/dist/types.backup/browser/types.d.ts +530 -0
  487. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  488. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  489. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  490. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  491. package/dist/types.backup/build/index.d.ts +21 -0
  492. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  493. package/dist/types.backup/build/route-trie.d.ts +89 -0
  494. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  495. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  496. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  497. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  498. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  499. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  500. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  501. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  502. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  503. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  504. package/dist/types.backup/cache/background-task.d.ts +21 -0
  505. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  506. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  507. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  508. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  509. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  510. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  511. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  512. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  513. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  514. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  515. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  516. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  517. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  518. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  519. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  520. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  521. package/dist/types.backup/cache/index.d.ts +7 -0
  522. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  523. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  524. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  525. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  526. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  527. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  528. package/dist/types.backup/cache/taint.d.ts +71 -0
  529. package/dist/types.backup/cache/types.d.ts +407 -0
  530. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  531. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  532. package/dist/types.backup/client.d.ts +184 -0
  533. package/dist/types.backup/client.rsc.d.ts +39 -0
  534. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  535. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  536. package/dist/types.backup/component-utils.d.ts +46 -0
  537. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  538. package/dist/types.backup/context-var.d.ts +84 -0
  539. package/dist/types.backup/debug.d.ts +57 -0
  540. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  541. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  542. package/dist/types.backup/defer.d.ts +89 -0
  543. package/dist/types.backup/deps/browser.d.ts +1 -0
  544. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  545. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  546. package/dist/types.backup/deps/rsc.d.ts +1 -0
  547. package/dist/types.backup/deps/ssr.d.ts +1 -0
  548. package/dist/types.backup/encode-kv.d.ts +35 -0
  549. package/dist/types.backup/errors.d.ts +226 -0
  550. package/dist/types.backup/escape-script.d.ts +44 -0
  551. package/dist/types.backup/handle.d.ts +93 -0
  552. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  553. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  554. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  555. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  556. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  557. package/dist/types.backup/handles/meta.d.ts +43 -0
  558. package/dist/types.backup/handles/script.d.ts +139 -0
  559. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  560. package/dist/types.backup/host/errors.d.ts +40 -0
  561. package/dist/types.backup/host/index.d.ts +33 -0
  562. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  563. package/dist/types.backup/host/router.d.ts +12 -0
  564. package/dist/types.backup/host/testing.d.ts +41 -0
  565. package/dist/types.backup/host/types.d.ts +148 -0
  566. package/dist/types.backup/host/utils.d.ts +20 -0
  567. package/dist/types.backup/href-client.d.ts +214 -0
  568. package/dist/types.backup/index.d.ts +112 -0
  569. package/dist/types.backup/index.rsc.d.ts +51 -0
  570. package/dist/types.backup/internal-debug.d.ts +1 -0
  571. package/dist/types.backup/loader-store.d.ts +193 -0
  572. package/dist/types.backup/loader.d.ts +18 -0
  573. package/dist/types.backup/loader.rsc.d.ts +18 -0
  574. package/dist/types.backup/missing-id-error.d.ts +1 -0
  575. package/dist/types.backup/outlet-context.d.ts +12 -0
  576. package/dist/types.backup/outlet-provider.d.ts +12 -0
  577. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  578. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  579. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  580. package/dist/types.backup/prerender/store.d.ts +62 -0
  581. package/dist/types.backup/prerender.d.ts +292 -0
  582. package/dist/types.backup/redirect-origin.d.ts +55 -0
  583. package/dist/types.backup/regex-escape.d.ts +6 -0
  584. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  585. package/dist/types.backup/response-utils.d.ts +35 -0
  586. package/dist/types.backup/reverse.d.ts +206 -0
  587. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  588. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  589. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  590. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  591. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  592. package/dist/types.backup/route-definition/index.d.ts +7 -0
  593. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  594. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  595. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  596. package/dist/types.backup/route-definition.d.ts +1 -0
  597. package/dist/types.backup/route-map-builder.d.ts +127 -0
  598. package/dist/types.backup/route-name.d.ts +27 -0
  599. package/dist/types.backup/route-types.d.ts +172 -0
  600. package/dist/types.backup/router/basename.d.ts +10 -0
  601. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  602. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  603. package/dist/types.backup/router/error-handling.d.ts +76 -0
  604. package/dist/types.backup/router/find-match.d.ts +19 -0
  605. package/dist/types.backup/router/handler-context.d.ts +41 -0
  606. package/dist/types.backup/router/instrument.d.ts +161 -0
  607. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  608. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  609. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  610. package/dist/types.backup/router/logging.d.ts +41 -0
  611. package/dist/types.backup/router/manifest.d.ts +8 -0
  612. package/dist/types.backup/router/match-api.d.ts +19 -0
  613. package/dist/types.backup/router/match-context.d.ts +184 -0
  614. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  615. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  616. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  617. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  618. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  619. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  620. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  621. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  622. package/dist/types.backup/router/match-result.d.ts +114 -0
  623. package/dist/types.backup/router/metrics.d.ts +6 -0
  624. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  625. package/dist/types.backup/router/middleware.d.ts +116 -0
  626. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  627. package/dist/types.backup/router/params-util.d.ts +8 -0
  628. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  629. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  630. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  631. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  632. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  633. package/dist/types.backup/router/preview-match.d.ts +22 -0
  634. package/dist/types.backup/router/request-classification.d.ts +104 -0
  635. package/dist/types.backup/router/revalidation.d.ts +57 -0
  636. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  637. package/dist/types.backup/router/router-context.d.ts +137 -0
  638. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  639. package/dist/types.backup/router/router-options.d.ts +738 -0
  640. package/dist/types.backup/router/router-registry.d.ts +15 -0
  641. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  642. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  643. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  644. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  645. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  646. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  647. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  648. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  649. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  650. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  651. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  652. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  653. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  654. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  655. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  656. package/dist/types.backup/router/telemetry.d.ts +215 -0
  657. package/dist/types.backup/router/timeout.d.ts +68 -0
  658. package/dist/types.backup/router/tracing.d.ts +125 -0
  659. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  660. package/dist/types.backup/router/types.d.ts +98 -0
  661. package/dist/types.backup/router/url-params.d.ts +26 -0
  662. package/dist/types.backup/router.d.ts +7 -0
  663. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  664. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  665. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  666. package/dist/types.backup/rsc/handler.d.ts +9 -0
  667. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  668. package/dist/types.backup/rsc/index.d.ts +17 -0
  669. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  670. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  671. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  672. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  673. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  674. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  675. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  676. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  677. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  678. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  679. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  680. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  681. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  682. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  683. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  684. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  685. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  686. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  687. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  688. package/dist/types.backup/rsc/types.d.ts +290 -0
  689. package/dist/types.backup/runtime-env.d.ts +1 -0
  690. package/dist/types.backup/search-params.d.ts +125 -0
  691. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  692. package/dist/types.backup/segment-fragments.d.ts +56 -0
  693. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  694. package/dist/types.backup/segment-system.d.ts +84 -0
  695. package/dist/types.backup/serialize.d.ts +164 -0
  696. package/dist/types.backup/server/context.d.ts +494 -0
  697. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  698. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  699. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  700. package/dist/types.backup/server/handle-store.d.ts +100 -0
  701. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  702. package/dist/types.backup/server/request-context.d.ts +596 -0
  703. package/dist/types.backup/server/root-layout.d.ts +3 -0
  704. package/dist/types.backup/server.d.ts +15 -0
  705. package/dist/types.backup/ssr/index.d.ts +233 -0
  706. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  707. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  708. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  709. package/dist/types.backup/static-handler.d.ts +57 -0
  710. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  711. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  712. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  713. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  714. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  715. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  716. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  717. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  718. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  719. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  720. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  721. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  722. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  723. package/dist/types.backup/testing/flight.d.ts +115 -0
  724. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  725. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  726. package/dist/types.backup/testing/index.d.ts +52 -0
  727. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  728. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  729. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  730. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  731. package/dist/types.backup/testing/render-route.d.ts +246 -0
  732. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  733. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  734. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  735. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  736. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  737. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  738. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  739. package/dist/types.backup/testing/vitest.d.ts +205 -0
  740. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  741. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  742. package/dist/types.backup/theme/constants.d.ts +39 -0
  743. package/dist/types.backup/theme/index.d.ts +29 -0
  744. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  745. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  746. package/dist/types.backup/theme/types.d.ts +162 -0
  747. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  748. package/dist/types.backup/types/boundaries.d.ts +93 -0
  749. package/dist/types.backup/types/cache-types.d.ts +191 -0
  750. package/dist/types.backup/types/error-types.d.ts +114 -0
  751. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  752. package/dist/types.backup/types/handler-context.d.ts +658 -0
  753. package/dist/types.backup/types/index.d.ts +11 -0
  754. package/dist/types.backup/types/loader-types.d.ts +182 -0
  755. package/dist/types.backup/types/request-scope.d.ts +93 -0
  756. package/dist/types.backup/types/route-config.d.ts +105 -0
  757. package/dist/types.backup/types/route-entry.d.ts +95 -0
  758. package/dist/types.backup/types/segments.d.ts +234 -0
  759. package/dist/types.backup/types.d.ts +1 -0
  760. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  761. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  762. package/dist/types.backup/urls/index.d.ts +6 -0
  763. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  764. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  765. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  766. package/dist/types.backup/urls/response-types.d.ts +67 -0
  767. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  768. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  769. package/dist/types.backup/urls.d.ts +1 -0
  770. package/dist/types.backup/use-loader.d.ts +150 -0
  771. package/dist/types.backup/vercel/index.d.ts +10 -0
  772. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  773. package/dist/types.backup/vite/debug.d.ts +80 -0
  774. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  775. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  776. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  777. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  778. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  779. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  780. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  781. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  782. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  783. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  784. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  785. package/dist/types.backup/vite/index.d.ts +11 -0
  786. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  787. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  788. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  789. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  790. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  791. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  792. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  793. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  794. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  795. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  796. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  797. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  798. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  799. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  800. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  801. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  802. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  803. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  804. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  805. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  806. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  807. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  808. package/dist/types.backup/vite/rango.d.ts +29 -0
  809. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  810. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  811. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  812. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  813. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  814. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  815. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  816. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  817. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  818. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  819. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  820. package/dist/vite/index.js +10725 -3898
  821. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  822. package/package.json +129 -46
  823. package/skills/api-client/SKILL.md +211 -0
  824. package/skills/breadcrumbs/SKILL.md +117 -8
  825. package/skills/bundle-analysis/SKILL.md +159 -0
  826. package/skills/cache-guide/SKILL.md +255 -25
  827. package/skills/caching/SKILL.md +414 -17
  828. package/skills/catalog.json +289 -0
  829. package/skills/client-urls/SKILL.md +307 -0
  830. package/skills/cloudflare/SKILL.md +151 -0
  831. package/skills/cloudflare/agents/openai.yaml +4 -0
  832. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  833. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  834. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  835. package/skills/comparison/SKILL.md +50 -0
  836. package/skills/comparison/agents/openai.yaml +4 -0
  837. package/skills/comparison/references/framework-comparison.md +858 -0
  838. package/skills/composability/SKILL.md +124 -4
  839. package/skills/css/SKILL.md +76 -0
  840. package/skills/debug-manifest/SKILL.md +5 -11
  841. package/skills/defer-hydration/SKILL.md +235 -0
  842. package/skills/deployment-caching/SKILL.md +176 -0
  843. package/skills/document-cache/SKILL.md +116 -58
  844. package/skills/fonts/SKILL.md +1 -1
  845. package/skills/handler-use/SKILL.md +364 -0
  846. package/skills/hooks/SKILL.md +73 -691
  847. package/skills/hooks/data.md +282 -0
  848. package/skills/hooks/handle-and-actions.md +110 -0
  849. package/skills/hooks/navigation.md +110 -0
  850. package/skills/hooks/outlets.md +62 -0
  851. package/skills/hooks/state.md +228 -0
  852. package/skills/hooks/urls.md +135 -0
  853. package/skills/host-router/SKILL.md +129 -27
  854. package/skills/i18n/SKILL.md +276 -0
  855. package/skills/intercept/SKILL.md +94 -18
  856. package/skills/layout/SKILL.md +62 -19
  857. package/skills/links/SKILL.md +285 -17
  858. package/skills/loader/SKILL.md +415 -55
  859. package/skills/middleware/SKILL.md +92 -16
  860. package/skills/migrate-nextjs/SKILL.md +852 -0
  861. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  862. package/skills/migrate-react-router/SKILL.md +189 -0
  863. package/skills/migrate-react-router/component-migration.md +201 -0
  864. package/skills/migrate-react-router/data-and-actions.md +236 -0
  865. package/skills/migrate-react-router/route-mapping.md +284 -0
  866. package/skills/mime-routes/SKILL.md +55 -18
  867. package/skills/observability/SKILL.md +231 -0
  868. package/skills/parallel/SKILL.md +245 -10
  869. package/skills/ppr/SKILL.md +914 -0
  870. package/skills/prerender/SKILL.md +243 -135
  871. package/skills/rango/SKILL.md +325 -24
  872. package/skills/react-compiler/SKILL.md +168 -0
  873. package/skills/response-routes/SKILL.md +180 -52
  874. package/skills/route/SKILL.md +181 -9
  875. package/skills/router-setup/SKILL.md +154 -11
  876. package/skills/scripts/SKILL.md +189 -0
  877. package/skills/server-actions/SKILL.md +776 -0
  878. package/skills/shell-manifest/SKILL.md +194 -0
  879. package/skills/streams-and-websockets/SKILL.md +283 -0
  880. package/skills/tailwind/SKILL.md +28 -4
  881. package/skills/testing/SKILL.md +131 -0
  882. package/skills/testing/bindings.md +103 -0
  883. package/skills/testing/cache-prerender.md +172 -0
  884. package/skills/testing/client-components.md +131 -0
  885. package/skills/testing/e2e-parity.md +125 -0
  886. package/skills/testing/flight.md +91 -0
  887. package/skills/testing/handles.md +153 -0
  888. package/skills/testing/loader.md +130 -0
  889. package/skills/testing/middleware.md +99 -0
  890. package/skills/testing/render-handler.md +122 -0
  891. package/skills/testing/response-routes.md +95 -0
  892. package/skills/testing/reverse-and-types.md +85 -0
  893. package/skills/testing/server-actions.md +107 -0
  894. package/skills/testing/server-tree.md +128 -0
  895. package/skills/testing/setup.md +123 -0
  896. package/skills/theme/SKILL.md +9 -6
  897. package/skills/typesafety/SKILL.md +45 -616
  898. package/skills/typesafety/env-and-bindings.md +254 -0
  899. package/skills/typesafety/generated-files-and-cli.md +342 -0
  900. package/skills/typesafety/params-and-search.md +153 -0
  901. package/skills/typesafety/route-types.md +213 -0
  902. package/skills/use-cache/SKILL.md +121 -15
  903. package/skills/vercel/SKILL.md +149 -0
  904. package/skills/view-transitions/SKILL.md +341 -0
  905. package/src/__augment-tests__/augment.ts +81 -0
  906. package/src/__augment-tests__/augmented.check.ts +116 -0
  907. package/src/__internal.ts +1 -66
  908. package/src/browser/action-coordinator.ts +53 -36
  909. package/src/browser/action-fence.ts +47 -0
  910. package/src/browser/app-shell.ts +39 -0
  911. package/src/browser/app-version.ts +14 -0
  912. package/src/browser/connection-warmup.ts +134 -0
  913. package/src/browser/cookie-name.ts +140 -0
  914. package/src/browser/dev-discovery.ts +66 -0
  915. package/src/browser/event-controller.ts +405 -168
  916. package/src/browser/history-state.ts +21 -0
  917. package/src/browser/index.ts +3 -3
  918. package/src/browser/invalidate-client-cache.ts +52 -0
  919. package/src/browser/link-interceptor.ts +469 -20
  920. package/src/browser/logging.ts +28 -0
  921. package/src/browser/merge-segment-loaders.ts +6 -4
  922. package/src/browser/navigation-bridge.ts +209 -40
  923. package/src/browser/navigation-client.ts +284 -73
  924. package/src/browser/navigation-store-handle.ts +38 -0
  925. package/src/browser/navigation-store.ts +208 -329
  926. package/src/browser/navigation-transaction.ts +18 -66
  927. package/src/browser/network-error-handler.ts +34 -7
  928. package/src/browser/notify-listeners.ts +22 -0
  929. package/src/browser/partial-update.ts +278 -126
  930. package/src/browser/prefetch/cache.ts +362 -51
  931. package/src/browser/prefetch/default-strategy.ts +74 -0
  932. package/src/browser/prefetch/fetch.ts +453 -40
  933. package/src/browser/prefetch/invalidation.ts +30 -0
  934. package/src/browser/prefetch/loader.ts +111 -0
  935. package/src/browser/prefetch/observer.ts +50 -22
  936. package/src/browser/prefetch/policy.ts +6 -0
  937. package/src/browser/prefetch/queue.ts +144 -23
  938. package/src/browser/prefetch/resource-ready.ts +77 -0
  939. package/src/browser/prefetch/runtime.ts +6 -0
  940. package/src/browser/rango-state.ts +178 -75
  941. package/src/browser/react/Link.tsx +187 -75
  942. package/src/browser/react/NavigationProvider.tsx +249 -123
  943. package/src/browser/react/ScrollRestoration.tsx +10 -6
  944. package/src/browser/react/context.ts +11 -2
  945. package/src/browser/react/filter-segment-order.ts +66 -7
  946. package/src/browser/react/index.ts +0 -48
  947. package/src/browser/react/location-state-shared.ts +178 -8
  948. package/src/browser/react/location-state.ts +39 -14
  949. package/src/browser/react/use-action.ts +6 -15
  950. package/src/browser/react/use-handle.ts +23 -69
  951. package/src/browser/react/use-href.tsx +8 -1
  952. package/src/browser/react/use-link-status.ts +33 -8
  953. package/src/browser/react/use-navigation.ts +32 -7
  954. package/src/browser/react/use-params.ts +20 -10
  955. package/src/browser/react/use-reverse.ts +106 -0
  956. package/src/browser/react/use-router.ts +47 -12
  957. package/src/browser/react/use-search-params.ts +0 -5
  958. package/src/browser/react/use-segments.ts +11 -21
  959. package/src/browser/response-adapter.ts +99 -8
  960. package/src/browser/rsc-router.tsx +375 -84
  961. package/src/browser/scroll-restoration.ts +61 -47
  962. package/src/browser/segment-reconciler.ts +44 -7
  963. package/src/browser/segment-structure-assert.ts +2 -2
  964. package/src/browser/server-action-bridge.ts +270 -71
  965. package/src/browser/types.ts +166 -37
  966. package/src/browser/validate-redirect-origin.ts +43 -16
  967. package/src/build/collect-fallback-refs.ts +107 -0
  968. package/src/build/generate-manifest.ts +217 -188
  969. package/src/build/generate-route-types.ts +6 -1
  970. package/src/build/index.ts +11 -3
  971. package/src/build/merge-full-manifests.ts +161 -0
  972. package/src/build/prefix-tree-utils.ts +123 -0
  973. package/src/build/route-trie.ts +43 -254
  974. package/src/build/route-types/ast-route-extraction.ts +15 -8
  975. package/src/build/route-types/codegen.ts +16 -5
  976. package/src/build/route-types/include-resolution.ts +521 -65
  977. package/src/build/route-types/param-extraction.ts +6 -3
  978. package/src/build/route-types/per-module-writer.ts +33 -12
  979. package/src/build/route-types/router-processing.ts +411 -154
  980. package/src/build/route-types/scan-filter.ts +9 -2
  981. package/src/build/route-types/source-scan.ts +216 -0
  982. package/src/build/runtime-discovery.ts +32 -29
  983. package/src/cache/cache-error.ts +104 -0
  984. package/src/cache/cache-exec-scope.ts +47 -0
  985. package/src/cache/cache-key-utils.ts +73 -15
  986. package/src/cache/cache-policy.ts +108 -34
  987. package/src/cache/cache-runtime.ts +566 -117
  988. package/src/cache/cache-scope.ts +431 -112
  989. package/src/cache/cache-tag.ts +149 -0
  990. package/src/cache/cf/cf-base64.ts +33 -0
  991. package/src/cache/cf/cf-cache-constants.ts +134 -0
  992. package/src/cache/cf/cf-cache-store.ts +3250 -173
  993. package/src/cache/cf/cf-cache-types.ts +417 -0
  994. package/src/cache/cf/cf-kv-utils.ts +84 -0
  995. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  996. package/src/cache/cf/cf-zone-purge.ts +101 -0
  997. package/src/cache/cf/index.ts +16 -17
  998. package/src/cache/document-cache.ts +202 -61
  999. package/src/cache/handle-snapshot.ts +92 -1
  1000. package/src/cache/index.ts +33 -20
  1001. package/src/cache/memory-segment-store.ts +286 -37
  1002. package/src/cache/profile-registry.ts +46 -31
  1003. package/src/cache/read-through-swr.ts +66 -16
  1004. package/src/cache/search-params-filter.ts +118 -0
  1005. package/src/cache/segment-codec.ts +80 -25
  1006. package/src/cache/shell-snapshot.ts +516 -0
  1007. package/src/cache/tag-invalidation.ts +230 -0
  1008. package/src/cache/taint.ts +83 -9
  1009. package/src/cache/types.ts +323 -100
  1010. package/src/cache/vercel/index.ts +11 -0
  1011. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1012. package/src/client-urls/client-root.tsx +161 -0
  1013. package/src/client-urls/client-urls.ts +698 -0
  1014. package/src/client-urls/navigation.ts +237 -0
  1015. package/src/client-urls/revalidation-protocol.ts +56 -0
  1016. package/src/client-urls/server-projection.ts +579 -0
  1017. package/src/client-urls/types.ts +195 -0
  1018. package/src/client.rsc.tsx +48 -21
  1019. package/src/client.tsx +158 -294
  1020. package/src/cloudflare/index.ts +11 -0
  1021. package/src/cloudflare/tracing.ts +112 -0
  1022. package/src/component-utils.ts +19 -0
  1023. package/src/components/DefaultDocument.tsx +8 -2
  1024. package/src/context-var.ts +84 -2
  1025. package/src/debug.ts +2 -2
  1026. package/src/decode-loader-results.ts +160 -0
  1027. package/src/defer.ts +185 -0
  1028. package/src/deps/ssr.ts +4 -2
  1029. package/src/dev-discovery-protocol.ts +11 -0
  1030. package/src/encode-kv.ts +49 -0
  1031. package/src/errors.ts +44 -4
  1032. package/src/escape-script.ts +52 -0
  1033. package/src/handle.ts +104 -34
  1034. package/src/handles/MetaTags.tsx +24 -53
  1035. package/src/handles/Scripts.tsx +183 -0
  1036. package/src/handles/breadcrumbs.ts +35 -8
  1037. package/src/handles/deferred-resolution.ts +134 -0
  1038. package/src/handles/is-thenable.ts +16 -0
  1039. package/src/handles/meta.ts +14 -40
  1040. package/src/handles/script.ts +244 -0
  1041. package/src/host/cookie-handler.ts +9 -60
  1042. package/src/host/errors.ts +13 -22
  1043. package/src/host/index.ts +9 -2
  1044. package/src/host/pattern-matcher.ts +23 -52
  1045. package/src/host/router.ts +107 -99
  1046. package/src/host/testing.ts +40 -27
  1047. package/src/host/types.ts +37 -4
  1048. package/src/host/utils.ts +1 -1
  1049. package/src/href-client.ts +137 -22
  1050. package/src/index.rsc.ts +111 -13
  1051. package/src/index.ts +151 -19
  1052. package/src/internal-debug.ts +11 -10
  1053. package/src/loader-redirect.tsx +47 -0
  1054. package/src/loader-store.ts +500 -0
  1055. package/src/loader.rsc.ts +20 -13
  1056. package/src/loader.ts +12 -11
  1057. package/src/missing-id-error.ts +68 -0
  1058. package/src/outlet-context.ts +13 -1
  1059. package/src/outlet-provider.tsx +16 -6
  1060. package/src/prerender/build-shell-capture.ts +453 -0
  1061. package/src/prerender/param-hash.ts +16 -16
  1062. package/src/prerender/shell-manifest-key.ts +20 -0
  1063. package/src/prerender/store.ts +52 -42
  1064. package/src/prerender.ts +215 -86
  1065. package/src/redirect-origin.ts +143 -0
  1066. package/src/regex-escape.ts +8 -0
  1067. package/src/render-error-thrower.tsx +20 -0
  1068. package/src/response-utils.ts +62 -0
  1069. package/src/reverse.ts +65 -15
  1070. package/src/root-error-boundary.tsx +1 -19
  1071. package/src/route-content-wrapper.tsx +112 -78
  1072. package/src/route-definition/dsl-helpers.ts +519 -307
  1073. package/src/route-definition/helper-factories.ts +28 -140
  1074. package/src/route-definition/helpers-types.ts +169 -78
  1075. package/src/route-definition/index.ts +4 -2
  1076. package/src/route-definition/redirect.ts +53 -12
  1077. package/src/route-definition/resolve-handler-use.ts +160 -0
  1078. package/src/route-definition/use-item-types.ts +29 -0
  1079. package/src/route-map-builder.ts +102 -68
  1080. package/src/route-types.ts +37 -46
  1081. package/src/router/basename.ts +14 -0
  1082. package/src/router/content-negotiation.ts +211 -22
  1083. package/src/router/error-handling.ts +110 -29
  1084. package/src/router/find-match.ts +130 -29
  1085. package/src/router/handler-context.ts +105 -45
  1086. package/src/router/instrument.ts +401 -0
  1087. package/src/router/intercept-resolution.ts +108 -24
  1088. package/src/router/lazy-includes.ts +90 -63
  1089. package/src/router/loader-resolution.ts +529 -57
  1090. package/src/router/logging.ts +5 -8
  1091. package/src/router/manifest.ts +105 -56
  1092. package/src/router/match-api.ts +190 -219
  1093. package/src/router/match-context.ts +0 -22
  1094. package/src/router/match-handlers.ts +268 -171
  1095. package/src/router/match-middleware/background-revalidation.ts +66 -22
  1096. package/src/router/match-middleware/cache-lookup.ts +368 -277
  1097. package/src/router/match-middleware/cache-store.ts +175 -50
  1098. package/src/router/match-middleware/intercept-resolution.ts +8 -28
  1099. package/src/router/match-middleware/segment-resolution.ts +52 -18
  1100. package/src/router/match-pipelines.ts +1 -42
  1101. package/src/router/match-result.ts +135 -44
  1102. package/src/router/metrics.ts +22 -36
  1103. package/src/router/middleware-types.ts +26 -138
  1104. package/src/router/middleware.ts +305 -177
  1105. package/src/router/navigation-snapshot.ts +173 -0
  1106. package/src/router/params-util.ts +23 -0
  1107. package/src/router/parse-pattern.ts +115 -0
  1108. package/src/router/pattern-matching.ts +181 -150
  1109. package/src/router/prefetch-cache-ttl.ts +51 -0
  1110. package/src/router/prefetch-default.ts +59 -0
  1111. package/src/router/prefetch-limits.ts +37 -0
  1112. package/src/router/prerender-match.ts +250 -60
  1113. package/src/router/preview-match.ts +35 -103
  1114. package/src/router/request-classification.ts +291 -0
  1115. package/src/router/revalidation.ts +146 -83
  1116. package/src/router/route-snapshot.ts +256 -0
  1117. package/src/router/route-trie-builder.ts +334 -0
  1118. package/src/router/router-context.ts +11 -29
  1119. package/src/router/router-interfaces.ts +199 -37
  1120. package/src/router/router-options.ts +271 -21
  1121. package/src/router/router-registry.ts +2 -5
  1122. package/src/router/segment-resolution/fresh.ts +367 -78
  1123. package/src/router/segment-resolution/helpers.ts +116 -33
  1124. package/src/router/segment-resolution/loader-cache.ts +188 -39
  1125. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1126. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1127. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1128. package/src/router/segment-resolution/revalidation.ts +520 -385
  1129. package/src/router/segment-resolution/static-store.ts +55 -15
  1130. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1131. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1132. package/src/router/segment-resolution.ts +5 -1
  1133. package/src/router/segment-wrappers.ts +8 -5
  1134. package/src/router/state-cookie-name.ts +33 -0
  1135. package/src/router/substitute-pattern-params.ts +75 -0
  1136. package/src/router/telemetry-otel.ts +171 -200
  1137. package/src/router/telemetry.ts +106 -20
  1138. package/src/router/timeout.ts +53 -22
  1139. package/src/router/tracing.ts +235 -0
  1140. package/src/router/transition-when.ts +76 -0
  1141. package/src/router/trie-matching.ts +171 -59
  1142. package/src/router/types.ts +10 -63
  1143. package/src/router/url-params.ts +57 -0
  1144. package/src/router.ts +301 -78
  1145. package/src/rsc/capture-queue.ts +218 -0
  1146. package/src/rsc/full-payload.ts +77 -0
  1147. package/src/rsc/handler-context.ts +4 -2
  1148. package/src/rsc/handler.ts +901 -519
  1149. package/src/rsc/helpers.ts +245 -47
  1150. package/src/rsc/index.ts +2 -5
  1151. package/src/rsc/json-route-result.ts +38 -0
  1152. package/src/rsc/loader-fetch.ts +129 -33
  1153. package/src/rsc/manifest-init.ts +55 -52
  1154. package/src/rsc/nonce.ts +10 -1
  1155. package/src/rsc/origin-guard.ts +39 -25
  1156. package/src/rsc/progressive-enhancement.ts +381 -74
  1157. package/src/rsc/redirect-guard.ts +102 -0
  1158. package/src/rsc/render-pipeline.ts +611 -0
  1159. package/src/rsc/response-cache-serve.ts +259 -0
  1160. package/src/rsc/response-error.ts +79 -12
  1161. package/src/rsc/response-route-handler.ts +80 -206
  1162. package/src/rsc/routine-plan.ts +359 -0
  1163. package/src/rsc/rsc-rendering.ts +1625 -156
  1164. package/src/rsc/runtime-warnings.ts +23 -10
  1165. package/src/rsc/server-action.ts +424 -133
  1166. package/src/rsc/shell-build-manifest.ts +336 -0
  1167. package/src/rsc/shell-capture-constants.ts +45 -0
  1168. package/src/rsc/shell-capture.ts +2063 -0
  1169. package/src/rsc/shell-serve.ts +337 -0
  1170. package/src/rsc/ssr-setup.ts +113 -18
  1171. package/src/rsc/stream-idle.ts +137 -0
  1172. package/src/rsc/transition-gate.ts +86 -0
  1173. package/src/rsc/types.ts +100 -6
  1174. package/src/runtime-env.ts +18 -0
  1175. package/src/search-params.ts +35 -30
  1176. package/src/segment-content-promise.ts +67 -0
  1177. package/src/segment-fragments.ts +165 -0
  1178. package/src/segment-loader-promise.ts +167 -0
  1179. package/src/segment-system.tsx +507 -133
  1180. package/src/serialize.ts +243 -0
  1181. package/src/server/context.ts +581 -61
  1182. package/src/server/cookie-parse.ts +32 -0
  1183. package/src/server/cookie-store.ts +162 -15
  1184. package/src/server/handle-store.ts +209 -70
  1185. package/src/server/loader-registry.ts +38 -46
  1186. package/src/server/request-context.ts +961 -186
  1187. package/src/server.ts +7 -2
  1188. package/src/ssr/index.tsx +631 -179
  1189. package/src/ssr/inject-rsc-eager.ts +167 -0
  1190. package/src/ssr/preinit-client-references.ts +106 -0
  1191. package/src/ssr/ssr-root.tsx +262 -0
  1192. package/src/static-handler.ts +45 -20
  1193. package/src/testing/cache-status.ts +162 -0
  1194. package/src/testing/collect-handle.ts +46 -0
  1195. package/src/testing/dispatch.ts +951 -0
  1196. package/src/testing/dom.entry.ts +22 -0
  1197. package/src/testing/e2e/fixture.ts +188 -0
  1198. package/src/testing/e2e/index.ts +147 -0
  1199. package/src/testing/e2e/matchers.ts +35 -0
  1200. package/src/testing/e2e/page-helpers.ts +319 -0
  1201. package/src/testing/e2e/parity.ts +400 -0
  1202. package/src/testing/e2e/server.ts +195 -0
  1203. package/src/testing/flight-matchers.ts +97 -0
  1204. package/src/testing/flight-normalize.ts +11 -0
  1205. package/src/testing/flight-runtime.d.ts +57 -0
  1206. package/src/testing/flight-tree.ts +682 -0
  1207. package/src/testing/flight.entry.ts +52 -0
  1208. package/src/testing/flight.ts +257 -0
  1209. package/src/testing/generated-routes.ts +199 -0
  1210. package/src/testing/index.ts +121 -0
  1211. package/src/testing/internal/context.ts +380 -0
  1212. package/src/testing/internal/flight-client-globals.ts +30 -0
  1213. package/src/testing/internal/seed-vars.ts +54 -0
  1214. package/src/testing/render-handler.ts +371 -0
  1215. package/src/testing/render-route.tsx +667 -0
  1216. package/src/testing/run-loader.ts +423 -0
  1217. package/src/testing/run-middleware.ts +219 -0
  1218. package/src/testing/run-transition-when.ts +197 -0
  1219. package/src/testing/shell-status.ts +206 -0
  1220. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1221. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1222. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1223. package/src/testing/vitest-stubs/version.ts +5 -0
  1224. package/src/testing/vitest.ts +305 -0
  1225. package/src/theme/ThemeProvider.tsx +56 -84
  1226. package/src/theme/ThemeScript.tsx +7 -9
  1227. package/src/theme/constants.ts +52 -13
  1228. package/src/theme/index.ts +0 -7
  1229. package/src/theme/theme-context.ts +1 -5
  1230. package/src/theme/theme-script.ts +22 -21
  1231. package/src/theme/use-theme.ts +0 -3
  1232. package/src/types/boundaries.ts +15 -35
  1233. package/src/types/cache-types.ts +17 -8
  1234. package/src/types/error-types.ts +30 -90
  1235. package/src/types/global-namespace.ts +54 -41
  1236. package/src/types/handler-context.ts +244 -81
  1237. package/src/types/index.ts +4 -10
  1238. package/src/types/loader-types.ts +99 -15
  1239. package/src/types/request-scope.ts +112 -0
  1240. package/src/types/route-config.ts +20 -52
  1241. package/src/types/route-entry.ts +22 -7
  1242. package/src/types/segments.ts +149 -14
  1243. package/src/urls/include-helper.ts +59 -75
  1244. package/src/urls/include-provider.ts +71 -0
  1245. package/src/urls/index.ts +2 -11
  1246. package/src/urls/path-helper-types.ts +118 -26
  1247. package/src/urls/path-helper.ts +70 -115
  1248. package/src/urls/pattern-types.ts +113 -19
  1249. package/src/urls/response-types.ts +25 -22
  1250. package/src/urls/type-extraction.ts +98 -154
  1251. package/src/urls/urls-function.ts +1 -19
  1252. package/src/use-loader.tsx +404 -86
  1253. package/src/vercel/index.ts +11 -0
  1254. package/src/vercel/tracing.ts +89 -0
  1255. package/src/vite/debug.ts +185 -0
  1256. package/src/vite/discovery/bundle-postprocess.ts +46 -45
  1257. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1258. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1259. package/src/vite/discovery/discover-routers.ts +178 -147
  1260. package/src/vite/discovery/discovery-errors.ts +255 -0
  1261. package/src/vite/discovery/gate-state.ts +171 -0
  1262. package/src/vite/discovery/prerender-collection.ts +243 -134
  1263. package/src/vite/discovery/route-types-writer.ts +40 -84
  1264. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1265. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1266. package/src/vite/discovery/state.ts +116 -11
  1267. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1268. package/src/vite/encryption-key.ts +29 -0
  1269. package/src/vite/index.ts +16 -0
  1270. package/src/vite/inject-client-debug.ts +88 -0
  1271. package/src/vite/plugin-types.ts +267 -62
  1272. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1273. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  1274. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1275. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1276. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1277. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1278. package/src/vite/plugins/expose-action-id.ts +51 -100
  1279. package/src/vite/plugins/expose-id-utils.ts +96 -51
  1280. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1281. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  1282. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1283. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1284. package/src/vite/plugins/expose-internal-ids.ts +599 -317
  1285. package/src/vite/plugins/performance-tracks.ts +89 -0
  1286. package/src/vite/plugins/refresh-cmd.ts +89 -27
  1287. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1288. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1289. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1290. package/src/vite/plugins/vercel-output.ts +384 -0
  1291. package/src/vite/plugins/version-injector.ts +39 -29
  1292. package/src/vite/plugins/version-plugin.ts +54 -37
  1293. package/src/vite/plugins/virtual-entries.ts +193 -30
  1294. package/src/vite/rango.ts +403 -304
  1295. package/src/vite/router-discovery.ts +1802 -187
  1296. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1297. package/src/vite/utils/banner.ts +4 -4
  1298. package/src/vite/utils/bundle-analysis.ts +10 -15
  1299. package/src/vite/utils/client-chunks.ts +184 -0
  1300. package/src/vite/utils/directive-prologue.ts +40 -0
  1301. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1302. package/src/vite/utils/manifest-utils.ts +1 -59
  1303. package/src/vite/utils/package-resolution.ts +21 -52
  1304. package/src/vite/utils/prerender-utils.ts +123 -44
  1305. package/src/vite/utils/shared-utils.ts +158 -44
  1306. package/src/browser/action-response-classifier.ts +0 -99
  1307. package/src/browser/react/use-client-cache.ts +0 -58
  1308. package/src/browser/shallow.ts +0 -40
  1309. package/src/handles/index.ts +0 -7
  1310. package/src/network-error-thrower.tsx +0 -23
  1311. package/src/router/middleware-cookies.ts +0 -55
@@ -101,10 +101,15 @@
101
101
  * - Non-GET request (only GET requests are cacheable)
102
102
  */
103
103
  import type { ResolvedSegment } from "../../types.js";
104
- import { getRequestContext } from "../../server/request-context.js";
104
+ import {
105
+ getRequestContext,
106
+ runWithRequestContext,
107
+ } from "../../server/request-context.js";
105
108
  import type { MatchContext, MatchPipelineState } from "../match-context.js";
109
+ import { createShellImplicitDocScope } from "../../cache/cache-scope.js";
106
110
  import { getRouterContext } from "../router-context.js";
107
- import { debugLog, debugWarn } from "../logging.js";
111
+ import { debugLog, debugWarn, getOrCreateRequestId } from "../logging.js";
112
+ import { INTERNAL_RANGO_DEBUG } from "../../internal-debug.js";
108
113
  import type { GeneratorMiddleware } from "./cache-lookup.js";
109
114
 
110
115
  /**
@@ -120,21 +125,24 @@ export function withCacheStore<TEnv>(
120
125
  return async function* (
121
126
  source: AsyncGenerator<ResolvedSegment>,
122
127
  ): AsyncGenerator<ResolvedSegment> {
123
- const pipelineStart = performance.now();
124
128
  const ms = ctx.metricsStore;
125
129
 
126
- // Collect all segments while passing them through
127
130
  const allSegments: ResolvedSegment[] = [];
128
131
  for await (const segment of source) {
129
132
  allSegments.push(segment);
130
133
  yield segment;
131
134
  }
132
135
 
133
- // Skip caching if:
134
- // 1. Cache miss but cache scope is disabled
135
- // 2. This is an action (actions don't cache)
136
- // 3. Cache was already hit (no need to re-cache)
137
- // 4. Non-GET request (only cache GET requests)
136
+ const ownStart = performance.now();
137
+
138
+ // Shell capture composition (capture side): a route-derived cache() scope
139
+ // keeps its normal store write below, but the capture's shell entry still
140
+ // needs the CANONICAL doc segment record for navigation replay. Recorded
141
+ // before the skip check because it must run on the explicit tier's hit
142
+ // path too (state.cacheHit skips the normal write, yet the served
143
+ // segments were collected into allSegments either way).
144
+ recordShellCaptureDocRecord(ctx, state, allSegments);
145
+
138
146
  if (
139
147
  !ctx.cacheScope?.enabled ||
140
148
  ctx.isAction ||
@@ -144,8 +152,8 @@ export function withCacheStore<TEnv>(
144
152
  if (ms) {
145
153
  ms.metrics.push({
146
154
  label: "pipeline:cache-store",
147
- duration: performance.now() - pipelineStart,
148
- startTime: pipelineStart - ms.requestStart,
155
+ duration: performance.now() - ownStart,
156
+ startTime: ownStart - ms.requestStart,
149
157
  });
150
158
  }
151
159
  return;
@@ -159,13 +167,22 @@ export function withCacheStore<TEnv>(
159
167
  createHandleStore,
160
168
  } = getRouterContext<TEnv>();
161
169
 
162
- // Combine main segments with intercept segments
163
- const allSegmentsToCache = [...allSegments, ...state.interceptSegments];
170
+ // On a fresh intercept miss the intercept slot segments flow through
171
+ // `source` into allSegments AND are also recorded on state.interceptSegments.
172
+ // Dedup by id so each segment is cached once — cacheRoute serializes the
173
+ // array verbatim (no id-dedup), so an un-deduped append doubles the intercept
174
+ // segment in the cached entry, re-rendering the slot twice on the next hit.
175
+ const seenSegmentIds = new Set(allSegments.map((s) => s.id));
176
+ const allSegmentsToCache = [
177
+ ...allSegments,
178
+ ...state.interceptSegments.filter((s) => !seenSegmentIds.has(s.id)),
179
+ ];
164
180
 
165
- // Check if any non-loader segments have null components
166
- // This happens when client already had those segments (partial navigation)
167
181
  const hasNullComponents = allSegmentsToCache.some(
168
- (s) => s.component === null && s.type !== "loader",
182
+ (s) =>
183
+ s.component === null &&
184
+ s.type !== "loader" &&
185
+ ctx.clientSegmentSet.has(s.id),
169
186
  );
170
187
 
171
188
  const requestCtx = getRequestContext();
@@ -173,10 +190,22 @@ export function withCacheStore<TEnv>(
173
190
 
174
191
  const cacheScope = ctx.cacheScope;
175
192
 
176
- // Register onResponse callback to skip caching for non-200 responses
177
- // Note: error/notFound status codes are set elsewhere (not caching-specific)
193
+ // Record the route's segment-DSL cache tags into the request tag union NOW,
194
+ // synchronously in the pipeline. The actual store write (cacheRoute) runs in
195
+ // requestCtx.waitUntil() below — and the proactive path re-resolves the whole
196
+ // tree first — so cacheRoute's own tag recording races the document cache's
197
+ // post-body-drain snapshot of _requestTags. On a first-write miss the document
198
+ // tag union could miss these tags and revalidateTag()/updateTag() would not
199
+ // invalidate the cached document. Recording here (before the snapshot) closes
200
+ // the window for both the direct and proactive write paths; the duplicate
201
+ // record inside cacheRoute is idempotent.
202
+ cacheScope.recordTags(requestCtx);
203
+
204
+ const reqId = INTERNAL_RANGO_DEBUG
205
+ ? getOrCreateRequestId(ctx.request)
206
+ : undefined;
207
+
178
208
  requestCtx.onResponse((response) => {
179
- // Only cache successful responses
180
209
  if (response.status !== 200) {
181
210
  debugLog("cacheStore", "skipping cache for non-200 response", {
182
211
  status: response.status,
@@ -186,21 +215,17 @@ export function withCacheStore<TEnv>(
186
215
  }
187
216
 
188
217
  if (hasNullComponents) {
189
- // Proactive caching: render all segments fresh in background
190
- // This ensures cache has complete components for future requests
191
218
  requestCtx.waitUntil(async () => {
219
+ const savedMetrics = ctx.Store.metrics;
220
+ ctx.Store.metrics = undefined;
221
+
222
+ const start = performance.now();
192
223
  debugLog("cacheStore", "proactive caching started", {
193
224
  pathname: ctx.pathname,
194
225
  });
195
- // Swap to a fresh HandleStore so handle.push() calls from
196
- // proactive resolution are captured (not silenced). The original
197
- // store's stream is already sent by waitUntil time.
198
- // cacheRoute reads from requestCtx._handleStore, so this ensures
199
- // complete handle data (e.g. breadcrumbs) is cached.
200
226
  const originalHandleStore = requestCtx._handleStore;
201
227
  requestCtx._handleStore = createHandleStore();
202
228
  try {
203
- // Create fresh context for proactive caching
204
229
  const proactiveHandlerContext = createHandlerContext(
205
230
  ctx.matched.params,
206
231
  ctx.request,
@@ -215,33 +240,49 @@ export function withCacheStore<TEnv>(
215
240
  );
216
241
  const proactiveLoaderPromises = new Map<string, Promise<any>>();
217
242
 
218
- // Use normal loader access so handle data is captured
219
243
  setupLoaderAccess(proactiveHandlerContext, proactiveLoaderPromises);
220
244
 
221
- // Re-resolve ALL segments without revalidation
222
245
  const Store = ctx.Store;
223
- const freshSegments = await Store.run(() =>
224
- resolveAllSegments(
225
- ctx.entries,
226
- ctx.routeKey,
227
- ctx.matched.params,
228
- proactiveHandlerContext,
229
- proactiveLoaderPromises,
246
+ // Re-establish the request-context ALS around the re-render. Store
247
+ // is a different ALS (DSL build context); on workerd a waitUntil
248
+ // task runs detached from the request's I/O context, so a handler/
249
+ // component that reads the ambient getRequestContext() during this
250
+ // background re-render would otherwise throw "called outside of a
251
+ // request context".
252
+ const freshSegments = await runWithRequestContext(requestCtx, () =>
253
+ Store.run(() =>
254
+ resolveAllSegments(
255
+ ctx.entries,
256
+ ctx.routeKey,
257
+ ctx.matched.params,
258
+ proactiveHandlerContext,
259
+ proactiveLoaderPromises,
260
+ { skipLoaders: true },
261
+ ),
230
262
  ),
231
263
  );
232
264
 
233
- // Also resolve intercept segments fresh if applicable
234
265
  let freshInterceptSegments: ResolvedSegment[] = [];
235
266
  if (ctx.interceptResult) {
236
- freshInterceptSegments = await Store.run(() =>
237
- resolveInterceptEntry(
238
- ctx.interceptResult!.intercept,
239
- ctx.interceptResult!.entry,
240
- ctx.matched.params,
241
- proactiveHandlerContext,
242
- true, // belongsToRoute
243
- // No revalidationContext = render fresh
244
- ),
267
+ freshInterceptSegments = await runWithRequestContext(
268
+ requestCtx,
269
+ () =>
270
+ Store.run(() =>
271
+ resolveInterceptEntry(
272
+ ctx.interceptResult!.intercept,
273
+ ctx.interceptResult!.entry,
274
+ ctx.matched.params,
275
+ proactiveHandlerContext,
276
+ true, // belongsToRoute
277
+ // No revalidationContext = render fresh
278
+ undefined,
279
+ // Skip intercept middleware: the foreground already ran it
280
+ // before the response was sent. Re-running here (post-
281
+ // response, background) would fire side effects twice and a
282
+ // short-circuit Response would silently abort this write.
283
+ { skipMiddleware: true },
284
+ ),
285
+ ),
245
286
  );
246
287
  }
247
288
 
@@ -256,28 +297,51 @@ export function withCacheStore<TEnv>(
256
297
  completeSegments,
257
298
  ctx.isIntercept,
258
299
  );
300
+ if (INTERNAL_RANGO_DEBUG) {
301
+ const dur = performance.now() - start;
302
+ console.log(
303
+ `[RSC Background][req:${reqId}] Proactive cache ${ctx.pathname} (${dur.toFixed(2)}ms) segments=${completeSegments.length}`,
304
+ );
305
+ }
259
306
  debugLog("cacheStore", "proactive caching complete", {
260
307
  pathname: ctx.pathname,
261
308
  });
262
309
  } catch (error) {
310
+ if (INTERNAL_RANGO_DEBUG) {
311
+ const dur = performance.now() - start;
312
+ console.log(
313
+ `[RSC Background][req:${reqId}] Proactive cache ${ctx.pathname} FAILED (${dur.toFixed(2)}ms) error=${String(error)}`,
314
+ );
315
+ }
263
316
  debugWarn("cacheStore", "proactive caching failed", {
264
317
  pathname: ctx.pathname,
265
318
  error: String(error),
266
319
  });
267
320
  } finally {
268
321
  requestCtx._handleStore = originalHandleStore;
322
+ ctx.Store.metrics = savedMetrics;
269
323
  }
270
324
  });
271
325
  } else {
272
- // All segments have components - cache directly
273
- // Schedule caching in waitUntil since cacheRoute is now async (key resolution)
326
+ if (INTERNAL_RANGO_DEBUG) {
327
+ console.log(
328
+ `[RSC CacheStore][req:${reqId}] Direct cache path: scheduling cacheRoute for ${ctx.pathname} (${allSegmentsToCache.length} segments, hasNullComponents=${hasNullComponents})`,
329
+ );
330
+ }
274
331
  requestCtx.waitUntil(async () => {
332
+ const start = performance.now();
275
333
  await cacheScope.cacheRoute(
276
334
  ctx.pathname,
277
335
  ctx.matched.params,
278
336
  allSegmentsToCache,
279
337
  ctx.isIntercept,
280
338
  );
339
+ if (INTERNAL_RANGO_DEBUG) {
340
+ const dur = performance.now() - start;
341
+ console.log(
342
+ `[RSC Background][req:${reqId}] Cache store ${ctx.pathname} (${dur.toFixed(2)}ms) segments=${allSegmentsToCache.length}`,
343
+ );
344
+ }
281
345
  });
282
346
  }
283
347
 
@@ -287,9 +351,70 @@ export function withCacheStore<TEnv>(
287
351
  if (ms) {
288
352
  ms.metrics.push({
289
353
  label: "pipeline:cache-store",
290
- duration: performance.now() - pipelineStart,
291
- startTime: pipelineStart - ms.requestStart,
354
+ duration: performance.now() - ownStart,
355
+ startTime: ownStart - ms.requestStart,
292
356
  });
293
357
  }
294
358
  };
295
359
  }
360
+
361
+ /**
362
+ * During a SHELL CAPTURE of a route with a route-derived cache() scope, write
363
+ * the matched non-loader segments as the canonical doc segment record through
364
+ * the capture marker's SnapshotOnlySegmentStore — IN ADDITION to the explicit
365
+ * scope's normal real-store write. The record rides only inside the shell
366
+ * entry (a real doc-keyed write would poison the next capture's lookup; see
367
+ * RecordingShellStore.recordSegmentWrite), so no real-store behavior changes.
368
+ * Without it, navigation replay was structurally dead for any ppr route under
369
+ * a cache() scope (including an app-wide one): the snapshot held only
370
+ * explicit-tier-keyed records a partial lookup can never resolve.
371
+ *
372
+ * Records nothing when:
373
+ * - not a capture render, or the route derived no scope (the implicit doc
374
+ * scope's own cacheRoute below already records the doc record);
375
+ * - the scope is STATICALLY disabled (cache(false)) — the replay gate
376
+ * pre-decides that shape as `cache-disabled` before any shell read, so a
377
+ * record would be dead weight;
378
+ * - the prerender store supplied the match: those partials are served from
379
+ * build-time segments and report `prerender-store`.
380
+ *
381
+ * A false condition() suppresses the record too — the consumer's write
382
+ * refusal is absolute. The prelude-already-bakes-it argument does NOT excuse
383
+ * recording: a NAVIGATION-ONLY capture's prelude is never served as a
384
+ * document, so for those entries the segment record would be the sole
385
+ * persisted copy of a render the consumer refused to cache — and a later
386
+ * request where condition() flips true could consume it through the seeded
387
+ * fallback. The lookup-time `cache-disabled` report stays reachable without
388
+ * the record: matchPartialWithPprReplay installs a REPORT-ONLY marker (no
389
+ * store) on the no-eligible-snapshot path, so the lookup's own refusal is
390
+ * still surfaced while the fallback has nothing to serve.
391
+ *
392
+ * Wrapped in requestCtx.waitUntil — during a capture that is the tracked-write
393
+ * override, so captureAndStoreShell's settleWrites awaits the record before
394
+ * draining the snapshot.
395
+ */
396
+ function recordShellCaptureDocRecord<TEnv>(
397
+ ctx: MatchContext<TEnv>,
398
+ state: MatchPipelineState,
399
+ segments: ResolvedSegment[],
400
+ ): void {
401
+ const requestCtx = getRequestContext();
402
+ if (!requestCtx?._shellCaptureRun) return;
403
+ const marker = requestCtx._shellImplicitCache;
404
+ if (!marker?.store) return;
405
+ const scope = ctx.cacheScope;
406
+ if (!scope || scope.isShellImplicitDocScope) return;
407
+ if (ctx.isAction || ctx.isIntercept || ctx.request.method !== "GET") return;
408
+ if (state.cacheSource === "prerender") return;
409
+ if (!scope.allowsCache("write")) return;
410
+
411
+ const docScope = createShellImplicitDocScope(marker);
412
+ requestCtx.waitUntil(() =>
413
+ docScope.cacheRoute(
414
+ ctx.pathname,
415
+ ctx.matched.params,
416
+ segments,
417
+ ctx.isIntercept,
418
+ ),
419
+ );
420
+ }
@@ -123,54 +123,46 @@ export function withInterceptResolution<TEnv>(
123
123
  return async function* (
124
124
  source: AsyncGenerator<ResolvedSegment>,
125
125
  ): AsyncGenerator<ResolvedSegment> {
126
- const pipelineStart = performance.now();
127
126
  const ms = ctx.metricsStore;
128
127
 
129
- // First, yield all segments from the source (main segment resolution or cache)
130
128
  const segments: ResolvedSegment[] = [];
131
129
  for await (const segment of source) {
132
130
  segments.push(segment);
133
131
  yield segment;
134
132
  }
135
133
 
136
- // Skip intercept resolution for full match (document requests don't have intercepts)
134
+ const ownStart = performance.now();
135
+
137
136
  if (ctx.isFullMatch) {
138
137
  if (ms) {
139
138
  ms.metrics.push({
140
139
  label: "pipeline:intercept",
141
- duration: performance.now() - pipelineStart,
142
- startTime: pipelineStart - ms.requestStart,
140
+ duration: performance.now() - ownStart,
141
+ startTime: ownStart - ms.requestStart,
143
142
  });
144
143
  }
145
144
  return;
146
145
  }
147
146
 
148
- // Skip intercept resolution if:
149
- // 1. No intercept result
150
- // 2. Already have intercept segments (from cache hit with intercept key)
151
- // 3. Cache hit with intercept key
152
147
  const skipInterceptResolution =
153
148
  !ctx.interceptResult ||
154
149
  state.interceptSegments.length > 0 ||
155
150
  (state.cacheHit && ctx.isIntercept);
156
151
 
157
152
  if (skipInterceptResolution) {
158
- // For cache hit with intercept, extract intercept segments from cached data for slots
159
- // and re-resolve loaders for fresh data
160
153
  if (ctx.interceptResult && state.cacheHit && ctx.isIntercept) {
161
154
  await handleCacheHitIntercept(ctx, state, segments);
162
155
  }
163
156
  if (ms) {
164
157
  ms.metrics.push({
165
158
  label: "pipeline:intercept",
166
- duration: performance.now() - pipelineStart,
167
- startTime: pipelineStart - ms.requestStart,
159
+ duration: performance.now() - ownStart,
160
+ startTime: ownStart - ms.requestStart,
168
161
  });
169
162
  }
170
163
  return;
171
164
  }
172
165
 
173
- // Resolve intercept segments
174
166
  const { resolveInterceptEntry } = getRouterContext<TEnv>();
175
167
 
176
168
  const slotName = ctx.interceptResult!.intercept.slotName;
@@ -179,7 +171,6 @@ export function withInterceptResolution<TEnv>(
179
171
  slotName,
180
172
  });
181
173
 
182
- // Resolve intercept entry (middleware, loaders, handler)
183
174
  const Store = ctx.Store;
184
175
  const interceptSegments = await Store.run(() =>
185
176
  resolveInterceptEntry(
@@ -201,14 +192,12 @@ export function withInterceptResolution<TEnv>(
201
192
  ),
202
193
  );
203
194
 
204
- // Update state
205
195
  state.interceptSegments = interceptSegments;
206
196
  state.slots[slotName] = {
207
197
  active: true,
208
198
  segments: interceptSegments,
209
199
  };
210
200
 
211
- // Yield intercept segments
212
201
  for (const segment of interceptSegments) {
213
202
  yield segment;
214
203
  }
@@ -216,18 +205,13 @@ export function withInterceptResolution<TEnv>(
216
205
  if (ms) {
217
206
  ms.metrics.push({
218
207
  label: "pipeline:intercept",
219
- duration: performance.now() - pipelineStart,
220
- startTime: pipelineStart - ms.requestStart,
208
+ duration: performance.now() - ownStart,
209
+ startTime: ownStart - ms.requestStart,
221
210
  });
222
211
  }
223
212
  };
224
213
  }
225
214
 
226
- /**
227
- * Handle cache hit with intercept scenario
228
- *
229
- * Extract intercept segments from cached data and re-resolve loaders for fresh data.
230
- */
231
215
  async function handleCacheHitIntercept<TEnv>(
232
216
  ctx: MatchContext<TEnv>,
233
217
  state: MatchPipelineState,
@@ -239,14 +223,11 @@ async function handleCacheHitIntercept<TEnv>(
239
223
 
240
224
  const slotName = ctx.interceptResult.intercept.slotName;
241
225
 
242
- // Find intercept segments from cached segments (namespace starts with "intercept:")
243
226
  const interceptSegments = segments.filter((s) =>
244
227
  s.namespace?.startsWith("intercept:"),
245
228
  );
246
229
  state.interceptSegments = interceptSegments;
247
230
 
248
- // Re-resolve intercept loaders for fresh data on cache hit
249
- // This keeps cached component/layout but fetches fresh loader data
250
231
  if (resolveInterceptLoadersOnly) {
251
232
  const Store = ctx.Store;
252
233
  const freshLoaderResult = await Store.run(() =>
@@ -269,7 +250,6 @@ async function handleCacheHitIntercept<TEnv>(
269
250
  ),
270
251
  );
271
252
 
272
- // Update intercept segment's loaderDataPromise with fresh data
273
253
  if (freshLoaderResult) {
274
254
  const interceptMainSegment = interceptSegments.find(
275
255
  (s) => s.type === "parallel" && s.slot,
@@ -87,16 +87,43 @@
87
87
  * if (state.cacheHit) return; // Now we can check
88
88
  */
89
89
  import type { ResolvedSegment } from "../../types.js";
90
+ import type { EntryData } from "../../server/context.js";
91
+ import { _getRequestContext } from "../../server/request-context.js";
90
92
  import type { MatchContext, MatchPipelineState } from "../match-context.js";
91
93
  import { getRouterContext } from "../router-context.js";
92
94
  import type { GeneratorMiddleware } from "./cache-lookup.js";
93
95
 
94
- /**
95
- * Creates segment resolution middleware
96
- *
97
- * Only runs on cache miss (state.cacheHit === false).
98
- * Uses resolveAllSegmentsWithRevalidation from RouterContext to resolve segments.
99
- */
96
+ export function treeHasStreaming(entries: EntryData[]): boolean {
97
+ for (const entry of entries) {
98
+ if (
99
+ "loading" in entry &&
100
+ entry.loading !== undefined &&
101
+ entry.loading !== false
102
+ )
103
+ return true;
104
+ if (entry.layout) {
105
+ if (treeHasStreaming(entry.layout)) return true;
106
+ }
107
+ if (entry.parallel) {
108
+ for (const key in entry.parallel) {
109
+ const parallelEntry = entry.parallel[key as `@${string}`];
110
+ if (parallelEntry) {
111
+ if (
112
+ "loading" in parallelEntry &&
113
+ parallelEntry.loading !== undefined &&
114
+ parallelEntry.loading !== false
115
+ )
116
+ return true;
117
+ if (parallelEntry.layout) {
118
+ if (treeHasStreaming(parallelEntry.layout)) return true;
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+ return false;
125
+ }
126
+
100
127
  export function withSegmentResolution<TEnv>(
101
128
  ctx: MatchContext<TEnv>,
102
129
  state: MatchPipelineState,
@@ -104,34 +131,36 @@ export function withSegmentResolution<TEnv>(
104
131
  return async function* (
105
132
  source: AsyncGenerator<ResolvedSegment>,
106
133
  ): AsyncGenerator<ResolvedSegment> {
107
- const pipelineStart = performance.now();
108
134
  const ms = ctx.metricsStore;
109
135
 
110
- // IMPORTANT: Always iterate source first to give cache-lookup a chance
111
- // to run and set state.cacheHit. Without this, cache-lookup never executes!
112
136
  for await (const segment of source) {
113
137
  yield segment;
114
138
  }
115
139
 
116
- // If cache hit, segments were already yielded by cache lookup
140
+ const ownStart = performance.now();
141
+
117
142
  if (state.cacheHit) {
118
143
  if (ms) {
119
144
  ms.metrics.push({
120
145
  label: "pipeline:segment-resolve",
121
- duration: performance.now() - pipelineStart,
122
- startTime: pipelineStart - ms.requestStart,
146
+ duration: performance.now() - ownStart,
147
+ startTime: ownStart - ms.requestStart,
123
148
  });
124
149
  }
125
150
  return;
126
151
  }
127
152
 
153
+ const reqCtx = _getRequestContext();
154
+ if (reqCtx && reqCtx._treeHasStreaming === undefined) {
155
+ reqCtx._treeHasStreaming = treeHasStreaming(ctx.entries);
156
+ }
157
+
128
158
  const { resolveAllSegmentsWithRevalidation, resolveAllSegments } =
129
159
  getRouterContext<TEnv>();
130
160
 
131
161
  const Store = ctx.Store;
132
162
 
133
163
  if (ctx.isFullMatch) {
134
- // Full match (document request) - simple resolution without revalidation
135
164
  const segments = await Store.run(() =>
136
165
  resolveAllSegments(
137
166
  ctx.entries,
@@ -142,11 +171,12 @@ export function withSegmentResolution<TEnv>(
142
171
  ),
143
172
  );
144
173
 
145
- // Update state with resolved segments
146
174
  state.segments = segments;
147
175
  state.matchedIds = segments.map((s: { id: string }) => s.id);
148
176
 
149
- // Yield all resolved segments
177
+ if (reqCtx) {
178
+ reqCtx._resolveRenderBarrier(segments);
179
+ }
150
180
  for (const segment of segments) {
151
181
  yield segment;
152
182
  }
@@ -163,11 +193,11 @@ export function withSegmentResolution<TEnv>(
163
193
  ctx.request,
164
194
  ctx.prevUrl,
165
195
  ctx.url,
166
- ctx.loaderPromises,
167
196
  ctx.actionContext,
168
197
  ctx.interceptResult,
169
198
  ctx.localRouteName,
170
199
  ctx.pathname,
200
+ ctx.stale,
171
201
  ),
172
202
  );
173
203
 
@@ -175,6 +205,10 @@ export function withSegmentResolution<TEnv>(
175
205
  state.segments = result.segments;
176
206
  state.matchedIds = result.matchedIds;
177
207
 
208
+ if (reqCtx) {
209
+ reqCtx._resolveRenderBarrier(result.segments);
210
+ }
211
+
178
212
  // Yield all resolved segments
179
213
  for (const segment of result.segments) {
180
214
  yield segment;
@@ -184,8 +218,8 @@ export function withSegmentResolution<TEnv>(
184
218
  if (ms) {
185
219
  ms.metrics.push({
186
220
  label: "pipeline:segment-resolve",
187
- duration: performance.now() - pipelineStart,
188
- startTime: pipelineStart - ms.requestStart,
221
+ duration: performance.now() - ownStart,
222
+ startTime: ownStart - ms.requestStart,
189
223
  });
190
224
  }
191
225
  };
@@ -106,16 +106,6 @@ import {
106
106
  withSegmentResolution,
107
107
  } from "./match-middleware/index.js";
108
108
 
109
- /**
110
- * Compose multiple async generator middleware into a single middleware
111
- *
112
- * Middleware are applied in reverse order (rightmost runs first, innermost).
113
- * For the pipeline:
114
- * compose(A, B, C)(source)
115
- *
116
- * The flow is: source -> C -> B -> A -> output
117
- * Where C is the innermost (runs first on input) and A is outermost (runs last).
118
- */
119
109
  export function compose<T>(
120
110
  ...middleware: GeneratorMiddleware<T>[]
121
111
  ): GeneratorMiddleware<T> {
@@ -126,54 +116,23 @@ export function compose<T>(
126
116
  return middleware[0];
127
117
  }
128
118
  return (source) => {
129
- // Apply middleware in reverse order (rightmost first)
130
119
  return middleware.reduceRight((prev, fn) => fn(prev), source);
131
120
  };
132
121
  }
133
122
 
134
- /**
135
- * Create an empty async generator (source for pipeline)
136
- */
137
- export async function* empty<T>(): AsyncGenerator<T> {
138
- // Yields nothing - used as the initial source for the pipeline
139
- }
123
+ export async function* empty<T>(): AsyncGenerator<T> {}
140
124
 
141
- /**
142
- * Create the match partial pipeline
143
- *
144
- * Pipeline order (innermost to outermost):
145
- * 1. cache-lookup - Check cache first, yield cached segments if hit
146
- * 2. segment-resolution - Resolve segments if cache miss
147
- * 3. intercept-resolution - Resolve intercept segments
148
- * 4. cache-store - Store segments in cache
149
- * 5. background-revalidation - Trigger SWR if cache was stale
150
- *
151
- * Data flow:
152
- * - empty() produces no segments
153
- * - cache-lookup either yields cached segments OR passes through to segment-resolution
154
- * - segment-resolution resolves fresh segments on cache miss
155
- * - intercept-resolution adds intercept segments
156
- * - cache-store observes and caches segments
157
- * - background-revalidation triggers SWR revalidation if needed
158
- */
159
125
  export function createMatchPartialPipeline<TEnv>(
160
126
  ctx: MatchContext<TEnv>,
161
127
  state: MatchPipelineState,
162
128
  ): AsyncGenerator<ResolvedSegment> {
163
- // Build the middleware chain
164
129
  const pipeline = compose<ResolvedSegment>(
165
- // Outermost - observes segments and triggers background revalidation
166
130
  withBackgroundRevalidation(ctx, state),
167
- // Observes and stores segments in cache
168
131
  withCacheStore(ctx, state),
169
- // Adds intercept segments after main segments
170
132
  withInterceptResolution(ctx, state),
171
- // Resolves segments on cache miss
172
133
  withSegmentResolution(ctx, state),
173
- // Innermost - checks cache first
174
134
  withCacheLookup(ctx, state),
175
135
  );
176
136
 
177
- // Start with empty source - cache lookup or segment resolution will produce segments
178
137
  return pipeline(empty());
179
138
  }