@rangojs/router 0.4.0 → 0.4.2

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 (1295) hide show
  1. package/README.md +19 -1
  2. package/dist/__internal.d.ts +83 -0
  3. package/dist/__internal.d.ts.map +1 -0
  4. package/dist/__internal.js +19 -0
  5. package/dist/__internal.js.map +1 -0
  6. package/dist/__mocks__/version.d.ts +7 -0
  7. package/dist/__mocks__/version.d.ts.map +1 -0
  8. package/dist/__mocks__/version.js +7 -0
  9. package/dist/__mocks__/version.js.map +1 -0
  10. package/dist/__tests__/client-href.test.d.ts +2 -0
  11. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  12. package/dist/__tests__/client-href.test.js +74 -0
  13. package/dist/__tests__/client-href.test.js.map +1 -0
  14. package/dist/__tests__/component-utils.test.d.ts +2 -0
  15. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  16. package/dist/__tests__/component-utils.test.js +51 -0
  17. package/dist/__tests__/component-utils.test.js.map +1 -0
  18. package/dist/__tests__/event-controller.test.d.ts +2 -0
  19. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  20. package/dist/__tests__/event-controller.test.js +538 -0
  21. package/dist/__tests__/event-controller.test.js.map +1 -0
  22. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  24. package/dist/__tests__/helpers/route-tree.js +374 -0
  25. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  26. package/dist/__tests__/match-result.test.d.ts +2 -0
  27. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  28. package/dist/__tests__/match-result.test.js +154 -0
  29. package/dist/__tests__/match-result.test.js.map +1 -0
  30. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  31. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  32. package/dist/__tests__/navigation-store.test.js +440 -0
  33. package/dist/__tests__/navigation-store.test.js.map +1 -0
  34. package/dist/__tests__/partial-update.test.d.ts +2 -0
  35. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  36. package/dist/__tests__/partial-update.test.js +1009 -0
  37. package/dist/__tests__/partial-update.test.js.map +1 -0
  38. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  39. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  40. package/dist/__tests__/reverse-types.test.js +656 -0
  41. package/dist/__tests__/reverse-types.test.js.map +1 -0
  42. package/dist/__tests__/route-definition.test.d.ts +2 -0
  43. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  44. package/dist/__tests__/route-definition.test.js +55 -0
  45. package/dist/__tests__/route-definition.test.js.map +1 -0
  46. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  47. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  48. package/dist/__tests__/router-helpers.test.js +377 -0
  49. package/dist/__tests__/router-helpers.test.js.map +1 -0
  50. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  52. package/dist/__tests__/router-integration-2.test.js +426 -0
  53. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  54. package/dist/__tests__/router-integration.test.d.ts +2 -0
  55. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/router-integration.test.js +1051 -0
  57. package/dist/__tests__/router-integration.test.js.map +1 -0
  58. package/dist/__tests__/search-params.test.d.ts +5 -0
  59. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  60. package/dist/__tests__/search-params.test.js +306 -0
  61. package/dist/__tests__/search-params.test.js.map +1 -0
  62. package/dist/__tests__/segment-system.test.d.ts +2 -0
  63. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  64. package/dist/__tests__/segment-system.test.js +627 -0
  65. package/dist/__tests__/segment-system.test.js.map +1 -0
  66. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  68. package/dist/__tests__/static-handler-types.test.js +63 -0
  69. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  70. package/dist/__tests__/urls.test.d.ts +2 -0
  71. package/dist/__tests__/urls.test.d.ts.map +1 -0
  72. package/dist/__tests__/urls.test.js +421 -0
  73. package/dist/__tests__/urls.test.js.map +1 -0
  74. package/dist/__tests__/use-mount.test.d.ts +2 -0
  75. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  76. package/dist/__tests__/use-mount.test.js +35 -0
  77. package/dist/__tests__/use-mount.test.js.map +1 -0
  78. package/dist/bin/rango.d.ts +2 -0
  79. package/dist/bin/rango.d.ts.map +1 -0
  80. package/dist/bin/rango.js.map +1 -0
  81. package/dist/browser/event-controller.d.ts +191 -0
  82. package/dist/browser/event-controller.d.ts.map +1 -0
  83. package/dist/browser/event-controller.js +559 -0
  84. package/dist/browser/event-controller.js.map +1 -0
  85. package/dist/browser/index.d.ts +2 -0
  86. package/dist/browser/index.d.ts.map +1 -0
  87. package/dist/browser/index.js +14 -0
  88. package/dist/browser/index.js.map +1 -0
  89. package/dist/browser/link-interceptor.d.ts +38 -0
  90. package/dist/browser/link-interceptor.d.ts.map +1 -0
  91. package/dist/browser/link-interceptor.js +99 -0
  92. package/dist/browser/link-interceptor.js.map +1 -0
  93. package/dist/browser/logging.d.ts +10 -0
  94. package/dist/browser/logging.d.ts.map +1 -0
  95. package/dist/browser/logging.js +29 -0
  96. package/dist/browser/logging.js.map +1 -0
  97. package/dist/browser/lru-cache.d.ts +17 -0
  98. package/dist/browser/lru-cache.d.ts.map +1 -0
  99. package/dist/browser/lru-cache.js +50 -0
  100. package/dist/browser/lru-cache.js.map +1 -0
  101. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  102. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  103. package/dist/browser/merge-segment-loaders.js +102 -0
  104. package/dist/browser/merge-segment-loaders.js.map +1 -0
  105. package/dist/browser/navigation-bridge.d.ts +102 -0
  106. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  107. package/dist/browser/navigation-bridge.js +708 -0
  108. package/dist/browser/navigation-bridge.js.map +1 -0
  109. package/dist/browser/navigation-client.d.ts +25 -0
  110. package/dist/browser/navigation-client.d.ts.map +1 -0
  111. package/dist/browser/navigation-client.js +157 -0
  112. package/dist/browser/navigation-client.js.map +1 -0
  113. package/dist/browser/navigation-store.d.ts +101 -0
  114. package/dist/browser/navigation-store.d.ts.map +1 -0
  115. package/dist/browser/navigation-store.js +625 -0
  116. package/dist/browser/navigation-store.js.map +1 -0
  117. package/dist/browser/partial-update.d.ts +75 -0
  118. package/dist/browser/partial-update.d.ts.map +1 -0
  119. package/dist/browser/partial-update.js +426 -0
  120. package/dist/browser/partial-update.js.map +1 -0
  121. package/dist/browser/react/Link.d.ts +86 -0
  122. package/dist/browser/react/Link.d.ts.map +1 -0
  123. package/dist/browser/react/Link.js +128 -0
  124. package/dist/browser/react/Link.js.map +1 -0
  125. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  126. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  127. package/dist/browser/react/NavigationProvider.js +216 -0
  128. package/dist/browser/react/NavigationProvider.js.map +1 -0
  129. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  130. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.js +57 -0
  132. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  133. package/dist/browser/react/context.d.ts +46 -0
  134. package/dist/browser/react/context.d.ts.map +1 -0
  135. package/dist/browser/react/context.js +10 -0
  136. package/dist/browser/react/context.js.map +1 -0
  137. package/dist/browser/react/index.d.ts +11 -0
  138. package/dist/browser/react/index.d.ts.map +1 -0
  139. package/dist/browser/react/index.js +22 -0
  140. package/dist/browser/react/index.js.map +1 -0
  141. package/dist/browser/react/location-state-shared.d.ts +63 -0
  142. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  143. package/dist/browser/react/location-state-shared.js +81 -0
  144. package/dist/browser/react/location-state-shared.js.map +1 -0
  145. package/dist/browser/react/location-state.d.ts +23 -0
  146. package/dist/browser/react/location-state.d.ts.map +1 -0
  147. package/dist/browser/react/location-state.js +29 -0
  148. package/dist/browser/react/location-state.js.map +1 -0
  149. package/dist/browser/react/mount-context.d.ts +24 -0
  150. package/dist/browser/react/mount-context.d.ts.map +1 -0
  151. package/dist/browser/react/mount-context.js +24 -0
  152. package/dist/browser/react/mount-context.js.map +1 -0
  153. package/dist/browser/react/use-action.d.ts +64 -0
  154. package/dist/browser/react/use-action.d.ts.map +1 -0
  155. package/dist/browser/react/use-action.js +134 -0
  156. package/dist/browser/react/use-action.js.map +1 -0
  157. package/dist/browser/react/use-client-cache.d.ts +41 -0
  158. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  159. package/dist/browser/react/use-client-cache.js +39 -0
  160. package/dist/browser/react/use-client-cache.js.map +1 -0
  161. package/dist/browser/react/use-handle.d.ts +31 -0
  162. package/dist/browser/react/use-handle.d.ts.map +1 -0
  163. package/dist/browser/react/use-handle.js +144 -0
  164. package/dist/browser/react/use-handle.js.map +1 -0
  165. package/dist/browser/react/use-href.d.ts +33 -0
  166. package/dist/browser/react/use-href.d.ts.map +1 -0
  167. package/dist/browser/react/use-href.js +39 -0
  168. package/dist/browser/react/use-href.js.map +1 -0
  169. package/dist/browser/react/use-link-status.d.ts +37 -0
  170. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  171. package/dist/browser/react/use-link-status.js +99 -0
  172. package/dist/browser/react/use-link-status.js.map +1 -0
  173. package/dist/browser/react/use-mount.d.ts +25 -0
  174. package/dist/browser/react/use-mount.d.ts.map +1 -0
  175. package/dist/browser/react/use-mount.js +30 -0
  176. package/dist/browser/react/use-mount.js.map +1 -0
  177. package/dist/browser/react/use-navigation.d.ts +27 -0
  178. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  179. package/dist/browser/react/use-navigation.js +87 -0
  180. package/dist/browser/react/use-navigation.js.map +1 -0
  181. package/dist/browser/react/use-segments.d.ts +38 -0
  182. package/dist/browser/react/use-segments.d.ts.map +1 -0
  183. package/dist/browser/react/use-segments.js +130 -0
  184. package/dist/browser/react/use-segments.js.map +1 -0
  185. package/dist/browser/request-controller.d.ts +26 -0
  186. package/dist/browser/request-controller.d.ts.map +1 -0
  187. package/dist/browser/request-controller.js +147 -0
  188. package/dist/browser/request-controller.js.map +1 -0
  189. package/dist/browser/rsc-router.d.ts +129 -0
  190. package/dist/browser/rsc-router.d.ts.map +1 -0
  191. package/dist/browser/rsc-router.js +195 -0
  192. package/dist/browser/rsc-router.js.map +1 -0
  193. package/dist/browser/scroll-restoration.d.ts +93 -0
  194. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  195. package/dist/browser/scroll-restoration.js +321 -0
  196. package/dist/browser/scroll-restoration.js.map +1 -0
  197. package/dist/browser/segment-structure-assert.d.ts +17 -0
  198. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  199. package/dist/browser/segment-structure-assert.js +59 -0
  200. package/dist/browser/segment-structure-assert.js.map +1 -0
  201. package/dist/browser/server-action-bridge.d.ts +26 -0
  202. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  203. package/dist/browser/server-action-bridge.js +668 -0
  204. package/dist/browser/server-action-bridge.js.map +1 -0
  205. package/dist/browser/shallow.d.ts +12 -0
  206. package/dist/browser/shallow.d.ts.map +1 -0
  207. package/dist/browser/shallow.js +34 -0
  208. package/dist/browser/shallow.js.map +1 -0
  209. package/dist/browser/types.d.ts +369 -0
  210. package/dist/browser/types.d.ts.map +1 -0
  211. package/dist/browser/types.js +2 -0
  212. package/dist/browser/types.js.map +1 -0
  213. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  214. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.js +237 -0
  216. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  217. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  218. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  220. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  221. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  222. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  224. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  225. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  226. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  228. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  229. package/dist/build/generate-manifest.d.ts +81 -0
  230. package/dist/build/generate-manifest.d.ts.map +1 -0
  231. package/dist/build/generate-manifest.js +276 -0
  232. package/dist/build/generate-manifest.js.map +1 -0
  233. package/dist/build/generate-route-types.d.ts +115 -0
  234. package/dist/build/generate-route-types.d.ts.map +1 -0
  235. package/dist/build/generate-route-types.js +740 -0
  236. package/dist/build/generate-route-types.js.map +1 -0
  237. package/dist/build/index.d.ts +21 -0
  238. package/dist/build/index.d.ts.map +1 -0
  239. package/dist/build/index.js +21 -0
  240. package/dist/build/index.js.map +1 -0
  241. package/dist/build/route-trie.d.ts +71 -0
  242. package/dist/build/route-trie.d.ts.map +1 -0
  243. package/dist/build/route-trie.js +175 -0
  244. package/dist/build/route-trie.js.map +1 -0
  245. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  246. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  248. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  249. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  250. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.js +345 -0
  252. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  253. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  257. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  258. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.js +367 -0
  260. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  261. package/dist/cache/cache-scope.d.ts +102 -0
  262. package/dist/cache/cache-scope.d.ts.map +1 -0
  263. package/dist/cache/cache-scope.js +440 -0
  264. package/dist/cache/cache-scope.js.map +1 -0
  265. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  269. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  270. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.js +242 -0
  272. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  273. package/dist/cache/cf/index.d.ts +14 -0
  274. package/dist/cache/cf/index.d.ts.map +1 -0
  275. package/dist/cache/cf/index.js +17 -0
  276. package/dist/cache/cf/index.js.map +1 -0
  277. package/dist/cache/document-cache.d.ts +64 -0
  278. package/dist/cache/document-cache.d.ts.map +1 -0
  279. package/dist/cache/document-cache.js +228 -0
  280. package/dist/cache/document-cache.js.map +1 -0
  281. package/dist/cache/index.d.ts +19 -0
  282. package/dist/cache/index.d.ts.map +1 -0
  283. package/dist/cache/index.js +21 -0
  284. package/dist/cache/index.js.map +1 -0
  285. package/dist/cache/memory-segment-store.d.ts +110 -0
  286. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  287. package/dist/cache/memory-segment-store.js +117 -0
  288. package/dist/cache/memory-segment-store.js.map +1 -0
  289. package/dist/cache/memory-store.d.ts +41 -0
  290. package/dist/cache/memory-store.d.ts.map +1 -0
  291. package/dist/cache/memory-store.js +191 -0
  292. package/dist/cache/memory-store.js.map +1 -0
  293. package/dist/cache/types.d.ts +317 -0
  294. package/dist/cache/types.d.ts.map +1 -0
  295. package/dist/cache/types.js +12 -0
  296. package/dist/cache/types.js.map +1 -0
  297. package/dist/client.d.ts +248 -0
  298. package/dist/client.d.ts.map +1 -0
  299. package/dist/client.js +367 -0
  300. package/dist/client.js.map +1 -0
  301. package/dist/client.rsc.d.ts +26 -0
  302. package/dist/client.rsc.d.ts.map +1 -0
  303. package/dist/client.rsc.js +46 -0
  304. package/dist/client.rsc.js.map +1 -0
  305. package/dist/component-utils.d.ts +36 -0
  306. package/dist/component-utils.d.ts.map +1 -0
  307. package/dist/component-utils.js +61 -0
  308. package/dist/component-utils.js.map +1 -0
  309. package/dist/components/DefaultDocument.d.ts +13 -0
  310. package/dist/components/DefaultDocument.d.ts.map +1 -0
  311. package/dist/components/DefaultDocument.js +15 -0
  312. package/dist/components/DefaultDocument.js.map +1 -0
  313. package/dist/debug.d.ts +58 -0
  314. package/dist/debug.d.ts.map +1 -0
  315. package/dist/debug.js +157 -0
  316. package/dist/debug.js.map +1 -0
  317. package/dist/default-error-boundary.d.ts +11 -0
  318. package/dist/default-error-boundary.d.ts.map +1 -0
  319. package/dist/default-error-boundary.js +45 -0
  320. package/dist/default-error-boundary.js.map +1 -0
  321. package/dist/deps/browser.d.ts +2 -0
  322. package/dist/deps/browser.d.ts.map +1 -0
  323. package/dist/deps/browser.js +3 -0
  324. package/dist/deps/browser.js.map +1 -0
  325. package/dist/deps/html-stream-client.d.ts +2 -0
  326. package/dist/deps/html-stream-client.d.ts.map +1 -0
  327. package/dist/deps/html-stream-client.js +3 -0
  328. package/dist/deps/html-stream-client.js.map +1 -0
  329. package/dist/deps/html-stream-server.d.ts +2 -0
  330. package/dist/deps/html-stream-server.d.ts.map +1 -0
  331. package/dist/deps/html-stream-server.js +3 -0
  332. package/dist/deps/html-stream-server.js.map +1 -0
  333. package/dist/deps/rsc.d.ts +2 -0
  334. package/dist/deps/rsc.d.ts.map +1 -0
  335. package/dist/deps/rsc.js +4 -0
  336. package/dist/deps/rsc.js.map +1 -0
  337. package/dist/deps/ssr.d.ts +2 -0
  338. package/dist/deps/ssr.d.ts.map +1 -0
  339. package/dist/deps/ssr.js +3 -0
  340. package/dist/deps/ssr.js.map +1 -0
  341. package/dist/errors.d.ts +174 -0
  342. package/dist/errors.d.ts.map +1 -0
  343. package/dist/errors.js +241 -0
  344. package/dist/errors.js.map +1 -0
  345. package/dist/handle.d.ts +78 -0
  346. package/dist/handle.d.ts.map +1 -0
  347. package/dist/handle.js +82 -0
  348. package/dist/handle.js.map +1 -0
  349. package/dist/handles/MetaTags.d.ts +14 -0
  350. package/dist/handles/MetaTags.d.ts.map +1 -0
  351. package/dist/handles/MetaTags.js +136 -0
  352. package/dist/handles/MetaTags.js.map +1 -0
  353. package/dist/handles/index.d.ts +6 -0
  354. package/dist/handles/index.d.ts.map +1 -0
  355. package/dist/handles/index.js +6 -0
  356. package/dist/handles/index.js.map +1 -0
  357. package/dist/handles/meta.d.ts +39 -0
  358. package/dist/handles/meta.d.ts.map +1 -0
  359. package/dist/handles/meta.js +202 -0
  360. package/dist/handles/meta.js.map +1 -0
  361. package/dist/host/__tests__/errors.test.d.ts +2 -0
  362. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  363. package/dist/host/__tests__/errors.test.js +76 -0
  364. package/dist/host/__tests__/errors.test.js.map +1 -0
  365. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  369. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  370. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  372. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  373. package/dist/host/__tests__/router.test.d.ts +2 -0
  374. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  375. package/dist/host/__tests__/router.test.js +241 -0
  376. package/dist/host/__tests__/router.test.js.map +1 -0
  377. package/dist/host/__tests__/testing.test.d.ts +2 -0
  378. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  379. package/dist/host/__tests__/testing.test.js +64 -0
  380. package/dist/host/__tests__/testing.test.js.map +1 -0
  381. package/dist/host/__tests__/utils.test.d.ts +2 -0
  382. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  383. package/dist/host/__tests__/utils.test.js +29 -0
  384. package/dist/host/__tests__/utils.test.js.map +1 -0
  385. package/dist/host/cookie-handler.d.ts +34 -0
  386. package/dist/host/cookie-handler.d.ts.map +1 -0
  387. package/dist/host/cookie-handler.js +124 -0
  388. package/dist/host/cookie-handler.js.map +1 -0
  389. package/dist/host/errors.d.ts +56 -0
  390. package/dist/host/errors.d.ts.map +1 -0
  391. package/dist/host/errors.js +79 -0
  392. package/dist/host/errors.js.map +1 -0
  393. package/dist/host/index.d.ts +29 -0
  394. package/dist/host/index.d.ts.map +1 -0
  395. package/dist/host/index.js +32 -0
  396. package/dist/host/index.js.map +1 -0
  397. package/dist/host/pattern-matcher.d.ts +36 -0
  398. package/dist/host/pattern-matcher.d.ts.map +1 -0
  399. package/dist/host/pattern-matcher.js +172 -0
  400. package/dist/host/pattern-matcher.js.map +1 -0
  401. package/dist/host/router.d.ts +26 -0
  402. package/dist/host/router.d.ts.map +1 -0
  403. package/dist/host/router.js +218 -0
  404. package/dist/host/router.js.map +1 -0
  405. package/dist/host/testing.d.ts +36 -0
  406. package/dist/host/testing.d.ts.map +1 -0
  407. package/dist/host/testing.js +55 -0
  408. package/dist/host/testing.js.map +1 -0
  409. package/dist/host/types.d.ts +115 -0
  410. package/dist/host/types.d.ts.map +1 -0
  411. package/dist/host/types.js +7 -0
  412. package/dist/host/types.js.map +1 -0
  413. package/dist/host/utils.d.ts +21 -0
  414. package/dist/host/utils.d.ts.map +1 -0
  415. package/dist/host/utils.js +23 -0
  416. package/dist/host/utils.js.map +1 -0
  417. package/dist/href-client.d.ts +131 -0
  418. package/dist/href-client.d.ts.map +1 -0
  419. package/dist/href-client.js +64 -0
  420. package/dist/href-client.js.map +1 -0
  421. package/dist/href-context.d.ts +29 -0
  422. package/dist/href-context.d.ts.map +1 -0
  423. package/dist/href-context.js +21 -0
  424. package/dist/href-context.js.map +1 -0
  425. package/dist/index.d.ts +73 -0
  426. package/dist/index.d.ts.map +1 -0
  427. package/dist/index.js +91 -0
  428. package/dist/index.js.map +1 -0
  429. package/dist/index.rsc.d.ts +32 -0
  430. package/dist/index.rsc.d.ts.map +1 -0
  431. package/dist/index.rsc.js +40 -0
  432. package/dist/index.rsc.js.map +1 -0
  433. package/dist/internal-debug.d.ts +2 -0
  434. package/dist/internal-debug.d.ts.map +1 -0
  435. package/dist/internal-debug.js +5 -0
  436. package/dist/internal-debug.js.map +1 -0
  437. package/dist/loader.d.ts +14 -0
  438. package/dist/loader.d.ts.map +1 -0
  439. package/dist/loader.js +20 -0
  440. package/dist/loader.js.map +1 -0
  441. package/dist/loader.rsc.d.ts +19 -0
  442. package/dist/loader.rsc.d.ts.map +1 -0
  443. package/dist/loader.rsc.js +99 -0
  444. package/dist/loader.rsc.js.map +1 -0
  445. package/dist/network-error-thrower.d.ts +17 -0
  446. package/dist/network-error-thrower.d.ts.map +1 -0
  447. package/dist/network-error-thrower.js +14 -0
  448. package/dist/network-error-thrower.js.map +1 -0
  449. package/dist/outlet-context.d.ts +13 -0
  450. package/dist/outlet-context.d.ts.map +1 -0
  451. package/dist/outlet-context.js +3 -0
  452. package/dist/outlet-context.js.map +1 -0
  453. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  454. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  456. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  457. package/dist/prerender/param-hash.d.ts +16 -0
  458. package/dist/prerender/param-hash.d.ts.map +1 -0
  459. package/dist/prerender/param-hash.js +36 -0
  460. package/dist/prerender/param-hash.js.map +1 -0
  461. package/dist/prerender/store.d.ts +38 -0
  462. package/dist/prerender/store.d.ts.map +1 -0
  463. package/dist/prerender/store.js +61 -0
  464. package/dist/prerender/store.js.map +1 -0
  465. package/dist/prerender.d.ts +66 -0
  466. package/dist/prerender.d.ts.map +1 -0
  467. package/dist/prerender.js +57 -0
  468. package/dist/prerender.js.map +1 -0
  469. package/dist/reverse.d.ts +196 -0
  470. package/dist/reverse.d.ts.map +1 -0
  471. package/dist/reverse.js +78 -0
  472. package/dist/reverse.js.map +1 -0
  473. package/dist/root-error-boundary.d.ts +33 -0
  474. package/dist/root-error-boundary.d.ts.map +1 -0
  475. package/dist/root-error-boundary.js +165 -0
  476. package/dist/root-error-boundary.js.map +1 -0
  477. package/dist/route-content-wrapper.d.ts +46 -0
  478. package/dist/route-content-wrapper.d.ts.map +1 -0
  479. package/dist/route-content-wrapper.js +77 -0
  480. package/dist/route-content-wrapper.js.map +1 -0
  481. package/dist/route-definition.d.ts +421 -0
  482. package/dist/route-definition.d.ts.map +1 -0
  483. package/dist/route-definition.js +868 -0
  484. package/dist/route-definition.js.map +1 -0
  485. package/dist/route-map-builder.d.ts +155 -0
  486. package/dist/route-map-builder.d.ts.map +1 -0
  487. package/dist/route-map-builder.js +237 -0
  488. package/dist/route-map-builder.js.map +1 -0
  489. package/dist/route-types.d.ts +165 -0
  490. package/dist/route-types.d.ts.map +1 -0
  491. package/dist/route-types.js +7 -0
  492. package/dist/route-types.js.map +1 -0
  493. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  494. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.js +65 -0
  496. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  497. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  501. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  502. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  503. package/dist/router/__tests__/match-context.test.js +92 -0
  504. package/dist/router/__tests__/match-context.test.js.map +1 -0
  505. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  506. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  508. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  509. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  510. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  511. package/dist/router/__tests__/match-result.test.js +457 -0
  512. package/dist/router/__tests__/match-result.test.js.map +1 -0
  513. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  514. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  515. package/dist/router/__tests__/on-error.test.js +678 -0
  516. package/dist/router/__tests__/on-error.test.js.map +1 -0
  517. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  518. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  520. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  521. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  525. package/dist/router/error-handling.d.ts +77 -0
  526. package/dist/router/error-handling.d.ts.map +1 -0
  527. package/dist/router/error-handling.js +202 -0
  528. package/dist/router/error-handling.js.map +1 -0
  529. package/dist/router/handler-context.d.ts +20 -0
  530. package/dist/router/handler-context.d.ts.map +1 -0
  531. package/dist/router/handler-context.js +198 -0
  532. package/dist/router/handler-context.js.map +1 -0
  533. package/dist/router/intercept-resolution.d.ts +66 -0
  534. package/dist/router/intercept-resolution.d.ts.map +1 -0
  535. package/dist/router/intercept-resolution.js +246 -0
  536. package/dist/router/intercept-resolution.js.map +1 -0
  537. package/dist/router/loader-resolution.d.ts +64 -0
  538. package/dist/router/loader-resolution.d.ts.map +1 -0
  539. package/dist/router/loader-resolution.js +284 -0
  540. package/dist/router/loader-resolution.js.map +1 -0
  541. package/dist/router/logging.d.ts +15 -0
  542. package/dist/router/logging.d.ts.map +1 -0
  543. package/dist/router/logging.js +99 -0
  544. package/dist/router/logging.js.map +1 -0
  545. package/dist/router/manifest.d.ts +22 -0
  546. package/dist/router/manifest.d.ts.map +1 -0
  547. package/dist/router/manifest.js +181 -0
  548. package/dist/router/manifest.js.map +1 -0
  549. package/dist/router/match-api.d.ts +35 -0
  550. package/dist/router/match-api.d.ts.map +1 -0
  551. package/dist/router/match-api.js +406 -0
  552. package/dist/router/match-api.js.map +1 -0
  553. package/dist/router/match-context.d.ts +206 -0
  554. package/dist/router/match-context.d.ts.map +1 -0
  555. package/dist/router/match-context.js +17 -0
  556. package/dist/router/match-context.js.map +1 -0
  557. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  558. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.js +75 -0
  560. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  561. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  562. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.js +257 -0
  564. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  565. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  566. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  567. package/dist/router/match-middleware/cache-store.js +108 -0
  568. package/dist/router/match-middleware/cache-store.js.map +1 -0
  569. package/dist/router/match-middleware/index.d.ts +81 -0
  570. package/dist/router/match-middleware/index.d.ts.map +1 -0
  571. package/dist/router/match-middleware/index.js +80 -0
  572. package/dist/router/match-middleware/index.js.map +1 -0
  573. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  574. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  576. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  577. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  578. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.js +53 -0
  580. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  581. package/dist/router/match-pipelines.d.ts +147 -0
  582. package/dist/router/match-pipelines.d.ts.map +1 -0
  583. package/dist/router/match-pipelines.js +82 -0
  584. package/dist/router/match-pipelines.js.map +1 -0
  585. package/dist/router/match-result.d.ts +126 -0
  586. package/dist/router/match-result.d.ts.map +1 -0
  587. package/dist/router/match-result.js +93 -0
  588. package/dist/router/match-result.js.map +1 -0
  589. package/dist/router/metrics.d.ts +20 -0
  590. package/dist/router/metrics.d.ts.map +1 -0
  591. package/dist/router/metrics.js +47 -0
  592. package/dist/router/metrics.js.map +1 -0
  593. package/dist/router/middleware.d.ts +249 -0
  594. package/dist/router/middleware.d.ts.map +1 -0
  595. package/dist/router/middleware.js +434 -0
  596. package/dist/router/middleware.js.map +1 -0
  597. package/dist/router/middleware.test.d.ts +2 -0
  598. package/dist/router/middleware.test.d.ts.map +1 -0
  599. package/dist/router/middleware.test.js +816 -0
  600. package/dist/router/middleware.test.js.map +1 -0
  601. package/dist/router/pattern-matching.d.ts +149 -0
  602. package/dist/router/pattern-matching.d.ts.map +1 -0
  603. package/dist/router/pattern-matching.js +349 -0
  604. package/dist/router/pattern-matching.js.map +1 -0
  605. package/dist/router/revalidation.d.ts +44 -0
  606. package/dist/router/revalidation.d.ts.map +1 -0
  607. package/dist/router/revalidation.js +147 -0
  608. package/dist/router/revalidation.js.map +1 -0
  609. package/dist/router/router-context.d.ts +135 -0
  610. package/dist/router/router-context.d.ts.map +1 -0
  611. package/dist/router/router-context.js +36 -0
  612. package/dist/router/router-context.js.map +1 -0
  613. package/dist/router/segment-resolution.d.ts +127 -0
  614. package/dist/router/segment-resolution.d.ts.map +1 -0
  615. package/dist/router/segment-resolution.js +919 -0
  616. package/dist/router/segment-resolution.js.map +1 -0
  617. package/dist/router/trie-matching.d.ts +40 -0
  618. package/dist/router/trie-matching.d.ts.map +1 -0
  619. package/dist/router/trie-matching.js +127 -0
  620. package/dist/router/trie-matching.js.map +1 -0
  621. package/dist/router/types.d.ts +136 -0
  622. package/dist/router/types.d.ts.map +1 -0
  623. package/dist/router/types.js +7 -0
  624. package/dist/router/types.js.map +1 -0
  625. package/dist/router.d.ts +753 -0
  626. package/dist/router.d.ts.map +1 -0
  627. package/dist/router.gen.d.ts +6 -0
  628. package/dist/router.gen.d.ts.map +1 -0
  629. package/dist/router.gen.js +6 -0
  630. package/dist/router.gen.js.map +1 -0
  631. package/dist/router.js +1304 -0
  632. package/dist/router.js.map +1 -0
  633. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  634. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.js +140 -0
  636. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  637. package/dist/rsc/handler.d.ts +45 -0
  638. package/dist/rsc/handler.d.ts.map +1 -0
  639. package/dist/rsc/handler.js +1172 -0
  640. package/dist/rsc/handler.js.map +1 -0
  641. package/dist/rsc/helpers.d.ts +16 -0
  642. package/dist/rsc/helpers.d.ts.map +1 -0
  643. package/dist/rsc/helpers.js +55 -0
  644. package/dist/rsc/helpers.js.map +1 -0
  645. package/dist/rsc/index.d.ts +22 -0
  646. package/dist/rsc/index.d.ts.map +1 -0
  647. package/dist/rsc/index.js +23 -0
  648. package/dist/rsc/index.js.map +1 -0
  649. package/dist/rsc/nonce.d.ts +9 -0
  650. package/dist/rsc/nonce.d.ts.map +1 -0
  651. package/dist/rsc/nonce.js +18 -0
  652. package/dist/rsc/nonce.js.map +1 -0
  653. package/dist/rsc/types.d.ts +206 -0
  654. package/dist/rsc/types.d.ts.map +1 -0
  655. package/dist/rsc/types.js +8 -0
  656. package/dist/rsc/types.js.map +1 -0
  657. package/dist/search-params.d.ts +103 -0
  658. package/dist/search-params.d.ts.map +1 -0
  659. package/dist/search-params.js +74 -0
  660. package/dist/search-params.js.map +1 -0
  661. package/dist/segment-system.d.ts +75 -0
  662. package/dist/segment-system.d.ts.map +1 -0
  663. package/dist/segment-system.js +336 -0
  664. package/dist/segment-system.js.map +1 -0
  665. package/dist/server/context.d.ts +245 -0
  666. package/dist/server/context.d.ts.map +1 -0
  667. package/dist/server/context.js +197 -0
  668. package/dist/server/context.js.map +1 -0
  669. package/dist/server/fetchable-loader-store.d.ts +18 -0
  670. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  671. package/dist/server/fetchable-loader-store.js +18 -0
  672. package/dist/server/fetchable-loader-store.js.map +1 -0
  673. package/dist/server/handle-store.d.ts +85 -0
  674. package/dist/server/handle-store.d.ts.map +1 -0
  675. package/dist/server/handle-store.js +142 -0
  676. package/dist/server/handle-store.js.map +1 -0
  677. package/dist/server/loader-registry.d.ts +55 -0
  678. package/dist/server/loader-registry.d.ts.map +1 -0
  679. package/dist/server/loader-registry.js +132 -0
  680. package/dist/server/loader-registry.js.map +1 -0
  681. package/dist/server/request-context.d.ts +226 -0
  682. package/dist/server/request-context.d.ts.map +1 -0
  683. package/dist/server/request-context.js +290 -0
  684. package/dist/server/request-context.js.map +1 -0
  685. package/dist/server/root-layout.d.ts +4 -0
  686. package/dist/server/root-layout.d.ts.map +1 -0
  687. package/dist/server/root-layout.js +5 -0
  688. package/dist/server/root-layout.js.map +1 -0
  689. package/dist/server.d.ts +15 -0
  690. package/dist/server.d.ts.map +1 -0
  691. package/dist/server.js +20 -0
  692. package/dist/server.js.map +1 -0
  693. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  697. package/dist/ssr/index.d.ts +98 -0
  698. package/dist/ssr/index.d.ts.map +1 -0
  699. package/dist/ssr/index.js +158 -0
  700. package/dist/ssr/index.js.map +1 -0
  701. package/dist/static-handler.d.ts +50 -0
  702. package/dist/static-handler.d.ts.map +1 -0
  703. package/dist/static-handler.gen.d.ts +5 -0
  704. package/dist/static-handler.gen.d.ts.map +1 -0
  705. package/dist/static-handler.gen.js +5 -0
  706. package/dist/static-handler.gen.js.map +1 -0
  707. package/dist/static-handler.js +29 -0
  708. package/dist/static-handler.js.map +1 -0
  709. package/dist/theme/ThemeProvider.d.ts +20 -0
  710. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  711. package/dist/theme/ThemeProvider.js +240 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -0
  713. package/dist/theme/ThemeScript.d.ts +48 -0
  714. package/dist/theme/ThemeScript.d.ts.map +1 -0
  715. package/dist/theme/ThemeScript.js +13 -0
  716. package/dist/theme/ThemeScript.js.map +1 -0
  717. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  718. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  719. package/dist/theme/__tests__/theme.test.js +103 -0
  720. package/dist/theme/__tests__/theme.test.js.map +1 -0
  721. package/dist/theme/constants.d.ts +29 -0
  722. package/dist/theme/constants.d.ts.map +1 -0
  723. package/dist/theme/constants.js +48 -0
  724. package/dist/theme/constants.js.map +1 -0
  725. package/dist/theme/index.d.ts +31 -0
  726. package/dist/theme/index.d.ts.map +1 -0
  727. package/dist/theme/index.js +36 -0
  728. package/dist/theme/index.js.map +1 -0
  729. package/dist/theme/theme-context.d.ts +40 -0
  730. package/dist/theme/theme-context.d.ts.map +1 -0
  731. package/dist/theme/theme-context.js +60 -0
  732. package/dist/theme/theme-context.js.map +1 -0
  733. package/dist/theme/theme-script.d.ts +27 -0
  734. package/dist/theme/theme-script.d.ts.map +1 -0
  735. package/dist/theme/theme-script.js +147 -0
  736. package/dist/theme/theme-script.js.map +1 -0
  737. package/dist/theme/types.d.ts +163 -0
  738. package/dist/theme/types.d.ts.map +1 -0
  739. package/dist/theme/types.js +11 -0
  740. package/dist/theme/types.js.map +1 -0
  741. package/dist/theme/use-theme.d.ts +12 -0
  742. package/dist/theme/use-theme.d.ts.map +1 -0
  743. package/dist/theme/use-theme.js +40 -0
  744. package/dist/theme/use-theme.js.map +1 -0
  745. package/dist/types/browser/event-controller.d.ts +4 -0
  746. package/dist/types/browser/link-interceptor.d.ts +17 -7
  747. package/dist/types/browser/navigation-bridge.d.ts +13 -1
  748. package/dist/types/browser/navigation-client.d.ts +1 -1
  749. package/dist/types/browser/notify-listeners.d.ts +2 -0
  750. package/dist/types/browser/prefetch/cache.d.ts +10 -1
  751. package/dist/types/browser/prefetch/default-strategy.d.ts +12 -3
  752. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  753. package/dist/types/browser/prefetch/loader.d.ts +3 -1
  754. package/dist/types/browser/prefetch/observer.d.ts +3 -6
  755. package/dist/types/browser/rango-state.d.ts +4 -0
  756. package/dist/types/browser/react/Link.d.ts +4 -9
  757. package/dist/types/browser/react/context.d.ts +3 -0
  758. package/dist/types/browser/rsc-router.d.ts +7 -2
  759. package/dist/types/browser/types.d.ts +1 -0
  760. package/dist/types/cache/cache-key-utils.d.ts +11 -3
  761. package/dist/types/cache/cache-scope.d.ts +82 -3
  762. package/dist/types/cache/cf/cf-cache-store.d.ts +21 -10
  763. package/dist/types/cache/cf/cf-cache-types.d.ts +4 -2
  764. package/dist/types/cache/index.d.ts +3 -1
  765. package/dist/types/cache/search-params-filter.d.ts +64 -0
  766. package/dist/types/cache/shell-snapshot.d.ts +4 -4
  767. package/dist/types/cache/types.d.ts +30 -2
  768. package/dist/types/cache/vercel/vercel-cache-store.d.ts +2 -2
  769. package/dist/types/index.d.ts +1 -0
  770. package/dist/types/index.rsc.d.ts +1 -0
  771. package/dist/types/router/match-middleware/cache-lookup.d.ts +13 -0
  772. package/dist/types/router/navigation-snapshot.d.ts +29 -0
  773. package/dist/types/router/router-options.d.ts +27 -3
  774. package/dist/types/rsc/shell-build-manifest.d.ts +7 -1
  775. package/dist/types/rsc/shell-capture.d.ts +10 -8
  776. package/dist/types/rsc/shell-serve.d.ts +7 -1
  777. package/dist/types/rsc/types.d.ts +17 -0
  778. package/dist/types/segment-fragments.d.ts +27 -4
  779. package/dist/types/server/request-context.d.ts +78 -12
  780. package/dist/types/testing/render-route.d.ts +10 -1
  781. package/dist/types/testing/shell-status.d.ts +6 -3
  782. package/dist/types/vite/plugin-types.d.ts +1 -1
  783. package/dist/types.d.ts +1479 -0
  784. package/dist/types.d.ts.map +1 -0
  785. package/dist/types.js +10 -0
  786. package/dist/types.js.map +1 -0
  787. package/dist/urls.d.ts +441 -0
  788. package/dist/urls.d.ts.map +1 -0
  789. package/dist/urls.gen.d.ts +8 -0
  790. package/dist/urls.gen.d.ts.map +1 -0
  791. package/dist/urls.gen.js +8 -0
  792. package/dist/urls.gen.js.map +1 -0
  793. package/dist/urls.js +443 -0
  794. package/dist/urls.js.map +1 -0
  795. package/dist/use-loader.d.ts +127 -0
  796. package/dist/use-loader.d.ts.map +1 -0
  797. package/dist/use-loader.js +237 -0
  798. package/dist/use-loader.js.map +1 -0
  799. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  800. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  801. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  802. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  803. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  804. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  805. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  806. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  807. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  808. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  809. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  810. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  811. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  812. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  813. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  814. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  815. package/dist/vite/ast-handler-extract.d.ts +49 -0
  816. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  817. package/dist/vite/ast-handler-extract.js +249 -0
  818. package/dist/vite/ast-handler-extract.js.map +1 -0
  819. package/dist/vite/expose-action-id.d.ts +19 -0
  820. package/dist/vite/expose-action-id.d.ts.map +1 -0
  821. package/dist/vite/expose-action-id.js +250 -0
  822. package/dist/vite/expose-action-id.js.map +1 -0
  823. package/dist/vite/expose-id-utils.d.ts +69 -0
  824. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  825. package/dist/vite/expose-id-utils.js +289 -0
  826. package/dist/vite/expose-id-utils.js.map +1 -0
  827. package/dist/vite/expose-internal-ids.d.ts +22 -0
  828. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  829. package/dist/vite/expose-internal-ids.js +886 -0
  830. package/dist/vite/expose-internal-ids.js.map +1 -0
  831. package/dist/vite/index.d.ts +149 -0
  832. package/dist/vite/index.d.ts.map +1 -0
  833. package/dist/vite/index.js +5 -5
  834. package/dist/vite/index.js.bak +5448 -0
  835. package/dist/vite/index.js.map +1 -0
  836. package/dist/vite/index.named-routes.gen.ts +103 -0
  837. package/dist/vite/package-resolution.d.ts +43 -0
  838. package/dist/vite/package-resolution.d.ts.map +1 -0
  839. package/dist/vite/package-resolution.js +112 -0
  840. package/dist/vite/package-resolution.js.map +1 -0
  841. package/dist/vite/virtual-entries.d.ts +25 -0
  842. package/dist/vite/virtual-entries.d.ts.map +1 -0
  843. package/dist/vite/virtual-entries.js +110 -0
  844. package/dist/vite/virtual-entries.js.map +1 -0
  845. package/package.json +23 -22
  846. package/skills/caching/SKILL.md +39 -0
  847. package/skills/cloudflare/SKILL.md +4 -2
  848. package/skills/comparison/references/framework-comparison.md +7 -1
  849. package/skills/links/SKILL.md +24 -0
  850. package/skills/ppr/SKILL.md +77 -12
  851. package/skills/router-setup/SKILL.md +7 -2
  852. package/skills/testing/client-components.md +15 -14
  853. package/skills/vercel/SKILL.md +1 -1
  854. package/src/browser/event-controller.ts +110 -11
  855. package/src/browser/link-interceptor.ts +469 -20
  856. package/src/browser/navigation-bridge.ts +71 -2
  857. package/src/browser/navigation-client.ts +77 -27
  858. package/src/browser/navigation-store.ts +24 -1
  859. package/src/browser/notify-listeners.ts +22 -0
  860. package/src/browser/prefetch/cache.ts +22 -2
  861. package/src/browser/prefetch/default-strategy.ts +43 -3
  862. package/src/browser/prefetch/fetch.ts +5 -0
  863. package/src/browser/prefetch/invalidation.ts +30 -0
  864. package/src/browser/prefetch/loader.ts +19 -12
  865. package/src/browser/prefetch/observer.ts +50 -22
  866. package/src/browser/rango-state.ts +21 -0
  867. package/src/browser/react/Link.tsx +97 -88
  868. package/src/browser/react/NavigationProvider.tsx +1 -0
  869. package/src/browser/react/context.ts +4 -0
  870. package/src/browser/rsc-router.tsx +34 -15
  871. package/src/browser/types.ts +1 -0
  872. package/src/cache/cache-key-utils.ts +18 -4
  873. package/src/cache/cache-runtime.ts +7 -2
  874. package/src/cache/cache-scope.ts +157 -24
  875. package/src/cache/cf/cf-cache-store.ts +472 -104
  876. package/src/cache/cf/cf-cache-types.ts +4 -2
  877. package/src/cache/document-cache.ts +31 -3
  878. package/src/cache/index.ts +7 -0
  879. package/src/cache/search-params-filter.ts +118 -0
  880. package/src/cache/shell-snapshot.ts +8 -4
  881. package/src/cache/types.ts +33 -2
  882. package/src/cache/vercel/vercel-cache-store.ts +17 -3
  883. package/src/index.rsc.ts +4 -0
  884. package/src/index.ts +6 -0
  885. package/src/router/match-middleware/cache-lookup.ts +146 -33
  886. package/src/router/match-middleware/cache-store.ts +70 -0
  887. package/src/router/navigation-snapshot.ts +46 -6
  888. package/src/router/router-options.ts +31 -4
  889. package/src/rsc/handler.ts +9 -0
  890. package/src/rsc/response-cache-serve.ts +1 -1
  891. package/src/rsc/rsc-rendering.ts +311 -31
  892. package/src/rsc/shell-build-manifest.ts +8 -1
  893. package/src/rsc/shell-capture.ts +24 -19
  894. package/src/rsc/shell-serve.ts +8 -2
  895. package/src/rsc/types.ts +17 -0
  896. package/src/segment-fragments.ts +45 -4
  897. package/src/server/request-context.ts +83 -11
  898. package/src/testing/dispatch.ts +21 -3
  899. package/src/testing/render-route.tsx +86 -17
  900. package/src/testing/shell-status.ts +20 -3
  901. package/src/vite/plugin-types.ts +1 -1
  902. package/src/vite/plugins/vercel-output.ts +2 -2
  903. package/dist/types.backup/__internal.d.ts +0 -127
  904. package/dist/types.backup/bin/rango.d.ts +0 -1
  905. package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
  906. package/dist/types.backup/browser/action-fence.d.ts +0 -33
  907. package/dist/types.backup/browser/app-shell.d.ts +0 -34
  908. package/dist/types.backup/browser/app-version.d.ts +0 -6
  909. package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
  910. package/dist/types.backup/browser/cookie-name.d.ts +0 -66
  911. package/dist/types.backup/browser/event-controller.d.ts +0 -221
  912. package/dist/types.backup/browser/history-state.d.ts +0 -26
  913. package/dist/types.backup/browser/index.d.ts +0 -1
  914. package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
  915. package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
  916. package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
  917. package/dist/types.backup/browser/logging.d.ts +0 -33
  918. package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
  919. package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
  920. package/dist/types.backup/browser/navigation-client.d.ts +0 -17
  921. package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
  922. package/dist/types.backup/browser/navigation-store.d.ts +0 -95
  923. package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
  924. package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
  925. package/dist/types.backup/browser/partial-update.d.ts +0 -61
  926. package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
  927. package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
  928. package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
  929. package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
  930. package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
  931. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
  932. package/dist/types.backup/browser/rango-state.d.ts +0 -52
  933. package/dist/types.backup/browser/react/Link.d.ts +0 -140
  934. package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
  935. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
  936. package/dist/types.backup/browser/react/context.d.ts +0 -54
  937. package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
  938. package/dist/types.backup/browser/react/index.d.ts +0 -1
  939. package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
  940. package/dist/types.backup/browser/react/location-state.d.ts +0 -29
  941. package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
  942. package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
  943. package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
  944. package/dist/types.backup/browser/react/use-action.d.ts +0 -61
  945. package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
  946. package/dist/types.backup/browser/react/use-href.d.ts +0 -32
  947. package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
  948. package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
  949. package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
  950. package/dist/types.backup/browser/react/use-params.d.ts +0 -21
  951. package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
  952. package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
  953. package/dist/types.backup/browser/react/use-router.d.ts +0 -23
  954. package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
  955. package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
  956. package/dist/types.backup/browser/response-adapter.d.ts +0 -58
  957. package/dist/types.backup/browser/rsc-router.d.ts +0 -141
  958. package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
  959. package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
  960. package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
  961. package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
  962. package/dist/types.backup/browser/types.d.ts +0 -530
  963. package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
  964. package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
  965. package/dist/types.backup/build/generate-manifest.d.ts +0 -100
  966. package/dist/types.backup/build/generate-route-types.d.ts +0 -8
  967. package/dist/types.backup/build/index.d.ts +0 -21
  968. package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
  969. package/dist/types.backup/build/route-trie.d.ts +0 -89
  970. package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
  971. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
  972. package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
  973. package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
  974. package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
  975. package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
  976. package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
  977. package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
  978. package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
  979. package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
  980. package/dist/types.backup/cache/background-task.d.ts +0 -21
  981. package/dist/types.backup/cache/cache-error.d.ts +0 -71
  982. package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
  983. package/dist/types.backup/cache/cache-policy.d.ts +0 -59
  984. package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
  985. package/dist/types.backup/cache/cache-scope.d.ts +0 -134
  986. package/dist/types.backup/cache/cache-tag.d.ts +0 -79
  987. package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
  988. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
  989. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
  990. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
  991. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
  992. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
  993. package/dist/types.backup/cache/cf/index.d.ts +0 -3
  994. package/dist/types.backup/cache/document-cache.d.ts +0 -69
  995. package/dist/types.backup/cache/handle-capture.d.ts +0 -23
  996. package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
  997. package/dist/types.backup/cache/index.d.ts +0 -7
  998. package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
  999. package/dist/types.backup/cache/profile-registry.d.ts +0 -40
  1000. package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
  1001. package/dist/types.backup/cache/segment-codec.d.ts +0 -78
  1002. package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
  1003. package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
  1004. package/dist/types.backup/cache/taint.d.ts +0 -71
  1005. package/dist/types.backup/cache/types.d.ts +0 -407
  1006. package/dist/types.backup/cache/vercel/index.d.ts +0 -1
  1007. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
  1008. package/dist/types.backup/client.d.ts +0 -184
  1009. package/dist/types.backup/client.rsc.d.ts +0 -39
  1010. package/dist/types.backup/cloudflare/index.d.ts +0 -7
  1011. package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
  1012. package/dist/types.backup/component-utils.d.ts +0 -46
  1013. package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
  1014. package/dist/types.backup/context-var.d.ts +0 -84
  1015. package/dist/types.backup/debug.d.ts +0 -57
  1016. package/dist/types.backup/decode-loader-results.d.ts +0 -5
  1017. package/dist/types.backup/default-error-boundary.d.ts +0 -10
  1018. package/dist/types.backup/defer.d.ts +0 -89
  1019. package/dist/types.backup/deps/browser.d.ts +0 -1
  1020. package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
  1021. package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
  1022. package/dist/types.backup/deps/rsc.d.ts +0 -1
  1023. package/dist/types.backup/deps/ssr.d.ts +0 -1
  1024. package/dist/types.backup/encode-kv.d.ts +0 -35
  1025. package/dist/types.backup/errors.d.ts +0 -226
  1026. package/dist/types.backup/escape-script.d.ts +0 -44
  1027. package/dist/types.backup/handle.d.ts +0 -93
  1028. package/dist/types.backup/handles/MetaTags.d.ts +0 -17
  1029. package/dist/types.backup/handles/Scripts.d.ts +0 -38
  1030. package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
  1031. package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
  1032. package/dist/types.backup/handles/is-thenable.d.ts +0 -12
  1033. package/dist/types.backup/handles/meta.d.ts +0 -43
  1034. package/dist/types.backup/handles/script.d.ts +0 -139
  1035. package/dist/types.backup/host/cookie-handler.d.ts +0 -8
  1036. package/dist/types.backup/host/errors.d.ts +0 -40
  1037. package/dist/types.backup/host/index.d.ts +0 -33
  1038. package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
  1039. package/dist/types.backup/host/router.d.ts +0 -12
  1040. package/dist/types.backup/host/testing.d.ts +0 -41
  1041. package/dist/types.backup/host/types.d.ts +0 -148
  1042. package/dist/types.backup/host/utils.d.ts +0 -20
  1043. package/dist/types.backup/href-client.d.ts +0 -214
  1044. package/dist/types.backup/index.d.ts +0 -112
  1045. package/dist/types.backup/index.rsc.d.ts +0 -51
  1046. package/dist/types.backup/internal-debug.d.ts +0 -1
  1047. package/dist/types.backup/loader-store.d.ts +0 -193
  1048. package/dist/types.backup/loader.d.ts +0 -18
  1049. package/dist/types.backup/loader.rsc.d.ts +0 -18
  1050. package/dist/types.backup/missing-id-error.d.ts +0 -1
  1051. package/dist/types.backup/outlet-context.d.ts +0 -12
  1052. package/dist/types.backup/outlet-provider.d.ts +0 -12
  1053. package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
  1054. package/dist/types.backup/prerender/param-hash.d.ts +0 -6
  1055. package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
  1056. package/dist/types.backup/prerender/store.d.ts +0 -62
  1057. package/dist/types.backup/prerender.d.ts +0 -292
  1058. package/dist/types.backup/redirect-origin.d.ts +0 -55
  1059. package/dist/types.backup/regex-escape.d.ts +0 -6
  1060. package/dist/types.backup/render-error-thrower.d.ts +0 -13
  1061. package/dist/types.backup/response-utils.d.ts +0 -35
  1062. package/dist/types.backup/reverse.d.ts +0 -206
  1063. package/dist/types.backup/root-error-boundary.d.ts +0 -32
  1064. package/dist/types.backup/route-content-wrapper.d.ts +0 -40
  1065. package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
  1066. package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
  1067. package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
  1068. package/dist/types.backup/route-definition/index.d.ts +0 -7
  1069. package/dist/types.backup/route-definition/redirect.d.ts +0 -48
  1070. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
  1071. package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
  1072. package/dist/types.backup/route-definition.d.ts +0 -1
  1073. package/dist/types.backup/route-map-builder.d.ts +0 -127
  1074. package/dist/types.backup/route-name.d.ts +0 -27
  1075. package/dist/types.backup/route-types.d.ts +0 -172
  1076. package/dist/types.backup/router/basename.d.ts +0 -10
  1077. package/dist/types.backup/router/content-negotiation.d.ts +0 -91
  1078. package/dist/types.backup/router/debug-manifest.d.ts +0 -7
  1079. package/dist/types.backup/router/error-handling.d.ts +0 -76
  1080. package/dist/types.backup/router/find-match.d.ts +0 -19
  1081. package/dist/types.backup/router/handler-context.d.ts +0 -41
  1082. package/dist/types.backup/router/instrument.d.ts +0 -161
  1083. package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
  1084. package/dist/types.backup/router/lazy-includes.d.ts +0 -26
  1085. package/dist/types.backup/router/loader-resolution.d.ts +0 -63
  1086. package/dist/types.backup/router/logging.d.ts +0 -41
  1087. package/dist/types.backup/router/manifest.d.ts +0 -8
  1088. package/dist/types.backup/router/match-api.d.ts +0 -19
  1089. package/dist/types.backup/router/match-context.d.ts +0 -184
  1090. package/dist/types.backup/router/match-handlers.d.ts +0 -49
  1091. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
  1092. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
  1093. package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
  1094. package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
  1095. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
  1096. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
  1097. package/dist/types.backup/router/match-pipelines.d.ts +0 -103
  1098. package/dist/types.backup/router/match-result.d.ts +0 -114
  1099. package/dist/types.backup/router/metrics.d.ts +0 -6
  1100. package/dist/types.backup/router/middleware-types.d.ts +0 -74
  1101. package/dist/types.backup/router/middleware.d.ts +0 -116
  1102. package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
  1103. package/dist/types.backup/router/params-util.d.ts +0 -8
  1104. package/dist/types.backup/router/parse-pattern.d.ts +0 -38
  1105. package/dist/types.backup/router/pattern-matching.d.ts +0 -169
  1106. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
  1107. package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
  1108. package/dist/types.backup/router/prerender-match.d.ts +0 -50
  1109. package/dist/types.backup/router/preview-match.d.ts +0 -22
  1110. package/dist/types.backup/router/request-classification.d.ts +0 -104
  1111. package/dist/types.backup/router/revalidation.d.ts +0 -57
  1112. package/dist/types.backup/router/route-snapshot.d.ts +0 -112
  1113. package/dist/types.backup/router/router-context.d.ts +0 -137
  1114. package/dist/types.backup/router/router-interfaces.d.ts +0 -432
  1115. package/dist/types.backup/router/router-options.d.ts +0 -738
  1116. package/dist/types.backup/router/router-registry.d.ts +0 -15
  1117. package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
  1118. package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
  1119. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
  1120. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
  1121. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
  1122. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
  1123. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
  1124. package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
  1125. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
  1126. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
  1127. package/dist/types.backup/router/segment-resolution.d.ts +0 -3
  1128. package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
  1129. package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
  1130. package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
  1131. package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
  1132. package/dist/types.backup/router/telemetry.d.ts +0 -215
  1133. package/dist/types.backup/router/timeout.d.ts +0 -68
  1134. package/dist/types.backup/router/tracing.d.ts +0 -125
  1135. package/dist/types.backup/router/trie-matching.d.ts +0 -32
  1136. package/dist/types.backup/router/types.d.ts +0 -98
  1137. package/dist/types.backup/router/url-params.d.ts +0 -26
  1138. package/dist/types.backup/router.d.ts +0 -7
  1139. package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
  1140. package/dist/types.backup/rsc/full-payload.d.ts +0 -22
  1141. package/dist/types.backup/rsc/handler-context.d.ts +0 -31
  1142. package/dist/types.backup/rsc/handler.d.ts +0 -9
  1143. package/dist/types.backup/rsc/helpers.d.ts +0 -213
  1144. package/dist/types.backup/rsc/index.d.ts +0 -17
  1145. package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
  1146. package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
  1147. package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
  1148. package/dist/types.backup/rsc/nonce.d.ts +0 -28
  1149. package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
  1150. package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
  1151. package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
  1152. package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
  1153. package/dist/types.backup/rsc/response-error.d.ts +0 -19
  1154. package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
  1155. package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
  1156. package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
  1157. package/dist/types.backup/rsc/server-action.d.ts +0 -68
  1158. package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
  1159. package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
  1160. package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
  1161. package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
  1162. package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
  1163. package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
  1164. package/dist/types.backup/rsc/types.d.ts +0 -290
  1165. package/dist/types.backup/runtime-env.d.ts +0 -1
  1166. package/dist/types.backup/search-params.d.ts +0 -125
  1167. package/dist/types.backup/segment-content-promise.d.ts +0 -13
  1168. package/dist/types.backup/segment-fragments.d.ts +0 -56
  1169. package/dist/types.backup/segment-loader-promise.d.ts +0 -22
  1170. package/dist/types.backup/segment-system.d.ts +0 -84
  1171. package/dist/types.backup/serialize.d.ts +0 -164
  1172. package/dist/types.backup/server/context.d.ts +0 -494
  1173. package/dist/types.backup/server/cookie-parse.d.ts +0 -10
  1174. package/dist/types.backup/server/cookie-store.d.ts +0 -107
  1175. package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
  1176. package/dist/types.backup/server/handle-store.d.ts +0 -100
  1177. package/dist/types.backup/server/loader-registry.d.ts +0 -32
  1178. package/dist/types.backup/server/request-context.d.ts +0 -596
  1179. package/dist/types.backup/server/root-layout.d.ts +0 -3
  1180. package/dist/types.backup/server.d.ts +0 -15
  1181. package/dist/types.backup/ssr/index.d.ts +0 -233
  1182. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
  1183. package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
  1184. package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
  1185. package/dist/types.backup/static-handler.d.ts +0 -57
  1186. package/dist/types.backup/testing/cache-status.d.ts +0 -63
  1187. package/dist/types.backup/testing/collect-handle.d.ts +0 -20
  1188. package/dist/types.backup/testing/dispatch.d.ts +0 -123
  1189. package/dist/types.backup/testing/dom.entry.d.ts +0 -15
  1190. package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
  1191. package/dist/types.backup/testing/e2e/index.d.ts +0 -30
  1192. package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
  1193. package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
  1194. package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
  1195. package/dist/types.backup/testing/e2e/server.d.ts +0 -35
  1196. package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
  1197. package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
  1198. package/dist/types.backup/testing/flight-tree.d.ts +0 -192
  1199. package/dist/types.backup/testing/flight.d.ts +0 -115
  1200. package/dist/types.backup/testing/flight.entry.d.ts +0 -27
  1201. package/dist/types.backup/testing/generated-routes.d.ts +0 -66
  1202. package/dist/types.backup/testing/index.d.ts +0 -52
  1203. package/dist/types.backup/testing/internal/context.d.ts +0 -225
  1204. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
  1205. package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
  1206. package/dist/types.backup/testing/render-handler.d.ts +0 -160
  1207. package/dist/types.backup/testing/render-route.d.ts +0 -246
  1208. package/dist/types.backup/testing/run-loader.d.ts +0 -186
  1209. package/dist/types.backup/testing/run-middleware.d.ts +0 -132
  1210. package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
  1211. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
  1212. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
  1213. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
  1214. package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
  1215. package/dist/types.backup/testing/vitest.d.ts +0 -205
  1216. package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
  1217. package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
  1218. package/dist/types.backup/theme/constants.d.ts +0 -39
  1219. package/dist/types.backup/theme/index.d.ts +0 -29
  1220. package/dist/types.backup/theme/theme-context.d.ts +0 -21
  1221. package/dist/types.backup/theme/theme-script.d.ts +0 -26
  1222. package/dist/types.backup/theme/types.d.ts +0 -162
  1223. package/dist/types.backup/theme/use-theme.d.ts +0 -8
  1224. package/dist/types.backup/types/boundaries.d.ts +0 -93
  1225. package/dist/types.backup/types/cache-types.d.ts +0 -191
  1226. package/dist/types.backup/types/error-types.d.ts +0 -114
  1227. package/dist/types.backup/types/global-namespace.d.ts +0 -90
  1228. package/dist/types.backup/types/handler-context.d.ts +0 -658
  1229. package/dist/types.backup/types/index.d.ts +0 -11
  1230. package/dist/types.backup/types/loader-types.d.ts +0 -182
  1231. package/dist/types.backup/types/request-scope.d.ts +0 -93
  1232. package/dist/types.backup/types/route-config.d.ts +0 -105
  1233. package/dist/types.backup/types/route-entry.d.ts +0 -95
  1234. package/dist/types.backup/types/segments.d.ts +0 -234
  1235. package/dist/types.backup/types.d.ts +0 -1
  1236. package/dist/types.backup/urls/include-helper.d.ts +0 -17
  1237. package/dist/types.backup/urls/include-provider.d.ts +0 -27
  1238. package/dist/types.backup/urls/index.d.ts +0 -6
  1239. package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
  1240. package/dist/types.backup/urls/path-helper.d.ts +0 -12
  1241. package/dist/types.backup/urls/pattern-types.d.ts +0 -166
  1242. package/dist/types.backup/urls/response-types.d.ts +0 -67
  1243. package/dist/types.backup/urls/type-extraction.d.ts +0 -157
  1244. package/dist/types.backup/urls/urls-function.d.ts +0 -24
  1245. package/dist/types.backup/urls.d.ts +0 -1
  1246. package/dist/types.backup/use-loader.d.ts +0 -150
  1247. package/dist/types.backup/vercel/index.d.ts +0 -10
  1248. package/dist/types.backup/vercel/tracing.d.ts +0 -70
  1249. package/dist/types.backup/vite/debug.d.ts +0 -80
  1250. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
  1251. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
  1252. package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
  1253. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
  1254. package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
  1255. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
  1256. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
  1257. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
  1258. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
  1259. package/dist/types.backup/vite/discovery/state.d.ts +0 -162
  1260. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
  1261. package/dist/types.backup/vite/index.d.ts +0 -11
  1262. package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
  1263. package/dist/types.backup/vite/plugin-types.d.ts +0 -298
  1264. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
  1265. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
  1266. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
  1267. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
  1268. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
  1269. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
  1270. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
  1271. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
  1272. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
  1273. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
  1274. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
  1275. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
  1276. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
  1277. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
  1278. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
  1279. package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
  1280. package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
  1281. package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
  1282. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
  1283. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
  1284. package/dist/types.backup/vite/rango.d.ts +0 -29
  1285. package/dist/types.backup/vite/router-discovery.d.ts +0 -23
  1286. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
  1287. package/dist/types.backup/vite/utils/banner.d.ts +0 -2
  1288. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
  1289. package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
  1290. package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
  1291. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
  1292. package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
  1293. package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
  1294. package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
  1295. package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
