@rangojs/router 0.0.0-experimental.6 → 0.0.0-experimental.60

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 (1105) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +889 -4
  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 +1688 -0
  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/dist/browser/react/use-client-cache.js +39 -0
  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/dist/handles/index.d.ts +6 -0
  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/{src/href-context.ts → dist/href-context.d.ts} +7 -11
  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/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +4778 -770
  798. package/dist/vite/index.js.map +1 -0
  799. package/dist/vite/index.named-routes.gen.ts +103 -0
  800. package/dist/vite/package-resolution.d.ts +43 -0
  801. package/dist/vite/package-resolution.d.ts.map +1 -0
  802. package/dist/vite/package-resolution.js +112 -0
  803. package/dist/vite/package-resolution.js.map +1 -0
  804. package/dist/vite/virtual-entries.d.ts +25 -0
  805. package/dist/vite/virtual-entries.d.ts.map +1 -0
  806. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +16 -18
  807. package/dist/vite/virtual-entries.js.map +1 -0
  808. package/package.json +78 -59
  809. package/skills/breadcrumbs/SKILL.md +250 -0
  810. package/skills/cache-guide/SKILL.md +294 -0
  811. package/skills/caching/SKILL.md +93 -23
  812. package/skills/composability/SKILL.md +172 -0
  813. package/skills/debug-manifest/SKILL.md +12 -8
  814. package/skills/document-cache/SKILL.md +18 -16
  815. package/skills/fonts/SKILL.md +167 -0
  816. package/skills/hooks/SKILL.md +334 -72
  817. package/skills/host-router/SKILL.md +218 -0
  818. package/skills/intercept/SKILL.md +131 -8
  819. package/skills/layout/SKILL.md +100 -3
  820. package/skills/links/SKILL.md +92 -31
  821. package/skills/loader/SKILL.md +404 -44
  822. package/skills/middleware/SKILL.md +173 -34
  823. package/skills/mime-routes/SKILL.md +128 -0
  824. package/skills/parallel/SKILL.md +204 -1
  825. package/skills/prerender/SKILL.md +643 -0
  826. package/skills/rango/SKILL.md +85 -16
  827. package/skills/response-routes/SKILL.md +411 -0
  828. package/skills/route/SKILL.md +257 -14
  829. package/skills/router-setup/SKILL.md +210 -32
  830. package/skills/tailwind/SKILL.md +129 -0
  831. package/skills/theme/SKILL.md +9 -8
  832. package/skills/typesafety/SKILL.md +328 -89
  833. package/skills/use-cache/SKILL.md +324 -0
  834. package/src/__internal.ts +102 -4
  835. package/src/bin/rango.ts +321 -0
  836. package/src/browser/action-coordinator.ts +97 -0
  837. package/src/browser/action-response-classifier.ts +99 -0
  838. package/src/browser/app-version.ts +14 -0
  839. package/src/browser/event-controller.ts +92 -64
  840. package/src/browser/history-state.ts +80 -0
  841. package/src/browser/intercept-utils.ts +52 -0
  842. package/src/browser/link-interceptor.ts +24 -4
  843. package/src/browser/logging.ts +55 -0
  844. package/src/browser/merge-segment-loaders.ts +20 -12
  845. package/src/browser/navigation-bridge.ts +296 -558
  846. package/src/browser/navigation-client.ts +179 -69
  847. package/src/browser/navigation-store.ts +73 -55
  848. package/src/browser/navigation-transaction.ts +297 -0
  849. package/src/browser/network-error-handler.ts +61 -0
  850. package/src/browser/partial-update.ts +328 -313
  851. package/src/browser/prefetch/cache.ts +206 -0
  852. package/src/browser/prefetch/fetch.ts +150 -0
  853. package/src/browser/prefetch/observer.ts +65 -0
  854. package/src/browser/prefetch/policy.ts +48 -0
  855. package/src/browser/prefetch/queue.ts +160 -0
  856. package/src/browser/prefetch/resource-ready.ts +77 -0
  857. package/src/browser/rango-state.ts +112 -0
  858. package/src/browser/react/Link.tsx +230 -74
  859. package/src/browser/react/NavigationProvider.tsx +87 -11
  860. package/src/browser/react/context.ts +11 -0
  861. package/src/browser/react/filter-segment-order.ts +11 -0
  862. package/src/browser/react/index.ts +12 -12
  863. package/src/browser/react/location-state-shared.ts +95 -53
  864. package/src/browser/react/location-state.ts +60 -15
  865. package/src/browser/react/mount-context.ts +6 -1
  866. package/src/browser/react/nonce-context.ts +23 -0
  867. package/src/browser/react/shallow-equal.ts +27 -0
  868. package/src/browser/react/use-action.ts +29 -51
  869. package/src/browser/react/use-client-cache.ts +5 -3
  870. package/src/browser/react/use-handle.ts +32 -79
  871. package/src/browser/react/use-href.tsx +2 -2
  872. package/src/browser/react/use-link-status.ts +6 -5
  873. package/src/browser/react/use-navigation.ts +22 -63
  874. package/src/browser/react/use-params.ts +65 -0
  875. package/src/browser/react/use-pathname.ts +47 -0
  876. package/src/browser/react/use-router.ts +76 -0
  877. package/src/browser/react/use-search-params.ts +56 -0
  878. package/src/browser/react/use-segments.ts +80 -97
  879. package/src/browser/response-adapter.ts +73 -0
  880. package/src/browser/rsc-router.tsx +214 -58
  881. package/src/browser/scroll-restoration.ts +127 -52
  882. package/src/browser/segment-reconciler.ts +221 -0
  883. package/src/browser/segment-structure-assert.ts +16 -0
  884. package/src/browser/server-action-bridge.ts +510 -603
  885. package/src/browser/shallow.ts +6 -1
  886. package/src/browser/types.ts +141 -48
  887. package/src/browser/validate-redirect-origin.ts +29 -0
  888. package/src/build/generate-manifest.ts +238 -24
  889. package/src/build/generate-route-types.ts +39 -0
  890. package/src/build/index.ts +13 -0
  891. package/src/build/route-trie.ts +265 -0
  892. package/src/build/route-types/ast-helpers.ts +25 -0
  893. package/src/build/route-types/ast-route-extraction.ts +98 -0
  894. package/src/build/route-types/codegen.ts +102 -0
  895. package/src/build/route-types/include-resolution.ts +418 -0
  896. package/src/build/route-types/param-extraction.ts +48 -0
  897. package/src/build/route-types/per-module-writer.ts +128 -0
  898. package/src/build/route-types/router-processing.ts +618 -0
  899. package/src/build/route-types/scan-filter.ts +78 -0
  900. package/src/build/runtime-discovery.ts +231 -0
  901. package/src/cache/background-task.ts +34 -0
  902. package/src/cache/cache-key-utils.ts +44 -0
  903. package/src/cache/cache-policy.ts +125 -0
  904. package/src/cache/cache-runtime.ts +342 -0
  905. package/src/cache/cache-scope.ts +167 -309
  906. package/src/cache/cf/cf-cache-store.ts +571 -17
  907. package/src/cache/cf/index.ts +13 -3
  908. package/src/cache/document-cache.ts +116 -77
  909. package/src/cache/handle-capture.ts +81 -0
  910. package/src/cache/handle-snapshot.ts +41 -0
  911. package/src/cache/index.ts +1 -15
  912. package/src/cache/memory-segment-store.ts +191 -13
  913. package/src/cache/profile-registry.ts +73 -0
  914. package/src/cache/read-through-swr.ts +134 -0
  915. package/src/cache/segment-codec.ts +256 -0
  916. package/src/cache/taint.ts +153 -0
  917. package/src/cache/types.ts +72 -122
  918. package/src/client.rsc.tsx +3 -1
  919. package/src/client.tsx +106 -126
  920. package/src/component-utils.ts +4 -4
  921. package/src/components/DefaultDocument.tsx +5 -1
  922. package/src/context-var.ts +156 -0
  923. package/src/debug.ts +19 -9
  924. package/src/errors.ts +108 -2
  925. package/src/handle.ts +15 -29
  926. package/src/handles/MetaTags.tsx +73 -20
  927. package/src/handles/breadcrumbs.ts +66 -0
  928. package/src/handles/index.ts +1 -0
  929. package/src/handles/meta.ts +30 -13
  930. package/src/host/cookie-handler.ts +165 -0
  931. package/src/host/errors.ts +97 -0
  932. package/src/host/index.ts +53 -0
  933. package/src/host/pattern-matcher.ts +214 -0
  934. package/src/host/router.ts +352 -0
  935. package/src/host/testing.ts +79 -0
  936. package/src/host/types.ts +146 -0
  937. package/src/host/utils.ts +25 -0
  938. package/src/href-client.ts +119 -29
  939. package/src/index.rsc.ts +153 -19
  940. package/src/index.ts +211 -30
  941. package/src/internal-debug.ts +11 -0
  942. package/src/loader.rsc.ts +26 -147
  943. package/src/loader.ts +27 -10
  944. package/src/network-error-thrower.tsx +3 -1
  945. package/src/outlet-provider.tsx +45 -0
  946. package/src/prerender/param-hash.ts +37 -0
  947. package/src/prerender/store.ts +185 -0
  948. package/src/prerender.ts +463 -0
  949. package/src/reverse.ts +349 -0
  950. package/src/root-error-boundary.tsx +41 -29
  951. package/src/route-content-wrapper.tsx +7 -4
  952. package/src/route-definition/dsl-helpers.ts +959 -0
  953. package/src/route-definition/helper-factories.ts +200 -0
  954. package/src/route-definition/helpers-types.ts +431 -0
  955. package/src/route-definition/index.ts +52 -0
  956. package/src/route-definition/redirect.ts +101 -0
  957. package/src/route-definition.ts +1 -1428
  958. package/src/route-map-builder.ts +217 -123
  959. package/src/route-name.ts +53 -0
  960. package/src/route-types.ts +59 -8
  961. package/src/router/content-negotiation.ts +116 -0
  962. package/src/router/debug-manifest.ts +72 -0
  963. package/src/router/error-handling.ts +9 -9
  964. package/src/router/find-match.ts +160 -0
  965. package/src/router/handler-context.ts +418 -86
  966. package/src/router/intercept-resolution.ts +402 -0
  967. package/src/router/lazy-includes.ts +237 -0
  968. package/src/router/loader-resolution.ts +224 -124
  969. package/src/router/logging.ts +251 -0
  970. package/src/router/manifest.ts +154 -35
  971. package/src/router/match-api.ts +620 -0
  972. package/src/router/match-context.ts +5 -3
  973. package/src/router/match-handlers.ts +440 -0
  974. package/src/router/match-middleware/background-revalidation.ts +108 -93
  975. package/src/router/match-middleware/cache-lookup.ts +443 -10
  976. package/src/router/match-middleware/cache-store.ts +98 -26
  977. package/src/router/match-middleware/intercept-resolution.ts +57 -17
  978. package/src/router/match-middleware/segment-resolution.ts +27 -6
  979. package/src/router/match-pipelines.ts +10 -45
  980. package/src/router/match-result.ts +55 -33
  981. package/src/router/metrics.ts +240 -15
  982. package/src/router/middleware-cookies.ts +55 -0
  983. package/src/router/middleware-types.ts +220 -0
  984. package/src/router/middleware.ts +324 -369
  985. package/src/router/pattern-matching.ts +211 -43
  986. package/src/router/prerender-match.ts +402 -0
  987. package/src/router/preview-match.ts +170 -0
  988. package/src/router/revalidation.ts +137 -38
  989. package/src/router/router-context.ts +41 -21
  990. package/src/router/router-interfaces.ts +473 -0
  991. package/src/router/router-options.ts +618 -0
  992. package/src/router/router-registry.ts +24 -0
  993. package/src/router/segment-resolution/fresh.ts +691 -0
  994. package/src/router/segment-resolution/helpers.ts +268 -0
  995. package/src/router/segment-resolution/loader-cache.ts +199 -0
  996. package/src/router/segment-resolution/revalidation.ts +1306 -0
  997. package/src/router/segment-resolution/static-store.ts +67 -0
  998. package/src/router/segment-resolution.ts +21 -0
  999. package/src/router/segment-wrappers.ts +291 -0
  1000. package/src/router/telemetry-otel.ts +299 -0
  1001. package/src/router/telemetry.ts +300 -0
  1002. package/src/router/timeout.ts +148 -0
  1003. package/src/router/trie-matching.ts +239 -0
  1004. package/src/router/types.ts +78 -3
  1005. package/src/router.ts +703 -4183
  1006. package/src/rsc/handler-context.ts +45 -0
  1007. package/src/rsc/handler.ts +775 -756
  1008. package/src/rsc/helpers.ts +140 -6
  1009. package/src/rsc/index.ts +0 -20
  1010. package/src/rsc/loader-fetch.ts +209 -0
  1011. package/src/rsc/manifest-init.ts +90 -0
  1012. package/src/rsc/nonce.ts +14 -0
  1013. package/src/rsc/origin-guard.ts +141 -0
  1014. package/src/rsc/progressive-enhancement.ts +383 -0
  1015. package/src/rsc/response-error.ts +37 -0
  1016. package/src/rsc/response-route-handler.ts +347 -0
  1017. package/src/rsc/rsc-rendering.ts +242 -0
  1018. package/src/rsc/runtime-warnings.ts +42 -0
  1019. package/src/rsc/server-action.ts +350 -0
  1020. package/src/rsc/ssr-setup.ts +128 -0
  1021. package/src/rsc/types.ts +45 -11
  1022. package/src/search-params.ts +230 -0
  1023. package/src/segment-system.tsx +166 -18
  1024. package/src/server/context.ts +302 -58
  1025. package/src/server/cookie-store.ts +190 -0
  1026. package/src/server/fetchable-loader-store.ts +37 -0
  1027. package/src/server/handle-store.ts +94 -15
  1028. package/src/server/loader-registry.ts +24 -64
  1029. package/src/server/request-context.ts +482 -78
  1030. package/src/server.ts +35 -128
  1031. package/src/ssr/index.tsx +103 -30
  1032. package/src/static-handler.ts +114 -0
  1033. package/src/theme/ThemeProvider.tsx +21 -15
  1034. package/src/theme/ThemeScript.tsx +5 -5
  1035. package/src/theme/constants.ts +5 -2
  1036. package/src/theme/index.ts +4 -14
  1037. package/src/theme/theme-context.ts +4 -30
  1038. package/src/theme/theme-script.ts +21 -18
  1039. package/src/types/boundaries.ts +158 -0
  1040. package/src/types/cache-types.ts +198 -0
  1041. package/src/types/error-types.ts +192 -0
  1042. package/src/types/global-namespace.ts +100 -0
  1043. package/src/types/handler-context.ts +781 -0
  1044. package/src/types/index.ts +88 -0
  1045. package/src/types/loader-types.ts +182 -0
  1046. package/src/types/route-config.ts +170 -0
  1047. package/src/types/route-entry.ts +109 -0
  1048. package/src/types/segments.ts +150 -0
  1049. package/src/types.ts +1 -1623
  1050. package/src/urls/include-helper.ts +197 -0
  1051. package/src/urls/index.ts +53 -0
  1052. package/src/urls/path-helper-types.ts +339 -0
  1053. package/src/urls/path-helper.ts +329 -0
  1054. package/src/urls/pattern-types.ts +107 -0
  1055. package/src/urls/response-types.ts +106 -0
  1056. package/src/urls/type-extraction.ts +372 -0
  1057. package/src/urls/urls-function.ts +98 -0
  1058. package/src/urls.ts +1 -802
  1059. package/src/use-loader.tsx +85 -77
  1060. package/src/vite/discovery/bundle-postprocess.ts +184 -0
  1061. package/src/vite/discovery/discover-routers.ts +348 -0
  1062. package/src/vite/discovery/prerender-collection.ts +385 -0
  1063. package/src/vite/discovery/route-types-writer.ts +258 -0
  1064. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1065. package/src/vite/discovery/state.ts +108 -0
  1066. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1067. package/src/vite/index.ts +11 -782
  1068. package/src/vite/plugin-types.ts +48 -0
  1069. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1070. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1071. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1072. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +72 -53
  1073. package/src/vite/plugins/expose-id-utils.ts +287 -0
  1074. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1075. package/src/vite/plugins/expose-ids/handler-transform.ts +179 -0
  1076. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1077. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1078. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1079. package/src/vite/plugins/expose-internal-ids.ts +569 -0
  1080. package/src/vite/plugins/performance-tracks.ts +88 -0
  1081. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1082. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1083. package/src/vite/plugins/version-injector.ts +83 -0
  1084. package/src/vite/plugins/version-plugin.ts +266 -0
  1085. package/src/vite/plugins/virtual-entries.ts +123 -0
  1086. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1087. package/src/vite/rango.ts +461 -0
  1088. package/src/vite/router-discovery.ts +777 -0
  1089. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1090. package/src/vite/utils/banner.ts +36 -0
  1091. package/src/vite/utils/bundle-analysis.ts +137 -0
  1092. package/src/vite/utils/manifest-utils.ts +70 -0
  1093. package/src/vite/{package-resolution.ts → utils/package-resolution.ts} +25 -29
  1094. package/src/vite/utils/prerender-utils.ts +189 -0
  1095. package/src/vite/utils/shared-utils.ts +170 -0
  1096. package/CLAUDE.md +0 -43
  1097. package/src/browser/lru-cache.ts +0 -69
  1098. package/src/browser/request-controller.ts +0 -164
  1099. package/src/cache/memory-store.ts +0 -253
  1100. package/src/href.ts +0 -255
  1101. package/src/server/route-manifest-cache.ts +0 -173
  1102. package/src/vite/expose-handle-id.ts +0 -209
  1103. package/src/vite/expose-loader-id.ts +0 -426
  1104. package/src/vite/expose-location-state-id.ts +0 -177
  1105. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -0,0 +1,88 @@
