@rangojs/router 0.0.0-experimental.debug-cache-fix → 0.0.0-experimental.df410dd5

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 (1077) hide show
  1. package/README.md +196 -43
  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 +269 -96
  81. package/dist/bin/rango.js.map +1 -0
  82. package/dist/browser/event-controller.d.ts +191 -0
  83. package/dist/browser/event-controller.d.ts.map +1 -0
  84. package/dist/browser/event-controller.js +559 -0
  85. package/dist/browser/event-controller.js.map +1 -0
  86. package/dist/browser/index.d.ts +2 -0
  87. package/dist/browser/index.d.ts.map +1 -0
  88. package/dist/browser/index.js +14 -0
  89. package/dist/browser/index.js.map +1 -0
  90. package/dist/browser/link-interceptor.d.ts +38 -0
  91. package/dist/browser/link-interceptor.d.ts.map +1 -0
  92. package/dist/browser/link-interceptor.js +99 -0
  93. package/dist/browser/link-interceptor.js.map +1 -0
  94. package/dist/browser/logging.d.ts +10 -0
  95. package/dist/browser/logging.d.ts.map +1 -0
  96. package/dist/browser/logging.js +29 -0
  97. package/dist/browser/logging.js.map +1 -0
  98. package/dist/browser/lru-cache.d.ts +17 -0
  99. package/dist/browser/lru-cache.d.ts.map +1 -0
  100. package/dist/browser/lru-cache.js +50 -0
  101. package/dist/browser/lru-cache.js.map +1 -0
  102. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  103. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  104. package/dist/browser/merge-segment-loaders.js +102 -0
  105. package/dist/browser/merge-segment-loaders.js.map +1 -0
  106. package/dist/browser/navigation-bridge.d.ts +102 -0
  107. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  108. package/dist/browser/navigation-bridge.js +708 -0
  109. package/dist/browser/navigation-bridge.js.map +1 -0
  110. package/dist/browser/navigation-client.d.ts +25 -0
  111. package/dist/browser/navigation-client.d.ts.map +1 -0
  112. package/dist/browser/navigation-client.js +157 -0
  113. package/dist/browser/navigation-client.js.map +1 -0
  114. package/dist/browser/navigation-store.d.ts +101 -0
  115. package/dist/browser/navigation-store.d.ts.map +1 -0
  116. package/dist/browser/navigation-store.js +625 -0
  117. package/dist/browser/navigation-store.js.map +1 -0
  118. package/dist/browser/partial-update.d.ts +75 -0
  119. package/dist/browser/partial-update.d.ts.map +1 -0
  120. package/dist/browser/partial-update.js +426 -0
  121. package/dist/browser/partial-update.js.map +1 -0
  122. package/dist/browser/react/Link.d.ts +86 -0
  123. package/dist/browser/react/Link.d.ts.map +1 -0
  124. package/dist/browser/react/Link.js +128 -0
  125. package/dist/browser/react/Link.js.map +1 -0
  126. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  127. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  128. package/dist/browser/react/NavigationProvider.js +216 -0
  129. package/dist/browser/react/NavigationProvider.js.map +1 -0
  130. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  132. package/dist/browser/react/ScrollRestoration.js +57 -0
  133. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  134. package/dist/browser/react/context.d.ts +46 -0
  135. package/dist/browser/react/context.d.ts.map +1 -0
  136. package/dist/browser/react/context.js +10 -0
  137. package/dist/browser/react/context.js.map +1 -0
  138. package/dist/browser/react/index.d.ts +11 -0
  139. package/dist/browser/react/index.d.ts.map +1 -0
  140. package/dist/browser/react/index.js +22 -0
  141. package/dist/browser/react/index.js.map +1 -0
  142. package/dist/browser/react/location-state-shared.d.ts +63 -0
  143. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  144. package/dist/browser/react/location-state-shared.js +81 -0
  145. package/dist/browser/react/location-state-shared.js.map +1 -0
  146. package/dist/browser/react/location-state.d.ts +23 -0
  147. package/dist/browser/react/location-state.d.ts.map +1 -0
  148. package/dist/browser/react/location-state.js +29 -0
  149. package/dist/browser/react/location-state.js.map +1 -0
  150. package/dist/browser/react/mount-context.d.ts +24 -0
  151. package/dist/browser/react/mount-context.d.ts.map +1 -0
  152. package/dist/browser/react/mount-context.js +24 -0
  153. package/dist/browser/react/mount-context.js.map +1 -0
  154. package/dist/browser/react/use-action.d.ts +64 -0
  155. package/dist/browser/react/use-action.d.ts.map +1 -0
  156. package/dist/browser/react/use-action.js +134 -0
  157. package/dist/browser/react/use-action.js.map +1 -0
  158. package/dist/browser/react/use-client-cache.d.ts +41 -0
  159. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  160. package/dist/browser/react/use-client-cache.js +39 -0
  161. package/dist/browser/react/use-client-cache.js.map +1 -0
  162. package/dist/browser/react/use-handle.d.ts +31 -0
  163. package/dist/browser/react/use-handle.d.ts.map +1 -0
  164. package/dist/browser/react/use-handle.js +144 -0
  165. package/dist/browser/react/use-handle.js.map +1 -0
  166. package/dist/browser/react/use-href.d.ts +33 -0
  167. package/dist/browser/react/use-href.d.ts.map +1 -0
  168. package/dist/browser/react/use-href.js +39 -0
  169. package/dist/browser/react/use-href.js.map +1 -0
  170. package/dist/browser/react/use-link-status.d.ts +37 -0
  171. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  172. package/dist/browser/react/use-link-status.js +99 -0
  173. package/dist/browser/react/use-link-status.js.map +1 -0
  174. package/dist/browser/react/use-mount.d.ts +25 -0
  175. package/dist/browser/react/use-mount.d.ts.map +1 -0
  176. package/dist/browser/react/use-mount.js +30 -0
  177. package/dist/browser/react/use-mount.js.map +1 -0
  178. package/dist/browser/react/use-navigation.d.ts +27 -0
  179. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  180. package/dist/browser/react/use-navigation.js +87 -0
  181. package/dist/browser/react/use-navigation.js.map +1 -0
  182. package/dist/browser/react/use-segments.d.ts +38 -0
  183. package/dist/browser/react/use-segments.d.ts.map +1 -0
  184. package/dist/browser/react/use-segments.js +130 -0
  185. package/dist/browser/react/use-segments.js.map +1 -0
  186. package/dist/browser/request-controller.d.ts +26 -0
  187. package/dist/browser/request-controller.d.ts.map +1 -0
  188. package/dist/browser/request-controller.js +147 -0
  189. package/dist/browser/request-controller.js.map +1 -0
  190. package/dist/browser/rsc-router.d.ts +129 -0
  191. package/dist/browser/rsc-router.d.ts.map +1 -0
  192. package/dist/browser/rsc-router.js +195 -0
  193. package/dist/browser/rsc-router.js.map +1 -0
  194. package/dist/browser/scroll-restoration.d.ts +93 -0
  195. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  196. package/dist/browser/scroll-restoration.js +321 -0
  197. package/dist/browser/scroll-restoration.js.map +1 -0
  198. package/dist/browser/segment-structure-assert.d.ts +17 -0
  199. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  200. package/dist/browser/segment-structure-assert.js +59 -0
  201. package/dist/browser/segment-structure-assert.js.map +1 -0
  202. package/dist/browser/server-action-bridge.d.ts +26 -0
  203. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  204. package/dist/browser/server-action-bridge.js +668 -0
  205. package/dist/browser/server-action-bridge.js.map +1 -0
  206. package/dist/browser/shallow.d.ts +12 -0
  207. package/dist/browser/shallow.d.ts.map +1 -0
  208. package/dist/browser/shallow.js +34 -0
  209. package/dist/browser/shallow.js.map +1 -0
  210. package/dist/browser/types.d.ts +369 -0
  211. package/dist/browser/types.d.ts.map +1 -0
  212. package/dist/browser/types.js +2 -0
  213. package/dist/browser/types.js.map +1 -0
  214. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  216. package/dist/build/__tests__/generate-cli.test.js +237 -0
  217. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  218. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  220. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  221. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  222. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  224. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  225. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  226. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  228. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  230. package/dist/build/generate-manifest.d.ts +81 -0
  231. package/dist/build/generate-manifest.d.ts.map +1 -0
  232. package/dist/build/generate-manifest.js +276 -0
  233. package/dist/build/generate-manifest.js.map +1 -0
  234. package/dist/build/generate-route-types.d.ts +115 -0
  235. package/dist/build/generate-route-types.d.ts.map +1 -0
  236. package/dist/build/generate-route-types.js +740 -0
  237. package/dist/build/generate-route-types.js.map +1 -0
  238. package/dist/build/index.d.ts +21 -0
  239. package/dist/build/index.d.ts.map +1 -0
  240. package/dist/build/index.js +21 -0
  241. package/dist/build/index.js.map +1 -0
  242. package/dist/build/route-trie.d.ts +71 -0
  243. package/dist/build/route-trie.d.ts.map +1 -0
  244. package/dist/build/route-trie.js +175 -0
  245. package/dist/build/route-trie.js.map +1 -0
  246. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  248. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  249. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  250. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  252. package/dist/cache/__tests__/document-cache.test.js +345 -0
  253. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  258. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  260. package/dist/cache/__tests__/memory-store.test.js +367 -0
  261. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  262. package/dist/cache/cache-scope.d.ts +102 -0
  263. package/dist/cache/cache-scope.d.ts.map +1 -0
  264. package/dist/cache/cache-scope.js +440 -0
  265. package/dist/cache/cache-scope.js.map +1 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  270. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  272. package/dist/cache/cf/cf-cache-store.js +242 -0
  273. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  274. package/dist/cache/cf/index.d.ts +14 -0
  275. package/dist/cache/cf/index.d.ts.map +1 -0
  276. package/dist/cache/cf/index.js +17 -0
  277. package/dist/cache/cf/index.js.map +1 -0
  278. package/dist/cache/document-cache.d.ts +64 -0
  279. package/dist/cache/document-cache.d.ts.map +1 -0
  280. package/dist/cache/document-cache.js +228 -0
  281. package/dist/cache/document-cache.js.map +1 -0
  282. package/dist/cache/index.d.ts +19 -0
  283. package/dist/cache/index.d.ts.map +1 -0
  284. package/dist/cache/index.js +21 -0
  285. package/dist/cache/index.js.map +1 -0
  286. package/dist/cache/memory-segment-store.d.ts +110 -0
  287. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  288. package/dist/cache/memory-segment-store.js +117 -0
  289. package/dist/cache/memory-segment-store.js.map +1 -0
  290. package/dist/cache/memory-store.d.ts +41 -0
  291. package/dist/cache/memory-store.d.ts.map +1 -0
  292. package/dist/cache/memory-store.js +191 -0
  293. package/dist/cache/memory-store.js.map +1 -0
  294. package/dist/cache/types.d.ts +317 -0
  295. package/dist/cache/types.d.ts.map +1 -0
  296. package/dist/cache/types.js +12 -0
  297. package/dist/cache/types.js.map +1 -0
  298. package/dist/client.d.ts +248 -0
  299. package/dist/client.d.ts.map +1 -0
  300. package/dist/client.js +367 -0
  301. package/dist/client.js.map +1 -0
  302. package/dist/client.rsc.d.ts +26 -0
  303. package/dist/client.rsc.d.ts.map +1 -0
  304. package/dist/client.rsc.js +46 -0
  305. package/dist/client.rsc.js.map +1 -0
  306. package/dist/component-utils.d.ts +36 -0
  307. package/dist/component-utils.d.ts.map +1 -0
  308. package/dist/component-utils.js +61 -0
  309. package/dist/component-utils.js.map +1 -0
  310. package/dist/components/DefaultDocument.d.ts +13 -0
  311. package/dist/components/DefaultDocument.d.ts.map +1 -0
  312. package/dist/components/DefaultDocument.js +15 -0
  313. package/dist/components/DefaultDocument.js.map +1 -0
  314. package/dist/debug.d.ts +58 -0
  315. package/dist/debug.d.ts.map +1 -0
  316. package/dist/debug.js +157 -0
  317. package/dist/debug.js.map +1 -0
  318. package/dist/default-error-boundary.d.ts +11 -0
  319. package/dist/default-error-boundary.d.ts.map +1 -0
  320. package/dist/default-error-boundary.js +45 -0
  321. package/dist/default-error-boundary.js.map +1 -0
  322. package/dist/deps/browser.d.ts +2 -0
  323. package/dist/deps/browser.d.ts.map +1 -0
  324. package/dist/deps/browser.js +3 -0
  325. package/dist/deps/browser.js.map +1 -0
  326. package/dist/deps/html-stream-client.d.ts +2 -0
  327. package/dist/deps/html-stream-client.d.ts.map +1 -0
  328. package/dist/deps/html-stream-client.js +3 -0
  329. package/dist/deps/html-stream-client.js.map +1 -0
  330. package/dist/deps/html-stream-server.d.ts +2 -0
  331. package/dist/deps/html-stream-server.d.ts.map +1 -0
  332. package/dist/deps/html-stream-server.js +3 -0
  333. package/dist/deps/html-stream-server.js.map +1 -0
  334. package/dist/deps/rsc.d.ts +2 -0
  335. package/dist/deps/rsc.d.ts.map +1 -0
  336. package/dist/deps/rsc.js +4 -0
  337. package/dist/deps/rsc.js.map +1 -0
  338. package/dist/deps/ssr.d.ts +2 -0
  339. package/dist/deps/ssr.d.ts.map +1 -0
  340. package/dist/deps/ssr.js +3 -0
  341. package/dist/deps/ssr.js.map +1 -0
  342. package/dist/errors.d.ts +174 -0
  343. package/dist/errors.d.ts.map +1 -0
  344. package/dist/errors.js +241 -0
  345. package/dist/errors.js.map +1 -0
  346. package/dist/handle.d.ts +78 -0
  347. package/dist/handle.d.ts.map +1 -0
  348. package/dist/handle.js +82 -0
  349. package/dist/handle.js.map +1 -0
  350. package/dist/handles/MetaTags.d.ts +14 -0
  351. package/dist/handles/MetaTags.d.ts.map +1 -0
  352. package/dist/handles/MetaTags.js +136 -0
  353. package/dist/handles/MetaTags.js.map +1 -0
  354. package/dist/handles/index.d.ts +6 -0
  355. package/dist/handles/index.d.ts.map +1 -0
  356. package/dist/handles/index.js +6 -0
  357. package/dist/handles/index.js.map +1 -0
  358. package/dist/handles/meta.d.ts +39 -0
  359. package/dist/handles/meta.d.ts.map +1 -0
  360. package/dist/handles/meta.js +202 -0
  361. package/dist/handles/meta.js.map +1 -0
  362. package/dist/host/__tests__/errors.test.d.ts +2 -0
  363. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  364. package/dist/host/__tests__/errors.test.js +76 -0
  365. package/dist/host/__tests__/errors.test.js.map +1 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  370. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  372. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  374. package/dist/host/__tests__/router.test.d.ts +2 -0
  375. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  376. package/dist/host/__tests__/router.test.js +241 -0
  377. package/dist/host/__tests__/router.test.js.map +1 -0
  378. package/dist/host/__tests__/testing.test.d.ts +2 -0
  379. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  380. package/dist/host/__tests__/testing.test.js +64 -0
  381. package/dist/host/__tests__/testing.test.js.map +1 -0
  382. package/dist/host/__tests__/utils.test.d.ts +2 -0
  383. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  384. package/dist/host/__tests__/utils.test.js +29 -0
  385. package/dist/host/__tests__/utils.test.js.map +1 -0
  386. package/dist/host/cookie-handler.d.ts +34 -0
  387. package/dist/host/cookie-handler.d.ts.map +1 -0
  388. package/dist/host/cookie-handler.js +124 -0
  389. package/dist/host/cookie-handler.js.map +1 -0
  390. package/dist/host/errors.d.ts +56 -0
  391. package/dist/host/errors.d.ts.map +1 -0
  392. package/dist/host/errors.js +79 -0
  393. package/dist/host/errors.js.map +1 -0
  394. package/dist/host/index.d.ts +29 -0
  395. package/dist/host/index.d.ts.map +1 -0
  396. package/dist/host/index.js +32 -0
  397. package/dist/host/index.js.map +1 -0
  398. package/dist/host/pattern-matcher.d.ts +36 -0
  399. package/dist/host/pattern-matcher.d.ts.map +1 -0
  400. package/dist/host/pattern-matcher.js +172 -0
  401. package/dist/host/pattern-matcher.js.map +1 -0
  402. package/dist/host/router.d.ts +26 -0
  403. package/dist/host/router.d.ts.map +1 -0
  404. package/dist/host/router.js +218 -0
  405. package/dist/host/router.js.map +1 -0
  406. package/dist/host/testing.d.ts +36 -0
  407. package/dist/host/testing.d.ts.map +1 -0
  408. package/dist/host/testing.js +55 -0
  409. package/dist/host/testing.js.map +1 -0
  410. package/dist/host/types.d.ts +115 -0
  411. package/dist/host/types.d.ts.map +1 -0
  412. package/dist/host/types.js +7 -0
  413. package/dist/host/types.js.map +1 -0
  414. package/dist/host/utils.d.ts +21 -0
  415. package/dist/host/utils.d.ts.map +1 -0
  416. package/dist/host/utils.js +23 -0
  417. package/dist/host/utils.js.map +1 -0
  418. package/dist/href-client.d.ts +131 -0
  419. package/dist/href-client.d.ts.map +1 -0
  420. package/dist/href-client.js +64 -0
  421. package/dist/href-client.js.map +1 -0
  422. package/dist/href-context.d.ts +29 -0
  423. package/dist/href-context.d.ts.map +1 -0
  424. package/dist/href-context.js +21 -0
  425. package/dist/href-context.js.map +1 -0
  426. package/dist/index.d.ts +73 -0
  427. package/dist/index.d.ts.map +1 -0
  428. package/dist/index.js +91 -0
  429. package/dist/index.js.map +1 -0
  430. package/dist/index.rsc.d.ts +32 -0
  431. package/dist/index.rsc.d.ts.map +1 -0
  432. package/dist/index.rsc.js +40 -0
  433. package/dist/index.rsc.js.map +1 -0
  434. package/dist/internal-debug.d.ts +2 -0
  435. package/dist/internal-debug.d.ts.map +1 -0
  436. package/dist/internal-debug.js +5 -0
  437. package/dist/internal-debug.js.map +1 -0
  438. package/dist/loader.d.ts +14 -0
  439. package/dist/loader.d.ts.map +1 -0
  440. package/dist/loader.js +20 -0
  441. package/dist/loader.js.map +1 -0
  442. package/dist/loader.rsc.d.ts +19 -0
  443. package/dist/loader.rsc.d.ts.map +1 -0
  444. package/dist/loader.rsc.js +99 -0
  445. package/dist/loader.rsc.js.map +1 -0
  446. package/dist/network-error-thrower.d.ts +17 -0
  447. package/dist/network-error-thrower.d.ts.map +1 -0
  448. package/dist/network-error-thrower.js +14 -0
  449. package/dist/network-error-thrower.js.map +1 -0
  450. package/dist/outlet-context.d.ts +13 -0
  451. package/dist/outlet-context.d.ts.map +1 -0
  452. package/dist/outlet-context.js +3 -0
  453. package/dist/outlet-context.js.map +1 -0
  454. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  456. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  457. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  458. package/dist/prerender/param-hash.d.ts +16 -0
  459. package/dist/prerender/param-hash.d.ts.map +1 -0
  460. package/dist/prerender/param-hash.js +36 -0
  461. package/dist/prerender/param-hash.js.map +1 -0
  462. package/dist/prerender/store.d.ts +38 -0
  463. package/dist/prerender/store.d.ts.map +1 -0
  464. package/dist/prerender/store.js +61 -0
  465. package/dist/prerender/store.js.map +1 -0
  466. package/dist/prerender.d.ts +66 -0
  467. package/dist/prerender.d.ts.map +1 -0
  468. package/dist/prerender.js +57 -0
  469. package/dist/prerender.js.map +1 -0
  470. package/dist/reverse.d.ts +196 -0
  471. package/dist/reverse.d.ts.map +1 -0
  472. package/dist/reverse.js +78 -0
  473. package/dist/reverse.js.map +1 -0
  474. package/dist/root-error-boundary.d.ts +33 -0
  475. package/dist/root-error-boundary.d.ts.map +1 -0
  476. package/dist/root-error-boundary.js +165 -0
  477. package/dist/root-error-boundary.js.map +1 -0
  478. package/dist/route-content-wrapper.d.ts +46 -0
  479. package/dist/route-content-wrapper.d.ts.map +1 -0
  480. package/dist/route-content-wrapper.js +77 -0
  481. package/dist/route-content-wrapper.js.map +1 -0
  482. package/dist/route-definition.d.ts +421 -0
  483. package/dist/route-definition.d.ts.map +1 -0
  484. package/dist/route-definition.js +868 -0
  485. package/dist/route-definition.js.map +1 -0
  486. package/dist/route-map-builder.d.ts +155 -0
  487. package/dist/route-map-builder.d.ts.map +1 -0
  488. package/dist/route-map-builder.js +237 -0
  489. package/dist/route-map-builder.js.map +1 -0
  490. package/dist/route-types.d.ts +165 -0
  491. package/dist/route-types.d.ts.map +1 -0
  492. package/dist/route-types.js +7 -0
  493. package/dist/route-types.js.map +1 -0
  494. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  496. package/dist/router/__tests__/handler-context.test.js +65 -0
  497. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  502. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  503. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  504. package/dist/router/__tests__/match-context.test.js +92 -0
  505. package/dist/router/__tests__/match-context.test.js.map +1 -0
  506. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  508. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  509. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  510. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  511. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  512. package/dist/router/__tests__/match-result.test.js +457 -0
  513. package/dist/router/__tests__/match-result.test.js.map +1 -0
  514. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  515. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  516. package/dist/router/__tests__/on-error.test.js +678 -0
  517. package/dist/router/__tests__/on-error.test.js.map +1 -0
  518. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  520. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  521. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  526. package/dist/router/error-handling.d.ts +77 -0
  527. package/dist/router/error-handling.d.ts.map +1 -0
  528. package/dist/router/error-handling.js +202 -0
  529. package/dist/router/error-handling.js.map +1 -0
  530. package/dist/router/handler-context.d.ts +20 -0
  531. package/dist/router/handler-context.d.ts.map +1 -0
  532. package/dist/router/handler-context.js +198 -0
  533. package/dist/router/handler-context.js.map +1 -0
  534. package/dist/router/intercept-resolution.d.ts +66 -0
  535. package/dist/router/intercept-resolution.d.ts.map +1 -0
  536. package/dist/router/intercept-resolution.js +246 -0
  537. package/dist/router/intercept-resolution.js.map +1 -0
  538. package/dist/router/loader-resolution.d.ts +64 -0
  539. package/dist/router/loader-resolution.d.ts.map +1 -0
  540. package/dist/router/loader-resolution.js +284 -0
  541. package/dist/router/loader-resolution.js.map +1 -0
  542. package/dist/router/logging.d.ts +15 -0
  543. package/dist/router/logging.d.ts.map +1 -0
  544. package/dist/router/logging.js +99 -0
  545. package/dist/router/logging.js.map +1 -0
  546. package/dist/router/manifest.d.ts +22 -0
  547. package/dist/router/manifest.d.ts.map +1 -0
  548. package/dist/router/manifest.js +181 -0
  549. package/dist/router/manifest.js.map +1 -0
  550. package/dist/router/match-api.d.ts +35 -0
  551. package/dist/router/match-api.d.ts.map +1 -0
  552. package/dist/router/match-api.js +406 -0
  553. package/dist/router/match-api.js.map +1 -0
  554. package/dist/router/match-context.d.ts +206 -0
  555. package/dist/router/match-context.d.ts.map +1 -0
  556. package/dist/router/match-context.js +17 -0
  557. package/dist/router/match-context.js.map +1 -0
  558. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  560. package/dist/router/match-middleware/background-revalidation.js +75 -0
  561. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  562. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  564. package/dist/router/match-middleware/cache-lookup.js +257 -0
  565. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  566. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  567. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  568. package/dist/router/match-middleware/cache-store.js +108 -0
  569. package/dist/router/match-middleware/cache-store.js.map +1 -0
  570. package/dist/router/match-middleware/index.d.ts +81 -0
  571. package/dist/router/match-middleware/index.d.ts.map +1 -0
  572. package/dist/router/match-middleware/index.js +80 -0
  573. package/dist/router/match-middleware/index.js.map +1 -0
  574. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  576. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  577. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  578. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  580. package/dist/router/match-middleware/segment-resolution.js +53 -0
  581. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  582. package/dist/router/match-pipelines.d.ts +147 -0
  583. package/dist/router/match-pipelines.d.ts.map +1 -0
  584. package/dist/router/match-pipelines.js +82 -0
  585. package/dist/router/match-pipelines.js.map +1 -0
  586. package/dist/router/match-result.d.ts +126 -0
  587. package/dist/router/match-result.d.ts.map +1 -0
  588. package/dist/router/match-result.js +93 -0
  589. package/dist/router/match-result.js.map +1 -0
  590. package/dist/router/metrics.d.ts +20 -0
  591. package/dist/router/metrics.d.ts.map +1 -0
  592. package/dist/router/metrics.js +47 -0
  593. package/dist/router/metrics.js.map +1 -0
  594. package/dist/router/middleware.d.ts +249 -0
  595. package/dist/router/middleware.d.ts.map +1 -0
  596. package/dist/router/middleware.js +434 -0
  597. package/dist/router/middleware.js.map +1 -0
  598. package/dist/router/middleware.test.d.ts +2 -0
  599. package/dist/router/middleware.test.d.ts.map +1 -0
  600. package/dist/router/middleware.test.js +816 -0
  601. package/dist/router/middleware.test.js.map +1 -0
  602. package/dist/router/pattern-matching.d.ts +149 -0
  603. package/dist/router/pattern-matching.d.ts.map +1 -0
  604. package/dist/router/pattern-matching.js +349 -0
  605. package/dist/router/pattern-matching.js.map +1 -0
  606. package/dist/router/revalidation.d.ts +44 -0
  607. package/dist/router/revalidation.d.ts.map +1 -0
  608. package/dist/router/revalidation.js +147 -0
  609. package/dist/router/revalidation.js.map +1 -0
  610. package/dist/router/router-context.d.ts +135 -0
  611. package/dist/router/router-context.d.ts.map +1 -0
  612. package/dist/router/router-context.js +36 -0
  613. package/dist/router/router-context.js.map +1 -0
  614. package/dist/router/segment-resolution.d.ts +127 -0
  615. package/dist/router/segment-resolution.d.ts.map +1 -0
  616. package/dist/router/segment-resolution.js +919 -0
  617. package/dist/router/segment-resolution.js.map +1 -0
  618. package/dist/router/trie-matching.d.ts +40 -0
  619. package/dist/router/trie-matching.d.ts.map +1 -0
  620. package/dist/router/trie-matching.js +127 -0
  621. package/dist/router/trie-matching.js.map +1 -0
  622. package/dist/router/types.d.ts +136 -0
  623. package/dist/router/types.d.ts.map +1 -0
  624. package/dist/router/types.js +7 -0
  625. package/dist/router/types.js.map +1 -0
  626. package/dist/router.d.ts +753 -0
  627. package/dist/router.d.ts.map +1 -0
  628. package/dist/router.gen.d.ts +6 -0
  629. package/dist/router.gen.d.ts.map +1 -0
  630. package/dist/router.gen.js +6 -0
  631. package/dist/router.gen.js.map +1 -0
  632. package/dist/router.js +1304 -0
  633. package/dist/router.js.map +1 -0
  634. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  636. package/dist/rsc/__tests__/helpers.test.js +140 -0
  637. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  638. package/dist/rsc/handler.d.ts +45 -0
  639. package/dist/rsc/handler.d.ts.map +1 -0
  640. package/dist/rsc/handler.js +1172 -0
  641. package/dist/rsc/handler.js.map +1 -0
  642. package/dist/rsc/helpers.d.ts +16 -0
  643. package/dist/rsc/helpers.d.ts.map +1 -0
  644. package/dist/rsc/helpers.js +55 -0
  645. package/dist/rsc/helpers.js.map +1 -0
  646. package/dist/rsc/index.d.ts +22 -0
  647. package/dist/rsc/index.d.ts.map +1 -0
  648. package/dist/rsc/index.js +23 -0
  649. package/dist/rsc/index.js.map +1 -0
  650. package/dist/rsc/nonce.d.ts +9 -0
  651. package/dist/rsc/nonce.d.ts.map +1 -0
  652. package/dist/rsc/nonce.js +18 -0
  653. package/dist/rsc/nonce.js.map +1 -0
  654. package/dist/rsc/types.d.ts +206 -0
  655. package/dist/rsc/types.d.ts.map +1 -0
  656. package/dist/rsc/types.js +8 -0
  657. package/dist/rsc/types.js.map +1 -0
  658. package/dist/search-params.d.ts +103 -0
  659. package/dist/search-params.d.ts.map +1 -0
  660. package/dist/search-params.js +74 -0
  661. package/dist/search-params.js.map +1 -0
  662. package/dist/segment-system.d.ts +75 -0
  663. package/dist/segment-system.d.ts.map +1 -0
  664. package/dist/segment-system.js +336 -0
  665. package/dist/segment-system.js.map +1 -0
  666. package/dist/server/context.d.ts +245 -0
  667. package/dist/server/context.d.ts.map +1 -0
  668. package/dist/server/context.js +197 -0
  669. package/dist/server/context.js.map +1 -0
  670. package/dist/server/fetchable-loader-store.d.ts +18 -0
  671. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  672. package/dist/server/fetchable-loader-store.js +18 -0
  673. package/dist/server/fetchable-loader-store.js.map +1 -0
  674. package/dist/server/handle-store.d.ts +85 -0
  675. package/dist/server/handle-store.d.ts.map +1 -0
  676. package/dist/server/handle-store.js +142 -0
  677. package/dist/server/handle-store.js.map +1 -0
  678. package/dist/server/loader-registry.d.ts +55 -0
  679. package/dist/server/loader-registry.d.ts.map +1 -0
  680. package/dist/server/loader-registry.js +132 -0
  681. package/dist/server/loader-registry.js.map +1 -0
  682. package/dist/server/request-context.d.ts +226 -0
  683. package/dist/server/request-context.d.ts.map +1 -0
  684. package/dist/server/request-context.js +290 -0
  685. package/dist/server/request-context.js.map +1 -0
  686. package/dist/server/root-layout.d.ts +4 -0
  687. package/dist/server/root-layout.d.ts.map +1 -0
  688. package/dist/server/root-layout.js +5 -0
  689. package/dist/server/root-layout.js.map +1 -0
  690. package/dist/server.d.ts +15 -0
  691. package/dist/server.d.ts.map +1 -0
  692. package/dist/server.js +20 -0
  693. package/dist/server.js.map +1 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  698. package/dist/ssr/index.d.ts +98 -0
  699. package/dist/ssr/index.d.ts.map +1 -0
  700. package/dist/ssr/index.js +158 -0
  701. package/dist/ssr/index.js.map +1 -0
  702. package/dist/static-handler.d.ts +50 -0
  703. package/dist/static-handler.d.ts.map +1 -0
  704. package/dist/static-handler.gen.d.ts +5 -0
  705. package/dist/static-handler.gen.d.ts.map +1 -0
  706. package/dist/static-handler.gen.js +5 -0
  707. package/dist/static-handler.gen.js.map +1 -0
  708. package/dist/static-handler.js +29 -0
  709. package/dist/static-handler.js.map +1 -0
  710. package/dist/testing/vitest.js +48 -0
  711. package/dist/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +2659 -883
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/dist/vite/package-resolution.js +112 -0
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/dist/vite/virtual-entries.js +110 -0
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +57 -11
  811. package/skills/breadcrumbs/SKILL.md +3 -1
  812. package/skills/bundle-analysis/SKILL.md +159 -0
  813. package/skills/cache-guide/SKILL.md +243 -21
  814. package/skills/caching/SKILL.md +118 -2
  815. package/skills/composability/SKILL.md +27 -2
  816. package/skills/document-cache/SKILL.md +78 -55
  817. package/skills/handler-use/SKILL.md +364 -0
  818. package/skills/hooks/SKILL.md +229 -20
  819. package/skills/host-router/SKILL.md +45 -20
  820. package/skills/i18n/SKILL.md +276 -0
  821. package/skills/intercept/SKILL.md +46 -4
  822. package/skills/layout/SKILL.md +28 -7
  823. package/skills/links/SKILL.md +249 -17
  824. package/skills/loader/SKILL.md +273 -53
  825. package/skills/middleware/SKILL.md +49 -12
  826. package/skills/migrate-nextjs/SKILL.md +562 -0
  827. package/skills/migrate-react-router/SKILL.md +769 -0
  828. package/skills/mime-routes/SKILL.md +27 -0
  829. package/skills/observability/SKILL.md +137 -0
  830. package/skills/parallel/SKILL.md +71 -6
  831. package/skills/prerender/SKILL.md +123 -100
  832. package/skills/rango/SKILL.md +242 -22
  833. package/skills/react-compiler/SKILL.md +168 -0
  834. package/skills/response-routes/SKILL.md +66 -9
  835. package/skills/route/SKILL.md +88 -4
  836. package/skills/router-setup/SKILL.md +90 -5
  837. package/skills/server-actions/SKILL.md +751 -0
  838. package/skills/streams-and-websockets/SKILL.md +283 -0
  839. package/skills/testing/SKILL.md +776 -0
  840. package/skills/typesafety/SKILL.md +329 -27
  841. package/skills/use-cache/SKILL.md +34 -5
  842. package/skills/view-transitions/SKILL.md +294 -0
  843. package/src/__augment-tests__/augment.ts +81 -0
  844. package/src/__augment-tests__/augmented.check.ts +117 -0
  845. package/src/__internal.ts +1 -1
  846. package/src/browser/action-coordinator.ts +53 -36
  847. package/src/browser/app-shell.ts +52 -0
  848. package/src/browser/app-version.ts +14 -0
  849. package/src/browser/event-controller.ts +86 -70
  850. package/src/browser/history-state.ts +21 -0
  851. package/src/browser/index.ts +3 -3
  852. package/src/browser/navigation-bridge.ts +101 -13
  853. package/src/browser/navigation-client.ts +125 -53
  854. package/src/browser/navigation-store.ts +75 -17
  855. package/src/browser/navigation-transaction.ts +10 -28
  856. package/src/browser/partial-update.ts +90 -30
  857. package/src/browser/prefetch/cache.ts +129 -21
  858. package/src/browser/prefetch/fetch.ts +156 -18
  859. package/src/browser/prefetch/queue.ts +92 -29
  860. package/src/browser/prefetch/resource-ready.ts +77 -0
  861. package/src/browser/rango-state.ts +53 -13
  862. package/src/browser/react/Link.tsx +72 -8
  863. package/src/browser/react/NavigationProvider.tsx +83 -33
  864. package/src/browser/react/context.ts +7 -2
  865. package/src/browser/react/filter-segment-order.ts +51 -7
  866. package/src/browser/react/index.ts +3 -0
  867. package/src/browser/react/location-state-shared.ts +175 -4
  868. package/src/browser/react/location-state.ts +39 -13
  869. package/src/browser/react/use-handle.ts +23 -64
  870. package/src/browser/react/use-navigation.ts +22 -2
  871. package/src/browser/react/use-params.ts +20 -8
  872. package/src/browser/react/use-reverse.ts +106 -0
  873. package/src/browser/react/use-router.ts +43 -10
  874. package/src/browser/react/use-segments.ts +11 -8
  875. package/src/browser/response-adapter.ts +25 -0
  876. package/src/browser/rsc-router.tsx +87 -22
  877. package/src/browser/scroll-restoration.ts +29 -19
  878. package/src/browser/segment-reconciler.ts +36 -14
  879. package/src/browser/segment-structure-assert.ts +2 -2
  880. package/src/browser/server-action-bridge.ts +31 -36
  881. package/src/browser/types.ts +48 -5
  882. package/src/build/collect-fallback-refs.ts +107 -0
  883. package/src/build/generate-manifest.ts +65 -40
  884. package/src/build/generate-route-types.ts +5 -0
  885. package/src/build/index.ts +2 -0
  886. package/src/build/route-trie.ts +52 -25
  887. package/src/build/route-types/codegen.ts +4 -4
  888. package/src/build/route-types/include-resolution.ts +9 -2
  889. package/src/build/route-types/per-module-writer.ts +7 -4
  890. package/src/build/route-types/router-processing.ts +266 -86
  891. package/src/build/route-types/scan-filter.ts +9 -2
  892. package/src/build/route-types/source-scan.ts +118 -0
  893. package/src/build/runtime-discovery.ts +9 -20
  894. package/src/cache/cache-scope.ts +40 -56
  895. package/src/cache/cf/cf-cache-store.ts +54 -13
  896. package/src/cache/taint.ts +55 -0
  897. package/src/client.rsc.tsx +3 -0
  898. package/src/client.tsx +94 -238
  899. package/src/context-var.ts +72 -2
  900. package/src/decode-loader-results.ts +36 -0
  901. package/src/errors.ts +30 -1
  902. package/src/handle.ts +65 -12
  903. package/src/host/index.ts +2 -2
  904. package/src/host/router.ts +129 -57
  905. package/src/host/types.ts +31 -2
  906. package/src/host/utils.ts +1 -1
  907. package/src/href-client.ts +140 -20
  908. package/src/index.rsc.ts +12 -5
  909. package/src/index.ts +61 -11
  910. package/src/loader-store.ts +500 -0
  911. package/src/loader.rsc.ts +21 -6
  912. package/src/loader.ts +3 -10
  913. package/src/missing-id-error.ts +68 -0
  914. package/src/outlet-context.ts +1 -1
  915. package/src/prerender/store.ts +5 -4
  916. package/src/prerender.ts +141 -80
  917. package/src/response-utils.ts +37 -0
  918. package/src/reverse.ts +65 -15
  919. package/src/route-content-wrapper.tsx +6 -28
  920. package/src/route-definition/dsl-helpers.ts +411 -261
  921. package/src/route-definition/helper-factories.ts +29 -139
  922. package/src/route-definition/helpers-types.ts +110 -34
  923. package/src/route-definition/index.ts +3 -0
  924. package/src/route-definition/redirect.ts +9 -1
  925. package/src/route-definition/resolve-handler-use.ts +155 -0
  926. package/src/route-definition/use-item-types.ts +32 -0
  927. package/src/route-types.ts +37 -41
  928. package/src/router/basename.ts +14 -0
  929. package/src/router/content-negotiation.ts +113 -1
  930. package/src/router/error-handling.ts +1 -1
  931. package/src/router/handler-context.ts +77 -38
  932. package/src/router/intercept-resolution.ts +13 -22
  933. package/src/router/lazy-includes.ts +8 -8
  934. package/src/router/loader-resolution.ts +174 -22
  935. package/src/router/manifest.ts +22 -13
  936. package/src/router/match-api.ts +128 -192
  937. package/src/router/match-handlers.ts +63 -20
  938. package/src/router/match-middleware/cache-lookup.ts +70 -97
  939. package/src/router/match-middleware/cache-store.ts +3 -2
  940. package/src/router/match-middleware/segment-resolution.ts +53 -0
  941. package/src/router/match-result.ts +103 -4
  942. package/src/router/metrics.ts +1 -1
  943. package/src/router/middleware-types.ts +21 -34
  944. package/src/router/middleware.ts +101 -89
  945. package/src/router/navigation-snapshot.ts +182 -0
  946. package/src/router/pattern-matching.ts +101 -17
  947. package/src/router/prerender-match.ts +110 -10
  948. package/src/router/preview-match.ts +32 -102
  949. package/src/router/request-classification.ts +286 -0
  950. package/src/router/revalidation.ts +58 -2
  951. package/src/router/route-snapshot.ts +245 -0
  952. package/src/router/router-interfaces.ts +77 -28
  953. package/src/router/router-options.ts +76 -11
  954. package/src/router/router-registry.ts +2 -5
  955. package/src/router/segment-resolution/fresh.ts +105 -13
  956. package/src/router/segment-resolution/helpers.ts +29 -24
  957. package/src/router/segment-resolution/revalidation.ts +236 -112
  958. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  959. package/src/router/substitute-pattern-params.ts +56 -0
  960. package/src/router/telemetry.ts +99 -0
  961. package/src/router/trie-matching.ts +18 -13
  962. package/src/router/types.ts +9 -0
  963. package/src/router/url-params.ts +49 -0
  964. package/src/router.ts +86 -22
  965. package/src/rsc/handler-context.ts +2 -2
  966. package/src/rsc/handler.ts +440 -381
  967. package/src/rsc/helpers.ts +91 -43
  968. package/src/rsc/index.ts +1 -1
  969. package/src/rsc/loader-fetch.ts +23 -3
  970. package/src/rsc/manifest-init.ts +5 -1
  971. package/src/rsc/origin-guard.ts +28 -10
  972. package/src/rsc/progressive-enhancement.ts +18 -2
  973. package/src/rsc/response-route-handler.ts +46 -53
  974. package/src/rsc/rsc-rendering.ts +41 -48
  975. package/src/rsc/runtime-warnings.ts +9 -10
  976. package/src/rsc/server-action.ts +25 -37
  977. package/src/rsc/ssr-setup.ts +18 -2
  978. package/src/rsc/types.ts +17 -3
  979. package/src/search-params.ts +4 -4
  980. package/src/segment-content-promise.ts +67 -0
  981. package/src/segment-loader-promise.ts +122 -0
  982. package/src/segment-system.tsx +132 -116
  983. package/src/serialize.ts +243 -0
  984. package/src/server/context.ts +190 -51
  985. package/src/server/cookie-store.ts +28 -4
  986. package/src/server/handle-store.ts +19 -0
  987. package/src/server/loader-registry.ts +9 -8
  988. package/src/server/request-context.ts +195 -57
  989. package/src/ssr/index.tsx +8 -1
  990. package/src/static-handler.ts +19 -7
  991. package/src/testing/cache-status.ts +166 -0
  992. package/src/testing/collect-handle.ts +63 -0
  993. package/src/testing/dispatch.ts +440 -0
  994. package/src/testing/dom.entry.ts +22 -0
  995. package/src/testing/e2e/fixture.ts +154 -0
  996. package/src/testing/e2e/index.ts +149 -0
  997. package/src/testing/e2e/matchers.ts +51 -0
  998. package/src/testing/e2e/page-helpers.ts +272 -0
  999. package/src/testing/e2e/parity.ts +306 -0
  1000. package/src/testing/e2e/server.ts +183 -0
  1001. package/src/testing/flight-matchers.ts +104 -0
  1002. package/src/testing/flight-runtime.d.ts +57 -0
  1003. package/src/testing/flight-tree.ts +309 -0
  1004. package/src/testing/flight.entry.ts +39 -0
  1005. package/src/testing/flight.ts +197 -0
  1006. package/src/testing/generated-routes.ts +223 -0
  1007. package/src/testing/index.ts +106 -0
  1008. package/src/testing/internal/context.ts +304 -0
  1009. package/src/testing/internal/flight-client-globals.ts +30 -0
  1010. package/src/testing/render-route.tsx +565 -0
  1011. package/src/testing/run-loader.ts +341 -0
  1012. package/src/testing/run-middleware.ts +179 -0
  1013. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1014. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1015. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1016. package/src/testing/vitest-stubs/version.ts +5 -0
  1017. package/src/testing/vitest.ts +185 -0
  1018. package/src/types/cache-types.ts +4 -4
  1019. package/src/types/global-namespace.ts +39 -26
  1020. package/src/types/handler-context.ts +103 -67
  1021. package/src/types/index.ts +1 -0
  1022. package/src/types/loader-types.ts +41 -15
  1023. package/src/types/request-scope.ts +126 -0
  1024. package/src/types/route-entry.ts +12 -1
  1025. package/src/types/segments.ts +36 -2
  1026. package/src/urls/include-helper.ts +34 -67
  1027. package/src/urls/index.ts +0 -3
  1028. package/src/urls/path-helper-types.ts +50 -9
  1029. package/src/urls/path-helper.ts +63 -63
  1030. package/src/urls/pattern-types.ts +48 -19
  1031. package/src/urls/response-types.ts +25 -22
  1032. package/src/urls/type-extraction.ts +26 -116
  1033. package/src/urls/urls-function.ts +1 -5
  1034. package/src/use-loader.tsx +487 -44
  1035. package/src/vite/debug.ts +185 -0
  1036. package/src/vite/discovery/bundle-postprocess.ts +34 -37
  1037. package/src/vite/discovery/discover-routers.ts +105 -51
  1038. package/src/vite/discovery/discovery-errors.ts +194 -0
  1039. package/src/vite/discovery/gate-state.ts +171 -0
  1040. package/src/vite/discovery/prerender-collection.ts +188 -93
  1041. package/src/vite/discovery/route-types-writer.ts +40 -84
  1042. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1043. package/src/vite/discovery/state.ts +46 -4
  1044. package/src/vite/discovery/virtual-module-codegen.ts +13 -23
  1045. package/src/vite/index.ts +6 -0
  1046. package/src/vite/plugin-types.ts +126 -4
  1047. package/src/vite/plugins/cjs-to-esm.ts +8 -7
  1048. package/src/vite/plugins/client-ref-dedup.ts +16 -0
  1049. package/src/vite/plugins/client-ref-hashing.ts +28 -5
  1050. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1051. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1052. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1053. package/src/vite/plugins/expose-action-id.ts +54 -30
  1054. package/src/vite/plugins/expose-id-utils.ts +24 -8
  1055. package/src/vite/plugins/expose-ids/export-analysis.ts +100 -20
  1056. package/src/vite/plugins/expose-ids/handler-transform.ts +12 -35
  1057. package/src/vite/plugins/expose-ids/loader-transform.ts +3 -5
  1058. package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
  1059. package/src/vite/plugins/expose-internal-ids.ts +544 -317
  1060. package/src/vite/plugins/performance-tracks.ts +92 -0
  1061. package/src/vite/plugins/refresh-cmd.ts +88 -26
  1062. package/src/vite/plugins/use-cache-transform.ts +65 -50
  1063. package/src/vite/plugins/version-injector.ts +39 -23
  1064. package/src/vite/plugins/version-plugin.ts +59 -2
  1065. package/src/vite/plugins/virtual-entries.ts +2 -2
  1066. package/src/vite/rango.ts +130 -26
  1067. package/src/vite/router-discovery.ts +920 -129
  1068. package/src/vite/utils/ast-handler-extract.ts +15 -15
  1069. package/src/vite/utils/banner.ts +1 -1
  1070. package/src/vite/utils/bundle-analysis.ts +4 -2
  1071. package/src/vite/utils/client-chunks.ts +190 -0
  1072. package/src/vite/utils/forward-user-plugins.ts +193 -0
  1073. package/src/vite/utils/manifest-utils.ts +21 -5
  1074. package/src/vite/utils/package-resolution.ts +41 -1
  1075. package/src/vite/utils/prerender-utils.ts +38 -5
  1076. package/src/vite/utils/shared-utils.ts +109 -27
  1077. package/src/browser/action-response-classifier.ts +0 -99
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prerender
3
- description: Pre-render route segments at build time with Prerender and passthrough fallback
3
+ description: Pre-render route segments at build time with Prerender and Passthrough live fallback
4
4
  argument-hint: [passthrough]
