@rangojs/router 0.0.0-experimental.13221847 → 0.0.0-experimental.133

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 (1198) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +245 -49
  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 +433 -131
  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/dist/network-error-thrower.d.ts +17 -0
  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 +3356 -1095
  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 +66 -12
  812. package/skills/api-client/SKILL.md +211 -0
  813. package/skills/breadcrumbs/SKILL.md +64 -2
  814. package/skills/bundle-analysis/SKILL.md +159 -0
  815. package/skills/cache-guide/SKILL.md +247 -23
  816. package/skills/caching/SKILL.md +281 -11
  817. package/skills/composability/SKILL.md +27 -2
  818. package/skills/css/SKILL.md +76 -0
  819. package/skills/debug-manifest/SKILL.md +4 -2
  820. package/skills/document-cache/SKILL.md +78 -55
  821. package/skills/handler-use/SKILL.md +364 -0
  822. package/skills/hooks/SKILL.md +250 -30
  823. package/skills/host-router/SKILL.md +83 -23
  824. package/skills/i18n/SKILL.md +276 -0
  825. package/skills/intercept/SKILL.md +50 -6
  826. package/skills/layout/SKILL.md +35 -9
  827. package/skills/links/SKILL.md +249 -17
  828. package/skills/loader/SKILL.md +279 -53
  829. package/skills/middleware/SKILL.md +52 -13
  830. package/skills/migrate-nextjs/SKILL.md +584 -0
  831. package/skills/migrate-react-router/SKILL.md +771 -0
  832. package/skills/mime-routes/SKILL.md +28 -1
  833. package/skills/observability/SKILL.md +172 -0
  834. package/skills/parallel/SKILL.md +144 -7
  835. package/skills/prerender/SKILL.md +153 -109
  836. package/skills/rango/SKILL.md +251 -22
  837. package/skills/react-compiler/SKILL.md +168 -0
  838. package/skills/response-routes/SKILL.md +123 -48
  839. package/skills/route/SKILL.md +101 -5
  840. package/skills/router-setup/SKILL.md +116 -8
  841. package/skills/scripts/SKILL.md +179 -0
  842. package/skills/server-actions/SKILL.md +775 -0
  843. package/skills/streams-and-websockets/SKILL.md +283 -0
  844. package/skills/tailwind/SKILL.md +27 -3
  845. package/skills/testing/SKILL.md +129 -0
  846. package/skills/testing/bindings.md +103 -0
  847. package/skills/testing/cache-prerender.md +127 -0
  848. package/skills/testing/client-components.md +124 -0
  849. package/skills/testing/e2e-parity.md +125 -0
  850. package/skills/testing/flight.md +91 -0
  851. package/skills/testing/handles.md +129 -0
  852. package/skills/testing/loader.md +128 -0
  853. package/skills/testing/middleware.md +99 -0
  854. package/skills/testing/render-handler.md +121 -0
  855. package/skills/testing/response-routes.md +95 -0
  856. package/skills/testing/reverse-and-types.md +84 -0
  857. package/skills/testing/server-actions.md +107 -0
  858. package/skills/testing/server-tree.md +128 -0
  859. package/skills/testing/setup.md +123 -0
  860. package/skills/typesafety/SKILL.md +332 -29
  861. package/skills/use-cache/SKILL.md +46 -14
  862. package/skills/view-transitions/SKILL.md +294 -0
  863. package/src/__augment-tests__/augment.ts +81 -0
  864. package/src/__augment-tests__/augmented.check.ts +116 -0
  865. package/src/__internal.ts +1 -66
  866. package/src/browser/action-coordinator.ts +53 -36
  867. package/src/browser/action-fence.ts +47 -0
  868. package/src/browser/app-shell.ts +39 -0
  869. package/src/browser/app-version.ts +14 -0
  870. package/src/browser/connection-warmup.ts +134 -0
  871. package/src/browser/cookie-name.ts +140 -0
  872. package/src/browser/event-controller.ts +192 -150
  873. package/src/browser/history-state.ts +21 -0
  874. package/src/browser/index.ts +3 -3
  875. package/src/browser/invalidate-client-cache.ts +52 -0
  876. package/src/browser/navigation-bridge.ts +66 -14
  877. package/src/browser/navigation-client.ts +173 -86
  878. package/src/browser/navigation-store-handle.ts +38 -0
  879. package/src/browser/navigation-store.ts +76 -67
  880. package/src/browser/navigation-transaction.ts +9 -59
  881. package/src/browser/partial-update.ts +124 -110
  882. package/src/browser/prefetch/cache.ts +197 -62
  883. package/src/browser/prefetch/fetch.ts +320 -40
  884. package/src/browser/prefetch/queue.ts +95 -29
  885. package/src/browser/prefetch/resource-ready.ts +77 -0
  886. package/src/browser/rango-state.ts +158 -76
  887. package/src/browser/react/Link.tsx +102 -15
  888. package/src/browser/react/NavigationProvider.tsx +106 -119
  889. package/src/browser/react/ScrollRestoration.tsx +10 -6
  890. package/src/browser/react/context.ts +7 -2
  891. package/src/browser/react/filter-segment-order.ts +66 -7
  892. package/src/browser/react/index.ts +0 -48
  893. package/src/browser/react/location-state-shared.ts +178 -8
  894. package/src/browser/react/location-state.ts +39 -14
  895. package/src/browser/react/use-action.ts +6 -15
  896. package/src/browser/react/use-handle.ts +23 -69
  897. package/src/browser/react/use-href.tsx +8 -1
  898. package/src/browser/react/use-link-status.ts +33 -8
  899. package/src/browser/react/use-navigation.ts +32 -7
  900. package/src/browser/react/use-params.ts +20 -10
  901. package/src/browser/react/use-reverse.ts +106 -0
  902. package/src/browser/react/use-router.ts +46 -11
  903. package/src/browser/react/use-search-params.ts +0 -5
  904. package/src/browser/react/use-segments.ts +11 -21
  905. package/src/browser/response-adapter.ts +66 -4
  906. package/src/browser/rsc-router.tsx +114 -24
  907. package/src/browser/scroll-restoration.ts +37 -22
  908. package/src/browser/segment-reconciler.ts +36 -14
  909. package/src/browser/segment-structure-assert.ts +2 -2
  910. package/src/browser/server-action-bridge.ts +222 -61
  911. package/src/browser/types.ts +73 -11
  912. package/src/browser/validate-redirect-origin.ts +43 -16
  913. package/src/build/collect-fallback-refs.ts +107 -0
  914. package/src/build/generate-manifest.ts +65 -40
  915. package/src/build/generate-route-types.ts +5 -1
  916. package/src/build/index.ts +8 -2
  917. package/src/build/prefix-tree-utils.ts +123 -0
  918. package/src/build/route-trie.ts +165 -36
  919. package/src/build/route-types/ast-route-extraction.ts +15 -8
  920. package/src/build/route-types/codegen.ts +16 -5
  921. package/src/build/route-types/include-resolution.ts +125 -24
  922. package/src/build/route-types/param-extraction.ts +6 -3
  923. package/src/build/route-types/per-module-writer.ts +22 -6
  924. package/src/build/route-types/router-processing.ts +260 -94
  925. package/src/build/route-types/scan-filter.ts +9 -2
  926. package/src/build/route-types/source-scan.ts +216 -0
  927. package/src/build/runtime-discovery.ts +9 -20
  928. package/src/cache/cache-error.ts +104 -0
  929. package/src/cache/cache-key-utils.ts +29 -13
  930. package/src/cache/cache-policy.ts +108 -34
  931. package/src/cache/cache-runtime.ts +199 -37
  932. package/src/cache/cache-scope.ts +234 -87
  933. package/src/cache/cache-tag.ts +103 -0
  934. package/src/cache/cf/cf-base64.ts +33 -0
  935. package/src/cache/cf/cf-cache-constants.ts +127 -0
  936. package/src/cache/cf/cf-cache-store.ts +1989 -378
  937. package/src/cache/cf/cf-cache-types.ts +349 -0
  938. package/src/cache/cf/cf-kv-utils.ts +46 -0
  939. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  940. package/src/cache/cf/index.ts +6 -16
  941. package/src/cache/document-cache.ts +72 -20
  942. package/src/cache/handle-snapshot.ts +70 -0
  943. package/src/cache/index.ts +10 -20
  944. package/src/cache/memory-segment-store.ts +136 -37
  945. package/src/cache/profile-registry.ts +31 -31
  946. package/src/cache/read-through-swr.ts +41 -11
  947. package/src/cache/segment-codec.ts +9 -17
  948. package/src/cache/tag-invalidation.ts +230 -0
  949. package/src/cache/taint.ts +55 -0
  950. package/src/cache/types.ts +37 -100
  951. package/src/client.rsc.tsx +44 -21
  952. package/src/client.tsx +119 -290
  953. package/src/cloudflare/index.ts +11 -0
  954. package/src/cloudflare/tracing.ts +109 -0
  955. package/src/component-utils.ts +19 -0
  956. package/src/components/DefaultDocument.tsx +8 -2
  957. package/src/context-var.ts +84 -2
  958. package/src/decode-loader-results.ts +52 -0
  959. package/src/defer.ts +196 -0
  960. package/src/deps/ssr.ts +0 -1
  961. package/src/encode-kv.ts +49 -0
  962. package/src/errors.ts +30 -4
  963. package/src/escape-script.ts +52 -0
  964. package/src/handle.ts +70 -22
  965. package/src/handles/MetaTags.tsx +56 -19
  966. package/src/handles/Scripts.tsx +183 -0
  967. package/src/handles/breadcrumbs.ts +37 -8
  968. package/src/handles/is-thenable.ts +19 -0
  969. package/src/handles/meta.ts +51 -40
  970. package/src/handles/script.ts +244 -0
  971. package/src/host/cookie-handler.ts +9 -60
  972. package/src/host/errors.ts +0 -24
  973. package/src/host/index.ts +8 -2
  974. package/src/host/pattern-matcher.ts +23 -52
  975. package/src/host/router.ts +107 -99
  976. package/src/host/testing.ts +40 -27
  977. package/src/host/types.ts +37 -4
  978. package/src/host/utils.ts +1 -1
  979. package/src/href-client.ts +137 -22
  980. package/src/index.rsc.ts +93 -12
  981. package/src/index.ts +133 -15
  982. package/src/internal-debug.ts +2 -4
  983. package/src/loader-store.ts +500 -0
  984. package/src/loader.rsc.ts +20 -13
  985. package/src/loader.ts +12 -11
  986. package/src/missing-id-error.ts +68 -0
  987. package/src/network-error-thrower.tsx +1 -6
  988. package/src/outlet-context.ts +1 -1
  989. package/src/outlet-provider.tsx +1 -5
  990. package/src/prerender/param-hash.ts +16 -16
  991. package/src/prerender/store.ts +37 -41
  992. package/src/prerender.ts +198 -82
  993. package/src/redirect-origin.ts +100 -0
  994. package/src/regex-escape.ts +8 -0
  995. package/src/response-utils.ts +62 -0
  996. package/src/reverse.ts +65 -15
  997. package/src/root-error-boundary.tsx +1 -19
  998. package/src/route-content-wrapper.tsx +7 -72
  999. package/src/route-definition/dsl-helpers.ts +445 -277
  1000. package/src/route-definition/helper-factories.ts +29 -139
  1001. package/src/route-definition/helpers-types.ts +113 -37
  1002. package/src/route-definition/index.ts +3 -0
  1003. package/src/route-definition/redirect.ts +51 -10
  1004. package/src/route-definition/resolve-handler-use.ts +161 -0
  1005. package/src/route-definition/use-item-types.ts +32 -0
  1006. package/src/route-map-builder.ts +0 -16
  1007. package/src/route-types.ts +37 -41
  1008. package/src/router/basename.ts +14 -0
  1009. package/src/router/content-negotiation.ts +164 -17
  1010. package/src/router/error-handling.ts +45 -18
  1011. package/src/router/find-match.ts +44 -23
  1012. package/src/router/handler-context.ts +83 -39
  1013. package/src/router/instrument.ts +350 -0
  1014. package/src/router/intercept-resolution.ts +48 -24
  1015. package/src/router/lazy-includes.ts +15 -52
  1016. package/src/router/loader-resolution.ts +274 -56
  1017. package/src/router/logging.ts +0 -6
  1018. package/src/router/manifest.ts +40 -42
  1019. package/src/router/match-api.ts +120 -204
  1020. package/src/router/match-context.ts +0 -22
  1021. package/src/router/match-handlers.ts +58 -58
  1022. package/src/router/match-middleware/background-revalidation.ts +15 -5
  1023. package/src/router/match-middleware/cache-lookup.ts +178 -277
  1024. package/src/router/match-middleware/cache-store.ts +42 -28
  1025. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  1026. package/src/router/match-middleware/segment-resolution.ts +45 -14
  1027. package/src/router/match-pipelines.ts +1 -42
  1028. package/src/router/match-result.ts +87 -39
  1029. package/src/router/metrics.ts +0 -34
  1030. package/src/router/middleware-types.ts +13 -142
  1031. package/src/router/middleware.ts +268 -171
  1032. package/src/router/navigation-snapshot.ts +131 -0
  1033. package/src/router/params-util.ts +23 -0
  1034. package/src/router/pattern-matching.ts +132 -90
  1035. package/src/router/prefetch-cache-ttl.ts +51 -0
  1036. package/src/router/prerender-match.ts +195 -56
  1037. package/src/router/preview-match.ts +32 -102
  1038. package/src/router/request-classification.ts +276 -0
  1039. package/src/router/revalidation.ts +123 -73
  1040. package/src/router/route-snapshot.ts +244 -0
  1041. package/src/router/router-context.ts +3 -27
  1042. package/src/router/router-interfaces.ts +115 -35
  1043. package/src/router/router-options.ts +172 -15
  1044. package/src/router/router-registry.ts +2 -5
  1045. package/src/router/segment-resolution/fresh.ts +167 -87
  1046. package/src/router/segment-resolution/helpers.ts +115 -30
  1047. package/src/router/segment-resolution/loader-cache.ts +62 -37
  1048. package/src/router/segment-resolution/revalidation.ts +351 -319
  1049. package/src/router/segment-resolution/static-store.ts +19 -5
  1050. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1051. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  1052. package/src/router/segment-resolution.ts +5 -1
  1053. package/src/router/segment-wrappers.ts +6 -5
  1054. package/src/router/state-cookie-name.ts +33 -0
  1055. package/src/router/substitute-pattern-params.ts +56 -0
  1056. package/src/router/telemetry-otel.ts +161 -199
  1057. package/src/router/telemetry.ts +96 -19
  1058. package/src/router/timeout.ts +0 -20
  1059. package/src/router/tracing.ts +206 -0
  1060. package/src/router/trie-matching.ts +163 -59
  1061. package/src/router/types.ts +10 -63
  1062. package/src/router/url-params.ts +44 -0
  1063. package/src/router.ts +158 -54
  1064. package/src/rsc/handler-context.ts +3 -2
  1065. package/src/rsc/handler.ts +658 -511
  1066. package/src/rsc/helpers.ts +168 -46
  1067. package/src/rsc/index.ts +2 -5
  1068. package/src/rsc/json-route-result.ts +38 -0
  1069. package/src/rsc/loader-fetch.ts +127 -31
  1070. package/src/rsc/manifest-init.ts +33 -42
  1071. package/src/rsc/origin-guard.ts +39 -25
  1072. package/src/rsc/progressive-enhancement.ts +77 -11
  1073. package/src/rsc/redirect-guard.ts +99 -0
  1074. package/src/rsc/response-cache-serve.ts +238 -0
  1075. package/src/rsc/response-error.ts +79 -12
  1076. package/src/rsc/response-route-handler.ts +99 -189
  1077. package/src/rsc/rsc-rendering.ts +105 -72
  1078. package/src/rsc/runtime-warnings.ts +23 -10
  1079. package/src/rsc/server-action.ts +263 -112
  1080. package/src/rsc/ssr-setup.ts +18 -2
  1081. package/src/rsc/types.ts +32 -6
  1082. package/src/runtime-env.ts +18 -0
  1083. package/src/search-params.ts +35 -30
  1084. package/src/segment-content-promise.ts +67 -0
  1085. package/src/segment-loader-promise.ts +149 -0
  1086. package/src/segment-system.tsx +218 -202
  1087. package/src/serialize.ts +243 -0
  1088. package/src/server/context.ts +222 -51
  1089. package/src/server/cookie-parse.ts +32 -0
  1090. package/src/server/cookie-store.ts +80 -5
  1091. package/src/server/handle-store.ts +40 -38
  1092. package/src/server/loader-registry.ts +26 -46
  1093. package/src/server/request-context.ts +390 -170
  1094. package/src/ssr/index.tsx +24 -16
  1095. package/src/static-handler.ts +27 -18
  1096. package/src/testing/cache-status.ts +162 -0
  1097. package/src/testing/collect-handle.ts +40 -0
  1098. package/src/testing/dispatch.ts +701 -0
  1099. package/src/testing/dom.entry.ts +22 -0
  1100. package/src/testing/e2e/fixture.ts +188 -0
  1101. package/src/testing/e2e/index.ts +128 -0
  1102. package/src/testing/e2e/matchers.ts +35 -0
  1103. package/src/testing/e2e/page-helpers.ts +272 -0
  1104. package/src/testing/e2e/parity.ts +387 -0
  1105. package/src/testing/e2e/server.ts +195 -0
  1106. package/src/testing/flight-matchers.ts +97 -0
  1107. package/src/testing/flight-normalize.ts +11 -0
  1108. package/src/testing/flight-runtime.d.ts +57 -0
  1109. package/src/testing/flight-tree.ts +682 -0
  1110. package/src/testing/flight.entry.ts +52 -0
  1111. package/src/testing/flight.ts +257 -0
  1112. package/src/testing/generated-routes.ts +183 -0
  1113. package/src/testing/index.ts +99 -0
  1114. package/src/testing/internal/context.ts +371 -0
  1115. package/src/testing/internal/flight-client-globals.ts +30 -0
  1116. package/src/testing/internal/seed-vars.ts +54 -0
  1117. package/src/testing/render-handler.ts +343 -0
  1118. package/src/testing/render-route.tsx +581 -0
  1119. package/src/testing/run-loader.ts +385 -0
  1120. package/src/testing/run-middleware.ts +205 -0
  1121. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1122. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1123. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1124. package/src/testing/vitest-stubs/version.ts +5 -0
  1125. package/src/testing/vitest.ts +305 -0
  1126. package/src/theme/ThemeProvider.tsx +20 -58
  1127. package/src/theme/ThemeScript.tsx +7 -9
  1128. package/src/theme/constants.ts +52 -13
  1129. package/src/theme/index.ts +0 -7
  1130. package/src/theme/theme-context.ts +1 -5
  1131. package/src/theme/theme-script.ts +22 -21
  1132. package/src/theme/use-theme.ts +0 -3
  1133. package/src/types/boundaries.ts +0 -35
  1134. package/src/types/cache-types.ts +17 -8
  1135. package/src/types/error-types.ts +30 -90
  1136. package/src/types/global-namespace.ts +54 -41
  1137. package/src/types/handler-context.ts +144 -78
  1138. package/src/types/index.ts +1 -10
  1139. package/src/types/loader-types.ts +44 -15
  1140. package/src/types/request-scope.ts +112 -0
  1141. package/src/types/route-config.ts +6 -50
  1142. package/src/types/route-entry.ts +12 -7
  1143. package/src/types/segments.ts +36 -15
  1144. package/src/urls/include-helper.ts +33 -70
  1145. package/src/urls/index.ts +1 -11
  1146. package/src/urls/path-helper-types.ts +58 -11
  1147. package/src/urls/path-helper.ts +57 -111
  1148. package/src/urls/pattern-types.ts +48 -19
  1149. package/src/urls/response-types.ts +25 -22
  1150. package/src/urls/type-extraction.ts +58 -139
  1151. package/src/urls/urls-function.ts +1 -18
  1152. package/src/use-loader.tsx +346 -89
  1153. package/src/vite/debug.ts +185 -0
  1154. package/src/vite/discovery/bundle-postprocess.ts +36 -38
  1155. package/src/vite/discovery/discover-routers.ts +130 -85
  1156. package/src/vite/discovery/discovery-errors.ts +194 -0
  1157. package/src/vite/discovery/gate-state.ts +171 -0
  1158. package/src/vite/discovery/prerender-collection.ts +214 -132
  1159. package/src/vite/discovery/route-types-writer.ts +40 -84
  1160. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1161. package/src/vite/discovery/state.ts +57 -4
  1162. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  1163. package/src/vite/index.ts +6 -0
  1164. package/src/vite/plugin-types.ts +178 -5
  1165. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1166. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  1167. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1168. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1169. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1170. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1171. package/src/vite/plugins/expose-action-id.ts +48 -95
  1172. package/src/vite/plugins/expose-id-utils.ts +96 -51
  1173. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1174. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  1175. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1176. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1177. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  1178. package/src/vite/plugins/performance-tracks.ts +89 -0
  1179. package/src/vite/plugins/refresh-cmd.ts +89 -27
  1180. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1181. package/src/vite/plugins/version-injector.ts +21 -25
  1182. package/src/vite/plugins/version-plugin.ts +37 -40
  1183. package/src/vite/plugins/virtual-entries.ts +13 -18
  1184. package/src/vite/rango.ts +119 -111
  1185. package/src/vite/router-discovery.ts +939 -135
  1186. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1187. package/src/vite/utils/banner.ts +1 -1
  1188. package/src/vite/utils/bundle-analysis.ts +10 -15
  1189. package/src/vite/utils/client-chunks.ts +184 -0
  1190. package/src/vite/utils/directive-prologue.ts +40 -0
  1191. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1192. package/src/vite/utils/manifest-utils.ts +4 -59
  1193. package/src/vite/utils/package-resolution.ts +20 -52
  1194. package/src/vite/utils/prerender-utils.ts +81 -34
  1195. package/src/vite/utils/shared-utils.ts +92 -42
  1196. package/src/browser/action-response-classifier.ts +0 -99
  1197. package/src/browser/shallow.ts +0 -40
  1198. package/src/router/middleware-cookies.ts +0 -55
