@rangojs/router 0.0.0-experimental.80 → 0.0.0-experimental.80daa23e

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 (1717) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +318 -791
  3. package/dist/__internal.d.ts +83 -0
  4. package/dist/__internal.d.ts.map +1 -0
  5. package/dist/__internal.js +19 -0
  6. package/dist/__internal.js.map +1 -0
  7. package/dist/__mocks__/version.d.ts +7 -0
  8. package/dist/__mocks__/version.d.ts.map +1 -0
  9. package/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +927 -273
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/{src/browser/react/use-client-cache.ts → dist/browser/react/use-client-cache.js} +9 -28
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/{src/handles/index.ts → dist/handles/index.d.ts} +1 -2
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/dist/href-context.d.ts +29 -0
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/{src/network-error-thrower.tsx → dist/network-error-thrower.d.ts} +4 -10
  448. package/dist/network-error-thrower.d.ts.map +1 -0
  449. package/dist/network-error-thrower.js +14 -0
  450. package/dist/network-error-thrower.js.map +1 -0
  451. package/dist/outlet-context.d.ts +13 -0
  452. package/dist/outlet-context.d.ts.map +1 -0
  453. package/dist/outlet-context.js +3 -0
  454. package/dist/outlet-context.js.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  456. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  457. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  458. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  459. package/dist/prerender/param-hash.d.ts +16 -0
  460. package/dist/prerender/param-hash.d.ts.map +1 -0
  461. package/dist/prerender/param-hash.js +36 -0
  462. package/dist/prerender/param-hash.js.map +1 -0
  463. package/dist/prerender/store.d.ts +38 -0
  464. package/dist/prerender/store.d.ts.map +1 -0
  465. package/dist/prerender/store.js +61 -0
  466. package/dist/prerender/store.js.map +1 -0
  467. package/dist/prerender.d.ts +66 -0
  468. package/dist/prerender.d.ts.map +1 -0
  469. package/dist/prerender.js +57 -0
  470. package/dist/prerender.js.map +1 -0
  471. package/dist/reverse.d.ts +196 -0
  472. package/dist/reverse.d.ts.map +1 -0
  473. package/dist/reverse.js +78 -0
  474. package/dist/reverse.js.map +1 -0
  475. package/dist/root-error-boundary.d.ts +33 -0
  476. package/dist/root-error-boundary.d.ts.map +1 -0
  477. package/dist/root-error-boundary.js +165 -0
  478. package/dist/root-error-boundary.js.map +1 -0
  479. package/dist/route-content-wrapper.d.ts +46 -0
  480. package/dist/route-content-wrapper.d.ts.map +1 -0
  481. package/dist/route-content-wrapper.js +77 -0
  482. package/dist/route-content-wrapper.js.map +1 -0
  483. package/dist/route-definition.d.ts +421 -0
  484. package/dist/route-definition.d.ts.map +1 -0
  485. package/dist/route-definition.js +868 -0
  486. package/dist/route-definition.js.map +1 -0
  487. package/dist/route-map-builder.d.ts +155 -0
  488. package/dist/route-map-builder.d.ts.map +1 -0
  489. package/dist/route-map-builder.js +237 -0
  490. package/dist/route-map-builder.js.map +1 -0
  491. package/dist/route-types.d.ts +165 -0
  492. package/dist/route-types.d.ts.map +1 -0
  493. package/dist/route-types.js +7 -0
  494. package/dist/route-types.js.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  496. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  497. package/dist/router/__tests__/handler-context.test.js +65 -0
  498. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  502. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  503. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  504. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  505. package/dist/router/__tests__/match-context.test.js +92 -0
  506. package/dist/router/__tests__/match-context.test.js.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  508. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  509. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  510. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  511. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  512. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  513. package/dist/router/__tests__/match-result.test.js +457 -0
  514. package/dist/router/__tests__/match-result.test.js.map +1 -0
  515. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  516. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  517. package/dist/router/__tests__/on-error.test.js +678 -0
  518. package/dist/router/__tests__/on-error.test.js.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  520. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  521. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  522. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  526. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  527. package/dist/router/error-handling.d.ts +77 -0
  528. package/dist/router/error-handling.d.ts.map +1 -0
  529. package/dist/router/error-handling.js +202 -0
  530. package/dist/router/error-handling.js.map +1 -0
  531. package/dist/router/handler-context.d.ts +20 -0
  532. package/dist/router/handler-context.d.ts.map +1 -0
  533. package/dist/router/handler-context.js +198 -0
  534. package/dist/router/handler-context.js.map +1 -0
  535. package/dist/router/intercept-resolution.d.ts +66 -0
  536. package/dist/router/intercept-resolution.d.ts.map +1 -0
  537. package/dist/router/intercept-resolution.js +246 -0
  538. package/dist/router/intercept-resolution.js.map +1 -0
  539. package/dist/router/loader-resolution.d.ts +64 -0
  540. package/dist/router/loader-resolution.d.ts.map +1 -0
  541. package/dist/router/loader-resolution.js +284 -0
  542. package/dist/router/loader-resolution.js.map +1 -0
  543. package/dist/router/logging.d.ts +15 -0
  544. package/dist/router/logging.d.ts.map +1 -0
  545. package/dist/router/logging.js +99 -0
  546. package/dist/router/logging.js.map +1 -0
  547. package/dist/router/manifest.d.ts +22 -0
  548. package/dist/router/manifest.d.ts.map +1 -0
  549. package/dist/router/manifest.js +181 -0
  550. package/dist/router/manifest.js.map +1 -0
  551. package/dist/router/match-api.d.ts +35 -0
  552. package/dist/router/match-api.d.ts.map +1 -0
  553. package/dist/router/match-api.js +406 -0
  554. package/dist/router/match-api.js.map +1 -0
  555. package/dist/router/match-context.d.ts +206 -0
  556. package/dist/router/match-context.d.ts.map +1 -0
  557. package/dist/router/match-context.js +17 -0
  558. package/dist/router/match-context.js.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  560. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  561. package/dist/router/match-middleware/background-revalidation.js +75 -0
  562. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  564. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  565. package/dist/router/match-middleware/cache-lookup.js +257 -0
  566. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  567. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  568. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  569. package/dist/router/match-middleware/cache-store.js +108 -0
  570. package/dist/router/match-middleware/cache-store.js.map +1 -0
  571. package/dist/router/match-middleware/index.d.ts +81 -0
  572. package/dist/router/match-middleware/index.d.ts.map +1 -0
  573. package/dist/router/match-middleware/index.js +80 -0
  574. package/dist/router/match-middleware/index.js.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  576. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  577. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  578. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  580. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  581. package/dist/router/match-middleware/segment-resolution.js +53 -0
  582. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  583. package/dist/router/match-pipelines.d.ts +147 -0
  584. package/dist/router/match-pipelines.d.ts.map +1 -0
  585. package/dist/router/match-pipelines.js +82 -0
  586. package/dist/router/match-pipelines.js.map +1 -0
  587. package/dist/router/match-result.d.ts +126 -0
  588. package/dist/router/match-result.d.ts.map +1 -0
  589. package/dist/router/match-result.js +93 -0
  590. package/dist/router/match-result.js.map +1 -0
  591. package/dist/router/metrics.d.ts +20 -0
  592. package/dist/router/metrics.d.ts.map +1 -0
  593. package/dist/router/metrics.js +47 -0
  594. package/dist/router/metrics.js.map +1 -0
  595. package/dist/router/middleware.d.ts +249 -0
  596. package/dist/router/middleware.d.ts.map +1 -0
  597. package/dist/router/middleware.js +434 -0
  598. package/dist/router/middleware.js.map +1 -0
  599. package/dist/router/middleware.test.d.ts +2 -0
  600. package/dist/router/middleware.test.d.ts.map +1 -0
  601. package/dist/router/middleware.test.js +816 -0
  602. package/dist/router/middleware.test.js.map +1 -0
  603. package/dist/router/pattern-matching.d.ts +149 -0
  604. package/dist/router/pattern-matching.d.ts.map +1 -0
  605. package/dist/router/pattern-matching.js +349 -0
  606. package/dist/router/pattern-matching.js.map +1 -0
  607. package/dist/router/revalidation.d.ts +44 -0
  608. package/dist/router/revalidation.d.ts.map +1 -0
  609. package/dist/router/revalidation.js +147 -0
  610. package/dist/router/revalidation.js.map +1 -0
  611. package/dist/router/router-context.d.ts +135 -0
  612. package/dist/router/router-context.d.ts.map +1 -0
  613. package/dist/router/router-context.js +36 -0
  614. package/dist/router/router-context.js.map +1 -0
  615. package/dist/router/segment-resolution.d.ts +127 -0
  616. package/dist/router/segment-resolution.d.ts.map +1 -0
  617. package/dist/router/segment-resolution.js +919 -0
  618. package/dist/router/segment-resolution.js.map +1 -0
  619. package/dist/router/trie-matching.d.ts +40 -0
  620. package/dist/router/trie-matching.d.ts.map +1 -0
  621. package/dist/router/trie-matching.js +127 -0
  622. package/dist/router/trie-matching.js.map +1 -0
  623. package/dist/router/types.d.ts +136 -0
  624. package/dist/router/types.d.ts.map +1 -0
  625. package/dist/router/types.js +7 -0
  626. package/dist/router/types.js.map +1 -0
  627. package/dist/router.d.ts +753 -0
  628. package/dist/router.d.ts.map +1 -0
  629. package/dist/router.gen.d.ts +6 -0
  630. package/dist/router.gen.d.ts.map +1 -0
  631. package/dist/router.gen.js +6 -0
  632. package/dist/router.gen.js.map +1 -0
  633. package/dist/router.js +1304 -0
  634. package/dist/router.js.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  636. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  637. package/dist/rsc/__tests__/helpers.test.js +140 -0
  638. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  639. package/dist/rsc/handler.d.ts +45 -0
  640. package/dist/rsc/handler.d.ts.map +1 -0
  641. package/dist/rsc/handler.js +1172 -0
  642. package/dist/rsc/handler.js.map +1 -0
  643. package/dist/rsc/helpers.d.ts +16 -0
  644. package/dist/rsc/helpers.d.ts.map +1 -0
  645. package/dist/rsc/helpers.js +55 -0
  646. package/dist/rsc/helpers.js.map +1 -0
  647. package/dist/rsc/index.d.ts +22 -0
  648. package/dist/rsc/index.d.ts.map +1 -0
  649. package/dist/rsc/index.js +23 -0
  650. package/dist/rsc/index.js.map +1 -0
  651. package/dist/rsc/nonce.d.ts +9 -0
  652. package/dist/rsc/nonce.d.ts.map +1 -0
  653. package/dist/rsc/nonce.js +18 -0
  654. package/dist/rsc/nonce.js.map +1 -0
  655. package/dist/rsc/types.d.ts +206 -0
  656. package/dist/rsc/types.d.ts.map +1 -0
  657. package/dist/rsc/types.js +8 -0
  658. package/dist/rsc/types.js.map +1 -0
  659. package/dist/search-params.d.ts +103 -0
  660. package/dist/search-params.d.ts.map +1 -0
  661. package/dist/search-params.js +74 -0
  662. package/dist/search-params.js.map +1 -0
  663. package/dist/segment-system.d.ts +75 -0
  664. package/dist/segment-system.d.ts.map +1 -0
  665. package/dist/segment-system.js +336 -0
  666. package/dist/segment-system.js.map +1 -0
  667. package/dist/server/context.d.ts +245 -0
  668. package/dist/server/context.d.ts.map +1 -0
  669. package/dist/server/context.js +197 -0
  670. package/dist/server/context.js.map +1 -0
  671. package/dist/server/fetchable-loader-store.d.ts +18 -0
  672. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  673. package/dist/server/fetchable-loader-store.js +18 -0
  674. package/dist/server/fetchable-loader-store.js.map +1 -0
  675. package/dist/server/handle-store.d.ts +85 -0
  676. package/dist/server/handle-store.d.ts.map +1 -0
  677. package/dist/server/handle-store.js +142 -0
  678. package/dist/server/handle-store.js.map +1 -0
  679. package/dist/server/loader-registry.d.ts +55 -0
  680. package/dist/server/loader-registry.d.ts.map +1 -0
  681. package/dist/server/loader-registry.js +132 -0
  682. package/dist/server/loader-registry.js.map +1 -0
  683. package/dist/server/request-context.d.ts +226 -0
  684. package/dist/server/request-context.d.ts.map +1 -0
  685. package/dist/server/request-context.js +290 -0
  686. package/dist/server/request-context.js.map +1 -0
  687. package/dist/server/root-layout.d.ts +4 -0
  688. package/dist/server/root-layout.d.ts.map +1 -0
  689. package/dist/server/root-layout.js +5 -0
  690. package/dist/server/root-layout.js.map +1 -0
  691. package/dist/server.d.ts +15 -0
  692. package/dist/server.d.ts.map +1 -0
  693. package/dist/server.js +20 -0
  694. package/dist/server.js.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  698. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  699. package/dist/ssr/index.d.ts +98 -0
  700. package/dist/ssr/index.d.ts.map +1 -0
  701. package/dist/ssr/index.js +158 -0
  702. package/dist/ssr/index.js.map +1 -0
  703. package/dist/static-handler.d.ts +50 -0
  704. package/dist/static-handler.d.ts.map +1 -0
  705. package/dist/static-handler.gen.d.ts +5 -0
  706. package/dist/static-handler.gen.d.ts.map +1 -0
  707. package/dist/static-handler.gen.js +5 -0
  708. package/dist/static-handler.gen.js.map +1 -0
  709. package/dist/static-handler.js +29 -0
  710. package/dist/static-handler.js.map +1 -0
  711. package/dist/testing/vitest.js +82 -0
  712. package/dist/theme/ThemeProvider.d.ts +20 -0
  713. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  714. package/dist/theme/ThemeProvider.js +240 -0
  715. package/dist/theme/ThemeProvider.js.map +1 -0
  716. package/dist/theme/ThemeScript.d.ts +48 -0
  717. package/dist/theme/ThemeScript.d.ts.map +1 -0
  718. package/dist/theme/ThemeScript.js +13 -0
  719. package/dist/theme/ThemeScript.js.map +1 -0
  720. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  721. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  722. package/dist/theme/__tests__/theme.test.js +103 -0
  723. package/dist/theme/__tests__/theme.test.js.map +1 -0
  724. package/dist/theme/constants.d.ts +29 -0
  725. package/dist/theme/constants.d.ts.map +1 -0
  726. package/dist/theme/constants.js +48 -0
  727. package/dist/theme/constants.js.map +1 -0
  728. package/dist/theme/index.d.ts +31 -0
  729. package/dist/theme/index.d.ts.map +1 -0
  730. package/dist/theme/index.js +36 -0
  731. package/dist/theme/index.js.map +1 -0
  732. package/dist/theme/theme-context.d.ts +40 -0
  733. package/dist/theme/theme-context.d.ts.map +1 -0
  734. package/dist/theme/theme-context.js +60 -0
  735. package/dist/theme/theme-context.js.map +1 -0
  736. package/dist/theme/theme-script.d.ts +27 -0
  737. package/dist/theme/theme-script.d.ts.map +1 -0
  738. package/dist/theme/theme-script.js +147 -0
  739. package/dist/theme/theme-script.js.map +1 -0
  740. package/dist/theme/types.d.ts +163 -0
  741. package/dist/theme/types.d.ts.map +1 -0
  742. package/dist/theme/types.js +11 -0
  743. package/dist/theme/types.js.map +1 -0
  744. package/dist/theme/use-theme.d.ts +12 -0
  745. package/dist/theme/use-theme.d.ts.map +1 -0
  746. package/dist/theme/use-theme.js +40 -0
  747. package/dist/theme/use-theme.js.map +1 -0
  748. package/dist/types/__internal.d.ts +127 -0
  749. package/dist/types/bin/rango.d.ts +1 -0
  750. package/dist/types/browser/action-coordinator.d.ts +57 -0
  751. package/dist/types/browser/action-fence.d.ts +33 -0
  752. package/dist/types/browser/app-shell.d.ts +34 -0
  753. package/dist/types/browser/app-version.d.ts +6 -0
  754. package/dist/types/browser/connection-warmup.d.ts +31 -0
  755. package/dist/types/browser/cookie-name.d.ts +66 -0
  756. package/dist/types/browser/dev-discovery.d.ts +11 -0
  757. package/dist/types/browser/event-controller.d.ts +231 -0
  758. package/dist/types/browser/history-state.d.ts +26 -0
  759. package/dist/types/browser/index.d.ts +1 -0
  760. package/dist/types/browser/intercept-utils.d.ts +30 -0
  761. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  762. package/dist/types/browser/link-interceptor.d.ts +53 -0
  763. package/dist/types/browser/logging.d.ts +33 -0
  764. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  765. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  766. package/dist/types/browser/navigation-client.d.ts +17 -0
  767. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  768. package/dist/types/browser/navigation-store.d.ts +85 -0
  769. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  770. package/dist/types/browser/network-error-handler.d.ts +35 -0
  771. package/dist/types/browser/notify-listeners.d.ts +2 -0
  772. package/dist/types/browser/partial-update.d.ts +61 -0
  773. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  774. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  775. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  776. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  777. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  778. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  779. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  780. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  781. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  782. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  783. package/dist/types/browser/rango-state.d.ts +56 -0
  784. package/dist/types/browser/react/Link.d.ts +132 -0
  785. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  786. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  787. package/dist/types/browser/react/context.d.ts +57 -0
  788. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  789. package/dist/types/browser/react/index.d.ts +1 -0
  790. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  791. package/dist/types/browser/react/location-state.d.ts +29 -0
  792. package/dist/types/browser/react/mount-context.d.ts +23 -0
  793. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  794. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  795. package/dist/types/browser/react/use-action.d.ts +61 -0
  796. package/dist/types/browser/react/use-handle.d.ts +21 -0
  797. package/dist/types/browser/react/use-href.d.ts +32 -0
  798. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  799. package/dist/types/browser/react/use-mount.d.ts +24 -0
  800. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  801. package/dist/types/browser/react/use-params.d.ts +21 -0
  802. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  803. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  804. package/dist/types/browser/react/use-router.d.ts +30 -0
  805. package/dist/types/browser/react/use-search-params.d.ts +66 -0
  806. package/dist/types/browser/react/use-segments.d.ts +29 -0
  807. package/dist/types/browser/response-adapter.d.ts +58 -0
  808. package/dist/types/browser/rsc-router.d.ts +146 -0
  809. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  810. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  811. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  812. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  813. package/dist/types/browser/types.d.ts +546 -0
  814. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  815. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  816. package/dist/types/build/generate-manifest.d.ts +106 -0
  817. package/dist/types/build/generate-route-types.d.ts +8 -0
  818. package/dist/types/build/index.d.ts +21 -0
  819. package/dist/types/build/merge-full-manifests.d.ts +3 -0
  820. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  821. package/dist/types/build/route-trie.d.ts +20 -0
  822. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  823. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  824. package/dist/types/build/route-types/codegen.d.ts +16 -0
  825. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  826. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  827. package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
  828. package/dist/types/build/route-types/router-processing.d.ts +81 -0
  829. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  830. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  831. package/dist/types/build/runtime-discovery.d.ts +24 -0
  832. package/dist/types/cache/background-task.d.ts +21 -0
  833. package/dist/types/cache/cache-error.d.ts +71 -0
  834. package/dist/types/cache/cache-exec-scope.d.ts +31 -0
  835. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  836. package/dist/types/cache/cache-policy.d.ts +59 -0
  837. package/dist/types/cache/cache-runtime.d.ts +51 -0
  838. package/dist/types/cache/cache-scope.d.ts +215 -0
  839. package/dist/types/cache/cache-tag.d.ts +79 -0
  840. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  841. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  842. package/dist/types/cache/cf/cf-cache-store.d.ts +630 -0
  843. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  844. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  845. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  846. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  847. package/dist/types/cache/cf/index.d.ts +4 -0
  848. package/dist/types/cache/document-cache.d.ts +71 -0
  849. package/dist/types/cache/handle-capture.d.ts +23 -0
  850. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  851. package/dist/types/cache/index.d.ts +9 -0
  852. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  853. package/dist/types/cache/profile-registry.d.ts +40 -0
  854. package/dist/types/cache/read-through-swr.d.ts +61 -0
  855. package/dist/types/cache/search-params-filter.d.ts +64 -0
  856. package/dist/types/cache/segment-codec.d.ts +78 -0
  857. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  858. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  859. package/dist/types/cache/taint.d.ts +77 -0
  860. package/dist/types/cache/types.d.ts +522 -0
  861. package/dist/types/cache/vercel/index.d.ts +1 -0
  862. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  863. package/dist/types/client-urls/client-root.d.ts +38 -0
  864. package/dist/types/client-urls/client-urls.d.ts +5 -0
  865. package/dist/types/client-urls/navigation.d.ts +38 -0
  866. package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
  867. package/dist/types/client-urls/server-projection.d.ts +71 -0
  868. package/dist/types/client-urls/types.d.ts +148 -0
  869. package/dist/types/client.d.ts +192 -0
  870. package/dist/types/client.rsc.d.ts +42 -0
  871. package/dist/types/cloudflare/index.d.ts +7 -0
  872. package/dist/types/cloudflare/tracing.d.ts +57 -0
  873. package/dist/types/component-utils.d.ts +46 -0
  874. package/dist/types/components/DefaultDocument.d.ts +13 -0
  875. package/dist/types/context-var.d.ts +84 -0
  876. package/dist/types/debug.d.ts +57 -0
  877. package/dist/types/decode-loader-results.d.ts +42 -0
  878. package/dist/types/default-error-boundary.d.ts +10 -0
  879. package/dist/types/defer.d.ts +89 -0
  880. package/dist/types/deps/browser.d.ts +1 -0
  881. package/dist/types/deps/html-stream-client.d.ts +1 -0
  882. package/dist/types/deps/html-stream-server.d.ts +1 -0
  883. package/dist/types/deps/rsc.d.ts +1 -0
  884. package/dist/types/deps/ssr.d.ts +1 -0
  885. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  886. package/dist/types/encode-kv.d.ts +35 -0
  887. package/dist/types/errors.d.ts +227 -0
  888. package/dist/types/escape-script.d.ts +44 -0
  889. package/dist/types/handle.d.ts +93 -0
  890. package/dist/types/handles/MetaTags.d.ts +17 -0
  891. package/dist/types/handles/Scripts.d.ts +38 -0
  892. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  893. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  894. package/dist/types/handles/is-thenable.d.ts +10 -0
  895. package/dist/types/handles/meta.d.ts +43 -0
  896. package/dist/types/handles/script.d.ts +139 -0
  897. package/dist/types/host/cookie-handler.d.ts +8 -0
  898. package/dist/types/host/errors.d.ts +40 -0
  899. package/dist/types/host/index.d.ts +33 -0
  900. package/dist/types/host/pattern-matcher.d.ts +30 -0
  901. package/dist/types/host/router.d.ts +12 -0
  902. package/dist/types/host/testing.d.ts +41 -0
  903. package/dist/types/host/types.d.ts +148 -0
  904. package/dist/types/host/utils.d.ts +20 -0
  905. package/dist/types/href-client.d.ts +214 -0
  906. package/dist/types/index.d.ts +113 -0
  907. package/dist/types/index.rsc.d.ts +52 -0
  908. package/dist/types/internal-debug.d.ts +1 -0
  909. package/dist/types/loader-redirect.d.ts +27 -0
  910. package/dist/types/loader-store.d.ts +193 -0
  911. package/dist/types/loader.d.ts +18 -0
  912. package/dist/types/loader.rsc.d.ts +18 -0
  913. package/dist/types/missing-id-error.d.ts +1 -0
  914. package/dist/types/outlet-context.d.ts +32 -0
  915. package/dist/types/outlet-provider.d.ts +15 -0
  916. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  917. package/dist/types/prerender/param-hash.d.ts +6 -0
  918. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  919. package/dist/types/prerender/store.d.ts +63 -0
  920. package/dist/types/prerender.d.ts +292 -0
  921. package/dist/types/redirect-origin.d.ts +71 -0
  922. package/dist/types/regex-escape.d.ts +6 -0
  923. package/dist/types/render-error-thrower.d.ts +13 -0
  924. package/dist/types/response-utils.d.ts +35 -0
  925. package/dist/types/reverse.d.ts +206 -0
  926. package/dist/types/root-error-boundary.d.ts +32 -0
  927. package/dist/types/route-content-wrapper.d.ts +84 -0
  928. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  929. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  930. package/dist/types/route-definition/helpers-types.d.ts +405 -0
  931. package/dist/types/route-definition/index.d.ts +7 -0
  932. package/dist/types/route-definition/redirect.d.ts +48 -0
  933. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  934. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  935. package/dist/types/route-definition.d.ts +1 -0
  936. package/dist/types/route-map-builder.d.ts +102 -0
  937. package/dist/types/route-name.d.ts +27 -0
  938. package/dist/types/route-types.d.ts +172 -0
  939. package/dist/types/router/basename.d.ts +10 -0
  940. package/dist/types/router/content-negotiation.d.ts +91 -0
  941. package/dist/types/router/debug-manifest.d.ts +7 -0
  942. package/dist/types/router/error-handling.d.ts +110 -0
  943. package/dist/types/router/find-match.d.ts +19 -0
  944. package/dist/types/router/handler-context.d.ts +41 -0
  945. package/dist/types/router/instrument.d.ts +191 -0
  946. package/dist/types/router/intercept-resolution.d.ts +91 -0
  947. package/dist/types/router/lazy-includes.d.ts +26 -0
  948. package/dist/types/router/loader-resolution.d.ts +85 -0
  949. package/dist/types/router/logging.d.ts +41 -0
  950. package/dist/types/router/manifest.d.ts +8 -0
  951. package/dist/types/router/match-api.d.ts +19 -0
  952. package/dist/types/router/match-context.d.ts +184 -0
  953. package/dist/types/router/match-handlers.d.ts +48 -0
  954. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  955. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  956. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  957. package/dist/types/router/match-middleware/index.d.ts +80 -0
  958. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  959. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  960. package/dist/types/router/match-pipelines.d.ts +103 -0
  961. package/dist/types/router/match-result.d.ts +114 -0
  962. package/dist/types/router/metrics.d.ts +6 -0
  963. package/dist/types/router/middleware-types.d.ts +74 -0
  964. package/dist/types/router/middleware.d.ts +116 -0
  965. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  966. package/dist/types/router/params-util.d.ts +8 -0
  967. package/dist/types/router/parse-pattern.d.ts +38 -0
  968. package/dist/types/router/pattern-matching.d.ts +169 -0
  969. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  970. package/dist/types/router/prefetch-default.d.ts +28 -0
  971. package/dist/types/router/prefetch-limits.d.ts +20 -0
  972. package/dist/types/router/prerender-match.d.ts +53 -0
  973. package/dist/types/router/preview-match.d.ts +22 -0
  974. package/dist/types/router/request-classification.d.ts +104 -0
  975. package/dist/types/router/revalidation.d.ts +64 -0
  976. package/dist/types/router/route-snapshot.d.ts +112 -0
  977. package/dist/types/router/route-trie-builder.d.ts +77 -0
  978. package/dist/types/router/router-context.d.ts +137 -0
  979. package/dist/types/router/router-interfaces.d.ts +461 -0
  980. package/dist/types/router/router-options.d.ts +792 -0
  981. package/dist/types/router/router-registry.d.ts +15 -0
  982. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  983. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  984. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  985. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  986. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  987. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  988. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  989. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  990. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  991. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  992. package/dist/types/router/segment-resolution.d.ts +3 -0
  993. package/dist/types/router/segment-wrappers.d.ts +53 -0
  994. package/dist/types/router/state-cookie-name.d.ts +1 -0
  995. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  996. package/dist/types/router/telemetry-otel.d.ts +113 -0
  997. package/dist/types/router/telemetry.d.ts +216 -0
  998. package/dist/types/router/timeout.d.ts +107 -0
  999. package/dist/types/router/tracing.d.ts +139 -0
  1000. package/dist/types/router/transition-when.d.ts +13 -0
  1001. package/dist/types/router/trie-matching.d.ts +32 -0
  1002. package/dist/types/router/types.d.ts +98 -0
  1003. package/dist/types/router/url-params.d.ts +26 -0
  1004. package/dist/types/router.d.ts +7 -0
  1005. package/dist/types/rsc/capture-queue.d.ts +49 -0
  1006. package/dist/types/rsc/full-payload.d.ts +22 -0
  1007. package/dist/types/rsc/handler-context.d.ts +32 -0
  1008. package/dist/types/rsc/handler.d.ts +9 -0
  1009. package/dist/types/rsc/helpers.d.ts +127 -0
  1010. package/dist/types/rsc/index.d.ts +17 -0
  1011. package/dist/types/rsc/json-route-result.d.ts +20 -0
  1012. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  1013. package/dist/types/rsc/manifest-init.d.ts +18 -0
  1014. package/dist/types/rsc/nonce.d.ts +38 -0
  1015. package/dist/types/rsc/origin-guard.d.ts +50 -0
  1016. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  1017. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  1018. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  1019. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  1020. package/dist/types/rsc/response-error.d.ts +19 -0
  1021. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  1022. package/dist/types/rsc/routine-plan.d.ts +124 -0
  1023. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  1024. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  1025. package/dist/types/rsc/server-action.d.ts +68 -0
  1026. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  1027. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  1028. package/dist/types/rsc/shell-capture.d.ts +425 -0
  1029. package/dist/types/rsc/shell-serve.d.ts +200 -0
  1030. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  1031. package/dist/types/rsc/stream-idle.d.ts +60 -0
  1032. package/dist/types/rsc/transition-gate.d.ts +23 -0
  1033. package/dist/types/rsc/types.d.ts +353 -0
  1034. package/dist/types/runtime-env.d.ts +1 -0
  1035. package/dist/types/search-params.d.ts +125 -0
  1036. package/dist/types/segment-content-promise.d.ts +13 -0
  1037. package/dist/types/segment-fragments.d.ts +79 -0
  1038. package/dist/types/segment-loader-promise.d.ts +22 -0
  1039. package/dist/types/segment-system.d.ts +86 -0
  1040. package/dist/types/serialize.d.ts +164 -0
  1041. package/dist/types/server/context.d.ts +520 -0
  1042. package/dist/types/server/cookie-parse.d.ts +10 -0
  1043. package/dist/types/server/cookie-store.d.ts +107 -0
  1044. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  1045. package/dist/types/server/handle-store.d.ts +131 -0
  1046. package/dist/types/server/loader-registry.d.ts +32 -0
  1047. package/dist/types/server/request-context.d.ts +717 -0
  1048. package/dist/types/server/root-layout.d.ts +3 -0
  1049. package/dist/types/server.d.ts +16 -0
  1050. package/dist/types/ssr/index.d.ts +271 -0
  1051. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  1052. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  1053. package/dist/types/ssr/ssr-root.d.ts +84 -0
  1054. package/dist/types/ssr-suspension-warning.d.ts +19 -0
  1055. package/dist/types/static-handler.d.ts +71 -0
  1056. package/dist/types/testing/cache-status.d.ts +63 -0
  1057. package/dist/types/testing/collect-handle.d.ts +20 -0
  1058. package/dist/types/testing/dispatch.d.ts +127 -0
  1059. package/dist/types/testing/dom.entry.d.ts +15 -0
  1060. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  1061. package/dist/types/testing/e2e/index.d.ts +31 -0
  1062. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  1063. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  1064. package/dist/types/testing/e2e/parity.d.ts +111 -0
  1065. package/dist/types/testing/e2e/server.d.ts +35 -0
  1066. package/dist/types/testing/flight-matchers.d.ts +55 -0
  1067. package/dist/types/testing/flight-normalize.d.ts +1 -0
  1068. package/dist/types/testing/flight-tree.d.ts +192 -0
  1069. package/dist/types/testing/flight.d.ts +115 -0
  1070. package/dist/types/testing/flight.entry.d.ts +27 -0
  1071. package/dist/types/testing/generated-routes.d.ts +66 -0
  1072. package/dist/types/testing/index.d.ts +54 -0
  1073. package/dist/types/testing/internal/context.d.ts +225 -0
  1074. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  1075. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  1076. package/dist/types/testing/render-handler.d.ts +160 -0
  1077. package/dist/types/testing/render-route.d.ts +265 -0
  1078. package/dist/types/testing/run-loader.d.ts +195 -0
  1079. package/dist/types/testing/run-middleware.d.ts +132 -0
  1080. package/dist/types/testing/run-transition-when.d.ts +78 -0
  1081. package/dist/types/testing/shell-status.d.ts +81 -0
  1082. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  1083. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  1084. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  1085. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  1086. package/dist/types/testing/vitest.d.ts +205 -0
  1087. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  1088. package/dist/types/theme/ThemeScript.d.ts +45 -0
  1089. package/dist/types/theme/constants.d.ts +39 -0
  1090. package/dist/types/theme/index.d.ts +29 -0
  1091. package/dist/types/theme/theme-context.d.ts +21 -0
  1092. package/dist/types/theme/theme-script.d.ts +26 -0
  1093. package/dist/types/theme/types.d.ts +162 -0
  1094. package/dist/types/theme/use-theme.d.ts +8 -0
  1095. package/dist/types/types/boundaries.d.ts +115 -0
  1096. package/dist/types/types/cache-types.d.ts +191 -0
  1097. package/dist/types/types/error-types.d.ts +114 -0
  1098. package/dist/types/types/global-namespace.d.ts +90 -0
  1099. package/dist/types/types/handler-context.d.ts +658 -0
  1100. package/dist/types/types/index.d.ts +11 -0
  1101. package/dist/types/types/loader-types.d.ts +240 -0
  1102. package/dist/types/types/request-scope.d.ts +93 -0
  1103. package/dist/types/types/route-config.d.ts +105 -0
  1104. package/dist/types/types/route-entry.d.ts +98 -0
  1105. package/dist/types/types/segments.d.ts +254 -0
  1106. package/dist/types/types.d.ts +1 -0
  1107. package/dist/types/urls/include-helper.d.ts +17 -0
  1108. package/dist/types/urls/include-provider.d.ts +27 -0
  1109. package/dist/types/urls/index.d.ts +6 -0
  1110. package/dist/types/urls/path-helper-types.d.ts +207 -0
  1111. package/dist/types/urls/path-helper.d.ts +12 -0
  1112. package/dist/types/urls/pattern-types.d.ts +166 -0
  1113. package/dist/types/urls/response-types.d.ts +67 -0
  1114. package/dist/types/urls/type-extraction.d.ts +157 -0
  1115. package/dist/types/urls/urls-function.d.ts +24 -0
  1116. package/dist/types/urls.d.ts +1 -0
  1117. package/dist/types/use-loader.d.ts +150 -0
  1118. package/dist/types/vercel/index.d.ts +10 -0
  1119. package/dist/types/vercel/tracing.d.ts +71 -0
  1120. package/dist/types/vite/debug.d.ts +80 -0
  1121. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  1122. package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
  1123. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  1124. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  1125. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  1126. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  1127. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  1128. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  1129. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  1130. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  1131. package/dist/types/vite/discovery/state.d.ts +170 -0
  1132. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  1133. package/dist/types/vite/encryption-key.d.ts +2 -0
  1134. package/dist/types/vite/index.d.ts +11 -0
  1135. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  1136. package/dist/types/vite/plugin-types.d.ts +298 -0
  1137. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  1138. package/dist/types/vite/plugins/client-ref-dedup.d.ts +29 -0
  1139. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  1140. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  1141. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  1142. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  1143. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  1144. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  1145. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  1146. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  1147. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  1148. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  1149. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  1150. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  1151. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  1152. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  1153. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  1154. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  1155. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  1156. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  1157. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  1158. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  1159. package/dist/types/vite/rango.d.ts +29 -0
  1160. package/dist/types/vite/router-discovery.d.ts +23 -0
  1161. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  1162. package/dist/types/vite/utils/banner.d.ts +2 -0
  1163. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  1164. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  1165. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  1166. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  1167. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  1168. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  1169. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  1170. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  1171. package/dist/types.d.ts +1479 -0
  1172. package/dist/types.d.ts.map +1 -0
  1173. package/dist/types.js +10 -0
  1174. package/dist/types.js.map +1 -0
  1175. package/dist/urls.d.ts +441 -0
  1176. package/dist/urls.d.ts.map +1 -0
  1177. package/dist/urls.gen.d.ts +8 -0
  1178. package/dist/urls.gen.d.ts.map +1 -0
  1179. package/dist/urls.gen.js +8 -0
  1180. package/dist/urls.gen.js.map +1 -0
  1181. package/dist/urls.js +443 -0
  1182. package/dist/urls.js.map +1 -0
  1183. package/dist/use-loader.d.ts +127 -0
  1184. package/dist/use-loader.d.ts.map +1 -0
  1185. package/dist/use-loader.js +237 -0
  1186. package/dist/use-loader.js.map +1 -0
  1187. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  1188. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  1189. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  1190. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  1191. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  1192. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  1193. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  1194. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  1195. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  1196. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  1197. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  1198. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  1199. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  1200. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  1201. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  1202. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  1203. package/dist/vite/ast-handler-extract.d.ts +49 -0
  1204. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  1205. package/dist/vite/ast-handler-extract.js +249 -0
  1206. package/dist/vite/ast-handler-extract.js.map +1 -0
  1207. package/dist/vite/expose-action-id.d.ts +19 -0
  1208. package/dist/vite/expose-action-id.d.ts.map +1 -0
  1209. package/dist/vite/expose-action-id.js +250 -0
  1210. package/dist/vite/expose-action-id.js.map +1 -0
  1211. package/dist/vite/expose-id-utils.d.ts +69 -0
  1212. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  1213. package/dist/vite/expose-id-utils.js +289 -0
  1214. package/dist/vite/expose-id-utils.js.map +1 -0
  1215. package/dist/vite/expose-internal-ids.d.ts +22 -0
  1216. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  1217. package/dist/vite/expose-internal-ids.js +886 -0
  1218. package/dist/vite/expose-internal-ids.js.map +1 -0
  1219. package/dist/vite/index.d.ts +149 -0
  1220. package/dist/vite/index.d.ts.map +1 -0
  1221. package/dist/vite/index.js +10793 -4122
  1222. package/dist/vite/index.js.bak +5448 -0
  1223. package/dist/vite/index.js.map +1 -0
  1224. package/dist/vite/index.named-routes.gen.ts +103 -0
  1225. package/dist/vite/package-resolution.d.ts +43 -0
  1226. package/dist/vite/package-resolution.d.ts.map +1 -0
  1227. package/dist/vite/package-resolution.js +112 -0
  1228. package/dist/vite/package-resolution.js.map +1 -0
  1229. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1230. package/dist/vite/virtual-entries.d.ts +25 -0
  1231. package/dist/vite/virtual-entries.d.ts.map +1 -0
  1232. package/dist/vite/virtual-entries.js +110 -0
  1233. package/dist/vite/virtual-entries.js.map +1 -0
  1234. package/package.json +121 -38
  1235. package/skills/api-client/SKILL.md +211 -0
  1236. package/skills/breadcrumbs/SKILL.md +117 -8
  1237. package/skills/bundle-analysis/SKILL.md +159 -0
  1238. package/skills/cache-guide/SKILL.md +232 -34
  1239. package/skills/caching/SKILL.md +375 -19
  1240. package/skills/catalog.json +289 -0
  1241. package/skills/client-urls/SKILL.md +339 -0
  1242. package/skills/cloudflare/SKILL.md +153 -0
  1243. package/skills/cloudflare/agents/openai.yaml +4 -0
  1244. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  1245. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  1246. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  1247. package/skills/comparison/SKILL.md +50 -0
  1248. package/skills/comparison/agents/openai.yaml +4 -0
  1249. package/skills/comparison/references/framework-comparison.md +858 -0
  1250. package/skills/composability/SKILL.md +124 -4
  1251. package/skills/css/SKILL.md +76 -0
  1252. package/skills/debug-manifest/SKILL.md +5 -11
  1253. package/skills/defer-hydration/SKILL.md +235 -0
  1254. package/skills/deployment-caching/SKILL.md +176 -0
  1255. package/skills/document-cache/SKILL.md +116 -58
  1256. package/skills/fonts/SKILL.md +1 -1
  1257. package/skills/handler-use/SKILL.md +12 -10
  1258. package/skills/hooks/SKILL.md +73 -691
  1259. package/skills/hooks/data.md +282 -0
  1260. package/skills/hooks/handle-and-actions.md +110 -0
  1261. package/skills/hooks/navigation.md +110 -0
  1262. package/skills/hooks/outlets.md +62 -0
  1263. package/skills/hooks/state.md +228 -0
  1264. package/skills/hooks/urls.md +172 -0
  1265. package/skills/host-router/SKILL.md +129 -27
  1266. package/skills/i18n/SKILL.md +276 -0
  1267. package/skills/intercept/SKILL.md +75 -19
  1268. package/skills/layout/SKILL.md +40 -19
  1269. package/skills/links/SKILL.md +283 -17
  1270. package/skills/loader/SKILL.md +362 -11
  1271. package/skills/middleware/SKILL.md +58 -13
  1272. package/skills/migrate-nextjs/SKILL.md +336 -42
  1273. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  1274. package/skills/migrate-react-router/SKILL.md +95 -670
  1275. package/skills/migrate-react-router/component-migration.md +201 -0
  1276. package/skills/migrate-react-router/data-and-actions.md +236 -0
  1277. package/skills/migrate-react-router/route-mapping.md +284 -0
  1278. package/skills/mime-routes/SKILL.md +55 -18
  1279. package/skills/observability/SKILL.md +231 -0
  1280. package/skills/parallel/SKILL.md +72 -11
  1281. package/skills/ppr/SKILL.md +918 -0
  1282. package/skills/prerender/SKILL.md +137 -71
  1283. package/skills/rango/SKILL.md +325 -26
  1284. package/skills/react-compiler/SKILL.md +168 -0
  1285. package/skills/response-routes/SKILL.md +180 -52
  1286. package/skills/route/SKILL.md +126 -9
  1287. package/skills/router-setup/SKILL.md +69 -11
  1288. package/skills/scripts/SKILL.md +189 -0
  1289. package/skills/server-actions/SKILL.md +776 -0
  1290. package/skills/shell-manifest/SKILL.md +194 -0
  1291. package/skills/streams-and-websockets/SKILL.md +283 -0
  1292. package/skills/tailwind/SKILL.md +28 -4
  1293. package/skills/testing/SKILL.md +131 -0
  1294. package/skills/testing/bindings.md +103 -0
  1295. package/skills/testing/cache-prerender.md +172 -0
  1296. package/skills/testing/client-components.md +131 -0
  1297. package/skills/testing/e2e-parity.md +125 -0
  1298. package/skills/testing/flight.md +91 -0
  1299. package/skills/testing/handles.md +153 -0
  1300. package/skills/testing/loader.md +130 -0
  1301. package/skills/testing/middleware.md +99 -0
  1302. package/skills/testing/render-handler.md +122 -0
  1303. package/skills/testing/response-routes.md +95 -0
  1304. package/skills/testing/reverse-and-types.md +85 -0
  1305. package/skills/testing/server-actions.md +107 -0
  1306. package/skills/testing/server-tree.md +128 -0
  1307. package/skills/testing/setup.md +123 -0
  1308. package/skills/theme/SKILL.md +9 -6
  1309. package/skills/typesafety/SKILL.md +45 -626
  1310. package/skills/typesafety/env-and-bindings.md +254 -0
  1311. package/skills/typesafety/generated-files-and-cli.md +342 -0
  1312. package/skills/typesafety/params-and-search.md +153 -0
  1313. package/skills/typesafety/route-types.md +213 -0
  1314. package/skills/use-cache/SKILL.md +121 -15
  1315. package/skills/vercel/SKILL.md +149 -0
  1316. package/skills/view-transitions/SKILL.md +341 -0
  1317. package/src/__augment-tests__/augment.ts +81 -0
  1318. package/src/__augment-tests__/augmented.check.ts +116 -0
  1319. package/src/__internal.ts +0 -65
  1320. package/src/bin/rango.ts +7 -3
  1321. package/src/browser/action-coordinator.ts +53 -36
  1322. package/src/browser/action-fence.ts +47 -0
  1323. package/src/browser/app-shell.ts +39 -0
  1324. package/src/browser/connection-warmup.ts +134 -0
  1325. package/src/browser/cookie-name.ts +140 -0
  1326. package/src/browser/dev-discovery.ts +66 -0
  1327. package/src/browser/event-controller.ts +400 -168
  1328. package/src/browser/history-state.ts +21 -0
  1329. package/src/browser/index.ts +3 -3
  1330. package/src/browser/invalidate-client-cache.ts +52 -0
  1331. package/src/browser/link-interceptor.ts +469 -20
  1332. package/src/browser/logging.ts +28 -0
  1333. package/src/browser/merge-segment-loaders.ts +6 -4
  1334. package/src/browser/navigation-bridge.ts +171 -27
  1335. package/src/browser/navigation-client.ts +216 -90
  1336. package/src/browser/navigation-store-handle.ts +38 -0
  1337. package/src/browser/navigation-store.ts +167 -323
  1338. package/src/browser/navigation-transaction.ts +9 -59
  1339. package/src/browser/network-error-handler.ts +34 -7
  1340. package/src/browser/notify-listeners.ts +22 -0
  1341. package/src/browser/partial-update.ts +243 -144
  1342. package/src/browser/prefetch/cache.ts +325 -84
  1343. package/src/browser/prefetch/default-strategy.ts +74 -0
  1344. package/src/browser/prefetch/fetch.ts +411 -69
  1345. package/src/browser/prefetch/invalidation.ts +30 -0
  1346. package/src/browser/prefetch/loader.ts +111 -0
  1347. package/src/browser/prefetch/observer.ts +50 -22
  1348. package/src/browser/prefetch/queue.ts +61 -12
  1349. package/src/browser/prefetch/runtime.ts +6 -0
  1350. package/src/browser/rango-state.ts +178 -75
  1351. package/src/browser/react/Link.tsx +160 -92
  1352. package/src/browser/react/NavigationProvider.tsx +211 -121
  1353. package/src/browser/react/ScrollRestoration.tsx +10 -6
  1354. package/src/browser/react/context.ts +4 -0
  1355. package/src/browser/react/filter-segment-order.ts +66 -7
  1356. package/src/browser/react/index.ts +0 -48
  1357. package/src/browser/react/location-state-shared.ts +178 -8
  1358. package/src/browser/react/location-state.ts +39 -14
  1359. package/src/browser/react/use-action.ts +6 -15
  1360. package/src/browser/react/use-handle.ts +17 -14
  1361. package/src/browser/react/use-href.tsx +8 -1
  1362. package/src/browser/react/use-link-status.ts +33 -8
  1363. package/src/browser/react/use-navigation.ts +10 -5
  1364. package/src/browser/react/use-params.ts +20 -10
  1365. package/src/browser/react/use-reverse.ts +106 -0
  1366. package/src/browser/react/use-router.ts +62 -11
  1367. package/src/browser/react/use-search-params.ts +140 -22
  1368. package/src/browser/react/use-segments.ts +11 -21
  1369. package/src/browser/response-adapter.ts +99 -8
  1370. package/src/browser/rsc-router.tsx +248 -32
  1371. package/src/browser/scroll-restoration.ts +37 -22
  1372. package/src/browser/segment-reconciler.ts +31 -21
  1373. package/src/browser/segment-structure-assert.ts +2 -2
  1374. package/src/browser/server-action-bridge.ts +262 -65
  1375. package/src/browser/types.ts +132 -34
  1376. package/src/browser/validate-redirect-origin.ts +43 -16
  1377. package/src/build/collect-fallback-refs.ts +107 -0
  1378. package/src/build/generate-manifest.ts +213 -184
  1379. package/src/build/generate-route-types.ts +3 -1
  1380. package/src/build/index.ts +11 -3
  1381. package/src/build/merge-full-manifests.ts +161 -0
  1382. package/src/build/prefix-tree-utils.ts +123 -0
  1383. package/src/build/route-trie.ts +43 -280
  1384. package/src/build/route-types/ast-route-extraction.ts +15 -8
  1385. package/src/build/route-types/codegen.ts +16 -5
  1386. package/src/build/route-types/include-resolution.ts +513 -64
  1387. package/src/build/route-types/param-extraction.ts +6 -3
  1388. package/src/build/route-types/per-module-writer.ts +33 -12
  1389. package/src/build/route-types/router-processing.ts +312 -204
  1390. package/src/build/route-types/scan-filter.ts +1 -1
  1391. package/src/build/route-types/source-scan.ts +216 -0
  1392. package/src/build/runtime-discovery.ts +32 -29
  1393. package/src/cache/cache-error.ts +104 -0
  1394. package/src/cache/cache-exec-scope.ts +47 -0
  1395. package/src/cache/cache-key-utils.ts +73 -15
  1396. package/src/cache/cache-policy.ts +108 -34
  1397. package/src/cache/cache-runtime.ts +566 -121
  1398. package/src/cache/cache-scope.ts +383 -105
  1399. package/src/cache/cache-tag.ts +149 -0
  1400. package/src/cache/cf/cf-base64.ts +33 -0
  1401. package/src/cache/cf/cf-cache-constants.ts +134 -0
  1402. package/src/cache/cf/cf-cache-store.ts +3083 -392
  1403. package/src/cache/cf/cf-cache-types.ts +417 -0
  1404. package/src/cache/cf/cf-kv-utils.ts +84 -0
  1405. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  1406. package/src/cache/cf/cf-zone-purge.ts +101 -0
  1407. package/src/cache/cf/index.ts +11 -16
  1408. package/src/cache/document-cache.ts +184 -53
  1409. package/src/cache/handle-snapshot.ts +92 -1
  1410. package/src/cache/index.ts +32 -20
  1411. package/src/cache/memory-segment-store.ts +286 -37
  1412. package/src/cache/profile-registry.ts +46 -31
  1413. package/src/cache/read-through-swr.ts +66 -16
  1414. package/src/cache/search-params-filter.ts +118 -0
  1415. package/src/cache/segment-codec.ts +80 -25
  1416. package/src/cache/shell-snapshot.ts +516 -0
  1417. package/src/cache/tag-invalidation.ts +230 -0
  1418. package/src/cache/taint.ts +28 -9
  1419. package/src/cache/types.ts +343 -100
  1420. package/src/cache/vercel/index.ts +11 -0
  1421. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1422. package/src/client-urls/client-root.tsx +168 -0
  1423. package/src/client-urls/client-urls.ts +779 -0
  1424. package/src/client-urls/navigation.ts +237 -0
  1425. package/src/client-urls/revalidation-protocol.ts +56 -0
  1426. package/src/client-urls/server-projection.ts +670 -0
  1427. package/src/client-urls/types.ts +202 -0
  1428. package/src/client.rsc.tsx +53 -21
  1429. package/src/client.tsx +82 -67
  1430. package/src/cloudflare/index.ts +11 -0
  1431. package/src/cloudflare/tracing.ts +112 -0
  1432. package/src/component-utils.ts +19 -0
  1433. package/src/components/DefaultDocument.tsx +8 -2
  1434. package/src/context-var.ts +18 -6
  1435. package/src/decode-loader-results.ts +165 -0
  1436. package/src/defer.ts +185 -0
  1437. package/src/deps/ssr.ts +4 -2
  1438. package/src/dev-discovery-protocol.ts +11 -0
  1439. package/src/encode-kv.ts +49 -0
  1440. package/src/errors.ts +44 -4
  1441. package/src/escape-script.ts +52 -0
  1442. package/src/handle.ts +67 -37
  1443. package/src/handles/MetaTags.tsx +24 -53
  1444. package/src/handles/Scripts.tsx +183 -0
  1445. package/src/handles/breadcrumbs.ts +35 -8
  1446. package/src/handles/deferred-resolution.ts +134 -0
  1447. package/src/handles/is-thenable.ts +16 -0
  1448. package/src/handles/meta.ts +14 -40
  1449. package/src/handles/script.ts +244 -0
  1450. package/src/host/cookie-handler.ts +9 -60
  1451. package/src/host/errors.ts +13 -22
  1452. package/src/host/index.ts +9 -2
  1453. package/src/host/pattern-matcher.ts +23 -52
  1454. package/src/host/router.ts +107 -99
  1455. package/src/host/testing.ts +40 -27
  1456. package/src/host/types.ts +37 -4
  1457. package/src/host/utils.ts +1 -1
  1458. package/src/href-client.ts +137 -22
  1459. package/src/index.rsc.ts +108 -12
  1460. package/src/index.ts +106 -14
  1461. package/src/internal-debug.ts +11 -10
  1462. package/src/loader-redirect.tsx +64 -0
  1463. package/src/loader-store.ts +500 -0
  1464. package/src/loader.rsc.ts +20 -13
  1465. package/src/loader.ts +12 -11
  1466. package/src/missing-id-error.ts +68 -0
  1467. package/src/outlet-context.ts +21 -1
  1468. package/src/outlet-provider.tsx +20 -6
  1469. package/src/prerender/build-shell-capture.ts +453 -0
  1470. package/src/prerender/param-hash.ts +16 -16
  1471. package/src/prerender/shell-manifest-key.ts +20 -0
  1472. package/src/prerender/store.ts +47 -38
  1473. package/src/prerender.ts +81 -13
  1474. package/src/redirect-origin.ts +172 -0
  1475. package/src/regex-escape.ts +8 -0
  1476. package/src/render-error-thrower.tsx +20 -0
  1477. package/src/response-utils.ts +62 -0
  1478. package/src/reverse.ts +65 -39
  1479. package/src/root-error-boundary.tsx +1 -19
  1480. package/src/route-content-wrapper.tsx +120 -78
  1481. package/src/route-definition/dsl-helpers.ts +342 -313
  1482. package/src/route-definition/helper-factories.ts +28 -140
  1483. package/src/route-definition/helpers-types.ts +106 -62
  1484. package/src/route-definition/index.ts +1 -2
  1485. package/src/route-definition/redirect.ts +60 -28
  1486. package/src/route-definition/resolve-handler-use.ts +12 -1
  1487. package/src/route-definition/use-item-types.ts +29 -0
  1488. package/src/route-map-builder.ts +102 -74
  1489. package/src/route-types.ts +19 -46
  1490. package/src/router/basename.ts +14 -0
  1491. package/src/router/content-negotiation.ts +120 -30
  1492. package/src/router/error-handling.ts +110 -29
  1493. package/src/router/find-match.ts +129 -30
  1494. package/src/router/handler-context.ts +58 -57
  1495. package/src/router/instrument.ts +401 -0
  1496. package/src/router/intercept-resolution.ts +98 -21
  1497. package/src/router/lazy-includes.ts +83 -59
  1498. package/src/router/loader-resolution.ts +429 -85
  1499. package/src/router/logging.ts +0 -6
  1500. package/src/router/manifest.ts +74 -40
  1501. package/src/router/match-api.ts +94 -58
  1502. package/src/router/match-context.ts +0 -22
  1503. package/src/router/match-handlers.ts +268 -171
  1504. package/src/router/match-middleware/background-revalidation.ts +40 -24
  1505. package/src/router/match-middleware/cache-lookup.ts +316 -302
  1506. package/src/router/match-middleware/cache-store.ts +134 -52
  1507. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  1508. package/src/router/match-middleware/segment-resolution.ts +0 -22
  1509. package/src/router/match-pipelines.ts +1 -42
  1510. package/src/router/match-result.ts +76 -79
  1511. package/src/router/metrics.ts +17 -36
  1512. package/src/router/middleware-types.ts +20 -130
  1513. package/src/router/middleware.ts +302 -172
  1514. package/src/router/navigation-snapshot.ts +51 -60
  1515. package/src/router/params-util.ts +23 -0
  1516. package/src/router/parse-pattern.ts +115 -0
  1517. package/src/router/pattern-matching.ts +181 -150
  1518. package/src/router/prefetch-cache-ttl.ts +51 -0
  1519. package/src/router/prefetch-default.ts +59 -0
  1520. package/src/router/prefetch-limits.ts +37 -0
  1521. package/src/router/prerender-match.ts +159 -69
  1522. package/src/router/preview-match.ts +6 -2
  1523. package/src/router/request-classification.ts +50 -69
  1524. package/src/router/revalidation.ts +146 -83
  1525. package/src/router/route-snapshot.ts +14 -3
  1526. package/src/router/route-trie-builder.ts +334 -0
  1527. package/src/router/router-context.ts +6 -29
  1528. package/src/router/router-interfaces.ts +168 -38
  1529. package/src/router/router-options.ts +235 -11
  1530. package/src/router/router-registry.ts +2 -5
  1531. package/src/router/segment-resolution/fresh.ts +219 -88
  1532. package/src/router/segment-resolution/helpers.ts +96 -18
  1533. package/src/router/segment-resolution/loader-cache.ts +208 -39
  1534. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1535. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1536. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1537. package/src/router/segment-resolution/revalidation.ts +318 -321
  1538. package/src/router/segment-resolution/static-store.ts +55 -15
  1539. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1540. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1541. package/src/router/segment-resolution.ts +5 -1
  1542. package/src/router/segment-wrappers.ts +6 -5
  1543. package/src/router/state-cookie-name.ts +33 -0
  1544. package/src/router/substitute-pattern-params.ts +75 -0
  1545. package/src/router/telemetry-otel.ts +171 -200
  1546. package/src/router/telemetry.ts +106 -20
  1547. package/src/router/timeout.ts +53 -22
  1548. package/src/router/tracing.ts +235 -0
  1549. package/src/router/transition-when.ts +76 -0
  1550. package/src/router/trie-matching.ts +171 -59
  1551. package/src/router/types.ts +9 -63
  1552. package/src/router/url-params.ts +57 -0
  1553. package/src/router.ts +249 -79
  1554. package/src/rsc/capture-queue.ts +218 -0
  1555. package/src/rsc/full-payload.ts +77 -0
  1556. package/src/rsc/handler-context.ts +4 -2
  1557. package/src/rsc/handler.ts +570 -288
  1558. package/src/rsc/helpers.ts +245 -47
  1559. package/src/rsc/index.ts +2 -5
  1560. package/src/rsc/json-route-result.ts +38 -0
  1561. package/src/rsc/loader-fetch.ts +116 -40
  1562. package/src/rsc/manifest-init.ts +55 -56
  1563. package/src/rsc/nonce.ts +26 -1
  1564. package/src/rsc/origin-guard.ts +39 -25
  1565. package/src/rsc/progressive-enhancement.ts +378 -83
  1566. package/src/rsc/redirect-guard.ts +102 -0
  1567. package/src/rsc/render-pipeline.ts +611 -0
  1568. package/src/rsc/response-cache-serve.ts +259 -0
  1569. package/src/rsc/response-error.ts +79 -12
  1570. package/src/rsc/response-route-handler.ts +80 -206
  1571. package/src/rsc/routine-plan.ts +359 -0
  1572. package/src/rsc/rsc-rendering.ts +1647 -164
  1573. package/src/rsc/runtime-warnings.ts +23 -10
  1574. package/src/rsc/server-action.ts +421 -138
  1575. package/src/rsc/shell-build-manifest.ts +343 -0
  1576. package/src/rsc/shell-capture-constants.ts +45 -0
  1577. package/src/rsc/shell-capture.ts +2135 -0
  1578. package/src/rsc/shell-serve.ts +350 -0
  1579. package/src/rsc/ssr-setup.ts +124 -16
  1580. package/src/rsc/stream-idle.ts +137 -0
  1581. package/src/rsc/transition-gate.ts +86 -0
  1582. package/src/rsc/types.ts +125 -7
  1583. package/src/runtime-env.ts +18 -0
  1584. package/src/search-params.ts +35 -30
  1585. package/src/segment-fragments.ts +165 -0
  1586. package/src/segment-loader-promise.ts +49 -4
  1587. package/src/segment-system.tsx +463 -153
  1588. package/src/serialize.ts +243 -0
  1589. package/src/server/context.ts +426 -55
  1590. package/src/server/cookie-parse.ts +32 -0
  1591. package/src/server/cookie-store.ts +162 -15
  1592. package/src/server/handle-store.ts +190 -70
  1593. package/src/server/loader-registry.ts +33 -42
  1594. package/src/server/request-context.ts +824 -215
  1595. package/src/server.ts +7 -2
  1596. package/src/ssr/index.tsx +687 -184
  1597. package/src/ssr/inject-rsc-eager.ts +167 -0
  1598. package/src/ssr/preinit-client-references.ts +106 -0
  1599. package/src/ssr/ssr-root.tsx +305 -0
  1600. package/src/ssr-suspension-warning.ts +67 -0
  1601. package/src/static-handler.ts +28 -15
  1602. package/src/testing/cache-status.ts +162 -0
  1603. package/src/testing/collect-handle.ts +46 -0
  1604. package/src/testing/dispatch.ts +951 -0
  1605. package/src/testing/dom.entry.ts +22 -0
  1606. package/src/testing/e2e/fixture.ts +188 -0
  1607. package/src/testing/e2e/index.ts +147 -0
  1608. package/src/testing/e2e/matchers.ts +35 -0
  1609. package/src/testing/e2e/page-helpers.ts +319 -0
  1610. package/src/testing/e2e/parity.ts +400 -0
  1611. package/src/testing/e2e/server.ts +195 -0
  1612. package/src/testing/flight-matchers.ts +97 -0
  1613. package/src/testing/flight-normalize.ts +11 -0
  1614. package/src/testing/flight-runtime.d.ts +57 -0
  1615. package/src/testing/flight-tree.ts +682 -0
  1616. package/src/testing/flight.entry.ts +52 -0
  1617. package/src/testing/flight.ts +257 -0
  1618. package/src/testing/generated-routes.ts +199 -0
  1619. package/src/testing/index.ts +121 -0
  1620. package/src/testing/internal/context.ts +380 -0
  1621. package/src/testing/internal/flight-client-globals.ts +30 -0
  1622. package/src/testing/internal/seed-vars.ts +54 -0
  1623. package/src/testing/render-handler.ts +371 -0
  1624. package/src/testing/render-route.tsx +667 -0
  1625. package/src/testing/run-loader.ts +423 -0
  1626. package/src/testing/run-middleware.ts +219 -0
  1627. package/src/testing/run-transition-when.ts +197 -0
  1628. package/src/testing/shell-status.ts +206 -0
  1629. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1630. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1631. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1632. package/src/testing/vitest-stubs/version.ts +5 -0
  1633. package/src/testing/vitest.ts +305 -0
  1634. package/src/theme/ThemeProvider.tsx +56 -84
  1635. package/src/theme/ThemeScript.tsx +7 -9
  1636. package/src/theme/constants.ts +52 -13
  1637. package/src/theme/index.ts +0 -7
  1638. package/src/theme/theme-context.ts +1 -5
  1639. package/src/theme/theme-script.ts +22 -21
  1640. package/src/theme/use-theme.ts +0 -3
  1641. package/src/types/boundaries.ts +19 -35
  1642. package/src/types/cache-types.ts +13 -4
  1643. package/src/types/error-types.ts +30 -90
  1644. package/src/types/global-namespace.ts +54 -41
  1645. package/src/types/handler-context.ts +123 -64
  1646. package/src/types/index.ts +4 -10
  1647. package/src/types/loader-types.ts +76 -13
  1648. package/src/types/request-scope.ts +112 -0
  1649. package/src/types/route-config.ts +20 -52
  1650. package/src/types/route-entry.ts +3 -6
  1651. package/src/types/segments.ts +155 -14
  1652. package/src/urls/include-helper.ts +38 -64
  1653. package/src/urls/include-provider.ts +71 -0
  1654. package/src/urls/index.ts +2 -11
  1655. package/src/urls/path-helper-types.ts +88 -25
  1656. package/src/urls/path-helper.ts +30 -110
  1657. package/src/urls/pattern-types.ts +101 -19
  1658. package/src/urls/response-types.ts +22 -29
  1659. package/src/urls/type-extraction.ts +98 -154
  1660. package/src/urls/urls-function.ts +1 -19
  1661. package/src/use-loader.tsx +379 -110
  1662. package/src/vercel/index.ts +11 -0
  1663. package/src/vercel/tracing.ts +89 -0
  1664. package/src/vite/debug.ts +185 -0
  1665. package/src/vite/discovery/bundle-postprocess.ts +18 -14
  1666. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1667. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1668. package/src/vite/discovery/discover-routers.ts +178 -151
  1669. package/src/vite/discovery/discovery-errors.ts +255 -0
  1670. package/src/vite/discovery/gate-state.ts +171 -0
  1671. package/src/vite/discovery/prerender-collection.ts +125 -70
  1672. package/src/vite/discovery/route-types-writer.ts +40 -84
  1673. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1674. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1675. package/src/vite/discovery/state.ts +104 -6
  1676. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1677. package/src/vite/encryption-key.ts +29 -0
  1678. package/src/vite/index.ts +12 -0
  1679. package/src/vite/inject-client-debug.ts +88 -0
  1680. package/src/vite/plugin-types.ts +243 -10
  1681. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1682. package/src/vite/plugins/client-ref-dedup.ts +296 -29
  1683. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1684. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1685. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1686. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1687. package/src/vite/plugins/expose-action-id.ts +95 -120
  1688. package/src/vite/plugins/expose-id-utils.ts +88 -55
  1689. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1690. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  1691. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1692. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1693. package/src/vite/plugins/expose-internal-ids.ts +551 -486
  1694. package/src/vite/plugins/performance-tracks.ts +26 -25
  1695. package/src/vite/plugins/refresh-cmd.ts +1 -1
  1696. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1697. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1698. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1699. package/src/vite/plugins/vercel-output.ts +384 -0
  1700. package/src/vite/plugins/version-injector.ts +39 -29
  1701. package/src/vite/plugins/version-plugin.ts +45 -40
  1702. package/src/vite/plugins/virtual-entries.ts +193 -30
  1703. package/src/vite/rango.ts +287 -140
  1704. package/src/vite/router-discovery.ts +1639 -157
  1705. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1706. package/src/vite/utils/banner.ts +1 -1
  1707. package/src/vite/utils/bundle-analysis.ts +10 -15
  1708. package/src/vite/utils/client-chunks.ts +184 -0
  1709. package/src/vite/utils/directive-prologue.ts +40 -0
  1710. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1711. package/src/vite/utils/manifest-utils.ts +1 -59
  1712. package/src/vite/utils/package-resolution.ts +21 -52
  1713. package/src/vite/utils/prerender-utils.ts +96 -49
  1714. package/src/vite/utils/shared-utils.ts +156 -43
  1715. package/src/browser/action-response-classifier.ts +0 -99
  1716. package/src/browser/shallow.ts +0 -40
  1717. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,425 @@