5
5
  ---
6
6
 
@@ -11,9 +11,6 @@ deserialization path, same segment system. The worker handles every request --
11
11
  there are NO static .html or .rsc files served from assets. The worker reads
12
12
  pre-computed Flight payloads instead of executing handler code.
13
13
 
14
- Canonical semantics reference:
15
- [docs/execution-model.md](../../docs/internal/execution-model.md)
16
-
17
14
  ## API: Prerender
18
15
 
19
16
  ### Static Route (no params)
@@ -54,8 +51,14 @@ path("/blog/:slug", BlogPost, { name: "blog.post" })
54
51
 
55
52
  ### With Passthrough (live fallback for unknown params)
56
53
 
54
+ Wrap a `Prerender` definition with `Passthrough()` to add a separate live handler
55
+ for unknown params at runtime. The build handler runs at build time, the live
56
+ handler runs at request time.
57
+
57
58
  ```typescript
58
- export const ProductPage = Prerender(
59
+ import { Prerender, Passthrough } from "@rangojs/router";
60
+
61
+ export const ProductPageDef = Prerender(
59
62
  async () => {
60
63
  const top = await db.query("SELECT id FROM products WHERE featured");
61
64
  return top.map(p => ({ id: p.id }));
@@ -64,32 +67,41 @@ export const ProductPage = Prerender(
64
67
  const product = await db.query("SELECT * FROM products WHERE id = ?", ctx.params.id);
65
68
  return <Product data={product} />;
66
69
  },
67
- { passthrough: true, concurrency: 4 }
70
+ { concurrency: 4 }
68
71
  );
72
+
73
+ // In route definition:
74
+ path("/products/:id", Passthrough(ProductPageDef, async (ctx) => {
75
+ const product = await ctx.env.DB.query("SELECT * FROM products WHERE id = ?", ctx.params.id);
76
+ return <Product data={product} />;
77
+ }), { name: "product" })
69
78
  ```