package/AGENTS.md CHANGED
@@ -7,3 +7,11 @@ Run `/rango` to understand the API. Detailed guides for each feature are in the
7
7
  ## Development rules
8
8
 
9
9
  - Always commit generated files (e.g. `*.gen.ts`) alongside the source changes that produced them.
10
+
11
+ ## Repo-wide rules (read before pushing)
12
+
13
+ This package inherits the repo-wide conventions in the root [`AGENTS.md`](../../AGENTS.md) and [`CLAUDE.md`](../../CLAUDE.md). The ones a package-scoped reader is most likely to miss:
14
+
15
+ - **Pre-push gate** — before EVERY push, run all of the following from the **repo root** and fix any failures: `pnpm run typecheck`, `pnpm run test:unit:all`, `pnpm run lint`, `pnpm run format`.
16
+ - **`test:unit:all` is recursive** — it runs the unit AND Flight/RSC suites for every package and consumer app (cloudflare-basic, mini, vite-rsc-demo, ...), not just `@rangojs/router`. A change can pass this package's own tests while breaking a consumer app's `@rangojs/router/testing` dogfood suite, so do not run only `pnpm --filter @rangojs/router test:unit`.
17
+ - **Dev + prod e2e parity is mandatory** — every e2e test must cover BOTH dev and production modes; never add a dev-only test without its production counterpart. See the dev/prod bucketing convention in the root `AGENTS.md`.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # @rangojs/router
1
+ # Rango
2
2
 