1
+ /**
2
+ * PPR shell capture orchestration (Axis 2, see docs/design/ppr-shell-resume.md).
3
+ *
4
+ * Capture does NOT flow through the HTTP middleware pipeline. The integrated PPR
5
+ * serve path (rsc-rendering.ts + shell-serve.ts) builds a ShellCaptureDescriptor
6
+ * from the route's `ppr` path option after the served response is built and calls
7
+ * scheduleShellCapture. The capture then runs as a background task that re-derives
8
+ * the page via `ctx.router.match()` under its OWN derived request context — fresh
9
+ * handle store, `_shellCaptureRun: true` so loaders mask (loader-mask.ts) and every
10
+ * loading() subtree postpones. The render is MIXED-CHAIN: cache()'d segments replay
11
+ * from ring 3, uncached segments execute their handlers fresh. It drives the static
12
+ * prerender to a quiescent shell, aborts to freeze the prelude + postponed state,
13
+ * and stores the pair via putShell. Because it uses match() rather than the HTTP
14
+ * pipeline, the middleware chain (auth, logging) never re-runs — it already ran for
15
+ * the triggering request, and the derived context inherits its post-middleware
16
+ * state (variables, cache store). Guarding is serve-time.
17
+ */
18
+ import { SHELL_CAPTURE_MAX_WAIT_MS } from "./shell-capture-constants.js";
19
+ import { type RequestContext } from "../server/request-context.js";
20
+ import { type HandleStore } from "../server/handle-store.js";
21
+ import type { SegmentCacheStore } from "../cache/types.js";
22
+ import type { HandlerContext } from "./handler-context.js";
23
+ import type { SSRModule } from "./types.js";
24
+ /**
25
+ * Default capture budget. Canonical value, raise rationale, and ceiling math
26
+ * live on the leaf module (shell-capture-constants.ts, importable from the ssr
27
+ * graph too). Re-exported here so shell-build-manifest.ts's envelope math
28
+ * keeps its existing import site and cannot drift from the capture.
29
+ */
30
+ export { SHELL_CAPTURE_MAX_WAIT_MS };
31
+ /**
32
+ * Delay before the in-place retry of a capture that produced no usable shell.
33
+ *
34
+ * The dominant reason a first capture comes back with a trivial prelude is a
35
+ * COLD render: in dev the module transform graph (route modules, the SSR/Flight
36
+ * transforms) is being built lazily and outlasts the task-quantized quiesce, so
37
+ * the shell has not finished rendering when we freeze it; on a cold worker the
38
+ * first invocation pays the same one-time cost. The first attempt WARMS that
39
+ * graph, so a second attempt a short beat later usually completes the shell in
40
+ * the SAME background task — no extra HTTP request needed. Short enough to feel
41
+ * instant, long enough for the module graph to settle. See
42
+ * docs/design/ppr-shell-resume.md ("Capture retry-in-place").
43
+ */
44
+ declare const SHELL_CAPTURE_RETRY_DELAY_MS = 400;
45
+ /** Sleep `ms`, unref'd so a Node dev process is never kept alive by the timer. */
46
+ declare function delay(ms: number): Promise<void>;
47
+ /**
48
+ * Refused-capture backoff bounds. The window is EXPONENTIAL in the consecutive
49
+ * failure count: `min(BASE * 2^(failures-1), ceiling)` — 1s, 2s, 4s, … up to the
50
+ * mode's ceiling (60s in production, {@link REFUSED_CAPTURE_DEV_MAX_MS} in dev).
51
+ *
52
+ * Why exponential and not a flat 60s: a flat long window conflates two very
53
+ * different failures. A STRUCTURALLY ineligible route (no loading(), a cookie
54
+ * reader) fails forever and wants the long 60s cap. But a cold-but-ELIGIBLE route
55
+ * can also fail the in-place retry under a truly cold graph (dev module transform,
56
+ * or a cold worker under parallel load) — and it must recover FAST, on the next
57
+ * request or two, not be frozen for 60s (that would re-break the very cold-start DX
58
+ * the retry fixes; it bit the cloudflare dev e2e). Escalating from 1s means the
59
+ * eligible route re-probes almost immediately (warm now → HIT and clear), while the
60
+ * doomed route ramps to the ceiling within a handful of failures. Either way an
61
+ * app-wide mount never re-renders a doomed route on EVERY request.
62
+ */
63
+ declare const REFUSED_CAPTURE_BASE_MS = 1000;
64
+ declare const REFUSED_CAPTURE_MAX_MS = 60000;
65
+ /**
66
+ * DEV-only backoff ceiling. In dev the 60s production cap is pure harm: the
67
+ * dominant no-shell cause is a COLD module graph (route modules, SSR/Flight
68
+ * transforms built lazily), and the very attempt that failed WARMS that graph, so
69
+ * the next attempt a beat later usually completes the shell. Capping the dev window
70
+ * low keeps a cold-but-eligible route re-probing every ~2s instead of freezing for
71
+ * up to 60s once the exponential climbs (1s→2s→4s→…→60s). A 60s freeze outlasts the
72
+ * e2e warm windows on cold CI runners: the capture races an unfinished shell,
73
+ * escalates the backoff past the poll window, and every subsequent request inside
74
+ * that window is skipped as backed-off — an eternal MISS for the test even though
75
+ * the modules are warm by then. Production keeps the full 60s cap: there the
76
+ * no-shell cause is far more likely to be a genuinely ineligible route (no
77
+ * loading()), which SHOULD be re-probed rarely. See #652 (item 3) and
78
+ * docs/design/ppr-shell-resume.md ("Refused-capture backoff").
79
+ */
80
+ declare const REFUSED_CAPTURE_DEV_MAX_MS = 2000;
81
+ /** True iff `key` is still inside its (exponential) backoff window. */
82
+ declare function isCaptureBackedOff(key: string): boolean;
83
+ /**
84
+ * Record a refused/failed capture, escalating the backoff window exponentially up
85
+ * to the current mode's ceiling. The failure count keeps climbing across attempts
86
+ * (so a genuinely doomed route still ramps toward its cap), but the WINDOW is
87
+ * clamped: 60s in production, {@link REFUSED_CAPTURE_DEV_MAX_MS} in dev so a
88
+ * cold-but-eligible route re-probes fast instead of freezing out the e2e warm
89
+ * window on a cold CI runner (#652 item 3).
90
+ */
91
+ declare function markCaptureBackoff(key: string): void;
92
+ /** Clear any backoff for a key that just captured successfully. */
93
+ declare function clearCaptureBackoff(key: string): void;
94
+ /**
95
+ * Default cap (serialized UTF-8 bytes) on the capture data snapshot riding
96
+ * inside a shell entry, when the route's `ppr` option does not set
97
+ * `maxSnapshotBytes`. 8 MiB: the snapshot shares the stored envelope with the
98
+ * base64 prelude and the postponed blob, and the tightest store value limit is
99
+ * Cloudflare KV's 25 MiB — 8 MiB of snapshot leaves the envelope well under it
100
+ * while still fitting any sane pinned-ring payload. Applied ONLY in
101
+ * captureAndStoreShell (the single defaulting site — resolvePprConfig passes
102
+ * the option through undefaulted), so every producer and direct caller gets
103
+ * the same policy. Over the cap the snapshot is skipped (shell still stored;
104
+ * pinned reads drift — see PartialPrerenderProps.maxSnapshotBytes).
105
+ */
106
+ export declare const DEFAULT_PPR_MAX_SNAPSHOT_BYTES: number;
107
+ /**
108
+ * One structured event from the background capture pipeline, mirroring the
109
+ * CFCacheReadDebugEvent pattern (cache/cf/cf-cache-types.ts): typed fields an
110
+ * operator can assert against, emitted per attempt and per skip, so the
111
+ * stored / no-shell / refused / backed-off lifecycle is observable outside
112
+ * dev console warnings. Configured via `createRouter({ debugShellCapture })`.
113
+ */
114
+ export interface ShellCaptureDebugEvent {
115
+ /** Shell cache key the event is about. */
116
+ key: string;
117
+ /**
118
+ * What happened:
119
+ * - stored / redirect / no-shell / refused: one capture ATTEMPT's outcome
120
+ * (see CaptureAttemptOutcome for the semantics of each)
121
+ * - error: the capture task failed with a genuine error (also routed through
122
+ * reportCacheError; the key is backed off)
123
+ * - skip-in-flight: scheduleShellCapture found a capture already running for
124
+ * the key (stampede guard) and scheduled nothing
125
+ * - skip-backoff: the key is inside its refused-capture backoff window and
126
+ * the capture was not attempted
127
+ * - skip-capacity: the isolate capture queue is full; a later request may retry
128
+ * - skip-inert-store: the resolved store's shell family is missing or
129
+ * declared inert (SegmentCacheStore.shellFamilyInert — a custom store
130
+ * whose backing tier is unavailable; built-in stores never declare it);
131
+ * nothing could store the result, so the background render was not
132
+ * scheduled at all
133
+ * - skip-queue-timeout: the capture waited past CAPTURE_QUEUE_WAIT_BUDGET_MS
134
+ * behind other captures and was dropped unrun (no backoff — the route is
135
+ * not doomed, the isolate was busy; a later request re-probes). Carries
136
+ * queueWaitMs.
137
+ * - backoff: the key entered (or escalated) backoff after a terminal
138
+ * no-shell — carries the new backoff state
139
+ */
140
+ outcome: "stored" | "redirect" | "no-shell" | "refused" | "error" | "skip-in-flight" | "skip-backoff" | "skip-capacity" | "skip-inert-store" | "skip-queue-timeout" | "backoff";
141
+ /** Attempt number (1 = first, 2 = in-place retry). Absent on skips. */
142
+ attempt?: number;
143
+ /** Wall-clock ms of the whole attempt (barrier + render + drain + put). */
144
+ attemptMs?: number;
145
+ /**
146
+ * Wall-clock ms the pre-render WRITE BARRIER waited on the foreground
147
+ * request's deferred cache writes (bounded by SHELL_CAPTURE_WRITE_BARRIER_MS).
148
+ */
149
+ barrierWaitMs?: number;
150
+ /**
151
+ * Wall-clock ms spent awaiting the capture's own deferred cache writes
152
+ * before the snapshot drain (bounded by SHELL_SNAPSHOT_WRITE_SETTLE_MS).
153
+ */
154
+ writeSettleMs?: number;
155
+ /** Stored prelude size in bytes (pre-base64). */
156
+ preludeBytes?: number;
157
+ /** Serialized snapshot size in UTF-8 bytes. Absent when nothing was recorded. */
158
+ snapshotBytes?: number;
159
+ /** True when the snapshot exceeded maxSnapshotBytes and was dropped. */
160
+ snapshotSkipped?: boolean;
161
+ /** A bake-lane loader settled into a shell that uses TTL/SWR-only invalidation. */
162
+ untaggedBake?: true;
163
+ /** Outcome reported by a store that supports shell-write acknowledgements. */
164
+ storeWrite?: "stored" | "invalidated" | "uncacheable";
165
+ /** Consecutive failure count in the key's backoff entry, when one exists. */
166
+ backoffFailures?: number;
167
+ /** Ms remaining in the key's backoff window, when one exists. */
168
+ backoffRemainingMs?: number;
169
+ /** Ms the capture waited in the serialized queue (skip-queue-timeout). */
170
+ queueWaitMs?: number;
171
+ /** Queue priority class at enqueue: document outranks queued navigation. */
172
+ queuePriority?: "document" | "navigation";
173
+ /**
174
+ * Captures ahead at enqueue: the active one plus every waiting capture of
175
+ * same-or-higher priority. 0 = this capture starts immediately.
176
+ */
177
+ queueAhead?: number;
178
+ /**
179
+ * Ms the capture gate was HELD waiting for the slowest bake source — a
180
+ * top-level pushed handle promise or a bake-lane loader container — to
181
+ * settle, measured from capture start. Bake time is by-design shell latency
182
+ * (the hole doctrine: top-level promises bake), but it recurs on EVERY
183
+ * capture of the route and occupies the serialized queue; this field makes
184
+ * it attributable. Absent when nothing held the gate.
185
+ */
186
+ bakeWaitMs?: number;
187
+ }
188
+ /**
189
+ * Debug sink for the capture pipeline, mirroring {@link CFCacheDebug}: `true`
190
+ * logs each event to console (visible via `wrangler tail`), a function
191
+ * receives the events for programmatic capture. Off by default.
192
+ */
193
+ export type ShellCaptureDebug = boolean | ((event: ShellCaptureDebugEvent) => void);
194
+ /**
195
+ * Compact single-line form of an event's fields, shared by the console sink
196
+ * and the dev Server-Timing mirror's `desc` (rsc-rendering). Plain
197
+ * alphanumerics/`=`/`-`/`()` only, so it needs no quoted-string escaping.
198
+ */
199
+ export declare function describeShellCaptureEvent(event: ShellCaptureDebugEvent): string;
200
+ /**
201
+ * Resolve the `debugShellCapture` router option to a callable sink, or
202
+ * undefined when off. The INTERNAL_RANGO_DEBUG env-flag fallback lives HERE
203
+ * (not at a call site) so every producer that resolves a sink inherits it;
204
+ * an explicit `false` wins over the env flag.
205
+ */
206
+ export declare function resolveShellCaptureDebugSink(option: ShellCaptureDebug | undefined): ((event: ShellCaptureDebugEvent) => void) | undefined;
207
+ /**
208
+ * Consume (read-and-clear) the buffered terminal capture event for `key`, so
209
+ * one capture reports into exactly one later response's Server-Timing.
210
+ */
211
+ export declare function takeCaptureDebugEventForTiming(key: string): ShellCaptureDebugEvent | undefined;
212
+ export interface FlightCaptureGate {
213
+ /** Identity passthrough of the source stream; feed this to captureShellHTML. */
214
+ stream: ReadableStream<Uint8Array>;
215
+ /**
216
+ * Resolves once the source has been byte-quiet for FLIGHT_QUIET_HOPS macrotask
217
+ * hops (or has closed — the DATA variant). At that instant the gate FREEZES:
218
+ * no further source byte reaches the fizz side, and the readable is left open
219
+ * (never closed / errored) so fizz postpones the still-pending references
220
+ * instead of seeing "Connection closed".
221
+ */
222
+ quiesce: Promise<void>;
223
+ /**
224
+ * Stop the internal macrotask-hop loop. captureShellHTML's maxWaitMs bounds the
225
+ * overall wait; dispose() is the clean shutdown for the pathological case where
226
+ * the source never goes byte-quiet (quiesce never fires), so the hop loop would
227
+ * otherwise keep rescheduling after captureShellHTML has already aborted and
228
+ * returned.
229
+ */
230
+ dispose(): void;
231
+ }
232
+ /**
233
+ * Wrap the capture Flight stream so the fizz shell prerender reads a stream that
234
+ * (a) forwards the shell rows unchanged, (b) resolves `quiesce` after the rows go
235
+ * byte-silent for FLIGHT_QUIET_HOPS macrotask hops, and (c) FREEZES at that
236
+ * instant — dropping any later byte without closing or erroring the readable, so
237
+ * the pending masked-loader references stay pending and fizz postpones them (the
238
+ * "unclosing stream" property, here for free because the masked rows never emit).
239
+ * Freezing also guarantees no post-quiesce byte — including an error row from any
240
+ * later abort/cancel of the underlying render — can corrupt the frozen prelude.
241
+ *
242
+ * Quiet is measured in TASKS, not wall-clock: after the first byte a macrotask
243
+ * hop loop compares a byte counter each turn and fires after K quiet turns. The
244
+ * hop timers are unref'd so they never keep a Node process alive, and the source
245
+ * closing (no holes) fires quiesce immediately for the DATA variant — the
246
+ * TransformStream then closes the readable, so fizz completes with postponed null.
247
+ *
248
+ * `holdUntil` keeps the gate from FREEZING before shell material with real latency
249
+ * has emitted. The hole doctrine bakes TOP-LEVEL pushed handle promises into the
250
+ * shell (resolvedHandleStream awaits them before the handles row emits), but a
251
+ * pushed promise that takes longer than the quiet window would otherwise be frozen
252
+ * out — the handles row would never reach fizz and the prelude would come back
253
+ * trivial. While `holdUntil` is pending, byte-quiet detection keeps running but the
254
+ * gate neither fires nor freezes; once it resolves, the quiet counter restarts so a
255
+ * burst of rows unblocked by it (the resolved handles row) is still captured. It
256
+ * never delays a HOLE from postponing: holes are pending promises that emit no
257
+ * bytes, so holding the gate open longer only ever admits shell rows. Bounded by
258
+ * captureShellHTML's maxWaitMs like every other quiesce input.
259
+ */
260
+ export declare function gateFlightForCapture(source: ReadableStream<Uint8Array>, quietHops?: number, holdUntil?: Promise<unknown>): FlightCaptureGate;
261
+ /**
262
+ * The background shell-capture descriptor: everything the capture task needs to
263
+ * store the shell. Built by the integrated PPR serve path (rsc-rendering.ts) from
264
+ * the route's `ppr` path option (`PartialPrerenderProps`) and the app-level cache
265
+ * store, and passed to scheduleShellCapture directly — it is NOT threaded through
266
+ * the request context. `tags` carries the route's OPERATIONAL `ppr.tags`; the
267
+ * capture UNIONS them with the shell's own auto-collected (non-loader) request
268
+ * tags from its derived render (the collected set stays authoritative). That
269
+ * union happens at the putShell WRITE BARRIER in captureAndStoreShell — after the
270
+ * capture quiesces — not at stream construction, so a tag recorded after an await
271
+ * in async shell content is still collected (issue #676). `store` is the same
272
+ * store the serve path resolved for its getShell read (requestCtx._cacheStore),
273
+ * so the capture writes where the serve reads.
274
+ */
275
+ export interface ShellCaptureDescriptor {
276
+ key: string;
277
+ /**
278
+ * The key's search portion (shellSearchSeed: `?`-prefixed sorted search,
279
+ * cache.searchParams filter applied, or ""). Seeds the capture render's SSR
280
+ * store so static-part `useSearchParams` reads bake markup consistent with
281
+ * the shell's own key; the resume pass derives the identical string from
282
+ * the HIT request. Computed next to the key so the two cannot drift.
283
+ * Omitted (build-time bare-pathname captures) = search-less, same as "".
284
+ */
285
+ searchSeed?: string;
286
+ /**
287
+ * The scheduling request's origin, seeding the capture render's SSR store
288
+ * location. Shell keys are host-scoped, so the resume pass's request
289
+ * agrees modulo protocol drift; the seed keeps origin-dependent static
290
+ * markup (Link's data-external) identical across capture, resume, and
291
+ * browser hydration. Omitted (build-time host-agnostic captures) falls
292
+ * back to the internal host.
293
+ */
294
+ originSeed?: string;
295
+ /**
296
+ * The RSC handler's build version (HandlerContext.version), stamped into the
297
+ * stored entry as ShellCacheEntry.buildVersion — the serve-side
298
+ * isValidShellHit gate compares it against the running build so a persistent
299
+ * store can never resume a stale build's postponed blob.
300
+ */
301
+ buildVersion: string;
302
+ ttl?: number;
303
+ swr?: number;
304
+ tags?: string[];
305
+ /**
306
+ * Per-route capture settle budget in ms (`ppr.captureTimeout`, resolved by
307
+ * resolvePprConfig). Feeds captureShellHTML's maxWaitMs — the ONE deadline
308
+ * bounding the whole capture, so it covers BOTH the fizz prerender AND the
309
+ * deferred-material settle window (the handlesBaked/loader-container
310
+ * holdUntil that keeps the gate from freezing while top-level pushes are
311
+ * pending). Undefined = SHELL_CAPTURE_MAX_WAIT_MS (15_000).
312
+ */
313
+ captureTimeout?: number;
314
+ store?: SegmentCacheStore<any>;
315
+ /** Gates the concise per-attempt capture breadcrumbs (INTERNAL_RANGO_DEBUG). */
316
+ debug?: boolean;
317
+ /**
318
+ * Cap (serialized UTF-8 bytes) on the entry's capture data snapshot; over it
319
+ * the snapshot is skipped and the shell stored without it (reported once per
320
+ * key). Absent = DEFAULT_PPR_MAX_SNAPSHOT_BYTES, applied in
321
+ * captureAndStoreShell — the single defaulting site.
322
+ */
323
+ maxSnapshotBytes?: number;
324
+ /**
325
+ * Structured capture-pipeline debug sink, resolved from
326
+ * `createRouter({ debugShellCapture })` (or INTERNAL_RANGO_DEBUG) via
327
+ * {@link resolveShellCaptureDebugSink}. Receives one
328
+ * {@link ShellCaptureDebugEvent} per attempt/skip.
329
+ */
330
+ debugSink?: (event: ShellCaptureDebugEvent) => void;
331
+ /** Store the snapshot for navigation replay, never the captured HTML prelude. */
332
+ navigationOnly?: true;
333
+ }
334
+ /**
335
+ * Schedule the background shell capture for a served document. Stampede-guarded:
336
+ * one capture per key per isolate. Runs via runBackground (waitUntil on workerd,
337
+ * fire-and-forget in Node dev), so the served response is never blocked on it. Any
338
+ * error is routed through reportCacheError — capture is best-effort; a failure just
339
+ * means the next request recaptures.
340
+ *
341
+ * Eligibility (nonce/partial/status/strategy) is decided by the caller. An SSR
342
+ * module loader may be passed for cold partial requests; it runs only after the
343
+ * capture enters the guarded background queue, never on response latency.
344
+ */
345
+ export declare function scheduleShellCapture(ctx: HandlerContext<any>, request: Request, env: any, url: URL, reqCtx: RequestContext<any>, ssrModule: SSRModule | ((request: Request, url: URL) => Promise<SSRModule | null>), descriptor: ShellCaptureDescriptor): void;
346
+ /**
347
+ * The outcome of one capture attempt.
348
+ * - `stored`: a usable shell was captured (and a putShell was attempted; a store
349
+ * I/O failure is reported separately and does NOT make the attempt retryable —
350
+ * the capture itself worked).
351
+ * - `redirect`: the matched route redirects, so there is no shell to capture.
352
+ * - `no-shell`: captureShellHTML returned null because the prelude was unusable
353
+ * or its private capture abort landed before the shell completed. This is the
354
+ * only RETRYABLE outcome.
355
+ */
356
+ type CaptureAttemptOutcome = "stored" | "redirect" | "no-shell" | "refused";
357
+ /**
358
+ * Per-attempt observability fields, filled along the capture path (barrier in
359
+ * attemptCapture, the rest in captureAndStoreShell) and folded into the
360
+ * attempt's {@link ShellCaptureDebugEvent} by runShellCapture. A plain mutable
361
+ * bag, not a return value: captureAndStoreShell's outcome type stays a string
362
+ * union its existing callers (producer B, tests) consume unchanged.
363
+ */
364
+ type CaptureAttemptStats = Pick<ShellCaptureDebugEvent, "barrierWaitMs" | "writeSettleMs" | "preludeBytes" | "snapshotBytes" | "snapshotSkipped" | "untaggedBake" | "storeWrite" | "bakeWaitMs">;
365
+ /**
366
+ * Run the shell capture with a single in-place retry, then store the result.
367
+ *
368
+ * Each attempt re-derives EVERYTHING (fresh context, fresh router.match, fresh
369
+ * Flight render) via {@link attemptCapture} — a capture consumes its handle store,
370
+ * its request-tag set, and its one-shot Flight stream, so none of them are
371
+ * reusable across attempts. A first attempt that comes back `no-shell` is almost
372
+ * always a cold render (dev module transform / cold worker) that had not finished
373
+ * when we froze the shell; the attempt itself warmed the module graph, so a second
374
+ * attempt a short beat later usually completes the shell in the SAME background
375
+ * task. That kills the old multi-request warmup where the caller had to re-issue
376
+ * several HTTP requests before a capture stuck. We retry ONLY on `no-shell`; a
377
+ * genuine render error is NOT retried — it propagates to scheduleShellCapture's
378
+ * reportCacheError. See docs/design/ppr-shell-resume.md.
379
+ *
380
+ * `retryDelayMs` is a parameter (defaulting to the module const) so unit tests can
381
+ * drive the retry without a real 400ms wall-clock wait.
382
+ */
383
+ declare function runShellCapture(ctx: HandlerContext<any>, request: Request, env: any, url: URL, reqCtx: RequestContext<any>, ssrModule: SSRModule, descriptor: ShellCaptureDescriptor, retryDelayMs?: number): Promise<CaptureAttemptOutcome>;
384
+ /**
385
+ * The derived capture context and its fresh (mask-funneled) handle store,
386
+ * shared by BOTH shell producers: the runtime background capture
387
+ * (attemptCapture, producer A) and the build-time prerender shell capture
388
+ * (prerender/build-shell-capture.ts, producer B — issue #699). One
389
+ * implementation so the capture semantics — the nested-thenable mask funnel,
390
+ * handler-liveness bookkeeping, snapshot recording, the implicit doc-cache
391
+ * scope — cannot drift between producers.
392
+ */
393
+ export interface CaptureContextDerivation {
394
+ derivedCtx: RequestContext;
395
+ freshHandleStore: HandleStore;
396
+ }
397
+ /**
398
+ * Derive the capture request context from a base context. Producer A passes
399
+ * the foreground request's post-middleware context (the derived context
400
+ * inherits its variables/env/cookie machinery through the prototype);
401
+ * producer B passes a synthetic build-request context created by
402
+ * createRequestContext over the build env, with a fresh MemorySegmentCacheStore
403
+ * as `_cacheStore` so the recording/snapshot machinery arms identically.
404
+ */
405
+ export declare function deriveShellCaptureContext(reqCtx: RequestContext<any>, descriptor: Pick<ShellCaptureDescriptor, "ttl" | "swr">, identity?: {
406
+ request: Request;
407
+ url: URL;
408
+ }): CaptureContextDerivation;
409
+ /**
410
+ * Seal handles, derive the quiesce signal, prerender + abort via the SSR module's
411
+ * captureShellHTML, and store the result. Returns the attempt outcome (the caller
412
+ * owns retry/warn decisions — this function no longer warns). Never throws out of
413
+ * the store write: a failed putShell is routed through reportCacheError so the
414
+ * background task stays best-effort, and the attempt still counts as `stored` (the
415
+ * capture worked; only the store I/O failed). `ssrModule.captureShellHTML` MUST be
416
+ * present (eligibility is checked before scheduling).
417
+ *
418
+ * A `no-shell` result from captureShellHTML is the only retryable outcome. Every
419
+ * captureShellHTML error propagates to reportCacheError and is NOT retried. The
420
+ * capture handler converts only its own private abort sentinel to null before this
421
+ * layer sees it.
422
+ */
423
+ declare function captureAndStoreShell(ssrModule: SSRModule, rscStream: ReadableStream<Uint8Array>, handleStore: HandleStore, reqCtx: RequestContext<any>, capture: ShellCaptureDescriptor, stats?: CaptureAttemptStats, captureStartedAt?: number): Promise<Exclude<CaptureAttemptOutcome, "redirect">>;
424
+ export { runShellCapture, captureAndStoreShell, delay, SHELL_CAPTURE_RETRY_DELAY_MS, };
425
+ export { isCaptureBackedOff, markCaptureBackoff, clearCaptureBackoff, REFUSED_CAPTURE_BASE_MS, REFUSED_CAPTURE_MAX_MS, REFUSED_CAPTURE_DEV_MAX_MS, };
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Integrated PPR shell serving (Axis 2, see docs/design/ppr-shell-resume.md).
3
+ *
4
+ * PPR is opt-in per PAGE ROUTE via the `ppr` path option
5
+ * (`path(pattern, Handler, { name, ppr: true | PartialPrerenderProps })`) and the
6
+ * serving logic is INTEGRAL to the render pipeline — there is no middleware to
7
+ * mount. This module owns the config/key/store plumbing the render layer
8
+ * (rsc-rendering.ts) uses at its COMMIT POINT, which sits after the WHOLE
9
+ * middleware chain (global `router.use()` chain AND route DSL `middleware()`,
10
+ * both of which wrap the render pass): any middleware rejection/redirect wins
11
+ * before a single shell byte is written.
12
+ *
13
+ * The shell store is the app-level `createRouter({ cache })` store
14
+ * (`requestCtx._cacheStore`). A store without the `getShell`/`putShell` family
15
+ * degrades a ppr route to axis 1 with a once-per-key warning (the declared
16
+ * intent cannot be honored — unlike an undeclared route, which is silent).
17
+ */
18
+ import { type EntryData } from "../server/context.js";
19
+ import type { SearchParamsFilter } from "../cache/search-params-filter.js";
20
+ import type { DocumentShellCacheEntry, ShellCacheEntry, SegmentCacheStore } from "../cache/types.js";
21
+ /** Debug/status header the browser (and e2e assertions) can read: HIT | MISS. */
22
+ export declare const SHELL_STATUS_HEADER = "x-rango-shell";
23
+ /** Partial-navigation status header set only after captured PPR segments are consumed. */
24
+ export declare const PPR_REPLAY_STATUS_HEADER = "x-rango-ppr-replay";
25
+ /**
26
+ * Default shell ttl (seconds) for `ppr: true` and for a PartialPrerenderProps
27
+ * that omits `ttl`.
28
+ */
29
+ export declare const DEFAULT_PPR_TTL_SECONDS = 300;
30
+ /**
31
+ * Timeout for the dev /__rsc_shell endpoint's sequential /__rsc_prerender
32
+ * pre-flight probe (vite/router-discovery.ts). Hoisted here so the client-side
33
+ * fetch bound (shell-build-manifest.ts devShellFetchTimeoutMs) enumerates the
34
+ * SAME term of the endpoint's worst-case envelope — the two cannot drift.
35
+ */
36
+ export declare const DEV_SHELL_PROBE_TIMEOUT_MS: number;
37
+ /** The route's ppr option normalized to a concrete policy. */
38
+ export interface ResolvedPprConfig {
39
+ ttl: number;
40
+ swr?: number;
41
+ tags?: string[];
42
+ /**
43
+ * Snapshot size cap, passed through undefaulted (like swr/tags): the single
44
+ * defaulting site is captureAndStoreShell (DEFAULT_PPR_MAX_SNAPSHOT_BYTES in
45
+ * shell-capture.ts), so direct descriptor callers and resolved configs
46
+ * cannot drift.
47
+ */
48
+ maxSnapshotBytes?: number;
49
+ /**
50
+ * Capture settle budget in ms (`ppr.captureTimeout`). Undefined = the
51
+ * capture default (SHELL_CAPTURE_MAX_WAIT_MS, 15_000) — the default's single
52
+ * owner stays shell-capture.ts so build/runtime producers cannot drift.
53
+ */
54
+ captureTimeout?: number;
55
+ }
56
+ /**
57
+ * Validate the raw `ppr.captureTimeout` option: a finite number >= 1ms is
58
+ * clamped to the default ceiling; anything else (including
59
+ * 0/negative/NaN/Infinity/non-number) resolves to undefined, which means "use
60
+ * the capture default" downstream.
61
+ * Mirrors the prefetch-limit option policy: invalid values silently fall back
62
+ * to the default rather than throwing at request time. Also the boundary
63
+ * re-normalizer for the dev /__rsc_shell endpoint (vite/router-discovery.ts),
64
+ * whose param crossed an HTTP query string.
65
+ */
66
+ export declare function normalizeCaptureTimeout(value: unknown): number | undefined;
67
+ /**
68
+ * Normalize the matched page route's `ppr` path option. Returns null when the
69
+ * route does not declare `ppr` (or declares `ppr: false`) — the caller then does
70
+ * NOTHING: no store read, no capture, no logs. Pure axis 1, zero cost.
71
+ *
72
+ * The route's NAME is irrelevant here (and everywhere on the shell lane):
73
+ * nameless `path()` routes register their EntryData under a synthesized
74
+ * `$path_*` manifest key with the `ppr` option intact (urls/path-helper.ts),
75
+ * so a nameless entry resolves exactly like a named one — pinned by the
76
+ * nameless-ppr e2e in both apps (issue #714).
77
+ *
78
+ * PPR is a DOCUMENT-level property of the page route; there is no subtree
79
+ * inheritance (declaring it on a layout is not supported — a follow-up).
80
+ */
81
+ export declare function resolvePprConfig(entry: EntryData | undefined | null): ResolvedPprConfig | null;
82
+ /**
83
+ * Shell cache key: host + pathname + sorted search + a `:shell` namespace suffix
84
+ * (so it can never collide with a document-cache key; the store further isolates
85
+ * the shell family internally).
86
+ *
87
+ * The key includes the request HOST: in a multi-tenant host-router deployment
88
+ * (one worker, one shared KV/runtime-cache store) a host-less key would serve
89
+ * tenant A's captured shell to tenant B's users.
90
+ *
91
+ * `filter` is the request's compiled `cache.searchParams` config
92
+ * (ctx._searchParamsFilter): excluded params collapse onto one shell slot.
93
+ * Callers on the serve/capture path MUST pass it -- key drift between capture
94
+ * and lookup makes every shell request a permanent miss.
95
+ */
96
+ export declare function buildShellKey(url: URL, filter?: SearchParamsFilter): string;
97
+ /**
98
+ * The shell key's search portion (`?`-prefixed sorted search with the
99
+ * cache.searchParams filter applied, or "") — ALSO the string the capture and
100
+ * resume SSR renders seed their store location with (SSRRenderOptions.search
101
+ * / ShellCaptureOptions.search / ShellResumeOptions.search). Search is part
102
+ * of shell identity, so static-part `useSearchParams` reads render exactly
103
+ * what the key names; deriving seed and key from this one helper is what
104
+ * keeps capture, resume, and lookup byte-agreed (drift = replay mismatch or
105
+ * permanent MISS).
106
+ */
107
+ export declare function shellSearchSeed(url: URL, filter?: SearchParamsFilter): string;
108
+ /**
109
+ * Version gates for a stored shell: reactVersion AND buildVersion must both
110
+ * match the running server. The postponed blob encodes hole positions against
111
+ * one exact tree, so resuming it under a different React OR a different app
112
+ * build tree-mismatches inside resume() — after the 200 + prelude committed,
113
+ * with no recovery. Either mismatch is a miss: the recapture overwrites the
114
+ * same key (self-healing) and the entry otherwise ages out via TTL. An entry
115
+ * with no buildVersion (stored before the field existed) is a miss for the
116
+ * same reason — its build is unknown, so it cannot be proven resumable.
117
+ */
118
+ export declare function isValidShellHit(entry: ShellCacheEntry, buildVersion: string): boolean;
119
+ /**
120
+ * DOCUMENT-half integrity gate and type narrowing, run BEFORE the HIT response
121
+ * commits: a stored entry whose prelude is not decodable base64 or whose
122
+ * postponed blob is not parseable JSON would otherwise throw AFTER the 200 +
123
+ * full static prelude flushed (`serveShellHit` decodes at stream construction,
124
+ * `resumeShellHTML` parses in the tail) — the client gets a visually complete
125
+ * page that never hydrates, re-served on every request until the entry ages
126
+ * out (no eviction path exists; failure schedules no recapture by itself).
127
+ * Checking here turns a corrupt entry (store-layer fault) into a plain MISS
128
+ * the recapture overwrites. Cost: one duplicate decode/parse per HIT, sub-ms
129
+ * against a prelude flush that dominates the path.
130
+ *
131
+ * navigationOnly entries store no document half (prelude/postponed absent) and
132
+ * therefore never pass. The partial-replay path skips this gate for them
133
+ * (replayableShellSnapshot) — snapshot fragment corruption is caught by the
134
+ * consumer-side Flight decoders instead (SegmentFragmentDecodeError → healing
135
+ * capture).
136
+ */
137
+ export declare function hasIntactShellPayload(entry: ShellCacheEntry): entry is DocumentShellCacheEntry;
138
+ /** Decode a base64 prelude back into bytes for stream composition. */
139
+ export declare function base64ToBytes(b64: string): Uint8Array;
140
+ /** True when the store implements the shell entry family. */
141
+ export declare function hasShellFamily(store: SegmentCacheStore | undefined): store is SegmentCacheStore & {
142
+ getShell: NonNullable<SegmentCacheStore["getShell"]>;
143
+ putShell: NonNullable<SegmentCacheStore["putShell"]>;
144
+ };
145
+ /**
146
+ * Per-stage timing of one shell-HIT tail, all offsets in ms from the response
147
+ * commit (prelude flush). The HIT commits its 200 + headers BEFORE the live
148
+ * tail runs, so Server-Timing on the HIT response structurally cannot carry
149
+ * these numbers — they ride the dev mirror below instead (same doctrine as
150
+ * the ppr:capture mirror in rsc-rendering.ts, issue #651).
151
+ */
152
+ export interface ShellTailTiming {
153
+ key: string;
154
+ outcome: "complete" | "redirect" | "error";
155
+ /** Loader-family seed decode (only when the entry carried a snapshot). */
156
+ seedMs?: number;
157
+ /** Tail router.match() settled. */
158
+ matchMs?: number;
159
+ /** Tail stream (resume output) handed to the response stream. */
160
+ handoverMs?: number;
161
+ /** First resumed-HTML byte enqueued on the wire. */
162
+ firstHtmlMs?: number;
163
+ /** Tail fully drained (last hole settled and flushed). */
164
+ completeMs?: number;
165
+ /** Prelude size flushed at commit (decoded bytes). */
166
+ preludeBytes?: number;
167
+ /** Total tail bytes streamed behind the prelude. */
168
+ tailBytes?: number;
169
+ }
170
+ /**
171
+ * Compact single-line form for the console log and the dev Server-Timing
172
+ * mirror's `desc`. Plain alphanumerics/`=`/`-` only — no quoted-string
173
+ * escaping needed.
174
+ */
175
+ export declare function describeShellTailTiming(timing: ShellTailTiming): string;
176
+ /** Buffer one terminal tail timing for the dev Server-Timing mirror. */
177
+ export declare function publishShellTailTiming(timing: ShellTailTiming): void;
178
+ /**
179
+ * Consume (read-and-clear) the buffered tail timing for `key`, so one tail
180
+ * reports into exactly one later response's Server-Timing.
181
+ */
182
+ export declare function takeShellTailTimingForServerTiming(key: string): ShellTailTiming | undefined;
183
+ /**
184
+ * Warn once per key that a route declared `ppr` but the app-level cache store
185
+ * does not implement the shell family (getShell/putShell), so the route stays on
186
+ * axis 1. Unlike an undeclared route (silent), a declared route that cannot be
187
+ * honored deserves a diagnostic.
188
+ */
189
+ export declare function warnShellStoreMissingOnce(key: string): void;
190
+ /**
191
+ * Warn once per key that a route declared `ppr` but a per-request CSP nonce is
192
+ * active for the request, so the route stays on axis 1 (a shared shell would
193
+ * freeze one request's nonce for every visitor — useNonce() renders it into every
194
+ * nonced script/style/meta and the browser's CSP would then reject the frozen
195
+ * nonce for all but the capture request). The nonce blocks capture whether it came
196
+ * from the `createRouter({ nonce })` provider or from a direct `ctx.set(nonce, …)`
197
+ * token write in middleware. Same declared-intent-cannot-be-honored doctrine as
198
+ * the missing-store warning above (an undeclared route stays silent).
199
+ */
200
+ export declare function warnPprNonceActiveOnce(key: string): void;