70
79
 
71
- ## Passthrough Mode
80
+ ## Passthrough Wrapper
72
81
 
73
- Controls whether the handler stays in the RSC server bundle after build:
82
+ `Passthrough(prerenderDef, liveHandler)` wraps a `Prerender` definition with a
83
+ separate handler for runtime fallback. The build and live handlers are separate
84
+ functions — no `ctx.build` branching needed.
74
85
 
75
- | | `passthrough: false` (default) | `passthrough: true` |
76
- | ------------------- | --------------------------------------- | --------------------------------------- |
77
- | Known params | Served from pre-rendered Flight payload | Served from pre-rendered Flight payload |
78
- | Unknown params | Handler evicted, no live fallback | Handler runs live at request time |
79
- | `ctx.passthrough()` | Throws (not allowed) | Skips artifact, defers to live fallback |
80
- | Bundle size | Handler code + imports removed | Handler code kept in RSC bundle |
81
- | `revalidate()` | Not allowed (handler gone) | Allowed (handler can re-render) |
82
- | `loading()` | Ignored (segments fully resolved) | Works for live fallback renders |
86
+ | | Plain `Prerender` (no wrapper) | `Passthrough(def, liveHandler)` |
87
+ | ------------------- | --------------------------------------- | ---------------------------------------- |
88
+ | Known params | Served from pre-rendered Flight payload | Served from pre-rendered Flight payload |
89
+ | Unknown params | Handler evicted, no live fallback | Live handler runs at request time |
90
+ | `ctx.passthrough()` | Throws (not on Passthrough route) | Skips artifact, defers to live handler |
91
+ | Bundle size | Build handler code + imports removed | Build handler evicted, live handler kept |
92
+ | `revalidate()` | Not allowed (handler gone) | Allowed (live handler can re-render) |
93
+ | `loading()` | Ignored (segments fully resolved) | Works for live fallback renders |
83
94
 