3
- Named-route RSC router with structural composability and type-safe partial rendering for Vite.
3
+ React RSC Route Wrangler
4
+
5
+ A code-first, type-safe React Server Components router
4
6
 
5
7
  > **Experimental:** This package is under active development. APIs may change between releases. Install with `@experimental` tag.
6
8
 
@@ -10,6 +12,7 @@ Named-route RSC router with structural composability and type-safe partial rende
10
12
  - **Structural composability** — Attach routes, loaders, middleware, handles, caching, prerendering, and static generation without hiding the route tree
11
13
  - **Composable URL patterns** — Django-style `urls()` DSL with `path`, `layout`, `include`
12
14
  - **Data loaders** — `createLoader()` with automatic streaming and Suspense integration
15
+ - **Server actions** — `"use server"` mutations with `useActionState`, `useOptimistic`, and per-segment + per-loader `revalidate()` rules
13
16
  - **Live data layer** — Pre-render or cache the UI shell while loaders stay live by default at request time
14
17
  - **Layouts & nesting** — Nested layouts with `<Outlet />` and parallel routes
15
18
  - **Segment-level caching** — `cache()` DSL with TTL/SWR and pluggable cache stores
@@ -91,24 +94,29 @@ This file is a server/RSC module and should import router construction APIs from
91
94
 
