@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
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import type { GetRegisteredRoutes } from "./types.js";
18
- import type { ResponseEnvelope } from "./urls.js";
18
+ import type { JsonSerialize } from "./serialize.js";
19
19
 
20
20
  /**
21
21
  * Parse constraint values into a union type for paths
@@ -103,29 +103,75 @@ type NameForPattern<TPattern extends string, TRoutes = GetRegisteredRoutes> = {
103
103
  }[keyof TRoutes];
104
104
 
105
105
  /**
106
- * Look up the response data type for a route pattern from RegisteredRoutes.
107
- *
108
- * Works by reverse-looking up the route name for the given pattern,
109
- * then extracting the response type from the route entry.
106
+ * Strip a query (`?…`) and/or hash (`#…`) suffix before matching, so a concrete
107
+ * URL like `/api/health?ts=1` still resolves to its route's response. Removes
108
+ * from the earliest of `?`/`#`: a `#` before the first `?` (the query is part of
109
+ * a fragment, e.g. `/health#top?x=1`) is handled, as is a `/:` that only appears
110
+ * inside the query (e.g. `/health?next=/:id`).
111
+ */
112
+ type StripPathSuffix<T extends string> = T extends `${infer Base}?${string}`
113
+ ? Base extends `${infer Frag}#${string}`
114
+ ? Frag
115
+ : Base
116
+ : T extends `${infer Base}#${string}`
117
+ ? Base
118
+ : T;
119
+
120
+ /** Extract a route entry's response payload (or `never` for RSC routes). */
121
+ type ResponsePayloadOf<TRoutes, K extends keyof TRoutes> = TRoutes[K] extends {
122
+ readonly response: infer R;
123
+ }
124
+ ? Exclude<R, Response>
125
+ : never;
126
+
127
+ /**
128
+ * Look up the response payload for a route, keyed by either a route pattern
129
+ * (`/api/products/:id`) or a concrete path (`/api/products/123`). The same type
130
+ * serves a pattern lookup and a typed `fetch` wrapper that forwards a concrete
131
+ * `Rango.Path`:
110
132
  *
111
- * For static routes (no params), pattern === path:
112
- * PathResponse<"/api/health"> → { status: string; timestamp: number }
133
+ * PathResponse<"/api/products/:id"> Product // by pattern
134
+ * PathResponse<"/api/products/123"> → Product // by concrete path
113
135
  *
114
- * For dynamic routes, use the pattern:
115
- * PathResponse<"/api/products/:id"> Product
136
+ * The query/hash suffix is stripped first; the stripped key is then treated as a
137
+ * pattern when it contains a `/:param` segment and matched exactly (precise even
138
+ * for nested dynamic routes), otherwise as a concrete path matched against each
139
+ * route's `PatternToPath` template. Because those holes are `${string}`
140
+ * (slash-greedy), a concrete path under a *nested* dynamic route can match several
141
+ * patterns and union their responses — pattern lookups do not have this
142
+ * looseness. RSC routes (no response) and unmatched keys resolve to `never`.
143
+ */
144
+ type ResponsePayloadFor<
145
+ TPath extends string,
146
+ TRoutes = GetRegisteredRoutes,
147
+ > = ResponsePayloadForKey<StripPathSuffix<TPath>, TRoutes>;
148
+
149
+ type ResponsePayloadForKey<
150
+ TKey extends string,
151
+ TRoutes,
152
+ > = TKey extends `${string}/:${string}`
153
+ ? {
154
+ [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TKey
155
+ ? ResponsePayloadOf<TRoutes, K>
156
+ : never;
157
+ }[keyof TRoutes]
158
+ : {
159
+ [K in keyof TRoutes]: TKey extends PatternToPath<RoutePattern<TRoutes, K>>
160
+ ? ResponsePayloadOf<TRoutes, K>
161
+ : never;
162
+ }[keyof TRoutes];
163
+
164
+ /**
165
+ * Public response type for a route, keyed by pattern or concrete path. JSON
166
+ * response routes send the handler's return value verbatim (bare), so the
167
+ * payload is wrapped only in `JsonSerialize` to describe the JSON **wire** value
168
+ * a consumer receives from `fetch().then(r => r.json())` — e.g. a handler
169
+ * returning `{ createdAt: Date }` resolves here to `{ createdAt: string }`.
116
170
  */
117
171
  export type PathResponse<
118
- TPattern extends string,
172
+ TPath extends string,
119
173
  TRoutes = GetRegisteredRoutes,
120
- > = ResponseEnvelope<
121
- {
122
- [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TPattern
123
- ? TRoutes[K] extends { readonly response: infer R }
124
- ? Exclude<R, Response>
125
- : never
126
- : never;
127
- }[keyof TRoutes]
128
- >;
174
+ > = JsonSerialize<ResponsePayloadFor<TPath, TRoutes>>;
129
175
 
130
176
  /**
131
177
  * Strip trailing slash from a path (e.g., "/blog/" -> "/blog" | "/blog/")
@@ -140,7 +186,7 @@ type OptionalTrailingSlash<T extends string> = T extends `${infer Base}/`
140
186
  /**
141
187
  * Union of all valid paths from registered routes
142
188
  *
143
- * Generated from RSCRouter.RegisteredRoutes via module augmentation.
189
+ * Generated from Rango.RegisteredRoutes via module augmentation.
144
190
  * Allows optional query strings and hash fragments.
145
191
  */
146
192
  export type ValidPaths<TRoutes = GetRegisteredRoutes> =
@@ -154,6 +200,76 @@ export type ValidPaths<TRoutes = GetRegisteredRoutes> =
154
200
  }[keyof TRoutes]
155
201
  >;
156
202
 
203
+ // Module-scoped alias so the ambient `Rango.PathResponse` below can reference
204
+ // the module-level `PathResponse` without the global namespace shadowing the
205
+ // name when both are called `PathResponse`.
206
+ type GlobalPathResponse<
207
+ TPattern extends string,
208
+ TRoutes = GetRegisteredRoutes,
209
+ > = PathResponse<TPattern, TRoutes>;
210
+
211
+ /**
212
+ * Ambient path types on the `Rango` namespace.
213
+ *
214
+ * These live on the same global namespace consumers already augment for
215
+ * `Rango.Env` / `Rango.Vars`, so they are reachable with no import wherever the
216
+ * router's types are in scope. They are the public, recommended surface for
217
+ * typing anything that wraps `href()`. `ValidPaths` / `PathResponse` stay as the
218
+ * internal building blocks behind them.
219
+ */
220
+ declare global {
221
+ namespace Rango {
222
+ /**
223
+ * Union of every valid route path accepted by `href()`.
224
+ *
225
+ * Type a wrapper's path parameter as `Rango.Path` so it shares `href()`'s
226
+ * compile-time validation against the registered routes:
227
+ *
228
+ * ```ts
229
+ * import { href } from "@rangojs/router/client";
230
+ *
231
+ * export const appHref = (path: Rango.Path) => href(path);
232
+ * ```
233
+ *
234
+ * Resolves from `Rango.RegisteredRoutes` when augmented, otherwise the
235
+ * auto-generated `Rango.GeneratedRouteMap`, otherwise a permissive
236
+ * `/${string}` fallback.
237
+ */
238
+ type Path<TRoutes = GetRegisteredRoutes> = ValidPaths<TRoutes>;
239
+
240
+ /**
241
+ * Response payload for a route, looked up from the global route map by
242
+ * either a route pattern (`/api/products/:id`) or a concrete path
243
+ * (`/api/products/123`). Because it accepts a concrete `Rango.Path`, it
244
+ * doubles as the return type of a typed `fetch` wrapper:
245
+ *
246
+ * ```ts
247
+ * type Product = Rango.PathResponse<"/api/products/:id">; // by pattern
248
+ * type Same = Rango.PathResponse<"/api/products/42">; // by concrete path
249
+ *
250
+ * const get = async <T extends Rango.Path>(
251
+ * path: T,
252
+ * ): Promise<Rango.PathResponse<T>> =>
253
+ * fetch(href(path)).then((r) => r.json());
254
+ * ```
255
+ *
256
+ * The payload is the JSON **wire** shape (via `Rango.JsonSerialize`), not the
257
+ * handler's raw return — a handler returning `{ createdAt: Date }` resolves
258
+ * here to `{ createdAt: string }` (bare, no envelope), matching what
259
+ * `fetch().then(r => r.json())` actually yields.
260
+ *
261
+ * Only resolves once `Rango.RegisteredRoutes` carries response metadata (the
262
+ * generated map has paths and search but no payloads). Pass an explicit route
263
+ * map as the second argument to look up against a non-global map (rarely
264
+ * needed in app code).
265
+ */
266
+ type PathResponse<
267
+ TPath extends string,
268
+ TRoutes = GetRegisteredRoutes,
269
+ > = GlobalPathResponse<TPath, TRoutes>;
270
+ }
271
+ }
272
+
157
273
  /**
158
274
  * Type-safe href function for client-side use
159
275
  *
@@ -182,11 +298,10 @@ export type ValidPaths<TRoutes = GetRegisteredRoutes> =
182
298
  */
183
299
  export function href<T extends ValidPaths>(path: T, mount?: string): string {
184
300
  if (mount && mount !== "/") {
185
- // Strip trailing slash from mount to avoid double-slash when joining
186
301
  const normalizedMount = mount.endsWith("/") ? mount.slice(0, -1) : mount;
187
302
  return normalizedMount + path;
188
303
  }
189
- return path;
304
+ return path as string;
190
305
  }
191
306
 
192
307
  /**
package/src/index.rsc.ts CHANGED
@@ -18,6 +18,7 @@ export {
18
18
  MiddlewareError,
19
19
  HandlerError,
20
20
  BuildError,
21
+ DslContextError,
21
22
  InvalidHandlerError,
22
23
  RouterError,
23
24
  Skip,
@@ -43,6 +44,7 @@ export type {
43
44
  // Revalidation types
44
45
  RevalidateParams,
45
46
  Revalidate,
47
+ ActionRef,
46
48
  RouteKeys,
47
49
  // Loader types
48
50
  LoaderDefinition,
@@ -63,16 +65,29 @@ export type {
63
65
  ErrorPhase,
64
66
  OnErrorContext,
65
67
  OnErrorCallback,
68
+ // View transition types (also exported from the default entry; route
69
+ // definitions resolve to this react-server entry, so they must be here too)
70
+ TransitionConfig,
71
+ TransitionWhenFn,
72
+ TransitionWhenContext,
73
+ ViewTransitionClass,
66
74
  } from "./types.js";
67
75
 
68
76
  // Router options type (server-only, so import directly)
69
77
  export type {
70
- RSCRouterOptions,
78
+ RangoOptions,
71
79
  SSRStreamMode,
72
80
  SSROptions,
73
81
  ResolveStreamingContext,
74
82
  } from "./router.js";
75
83
 
84
+ // Origin-check callback types (referenced by the RangoOptions.originCheck JSDoc)
85
+ export type {
86
+ OriginCheckConfig,
87
+ OriginCheckContext,
88
+ OriginCheckPhase,
89
+ } from "./rsc/origin-guard.js";
90
+
76
91
  // Server-side createLoader and redirect
77
92
  export {
78
93
  createLoader,
@@ -88,7 +103,6 @@ export {
88
103
  loading,
89
104
  parallel,
90
105
  intercept,
91
- when,
92
106
  errorBoundary,
93
107
  notFoundBoundary,
94
108
  transition,
@@ -100,10 +114,17 @@ export type {
100
114
  LayoutUseItem,
101
115
  AllUseItems,
102
116
  UseItems,
117
+ HandlerUseItem,
103
118
  } from "./route-types.js";
104
119
 
105
120
  // Handle API
106
121
  export { createHandle, isHandle, type Handle } from "./handle.js";
122
+ export {
123
+ DEFAULT_DEFER_TIMEOUT_MS,
124
+ type DeferOptions,
125
+ type HandlePush,
126
+ type HandlePushFn,
127
+ } from "./defer.js";
107
128
 
108
129
  // Context variable API (typed ctx.set/ctx.get tokens)
109
130
  export { createVar, type ContextVar } from "./context-var.js";
@@ -114,28 +135,34 @@ export { nonce } from "./rsc/nonce.js";
114
135
  // Pre-render handler API
115
136
  export {
116
137
  Prerender,
138
+ Passthrough,
117
139
  type PrerenderHandlerDefinition,
118
- type PrerenderPassthroughContext,
140
+ type PassthroughHandlerDefinition,
119
141
  type PrerenderOptions,
120
142
  type BuildContext,
121
143
  type StaticBuildContext,
122
144
  type GetParamsContext,
145
+ type PrerenderPassthroughResult,
123
146
  } from "./prerender.js";
124
147
 
125
148
  // Static handler API
126
- export { Static, type StaticHandlerDefinition } from "./static-handler.js";
149
+ export {
150
+ Static,
151
+ type StaticHandlerDefinition,
152
+ type StaticHandlerOptions,
153
+ } from "./static-handler.js";
127
154
 
128
155
  // Django-style URL patterns (RSC/server context)
129
156
  export {
130
157
  urls,
131
158
  type PathHelpers,
132
159
  type PathOptions,
160
+ type PartialPrerenderProps,
133
161
  type UrlPatterns,
134
162
  type IncludeOptions,
135
163
  type IncludeItem,
136
164
  type RouteResponse,
137
- type ResponseError,
138
- type ResponseEnvelope,
165
+ type ProblemDetails,
139
166
  type ResponseHandler,
140
167
  type ResponseHandlerContext,
141
168
  type JsonResponseHandler,
@@ -149,7 +176,7 @@ export {
149
176
  // Core router (server-side)
150
177
  export {
151
178
  createRouter,
152
- type RSCRouter,
179
+ type Rango,
153
180
  type RootLayoutProps,
154
181
  type RouterRequestInput,
155
182
  } from "./router.js";
@@ -159,6 +186,11 @@ export type { HandlerCacheConfig } from "./rsc/types.js";
159
186
 
160
187
  // Built-in handles (server-side)
161
188
  export { Meta } from "./handles/meta.js";
189
+ export {
190
+ Script,
191
+ type ScriptConfig,
192
+ type ScriptAttributes,
193
+ } from "./handles/script.js";
162
194
  export { Breadcrumbs, type BreadcrumbItem } from "./handles/breadcrumbs.js";
163
195
 
164
196
  // Request context (for accessing request data in server actions/components).
@@ -170,6 +202,9 @@ export type { PublicRequestContext as RequestContext } from "./server/request-co
170
202
  import type { PublicRequestContext } from "./server/request-context.js";
171
203
  import type { DefaultEnv } from "./types/global-namespace.js";
172
204
 
205
+ // Shared base for every user-facing request context (mirrors index.ts).
206
+ export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
207
+
173
208
  export const getRequestContext: <
174
209
  TEnv = DefaultEnv,
175
210
  >() => PublicRequestContext<TEnv> = _getRequestContextInternal;
@@ -178,16 +213,31 @@ export const getRequestContext: <
178
213
  export {
179
214
  cookies,
180
215
  headers,
216
+ invalidateClientCache,
217
+ keepClientCache,
181
218
  type CookieStore,
182
219
  type Cookie,
183
220
  type ReadonlyHeaders,
184
221
  } from "./server/cookie-store.js";
185
222
 
223
+ // Cache tag APIs (server-only)
224
+ // cacheTag: tag the current "use cache" entry at runtime.
225
+ // updateTag: read-your-own-writes invalidation (awaitable, for Server Actions).
226
+ // revalidateTag: background hard-purge invalidation (not awaited, for route handlers / webhooks).
227
+ export { cacheTag } from "./cache/cache-tag.js";
228
+ export { updateTag, revalidateTag } from "./cache/tag-invalidation.js";
229
+
186
230
  // Meta types
187
231
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
188
232
 
189
233
  // Middleware context types
190
- export type { MiddlewareContext, CookieOptions } from "./router/middleware.js";
234
+ export type {
235
+ MiddlewareContext,
236
+ CookieOptions,
237
+ // The function type of a middleware. Public so the documented "extract the
238
+ // middleware and unit-test it with runMiddleware" pattern has a nameable type.
239
+ MiddlewareFn,
240
+ } from "./router/middleware.js";
191
241
 
192
242
  // Reverse type utilities for type-safe URL generation (Django-style URL reversal)
193
243
  export type {
@@ -215,14 +265,51 @@ export {
215
265
  type LocationStateOptions,
216
266
  } from "./browser/react/location-state-shared.js";
217
267
 
218
- // Path-based response type lookup from RegisteredRoutes
219
- export type { PathResponse } from "./href-client.js";
268
+ // Path and response types are ambient on the `Rango` namespace (`Rango.Path`,
269
+ // `Rango.PathResponse`, declared in href-client.ts) — no import needed.
220
270
 
221
- // Telemetry sink
271
+ // Telemetry sink (event-shaped facts)
222
272
  export { createConsoleSink } from "./router/telemetry.js";
223
273
  export { createOTelSink } from "./router/telemetry-otel.js";
224
- export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
225
- export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
274
+ // OTel phase-span adapter for the `tracing` slot (the canonical span layer).
275
+ export { createOTelTracing } from "./router/telemetry-otel.js";
276
+ export type {
277
+ OTelTracer,
278
+ OTelActiveSpanTracer,
279
+ OTelSpan,
280
+ OTelTracingOptions,
281
+ } from "./router/telemetry-otel.js";
282
+ // The full TelemetryEvent union PLUS its member types, so a consumer writing a
283
+ // TelemetrySink can annotate a per-`type` handler (or construct an event literal
284
+ // in a test) instead of only narrowing the opaque union.
285
+ export type {
286
+ TelemetrySink,
287
+ TelemetryEvent,
288
+ RequestStartEvent,
289
+ RequestEndEvent,
290
+ RequestErrorEvent,
291
+ LoaderStartEvent,
292
+ LoaderEndEvent,
293
+ LoaderErrorEvent,
294
+ HandlerErrorEvent,
295
+ CacheSegmentStatus,
296
+ CacheSegmentSignal,
297
+ CacheDecisionEvent,
298
+ RevalidationDecisionEvent,
299
+ RequestTimeoutEvent,
300
+ OriginCheckRejectedEvent,
301
+ } from "./router/telemetry.js";
302
+
303
+ // Span tracing config types a consumer annotates. SpanRunner/TraceSpan are the
304
+ // internal runner contract (consumers go through createOTelTracing /
305
+ // createCloudflareTracing, which return a ready RouterTracingConfig) and are not
306
+ // exported.
307
+ export type {
308
+ RouterTracingConfig,
309
+ TracePhase,
310
+ TracePhaseToggles,
311
+ TracingToggleOptions,
312
+ } from "./router/tracing.js";
226
313
 
227
314
  // Timeout types and error class
228
315
  export { RouterTimeoutError } from "./router/timeout.js";
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ export {
18
18
  MiddlewareError,
19
19
  HandlerError,
20
20
  BuildError,
21
+ DslContextError,
21
22
  InvalidHandlerError,
22
23
  RouterError,
23
24
  Skip,
@@ -43,6 +44,7 @@ export type {
43
44
  // Revalidation types
44
45
  RevalidateParams,
45
46
  Revalidate,
47
+ ActionRef,
46
48
  RouteKeys,
47
49
  // Loader types
48
50
  LoaderDefinition,
@@ -80,7 +82,12 @@ export { createLoader } from "./loader.js";
80
82
 
81
83
  // Route definition types (safe to import anywhere)
82
84
  export type { RouteHelpers, RouteHandlers } from "./route-definition.js";
83
- export type { TransitionConfig, ViewTransitionClass } from "./types.js";
85
+ export type {
86
+ TransitionConfig,
87
+ TransitionWhenFn,
88
+ TransitionWhenContext,
89
+ ViewTransitionClass,
90
+ } from "./types.js";
84
91
 
85
92
  // Composition types for reusable callback factories
86
93
  export type {
@@ -88,6 +95,7 @@ export type {
88
95
  LayoutUseItem,
89
96
  AllUseItems,
90
97
  UseItems,
98
+ HandlerUseItem,
91
99
  } from "./route-types.js";
92
100
 
93
101
  // Response route types (usable in both server and client contexts)
@@ -101,8 +109,8 @@ export type {
101
109
  JsonResponsePathFn,
102
110
  TextResponsePathFn,
103
111
  RouteResponse,
104
- ResponseError,
105
- ResponseEnvelope,
112
+ ProblemDetails,
113
+ PartialPrerenderProps,
106
114
  } from "./urls.js";
107
115
 
108
116
  // Middleware context types
@@ -138,6 +146,12 @@ export function redirect(): never {
138
146
 
139
147
  // Handle API (universal - works on both server and client)
140
148
  export { createHandle, isHandle, type Handle } from "./handle.js";
149
+ export {
150
+ DEFAULT_DEFER_TIMEOUT_MS,
151
+ type DeferOptions,
152
+ type HandlePush,
153
+ type HandlePushFn,
154
+ } from "./defer.js";
141
155
 
142
156
  // Context variable API (typed ctx.set/ctx.get tokens)
143
157
  export { createVar, type ContextVar } from "./context-var.js";
@@ -146,17 +160,52 @@ export { createVar, type ContextVar } from "./context-var.js";
146
160
  export { nonce } from "./rsc/nonce.js";
147
161
 
148
162
  /**
149
- * Error-throwing stub for server-only `Prerender` function.
163
+ * SSR/client stub for server-only `Prerender` function.
164
+ *
165
+ * Returns a lightweight stub object instead of throwing so that the
166
+ * production SSR build can safely bundle the RSC entry chunk — the SSR
167
+ * bundler resolves `@rangojs/router` to this (SSR) entry, so Prerender
168
+ * calls in RSC code must not crash at module-evaluation time.
169
+ */
170
+ export function Prerender(
171
+ _handler?: any,
172
+ _optionsOrId?: any,
173
+ __injectedId?: string,
174
+ ): any {
175
+ const id =
176
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
177
+ return { __brand: "prerenderHandler" as const, $$id: id };
178
+ }
179
+
180
+ /**
181
+ * SSR/client stub for server-only `Passthrough` function.
150
182
  */
151
- export function Prerender(): never {
152
- throw serverOnlyStubError("Prerender");
183
+ export function Passthrough(
184
+ _handler?: any,
185
+ _optionsOrId?: any,
186
+ __injectedId?: string,
187
+ ): any {
188
+ const id =
189
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
190
+ return { __brand: "passthroughHandler" as const, $$id: id };
153
191
  }
154
192
 
155
193
  /**
156
- * Error-throwing stub for server-only `Static` function.
194
+ * SSR/client stub for server-only `Static` function.
195
+ *
196
+ * Returns a lightweight stub object instead of throwing so that the
197
+ * production SSR build can safely bundle the RSC entry chunk — the SSR
198
+ * bundler resolves `@rangojs/router` to this (SSR) entry, so Static
199
+ * calls in RSC code must not crash at module-evaluation time.
157
200
  */
158
- export function Static(): never {
159
- throw serverOnlyStubError("Static");
201
+ export function Static(
202
+ _handler?: any,
203
+ _optionsOrId?: any,
204
+ __injectedId?: string,
205
+ ): any {
206
+ const id =
207
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
208
+ return { __brand: "staticHandler" as const, $$id: id };
160
209
  }
161
210
 
162
211
  /**
@@ -180,6 +229,17 @@ export function headers(): never {
180
229
  throw serverOnlyStubError("headers");
181
230
  }
182
231
 
232
+ /**
233
+ * Client implementation of `invalidateClientCache()`. Unlike the server-only
234
+ * stubs above this is a REAL function under the `default` condition (it marks
235
+ * the client's caches stale); the `react-server` condition (index.rsc.ts)
236
+ * selects the server implementation that writes a rotated `Set-Cookie`.
237
+ */
238
+ export {
239
+ invalidateClientCache,
240
+ keepClientCache,
241
+ } from "./browser/invalidate-client-cache.js";
242
+
183
243
  /**
184
244
  * Error-throwing stub for server-only `createReverse` function.
185
245
  */
@@ -200,6 +260,18 @@ export function middleware(): never {
200
260
  export function revalidate(): never {
201
261
  throw serverOnlyStubError("revalidate");
202
262
  }
263
+ // Cache tag APIs are server-only (real implementations in index.rsc.ts). These
264
+ // stubs keep the named-export shape identical under the default/non-react-server
265
+ // condition so SSR/client/default bundles that encounter the import link cleanly.
266
+ export function cacheTag(): never {
267
+ throw serverOnlyStubError("cacheTag");
268
+ }
269
+ export function updateTag(): never {
270
+ throw serverOnlyStubError("updateTag");
271
+ }
272
+ export function revalidateTag(): never {
273
+ throw serverOnlyStubError("revalidateTag");
274
+ }
203
275
  export function loader(): never {
204
276
  throw serverOnlyStubError("loader");
205
277
  }
@@ -212,9 +284,6 @@ export function parallel(): never {
212
284
  export function intercept(): never {
213
285
  throw serverOnlyStubError("intercept");
214
286
  }
215
- export function when(): never {
216
- throw serverOnlyStubError("when");
217
- }
218
287
  export function errorBoundary(): never {
219
288
  throw serverOnlyStubError("errorBoundary");
220
289
  }
@@ -228,6 +297,9 @@ export function transition(): never {
228
297
  // Request context type (safe for client)
229
298
  export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
230
299
 
300
+ // Shared base for every user-facing request context.
301
+ export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
302
+
231
303
  // Cookie store types (safe for client)
232
304
  export type {
233
305
  CookieStore,
@@ -235,6 +307,15 @@ export type {
235
307
  ReadonlyHeaders,
236
308
  } from "./server/cookie-store.js";
237
309
 
310
+ // Built-in handles (universal — work on both server and client)
311
+ export { Meta } from "./handles/meta.js";
312
+ export {
313
+ Script,
314
+ type ScriptConfig,
315
+ type ScriptAttributes,
316
+ } from "./handles/script.js";
317
+ export { Breadcrumbs } from "./handles/breadcrumbs.js";
318
+
238
319
  // Meta types
239
320
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
240
321
 
@@ -259,14 +340,57 @@ export {
259
340
  type LocationStateOptions,
260
341
  } from "./browser/react/location-state-shared.js";
261
342
 
262
- // Path-based response type lookup from RegisteredRoutes
263
- export type { PathResponse } from "./href-client.js";
343
+ // Path and response types are ambient on the `Rango` namespace (`Rango.Path`,
344
+ // `Rango.PathResponse`, declared in href-client.ts) — no import needed.
345
+
346
+ // Telemetry types only — the createConsoleSink / createOTelSink /
347
+ // createOTelTracing VALUES are server-only and live in index.rsc.ts (the
348
+ // `react-server` condition of the bare `@rangojs/router` import). Re-exporting
349
+ // them as values from this (default/client) entry would pull telemetry.ts and
350
+ // telemetry-otel.ts into the client module graph; both tree-shake to zero bytes
351
+ // but still appear in bundle analysis output and slow build-time module
352
+ // resolution. The factory values are NOT re-exported from `@rangojs/router/server`
353
+ // either — that subpath is internal, not user-facing (see server.ts header).
354
+ // Non-RSC server code imports these TYPES from the root and obtains the factory
355
+ // VALUES from its own router definition module, which resolves to index.rsc.ts
356
+ // under the `react-server` condition.
357
+ export type {
358
+ OTelTracer,
359
+ OTelActiveSpanTracer,
360
+ OTelSpan,
361
+ OTelTracingOptions,
362
+ } from "./router/telemetry-otel.js";
363
+ // The full TelemetryEvent union PLUS its member types, so a consumer writing a
364
+ // TelemetrySink can annotate a per-`type` handler (or construct an event literal
365
+ // in a test) instead of only narrowing the opaque union.
366
+ export type {
367
+ TelemetrySink,
368
+ TelemetryEvent,
369
+ RequestStartEvent,
370
+ RequestEndEvent,
371
+ RequestErrorEvent,
372
+ LoaderStartEvent,
373
+ LoaderEndEvent,
374
+ LoaderErrorEvent,
375
+ HandlerErrorEvent,
376
+ CacheSegmentStatus,
377
+ CacheSegmentSignal,
378
+ CacheDecisionEvent,
379
+ RevalidationDecisionEvent,
380
+ RequestTimeoutEvent,
381
+ OriginCheckRejectedEvent,
382
+ } from "./router/telemetry.js";
264
383
 
265
- // Telemetry sink
266
- export { createConsoleSink } from "./router/telemetry.js";
267
- export { createOTelSink } from "./router/telemetry-otel.js";
268
- export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
269
- export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
384
+ // Span tracing config types a consumer annotates. SpanRunner/TraceSpan are the
385
+ // internal runner contract (consumers go through createOTelTracing /
386
+ // createCloudflareTracing, which return a ready RouterTracingConfig) and are not
387
+ // exported.
388
+ export type {
389
+ RouterTracingConfig,
390
+ TracePhase,
391
+ TracePhaseToggles,
392
+ TracingToggleOptions,
393
+ } from "./router/tracing.js";
270
394
 
271
395
  // Timeout types and error class
272
396
  export { RouterTimeoutError } from "./router/timeout.js";