84
- ### When to use passthrough
95
+ ### When to use Passthrough
85
96
 
86
- Use `passthrough: true` when:
97
+ Use `Passthrough()` when:
87
98
 
88
99
  - The route has a large or open-ended param space (e.g., user profiles, product pages)
89
100
  - You want to pre-render popular/known params for speed but still serve unknown params live
90
101
  - You need `revalidate()` on the route
102
+ - The live handler needs runtime bindings (e.g., `ctx.env.DB`)
91
103
 
92
- Use `passthrough: false` (default) when:
104
+ Use plain `Prerender` (no wrapper) when:
93
105
 
94
106
  - All possible params are known at build time (e.g., markdown files, config-driven pages)
95
107
  - You want maximum bundle size reduction (handler code + node:fs imports removed)
@@ -103,6 +115,7 @@ Handlers receive `BuildContext` at build time, a subset of the runtime `HandlerC
103
115
  interface BuildContext<TParams> {
104
116
  params: TParams; // From getParams
105
117
  build: true; // Always true at build time
118
+ dev: boolean; // true in Vite dev mode, false during production build
106
119
  use: <T>(handle: Handle<T>) => (data: T) => void; // Push handle data
107
120
  url: URL; // Synthetic URL from pattern + params
108
121
  pathname: string; // Pathname from synthetic URL
@@ -115,8 +128,9 @@ interface BuildContext<TParams> {
115
128
  params?: Record<string, string>,
116
129
  search?: Record<string, unknown>,
117
130
  ): string; // URL generation
118
- passthrough(): PrerenderPassthroughResult; // Skip local artifact (passthrough routes only)
119
- // NOT available: req, headers, cookies, env (throws descriptive errors)
131
+ passthrough(): PrerenderPassthroughResult; // Skip local artifact (Passthrough routes only)
132
+ env: DefaultEnv; // Available when buildEnv is configured in rango() (throws otherwise)
133
+ // NOT available: request, headers, cookies (always throw)
120
134
  }
121
135
  ```