@@ -267,6 +267,45 @@ const router = createRouter({
267
267
  });
268
268
  ```
269
269
 
270
+ ### Search param key filtering (`cache.searchParams`)
271
+
272
+ By default every non-reserved query param keys the cache, so
273
+ `?utm_source=tw` and `?utm_source=ig` occupy separate slots in every tier.
274
+ The global `searchParams` option controls which params participate in default
275
+ cache-key generation:
276
+
277
+ ```typescript
278
+ import { createRouter, TRACKING_SEARCH_PARAMS } from "@rangojs/router";
279
+
280
+ const router = createRouter({
281
+ document: Document,
282
+ urls: urlpatterns,
283
+ cache: {
284
+ store,
285
+ // "all" (default) | "none" | { include: string[] } | { exclude: string[] }
286
+ searchParams: { exclude: TRACKING_SEARCH_PARAMS },
287
+ },
288
+ });
289
+ ```
290
+
291
+ - **Key-only**: `ctx.searchParams` and the request URL are untouched — handlers
292
+ and loaders still see the full query string.
293
+ - **Matching**: exact names plus a `*` SUFFIX wildcard (`"utm_*"`). No RegExp.
294
+ - **All tiers**: segment, document, response, PPR shell capture/lookup, the
295
+ baked-shell manifest gate (a URL whose only params are excluded ones now
296
+ matches the prerendered shell), and `"use cache"` ctx key normalization.
297
+ - **`cache({ key })` override wins**: a custom key bypasses the filter along
298
+ with the rest of default key generation.
299
+ - **The footgun**: excluding a param promises the rendered output does not
300
+ depend on it. If it does, the first variant is cached and served to everyone.
301
+ That is why the default is `"all"`.
302
+ - `TRACKING_SEARCH_PARAMS` (also exported from `@rangojs/router/cache`) covers
303
+ `utm_*`, `gclid`, `fbclid`, `msclkid`, `ttclid`, `mc_cid`/`mc_eid`, and the
304
+ other common click-id params.
305
+
306
+ Global-only by design — the per-route "this page varies only by `q`" case is
307
+ already expressible with `cache({ key })`.
308
+
270
309
  ## Cache Stores
271
310
 
272
311
  ### Memory Store
@@ -129,8 +129,10 @@ export const router = createRouter<AppBindings>({
129
129
  });
130
130
  ```