92
95
  ```tsx
93
96
  // src/router.tsx
94
- import { createRouter, urls } from "@rangojs/router";
95
- import { Document } from "./document";
97
+ import { createRouter } from "@rangojs/router";
96
98
 
97
- const blogPatterns = urls(({ path }) => [
98
- path("/", BlogIndexPage, { name: "index" }),
99
- path("/:slug", BlogPostPage, { name: "post" }),
99
+ export const router = createRouter().routes(({ path }) => [
100
+ path("/", HomePage, { name: "home" }),
101
+ path("/about", AboutPage, { name: "about" }),
100
102
  ]);
101
103
 
104
+ export const reverse = router.reverse;
105
+ // reverse("home") -> "/"
106
+ ```
107
+
108
+ For larger apps, extract route modules with `urls()` and compose with `include()`:
109
+
110
+ ```tsx
111
+ import { createRouter, urls } from "@rangojs/router";
112
+ import { blogPatterns } from "./urls/blog";
113
+
102
114
  const urlpatterns = urls(({ path, include }) => [
103
115
  path("/", HomePage, { name: "home" }),
104
116
  include("/blog", blogPatterns, { name: "blog" }),
105
117
  ]);
106
118
 
107
- export const router = createRouter({ document: Document }).routes(urlpatterns);
108
-
109
- // Export typed reverse function for URL generation by route name
110
- export const reverse = router.reverse;
111
-
119
+ export const router = createRouter().routes(urlpatterns);
112
120
  // reverse("blog.post", { slug: "hello-world" }) -> "/blog/hello-world"
113
121
  ```