122
136
 
@@ -183,18 +197,17 @@ In production builds, `Prerender` exports are replaced with stubs:
183
197
  // Original
184
198
  export const BlogPost = Prerender(getParams, handler);
185
199
 
186
- // Stubbed (ships to server bundle when passthrough: false)
200
+ // Stubbed (all Prerender handlers are evicted)
187
201
  export const BlogPost = {
188
202
  __brand: "prerenderHandler",
189
203
  $$id: "abc123#BlogPost",
190
204
  };
191
205
  ```
192
206
 
193
- The original module and its imports (node:fs, markdown libs) are excluded from
194
- the bundle. With `passthrough: true`, the handler code stays in the RSC bundle.
207
+ All Prerender handlers are evicted in production. The live handler for
208
+ `Passthrough()` routes lives in the urls module and is not evicted.
195
209
 
196
- In client and SSR environments, ALL prerender handlers are always stubbed
197
- (passthrough only affects the RSC server bundle).
210
+ In client and SSR environments, ALL prerender handlers are always stubbed.
198
211
 
199
212
  ## Sub-use Semantics
200
213
 
@@ -231,15 +244,15 @@ path("/blog/:slug", BlogPost, { name: "blog.post" }, () => [
231
244
  | DSL item | Behavior with Prerender |
232
245
  | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
233
246
  | `loader()` | Live at runtime, bundled normally. Use `cache()` for caching. |
234
- | `revalidate()` | Not allowed without passthrough. Allowed with passthrough. |
247
+ | `revalidate()` | Not allowed without Passthrough. Allowed with Passthrough. |
235
248
  | `cache()` | Orthogonal -- use on parent layouts and loaders. |
236
249
  | `layout()` | Child layouts inside path are pre-rendered. Parent layouts are live. |
237
250
  | `parallel()` | Parallel slots inside path are pre-rendered. |
238
251
  | `middleware()` | Skipped during pre-render (no request). Runs at request time for loaders. |
239
- | `loading()` | Ignored without passthrough. Works for live fallback with passthrough. |
252
+ | `loading()` | Ignored without Passthrough. Works for live fallback with Passthrough. |
240
253
  | `intercept()` | Pre-rendered at build time. Intercept variant stored under `/i` key alongside main segments. At runtime, the correct variant is served based on `ctx.isIntercept`. `when()` conditions are skipped at build time (all intercepts are pre-rendered unconditionally). |
241
254
 
242
- When passthrough revalidation is enabled, remember that revalidation is
255
+ When Passthrough revalidation is enabled, remember that revalidation is
243
256
  still partial: opting a child segment into revalidation does not
244
257
  implicitly re-run outer prerender-derived handlers/layouts.
245
258
 
@@ -304,12 +317,19 @@ export const BlogPost = Prerender(
304
317
  }
305
318
  return <PostPage slug={ctx.params.slug} />;
306
319
  },
307
- { passthrough: true },
308
320
  );
321
+
322
+ // Wrap with Passthrough to serve skipped params live at runtime
323
+ export const BlogPost = Passthrough(BlogPostDef, async (ctx) => {
324
+ if (ctx.params.slug === "draft") {
325
+ throw new Skip("Draft articles are not pre-rendered");
326
+ }
327
+ return <PostPage slug={ctx.params.slug} />;
328
+ });
309
329
  ```
