@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
@@ -61,18 +61,32 @@ import {
61
61
  type DevShellLookup,
62
62
  } from "./shell-build-manifest.js";
63
63
  import { contextGet } from "../context-var.js";
64
+ import {
65
+ getNavigationContextHeader,
66
+ prerenderStoreShortCircuits,
67
+ } from "../router/navigation-snapshot.js";
68
+ import {
69
+ ensureFullRouteSnapshot,
70
+ type RouteSnapshot,
71
+ } from "../router/route-snapshot.js";
72
+ import { prerenderEntryExists } from "../router/match-middleware/cache-lookup.js";
64
73
  import {
65
74
  resolveSameOriginRedirect,
66
75
  safeSameOriginLanding,
67
76
  } from "../redirect-origin.js";
68
77
  import { nonce as nonceToken } from "./nonce.js";
69
78
  import { reportCacheError } from "../cache/cache-error.js";
79
+ import type { SearchParamsFilter } from "../cache/search-params-filter.js";
70
80
  import { INTERNAL_RANGO_DEBUG } from "../internal-debug.js";
71
81
  import type {
72
82
  SegmentCacheStore,
73
83
  ShellCacheEntry,
74
84
  ShellSnapshotRecord,
75
85
  } from "../cache/types.js";
86
+ import {
87
+ SEGMENT_FRAGMENT_CAPABILITY_HEADER,
88
+ SEGMENT_FRAGMENT_RECOVERY_HEADER,
89
+ } from "../segment-fragments.js";
76
90
 
77
91
  type PprReplayBypassReason =
78
92
  | "method"
@@ -80,6 +94,10 @@ type PprReplayBypassReason =
80
94
  | "nonce"
81
95
  | "store-unavailable"
82
96
  | "passive-read-unsupported"
97
+ | "no-navigation-context"
98
+ | "prerender-store"
99
+ | "intercept"
100
+ | "cache-disabled"
83
101
  | "read-error"
84
102
  | "no-entry"
85
103
  | "invalid-version"
@@ -88,6 +106,7 @@ type PprReplayBypassReason =
88
106
  | "transition-when"
89
107
  | "no-segment-snapshot"
90
108
  | "snapshot-miss"
109
+ | "explicit-cache-hit"
91
110
  | "stale-build-entry";
92
111
 
93
112
  type PprReplayStatus =
@@ -110,8 +129,11 @@ function describePprReplayStatus(status: PprReplayStatus): string {
110
129
  : `bypass:${status.reason}`;
111
130
  }
112
131
 
