@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
@@ -35,11 +35,14 @@ import type {
35
35
  CacheItemResult,
36
36
  CacheItemOptions,
37
37
  ShellCacheEntry,
38
+ CacheReadError,
38
39
  } from "../types.js";
40
+ import { CACHE_READ_ERROR } from "../types.js";
39
41
  import {
40
42
  _getRequestContext,
41
43
  type RequestContext,
42
44
  } from "../../server/request-context.js";
45
+ import { INTERNAL_RANGO_DEBUG } from "../../internal-debug.js";
43
46
  import { VERSION } from "@rangojs/router:version";
44
47
  import {
45
48
  isPerClientSignalHeader,
@@ -260,10 +263,10 @@ interface KVItemEnvelope {
260
263
  }
261
264
 
262
265
  /**
263
- * KV envelope for PPR shell cache entries.
266
+ * Coupled Cache API/KV envelope for PPR shell cache entries.
264
267
  * @internal
265
268
  */
266
- interface KVShellEnvelope {
269
+ interface CFShellEnvelope {
267
270
  /** base64-encoded prelude bytes */
268
271
  p: string;
269
272
  /** postponed state JSON, or null (DATA variant — no holes) */
@@ -286,6 +289,14 @@ interface KVShellEnvelope {
286
289
  i?: string;
287
290
  /** Capture data snapshot: recorded cache-store hits/writes for HIT parity */
288
291
  sn?: import("../types.js").ShellSnapshotRecord[];
292
+ /**
293
+ * ShellCacheEntry.docKey. Must round-trip: navigation-replay eligibility
294
+ * requires the exact canonical doc segment record named here — dropping the
295
+ * field reads back as "no consumable record" and every partial navigation
296
+ * reports `no-segment-snapshot` after a KV round trip (the memory store
297
+ * passes the entry by reference, so only envelope stores can lose it).
298
+ */
299
+ dk?: string;
289
300
  /**
290
301
  * ShellCacheEntry.handlerLiveHoles. Must round-trip: the serve side arms the
291
302
  * handler-free fast path on `!entry.handlerLiveHoles`, so dropping the flag
@@ -299,6 +310,67 @@ interface KVShellEnvelope {
299
310
  no?: true;
300
311
  }
301
312
 
313
+ type CFShellDebugOutcome =
314
+ | "l1-hit"
315
+ | "l1-miss"
316
+ | "kv-hit"
317
+ | "kv-miss"
318
+ | "kv-promoted"
319
+ | "marker-invalidated"
320
+ | "l1-stored"
321
+ | "kv-stored"
322
+ | "write-invalidated";
323
+
324
+ interface CFShellDebugDetails {
325
+ tier?: "l1" | "kv";
326
+ reason?:
327
+ | "absent"
328
+ | "timeout"
329
+ | "error"
330
+ | "non-200"
331
+ | "corrupt"
332
+ | "malformed"
333
+ | "expired"
334
+ | "unavailable";
335
+ freshness?: "fresh" | "stale";
336
+ status?: number;
337
+ matchMs?: number;
338
+ bodyReadMs?: number;
339
+ markerMs?: number;
340
+ readMs?: number;
341
+ expiresAt?: number;
342
+ remainingTtl?: number;
343
+ }
344
+
345
+ /** Validate the coupled PPR shell envelope before any field reaches resume. */
346
+ function isShellEnvelope(value: unknown): value is CFShellEnvelope {
347
+ if (value == null || typeof value !== "object") return false;
348
+ const envelope = value as Partial<CFShellEnvelope>;
349
+ return (
350
+ typeof envelope.p === "string" &&
351
+ (envelope.po === null || typeof envelope.po === "string") &&
352
+ typeof envelope.rv === "string" &&
353
+ (envelope.bv === undefined || typeof envelope.bv === "string") &&
354
+ typeof envelope.c === "number" &&
355
+ Number.isFinite(envelope.c) &&
356
+ typeof envelope.s === "number" &&
357
+ Number.isFinite(envelope.s) &&
358
+ typeof envelope.e === "number" &&
359
+ Number.isFinite(envelope.e) &&
360
+ (envelope.t === undefined ||
361
+ (Array.isArray(envelope.t) &&
362
+ envelope.t.every((tag) => typeof tag === "string"))) &&
363
+ (envelope.ta === undefined ||
364
+ (typeof envelope.ta === "number" && Number.isFinite(envelope.ta))) &&
365
+ (envelope.i === undefined || typeof envelope.i === "string") &&
366
+ (envelope.sn === undefined || Array.isArray(envelope.sn)) &&
367
+ (envelope.dk === undefined || typeof envelope.dk === "string") &&
368
+ (envelope.lh === undefined || typeof envelope.lh === "boolean") &&
369
+ (envelope.tw === undefined || envelope.tw === true) &&
370
+ (envelope.no === undefined || envelope.no === true)
371
+ );
372
+ }
373
+
302
374
  /**
303
375
  * KV envelope for document cache entries.
304
376
  * @internal
@@ -505,6 +577,36 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
505
577
  }
506
578
  }
507
579
 
580
+ /** Build-time-gated shell tier trace for deployed cross-colo diagnostics. */
581
+ private debugShell(
582
+ key: string,
583
+ outcome: CFShellDebugOutcome,
584
+ details: CFShellDebugDetails = {},
585
+ ): void {
586
+ if (!INTERNAL_RANGO_DEBUG) return;
587
+ const request = _getRequestContext()?.request as
588
+ | (Request & { cf?: { colo?: unknown } })
589
+ | undefined;
590
+ const ray = request?.headers.get("cf-ray") ?? undefined;
591
+ const cfColo = request?.cf?.colo;
592
+ const colo =
593
+ typeof cfColo === "string"
594
+ ? cfColo
595
+ : ray?.includes("-")
596
+ ? ray.slice(ray.lastIndexOf("-") + 1)
597
+ : undefined;
598
+ console.log(
599
+ `[CFCacheStore][shell] ${JSON.stringify({
600
+ key,
601
+ outcome,
602
+ at: Date.now(),
603
+ ray,
604
+ colo,
605
+ ...details,
606
+ })}`,
607
+ );
608
+ }
609
+
508
610
  /**
509
611
  * Resolve the cache-key base URL for the current cache operation.
510
612
  * Prefers an explicit `baseUrl` option; otherwise derives it from the live
@@ -883,7 +985,7 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
883
985
  * On L1 miss, falls back to KV (L2) if configured.
884
986
  * KV hits are promoted to L1 in the background.
885
987
  */
886
- async get(key: string): Promise<CacheGetResult | null> {
988
+ async get(key: string): Promise<CacheGetResult | null | CacheReadError> {
887
989
  if (this.isReservedSegmentKey(key, "cache-read")) return null;
888
990
  try {
889
991
  const cache = await this.getCache();
@@ -897,27 +999,40 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
897
999
  const matchMs = Date.now() - matchStart;
898
1000
 
899
1001
  if (!response) {
900
- // A transient L1 match error (matchError set) is reported as cache-read
901
- // but, like a genuine miss or an abandoned slow match (timedOut), still
902
- // degrades to L2/KV rather than failing the read.
903
- if (matchError)
1002
+ if (matchError) {
1003
+ // A match REJECTION is reported as cache-read and still degrades to
1004
+ // L2/KV -- a real KV value (or KV's own CACHE_READ_ERROR) stands on
1005
+ // its own. But a null KV result (unconfigured namespace, kv-miss,
1006
+ // kv-timeout) is NOT proof of absence under a rejected L1 match:
1007
+ // the only real signal this read produced is the failure, so
1008
+ // surface CACHE_READ_ERROR instead of a replayable miss (the PPR
1009
+ // seeded fallback must render uncached, not substitute the doc
1010
+ // record for a partition the store could not actually read).
904
1011
  reportCacheError(
905
1012
  matchError,
906
1013
  "cache-read",
907
1014
  "[CFCacheStore] get L1 match",
908
1015
  );
1016
+ if (this.debug)
1017
+ this.emitDebug({
1018
+ op: "get",
1019
+ key,
1020
+ // Distinct from a genuine absence: surface it as match-error so
1021
+ // debug agrees with the cache-read already routed to onError,
1022
+ // instead of masquerading as l1-miss.
1023
+ outcome: "match-error",
1024
+ matchMs,
1025
+ });
1026
+ const kvResult = await this.kvGetSegment(key);
1027
+ return kvResult ?? CACHE_READ_ERROR;
1028
+ }
1029
+ // An abandoned slow match (timedOut) keeps the fail-open latency-budget
1030
+ // policy: degrade to L2/KV, and a KV null stays a miss.
909
1031
  if (this.debug)
910
1032
  this.emitDebug({
911
1033
  op: "get",
912
1034
  key,
913
- // A match REJECTION (matchError) is distinct from a genuine absence:
914
- // surface it as match-error so debug agrees with the cache-read
915
- // already routed to onError, instead of masquerading as l1-miss.
916
- outcome: matchError
917
- ? "match-error"
918
- : timedOut
919
- ? "match-timeout"
920
- : "l1-miss",
1035
+ outcome: timedOut ? "match-timeout" : "l1-miss",
921
1036
  matchMs,
922
1037
  });
923
1038
  return this.kvGetSegment(key);
@@ -1098,7 +1213,9 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1098
1213
  // emit is the separate wrangler-tail signal. Keep both observability paths.
1099
1214
  reportCacheError(error, "cache-read", "[CFCacheStore] get");
1100
1215
  if (this.debug) this.emitDebug({ op: "get", key, outcome: "error" });
1101
- return null;
1216
+ // Distinct from a miss so the PPR replay composition renders uncached
1217
+ // instead of substituting the seeded doc record (CACHE_READ_ERROR).
1218
+ return CACHE_READ_ERROR;
1102
1219
  }
1103
1220
  }
1104
1221
 
@@ -1740,17 +1857,18 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1740
1857
  }
1741
1858
 
1742
1859
  // ============================================================================
1743
- // Shell Cache Methods (PPR shell resume) — KV-only in v1
1860
+ // Shell Cache Methods (PPR shell resume) — Cache API L1 + KV L2
1744
1861
  // ============================================================================
1745
1862
  //
1746
- // Unlike the segment/item/document tiers, the shell family has NO Cache-API L1
1747
- // tier: the prelude bytes + postponed blob are large and version-coupled, and a
1748
- // per-colo L1 for them is a deliberate follow-up (see the PPR shell-resume
1749
- // design doc). Shell entries live only in KV (the global tier), so the family
1750
- // requires a configured KV namespace; without one, getShell/putShell no-op and
1751
- // the integrated PPR serve path fails open to a full HTML render. Tag invalidation
1752
- // still applies: shell entries carry tags/taggedAt and are checked against the
1753
- // same KV markers isGloballyInvalidated() reads for every other tier.
1863
+ // KV remains the durable, cross-colo shell tier. Cache API is a per-colo
1864
+ // read-through accelerator: writes populate both tiers, and a valid KV hit
1865
+ // promotes the same coupled envelope into L1. The family still requires KV;
1866
+ // without it, getShell/putShell no-op and PPR fails open to a full HTML render.
1867
+ //
1868
+ // Shell L1 hits deliberately keep the KV generation-marker check even in
1869
+ // purge mode. A shell's taggedAt is its CAPTURE START, not its write time: an
1870
+ // invalidation can purge while an older capture is still running, then that
1871
+ // capture can land after the purge. The marker check rejects that resurrection.
1754
1872
 
1755
1873
  /**
1756
1874
  * Warn once per isolate that the shell family is inert: getShell/putShell
@@ -1774,10 +1892,10 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1774
1892
  }
1775
1893
 
1776
1894
  /**
1777
- * Get a cached PPR shell entry by key from KV (no L1). Applies the KV read
1778
- * budget, corrupt-entry eviction, hard-expiry, and tag invalidation exactly
1779
- * like kvGetItem, minus the L1 promote. SWR is a plain staleness flag — KV has
1780
- * no REVALIDATING herd guard, so the capture scheduler's module-level
1895
+ * Get a cached PPR shell entry from Cache API, falling through to KV and
1896
+ * promoting a valid KV hit. Both tiers store one envelope so the prelude,
1897
+ * postponed state, snapshot, versions, and generation metadata cannot mix.
1898
+ * SWR remains a plain staleness flag; the capture scheduler's module-level
1781
1899
  * in-flight set is the recapture stampede guard.
1782
1900
  */
1783
1901
  async getShell(
@@ -1788,55 +1906,128 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1788
1906
  return null;
1789
1907
  }
1790
1908
  try {
1791
- const kvKey = this.toKVKey(`shell:${key}`);
1792
- const { value: envelope, timedOut } =
1793
- await this.kvGetOrEvict<KVShellEnvelope>(
1794
- kvKey,
1795
- (e) =>
1796
- typeof e.p === "string" &&
1797
- (e.po === null || typeof e.po === "string") &&
1798
- typeof e.rv === "string" &&
1799
- typeof e.e === "number" &&
1800
- typeof e.s === "number",
1909
+ const cache = await this.getCache();
1910
+ const request = this.keyToRequest(`shell:${key}`);
1911
+ const matchStartedAt = INTERNAL_RANGO_DEBUG ? Date.now() : 0;
1912
+ const {
1913
+ response,
1914
+ timedOut,
1915
+ error: matchError,
1916
+ } = await this.matchWithTimeout(cache, request);
1917
+ const matchMs = INTERNAL_RANGO_DEBUG
1918
+ ? Date.now() - matchStartedAt
1919
+ : undefined;
1920
+
1921
+ if (!response) {
1922
+ if (matchError) {
1923
+ reportCacheError(
1924
+ matchError,
1925
+ "cache-read",
1926
+ "[CFCacheStore] getShell L1 match",
1927
+ );
1928
+ }
1929
+ this.debugShell(key, "l1-miss", {
1930
+ reason: matchError ? "error" : timedOut ? "timeout" : "absent",
1931
+ matchMs,
1932
+ });
1933
+ return this.kvGetShell(key);
1934
+ }
1935
+ if (response.status !== 200) {
1936
+ this.debugShell(key, "l1-miss", {
1937
+ reason: "non-200",
1938
+ status: response.status,
1939
+ matchMs,
1940
+ });
1941
+ return this.kvGetShell(key);
1942
+ }
1943
+
1944
+ const bodyStartedAt = INTERNAL_RANGO_DEBUG ? Date.now() : 0;
1945
+ const { value, errored, error } =
1946
+ await this.readJsonWithTimeout<unknown>(response);
1947
+ const bodyReadMs = INTERNAL_RANGO_DEBUG
1948
+ ? Date.now() - bodyStartedAt
1949
+ : undefined;
1950
+ if (value === undefined) {
1951
+ this.debugShell(key, "l1-miss", {
1952
+ reason: errored ? "corrupt" : "timeout",
1953
+ matchMs,
1954
+ bodyReadMs,
1955
+ });
1956
+ if (errored) {
1957
+ return this.healCorruptL1(cache, request, error, "getShell", () =>
1958
+ this.kvGetShell(key),
1959
+ );
1960
+ }
1961
+ return this.kvGetShell(key);
1962
+ }
1963
+ if (!isShellEnvelope(value)) {
1964
+ this.debugShell(key, "l1-miss", {
1965
+ reason: "malformed",
1966
+ matchMs,
1967
+ bodyReadMs,
1968
+ });
1969
+ return this.healCorruptL1(
1970
+ cache,
1971
+ request,
1972
+ new Error("malformed/partial L1 shell envelope"),
1801
1973
  "getShell",
1974
+ () => this.kvGetShell(key),
1802
1975
  );
1803
- // A timeout, a missing key, or an already-evicted corrupt entry is a miss.
1804
- if (timedOut || !envelope) return null;
1976
+ }
1805
1977
 
1806
1978
  const now = Date.now();
1807
- if (now > envelope.e) return null;
1979
+ if (now > value.e) {
1980
+ this.debugShell(key, "l1-miss", {
1981
+ reason: "expired",
1982
+ matchMs,
1983
+ bodyReadMs,
1984
+ expiresAt: value.e,
1985
+ });
1986
+ return this.kvGetShell(key);
1987
+ }
1808
1988
 
1809
- if (await this.isGloballyInvalidated(envelope.t, envelope.ta)) {
1989
+ // Unlike other L1 families, shells always check the durable generation
1990
+ // marker. See the capture-start/purge race documented above.
1991
+ const markerStartedAt = INTERNAL_RANGO_DEBUG ? Date.now() : 0;
1992
+ const invalidated = await this.isGloballyInvalidated(value.t, value.ta);
1993
+ const markerMs = INTERNAL_RANGO_DEBUG
1994
+ ? Date.now() - markerStartedAt
1995
+ : undefined;
1996
+ if (invalidated) {
1997
+ this.debugShell(key, "marker-invalidated", {
1998
+ tier: "l1",
1999
+ matchMs,
2000
+ bodyReadMs,
2001
+ markerMs,
2002
+ });
1810
2003
  return null;
1811
2004
  }
1812
2005
 
1813
- const shouldRevalidate = envelope.s > 0 && now > envelope.s;
2006
+ const shouldRevalidate = value.s > 0 && now > value.s;
2007
+ this.debugShell(key, "l1-hit", {
2008
+ freshness: shouldRevalidate ? "stale" : "fresh",
2009
+ matchMs,
2010
+ bodyReadMs,
2011
+ markerMs,
2012
+ expiresAt: value.e,
2013
+ });
1814
2014
  return {
1815
- entry: {
1816
- prelude: envelope.p,
1817
- postponed: envelope.po,
1818
- reactVersion: envelope.rv,
1819
- buildVersion: envelope.bv,
1820
- initialTheme: envelope.i,
1821
- snapshot: envelope.sn,
1822
- handlerLiveHoles: envelope.lh,
1823
- transitionWhen: envelope.tw,
1824
- navigationOnly: envelope.no,
1825
- createdAt: envelope.c,
1826
- },
2015
+ entry: this.shellEnvelopeToEntry(value),
1827
2016
  shouldRevalidate,
1828
2017
  };
1829
2018
  } catch (error) {
1830
2019
  reportCacheError(error, "cache-read", "[CFCacheStore] getShell");
1831
- return null;
2020
+ this.debugShell(key, "l1-miss", { reason: "error" });
2021
+ return this.kvGetShell(key);
1832
2022
  }
1833
2023
  }
1834
2024
 
1835
2025
  /**
1836
- * Store a PPR shell entry in KV with TTL and optional SWR window. The write is
1837
- * registered with waitUntil and awaited so invalidation rejection can be
1838
- * acknowledged to the capture scheduler. The tags/taggedAt ride in the envelope
1839
- * so isGloballyInvalidated() can invalidate the shell via the shared KV markers.
2026
+ * Store a PPR shell envelope in Cache API and, when its retention meets KV's
2027
+ * 60-second floor, KV. The shared write is registered with waitUntil and
2028
+ * awaited so invalidation rejection can be acknowledged to the capture
2029
+ * scheduler. Short-lived shells remain useful in L1 even though KV rejects
2030
+ * them.
1840
2031
  */
1841
2032
  async putShell(
1842
2033
  key: string,
@@ -1845,9 +2036,7 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1845
2036
  swrSeconds?: number,
1846
2037
  tags?: string[],
1847
2038
  ): Promise<"stored" | "invalidated" | void> {
1848
- // KV-only tier: needs a KV namespace and waitUntil. The same write promise is
1849
- // registered for isolate lifetime and awaited so invalidation rejection can
1850
- // be acknowledged to the capture scheduler.
2039
+ // KV remains required for durable generation markers and cross-colo reads.
1851
2040
  if (!this.kv) {
1852
2041
  this.warnShellFamilyInertOnce();
1853
2042
  return;
@@ -1857,9 +2046,6 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1857
2046
  const ttl = resolveTtl(ttlSeconds, this.defaults, DEFAULT_FUNCTION_TTL);
1858
2047
  const swrWindow = resolveSwrWindow(swrSeconds, this.defaults);
1859
2048
  const totalTtl = ttl + swrWindow;
1860
- // KV requires expirationTtl >= 60s; skip a shorter-lived shell rather than
1861
- // letting kv.put reject inside waitUntil (mirrors setItem/kvSetSegment).
1862
- if (totalTtl < 60) return;
1863
2049
 
1864
2050
  const retentionTtl =
1865
2051
  tags && tags.length > 0 && this.tagInvalidationTtl
@@ -1872,54 +2058,93 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1872
2058
  Array.isArray(tags) && tags.length > 0 ? entry.createdAt : undefined;
1873
2059
 
1874
2060
  const kvKey = this.toKVKey(`shell:${key}`);
1875
- // A key over the KV limit makes kv.put reject deep inside waitUntil; report
1876
- // and skip the doomed write (mirrors kvSetSegment).
2061
+ let writeKv = retentionTtl >= KV_MIN_EXPIRATION_TTL;
1877
2062
  const kvKeyBytes = kvKeyByteLength(kvKey);
1878
2063
  if (kvKeyBytes > KV_MAX_KEY_BYTES) {
1879
2064
  reportCacheError(
1880
2065
  new Error(
1881
2066
  `shell cache key produces a ${kvKeyBytes}-byte KV key, over the ` +
1882
- `${KV_MAX_KEY_BYTES}-byte limit; the shell was not persisted.`,
2067
+ `${KV_MAX_KEY_BYTES}-byte limit; the shell was not persisted to KV (L2).`,
1883
2068
  ),
1884
2069
  "cache-write",
1885
2070
  "[CFCacheStore] putShell",
1886
2071
  );
1887
- return;
2072
+ writeKv = false;
1888
2073
  }
1889
2074
 
1890
2075
  const write = (async (): Promise<"stored" | "invalidated" | void> => {
1891
- try {
1892
- if (
1893
- tags &&
1894
- tags.length > 0 &&
1895
- (await this.isGloballyInvalidated(tags, entry.createdAt))
1896
- ) {
1897
- return "invalidated";
1898
- }
1899
- const envelope: KVShellEnvelope = {
1900
- p: entry.prelude,
1901
- po: entry.postponed,
1902
- rv: entry.reactVersion,
1903
- bv: entry.buildVersion,
1904
- c: entry.createdAt,
1905
- s: staleAt,
1906
- e: expiresAt,
1907
- t: tags,
1908
- ta: taggedAt,
1909
- i: entry.initialTheme,
1910
- sn: entry.snapshot,
1911
- lh: entry.handlerLiveHoles,
1912
- tw: entry.transitionWhen,
1913
- no: entry.navigationOnly,
1914
- };
1915
- await this.kv!.put(kvKey, JSON.stringify(envelope), {
1916
- expirationTtl: retentionTtl,
1917
- });
1918
- return "stored";
1919
- } catch (error) {
1920
- reportCacheError(error, "cache-write", "[CFCacheStore] putShell");
1921
- return undefined;
2076
+ if (
2077
+ tags &&
2078
+ tags.length > 0 &&
2079
+ (await this.isGloballyInvalidated(tags, entry.createdAt))
2080
+ ) {
2081
+ this.debugShell(key, "write-invalidated");
2082
+ return "invalidated";
2083
+ }
2084
+
2085
+ const envelope: CFShellEnvelope = {
2086
+ p: entry.prelude,
2087
+ po: entry.postponed,
2088
+ rv: entry.reactVersion,
2089
+ bv: entry.buildVersion,
2090
+ c: entry.createdAt,
2091
+ s: staleAt,
2092
+ e: expiresAt,
2093
+ t: tags,
2094
+ ta: taggedAt,
2095
+ i: entry.initialTheme,
2096
+ sn: entry.snapshot,
2097
+ dk: entry.docKey,
2098
+ lh: entry.handlerLiveHoles,
2099
+ tw: entry.transitionWhen,
2100
+ no: entry.navigationOnly,
2101
+ };
2102
+ const body = JSON.stringify(envelope);
2103
+ const writes: Promise<boolean>[] = [
2104
+ (async () => {
2105
+ try {
2106
+ const cache = await this.getCache();
2107
+ await cache.put(
2108
+ this.keyToRequest(`shell:${key}`),
2109
+ this.shellEnvelopeResponse(body, envelope),
2110
+ );
2111
+ this.debugShell(key, "l1-stored", {
2112
+ expiresAt: envelope.e,
2113
+ });
2114
+ return true;
2115
+ } catch (error) {
2116
+ reportCacheError(
2117
+ error,
2118
+ "cache-write",
2119
+ "[CFCacheStore] putShell L1",
2120
+ );
2121
+ return false;
2122
+ }
2123
+ })(),
2124
+ ];
2125
+ if (writeKv) {
2126
+ writes.push(
2127
+ (async () => {
2128
+ try {
2129
+ await this.kv!.put(kvKey, body, {
2130
+ expirationTtl: retentionTtl,
2131
+ });
2132
+ this.debugShell(key, "kv-stored", {
2133
+ expiresAt: envelope.e,
2134
+ });
2135
+ return true;
2136
+ } catch (error) {
2137
+ reportCacheError(
2138
+ error,
2139
+ "cache-write",
2140
+ "[CFCacheStore] putShell L2",
2141
+ );
2142
+ return false;
2143
+ }
2144
+ })(),
2145
+ );
1922
2146
  }
2147
+ return (await Promise.all(writes)).some(Boolean) ? "stored" : undefined;
1923
2148
  })();
1924
2149
  this.waitUntil(async () => {
1925
2150
  await write;
@@ -1930,6 +2155,141 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
1930
2155
  }
1931
2156
  }
1932
2157
 
2158
+ /** Rebuild the public shell entry from its validated storage envelope. */
2159
+ private shellEnvelopeToEntry(envelope: CFShellEnvelope): ShellCacheEntry {
2160
+ return {
2161
+ prelude: envelope.p,
2162
+ postponed: envelope.po,
2163
+ reactVersion: envelope.rv,
2164
+ buildVersion: envelope.bv,
2165
+ initialTheme: envelope.i,
2166
+ snapshot: envelope.sn,
2167
+ docKey: envelope.dk,
2168
+ handlerLiveHoles: envelope.lh,
2169
+ transitionWhen: envelope.tw,
2170
+ navigationOnly: envelope.no,
2171
+ createdAt: envelope.c,
2172
+ };
2173
+ }
2174
+
2175
+ /** Build the Cache API representation of the coupled shell envelope. */
2176
+ private shellEnvelopeResponse(
2177
+ body: string,
2178
+ envelope: CFShellEnvelope,
2179
+ ): Response {
2180
+ const remainingTtl = Math.max(
2181
+ 1,
2182
+ Math.floor((envelope.e - Date.now()) / 1000),
2183
+ );
2184
+ return new Response(body, {
2185
+ headers: {
2186
+ "Content-Type": "application/json",
2187
+ "Cache-Control": `public, max-age=${remainingTtl}`,
2188
+ [CACHE_STALE_AT_HEADER]: String(envelope.s),
2189
+ [CACHE_EXPIRES_AT_HEADER]: String(envelope.e),
2190
+ [CACHE_STATUS_HEADER]: "HIT",
2191
+ ...this.tagHeaderEntries(envelope.t, envelope.ta),
2192
+ },
2193
+ });
2194
+ }
2195
+
2196
+ /** KV shell fallback with corruption checks and background L1 promotion. */
2197
+ private async kvGetShell(
2198
+ key: string,
2199
+ ): Promise<{ entry: ShellCacheEntry; shouldRevalidate?: boolean } | null> {
2200
+ if (!this.kv) return null;
2201
+ try {
2202
+ const readStartedAt = INTERNAL_RANGO_DEBUG ? Date.now() : 0;
2203
+ const kvKey = this.toKVKey(`shell:${key}`);
2204
+ const { value: envelope, timedOut } =
2205
+ await this.kvGetOrEvict<CFShellEnvelope>(
2206
+ kvKey,
2207
+ isShellEnvelope,
2208
+ "getShell",
2209
+ );
2210
+ const readMs = INTERNAL_RANGO_DEBUG
2211
+ ? Date.now() - readStartedAt
2212
+ : undefined;
2213
+ if (timedOut || !envelope) {
2214
+ this.debugShell(key, "kv-miss", {
2215
+ reason: timedOut ? "timeout" : "unavailable",
2216
+ readMs,
2217
+ });
2218
+ return null;
2219
+ }
2220
+
2221
+ const now = Date.now();
2222
+ if (now > envelope.e) {
2223
+ this.debugShell(key, "kv-miss", {
2224
+ reason: "expired",
2225
+ readMs,
2226
+ expiresAt: envelope.e,
2227
+ });
2228
+ return null;
2229
+ }
2230
+ const markerStartedAt = INTERNAL_RANGO_DEBUG ? Date.now() : 0;
2231
+ const invalidated = await this.isGloballyInvalidated(
2232
+ envelope.t,
2233
+ envelope.ta,
2234
+ );
2235
+ const markerMs = INTERNAL_RANGO_DEBUG
2236
+ ? Date.now() - markerStartedAt
2237
+ : undefined;
2238
+ if (invalidated) {
2239
+ this.debugShell(key, "marker-invalidated", {
2240
+ tier: "kv",
2241
+ readMs,
2242
+ markerMs,
2243
+ });
2244
+ return null;
2245
+ }
2246
+
2247
+ const shouldRevalidate = envelope.s > 0 && now > envelope.s;
2248
+ this.debugShell(key, "kv-hit", {
2249
+ freshness: shouldRevalidate ? "stale" : "fresh",
2250
+ readMs,
2251
+ markerMs,
2252
+ expiresAt: envelope.e,
2253
+ });
2254
+ this.promoteShellToL1(key, envelope);
2255
+ return {
2256
+ entry: this.shellEnvelopeToEntry(envelope),
2257
+ shouldRevalidate,
2258
+ };
2259
+ } catch (error) {
2260
+ reportCacheError(error, "cache-read", "[CFCacheStore] kvGetShell");
2261
+ this.debugShell(key, "kv-miss", { reason: "error" });
2262
+ return null;
2263
+ }
2264
+ }
2265
+
2266
+ /** Promote a valid KV shell into the per-colo Cache API tier. */
2267
+ private promoteShellToL1(key: string, envelope: CFShellEnvelope): void {
2268
+ if (!this.waitUntil) return;
2269
+ this.waitUntil(() =>
2270
+ reportingAsync(
2271
+ async () => {
2272
+ if (Date.now() > envelope.e) return;
2273
+ const cache = await this.getCache();
2274
+ const body = JSON.stringify(envelope);
2275
+ await cache.put(
2276
+ this.keyToRequest(`shell:${key}`),
2277
+ this.shellEnvelopeResponse(body, envelope),
2278
+ );
2279
+ this.debugShell(key, "kv-promoted", {
2280
+ remainingTtl: Math.max(
2281
+ 1,
2282
+ Math.floor((envelope.e - Date.now()) / 1000),
2283
+ ),
2284
+ expiresAt: envelope.e,
2285
+ });
2286
+ },
2287
+ "cache-write",
2288
+ "[CFCacheStore] promoteShellToL1",
2289
+ ),
2290
+ );
2291
+ }
2292
+
1933
2293
  // ============================================================================
1934
2294
  // Key Helpers
1935
2295
  // ============================================================================
@@ -2817,7 +3177,7 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
2817
3177
  private async kvGetSegment(
2818
3178
  key: string,
2819
3179
  opts?: { suppressRevalidate?: boolean },
2820
- ): Promise<CacheGetResult | null> {
3180
+ ): Promise<CacheGetResult | null | CacheReadError> {
2821
3181
  if (!this.kv) return null;
2822
3182
 
2823
3183
  try {
@@ -2886,7 +3246,15 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
2886
3246
  } catch (error) {
2887
3247
  reportCacheError(error, "cache-read", "[CFCacheStore] kvGetSegment");
2888
3248
  if (this.debug) this.emitDebug({ op: "get", key, outcome: "error" });
2889
- return null;
3249
+ // A KV failure is NOT proof of absence: returning null classified it a
3250
+ // real miss and let the PPR seeded fallback substitute the doc record
3251
+ // for a key partition the store could not actually read. Same sentinel
3252
+ // as get()'s own catch — lookupRouteDetailed classifies it `error` and
3253
+ // the render stays uncached. (A kvGetOrEvict TIMEOUT above stays null
3254
+ // by design: it is a bounded-latency degrade of a likely-healthy read,
3255
+ // and serving the equivalent seeded record there is the fallback
3256
+ // working as intended, not a masked failure.)
3257
+ return CACHE_READ_ERROR;
2890
3258
  }
2891
3259
  }
2892
3260