131
131
 
132
- KV is required for durable PPR shells. `CFCacheStore` without `kv` can still
133
- cache segment/response entries in the Cache API, but its shell family is inert.
132
+ PPR shells use Cache API as the per-colo L1 and KV as the durable cross-colo
133
+ L2; a KV hit promotes the coupled shell envelope back into L1. KV remains
134
+ required for this family. `CFCacheStore` without `kv` can still cache
135
+ segment/response entries in Cache API, but its shell family is inert.
134
136
 
135
137
  ## Commands
136
138
 
@@ -542,7 +542,13 @@ analog but operates on loader/query reload, not RSC-segment render.
542
542
  `<Link prefetch="hover|viewport|render|adaptive|none">` (default: the router's
543
543
  `defaultPrefetch`, `"none"` in development and `"viewport"` in production), plus
544
544
  `prefetchKey` (`":source"` scopes a prefetch to the originating page for routes
545
- whose response branches on `currentUrl`). The distinguishing part is the stability
545
+ whose response branches on `currentUrl`). Intercepted plain `<a href>` elements
546
+ inside the router basename follow the same default; common static-resource
547
+ extensions are excluded unless `data-prefetch="true"` identifies an application
548
+ route, and `data-prefetch="false"` or `"none"` opts out unsafe GET links. A
549
+ container with `data-prefetch-scope="false"` or `"none"` is a hard subtree boundary for both
550
+ Links and plain anchors, so one annotation suppresses speculative work for a
551
+ whole navigation section. The distinguishing part is the stability
546
552
  gating: a queued prefetch (`viewport`/`render`) will not fire until **both** the