113
- function buildNavigationShellKey(url: URL): string {
114
- return `${buildShellKey(url)}:navigation`;
132
+ function buildNavigationShellKey(
133
+ url: URL,
134
+ filter?: SearchParamsFilter,
135
+ ): string {
136
+ return `${buildShellKey(url, filter)}:navigation`;
115
137
  }
116
138
 
117
139
  function createShellCaptureDescriptor(
@@ -147,6 +169,26 @@ function shouldHealReplayMiss(
147
169
  );
148
170
  }
149
171
 
172
+ /**
173
+ * Post-match truth override for a pre-match BYPASS classification. The gate
174
+ * decides before matchPartial runs, but two facts only the match can settle:
175
+ * whether the prerender store ACTUALLY served (either artifact variant — the
176
+ * gate's probe reads only the non-intercept one), and whether the navigation
177
+ * resolved to an intercept (findInterceptForRoute runs during the match; the
178
+ * intercept-source header proves nothing in either direction). The resulting
179
+ * reason is stamped on the request context by withCacheLookup. A replay HIT is
180
+ * never overridden — the seeded record was demonstrably consumed, so neither
181
+ * fact can be true.
182
+ */
183
+ function reclassifyReplayStatus(
184
+ reqCtx: RequestContext<any>,
185
+ status: PprReplayStatus,
186
+ ): PprReplayStatus {
187
+ if (status.outcome === "HIT") return status;
188
+ const reason = reqCtx._pprReplayPostMatchReason;
189
+ return reason ? { outcome: "BYPASS", reason } : status;
190
+ }
191
+
150
192
  function resolveDevShellLookup(
151
193
  reqCtx: RequestContext<any>,
152
194
  pprConfig: ResolvedPprConfig,
@@ -173,21 +215,32 @@ function replayableShellSnapshot(
173
215
  if (!hasIntactShellPayload(entry)) return { reason: "corrupt-entry" };
174
216
  if (entry.handlerLiveHoles) return { reason: "handler-live-holes" };
175
217
  if (entry.transitionWhen) return { reason: "transition-when" };
218
+ // Eligibility requires the CANONICAL doc segment record (`docKey`), not just
219
+ // any segment record: captures under an explicit cache() scope also record
220
+ // that tier's reads/writes under keys a partial lookup can never resolve,
221
+ // and counting those declared entries "replayable" that then always missed
222
+ // (a timing-dependent snapshot-miss/no-segment-snapshot flip-flop). Entries
223
+ // captured before the field existed read as no-segment-snapshot and heal on
224
+ // recapture (pre-release, same treatment as the buildVersion field).
225
+ const docKey = entry.docKey;
176
226
  const snapshot = entry.snapshot;
177
- const hasSegments = snapshot?.some((record) => {
178
- if (
179
- !record ||
180
- typeof record !== "object" ||
181
- record.family !== "segment" ||
182
- typeof record.value !== "object" ||
183
- record.value === null
184
- ) {
185
- return false;
186
- }
187
- const segments = (record.value as { segments?: unknown }).segments;
188
- return Array.isArray(segments) && segments.length > 0;
189
- });
190
- return hasSegments && snapshot
227
+ const hasDocRecord =
228
+ docKey !== undefined &&
229
+ snapshot?.some((record) => {
230
+ if (
231
+ !record ||
232
+ typeof record !== "object" ||
233
+ record.family !== "segment" ||
234
+ record.key !== docKey ||
235
+ typeof record.value !== "object" ||
236
+ record.value === null
237
+ ) {
238
+ return false;
239
+ }
240
+ const segments = (record.value as { segments?: unknown }).segments;
241
+ return Array.isArray(segments) && segments.length > 0;
242
+ });
243
+ return hasDocRecord && snapshot
191
244
  ? { snapshot }
192
245
  : { reason: "no-segment-snapshot" };
193
246
  }
@@ -236,6 +289,7 @@ async function handleRscRenderingInner<TEnv>(
236
289
  let hasInterceptSlots = false;
237
290
  let pprReplayStatus: PprReplayStatus | undefined;
238
291
  let partialCaptureNeeded = false;
292
+ let partialCaptureKey: string | undefined;
239
293
 
240
294
  // --- Axis 2: integrated PPR shell serve (docs/design/ppr-shell-resume.md) ---
241
295
  //
@@ -263,7 +317,7 @@ async function handleRscRenderingInner<TEnv>(
263
317
  // the provider-only check missed the latter (issue #656).
264
318
  const activeNonce = nonce ?? contextGet(reqCtx._variables, nonceToken);
265
319
  const store = reqCtx._cacheStore;
266
- const key = buildShellKey(url);
320
+ const key = buildShellKey(url, reqCtx._searchParamsFilter);
267
321
  // Dev Server-Timing mirror (issue #651): a capture completes AFTER its
268
322
  // triggering response committed, so its outcome can only ride a LATER
269
323
  // response's header. Read-and-clear keeps one capture = one report;
@@ -417,6 +471,7 @@ async function handleRscRenderingInner<TEnv>(
417
471
  // only (production's exact candidate set). Folded away in
418
472
  // production builds (NODE_ENV is a compile-time constant).
419
473
  resolveDevShellLookup(reqCtx, pprConfig),
474
+ reqCtx._searchParamsFilter,
420
475
  );
421
476
  if (buildHit) {
422
477
  // Past ppr.ttl: still serve the baked entry, recapture upgrades it.
@@ -444,6 +499,7 @@ async function handleRscRenderingInner<TEnv>(
444
499
  pprReplayStatus = replay.status;
445
500
  partialCaptureNeeded =
446
501
  "captureNeeded" in replay && replay.captureNeeded === true;
502
+ partialCaptureKey = "captureKey" in replay ? replay.captureKey : undefined;
447
503
 
448
504
  if (!result) {
449
505
  // Fall back to full render
@@ -562,7 +618,7 @@ async function handleRscRenderingInner<TEnv>(
562
618
 
563
619
  const rscHeaders: Record<string, string> = {
564
620
  "content-type": "text/x-component;charset=utf-8",
565
- vary: "accept, X-Rango-State, X-RSC-Router-Client-Path",
621
+ vary: `accept, X-Rango-State, X-RSC-Router-Client-Path, ${SEGMENT_FRAGMENT_CAPABILITY_HEADER}, ${SEGMENT_FRAGMENT_RECOVERY_HEADER}`,
566
622
  // Router identity, so the client can verify pre-decode (before importing
567
623
  // chunks) that this content payload belongs to its app and refuse a
568
624
  // foreign one (cache/proxy/bug). Control-only reload/redirect responses
@@ -671,7 +727,8 @@ async function handleRscRenderingInner<TEnv>(
671
727
  },
672
728
  createShellCaptureDescriptor(
673
729
  ctx,
674
- buildNavigationShellKey(url),
730
+ partialCaptureKey ??
731
+ buildNavigationShellKey(url, reqCtx._searchParamsFilter),
675
732
  pprConfig,
676
733
  store,
677
734
  true,
@@ -710,10 +767,39 @@ async function matchPartialWithPprReplay<TEnv>(
710
767
  describePprReplayStatus(status),
711
768
  );
712
769
  };
770
+ const finalizeReplayStatus = (status: PprReplayStatus): PprReplayStatus => {
771
+ const finalStatus = reclassifyReplayStatus(reqCtx, status);
772
+ recordReplayStatus(finalStatus);
773
+ return finalStatus;
774
+ };
775
+ let armFragments = false;
776
+ /**
777
+ * Every matchPartial in this function runs through this helper so the
778
+ * fragment flag (#700 passthrough, armed below the navigation-context gate)
779
+ * can never outlive a match or miss a lane — a thrown-Response redirect
780
+ * exit included. Mutate-restore on the SHARED reqCtx, never a derived
781
+ * context: the pipeline writes ambient state during the match that must
782
+ * land on reqCtx (_pprReplayPostMatchReason, location state,
783
+ * _treeHasStreaming read by the render-barrier closure). Assign-back
784
+ * restore leaves an own `undefined` after the first arm, matching the
785
+ * _shellImplicitCache idiom.
786
+ */
787
+ const matchPartialForReplay = async () => {
788
+ if (!armFragments) return ctx.router.matchPartial(request, { env });
789
+ const prevFragmentPayload = reqCtx._shellFragmentPayload;
790
+ reqCtx._shellFragmentPayload = true;
791
+ try {
792
+ return await ctx.router.matchPartial(request, { env });
793
+ } finally {
794
+ reqCtx._shellFragmentPayload = prevFragmentPayload;
795
+ }
796
+ };
713
797
  const runMatch = async (status?: PprReplayStatus) => {
714
- const result = await ctx.router.matchPartial(request, { env });
715
- if (status) recordReplayStatus(status);
716
- return { result, status };
798
+ const result = await matchPartialForReplay();
799
+ // The match may have settled a fact the pre-match gate could only guess
800
+ // at (prerender serve, intercept resolution) — report the truth.
801
+ const finalStatus = status ? finalizeReplayStatus(status) : undefined;
802
+ return { result, status: finalStatus };
717
803
  };
718
804
  const pprConfig = resolvePprConfig(reqCtx._classifiedRoute?.manifestEntry);
719
805
  const activeNonce = nonce ?? contextGet(reqCtx._variables, nonceToken);
@@ -738,9 +824,72 @@ async function matchPartialWithPprReplay<TEnv>(
738
824
  reason: "passive-read-unsupported",
739
825
  });
740
826
  }
827
+ // A partial without navigation context (curl probes, synthetic monitors)
828
+ // can never produce a partial match — createMatchContextForPartial returns
829
+ // null and the seeded record could not have been consulted, which used to
830
+ // read as a misleading `snapshot-miss` AFTER two wasted getShell reads.
831
+ // Same predicate as resolveNavigation, decided before any store I/O.
832
+ if (!getNavigationContextHeader(request)) {
833
+ return runMatch({ outcome: "BYPASS", reason: "no-navigation-context" });
834
+ }
835
+ // Fragment passthrough (#700), extended to partial replay. Navigation
836
+ // context proves the request can be matched; the separate capability header
837
+ // proves its payload consumer can expand envelopes. Older clients and the
838
+ // one-shot corruption recovery request still replay the same segment record,
839
+ // but through the server decode path.
840
+ armFragments =
841
+ request.headers.get(SEGMENT_FRAGMENT_RECOVERY_HEADER) !== "1" &&
842
+ request.headers.get(SEGMENT_FRAGMENT_CAPABILITY_HEADER) === "1";
843
+ // The prerender probe and the cache-opt-out gate below both need the
844
+ // classified snapshot; resolve (and persist) it once.
845
+ const routeSnapshot = classifiedRouteSnapshot(reqCtx);
846
+ // Prerender routes short-circuit in withCacheLookup and serve the partial
847
+ // from build-time segments — a better-than-HIT outcome. Their captures
848
+ // record no doc segment record (withCacheStore skips on the prerender hit),
849
+ // so seeding could never succeed; skip the reads and report the store that
850
+ // actually serves instead of blaming a "broken" capture. Bypass ONLY when
851
+ // the baked artifact actually exists — the trie's pr flag alone is not a
852
+ // serve guarantee: a Passthrough(Prerender()) route with an unbaked or
853
+ // ctx.passthrough()-skipped param misses the store and renders live, and
854
+ // replay (including its heal capture) must stay available for it. The
855
+ // probe goes through the same memoized store the middleware serves from.
856
+ // Shared predicate with the middleware (it declines on dev HMR — such
857
+ // partials fall through to the ordinary replay decision here too).
858
+ //
859
+ // The probe is a PRE-match fast path, not the truth: it reads only the
860
+ // non-intercept artifact, and whether the navigation IS an intercept (and
861
+ // therefore whether tryPrerenderLookup reads `paramHash` or
862
+ // `paramHash + "/i"`) is resolved during the match by match-api's
863
+ // findInterceptForRoute — an intercept-source header proves nothing in
864
+ // either direction. runMatch reclassifies every BYPASS from the stamped
865
+ // post-match facts (reclassifyReplayStatus), so a wrong guess here can
866
+ // skip the two getShell reads but never mis-report or mis-heal.
867
+ if (
868
+ prerenderStoreShortCircuits(routeSnapshot?.matched?.pr, request) &&
869
+ (await prerenderEntryExists(
870
+ routeSnapshot?.matched?.routeKey,
871
+ routeSnapshot?.params ?? {},
872
+ url.pathname,
873
+ routeSnapshot?.entries ?? [],
874
+ ))
875
+ ) {
876
+ return runMatch({ outcome: "BYPASS", reason: "prerender-store" });
877
+ }
878
+ // Consumer cache opt-outs are absolute: a STATICALLY disabled scope
879
+ // (cache(false)) bypasses before any shell read — no heal capture (its
880
+ // snapshot would be equally unusable). A `condition()` predicate is
881
+ // request-time state and must NOT be pre-decided here: evaluating it at the
882
+ // gate and again at the lookup lets a false-then-true flap report
883
+ // cache-disabled while the explicit tier serves. The lookup's own
884
+ // evaluation governs (withCacheLookup fires the marker's onExplicitBypass,
885
+ // reported as cache-disabled post-match).
886
+ const routeCacheScope = routeSnapshot?.cacheScope ?? null;
887
+ if (routeCacheScope && !routeCacheScope.enabled) {
888
+ return runMatch({ outcome: "BYPASS", reason: "cache-disabled" });
889
+ }
741
890
 
742
- const key = buildShellKey(url);
743
- const navigationKey = buildNavigationShellKey(url);
891
+ const key = buildShellKey(url, reqCtx._searchParamsFilter);
892
+ const navigationKey = `${key}:navigation`;
744
893
  let cached: Awaited<ReturnType<typeof store.getShell>> = null;
745
894
  try {
746
895
  cached = await store.getShell(key, { claimRevalidation: false });
@@ -751,11 +900,13 @@ async function matchPartialWithPprReplay<TEnv>(
751
900
 
752
901
  let bypassReason: PprReplayBypassReason | undefined;
753
902
  let snapshot: ShellSnapshotRecord[] | undefined;
903
+ let snapshotStoreKey: string | undefined;
754
904
  let freshness: "fresh" | "stale" = "fresh";
755
905
  if (cached) {
756
906
  const decision = replayableShellSnapshot(cached.entry, ctx.version);
757
907
  if ("snapshot" in decision) {
758
908
  snapshot = decision.snapshot;
909
+ snapshotStoreKey = key;
759
910
  freshness = cached.shouldRevalidate ? "stale" : "fresh";
760
911
  } else {
761
912
  bypassReason = decision.reason;
@@ -783,6 +934,7 @@ async function matchPartialWithPprReplay<TEnv>(
783
934
  );
784
935
  if ("snapshot" in decision) {
785
936
  snapshot = decision.snapshot;
937
+ snapshotStoreKey = navigationKey;
786
938
  freshness = navigationCached.shouldRevalidate ? "stale" : "fresh";
787
939
  } else {
788
940
  bypassReason = decision.reason;
@@ -794,7 +946,13 @@ async function matchPartialWithPprReplay<TEnv>(
794
946
  // Production build manifests are local module data. In dev, resolving a
795
947
  // missing build shell would foreground-fetch /__rsc_shell and block an
796
948
  // otherwise ordinary navigation on capture, so replay remains runtime-only.
797
- const buildHit = await lookupBuildShell(url, ctx.version, store);
949
+ const buildHit = await lookupBuildShell(
950
+ url,
951
+ ctx.version,
952
+ store,
953
+ undefined,
954
+ reqCtx._searchParamsFilter,
955
+ );
798
956
  if (buildHit?.stale) {
799
957
  bypassReason ??= "stale-build-entry";
800
958
  } else if (buildHit) {
@@ -811,15 +969,79 @@ async function matchPartialWithPprReplay<TEnv>(
811
969
  }
812
970
 
813
971
  if (!snapshot) {
972
+ // Report-only marker for routes with an ENABLED route-derived scope: the
973
+ // lookup's own outcome must stay reportable even without a replayable
974
+ // snapshot. An always-false condition() route never produces a doc
975
+ // record (the consumer's write refusal is absolute — see
976
+ // recordShellCaptureDocRecord), so without this its lookup-time refusal
977
+ // would be misreported as the eligibility reason and heal captures would
978
+ // be scheduled for snapshots that can never become consumable. The
979
+ // marker carries NO store: the seeded fallback in withCacheLookup
980
+ // requires one, so nothing can be served through it — it only reports.
981
+ // Bare routes never see it (an installed marker would otherwise mint an
982
+ // implicit scope over the REAL doc: partition in
983
+ // resolveShellImplicitCacheScope).
984
+ if (routeCacheScope?.enabled) {
985
+ let explicitCacheHit = false;
986
+ let explicitCacheBypass = false;
987
+ const previousImplicitCache = reqCtx._shellImplicitCache;
988
+ reqCtx._shellImplicitCache = {
989
+ onExplicitHit: () => {
990
+ explicitCacheHit = true;
991
+ },
992
+ onExplicitBypass: () => {
993
+ explicitCacheBypass = true;
994
+ },
995
+ };
996
+ try {
997
+ const result = await matchPartialForReplay();
998
+ const provisionalStatus: PprReplayStatus = explicitCacheBypass
999
+ ? { outcome: "BYPASS", reason: "cache-disabled" }
1000
+ : explicitCacheHit
1001
+ ? { outcome: "BYPASS", reason: "explicit-cache-hit" }
1002
+ : { outcome: "BYPASS", reason: bypassReason ?? "no-entry" };
1003
+ const status = finalizeReplayStatus(provisionalStatus);
1004
+ return {
1005
+ result,
1006
+ status,
1007
+ // A lookup-time opt-out makes every heal snapshot unusable
1008
+ // (recordShellCaptureDocRecord refuses under the same predicate),
1009
+ // and a prerender-served or intercept match never consults a heal
1010
+ // snapshot at all. Otherwise heal the shouldHealReplayMiss set PLUS
1011
+ // `no-segment-snapshot`: an entry captured while condition() was
1012
+ // false legitimately lacks a snapshot, and a later request whose
1013
+ // lookup did NOT refuse (condition true now) can heal it — the
1014
+ // capture derives from THIS request's context, so its doc record
1015
+ // records. Excluding it left replay dead until the document
1016
+ // recaptured. The always-false route stays protected: its every
1017
+ // lookup refuses, so explicitCacheBypass suppresses the heal.
1018
+ captureNeeded:
1019
+ !explicitCacheBypass &&
1020
+ reqCtx._pprReplayPostMatchReason === undefined &&
1021
+ (shouldHealReplayMiss(bypassReason) ||
1022
+ bypassReason === "no-segment-snapshot"),
1023
+ };
1024
+ } finally {
1025
+ reqCtx._shellImplicitCache = previousImplicitCache;
1026
+ }
1027
+ }
814
1028
  const match = await runMatch({
815
1029
  outcome: "BYPASS",
816
1030
  reason: bypassReason ?? "no-entry",
817
1031
  });
818
- return { ...match, captureNeeded: shouldHealReplayMiss(bypassReason) };
1032
+ return {
1033
+ ...match,
1034
+ captureNeeded:
1035
+ reqCtx._pprReplayPostMatchReason === undefined &&
1036
+ shouldHealReplayMiss(bypassReason),
1037
+ };
819
1038
  }
820
1039
 
821
1040
  const previousImplicitCache = reqCtx._shellImplicitCache;
822
1041
  let segmentReplayHit = false;
1042
+ let segmentReplayCorrupt = false;
1043
+ let explicitCacheHit = false;
1044
+ let explicitCacheBypass = false;
823
1045
  reqCtx._shellImplicitCache = {
824
1046
  ttl: pprConfig.ttl,
825
1047
  swr: pprConfig.swr,
@@ -830,20 +1052,78 @@ async function matchPartialWithPprReplay<TEnv>(
830
1052
  onHit: () => {
831
1053
  segmentReplayHit = true;
832
1054
  },
1055
+ onCorrupt: () => {
1056
+ segmentReplayCorrupt = true;
1057
+ },
1058
+ // Arms the explicit-scope composition in withCacheLookup: a route-derived
1059
+ // cache() scope stays authoritative, the seeded doc record supplies the
1060
+ // match only on its miss. An explicit-tier hit must NOT report a replay
1061
+ // HIT — it served under the consumer's own semantics.
1062
+ onExplicitHit: () => {
1063
+ explicitCacheHit = true;
1064
+ },
1065
+ // Lookup-time condition() refusal (or a scope with no store): the gate
1066
+ // deliberately does not pre-decide predicates, so the truthful
1067
+ // cache-disabled report comes from the lookup that actually refused.
1068
+ onExplicitBypass: () => {
1069
+ explicitCacheBypass = true;
1070
+ },
833
1071
  };
834
1072
 
835
1073
  try {
836
- const result = await ctx.router.matchPartial(request, { env });
837
- const status: PprReplayStatus = segmentReplayHit
1074
+ const result = await matchPartialForReplay();
1075
+ const provisionalStatus: PprReplayStatus = segmentReplayHit
838
1076
  ? { outcome: "HIT", freshness }
839
- : { outcome: "BYPASS", reason: "snapshot-miss" };
840
- recordReplayStatus(status);
841
- return { result, status };
1077
+ : explicitCacheHit
1078
+ ? { outcome: "BYPASS", reason: "explicit-cache-hit" }
1079
+ : explicitCacheBypass
1080
+ ? { outcome: "BYPASS", reason: "cache-disabled" }
1081
+ : { outcome: "BYPASS", reason: "snapshot-miss" };
1082
+ // A prerender serve or intercept resolution leaves the seeded record
1083
+ // unconsulted (prerender short-circuits before the scope; intercepts
1084
+ // keep snapshot.cacheScope) — the "snapshot-miss" guess would blame the
1085
+ // capture for a lane that was never in play.
1086
+ const status = finalizeReplayStatus(provisionalStatus);
1087
+ return {
1088
+ result,
1089
+ status,
1090
+ captureNeeded:
1091
+ segmentReplayCorrupt && reqCtx._pprReplayPostMatchReason === undefined,
1092
+ // A corrupt document snapshot must be overwritten at the document key;
1093
+ // writing only the secondary navigation key would leave the preferred
1094
+ // document entry shadowing the repair forever. The capture remains marked
1095
+ // navigationOnly, so a document request ignores it and recaptures a
1096
+ // document-safe shell under the same key.
1097
+ captureKey: segmentReplayCorrupt ? snapshotStoreKey : undefined,
1098
+ };
842
1099
  } finally {
843
1100
  reqCtx._shellImplicitCache = previousImplicitCache;
844
1101
  }
845
1102
  }
846
1103
 
1104
+ /**
1105
+ * The full route snapshot for the classified route, or null when
1106
+ * classification is unavailable (the gates then fall open to the ordinary
1107
+ * replay decision). Persists the enriched snapshot back onto
1108
+ * `_classifiedRoute` so the manifest-chain walk runs once per request:
1109
+ * matchPartial's createMatchContextForPartial re-reads `_classifiedRoute` and
1110
+ * calls ensureFullRouteSnapshot again, and the write-back lets that call hit
1111
+ * the entries-already-built fast path and reuse this same scope chain instead
1112
+ * of rebuilding it.
1113
+ */
1114
+ function classifiedRouteSnapshot(
1115
+ reqCtx: RequestContext<any>,
1116
+ ): RouteSnapshot<any> | null {
1117
+ const classified = reqCtx._classifiedRoute;
1118
+ if (!classified?.manifestEntry) return null;
1119
+ const full = ensureFullRouteSnapshot({
1120
+ ...classified,
1121
+ entries: classified.entries ?? [],
1122
+ });
1123
+ reqCtx._classifiedRoute = full;
1124
+ return full;
1125
+ }
1126
+
847
1127
  /**
848
1128
  * Neutralize the shell-HIT degradation redirect target. The inline
849
1129
  * `location.replace` in a committed 200 body bypasses the 3xx chokepoint
@@ -27,6 +27,7 @@
27
27
 
28
28
  import type { SegmentCacheStore, ShellCacheEntry } from "../cache/types.js";
29
29
  import { sortedSearchString } from "../cache/cache-key-utils.js";
30
+ import type { SearchParamsFilter } from "../cache/search-params-filter.js";
30
31
  import {
31
32
  DEV_SHELL_PROBE_TIMEOUT_MS,
32
33
  hasIntactShellPayload,
@@ -252,12 +253,18 @@ async function fetchDevShellEntry(
252
253
  * version validity, payload integrity, and tag-invalidation markers. Returns
253
254
  * null on any gate failure — the caller degrades to the ordinary MISS path
254
255
  * (axis 1 + runtime capture), never a broken serve.
256
+ *
257
+ * "Search-less" is evaluated AFTER the request's `cache.searchParams` filter:
258
+ * a URL whose only params are excluded ones (`?fbclid=…` under a tracking
259
+ * exclusion) matches the baked shell — ad-click traffic is exactly the
260
+ * traffic the shell was prerendered for.
255
261
  */
256
262
  export async function lookupBuildShell(
257
263
  url: URL,
258
264
  buildVersion: string,
259
265
  store: SegmentCacheStore,
260
266
  dev?: DevShellLookup,
267
+ filter?: SearchParamsFilter,
261
268
  ): Promise<BuildShellHit | null> {
262
269
  try {
263
270
  // Source-presence first: with no manifest and no dev context this is the
@@ -265,7 +272,7 @@ export async function lookupBuildShell(
265
272
  // the searchParams sort/allocation below.
266
273
  const hasManifest = globalThis.__loadShellManifestModule !== undefined;
267
274
  if (!hasManifest && !dev) return null;
268
- if (sortedSearchString(url.searchParams) !== "") return null;
275
+ if (sortedSearchString(url.searchParams, filter) !== "") return null;
269
276
  let record: BuildShellEntry | undefined;
270
277
  if (hasManifest) {
271
278
  const mod = await loadManifest();
@@ -945,8 +945,9 @@ export function scheduleShellCapture(
945
945
  * I/O failure is reported separately and does NOT make the attempt retryable —
946
946
  * the capture itself worked).
947
947
  * - `redirect`: the matched route redirects, so there is no shell to capture.
948
- * - `no-shell`: the prelude came back trivial (no <body>) OR captureShellHTML
949
- * rejected with our own abort. This is the only RETRYABLE outcome.
948
+ * - `no-shell`: captureShellHTML returned null because the prelude was unusable
949
+ * or its private capture abort landed before the shell completed. This is the
950
+ * only RETRYABLE outcome.
950
951
  */
951
952
  type CaptureAttemptOutcome = "stored" | "redirect" | "no-shell" | "refused";
952
953
 
@@ -995,9 +996,9 @@ type CaptureAttemptStats = Pick<
995
996
  * when we froze the shell; the attempt itself warmed the module graph, so a second
996
997
  * attempt a short beat later usually completes the shell in the SAME background
997
998
  * task. That kills the old multi-request warmup where the caller had to re-issue
998
- * several HTTP requests before a capture stuck. We retry ONLY on `no-shell` (and a
999
- * defensively-caught abort); a genuine render error is NOT retried — it propagates
1000
- * to scheduleShellCapture's reportCacheError. See docs/design/ppr-shell-resume.md.
999
+ * several HTTP requests before a capture stuck. We retry ONLY on `no-shell`; a
1000
+ * genuine render error is NOT retried — it propagates to scheduleShellCapture's
1001
+ * reportCacheError. See docs/design/ppr-shell-resume.md.
1001
1002
  *
1002
1003
  * `retryDelayMs` is a parameter (defaulting to the module const) so unit tests can
1003
1004
  * drive the retry without a real 400ms wall-clock wait.
@@ -1329,6 +1330,10 @@ export function deriveShellCaptureContext(
1329
1330
  derivedCtx._explicitTaggedStores = new Set();
1330
1331
  derivedCtx._transitionWhen = [];
1331
1332
  derivedCtx._shellCaptureRun = true;
1333
+ // Own-property reset: an inherited flag would make serializeSegments store
1334
+ // a double-encoded fragment. No current arming site reaches a capture
1335
+ // render (kept as defense-in-depth for a future one).
1336
+ derivedCtx._shellFragmentPayload = false;
1332
1337
  derivedCtx._metricsStore = undefined;
1333
1338
  // Spans, like perf metrics above, are a FOREGROUND surface: the capture
1334
1339
  // re-render must not emit a second rango.render/loader/ssr set after the
@@ -1395,9 +1400,10 @@ export function deriveShellCaptureContext(
1395
1400
  * capture worked; only the store I/O failed). `ssrModule.captureShellHTML` MUST be
1396
1401
  * present (eligibility is checked before scheduling).
1397
1402
  *
1398
- * A `no-shell` result (trivial prelude, or a defensively-caught abort) is the only
1399
- * retryable outcome; a genuine (non-abort) captureShellHTML error propagates so it
1400
- * reaches reportCacheError and is NOT retried.
1403
+ * A `no-shell` result from captureShellHTML is the only retryable outcome. Every
1404
+ * captureShellHTML error propagates to reportCacheError and is NOT retried. The
1405
+ * capture handler converts only its own private abort sentinel to null before this
1406
+ * layer sees it.
1401
1407
  */
1402
1408
  async function captureAndStoreShell(
1403
1409
  ssrModule: SSRModule,
@@ -1504,19 +1510,13 @@ async function captureAndStoreShell(
1504
1510
  }),
1505
1511
  );
1506
1512
  } catch (error) {
1507
- // Guard-tripped rejection arrives here (not at the drain) refuse
1508
- // BEFORE the AbortError-vs-rethrow decision below.
1513
+ // Guard-tripped rejection arrives here (not at the drain), so refuse it
1514
+ // before propagating other capture errors.
1509
1515
  const refused = refuseOnGuardTrip();
1510
1516
  if (refused) return refused;
1511
- // captureShellHTML normally converts its OWN deliberate abort to a null
1512
- // return (index.tsx). This catch is defensive: if an AbortError still escapes
1513
- // (a runtime where the abort surfaces as a stream rejection outside its
1514
- // guard), treat it as the same retryable "no usable shell" degradation rather
1515
- // than a failure — do NOT report it as an error. A genuine (non-abort) render
1516
- // error is a real failure: rethrow so it reaches reportCacheError (no retry).
1517
- if ((error as { name?: string } | null)?.name === "AbortError") {
1518
- return "no-shell";
1519
- }
1517
+ // captureShellHTML converts its OWN deliberate abort to null by sentinel
1518
+ // identity. An escaped AbortError can therefore be a component's real
1519
+ // cancellation and must not be hidden or retried by name.
1520
1520
  throw error;
1521
1521
  }
1522
1522
 
@@ -1707,6 +1707,11 @@ async function captureAndStoreShell(
1707
1707
  // ShellCacheEntry.initialTheme.
1708
1708
  initialTheme: reqCtx.theme,
1709
1709
  snapshot,
1710
+ // The canonical doc segment record's key, published by the doc
1711
+ // scope's cacheRoute during this capture's match (undefined when no
1712
+ // doc record was recorded — the entry then never claims navigation
1713
+ // replayability). Only meaningful alongside a snapshot.
1714
+ docKey: snapshot ? reqCtx._shellImplicitCache?.docKey : undefined,
1710
1715
  navigationOnly: capture.navigationOnly,
1711
1716
  // Handler-layer liveness folded at the barrier: nested thenables in
1712
1717
  // handler-scoped pushes, handler pushes still pending (liveness
@@ -19,6 +19,7 @@
19
19
  import React from "react";
20
20
  import { isPprEntry, type EntryData } from "../server/context.js";
21
21
  import { sortedSearchString } from "../cache/cache-key-utils.js";
22
+ import type { SearchParamsFilter } from "../cache/search-params-filter.js";
22
23
  import type { ShellCacheEntry, SegmentCacheStore } from "../cache/types.js";
23
24
  import { SHELL_CAPTURE_MAX_WAIT_MS } from "./shell-capture-constants.js";
24
25
 
@@ -117,9 +118,14 @@ export function resolvePprConfig(
117
118
  * The key includes the request HOST: in a multi-tenant host-router deployment
118
119
  * (one worker, one shared KV/runtime-cache store) a host-less key would serve
119
120
  * tenant A's captured shell to tenant B's users.
121
+ *
122
+ * `filter` is the request's compiled `cache.searchParams` config
123
+ * (ctx._searchParamsFilter): excluded params collapse onto one shell slot.
124
+ * Callers on the serve/capture path MUST pass it -- key drift between capture
125
+ * and lookup makes every shell request a permanent miss.
120
126
  */
121
- export function buildShellKey(url: URL): string {
122
- const sorted = sortedSearchString(url.searchParams);
127
+ export function buildShellKey(url: URL, filter?: SearchParamsFilter): string {
128
+ const sorted = sortedSearchString(url.searchParams, filter);
123
129
  const searchSuffix = sorted ? `?${sorted}` : "";
124
130
  return `${url.host}${url.pathname}${searchSuffix}:shell`;
125
131
  }