114
122
 
@@ -119,20 +127,29 @@ export const reverse = router.reverse;
119
127
  "use client";
120
128
 
121
129
  import type { ReactNode } from "react";
122
- import { MetaTags } from "@rangojs/router/client";
130
+ import { MetaTags, Scripts } from "@rangojs/router/client";
123
131
 
124
132
  export function Document({ children }: { children: ReactNode }) {
125
133
  return (
126
134
  <html lang="en">
127
135
  <head>
128
136
  <MetaTags />
137
+ <Scripts />
129
138
  </head>
130
- <body>{children}</body>
139
+ <body>
140
+ <Scripts position="body" />
141
+ {children}
142
+ </body>
131
143
  </html>
132
144
  );
133
145
  }
134
146
  ```
135
147
 
148
+ `<MetaTags />` and `<Scripts />` render the tags collected by the built-in `Meta`
149
+ and `Script` handles (see [Meta Tags](#meta-tags) and [Scripts](#scripts)). The
150
+ built-in `DefaultDocument` already includes all three sites, so this is only
151
+ needed for a custom document.
152
+
136
153
  ## Defining Routes
137
154
 
138
155
  Rango is a named-route router first.
@@ -156,13 +173,18 @@ const urlpatterns = urls(({ path }) => [
156
173
  ]);
157
174
  ```
158
175
 
159
- Use `reverse()` as the default way to link to routes:
176
+ Use `ctx.reverse()` from handler context as the default way to link to routes from server code:
160
177
 
161
178
  ```tsx
162
- router.reverse("product", { slug: "widget" }); // "/product/widget"
163
- router.reverse("search", undefined, { q: "rsc" }); // "/search?q=rsc"
179
+ const ProductPage: Handler<"product"> = (ctx) => {
180
+ const url = ctx.reverse("product", { slug: "widget" }); // "/product/widget"
181
+ const searchUrl = ctx.reverse("search", undefined, { q: "rsc" }); // "/search?q=rsc"
182
+ return <Link to={url}>Widget</Link>;
183
+ };
164
184
  ```
165
185
 
186
+ `router.reverse()` (exported from the router module) is the same function without a handler context, useful in scripts or tests. In request code, prefer `ctx.reverse()` — it auto-fills mount params from the current match.
187
+
166
188
  ### Composable URL Modules
167
189
 
168
190
  Local route names compose cleanly with `include(..., { name })`:
@@ -472,41 +494,130 @@ const urlpatterns = urls(({ path, loader }) => [
472
494
  ]);
473
495
  ```
474
496
 
475
- ## Navigation & Links
497
+ ## Server Actions
498
+
499
+ Server actions are React's RSC mutation primitive. Define them with the
500
+ `"use server"` directive — Rango uses standard React 19 hooks
501
+ (`useActionState`, `useFormStatus`, `useOptimistic`) with no framework wrapper.
476
502
 
477
- ### Named Routes with `reverse()` (Server Components)
503
+ ```tsx
504
+ // app/actions/cart.ts
505
+ "use server";
478
506
 
479
- In server components, use `reverse()` to generate URLs by route name:
507
+ import { getRequestContext } from "@rangojs/router";
508
+
509
+ export async function addToCart(productId: string): Promise<void> {
510
+ const ctx = getRequestContext();
511
+ const userId = ctx.get("user").id;
512
+ await db.cart.insert({ userId, productId });
513
+ }
514
+ ```
480
515
 
481
516
  ```tsx
482
- import { Link } from "@rangojs/router/client";
483
- import { reverse } from "./router";
517
+ // Client form with progressive enhancement + pending state
518
+ "use client";
519
+ import { useActionState } from "react";
520
+ import { saveProfile } from "../actions/profile";
484
521
 