547
553
  main thread is idle (`requestIdleCallback`, 200ms fallback) **and**
548
554
  `waitForViewportImages()` resolves — in-viewport images that are not `.complete`
@@ -423,6 +423,30 @@ Don't edit the file by hand — re-run codegen when patterns change.
423
423
  }
424
424
  ```
425
425
 
426
+ ## Prefetch boundaries
427
+
428
+ `Link` follows its `prefetch` prop or the router's `defaultPrefetch`; eligible
429
+ plain anchors follow the router default. When a whole DOM section must never
430
+ speculate, mark its container instead of repeating per-link opt-outs:
431
+
432
+ ```tsx
433
+ <section data-prefetch-scope="none">
434
+ <Link to="/activity" prefetch="viewport">
435
+ Activity
436
+ </Link>
437
+ <a href="/export">Export</a>
438
+ </section>
439
+ ```
440
+
441
+ The scope is a hard opt-out for every descendant Link and plain anchor; `"false"`
442
+ and `"none"` are equivalent. An explicit `prefetch` prop or
443
+ `data-prefetch="true"` cannot override it, and navigation still works normally.
444
+ Use `data-prefetch="false"` or `"none"` directly on a plain anchor when only that
445
+ anchor is unsafe. Dynamic scope changes re-evaluate only descendant anchors and
446
+ mounted viewport/render Links. Links share one document-level scope observer,
447
+ not one observer per Link or container. Adding a scope cannot recall work already
448
+ queued or in flight; removing it re-arms both Link types.
449
+
426
450
  ## When to use what
427
451
 
428
452
  | Context | API | Resolves | Use for |
@@ -37,9 +37,9 @@ PPR is a DOCUMENT-level property declared on the page route via the `ppr` path
37
37
  option. Serving is **integral to the router** — there is nothing to mount. The
38
38
  only prerequisite is an app-level `createRouter({ cache })` store that
39
39
  implements the shell family (`getShell`/`putShell`): `MemorySegmentCacheStore`
40
- (dev/tests), `CFCacheStore` (Cloudflare KV), or `VercelCacheStore` (runtime
41
- cache). A ppr route on a store without the family stays on axis 1 with a
42
- once-per-key warning.
40
+ (dev/tests), `CFCacheStore` (Cache API L1 + KV L2), or `VercelCacheStore`
41
+ (runtime cache). A ppr route on a store without the family stays on axis 1 with
42
+ a once-per-key warning.
43
43
 
44
44
  ```typescript