310
330
 
311
- Skipped entries are excluded from the build output. With `passthrough: true`,
312
- the handler stays in the bundle and serves skipped params live at request time.
331
+ Skipped entries are excluded from the build output. With `Passthrough()`,
332
+ the live handler serves skipped params at request time.
313
333
 
314
334
  `Skip` also works in `Static` handlers:
315
335
 
@@ -326,7 +346,7 @@ export const TocSidebar = Static(() => {
326
346
  | Handler outcome | Effect |
327
347
  | --------------------------- | ----------------------------------------------------- |
328
348
  | JSX / `null` | Normal prerender entry, log OK |
329
- | `return ctx.passthrough()` | Skip entry, log PASS, continue (passthrough routes) |
349
+ | `return ctx.passthrough()` | Skip entry, log PASS, continue (Passthrough routes) |
330
350
  | `throw new Skip("reason")` | Skip entry, log SKIP, continue with remaining entries |
331
351
  | `throw new Error("reason")` | Log FAIL, stop ALL pre-rendering, fail the build |
332
352
 
@@ -338,16 +358,16 @@ Both error types propagate to the router's `onError` callback with phase
338
358
  The build produces per-URL timing logs:
339
359
 
340
360
  ```
341
- [rsc-router] Pre-rendering 12 URL(s) (concurrency: 4)...
342
- [rsc-router] OK /articles/hello (42ms)
343
- [rsc-router] PASS /articles/remote-only (5ms) - live fallback
344
- [rsc-router] SKIP /articles/draft-post (3ms) - Article is a draft
345
- [rsc-router] Pre-render complete: 11 done, 1 skipped (1204ms total)
346
-
347
- [rsc-router] Rendering 3 static handler(s)...
348
- [rsc-router] OK DocsLayout (28ms)
349
- [rsc-router] SKIP TocSidebar (1ms) - Not ready
350
- [rsc-router] Static render complete: 2 done, 1 skipped (120ms total)
361
+ [rango] Pre-rendering 12 URL(s) (concurrency: 4)...
362
+ [rango] OK /articles/hello (42ms)
363
+ [rango] PASS /articles/remote-only (5ms) - live fallback
364
+ [rango] SKIP /articles/draft-post (3ms) - Article is a draft
365
+ [rango] Pre-render complete: 11 done, 1 skipped (1204ms total)
366
+
367
+ [rango] Rendering 3 static handler(s)...
368
+ [rango] OK DocsLayout (28ms)
369
+ [rango] SKIP TocSidebar (1ms) - Not ready
370
+ [rango] Static render complete: 2 done, 1 skipped (120ms total)
351
371
  ```
352
372
 
353
373
  A `FAIL` line is logged per-URL when a handler throws a non-Skip error. The
@@ -366,56 +386,59 @@ falls back according to normal dev/runtime behavior.
366
386
 
367
387
  ## Per-Param Passthrough with ctx.passthrough()
368
388
 
369
- On `{ passthrough: true }` routes, a handler can return `ctx.passthrough()`
370
- to skip writing a local prerender artifact for a specific param set. At
371
- runtime, the missing entry falls through to the live handler.
389
+ On routes wrapped with `Passthrough()`, the build handler can return
390
+ `ctx.passthrough()` to skip writing a local prerender artifact for a specific
391
+ param set. At runtime, the missing entry falls through to the live handler.
372
392
 
373
393
  ```typescript
374
- export const BlogPost = Prerender(
394
+ export const BlogPostDef = Prerender(
375
395
  async () => [{ slug: "a" }, { slug: "b" }, { slug: "c" }],
376
396
  async (ctx) => {
377
397
  const post = await getPost(ctx.params.slug);
378
398
  if (!post) return ctx.passthrough();
379
399
  return <article>{post.content}</article>;
380
400
  },
381
- { passthrough: true },
382
401
  );
402
+
403
+ export const BlogPost = Passthrough(BlogPostDef, async (ctx) => {
404
+ const post = await getPost(ctx.params.slug);
405
+ return <article>{post.content}</article>;
406
+ });
383
407
  ```
384
408
 
385
409
  ### Semantics
386
410
 
387
- - JSX or `null` from the handler produces a normal prerender entry.
411
+ - JSX or `null` from the build handler produces a normal prerender entry.
388
412
  - `ctx.passthrough()` returns a sentinel that signals "no local artifact".
389
413
  The build skips the manifest entry for that param set.
390
- - `ctx.passthrough()` on a non-passthrough route throws an invariant error.
414
+ - `ctx.passthrough()` on a route not wrapped with `Passthrough()` throws.
391
415
  - `ctx.passthrough()` at runtime (`ctx.build === false`) also throws.
392
416
  It is a build-time-only control flow.
393
- - `getParams()` still enumerates the param set; the handler decides per-param
394
- whether to produce an artifact or defer to runtime.
417
+ - `getParams()` still enumerates the param set; the build handler decides
418
+ per-param whether to produce an artifact or defer to the live handler.
395
419
 
396
420
  ### Difference from Skip
397
421
 
398
- | Mechanism | Effect on build | Runtime behavior |
399
- | ------------------- | ---------------------- | ---------------------------------------------------- |
400
- | `throw new Skip()` | Skips entry, logs SKIP | No artifact, no live fallback unless passthrough |
401
- | `ctx.passthrough()` | Skips entry, logs PASS | Always defers to live handler (requires passthrough) |
422
+ | Mechanism | Effect on build | Runtime behavior |
423
+ | ------------------- | ---------------------- | ------------------------------------------------------ |
424
+ | `throw new Skip()` | Skips entry, logs SKIP | No artifact, no live fallback unless Passthrough route |
425
+ | `ctx.passthrough()` | Skips entry, logs PASS | Always defers to live handler (requires Passthrough) |
402
426
 
403
- Use `ctx.passthrough()` when you want the handler to run live at request time
427
+ Use `ctx.passthrough()` when you want the live handler to run at request time
404
428
  for specific params. Use `Skip` when you want to exclude params entirely.
405
429
 
406
430
  ### Use case: Remote storage
407
431
 
408
432
  `ctx.passthrough()` enables a pattern where build-time data is stored in a
409
- remote KV store instead of the local prerender manifest. The handler
433
+ remote KV store instead of the local prerender manifest. The build handler
410
434
  pre-computes data during `getParams`, pushes it to KV, then calls
411
435
  `ctx.passthrough()` so the local build skips the artifact. At runtime,
412
- the live handler reads from KV:
436
+ the Passthrough live handler reads from KV:
413
437
 
414
438
  ```typescript
415
- export const Product = Prerender(
439
+ export const ProductDef = Prerender(
416
440
  async () => {
417
441
  const products = await db.getFeaturedProducts();
418
- // Pre-compute and store in remote KV during build
419
442
  for (const p of products) {
420
443
  await kv.put(`product:${p.id}`, await renderProduct(p));
421
444
  }
@@ -423,14 +446,16 @@ export const Product = Prerender(
423
446
  },
424
447
  async (ctx) => {
425
448
  // At build time: skip local artifact, data is in KV
426
- if (ctx.build) return ctx.passthrough();
427
- // At runtime: read from KV
428
- const cached = await kv.get(`product:${ctx.params.id}`);
429
- if (cached) return cached;
430
- return <Product data={await db.getProduct(ctx.params.id)} />;
449
+ return ctx.passthrough();
431
450
  },
432
- { passthrough: true },
433
451
  );
452
+
453
+ export const Product = Passthrough(ProductDef, async (ctx) => {
454
+ // At runtime: read from KV, fall back to DB
455
+ const cached = await kv.get(`product:${ctx.params.id}`);
456
+ if (cached) return cached;
457
+ return <Product data={await ctx.env.DB.getProduct(ctx.params.id)} />;
458
+ });
434
459
  ```
435
460
 
436
461
  ### Build logs
@@ -438,9 +463,9 @@ export const Product = Prerender(
438
463
  Passthrough entries are logged distinctly:
439
464
 
440
465
  ```
441
- [rsc-router] OK /blog/a (42ms)
442
- [rsc-router] PASS /blog/b (3ms) - live fallback
443
- [rsc-router] OK /blog/c (38ms)
466
+ [rango] OK /blog/a (42ms)
467
+ [rango] PASS /blog/b (3ms) - live fallback
468
+ [rango] OK /blog/c (38ms)
444
469
  ```
445
470
 
446
471
  ## Edge Cases and Constraints
@@ -458,8 +483,8 @@ Flight payload. They do not update at request time.
458
483
  ### Server actions work normally
459
484
 
460
485
  Actions do not re-render the B segment. The pre-rendered handler output stays
461
- frozen. Loaders are live and can be revalidated by actions. With `passthrough: true`
462
- and `revalidate()`, the handler itself can re-render live.
486
+ frozen. Loaders are live and can be revalidated by actions. With `Passthrough()`
487
+ and `revalidate()`, the live handler can re-render.
463
488
 
464
489
  ### Empty getParams
465
490
 
@@ -470,21 +495,21 @@ If `getParams` returns an empty array, no Flight payloads are written. No error.
470
495
  Routes using `Prerender` must have a `name` in path options.
471
496
  The name is used as the storage key for Flight payloads.
472
497
 
473
- ### No revalidate without passthrough
498
+ ### No revalidate without Passthrough
474
499
 
475
- Using `revalidate()` with `passthrough: false` produces a build-time warning.
500
+ Using `revalidate()` without `Passthrough()` produces a build-time warning.
476
501
  The handler is evicted -- there is nothing to re-render.
477
502
 
478
- ### loading() is ignored without passthrough
503
+ ### loading() is ignored without Passthrough
479
504
 
480
505
  Pre-rendered segments are fully resolved at build time and never suspend.
481
- With `passthrough: true`, `loading()` works for live fallback renders.
506
+ With `Passthrough()`, `loading()` works for live fallback renders.
482
507
 
483
508
  ## Complete Example
484
509
 
485
510
  ```typescript
486
511
  // pages/guides-handler.tsx
487
- import { Prerender } from "@rangojs/router";
512
+ import { Prerender, Passthrough } from "@rangojs/router";
488
513
  import { Link } from "@rangojs/router/client";
489
514
  import { href } from "../router.js";
490
515
 
@@ -493,7 +518,7 @@ const knownGuides: Record<string, string> = {
493
518
  caching: "Caching Guide",
494
519
  };
495
520
 
496
- export const GuidesDetail = Prerender<{ slug: string }>(
521
+ export const GuidesDetailDef = Prerender<{ slug: string }>(
497
522
  async () => Object.keys(knownGuides).map((slug) => ({ slug })),
498
523
  async (ctx) => {
499
524
  const title = knownGuides[ctx.params.slug] ?? `Guide: ${ctx.params.slug}`;
@@ -509,9 +534,23 @@ export const GuidesDetail = Prerender<{ slug: string }>(
509
534
  </div>
510
535
  );
511
536
  },
512
- { passthrough: true },
513
537
  );
514
538
 
539
+ export const GuidesDetail = Passthrough(GuidesDetailDef, async (ctx) => {
540
+ const title = knownGuides[ctx.params.slug] ?? `Guide: ${ctx.params.slug}`;
541
+ return (
542
+ <div>
543
+ <h1>{title}</h1>
544
+ <p>Slug: {ctx.params.slug}</p>
545
+ <nav>
546
+ <Link to={href("guides.detail", { slug: "routing" })}>Routing</Link>
547
+ {" | "}
548
+ <Link to={href("guides.detail", { slug: "dynamic-test" })}>Dynamic</Link>
549
+ </nav>
550
+ </div>
551
+ );
552
+ });
553
+
515
554
  // pages/guides.tsx
516
555
  import { urls } from "@rangojs/router";
517
556
  import { GuidesDetail } from "./guides-handler.js";
@@ -588,31 +627,22 @@ Loaders run fresh at request time for both variants.
588
627
  Pre-rendered routes set flags on the route trie leaf at build time:
589
628
 
590
629
  - `pr: true` -- route has pre-rendered B segment data
591
- - `pt: true` -- passthrough mode (handler available for live fallback)
630
+ - `pt: true` -- route wrapped with `Passthrough()` (live handler available)
592
631
 
593
632
  At runtime, the cache-lookup middleware uses these flags:
594
633
 
595
634
  - `pr + hit` -- serve pre-rendered Flight payload
596
- - `pr + pt + miss` -- fall through to live handler (handler kept in bundle)
635
+ - `pr + pt + miss` -- fall through to Passthrough live handler
597
636
  - `pr + miss` (no pt) -- fall through (handler stubbed, no live render)
598
637
 
599
638
  ## Contributor Checklist
600
639
 
601
- Before changing prerender behavior, read these docs and run these tests.
602
-
603
- ### Docs to re-read
604
-
605
- - [Prerender API design](../../docs/prerender-api-design.md) -- canonical
606
- architecture: build-time flow, runtime flow, storage, passthrough, intercept
607
- - [Execution model](../../docs/internal/execution-model.md) -- handler-first
608
- ordering, middleware scope, context visibility rules
609
- - [Semantic change checklist](../../docs/internal/semantic-change-checklist.md)
610
- -- gate for any change to execution semantics
640
+ Before changing prerender behavior, run these tests.
611
641
 
612
642
  ### Tests to run
613
643
 
614
644
  ```bash
615
- # Core prerender e2e (passthrough, eviction, loaders, sub-use, intercept)
645
+ # Core prerender e2e (Passthrough, eviction, loaders, sub-use, intercept)
616
646
  pnpm --filter @rangojs/router exec playwright test prerender
617
647
 
618
648
  # Prerender-specific unit test
@@ -632,12 +662,5 @@ pnpm --filter @rangojs/router exec playwright test handler-first
632
662
  `/__rsc_prerender` endpoint tests and node.js dev-server fallback.
633
663
  - Log-based assertions (build output lines, debug cache logs) are inherently
634
664
  dev/build-only and do not need a production counterpart.
635
- - Behavioral assertions (rendered content, loader freshness, passthrough
665
+ - Behavioral assertions (rendered content, loader freshness, Passthrough
636
666
  fallback, intercept variant selection) must work in the production build.
637
-
638
- ## Maintenance References
639
-
640
- - [Stability next steps plan](../../docs/internal/stability-next-steps-plan.md)
641
- -- completed parity and cleanup pass (reference for decisions made)
642
- - [Test quality baseline](../../docs/internal/test-quality-baseline.md) --
643
- measured test inventory, sleep debt, production coverage gaps