@rangojs/router 0.0.0-experimental.7dc955ec → 0.0.0-experimental.7f5e6b80

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