45
45
  import { createRouter, urls } from "@rangojs/router";
@@ -192,8 +192,29 @@ replay its eligible snapshot. In both cases `matchPartial()`:
192
192
  This is deliberately invisible to the browser: the response is the same
193
193
  `RscPayload` shape as any other partial navigation. Captured item/response values
194
194
  and loader-container pins are NOT replayed on this path, so loader reads stay
195
- live. A route's own `cache()` scope still resolves its normal store, key, TTL,
196
- SWR, tags, and condition; only the implicit PPR scope sees this behavior.
195
+ live.
196
+
197
+ A route's own `cache()` scope — including one inherited from an ancestor, the
198
+ common app-wide storefront shape — COMPOSES with replay instead of disabling
199
+ it. The explicit tier stays authoritative: its lookup runs first with its
200
+ normal store, key, TTL, SWR, tags, and condition, and when it supplies the
201
+ match the response reports `BYPASS; reason=explicit-cache-hit` (never a false
202
+ replay `HIT`). Only when the explicit tier misses does the shell snapshot's
203
+ canonical doc segment record supply the match and report `HIT`. To make that
204
+ possible, a capture of such a route records the doc segment record into the
205
+ shell snapshot IN ADDITION to the scope's normal store write; the record rides
206
+ only inside the shell entry, never the real store. Two opt-outs stay absolute:
207
+ `cache(false)` and a `condition()` returning false mean "do not serve this
208
+ request's segments from any cache" — no doc record is captured for them and
209
+ the seeded fallback never rescues a refused read. `cache(false)` is static, so
210
+ replay reports `BYPASS; reason=cache-disabled` before performing a single
211
+ shell read; a `condition()` refusal is request-time state, decided at the
212
+ lookup itself and reported as the same `cache-disabled` post-match (the gate
213
+ must not pre-decide a predicate that could flap between the two evaluations).
214
+ An errored explicit read — a throwing `key()`, or a built-in store's swallowed
215
+ backend failure (`CACHE_READ_ERROR`) — also never falls back: it renders
216
+ uncached, exactly as without ppr.
217
+
197
218
  `transition({ when })` is evaluated from the