485
- function BlogIndex() {
522
+ export function ProfileForm() {
523
+ const [state, action, pending] = useActionState(saveProfile, null);
486
524
  return (
487
- <nav>
488
- <Link to={reverse("home")}>Home</Link>
489
- <Link to={reverse("blogPost", { slug: "my-post" })}>My Post</Link>
490
- <Link to={reverse("about")}>About</Link>
491
- </nav>
525
+ <form action={action}>
526
+ <input name="name" defaultValue={state?.values?.name} />
527
+ {state?.errors?.name && <p role="alert">{state.errors.name}</p>}
528
+ <button disabled={pending}>{pending ? "Saving…" : "Save"}</button>
529
+ </form>
492
530
  );
493
531
  }
494
532
  ```
495
533
 
496
- `reverse()` is type-safe route names and required params are checked at compile time. Included routes use dotted names: `reverse("api.health")`.
534
+ After an action runs, matched route segments (path/layout/parallel/intercept)
535
+ and loaders can re-render/re-resolve so the UI reflects the new state.
536
+ Attach a `revalidate(({ actionId }) => ...)` rule on any segment or loader
537
+ that owns data the action touched:
538
+
539
+ ```tsx
540
+ urls(({ path, loader, revalidate }) => [
541
+ // Segment-level: re-render the cart page handler after cart actions.
542
+ // Nest loaders that belong to this route inside the same path() so the
543
+ // segment owns its data dependencies.
544
+ path("/cart", CartPage, { name: "cart" }, () => [
545
+ revalidate(
546
+ ({ actionId }) => actionId?.startsWith("src/actions/cart.ts#") ?? false,
547
+ ),
548
+ loader(CartLoader, () => [
549
+ revalidate(
550
+ ({ actionId }) => actionId?.startsWith("src/actions/cart.ts#") ?? false,
551
+ ),
552
+ ]),
553
+ ]),
554
+ ]);
555
+ ```
556
+
557
+ For the full guide — validation with Zod, error handling, file uploads,
558
+ `useOptimistic`, redirects, and progressive enhancement — see the
559
+ `/server-actions` skill.
560
+
561
+ ## Navigation & Links
562
+
563
+ ### Named Routes with `ctx.reverse()` (Server)
497
564
 
498
- Handlers also have `ctx.reverse()` directly on the context:
565
+ In server components and handlers, use `ctx.reverse()` to generate URLs by route name. This is the default — it is typed, auto-fills mount params from the current match, and resolves both local (`.name`) and absolute (`name.sub`) names:
499
566
 
500
567
  ```tsx
568
+ import { Link } from "@rangojs/router/client";
569
+ import type { Handler } from "@rangojs/router";
570
+
501
571
  const BlogPostPage: Handler<"blogPost"> = (ctx) => {
502
572
  const backUrl = ctx.reverse("blog");
503
573
  return <Link to={backUrl}>Back to blog</Link>;
504
574
  };
505
575
  ```
506
576
 
577
+ `reverse()` is type-safe — route names and required params are checked at compile time. Included routes use dotted names: `ctx.reverse("api.health")`.
578
+
579
+ For scripts, tests, or other code without a handler context, import the router-level `reverse`:
580
+
581
+ ```tsx
582
+ import { reverse } from "./router";
583
+ reverse("blogPost", { slug: "my-post" });
584
+ ```
585
+
586
+ ### Client Components
587
+
588
+ **`reverse()` is server-only.** It depends on the route manifest and handler context — neither is available in the browser bundle. Client components receive URLs as props, loader data, or server-action return values:
589
+
590
+ ```tsx
591
+ // server
592
+ function BlogIndex(ctx: HandlerContext) {
593
+ return (
594
+ <Nav
595
+ home={ctx.reverse("home")}
596
+ post={ctx.reverse("blogPost", { slug: "my-post" })}
597
+ />
598
+ );
599
+ }
600
+ ```
601
+
602
+ ```tsx
603
+ "use client";
604
+ import { Link } from "@rangojs/router/client";
605
+
606
+ export function Nav({ home, post }: { home: string; post: string }) {
607
+ return (
608
+ <nav>
609
+ <Link to={home}>Home</Link>
610
+ <Link to={post}>My Post</Link>
611
+ </nav>
612
+ );
613
+ }
614
+ ```
615
+
616
+ For client-side navigation to static paths (no named-route lookup), use `href()` — see below. For URLs tied to named routes, you have two options: import the per-module generated `routes` map and use `useReverse(routes)` for in-module names (see [`/links` skill](./skills/links/SKILL.md)), or generate the URL on the server and pass the string in for cross-module URLs.
617
+
507
618
  ### `href()` for Path Validation (Client Components)
508
619
 
509
- In client components, use `href()` for compile-time path validation:
620
+ In client components, use `href()` for compile-time path validation on static path strings:
510
621
 
511
622
  ```tsx
512
623
  "use client";
@@ -711,10 +822,12 @@ export const BlogPost = Prerender(
711
822
 
712
823
  ### Passthrough for Unknown Params
713
824
 
825
+ Wrap a `Prerender` definition with `Passthrough()` to add a live handler for unknown params at runtime. The build handler runs at build time, the live handler runs at request time for params not in the prerender cache.
826
+
714
827
  ```tsx
715
- import { Prerender } from "@rangojs/router";
828
+ import { Prerender, Passthrough } from "@rangojs/router";
716
829
 
717
- export const ProductPage = Prerender(
830
+ export const ProductPageDef = Prerender(
718
831
  async () => {
719
832
  const featured = await db.getFeaturedProducts();
720
833
  return featured.map((p) => ({ id: p.id }));
@@ -723,16 +836,22 @@ export const ProductPage = Prerender(
723
836
  const product = await db.getProduct(ctx.params.id);
724
837
  return <Product data={product} />;
725
838
  },
726
- { passthrough: true },
727
839
  );
728
- ```
729
840
 
730
- With `passthrough: true`, known params are served from the build-time cache and unknown params fall through to live rendering.
841
+ // In route definition:
842
+ path(
843
+ "/products/:id",
844
+ Passthrough(ProductPageDef, async (ctx) => {
845
+ const product = await ctx.env.DB.getProduct(ctx.params.id);
846
+ return <Product data={product} />;
847
+ }),
848
+ );
849
+ ```
731
850
 
732
- Handlers can also skip individual param sets with `ctx.passthrough()`, deferring them to the live handler at runtime:
851
+ Build handlers can also skip individual param sets with `ctx.passthrough()`, deferring them to the live handler:
733
852
 
734
853
  ```tsx
735
- export const ProductPage = Prerender(
854
+ export const ProductPageDef = Prerender(
736
855
  async () => {
737
856
  const all = await db.getAllProducts();
738
857
  return all.map((p) => ({ id: p.id }));
@@ -742,10 +861,55 @@ export const ProductPage = Prerender(
742
861
  if (!product.published) return ctx.passthrough();
743
862
  return <Product data={product} />;
744
863
  },
745
- { passthrough: true },
746
864
  );
747
865
  ```
748
866
 
867
+ ### Build-Time Environment Bindings
868
+
869
+ Prerender handlers can access platform bindings (KV, D1, R2) at build time when `buildEnv` is configured in the Vite plugin:
870
+
871
+ ```ts
872
+ // vite.config.ts
873
+ import { rango } from "@rangojs/router/vite";
874
+
875
+ rango({ preset: "cloudflare", buildEnv: "auto" });
876
+ ```
877
+
878
+ With `buildEnv: "auto"`, the plugin calls `wrangler.getPlatformProxy()` to provide local bindings. Handlers then access `ctx.env` during build:
879
+
880
+ ```tsx
881
+ export const BlogPosts = Prerender<{ slug: string }>(
882
+ async (ctx) => {
883
+ const rows = await ctx.env.DB.prepare("SELECT slug FROM posts").all();
884
+ return rows.map((r) => ({ slug: r.slug }));
885
+ },
886
+ async (ctx) => {
887
+ const post = await ctx.env.DB.prepare("SELECT * FROM posts WHERE slug = ?")
888
+ .bind(ctx.params.slug)
889
+ .first();
890
+ return <BlogPost post={post} />;
891
+ },
892
+ );
893
+ ```
894
+
895
+ `buildEnv` also accepts a factory function or plain object:
896
+
897
+ ```ts
898
+ // Custom factory
899
+ rango({
900
+ buildEnv: async (ctx) => {
901
+ const { getPlatformProxy } = await import("wrangler");
902
+ const proxy = await getPlatformProxy();
903
+ return { env: proxy.env, dispose: proxy.dispose };
904
+ },
905
+ });
906
+
907
+ // Plain object (Node.js)
908
+ rango({ buildEnv: { DATABASE_URL: process.env.DATABASE_URL } });
909
+ ```
910
+
911
+ Build-time env applies to both production builds and dev on-demand prerender. Without `buildEnv`, accessing `ctx.env` in a Prerender handler throws with a clear error.
912
+
749
913
  ## Theme
750
914
 
751
915
  ### Router Configuration
@@ -790,9 +954,9 @@ import { createHostRouter } from "@rangojs/router/host";
790
954
 
791
955
  const hostRouter = createHostRouter();
792
956
 
793
- hostRouter.host(["*.localhost"]).map(() => import("./apps/admin/handler.js"));
794
- hostRouter.host(["localhost"]).map(() => import("./apps/site/handler.js"));
795
- hostRouter.fallback().map(() => import("./apps/site/handler.js"));
957
+ hostRouter.host(["*.localhost"]).lazy(() => import("./apps/admin/handler.js"));
958
+ hostRouter.host(["localhost"]).lazy(() => import("./apps/site/handler.js"));
959
+ hostRouter.fallback().lazy(() => import("./apps/site/handler.js"));
796
960
 
797
961
  export default {
798
962
  async fetch(request, env, ctx) {
@@ -801,7 +965,7 @@ export default {
801
965
  };
802
966
  ```
803
967
 
804
- Each sub-app has its own `createRouter()` and `urls()`. The host router lazily imports the matched app's handler. Patterns are matched in registration order — register more specific patterns (subdomains) before catch-alls.
968
+ Use `.lazy(() => import("./sub-app"))` to mount a lazily-imported sub-app (a module whose `default` export is a handler or nested host router), and `.map((request) => Response)` for an inline request handler. Only `.lazy()` mounts are imported during build-time discovery; `.map(() => import(...))` is a type error. Each sub-app has its own `createRouter()` and `urls()`. Patterns are matched in registration order — register more specific patterns (subdomains) before catch-alls.
805
969
 
806
970
  ## Meta Tags
807
971
 
@@ -823,6 +987,38 @@ export function BlogPostPage(ctx: HandlerContext) {
823
987
 
824
988
  Render collected tags in the document with `<MetaTags />` from `@rangojs/router/client`.
825
989
 
990
+ ## Scripts
991
+
992
+ Inject `<script>` tags (analytics, GTM, widgets) the same way, using the built-in
993
+ `Script` handle — push a config from a handler, render with `<Scripts />`:
994
+
995
+ ```tsx
996
+ import { Script } from "@rangojs/router";
997
+ import type { HandlerContext } from "@rangojs/router";
998
+ import { Outlet } from "@rangojs/router/client";
999
+
1000
+ export function RootLayout(ctx: HandlerContext) {
1001
+ // Inline bootstrap (GTM/GA4/Segment) — rendered with the request CSP nonce.
1002
+ ctx.use(Script)({ id: "gtm", children: gtmBootstrap("GTM-XXXX") });
1003
+ // External async resource (loads on first encounter, deduped by src).
1004
+ ctx.use(Script)({
1005
+ id: "plausible",
1006
+ src: "https://plausible.io/js/script.js",
1007
+ async: true,
1008
+ attributes: { "data-domain": "example.com" },
1009
+ });
1010
+ return <Outlet />;
1011
+ }
1012
+ ```
1013
+
1014
+ Render with `<Scripts />` (head) and `<Scripts position="body" />` (body) from
1015
+ `@rangojs/router/client` (both are wired in `DefaultDocument`). The request CSP
1016
+ nonce is applied automatically to document-rendered scripts. `ScriptConfig` is a
1017
+ discriminated union (inline / external-async / external-ordered), and inline +
1018
+ ordered scripts are document-load while async externals are React resources — see
1019
+ the [`/scripts` skill](./skills/scripts/SKILL.md) for the full execution contract
1020
+ and CSP guidance.
1021
+
826
1022
  ## CLI: `rango generate`
827
1023
 
828
1024
  Route types are generated automatically by the Vite plugin. The CLI is a manual fallback for generating types outside the dev server (e.g. in CI or for IDE support before first `pnpm dev`):
@@ -840,16 +1036,16 @@ Auto-detects file type:
840
1036
 
841
1037
  ## Type Safety
842
1038
 
843
- The Vite plugin automatically generates a `router.named-routes.gen.ts` file that globally registers route names, patterns, and search schemas via `RSCRouter.GeneratedRouteMap`. This powers server-side named-route typing such as `Handler<"name">`, `ctx.reverse()`, `getRequestContext().reverse()`, and `RouteParams<"name">` without any manual route registration. The gen file is updated on dev server startup, HMR, and production builds.
1039
+ The Vite plugin automatically generates a `router.named-routes.gen.ts` file that globally registers route names, patterns, and search schemas via `Rango.GeneratedRouteMap`. This powers server-side named-route typing such as `Handler<"name">`, `ctx.reverse()`, `getRequestContext().reverse()`, and `RouteParams<"name">` without any manual route registration. The gen file is updated on dev server startup, HMR, and production builds.
844
1040
 
845
- Use the generated map by default. Augment `RSCRouter.RegisteredRoutes` only when you need the richer `typeof router.routeMap` shape globally, especially for response-aware and path-based utilities.
1041
+ Use the generated map by default. Augment `Rango.RegisteredRoutes` only when you need the richer `typeof router.routeMap` shape globally, especially for response-aware and path-based utilities.
846
1042
 
847
1043
  ```typescript
848
1044
  // router.tsx
849
1045
  const router = createRouter<AppBindings>({}).routes(urlpatterns);
850
1046
 
851
1047
  declare global {
852
- namespace RSCRouter {
1048
+ namespace Rango {
853
1049
  interface Env extends AppEnv {}
854
1050
  interface Vars extends AppVars {}
855
1051
  interface RegisteredRoutes extends typeof router.routeMap {}
@@ -861,7 +1057,7 @@ Quick rule of thumb:
861
1057
 
862
1058
  - `GeneratedRouteMap` (auto-generated) — use for server-side named-route typing: `Handler<"name">`, `ctx.reverse()`, `Prerender<"name">`
863
1059
  - `typeof router.routeMap` — use when you need route entries with response metadata
864
- - `RegisteredRoutes` (manual augmentation) — use to expose `typeof router.routeMap` globally for `href()`, `PathResponse`, `ValidPaths`, and other path/response-aware utilities
1060
+ - `RegisteredRoutes` (manual augmentation) — use to expose `typeof router.routeMap` globally for `href()`, `Rango.Path`, `Rango.PathResponse`, and other path/response-aware utilities
865
1061
 
866
1062
  For extracted reusable loaders or middleware, prefer global dotted names on
867
1063
  `ctx.reverse()` by default. If you want type-safe local names for a specific
@@ -889,9 +1085,9 @@ APIs, use their dedicated subpaths.
889
1085
 
890
1086
  ## Examples
891
1087
 
892
- See the `examples/` directory for full working applications:
1088
+ See the example and demo apps for full working applications:
893
1089
 
894
- - [`cloudflare-basic`](../../examples/cloudflare-basic) — Cloudflare Workers with caching, loaders, theme, and pre-rendering
1090
+ - [`cloudflare-basic`](../../tests/cloudflare-basic) — Cloudflare Workers with caching, loaders, theme, and pre-rendering
895
1091
  - [`cloudflare-multi-router`](../../examples/cloudflare-multi-router) — Multi-app host routing
896
1092
 
897
1093
  ## License
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Internal Types - Implementation Details
3
+ *
4
+ * @internal
5
+ * These types are for internal use only and should not be relied upon by consumers.
6
+ * They may change without notice between versions.
7
+ *
8
+ * If you find yourself needing these types, please open an issue to discuss
9
+ * adding them to the public API.
10
+ */
11
+ /**
12
+ * @internal
13
+ * Internal representation of a resolved route segment.
14
+ * Used during route matching and rendering pipeline.
15
+ */
16
+ export type { ResolvedSegment, SegmentMetadata } from "./types.js";
17
+ /**
18
+ * @internal
19
+ * Internal match result from route resolution.
20
+ */
21
+ export type { MatchResult, SlotState } from "./types.js";
22
+ /**
23
+ * @internal
24
+ * Context for intercept route selection.
25
+ */
26
+ export type { InterceptSelectorContext, InterceptSegmentsState, InterceptWhenFn, } from "./server/context.js";
27
+ /**
28
+ * @internal
29
+ * RSC protocol payload structure.
30
+ */
31
+ export type { RscPayload, ReactFormState } from "./rsc/types.js";
32
+ /**
33
+ * @internal
34
+ * Internal navigation store interface.
35
+ */
36
+ export type { NavigationStore, NavigationBridge, RscMetadata, ActionResult, InflightAction, NavigationState, TrackedActionState, ActionStateListener, SegmentCache, SegmentState, NavigationUpdate, } from "./browser/types.js";
37
+ /**
38
+ * @internal
39
+ * Internal handle storage mechanism.
40
+ */
41
+ export type { HandleStore, HandleData } from "./server/handle-store.js";
42
+ /**
43
+ * @internal
44
+ * Segment handle data in cache.
45
+ */
46
+ export type { SegmentHandleData } from "./cache/types.js";
47
+ /**
48
+ * @internal
49
+ * Internal cache entry data structure.
50
+ */
51
+ export type { CachedEntryData, CachedEntryResult, CacheGetResult, SerializedSegmentData, CacheDefaults, } from "./cache/types.js";
52
+ /**
53
+ * @internal
54
+ * Router context for AsyncLocalStorage.
55
+ */
56
+ export type { RouterContext, RevalidationContext, InterceptResult } from "./router/router-context.js";
57
+ /**
58
+ * @internal
59
+ * Route match context during pipeline processing.
60
+ */
61
+ export type { MatchContext, MatchPipelineState } from "./router/match-context.js";
62
+ /**
63
+ * @internal
64
+ * Pattern matching result.
65
+ */
66
+ export type { RouteMatchResult } from "./router/pattern-matching.js";
67
+ /**
68
+ * @internal
69
+ * Entry data during route traversal.
70
+ */
71
+ export type { EntryData, InterceptEntry, MetricsStore, PerformanceMetric, EntryCacheConfig, EntryPropCommon, EntryPropDatas, LoaderEntry, EntryPropSegments, } from "./server/context.js";
72
+ /**
73
+ * @internal
74
+ * Internal handler context with additional props for router internals.
75
+ * Includes `_originalRequest` and `_currentSegmentId`.
76
+ */
77
+ export type { InternalHandlerContext } from "./types.js";
78
+ /**
79
+ * @internal
80
+ * Debug utilities for manifest inspection and comparison.
81
+ */
82
+ export { serializeManifest, compareManifests, formatManifestDiff, type SerializedEntry, type SerializedManifest, } from "./debug.js";
83
+ //# sourceMappingURL=__internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__internal.d.ts","sourceRoot":"","sources":["../src/__internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMzD;;;GAGG;AACH,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAM7B;;;GAGG;AACH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;GAGG;AACH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAM5B;;;GAGG;AACH,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;GAGG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D;;;GAGG;AACH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAM1B;;;GAGG;AACH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAMtG;;;GAGG;AACH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAElF;;;GAGG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE;;;GAGG;AACH,YAAY,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAM7B;;;;GAIG;AACH,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMzD;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Internal Types - Implementation Details
3
+ *
4
+ * @internal
5
+ * These types are for internal use only and should not be relied upon by consumers.
6
+ * They may change without notice between versions.
7
+ *
8
+ * If you find yourself needing these types, please open an issue to discuss
9
+ * adding them to the public API.
10
+ */
11
+ // ============================================================================
12
+ // Debug Utilities (Internal)
13
+ // ============================================================================
14
+ /**
15
+ * @internal
16
+ * Debug utilities for manifest inspection and comparison.
17
+ */
18
+ export { serializeManifest, compareManifests, formatManifestDiff, } from "./debug.js";
19
+ //# sourceMappingURL=__internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__internal.js","sourceRoot":"","sources":["../src/__internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsJH,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mock for rsc-router:version virtual module.
3
+ * Used by vitest since the virtual module is only available at build time.
4
+ * Empty string disables version path in URLs for simpler test assertions.
5
+ */
6
+ export declare const VERSION = "";
7
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/__mocks__/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,OAAO,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mock for rsc-router:version virtual module.
3
+ * Used by vitest since the virtual module is only available at build time.
4
+ * Empty string disables version path in URLs for simpler test assertions.
5
+ */
6
+ export const VERSION = "";
7
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/__mocks__/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client-href.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-href.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/client-href.test.ts"],"names":[],"mappings":""}