1
+ // Global namespace (must be imported for side effects: `declare global`)
2
+ export type {
3
+ GetRegisteredRoutes,
4
+ DefaultHandlerRouteMap,
5
+ DefaultReverseRouteMap,
6
+ DefaultEnv,
7
+ } from "./global-namespace.js";
8
+ // Ensure the global namespace declaration is evaluated
9
+ import "./global-namespace.js";
10
+
11
+ // Route configuration
12
+ export type {
13
+ DocumentProps,
14
+ ExtractParams,
15
+ TrailingSlashMode,
16
+ RouteConfig,
17
+ RouteDefinitionOptions,
18
+ RouteDefinition,
19
+ ResolvedRouteMap,
20
+ } from "./route-config.js";
21
+
22
+ // Boundaries (error/notFound)
23
+ export type {
24
+ ErrorInfo,
25
+ ErrorBoundaryFallbackProps,
26
+ ErrorBoundaryHandler,
27
+ ClientErrorBoundaryFallbackProps,
28
+ LoaderDataResult,
29
+ NotFoundInfo,
30
+ NotFoundBoundaryFallbackProps,
31
+ NotFoundBoundaryHandler,
32
+ } from "./boundaries.js";
33
+ export { isLoaderDataResult } from "./boundaries.js";
34
+
35
+ // Handler context and related types
36
+ export type {
37
+ MiddlewareFn,
38
+ ScopedRouteMap,
39
+ Handler,
40
+ HandlerContext,
41
+ InternalHandlerContext,
42
+ GenericParams,
43
+ RevalidateParams,
44
+ ShouldRevalidateFn,
45
+ RouteKeys,
46
+ ExtractRouteParams,
47
+ HandlersForRouteMap,
48
+ Revalidate,
49
+ Middleware,
50
+ } from "./handler-context.js";
51
+
52
+ // Segments
53
+ export type {
54
+ ViewTransitionClass,
55
+ TransitionConfig,
56
+ ResolvedSegment,
57
+ SegmentMetadata,
58
+ SlotState,
59
+ RootLayoutProps,
60
+ MatchResult,
61
+ } from "./segments.js";
62
+
63
+ // Route entries
64
+ export type { LazyIncludeContext, RouteEntry } from "./route-entry.js";
65
+
66
+ // Loader types
67
+ export type {
68
+ LoaderContext,
69
+ LoaderFn,
70
+ FetchableLoaderOptions,
71
+ LoadOptions,
72
+ LoaderDefinition,
73
+ } from "./loader-types.js";
74
+
75
+ // Cache types
76
+ export type {
77
+ CacheContext,
78
+ CacheOptions,
79
+ PartialCacheOptions,
80
+ EntryCacheConfig,
81
+ } from "./cache-types.js";
82
+
83
+ // Error handling types
84
+ export type {
85
+ ErrorPhase,
86
+ OnErrorContext,
87
+ OnErrorCallback,
88
+ } from "./error-types.js";
@@ -0,0 +1,182 @@
1
+ import type { ContextVar } from "../context-var.js";
2
+ import type { MiddlewareFn } from "../router/middleware.js";
3
+ import type { ScopedReverseFunction } from "../reverse.js";
4
+ import type { SearchSchema, ResolveSearchSchema } from "../search-params.js";
5
+ import type {
6
+ DefaultEnv,
7
+ DefaultReverseRouteMap,
8
+ DefaultVars,
9
+ } from "./global-namespace.js";
10
+
11
+ /**
12
+ * Context passed to loader functions during execution
13
+ *
14
+ * Loaders run after middleware but before handlers, so they have access
15
+ * to middleware-set variables via get().
16
+ *
17
+ * @template TParams - Route params type (e.g., { slug: string })
18
+ * @template TEnv - Environment type for bindings/variables
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const CartLoader = createLoader(async (ctx) => {
23
+ * "use server";
24
+ * const user = ctx.get("user"); // From auth middleware
25
+ * return await db.cart.get(user.id);
26
+ * });
27
+ *
28
+ * // With typed params:
29
+ * const ProductLoader = createLoader<Product, { slug: string }>(async (ctx) => {
30
+ * "use server";
31
+ * const { slug } = ctx.params; // slug is typed as string
32
+ * return await db.products.findBySlug(slug);
33
+ * });
34
+ * ```
35
+ */
36
+ export type LoaderContext<
37
+ TParams = Record<string, string | undefined>,
38
+ TEnv = DefaultEnv,
39
+ TBody = unknown,
40
+ TSearch extends SearchSchema = {},
41
+ > = {
42
+ params: TParams;
43
+ /**
44
+ * Route params extracted from the URL pattern match (server-side only).
45
+ * Unlike `params`, these cannot be overridden by client-provided loader params.
46
+ * Use this when you need trusted, server-matched route params for auth or
47
+ * resource scoping.
48
+ */
49
+ routeParams: Record<string, string>;
50
+ request: Request;
51
+ searchParams: URLSearchParams;
52
+ search: {} extends TSearch ? {} : ResolveSearchSchema<TSearch>;
53
+ pathname: string;
54
+ url: URL;
55
+ env: TEnv;
56
+ get: {
57
+ <T>(contextVar: ContextVar<T>): T | undefined;
58
+ } & (<K extends keyof DefaultVars>(key: K) => DefaultVars[K]);
59
+ /**
60
+ * Access another loader's data (returns promise since loaders run in parallel)
61
+ */
62
+ use: <T, TLoaderParams = any>(
63
+ loader: LoaderDefinition<T, TLoaderParams>,
64
+ ) => Promise<T>;
65
+ /**
66
+ * HTTP method (GET, POST, PUT, PATCH, DELETE)
67
+ * Available when loader is called via load({ method: "POST", ... })
68
+ */
69
+ method: string;
70
+ /**
71
+ * Request body for POST/PUT/PATCH/DELETE requests
72
+ * Available when loader is called via load({ method: "POST", body: {...} })
73
+ */
74
+ body: TBody | undefined;
75
+ /**
76
+ * Form data when loader is invoked via action (fetchable loaders)
77
+ * Available when loader is called via form submission
78
+ */
79
+ formData?: FormData;
80
+ /**
81
+ * Generate URLs from route names.
82
+ * Same scoped reverse as route handlers — `.name` resolves within the
83
+ * current include() scope, `name` resolves globally.
84
+ */
85
+ reverse: ScopedReverseFunction<
86
+ Record<string, string>,
87
+ DefaultReverseRouteMap
88
+ >;
89
+ };
90
+
91
+ /**
92
+ * Loader function signature
93
+ *
94
+ * @template T - The return type of the loader
95
+ * @template TParams - Route params type (defaults to generic Record)
96
+ * @template TEnv - Environment type for bindings/variables
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const myLoader: LoaderFn<{ items: Item[] }> = async (ctx) => {
101
+ * "use server";
102
+ * return { items: await db.items.list() };
103
+ * };
104
+ *
105
+ * // With typed params:
106
+ * const productLoader: LoaderFn<Product, { slug: string }> = async (ctx) => {
107
+ * "use server";
108
+ * const { slug } = ctx.params; // typed as string
109
+ * return await db.products.findBySlug(slug);
110
+ * };
111
+ * ```
112
+ */
113
+ export type LoaderFn<
114
+ T,
115
+ TParams = Record<string, string | undefined>,
116
+ TEnv = DefaultEnv,
117
+ > = (ctx: LoaderContext<TParams, TEnv>) => Promise<T> | T;
118
+
119
+ /**
120
+ * Options for fetchable loaders
121
+ *
122
+ * Middleware uses the same MiddlewareFn signature as route/app middleware,
123
+ * enabling reuse of the same middleware functions everywhere.
124
+ */
125
+ export type FetchableLoaderOptions = {
126
+ fetchable?: true;
127
+ middleware?: MiddlewareFn[];
128
+ };
129
+
130
+ /**
131
+ * Options for load() calls - type-safe union based on method
132
+ */
133
+ export type LoadOptions =
134
+ | {
135
+ method?: "GET";
136
+ params?: Record<string, string>;
137
+ }
138
+ | {
139
+ method: "POST" | "PUT" | "PATCH" | "DELETE";
140
+ params?: Record<string, string>;
141
+ body?: FormData | Record<string, any>;
142
+ };
143
+
144
+ /**
145
+ * Loader definition object
146
+ *
147
+ * Created via createLoader(). Contains the loader name and function.
148
+ * On client builds, the fn is stripped by the bundler (via "use server" directive).
149
+ *
150
+ * @template T - The return type of the loader
151
+ * @template TParams - Route params type (for type-safe params access)
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * // Definition (same file works on server and client)
156
+ * export const CartLoader = createLoader(async (ctx) => {
157
+ * "use server";
158
+ * return await db.cart.get(ctx.get("user").id);
159
+ * });
160
+ *
161
+ * // With typed params:
162
+ * export const ProductLoader = createLoader<Product, { slug: string }>(async (ctx) => {
163
+ * "use server";
164
+ * const { slug } = ctx.params; // slug is typed as string
165
+ * return await db.products.findBySlug(slug);
166
+ * });
167
+ *
168
+ * // Client usage (preferred — cache-safe, always fresh)
169
+ * const { data } = useLoader(CartLoader);
170
+ *
171
+ * // Server escape hatch (handler needs data directly)
172
+ * const cart = await ctx.use(CartLoader);
173
+ * ```
174
+ */
175
+ export type LoaderDefinition<
176
+ T = any,
177
+ TParams = Record<string, string | undefined>,
178
+ > = {
179
+ __brand: "loader";
180
+ $$id: string; // Injected by Vite plugin (exposeInternalIds) - unique identifier
181
+ fn?: LoaderFn<T, TParams, any>; // Optional - server-side only, stored in registry for RSC
182
+ };
@@ -0,0 +1,170 @@
1
+ import type { ReactNode } from "react";
2
+
3
+ /**
4
+ * Props for the Document component that wraps the entire application.
5
+ */
6
+ export type DocumentProps = {
7
+ children: ReactNode;
8
+ };
9
+
10
+ /**
11
+ * Parse constraint values into a union type
12
+ * "a|b|c" -> "a" | "b" | "c"
13
+ */
14
+ type ParseConstraint<T extends string> =
15
+ T extends `${infer First}|${infer Rest}` ? First | ParseConstraint<Rest> : T;
16
+
17
+ /**
18
+ * Extract param info from a param segment
19
+ *
20
+ * Handles:
21
+ * - :param -> { name: "param", optional: false, type: string }
22
+ * - :param? -> { name: "param", optional: true, type: string }
23
+ * - :param(a|b) -> { name: "param", optional: false, type: "a" | "b" }
24
+ * - :param(a|b)? -> { name: "param", optional: true, type: "a" | "b" }
25
+ */
26
+ type ExtractParamInfo<T extends string> =
27
+ // Optional + constrained (with optional suffix): :param(a|b)?suffix
28
+ T extends `${infer Name}(${infer Constraint})?${string}`
29
+ ? { name: Name; optional: true; type: ParseConstraint<Constraint> }
30
+ : // Constrained (with optional suffix): :param(a|b)suffix
31
+ T extends `${infer Name}(${infer Constraint})${string}`
32
+ ? { name: Name; optional: false; type: ParseConstraint<Constraint> }
33
+ : // Optional (with optional suffix): :param?suffix
34
+ T extends `${infer Name}?${string}`
35
+ ? { name: Name; optional: true; type: string }
36
+ : // Param with dot-suffix: :param.html
37
+ T extends `${infer Name}.${string}`
38
+ ? { name: Name; optional: false; type: string }
39
+ : // Param with dash-suffix: :param-slug
40
+ T extends `${infer Name}-${string}`
41
+ ? { name: Name; optional: false; type: string }
42
+ : // Param with tilde-suffix: :param~v2
43
+ T extends `${infer Name}~${string}`
44
+ ? { name: Name; optional: false; type: string }
45
+ : // Required: :param (no suffix)
46
+ { name: T; optional: false; type: string };
47
+
48
+ /**
49
+ * Build param object from info
50
+ */
51
+ type ParamFromInfo<Info> = Info extends {
52
+ name: infer N extends string;
53
+ optional: true;
54
+ type: infer V;
55
+ }
56
+ ? { [K in N]?: V }
57
+ : Info extends {
58
+ name: infer N extends string;
59
+ optional: false;
60
+ type: infer V;
61
+ }
62
+ ? { [K in N]: V }
63
+ : never;
64
+
65
+ /**
66
+ * Merge two param objects preserving optionality
67
+ * Uses Pick to preserve the modifiers from source types
68
+ */
69
+ type MergeParams<A, B> = Pick<A, keyof A> & Pick<B, keyof B> extends infer O
70
+ ? { [K in keyof O]: O[K] }
71
+ : never;
72
+
73
+ /**
74
+ * Extract route params from a pattern with depth limit to prevent infinite recursion
75
+ *
76
+ * Supports:
77
+ * - Required params: /:slug -> { slug: string }
78
+ * - Optional params: /:locale? -> { locale?: string }
79
+ * - Constrained params: /:locale(en|gb) -> { locale: "en" | "gb" }
80
+ * - Optional + constrained: /:locale(en|gb)? -> { locale?: "en" | "gb" }
81
+ *
82
+ * @example
83
+ * ExtractParams<"/products/:id"> // { id: string }
84
+ * ExtractParams<"/:locale?/blog/:slug"> // { locale?: string; slug: string }
85
+ * ExtractParams<"/:locale(en|gb)/blog"> // { locale: "en" | "gb" }
86
+ * ExtractParams<"/:locale(en|gb)?/blog/:slug"> // { locale?: "en" | "gb"; slug: string }
87
+ */
88
+ export type ExtractParams<
89
+ T extends string,
90
+ Depth extends readonly unknown[] = [],
91
+ > = Depth["length"] extends 10
92
+ ? { [key: string]: string | undefined } // Fallback to generic params if too deep
93
+ : // Match param with remaining path: :param.../rest
94
+ T extends `${infer _Start}:${infer Param}/${infer Rest}`
95
+ ? MergeParams<
96
+ ParamFromInfo<ExtractParamInfo<Param>>,
97
+ ExtractParams<`/${Rest}`, readonly [...Depth, unknown]>
98
+ >
99
+ : // Match param at end: :param...
100
+ T extends `${infer _Start}:${infer Param}`
101
+ ? ParamFromInfo<ExtractParamInfo<Param>>
102
+ : {};
103
+
104
+ /**
105
+ * Trailing slash handling mode
106
+ * - "never": Redirect URLs with trailing slash to without
107
+ * - "always": Redirect URLs without trailing slash to with
108
+ * - "ignore": Match both with and without trailing slash
109
+ */
110
+ export type TrailingSlashMode = "never" | "always" | "ignore";
111
+
112
+ /**
113
+ * Route configuration object (alternative to string path)
114
+ */
115
+ export type RouteConfig = {
116
+ path: string;
117
+ trailingSlash?: TrailingSlashMode;
118
+ };
119
+
120
+ /**
121
+ * Route definition options (global defaults)
122
+ */
123
+ export type RouteDefinitionOptions = {
124
+ trailingSlash?: TrailingSlashMode;
125
+ };
126
+
127
+ export type RouteDefinition = {
128
+ [key: string]: string | RouteConfig | RouteDefinition;
129
+ };
130
+
131
+ /**
132
+ * Recursively flatten nested routes with depth limit to prevent infinite recursion
133
+ * Transforms: { products: { detail: "/product/:slug" } } => { "products.detail": "/product/:slug" }
134
+ * Also handles RouteConfig objects: { api: { path: "/api" } } => { "api": "/api" }
135
+ */
136
+ type FlattenRoutes<
137
+ T extends RouteDefinition,
138
+ Prefix extends string = "",
139
+ Depth extends readonly unknown[] = [],
140
+ > = Depth["length"] extends 5
141
+ ? never
142
+ : {
143
+ [K in keyof T]: T[K] extends string
144
+ ? Record<`${Prefix}${K & string}`, T[K]>
145
+ : T[K] extends RouteConfig
146
+ ? Record<`${Prefix}${K & string}`, T[K]["path"]>
147
+ : T[K] extends RouteDefinition
148
+ ? FlattenRoutes<
149
+ T[K],
150
+ `${Prefix}${K & string}.`,
151
+ readonly [...Depth, unknown]
152
+ >
153
+ : never;
154
+ }[keyof T];
155
+
156
+ /**
157
+ * Union to intersection helper
158
+ */
159
+ type UnionToIntersection<U> = (
160
+ U extends unknown ? (k: U) => void : never
161
+ ) extends (k: infer I) => void
162
+ ? I
163
+ : never;
164
+
165
+ /**
166
+ * Resolved route map - flattened route definitions with full paths
167
+ */
168
+ export type ResolvedRouteMap<T extends RouteDefinition> = UnionToIntersection<
169
+ FlattenRoutes<T>
170
+ >;
@@ -0,0 +1,109 @@
1
+ import type { AllUseItems } from "../route-types.js";
2
+ import type { TrailingSlashMode, ResolvedRouteMap } from "./route-config.js";
3
+
4
+ /**
5
+ * Context captured for lazy include evaluation
6
+ */
7
+ export interface LazyIncludeContext {
8
+ urlPrefix: string;
9
+ namePrefix: string | undefined;
10
+ parent: unknown; // EntryData - avoid circular import
11
+ cacheProfiles?: Record<
12
+ string,
13
+ import("../cache/profile-registry.js").CacheProfile
14
+ >;
15
+ }
16
+
17
+ /**
18
+ * Internal route entry stored in router
19
+ */
20
+ export interface RouteEntry<TEnv = any> {
21
+ prefix: string;
22
+ /**
23
+ * Pre-computed static prefix for fast short-circuit matching.
24
+ * Extracted from prefix at registration time (everything before first param).
25
+ *
26
+ * Examples:
27
+ * - "/api" -> staticPrefix = "/api"
28
+ * - "/site/:locale" -> staticPrefix = "/site"
29
+ * - "/:locale" -> staticPrefix = "" (empty, can't optimize)
30
+ *
31
+ * At runtime: if staticPrefix && !pathname.startsWith(staticPrefix), skip entry.
32
+ */
33
+ staticPrefix: string;
34
+ /**
35
+ * Route patterns map. For lazy entries, this starts as empty and is
36
+ * populated on first request.
37
+ */
38
+ routes: ResolvedRouteMap<any>;
39
+ /**
40
+ * Trailing slash config per route key
41
+ * If not specified for a route, defaults to pattern-based detection
42
+ */
43
+ trailingSlash?: Record<string, TrailingSlashMode>;
44
+ /**
45
+ * Supported handler shapes:
46
+ * - sync: () => Array<AllUseItems>
47
+ * - lazy import: () => Promise<{ default: () => Array<AllUseItems> }>
48
+ * - lazy function: () => Promise<() => Array<AllUseItems>>
49
+ *
50
+ * Direct Promise<Array> is NOT supported and rejected at runtime.
51
+ */
52
+ handler: () =>
53
+ | Array<AllUseItems>
54
+ | Promise<{ default: () => Array<AllUseItems> }>
55
+ | Promise<() => Array<AllUseItems>>;
56
+ mountIndex: number;
57
+
58
+ /**
59
+ * Router ID that owns this entry. Used to namespace the manifest cache
60
+ * so multi-router setups (host routing) don't share cached EntryData
61
+ * across routers with overlapping mountIndex + routeKey combinations.
62
+ */
63
+ routerId?: string;
64
+
65
+ /**
66
+ * Route keys in this entry that have pre-render handlers.
67
+ * Used by the non-trie match path to set the `pr` flag.
68
+ */
69
+ prerenderRouteKeys?: Set<string>;
70
+
71
+ /**
72
+ * Route keys in this entry that use `{ passthrough: true }`.
73
+ * Used by the non-trie match path to set the `pt` flag.
74
+ */
75
+ passthroughRouteKeys?: Set<string>;
76
+
77
+ // === Lazy evaluation fields ===
78
+
79
+ /**
80
+ * Whether this entry is lazily evaluated.
81
+ * When true, routes are populated on first matching request.
82
+ */
83
+ lazy?: boolean;
84
+
85
+ /**
86
+ * For lazy entries: the UrlPatterns to evaluate
87
+ */
88
+ lazyPatterns?: unknown;
89
+
90
+ /**
91
+ * For lazy entries: captured context at definition time
92
+ */
93
+ lazyContext?: LazyIncludeContext;
94
+
95
+ /**
96
+ * For lazy entries: whether patterns have been evaluated
97
+ */
98
+ lazyEvaluated?: boolean;
99
+
100
+ /**
101
+ * Cache profiles for DSL-time cache("profileName") resolution.
102
+ * Set on all entries (lazy and non-lazy) so loadManifest() can
103
+ * propagate them into the HelperContext Store.
104
+ */
105
+ cacheProfiles?: Record<
106
+ string,
107
+ import("../cache/profile-registry.js").CacheProfile
108
+ >;
109
+ }
@@ -0,0 +1,150 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ErrorInfo, NotFoundInfo } from "./boundaries.js";
3
+
4
+ /**
5
+ * CSS class(es) for a ViewTransition phase.
6
+ * Can be a simple string or an object mapping transition types to class names
7
+ * for direction-aware transitions (e.g., { "navigation": "slide-right", "navigation-back": "slide-left" }).
8
+ */
9
+ export type ViewTransitionClass = Record<string, string> | string;
10
+
11
+ /**
12
+ * Configuration for React's <ViewTransition> component.
13
+ * Maps directly to ViewTransitionProps (minus children/ref/callbacks).
14
+ */
15
+ export interface TransitionConfig {
16
+ enter?: ViewTransitionClass;
17
+ exit?: ViewTransitionClass;
18
+ update?: ViewTransitionClass;
19
+ share?: ViewTransitionClass;
20
+ default?: ViewTransitionClass;
21
+ name?: string;
22
+ }
23
+
24
+ /**
25
+ * Resolved segment with component
26
+ *
27
+ * Segment types:
28
+ * - layout: Wraps child content via <Outlet />
29
+ * - route: The leaf content for a URL
30
+ * - parallel: Named slots rendered via <ParallelOutlet name="@slot" />
31
+ * - loader: Data segment (no visual rendering, carries loaderData)
32
+ * - error: Error fallback segment (replaces failed segment with error UI)
33
+ * - notFound: Not found fallback segment (replaces segment when data not found)
34
+ *
35
+ * @internal This type is an implementation detail and may change without notice.
36
+ */
37
+ export interface ResolvedSegment {
38
+ id: string;
39
+ namespace: string; // Optional namespace for segment (used for parallel groups)
40
+ type: "layout" | "route" | "parallel" | "loader" | "error" | "notFound";
41
+ index: number;
42
+ component: ReactNode; // Component, handler promise, or resolved element
43
+ loading?: ReactNode; // Loading component for this segment (shown during navigation)
44
+ transition?: TransitionConfig; // ViewTransition config for this segment
45
+ layout?: ReactNode; // Layout element to wrap content (used by intercept segments)
46
+ params?: Record<string, string>;
47
+ slot?: string; // For parallel segments: '@sidebar', '@modal', etc.
48
+ belongsToRoute?: boolean; // True if segment belongs to the matched route (route itself + its children)
49
+ layoutName?: string; // For layouts: the layout name identifier
50
+ parallelName?: string; // For parallels: the parallel group name (used to match with revalidations)
51
+ // Loader-specific fields
52
+ loaderId?: string; // For loaders: the loader $$id identifier
53
+ loaderData?: any; // For loaders: the resolved data from loader execution
54
+ parallelLoading?: ReactNode; // For parallel-owned loaders: the parallel's loading fallback
55
+ // Intercept loader fields (for streaming loader data in parallel segments)
56
+ loaderDataPromise?: Promise<any[]> | any[]; // Loader data promise or resolved array
57
+ loaderIds?: string[]; // IDs ($$id) of loaders for this segment
58
+ parallelLoaderSources?: any[]; // Internal: preserves stable aggregate promise across renders
59
+ // Error-specific fields
60
+ error?: ErrorInfo; // For error segments: the error information
61
+ // NotFound-specific fields
62
+ notFoundInfo?: NotFoundInfo; // For notFound segments: the not found information
63
+ // Mount path from include() scope, used for MountContext.Provider wrapping
64
+ mountPath?: string;
65
+ }
66
+
67
+ /**
68
+ * Segment metadata (without component)
69
+ *
70
+ * @internal This type is an implementation detail and may change without notice.
71
+ */
72
+ export interface SegmentMetadata {
73
+ id: string;
74
+ type: "layout" | "route" | "parallel" | "loader" | "error" | "notFound";
75
+ index: number;
76
+ params?: Record<string, string>;
77
+ slot?: string;
78
+ loaderId?: string;
79
+ error?: ErrorInfo;
80
+ notFoundInfo?: NotFoundInfo;
81
+ }
82
+
83
+ // Note: route symbols are now defined in route-definition.ts
84
+ // as properties on the route() function
85
+
86
+ /**
87
+ * State of a named slot (e.g., @modal, @sidebar)
88
+ * Used for intercepting routes where slots render alternative content
89
+ *
90
+ * @internal This type is an implementation detail and may change without notice.
91
+ */
92
+ export interface SlotState {
93
+ /**
94
+ * Whether the slot is currently active (has content to render)
95
+ */
96
+ active: boolean;
97
+ /**
98
+ * Segments for this slot when active
99
+ */
100
+ segments?: ResolvedSegment[];
101
+ }
102
+
103
+ /**
104
+ * Props passed to the root layout component
105
+ */
106
+ export interface RootLayoutProps {
107
+ children: ReactNode;
108
+ }
109
+
110
+ /**
111
+ * Router match result
112
+ *
113
+ * @internal This type is an implementation detail and may change without notice.
114
+ */
115
+ export interface MatchResult {
116
+ segments: ResolvedSegment[];
117
+ matched: string[];
118
+ diff: string[];
119
+ /**
120
+ * Merged route params from all matched segments
121
+ * Available for use by the handler after route matching
122
+ */
123
+ params: Record<string, string>;
124
+ /**
125
+ * The matched route name (includes name prefix from include()).
126
+ * Used by ctx.reverse() for local name resolution.
127
+ */
128
+ routeName?: string;
129
+ /**
130
+ * State of named slots for this route match
131
+ * Key is slot name (e.g., "@modal"), value is slot state
132
+ * Slots are used for intercepting routes during soft navigation
133
+ */
134
+ slots?: Record<string, SlotState>;
135
+ /**
136
+ * Redirect URL for trailing slash normalization.
137
+ * When set, the RSC handler should return a 308 redirect to this URL
138
+ * instead of rendering the page.
139
+ */
140
+ redirect?: string;
141
+ /**
142
+ * Route-level middleware collected from the matched entry tree.
143
+ * These run with the same onion-style execution as app-level middleware,
144
+ * wrapping the entire RSC response creation.
145
+ */
146
+ routeMiddleware?: Array<{
147
+ handler: import("../router/middleware.js").MiddlewareFn;
148
+ params: Record<string, string>;
149
+ }>;
150
+ }