198
219
  matched manifest before route handlers on every PPR match, so it can vary by
199
220
  URL/params/action or middleware context without disabling replay; handler-set
@@ -202,6 +223,19 @@ nonce, and an absent/corrupt segment snapshot fall open to the ordinary partial
202
223
  path when encountered by the shell capture. A transition already replayed from
203
224
  an explicit cache tier remains frozen by that tier's normal semantics.
204
225
 
226
+ Two more decisions are made before any shell-store read, so probes and
227
+ prerendered routes never spend passive `getShell` I/O:
228
+
229
+ - A partial request carrying neither `X-RSC-Router-Client-Path` nor `Referer`
230
+ (a curl probe, a synthetic monitor) can never produce a partial match; it
231
+ reports `BYPASS; reason=no-navigation-context`. Alert on replay hit-rate
232
+ with this in mind — such probes are not cache misses.
233
+ - A `Prerender()` route's partial is served from the build-time prerender
234
+ store inside matching (a better-than-HIT outcome); it reports
235
+ `BYPASS; reason=prerender-store`. Its captures never record a doc segment
236
+ record (the prerender store short-circuits the cache write), so replay
237
+ seeding would be impossible anyway.
238
+
205
239
  Fresh and stale-within-SWR runtime shells replay. The stale read is passive: it
206
240
  uses `getShell(key, { claimRevalidation: false })`, does not claim SWR ownership,
207
241
  and cannot recapture HTML. A later document request owns the background
@@ -224,10 +258,35 @@ Partial responses expose the actual decision as `x-rango-ppr-replay`:
224
258
  `HIT; freshness=fresh|stale` or `BYPASS; reason=<bounded-token>`. With
225
259
  performance metrics enabled, the same decision appears as
226
260
  `ppr-navigation-replay` in `Server-Timing`. `HIT` means matching consumed the
227
- seeded segment record after it decoded successfully, not merely that a snapshot
228
- existed. An explicit `cache()` scope that supplies the match cannot produce a
229
- false HIT. There is still no Flight resume API; this is segment replay followed
230
- by normal Flight streaming, not reuse of the HTML `prelude`/`postponed` bytes.
261
+ seeded segment record, not merely that a snapshot existed. Fragment-capable
262
+ clients decode its stored ReactNode fields after the response arrives; if that
263
+ decode fails, the client retries once through the server decode-and-evict path
264
+ and disables further passthrough for that browser document. The retry replaces
265
+ the fragment-capable response-cache slot, and a corrupt seeded snapshot is
266
+ recaptured at the key that supplied it. An explicit `cache()` scope that supplies
267
+ the match cannot produce a
268
+ false HIT — it reports `explicit-cache-hit`. There is still no Flight resume
269
+ API; this is segment replay followed by normal Flight streaming, not reuse of
270
+ the HTML `prelude`/`postponed` bytes. Replayed segments do ride the partial
271
+ payload as verbatim `__rangoFragment` envelopes (#700 fragment splice — the
272
+ stored per-segment Flight strings are string-copied instead of
273
+ deserialize→re-serialize per request); the client expands them at its
274
+ navigation/prefetch decode chokepoints before anything renders, so they are
275
+ consumer-invisible.
276
+
277
+ The bounded bypass tokens, grouped by when they are decided:
278
+
279
+ | Token | Decided | Meaning |
280
+ | --------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
281
+ | `method`, `dynamic`, `nonce`, `store-unavailable`, `passive-read-unsupported` | pre-read | request/route/store ineligible for replay |
282
+ | `no-navigation-context` | pre-read | no `X-RSC-Router-Client-Path`/`Referer`; a partial match is impossible |
283
+ | `prerender-store` | pre-read or match | `Prerender()` route served by its baked artifact (pre-read probe of the normal variant; reclassified post-match when the store actually served, either variant) |
284
+ | `intercept` | match | the navigation resolved to an intercept — replay is never armed for intercepts (they keep their normal cache path); no heal capture |
285
+ | `cache-disabled` | pre-read or match | `cache(false)` (pre-read, static) or `condition()` false (decided at the lookup); consumer opt-out is absolute |
286
+ | `read-error`, `no-entry`, `invalid-version`, `corrupt-entry`, `stale-build-entry` | shell read | no usable shell entry (`no-entry`/`invalid-version`/`corrupt-entry`/`stale-build-entry` schedule the navigation-only heal capture) |
287
+ | `handler-live-holes`, `transition-when`, `no-segment-snapshot` | eligibility | entry exists but its snapshot cannot replay (no canonical doc record, or handler/transition liveness); on a route with an enabled `cache()` scope, `no-segment-snapshot` heals when the lookup did not refuse (a `condition()` false-at-capture entry becomes replayable) |
288
+ | `explicit-cache-hit` | match | the route's own `cache()` tier supplied the match |
289
+ | `snapshot-miss` | match | an eligible snapshot was seeded but matching did not consume it |
231
290
 
232
291
  ### Capture-generation invalidation
233
292
 
@@ -295,9 +354,10 @@ curl -s -D - -o /dev/null https://app.example.com/products/1 | grep -i x-rango-s
295
354
  - A ppr-declared route that CANNOT be honored (missing shell store family,
296
355
  per-request nonce) serves plain axis 1 with NO header and warns once per
297
356
  key — no header + a declared `ppr` means look for that warning.
298
- - On Cloudflare, `CFCacheStore` WITHOUT a KV namespace has an inert shell
299
- family (the shell tier is KV-only): every ppr route stays `MISS` forever.
300
- The store warns once per isolate bind KV
357
+ - On Cloudflare, `CFCacheStore` reads PPR shells from the per-colo Cache API,
358
+ falls through to KV on a miss, and promotes the KV hit back into that colo.
359
+ WITHOUT a KV namespace its shell family remains inert: every ppr route stays
360
+ `MISS` forever. The store warns once per isolate — bind KV
301
361
  (`new CFCacheStore({ ctx, kv: env.CACHE_KV })`) or use another store.
302
362
  - Structured capture diagnostics: `createRouter({ debugShellCapture: true })`
303
363
  logs one line per capture attempt/skip (outcome, durations, prelude and
@@ -307,6 +367,11 @@ curl -s -D - -o /dev/null https://app.example.com/products/1 | grep -i x-rango-s
307
367
  later request. In dev, with `debugPerformance` on, the
308
368
  last capture outcome for a key also rides the next document GET's
309
369
  `Server-Timing` as `ppr-capture;desc="…"`.
370
+ - For deployed Cloudflare tier diagnostics, build with
371
+ `INTERNAL_RANGO_DEBUG=1` and run `wrangler tail`. `[CFCacheStore][shell]`
372
+ JSON events distinguish L1 hit/miss, KV fallback/promotion, tier writes, and
373
+ marker rejection, with `cf-ray`/colo and read timings. The flag is baked at
374
+ build time; setting only a Worker runtime variable is too late.
310
375
 
311
376
  ### Unit / integration testing (public primitives)
312
377
 
@@ -120,8 +120,13 @@ interface RangoOptions<TEnv> {
120
120
  // Set to false to disable prefetch caching.
121
121
  prefetchCacheTTL?: number | false;
122
122
 
123
- // Default prefetch strategy for Links without a `prefetch` prop
124
- // (dev: "none", production: "viewport"). Per-Link props win in both directions.
123
+ // Default prefetch strategy for Links without a `prefetch` prop and for
124
+ // intercepted plain anchors inside basename. false/none opts out; true allows
125
+ // an application route whose path has a common static-resource extension.
126
+ // data-prefetch-scope="false"/"none" on a container is a hard subtree
127
+ // opt-out for both Links and plain anchors, including explicit opt-ins.
128
+ // (dev: "none", production: "viewport").
129
+ // Per-Link props win over the router default, not a disabled container scope.
125
130
  defaultPrefetch?: "hover" | "viewport" | "render" | "adaptive" | "none";
126
131
 
127
132
  // CSP nonce provider (for router.fetch)
@@ -8,20 +8,21 @@ RTL-style stub (peer of React Router's `createRoutesStub` / Expo's `renderRouter
8
8
 
9
9
  ### Options — `RenderRouteOptions`
10
10
 
11
- | Field | Type | Meaning |
12
- | --------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | `request` | `Request \| string` | Initial location. Only the URL is read (client render — headers/method ignored). Defaults to the leaf spec's static prefix or `"/"`. |
14
- | `loaderData` | `Record<string, unknown>` | Loader data keyed by loader `$$id`. `useLoader(L)` reads `loaderData[L.$$id]`. |
15
- | `loaders` | `ReadonlyArray<readonly [LoaderDefinition<any>, unknown]>` | Seed by REFERENCE: `[loader, data]` pairs. Robust for real `createLoader()` handles whose `$$id` is empty in a bare test. Prefer over `loaderData`. |
16
- | `params` | `Record<string, string>` | Explicit params, merged over (and overriding) params extracted from the `request` URL. |
17
- | `locationState` | `ReadonlyArray<readonly [LocationStateDefinition<any, any>, unknown]>` | Seed `useLocationState(def)` by REFERENCE: `[def, value]` pairs; written to `history.state`. |
18
- | `handles` | `ReadonlyArray<readonly [Handle<any, any>, unknown[]]>` | Seed `useHandle(handle)` by REFERENCE: `[handle, pushedValues[]]`. Accumulated GLOBALLY (not segment-scoped). |
19
- | `handle` | `HandleDataSeed` | Advanced: raw wire format `{ [handleId]: { [segmentId]: pushedValues[] } }`. Prefer `handles`. Merged with it. |
20
- | `routeMap` | `Record<string, string>` | Name -> pattern map (informational; client `useReverse` takes its map as an argument, so this is not consumed). |
21
- | `basename` | `string` | `createRouter({ basename })` value. Wired into `NavigationProvider` so `useRouter().basename`, `<Link>` prefixing, `useMount`/`useHref` resolve against the mount. Normalized like `createRouter`. Defaults to root. |
22
- | `mount` | `string` | `include()` mount prefix. Wraps the segment chain in a `MountContext` so `useMount()` returns the prefix. Normalized like a path prefix. Defaults to `"/"`. |
23
- | `theme` | `ThemeConfig \| true` | Theme config (`createRouter({ theme })` shape) to wrap the tree in a `ThemeProvider`. Defaults to no provider. A component calling `useTheme()` REQUIRES one. |
24
- | `nonce` | `string` | CSP nonce to seed via `NonceContext`, so a component calling `useNonce()` (e.g. an analytics/GTM head script) sees it — mirroring SSR. Defaults to `undefined` (the browser default). |
11
+ | Field | Type | Meaning |
12
+ | ----------------- | ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
+ | `request` | `Request \| string` | Initial location. Only the URL is read (client render — headers/method ignored). Defaults to the leaf spec's static prefix or `"/"`. |
14
+ | `loaderData` | `Record<string, unknown>` | Loader data keyed by loader `$$id`. `useLoader(L)` reads `loaderData[L.$$id]`. |
15
+ | `loaders` | `ReadonlyArray<readonly [LoaderDefinition<any>, unknown]>` | Seed by REFERENCE: `[loader, data]` pairs. Robust for real `createLoader()` handles whose `$$id` is empty in a bare test. Prefer over `loaderData`. |
16
+ | `params` | `Record<string, string>` | Explicit params, merged over (and overriding) params extracted from the `request` URL. |
17
+ | `locationState` | `ReadonlyArray<readonly [LocationStateDefinition<any, any>, unknown]>` | Seed `useLocationState(def)` by REFERENCE: `[def, value]` pairs; written to `history.state`. |
18
+ | `handles` | `ReadonlyArray<readonly [Handle<any, any>, unknown[]]>` | Seed `useHandle(handle)` by REFERENCE: `[handle, pushedValues[]]`. Accumulated GLOBALLY (not segment-scoped). |
19
+ | `handle` | `HandleDataSeed` | Advanced: raw wire format `{ [handleId]: { [segmentId]: pushedValues[] } }`. Prefer `handles`. Merged with it. |
20
+ | `routeMap` | `Record<string, string>` | Name -> pattern map (informational; client `useReverse` takes its map as an argument, so this is not consumed). |
21
+ | `basename` | `string` | `createRouter({ basename })` value. Wired into `NavigationProvider` so `useRouter().basename`, `<Link>` prefixing, `useMount`/`useHref` resolve against the mount. Normalized like `createRouter`. Defaults to root. |
22
+ | `mount` | `string` | `include()` mount prefix. Wraps the segment chain in a `MountContext` so `useMount()` returns the prefix. Normalized like a path prefix. Defaults to `"/"`. |
23
+ | `theme` | `ThemeConfig \| true` | Theme config (`createRouter({ theme })` shape) to wrap the tree in a `ThemeProvider`. Defaults to no provider. A component calling `useTheme()` REQUIRES one. |
24
+ | `nonce` | `string` | CSP nonce to seed via `NonceContext`, so a component calling `useNonce()` (e.g. an analytics/GTM head script) sees it — mirroring SSR. Defaults to `undefined` (the browser default). |
25
+ | `defaultPrefetch` | `PrefetchStrategy` | Router default for `<Link>` and eligible plain anchors. `data-prefetch="false"`/`"none"` opts out one anchor; ancestor `data-prefetch-scope="false"`/`"none"` hard-disables the subtree; `"true"` permits routed resource suffixes elsewhere. |
25
26
 
26
27
  `RenderRouteSpec = { path, Component, layout?, loaderIds?, name? }` — one node of the route definition. The array is the layout chain root-to-leaf; the LAST entry is the leaf route (its pattern is matched against `request` to extract params; layout patterns are informational). `loaderIds` attaches seeded loaders to THIS node's segment; `layout` on the leaf wraps it; `name` is informational.
27
28
 
@@ -56,7 +56,7 @@ Per-function knobs go under `vercel` and are written into `.vc-config.json`:
56
56
  rango({
57
57
  preset: "vercel",
58
58
  vercel: {
59
- runtime: "nodejs22.x", // default
59
+ runtime: "nodejs24.x", // default
60
60
  maxDuration: 30, // seconds, default
61
61
  memory: 1024, // MB (platform default when omitted)
62
62
  regions: ["fra1"], // pin regions (platform default when omitted)
@@ -14,6 +14,7 @@ import {
14
14
  filterSegmentOrder,
15
15
  filterRouteSegmentIds,
16
16
  } from "./react/filter-segment-order.js";
17
+ import { notifyListeners } from "./notify-listeners.js";
17
18
 
18
19
  // Polyfill Symbol.dispose for Safari and older browsers
19
20
  if (typeof Symbol.dispose === "undefined") {
@@ -269,6 +270,71 @@ export interface EventController {
269
270
  hadAnyConcurrentActions(): boolean;
270
271
  }
271
272
 
273
+ type LocationChangeController = Pick<EventController, "getState" | "subscribe">;
274
+
275
+ interface LocationChangeSubscription {
276
+ registrations: Map<
277
+ symbol,
278
+ { href: string; listener: (href: string) => void }
279
+ >;
280
+ notificationVersion: number;
281
+ unsubscribe: () => void;
282
+ }
283
+
284
+ const locationChangeSubscriptions = new WeakMap<
285
+ LocationChangeController,
286
+ LocationChangeSubscription
287
+ >();
288
+
289
+ /** Share one controller subscription across all location-change consumers. */
290
+ export function subscribeToLocationChange(
291
+ eventController: LocationChangeController,
292
+ listener: (href: string) => void,
293
+ ): () => void {
294
+ let subscription = locationChangeSubscriptions.get(eventController);
295
+ if (!subscription) {
296
+ subscription = {
297
+ registrations: new Map(),
298
+ notificationVersion: 0,
299
+ unsubscribe: () => {},
300
+ };
301
+ locationChangeSubscriptions.set(eventController, subscription);
302
+ const currentSubscription = subscription;
303
+ subscription.unsubscribe = eventController.subscribe(() => {
304
+ const notificationVersion = ++currentSubscription.notificationVersion;
305
+ const nextHref = eventController.getState().location.href;
306
+ notifyListeners(
307
+ [...currentSubscription.registrations],
308
+ ([, registration]) => {
309
+ if (registration.href === nextHref) return;
310
+ registration.href = nextHref;
311
+ registration.listener(nextHref);
312
+ },
313
+ ([token, registration]) =>
314
+ currentSubscription.registrations.get(token) === registration,
315
+ () => notificationVersion === currentSubscription.notificationVersion,
316
+ );
317
+ });
318
+ }
319
+
320
+ const token = Symbol();
321
+ subscription.registrations.set(token, {
322
+ href: eventController.getState().location.href,
323
+ listener,
324
+ });
325
+ let active = true;
326
+ return () => {
327
+ if (!active) return;
328
+ active = false;
329
+ subscription!.registrations.delete(token);
330
+ if (subscription!.registrations.size > 0) return;
331
+ if (locationChangeSubscriptions.get(eventController) === subscription) {
332
+ locationChangeSubscriptions.delete(eventController);
333
+ }
334
+ subscription!.unsubscribe();
335
+ };
336
+ }
337
+
272
338
  const DEFAULT_ACTION_STATE: TrackedActionState = {
273
339
  state: "idle",
274
340
  actionId: null,
@@ -308,7 +374,11 @@ function makeDebouncedNotifier(listeners: Set<() => void>): () => void {
308
374
  if (timeout !== null) clearTimeout(timeout);
309
375
  timeout = setTimeout(() => {
310
376
  timeout = null;
311
- listeners.forEach((listener) => listener());
377
+ notifyListeners(
378
+ [...listeners],
379
+ (listener) => listener(),
380
+ (listener) => listeners.has(listener),
381
+ );
312
382
  }, 0);
313
383
  };
314
384
  }
@@ -394,6 +464,39 @@ export function createEventController(
394
464
 
395
465
  const actionNotifyTimeouts = new Map<string, ReturnType<typeof setTimeout>>();
396
466
 
467
+ function notifyActionListenerSets(
468
+ subscriptions: Iterable<[string, Set<ActionStateListener>]>,
469
+ ): void {
470
+ const subscriptionSnapshots = [...subscriptions].map(
471
+ ([subscriptionId, listeners]) => ({
472
+ listenerSnapshot: [...listeners],
473
+ listeners,
474
+ subscriptionId,
475
+ }),
476
+ );
477
+ function* notifications(): Generator<{
478
+ listener: ActionStateListener;
479
+ listeners: Set<ActionStateListener>;
480
+ state: TrackedActionState;
481
+ }> {
482
+ for (const {
483
+ listenerSnapshot,
484
+ listeners,
485
+ subscriptionId,
486
+ } of subscriptionSnapshots) {
487
+ const state = getActionState(subscriptionId);
488
+ for (const listener of listenerSnapshot) {
489
+ yield { listener, listeners, state };
490
+ }
491
+ }
492
+ }
493
+ notifyListeners(
494
+ notifications(),
495
+ ({ listener, state }) => listener(state),
496
+ ({ listener, listeners }) => listeners.has(listener),
497
+ );
498
+ }
499
+
397
500
  function notifyAction(actionId: string) {
398
501
  const existing = actionNotifyTimeouts.get(actionId);
399
502
  if (existing !== undefined) {
@@ -403,12 +506,11 @@ export function createEventController(
403
506
  actionId,
404
507
  setTimeout(() => {
405
508
  actionNotifyTimeouts.delete(actionId);
406
- for (const [subscriptionId, listeners] of actionListeners) {
407
- if (matchesActionId(subscriptionId, actionId)) {
408
- const state = getActionState(subscriptionId);
409
- listeners.forEach((listener) => listener(state));
410
- }
411
- }
509
+ notifyActionListenerSets(
510
+ [...actionListeners].filter(([subscriptionId]) =>
511
+ matchesActionId(subscriptionId, actionId),
512
+ ),
513
+ );
412
514
  }, 0),
413
515
  );
414
516
  }
@@ -846,10 +948,7 @@ export function createEventController(
846
948
  // "addToCart"), not full entry actionIds. Passing them to notifyAction
847
949
  // would fail the suffix matcher — instead, notify each subscriber with
848
950
  // its own state.
849
- for (const [subscriptionId, listeners] of actionListeners) {
850
- const state = getActionState(subscriptionId);
851
- listeners.forEach((listener) => listener(state));
852
- }
951
+ notifyActionListenerSets(actionListeners);
853
952
  }
854
953
 
855
954
  // ========================================================================