@rangojs/router 0.0.0-experimental.13 → 0.0.0-experimental.131

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 (1214) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +1040 -5
  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 +1712 -212
  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 -26
  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/{src/handles/index.ts → dist/handles/index.js} +1 -1
  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/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 +6263 -2733
  799. package/dist/vite/index.js.bak +5448 -0
  800. package/dist/vite/index.js.map +1 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +123 -68
  811. package/skills/api-client/SKILL.md +211 -0
  812. package/skills/breadcrumbs/SKILL.md +312 -0
  813. package/skills/bundle-analysis/SKILL.md +159 -0
  814. package/skills/cache-guide/SKILL.md +486 -0
  815. package/skills/caching/SKILL.md +349 -24
  816. package/skills/composability/SKILL.md +197 -0
  817. package/skills/css/SKILL.md +76 -0
  818. package/skills/debug-manifest/SKILL.md +12 -8
  819. package/skills/document-cache/SKILL.md +87 -62
  820. package/skills/fonts/SKILL.md +6 -4
  821. package/skills/handler-use/SKILL.md +364 -0
  822. package/skills/hooks/SKILL.md +557 -79
  823. package/skills/host-router/SKILL.md +278 -0
  824. package/skills/i18n/SKILL.md +276 -0
  825. package/skills/intercept/SKILL.md +175 -8
  826. package/skills/layout/SKILL.md +128 -5
  827. package/skills/links/SKILL.md +304 -25
  828. package/skills/loader/SKILL.md +604 -54
  829. package/skills/middleware/SKILL.md +213 -37
  830. package/skills/migrate-nextjs/SKILL.md +584 -0
  831. package/skills/migrate-react-router/SKILL.md +769 -0
  832. package/skills/mime-routes/SKILL.md +41 -10
  833. package/skills/observability/SKILL.md +172 -0
  834. package/skills/parallel/SKILL.md +276 -3
  835. package/skills/prerender/SKILL.md +432 -52
  836. package/skills/rango/SKILL.md +313 -21
  837. package/skills/react-compiler/SKILL.md +168 -0
  838. package/skills/response-routes/SKILL.md +248 -120
  839. package/skills/route/SKILL.md +287 -21
  840. package/skills/router-setup/SKILL.md +231 -33
  841. package/skills/server-actions/SKILL.md +775 -0
  842. package/skills/streams-and-websockets/SKILL.md +283 -0
  843. package/skills/tailwind/SKILL.md +27 -3
  844. package/skills/testing/SKILL.md +129 -0
  845. package/skills/testing/bindings.md +89 -0
  846. package/skills/testing/cache-prerender.md +124 -0
  847. package/skills/testing/client-components.md +122 -0
  848. package/skills/testing/e2e-parity.md +125 -0
  849. package/skills/testing/flight.md +92 -0
  850. package/skills/testing/handles.md +129 -0
  851. package/skills/testing/loader.md +128 -0
  852. package/skills/testing/middleware.md +99 -0
  853. package/skills/testing/render-handler.md +121 -0
  854. package/skills/testing/response-routes.md +95 -0
  855. package/skills/testing/reverse-and-types.md +84 -0
  856. package/skills/testing/server-actions.md +107 -0
  857. package/skills/testing/server-tree.md +128 -0
  858. package/skills/testing/setup.md +120 -0
  859. package/skills/theme/SKILL.md +9 -8
  860. package/skills/typesafety/SKILL.md +547 -107
  861. package/skills/use-cache/SKILL.md +355 -0
  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 +77 -44
  866. package/src/bin/rango.ts +312 -15
  867. package/src/browser/action-coordinator.ts +114 -0
  868. package/src/browser/action-fence.ts +47 -0
  869. package/src/browser/app-shell.ts +39 -0
  870. package/src/browser/app-version.ts +14 -0
  871. package/src/browser/cookie-name.ts +140 -0
  872. package/src/browser/event-controller.ts +162 -200
  873. package/src/browser/history-state.ts +101 -0
  874. package/src/browser/index.ts +3 -3
  875. package/src/browser/intercept-utils.ts +52 -0
  876. package/src/browser/invalidate-client-cache.ts +52 -0
  877. package/src/browser/link-interceptor.ts +24 -4
  878. package/src/browser/logging.ts +11 -0
  879. package/src/browser/merge-segment-loaders.ts +20 -12
  880. package/src/browser/navigation-bridge.ts +323 -563
  881. package/src/browser/navigation-client.ts +219 -75
  882. package/src/browser/navigation-store-handle.ts +38 -0
  883. package/src/browser/navigation-store.ts +104 -112
  884. package/src/browser/navigation-transaction.ts +247 -0
  885. package/src/browser/network-error-handler.ts +61 -0
  886. package/src/browser/partial-update.ts +328 -348
  887. package/src/browser/prefetch/cache.ts +324 -0
  888. package/src/browser/prefetch/fetch.ts +357 -0
  889. package/src/browser/prefetch/observer.ts +65 -0
  890. package/src/browser/prefetch/policy.ts +48 -0
  891. package/src/browser/prefetch/queue.ts +194 -0
  892. package/src/browser/prefetch/resource-ready.ts +77 -0
  893. package/src/browser/rango-state.ts +194 -0
  894. package/src/browser/react/Link.tsx +253 -71
  895. package/src/browser/react/NavigationProvider.tsx +155 -34
  896. package/src/browser/react/ScrollRestoration.tsx +10 -6
  897. package/src/browser/react/context.ts +11 -0
  898. package/src/browser/react/filter-segment-order.ts +53 -0
  899. package/src/browser/react/index.ts +0 -48
  900. package/src/browser/react/location-state-shared.ts +260 -60
  901. package/src/browser/react/location-state.ts +90 -20
  902. package/src/browser/react/mount-context.ts +6 -1
  903. package/src/browser/react/nonce-context.ts +23 -0
  904. package/src/browser/react/shallow-equal.ts +27 -0
  905. package/src/browser/react/use-action.ts +35 -66
  906. package/src/browser/react/use-handle.ts +39 -126
  907. package/src/browser/react/use-link-status.ts +6 -9
  908. package/src/browser/react/use-navigation.ts +44 -68
  909. package/src/browser/react/use-params.ts +75 -0
  910. package/src/browser/react/use-pathname.ts +47 -0
  911. package/src/browser/react/use-reverse.ts +106 -0
  912. package/src/browser/react/use-router.ts +98 -0
  913. package/src/browser/react/use-search-params.ts +51 -0
  914. package/src/browser/react/use-segments.ts +72 -99
  915. package/src/browser/response-adapter.ts +124 -0
  916. package/src/browser/rsc-router.tsx +290 -72
  917. package/src/browser/scroll-restoration.ts +132 -49
  918. package/src/browser/segment-reconciler.ts +243 -0
  919. package/src/browser/segment-structure-assert.ts +17 -1
  920. package/src/browser/server-action-bridge.ts +621 -613
  921. package/src/browser/types.ts +175 -50
  922. package/src/browser/validate-redirect-origin.ts +56 -0
  923. package/src/build/collect-fallback-refs.ts +107 -0
  924. package/src/build/generate-manifest.ts +123 -56
  925. package/src/build/generate-route-types.ts +41 -1038
  926. package/src/build/index.ts +9 -6
  927. package/src/build/prefix-tree-utils.ts +123 -0
  928. package/src/build/route-trie.ts +165 -34
  929. package/src/build/route-types/ast-helpers.ts +25 -0
  930. package/src/build/route-types/ast-route-extraction.ts +98 -0
  931. package/src/build/route-types/codegen.ts +113 -0
  932. package/src/build/route-types/include-resolution.ts +418 -0
  933. package/src/build/route-types/param-extraction.ts +51 -0
  934. package/src/build/route-types/per-module-writer.ts +131 -0
  935. package/src/build/route-types/router-processing.ts +651 -0
  936. package/src/build/route-types/scan-filter.ts +85 -0
  937. package/src/build/route-types/source-scan.ts +118 -0
  938. package/src/build/runtime-discovery.ts +220 -0
  939. package/src/cache/background-task.ts +34 -0
  940. package/src/cache/cache-error.ts +104 -0
  941. package/src/cache/cache-key-utils.ts +44 -0
  942. package/src/cache/cache-policy.ts +165 -0
  943. package/src/cache/cache-runtime.ts +444 -0
  944. package/src/cache/cache-scope.ts +231 -325
  945. package/src/cache/cache-tag.ts +98 -0
  946. package/src/cache/cf/cf-cache-store.ts +2644 -75
  947. package/src/cache/cf/index.ts +17 -17
  948. package/src/cache/document-cache.ts +172 -92
  949. package/src/cache/handle-capture.ts +81 -0
  950. package/src/cache/handle-snapshot.ts +104 -0
  951. package/src/cache/index.ts +11 -35
  952. package/src/cache/memory-segment-store.ts +307 -30
  953. package/src/cache/profile-registry.ts +49 -0
  954. package/src/cache/read-through-swr.ts +164 -0
  955. package/src/cache/segment-codec.ts +240 -0
  956. package/src/cache/tag-invalidation.ts +230 -0
  957. package/src/cache/taint.ts +153 -0
  958. package/src/cache/types.ts +94 -211
  959. package/src/client.rsc.tsx +8 -21
  960. package/src/client.tsx +123 -347
  961. package/src/cloudflare/index.ts +11 -0
  962. package/src/cloudflare/tracing.ts +109 -0
  963. package/src/component-utils.ts +23 -4
  964. package/src/components/DefaultDocument.tsx +5 -1
  965. package/src/context-var.ts +168 -0
  966. package/src/debug.ts +19 -9
  967. package/src/decode-loader-results.ts +36 -0
  968. package/src/defer.ts +196 -0
  969. package/src/deps/ssr.ts +0 -1
  970. package/src/errors.ts +106 -10
  971. package/src/handle.ts +76 -23
  972. package/src/handles/MetaTags.tsx +73 -34
  973. package/src/handles/breadcrumbs.ts +77 -0
  974. package/src/handles/meta.ts +30 -52
  975. package/src/host/cookie-handler.ts +21 -51
  976. package/src/host/errors.ts +8 -32
  977. package/src/host/index.ts +12 -9
  978. package/src/host/pattern-matcher.ts +34 -77
  979. package/src/host/router.ts +151 -121
  980. package/src/host/testing.ts +45 -32
  981. package/src/host/types.ts +52 -11
  982. package/src/host/utils.ts +2 -2
  983. package/src/href-client.ts +192 -57
  984. package/src/index.rsc.ts +174 -34
  985. package/src/index.ts +241 -73
  986. package/src/internal-debug.ts +8 -4
  987. package/src/loader-store.ts +500 -0
  988. package/src/loader.rsc.ts +31 -99
  989. package/src/loader.ts +30 -12
  990. package/src/missing-id-error.ts +68 -0
  991. package/src/network-error-thrower.tsx +4 -7
  992. package/src/outlet-context.ts +1 -1
  993. package/src/outlet-provider.tsx +41 -0
  994. package/src/prerender/param-hash.ts +14 -13
  995. package/src/prerender/store.ts +121 -21
  996. package/src/prerender.ts +445 -24
  997. package/src/redirect-origin.ts +100 -0
  998. package/src/response-utils.ts +37 -0
  999. package/src/reverse.ts +198 -128
  1000. package/src/root-error-boundary.tsx +42 -48
  1001. package/src/route-content-wrapper.tsx +10 -72
  1002. package/src/route-definition/dsl-helpers.ts +1116 -0
  1003. package/src/route-definition/helper-factories.ts +90 -0
  1004. package/src/route-definition/helpers-types.ts +506 -0
  1005. package/src/route-definition/index.ts +55 -0
  1006. package/src/route-definition/redirect.ts +135 -0
  1007. package/src/route-definition/resolve-handler-use.ts +161 -0
  1008. package/src/route-definition/use-item-types.ts +32 -0
  1009. package/src/route-definition.ts +1 -1450
  1010. package/src/route-map-builder.ts +82 -144
  1011. package/src/route-name.ts +53 -0
  1012. package/src/route-types.ts +72 -41
  1013. package/src/router/basename.ts +14 -0
  1014. package/src/router/content-negotiation.ts +215 -0
  1015. package/src/router/debug-manifest.ts +72 -0
  1016. package/src/router/error-handling.ts +22 -26
  1017. package/src/router/find-match.ts +181 -0
  1018. package/src/router/handler-context.ts +372 -125
  1019. package/src/router/instrument.ts +346 -0
  1020. package/src/router/intercept-resolution.ts +34 -27
  1021. package/src/router/lazy-includes.ts +200 -0
  1022. package/src/router/loader-resolution.ts +381 -147
  1023. package/src/router/logging.ts +106 -6
  1024. package/src/router/manifest.ts +88 -51
  1025. package/src/router/match-api.ts +162 -245
  1026. package/src/router/match-context.ts +4 -24
  1027. package/src/router/match-handlers.ts +440 -0
  1028. package/src/router/match-middleware/background-revalidation.ts +90 -89
  1029. package/src/router/match-middleware/cache-lookup.ts +297 -150
  1030. package/src/router/match-middleware/cache-store.ts +75 -33
  1031. package/src/router/match-middleware/intercept-resolution.ts +44 -43
  1032. package/src/router/match-middleware/segment-resolution.ts +64 -22
  1033. package/src/router/match-pipelines.ts +11 -87
  1034. package/src/router/match-result.ts +121 -50
  1035. package/src/router/metrics.ts +219 -28
  1036. package/src/router/middleware-types.ts +93 -0
  1037. package/src/router/middleware.ts +421 -413
  1038. package/src/router/navigation-snapshot.ts +131 -0
  1039. package/src/router/params-util.ts +23 -0
  1040. package/src/router/pattern-matching.ts +263 -79
  1041. package/src/router/prerender-match.ts +541 -0
  1042. package/src/router/preview-match.ts +100 -0
  1043. package/src/router/request-classification.ts +276 -0
  1044. package/src/router/revalidation.ts +143 -44
  1045. package/src/router/route-snapshot.ts +244 -0
  1046. package/src/router/router-context.ts +41 -47
  1047. package/src/router/router-interfaces.ts +525 -0
  1048. package/src/router/router-options.ts +726 -0
  1049. package/src/router/router-registry.ts +21 -0
  1050. package/src/router/segment-resolution/fresh.ts +747 -0
  1051. package/src/router/segment-resolution/helpers.ts +314 -0
  1052. package/src/router/segment-resolution/loader-cache.ts +207 -0
  1053. package/src/router/segment-resolution/revalidation.ts +1322 -0
  1054. package/src/router/segment-resolution/static-store.ts +81 -0
  1055. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1056. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  1057. package/src/router/segment-resolution.ts +24 -1354
  1058. package/src/router/segment-wrappers.ts +289 -0
  1059. package/src/router/state-cookie-name.ts +33 -0
  1060. package/src/router/substitute-pattern-params.ts +56 -0
  1061. package/src/router/telemetry-otel.ts +261 -0
  1062. package/src/router/telemetry.ts +377 -0
  1063. package/src/router/timeout.ts +128 -0
  1064. package/src/router/tracing.ts +206 -0
  1065. package/src/router/trie-matching.ts +172 -60
  1066. package/src/router/types.ts +23 -70
  1067. package/src/router/url-params.ts +44 -0
  1068. package/src/router.ts +748 -2376
  1069. package/src/rsc/handler-context.ts +46 -0
  1070. package/src/rsc/handler.ts +861 -1141
  1071. package/src/rsc/helpers.ts +269 -19
  1072. package/src/rsc/index.ts +1 -21
  1073. package/src/rsc/json-route-result.ts +38 -0
  1074. package/src/rsc/loader-fetch.ts +235 -0
  1075. package/src/rsc/manifest-init.ts +77 -0
  1076. package/src/rsc/nonce.ts +14 -0
  1077. package/src/rsc/origin-guard.ts +155 -0
  1078. package/src/rsc/progressive-enhancement.ts +413 -0
  1079. package/src/rsc/redirect-guard.ts +99 -0
  1080. package/src/rsc/response-error.ts +104 -0
  1081. package/src/rsc/response-route-handler.ts +374 -0
  1082. package/src/rsc/rsc-rendering.ts +261 -0
  1083. package/src/rsc/runtime-warnings.ts +55 -0
  1084. package/src/rsc/server-action.ts +376 -0
  1085. package/src/rsc/ssr-setup.ts +144 -0
  1086. package/src/rsc/types.ts +58 -12
  1087. package/src/runtime-env.ts +18 -0
  1088. package/src/search-params.ts +70 -74
  1089. package/src/segment-content-promise.ts +67 -0
  1090. package/src/segment-loader-promise.ts +134 -0
  1091. package/src/segment-system.tsx +292 -134
  1092. package/src/serialize.ts +243 -0
  1093. package/src/server/context.ts +439 -85
  1094. package/src/server/cookie-store.ts +265 -0
  1095. package/src/server/fetchable-loader-store.ts +11 -6
  1096. package/src/server/handle-store.ts +112 -31
  1097. package/src/server/loader-registry.ts +23 -82
  1098. package/src/server/request-context.ts +724 -143
  1099. package/src/server.ts +26 -164
  1100. package/src/ssr/index.tsx +113 -36
  1101. package/src/static-handler.ts +45 -18
  1102. package/src/testing/cache-status.ts +162 -0
  1103. package/src/testing/collect-handle.ts +40 -0
  1104. package/src/testing/dispatch.ts +618 -0
  1105. package/src/testing/dom.entry.ts +22 -0
  1106. package/src/testing/e2e/fixture.ts +188 -0
  1107. package/src/testing/e2e/index.ts +128 -0
  1108. package/src/testing/e2e/matchers.ts +35 -0
  1109. package/src/testing/e2e/page-helpers.ts +272 -0
  1110. package/src/testing/e2e/parity.ts +387 -0
  1111. package/src/testing/e2e/server.ts +195 -0
  1112. package/src/testing/flight-matchers.ts +97 -0
  1113. package/src/testing/flight-normalize.ts +11 -0
  1114. package/src/testing/flight-runtime.d.ts +57 -0
  1115. package/src/testing/flight-tree.ts +682 -0
  1116. package/src/testing/flight.entry.ts +52 -0
  1117. package/src/testing/flight.ts +232 -0
  1118. package/src/testing/generated-routes.ts +183 -0
  1119. package/src/testing/index.ts +99 -0
  1120. package/src/testing/internal/context.ts +348 -0
  1121. package/src/testing/internal/flight-client-globals.ts +30 -0
  1122. package/src/testing/internal/seed-vars.ts +54 -0
  1123. package/src/testing/render-handler.ts +330 -0
  1124. package/src/testing/render-route.tsx +566 -0
  1125. package/src/testing/run-loader.ts +378 -0
  1126. package/src/testing/run-middleware.ts +205 -0
  1127. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1128. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1129. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1130. package/src/testing/vitest-stubs/version.ts +5 -0
  1131. package/src/testing/vitest.ts +305 -0
  1132. package/src/theme/ThemeProvider.tsx +21 -67
  1133. package/src/theme/ThemeScript.tsx +5 -11
  1134. package/src/theme/constants.ts +5 -14
  1135. package/src/theme/index.ts +3 -20
  1136. package/src/theme/theme-context.ts +5 -35
  1137. package/src/theme/theme-script.ts +21 -32
  1138. package/src/theme/use-theme.ts +0 -3
  1139. package/src/types/boundaries.ts +123 -0
  1140. package/src/types/cache-types.ts +207 -0
  1141. package/src/types/error-types.ts +132 -0
  1142. package/src/types/global-namespace.ts +113 -0
  1143. package/src/types/handler-context.ts +839 -0
  1144. package/src/types/index.ts +79 -0
  1145. package/src/types/loader-types.ts +212 -0
  1146. package/src/types/request-scope.ts +107 -0
  1147. package/src/types/route-config.ts +126 -0
  1148. package/src/types/route-entry.ts +114 -0
  1149. package/src/types/segments.ts +171 -0
  1150. package/src/types.ts +1 -1795
  1151. package/src/urls/include-helper.ts +160 -0
  1152. package/src/urls/index.ts +43 -0
  1153. package/src/urls/path-helper-types.ts +386 -0
  1154. package/src/urls/path-helper.ts +275 -0
  1155. package/src/urls/pattern-types.ts +124 -0
  1156. package/src/urls/response-types.ts +109 -0
  1157. package/src/urls/type-extraction.ts +291 -0
  1158. package/src/urls/urls-function.ts +81 -0
  1159. package/src/urls.ts +1 -1323
  1160. package/src/use-loader.tsx +406 -141
  1161. package/src/vite/debug.ts +185 -0
  1162. package/src/vite/discovery/bundle-postprocess.ts +182 -0
  1163. package/src/vite/discovery/discover-routers.ts +389 -0
  1164. package/src/vite/discovery/discovery-errors.ts +194 -0
  1165. package/src/vite/discovery/gate-state.ts +171 -0
  1166. package/src/vite/discovery/prerender-collection.ts +467 -0
  1167. package/src/vite/discovery/route-types-writer.ts +214 -0
  1168. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1169. package/src/vite/discovery/state.ts +161 -0
  1170. package/src/vite/discovery/virtual-module-codegen.ts +183 -0
  1171. package/src/vite/index.ts +17 -2259
  1172. package/src/vite/plugin-types.ts +221 -0
  1173. package/src/vite/plugins/cjs-to-esm.ts +83 -0
  1174. package/src/vite/plugins/client-ref-dedup.ts +120 -0
  1175. package/src/vite/plugins/client-ref-hashing.ts +118 -0
  1176. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1177. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1178. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1179. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +88 -110
  1180. package/src/vite/{expose-id-utils.ts → plugins/expose-id-utils.ts} +13 -87
  1181. package/src/vite/plugins/expose-ids/export-analysis.ts +338 -0
  1182. package/src/vite/plugins/expose-ids/handler-transform.ts +141 -0
  1183. package/src/vite/plugins/expose-ids/loader-transform.ts +57 -0
  1184. package/src/vite/plugins/expose-ids/router-transform.ts +124 -0
  1185. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1186. package/src/vite/plugins/expose-internal-ids.ts +806 -0
  1187. package/src/vite/plugins/performance-tracks.ts +89 -0
  1188. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1189. package/src/vite/plugins/use-cache-transform.ts +313 -0
  1190. package/src/vite/plugins/version-injector.ts +79 -0
  1191. package/src/vite/plugins/version-plugin.ts +275 -0
  1192. package/src/vite/plugins/virtual-entries.ts +108 -0
  1193. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1194. package/src/vite/rango.ts +444 -0
  1195. package/src/vite/router-discovery.ts +1581 -0
  1196. package/src/vite/{ast-handler-extract.ts → utils/ast-handler-extract.ts} +193 -37
  1197. package/src/vite/utils/banner.ts +36 -0
  1198. package/src/vite/utils/bundle-analysis.ts +132 -0
  1199. package/src/vite/utils/client-chunks.ts +184 -0
  1200. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1201. package/src/vite/utils/manifest-utils.ts +15 -0
  1202. package/src/vite/utils/package-resolution.ts +89 -0
  1203. package/src/vite/utils/prerender-utils.ts +223 -0
  1204. package/src/vite/utils/shared-utils.ts +219 -0
  1205. package/CLAUDE.md +0 -43
  1206. package/src/browser/lru-cache.ts +0 -69
  1207. package/src/browser/request-controller.ts +0 -164
  1208. package/src/browser/shallow.ts +0 -35
  1209. package/src/cache/memory-store.ts +0 -253
  1210. package/src/router.gen.ts +0 -6
  1211. package/src/static-handler.gen.ts +0 -5
  1212. package/src/urls.gen.ts +0 -8
  1213. package/src/vite/expose-internal-ids.ts +0 -1167
  1214. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -0,0 +1,79 @@
1
+ export type {
2
+ GetRegisteredRoutes,
3
+ DefaultHandlerRouteMap,
4
+ DefaultReverseRouteMap,
5
+ DefaultEnv,
6
+ } from "./global-namespace.js";
7
+ import "./global-namespace.js";
8
+
9
+ export type {
10
+ DocumentProps,
11
+ ExtractParams,
12
+ TrailingSlashMode,
13
+ RouteConfig,
14
+ RouteDefinitionOptions,
15
+ RouteDefinition,
16
+ ResolvedRouteMap,
17
+ } from "./route-config.js";
18
+
19
+ export type {
20
+ ErrorInfo,
21
+ ErrorBoundaryFallbackProps,
22
+ ErrorBoundaryHandler,
23
+ ClientErrorBoundaryFallbackProps,
24
+ LoaderDataResult,
25
+ NotFoundInfo,
26
+ NotFoundBoundaryFallbackProps,
27
+ NotFoundBoundaryHandler,
28
+ } from "./boundaries.js";
29
+ export { isLoaderDataResult } from "./boundaries.js";
30
+
31
+ export type {
32
+ MiddlewareFn,
33
+ ScopedRouteMap,
34
+ Handler,
35
+ HandlerContext,
36
+ InternalHandlerContext,
37
+ GenericParams,
38
+ RevalidateParams,
39
+ ShouldRevalidateFn,
40
+ ActionRef,
41
+ RouteKeys,
42
+ ExtractRouteParams,
43
+ HandlersForRouteMap,
44
+ Revalidate,
45
+ Middleware,
46
+ } from "./handler-context.js";
47
+
48
+ export type {
49
+ ViewTransitionClass,
50
+ TransitionConfig,
51
+ ResolvedSegment,
52
+ SegmentMetadata,
53
+ SlotState,
54
+ RootLayoutProps,
55
+ MatchResult,
56
+ } from "./segments.js";
57
+
58
+ export type { LazyIncludeContext, RouteEntry } from "./route-entry.js";
59
+
60
+ export type {
61
+ LoaderContext,
62
+ LoaderFn,
63
+ FetchableLoaderOptions,
64
+ LoadOptions,
65
+ LoaderDefinition,
66
+ } from "./loader-types.js";
67
+
68
+ export type {
69
+ CacheContext,
70
+ CacheOptions,
71
+ PartialCacheOptions,
72
+ EntryCacheConfig,
73
+ } from "./cache-types.js";
74
+
75
+ export type {
76
+ ErrorPhase,
77
+ OnErrorContext,
78
+ OnErrorCallback,
79
+ } from "./error-types.js";
@@ -0,0 +1,212 @@
1
+ import type { ContextVar } from "../context-var.js";
2
+ import type { Handle } from "../handle.js";
3
+ import type { MiddlewareFn } from "../router/middleware.js";
4
+ import type { ScopedReverseFunction } from "../reverse.js";
5
+ import type { SearchSchema, ResolveSearchSchema } from "../search-params.js";
6
+ import type { UseItems, LoaderUseItem } from "../route-types.js";
7
+ import type {
8
+ DefaultEnv,
9
+ DefaultReverseRouteMap,
10
+ DefaultVars,
11
+ } from "./global-namespace.js";
12
+ import type { RequestScope } from "./request-scope.js";
13
+
14
+ /**
15
+ * Context passed to loader functions during execution
16
+ *
17
+ * Loaders run after middleware but before handlers, so they have access
18
+ * to middleware-set variables via get().
19
+ *
20
+ * @template TParams - Route params type (e.g., { slug: string })
21
+ * @template TEnv - Environment type for bindings/variables
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const CartLoader = createLoader(async (ctx) => {
26
+ * "use server";
27
+ * const user = ctx.get("user"); // From auth middleware
28
+ * return await db.cart.get(user.id);
29
+ * });
30
+ *
31
+ * // With typed params:
32
+ * const ProductLoader = createLoader<Product, { slug: string }>(async (ctx) => {
33
+ * "use server";
34
+ * const { slug } = ctx.params; // slug is typed as string
35
+ * return await db.products.findBySlug(slug);
36
+ * });
37
+ * ```
38
+ */
39
+ export type LoaderContext<
40
+ TParams = Record<string, string | undefined>,
41
+ TEnv = DefaultEnv,
42
+ TBody = unknown,
43
+ TSearch extends SearchSchema = {},
44
+ > = RequestScope<TEnv> & {
45
+ params: TParams;
46
+ /**
47
+ * Route params extracted from the URL pattern match (server-side only).
48
+ * Unlike `params`, these cannot be overridden by client-provided loader params.
49
+ * Use this when you need trusted, server-matched route params for auth or
50
+ * resource scoping.
51
+ */
52
+ routeParams: Record<string, string>;
53
+ search: {} extends TSearch ? {} : ResolveSearchSchema<TSearch>;
54
+ get: {
55
+ <T>(contextVar: ContextVar<T>): T | undefined;
56
+ } & (<K extends keyof DefaultVars>(key: K) => DefaultVars[K]);
57
+ /**
58
+ * Access another loader's data, or read handle data after rendered().
59
+ *
60
+ * For loaders: returns a promise (loaders run in parallel).
61
+ * For handles: returns collected data (only after `await ctx.rendered()`).
62
+ */
63
+ use: {
64
+ <T, TLoaderParams = any>(
65
+ loader: LoaderDefinition<T, TLoaderParams>,
66
+ ): Promise<T>;
67
+ <TData, TAccumulated = TData[]>(
68
+ handle: Handle<TData, TAccumulated>,
69
+ ): TAccumulated;
70
+ };
71
+ /**
72
+ * **Experimental.** Wait for all non-loader segments to settle.
73
+ *
74
+ * After the returned promise resolves, handle data is available via
75
+ * `ctx.use(handle)`. Supported in DSL loaders, including on streaming
76
+ * trees that use `loading()` — the barrier waits for the streaming
77
+ * handlers to finish pushing before it resolves. Throws if called from a
78
+ * handler-invoked loader, or if a handler is already awaiting this loader
79
+ * via `ctx.use()` (that would deadlock — use a loader-to-loader
80
+ * dependency instead).
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const PricesLoader = createLoader(async (ctx) => {
85
+ * "use server";
86
+ * await ctx.rendered();
87
+ * const products = ctx.use(Products); // reads handle data
88
+ * return pricing.getLive(products.map(p => p.id));
89
+ * });
90
+ * ```
91
+ */
92
+ rendered: () => Promise<void>;
93
+ /**
94
+ * HTTP method (GET, POST, PUT, PATCH, DELETE)
95
+ * Available when loader is called via load({ method: "POST", ... })
96
+ */
97
+ method: string;
98
+ /**
99
+ * Request body for POST/PUT/PATCH/DELETE requests
100
+ * Available when loader is called via load({ method: "POST", body: {...} })
101
+ */
102
+ body: TBody | undefined;
103
+ /**
104
+ * Form data when loader is invoked via action (fetchable loaders)
105
+ * Available when loader is called via form submission
106
+ */
107
+ formData?: FormData;
108
+ /**
109
+ * Generate URLs from route names.
110
+ * Same scoped reverse as route handlers — `.name` resolves within the
111
+ * current include() scope, `name` resolves globally.
112
+ */
113
+ reverse: ScopedReverseFunction<
114
+ Record<string, string>,
115
+ DefaultReverseRouteMap
116
+ >;
117
+ };
118
+
119
+ /**
120
+ * Loader function signature
121
+ *
122
+ * @template T - The return type of the loader
123
+ * @template TParams - Route params type (defaults to generic Record)
124
+ * @template TEnv - Environment type for bindings/variables
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const myLoader: LoaderFn<{ items: Item[] }> = async (ctx) => {
129
+ * "use server";
130
+ * return { items: await db.items.list() };
131
+ * };
132
+ *
133
+ * // With typed params:
134
+ * const productLoader: LoaderFn<Product, { slug: string }> = async (ctx) => {
135
+ * "use server";
136
+ * const { slug } = ctx.params; // typed as string
137
+ * return await db.products.findBySlug(slug);
138
+ * };
139
+ * ```
140
+ */
141
+ export type LoaderFn<
142
+ T,
143
+ TParams = Record<string, string | undefined>,
144
+ TEnv = DefaultEnv,
145
+ > = (ctx: LoaderContext<TParams, TEnv>) => Promise<T> | T;
146
+
147
+ /**
148
+ * Options for fetchable loaders
149
+ *
150
+ * Middleware uses the same MiddlewareFn signature as route/app middleware,
151
+ * enabling reuse of the same middleware functions everywhere.
152
+ */
153
+ export type FetchableLoaderOptions = {
154
+ fetchable?: true;
155
+ middleware?: MiddlewareFn[];
156
+ };
157
+
158
+ /**
159
+ * Options for load() calls - type-safe union based on method
160
+ */
161
+ export type LoadOptions =
162
+ | {
163
+ method?: "GET";
164
+ params?: Record<string, string>;
165
+ }
166
+ | {
167
+ method: "POST" | "PUT" | "PATCH" | "DELETE";
168
+ params?: Record<string, string>;
169
+ body?: FormData | Record<string, any>;
170
+ };
171
+
172
+ /**
173
+ * Loader definition object
174
+ *
175
+ * Created via createLoader(). Contains the loader name and function.
176
+ * On client builds, the fn is stripped by the bundler (via "use server" directive).
177
+ *
178
+ * @template T - The return type of the loader
179
+ * @template TParams - Route params type (for type-safe params access)
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * // Definition (same file works on server and client)
184
+ * export const CartLoader = createLoader(async (ctx) => {
185
+ * "use server";
186
+ * return await db.cart.get(ctx.get("user").id);
187
+ * });
188
+ *
189
+ * // With typed params:
190
+ * export const ProductLoader = createLoader<Product, { slug: string }>(async (ctx) => {
191
+ * "use server";
192
+ * const { slug } = ctx.params; // slug is typed as string
193
+ * return await db.products.findBySlug(slug);
194
+ * });
195
+ *
196
+ * // Client usage (preferred — cache-safe, always fresh)
197
+ * const { data } = useLoader(CartLoader);
198
+ *
199
+ * // Server escape hatch (handler needs data directly)
200
+ * const cart = await ctx.use(CartLoader);
201
+ * ```
202
+ */
203
+ export type LoaderDefinition<
204
+ T = any,
205
+ TParams = Record<string, string | undefined>,
206
+ > = {
207
+ __brand: "loader";
208
+ $$id: string; // Injected by Vite plugin (exposeInternalIds) - unique identifier
209
+ fn?: LoaderFn<T, TParams, any>; // Optional - server-side only, stored in registry for RSC
210
+ /** Composable default DSL items merged when the loader is mounted. */
211
+ use?: () => UseItems<LoaderUseItem>;
212
+ };
@@ -0,0 +1,107 @@
1
+ import type { DefaultEnv } from "./global-namespace.js";
2
+
3
+ /**
4
+ * Minimal subset of Cloudflare Workers' ExecutionContext that the router
5
+ * uses. Defined locally so the package does not depend on
6
+ * `@cloudflare/workers-types`. Consumers that want the full type can cast.
7
+ *
8
+ * On non-Cloudflare runtimes (Node, dev server, tests), this is undefined
9
+ * — portable apps should prefer `ctx.waitUntil(...)`, which degrades
10
+ * gracefully. `ctx.executionContext` is the escape hatch for libraries
11
+ * (MCP, Durable Object routing, etc.) that type their arguments as the
12
+ * raw ExecutionContext.
13
+ */
14
+ export interface ExecutionContext {
15
+ waitUntil(promise: Promise<any>): void;
16
+ passThroughOnException(): void;
17
+ }
18
+
19
+ /**
20
+ * Fallback `waitUntil` body used when no Cloudflare `ExecutionContext`
21
+ * is available (Node, dev, tests). Runs the work fire-and-forget and
22
+ * logs errors so they don't silently swallow.
23
+ *
24
+ * Exported so every `waitUntil` call site degrades identically instead
25
+ * of inventing its own fallback policy.
26
+ */
27
+ export function fireAndForgetWaitUntil(fn: () => Promise<void>): void {
28
+ fn().catch((err) =>
29
+ console.error("[waitUntil] Background task failed:", err),
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Fields present on every user-facing request context.
35
+ *
36
+ * @template TEnv - Platform bindings type (Cloudflare env, etc.).
37
+ */
38
+ export interface RequestScope<TEnv = DefaultEnv> {
39
+ /**
40
+ * The original incoming Request object (transport URL intact).
41
+ * Use `url` / `searchParams` for application logic — those have
42
+ * internal `_rsc*` params stripped. `request` preserves the raw URL
43
+ * when you need original headers, method, or body.
44
+ */
45
+ request: Request;
46
+
47
+ /**
48
+ * The request URL with internal `_rsc*` transport params stripped.
49
+ * Use this for routing, link generation, and display.
50
+ */
51
+ url: URL;
52
+
53
+ /**
54
+ * The original request URL with all parameters intact, including
55
+ * internal `_rsc*` transport params. Use `url` for application logic
56
+ * — this is only needed for advanced cases like debugging or custom
57
+ * cache keying.
58
+ */
59
+ originalUrl: URL;
60
+
61
+ /** URL pathname (same as `url.pathname`). */
62
+ pathname: string;
63
+
64
+ /**
65
+ * Query parameters from the URL (system params like `_rsc*` are
66
+ * filtered). Always a standard `URLSearchParams` instance.
67
+ */
68
+ searchParams: URLSearchParams;
69
+
70
+ /**
71
+ * Platform bindings (DB, KV, secrets, etc.). On Cloudflare Workers
72
+ * these are the `env` object passed to the Worker's `fetch()` handler.
73
+ */
74
+ env: TEnv;
75
+
76
+ /**
77
+ * Schedule work to run after the response is sent.
78
+ * On Cloudflare Workers, delegates to `executionContext.waitUntil()`.
79
+ * On Node / dev / tests, runs as fire-and-forget with error logging.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * ctx.waitUntil(async () => {
84
+ * await cacheStore.set(key, data, ttl);
85
+ * });
86
+ * ```
87
+ */
88
+ waitUntil(fn: () => Promise<void>): void;
89
+
90
+ /**
91
+ * Raw Cloudflare Workers `ExecutionContext`, when running on a
92
+ * Cloudflare-compatible runtime. Undefined elsewhere.
93
+ *
94
+ * Escape hatch for libraries that type their arguments as
95
+ * `ExecutionContext` (MCP `fetch`, `routeAgentRequest`, etc.).
96
+ * For the common "do work after the response" case, prefer
97
+ * `ctx.waitUntil(...)` — it is platform-neutral.
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * path.any("/mcp", (ctx) =>
102
+ * emailMcp.fetch(ctx.request, ctx.env, ctx.executionContext!),
103
+ * );
104
+ * ```
105
+ */
106
+ executionContext?: ExecutionContext;
107
+ }
@@ -0,0 +1,126 @@
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
+ type ParseConstraint<T extends string> =
11
+ T extends `${infer First}|${infer Rest}` ? First | ParseConstraint<Rest> : T;
12
+
13
+ type ExtractParamInfo<T extends string> =
14
+ T extends `${infer Name}(${infer Constraint})?${string}`
15
+ ? { name: Name; optional: true; type: ParseConstraint<Constraint> }
16
+ : T extends `${infer Name}(${infer Constraint})${string}`
17
+ ? { name: Name; optional: false; type: ParseConstraint<Constraint> }
18
+ : T extends `${infer Name}?${string}`
19
+ ? { name: Name; optional: true; type: string }
20
+ : T extends `${infer Name}.${string}`
21
+ ? { name: Name; optional: false; type: string }
22
+ : T extends `${infer Name}-${string}`
23
+ ? { name: Name; optional: false; type: string }
24
+ : T extends `${infer Name}~${string}`
25
+ ? { name: Name; optional: false; type: string }
26
+ : { name: T; optional: false; type: string };
27
+
28
+ type ParamFromInfo<Info> = Info extends {
29
+ name: infer N extends string;
30
+ optional: true;
31
+ type: infer V;
32
+ }
33
+ ? { [K in N]?: V }
34
+ : Info extends {
35
+ name: infer N extends string;
36
+ optional: false;
37
+ type: infer V;
38
+ }
39
+ ? { [K in N]: V }
40
+ : never;
41
+
42
+ type MergeParams<A, B> = Pick<A, keyof A> & Pick<B, keyof B> extends infer O
43
+ ? { [K in keyof O]: O[K] }
44
+ : never;
45
+
46
+ /**
47
+ * Extract route params from a pattern with depth limit to prevent infinite recursion
48
+ *
49
+ * Supports:
50
+ * - Required params: /:slug -> { slug: string }
51
+ * - Optional params: /:locale? -> { locale?: string }
52
+ * - Constrained params: /:locale(en|gb) -> { locale: "en" | "gb" }
53
+ * - Optional + constrained: /:locale(en|gb)? -> { locale?: "en" | "gb" }
54
+ *
55
+ * @example
56
+ * ExtractParams<"/products/:id"> // { id: string }
57
+ * ExtractParams<"/:locale?/blog/:slug"> // { locale?: string; slug: string }
58
+ * ExtractParams<"/:locale(en|gb)/blog"> // { locale: "en" | "gb" }
59
+ * ExtractParams<"/:locale(en|gb)?/blog/:slug"> // { locale?: "en" | "gb"; slug: string }
60
+ */
61
+ export type ExtractParams<
62
+ T extends string,
63
+ Depth extends readonly unknown[] = [],
64
+ > = Depth["length"] extends 10
65
+ ? { [key: string]: string | undefined } // Fallback to generic params if too deep
66
+ : // Match param with remaining path: :param.../rest
67
+ T extends `${infer _Start}:${infer Param}/${infer Rest}`
68
+ ? MergeParams<
69
+ ParamFromInfo<ExtractParamInfo<Param>>,
70
+ ExtractParams<`/${Rest}`, readonly [...Depth, unknown]>
71
+ >
72
+ : // Match param at end: :param...
73
+ T extends `${infer _Start}:${infer Param}`
74
+ ? ParamFromInfo<ExtractParamInfo<Param>>
75
+ : {};
76
+
77
+ /**
78
+ * Trailing slash handling mode
79
+ * - "never": Redirect URLs with trailing slash to without
80
+ * - "always": Redirect URLs without trailing slash to with
81
+ * - "ignore": Match both with and without trailing slash
82
+ */
83
+ export type TrailingSlashMode = "never" | "always" | "ignore";
84
+
85
+ export type RouteConfig = {
86
+ path: string;
87
+ trailingSlash?: TrailingSlashMode;
88
+ };
89
+
90
+ export type RouteDefinitionOptions = {
91
+ trailingSlash?: TrailingSlashMode;
92
+ };
93
+
94
+ export type RouteDefinition = {
95
+ [key: string]: string | RouteConfig | RouteDefinition;
96
+ };
97
+
98
+ type FlattenRoutes<
99
+ T extends RouteDefinition,
100
+ Prefix extends string = "",
101
+ Depth extends readonly unknown[] = [],
102
+ > = Depth["length"] extends 5
103
+ ? never
104
+ : {
105
+ [K in keyof T]: T[K] extends string
106
+ ? Record<`${Prefix}${K & string}`, T[K]>
107
+ : T[K] extends RouteConfig
108
+ ? Record<`${Prefix}${K & string}`, T[K]["path"]>
109
+ : T[K] extends RouteDefinition
110
+ ? FlattenRoutes<
111
+ T[K],
112
+ `${Prefix}${K & string}.`,
113
+ readonly [...Depth, unknown]
114
+ >
115
+ : never;
116
+ }[keyof T];
117
+
118
+ type UnionToIntersection<U> = (
119
+ U extends unknown ? (k: U) => void : never
120
+ ) extends (k: infer I) => void
121
+ ? I
122
+ : never;
123
+
124
+ export type ResolvedRouteMap<T extends RouteDefinition> = UnionToIntersection<
125
+ FlattenRoutes<T>
126
+ >;
@@ -0,0 +1,114 @@
1
+ import type { AllUseItems } from "../route-types.js";
2
+ import type { TrailingSlashMode, ResolvedRouteMap } from "./route-config.js";
3
+
4
+ export interface LazyIncludeContext {
5
+ urlPrefix: string;
6
+ namePrefix: string | undefined;
7
+ parent: unknown; // EntryData - avoid circular import
8
+ /** Counter snapshot from pattern extraction for consistent shortCode indices */
9
+ counters?: Record<string, number>;
10
+ cacheProfiles?: Record<
11
+ string,
12
+ import("../cache/profile-registry.js").CacheProfile
13
+ >;
14
+ /** Root scope flag for dot-local reverse resolution */
15
+ rootScoped?: boolean;
16
+ /**
17
+ * Positional include scope token composed from the parent scope plus this
18
+ * include's sibling index (`${parentScope}I${idx}`). Applied to direct-
19
+ * descendant shortCodes during lazy evaluation so routes inside the
20
+ * include cannot collide with siblings declared outside it.
21
+ */
22
+ includeScope?: string;
23
+ }
24
+
25
+ export interface RouteEntry<TEnv = any> {
26
+ prefix: string;
27
+ /**
28
+ * Pre-computed static prefix for fast short-circuit matching.
29
+ * Extracted from prefix at registration time (everything before first param).
30
+ *
31
+ * Examples:
32
+ * - "/api" -> staticPrefix = "/api"
33
+ * - "/site/:locale" -> staticPrefix = "/site"
34
+ * - "/:locale" -> staticPrefix = "" (empty, can't optimize)
35
+ *
36
+ * At runtime: if staticPrefix && !pathname.startsWith(staticPrefix), skip entry.
37
+ */
38
+ staticPrefix: string;
39
+ /**
40
+ * Route patterns map. For lazy entries, this starts as empty and is
41
+ * populated on first request.
42
+ */
43
+ routes: ResolvedRouteMap<any>;
44
+ /**
45
+ * Trailing slash config per route key
46
+ * If not specified for a route, defaults to pattern-based detection
47
+ */
48
+ trailingSlash?: Record<string, TrailingSlashMode>;
49
+ /**
50
+ * Supported handler shapes:
51
+ * - sync: () => Array<AllUseItems>
52
+ * - lazy import: () => Promise<{ default: () => Array<AllUseItems> }>
53
+ * - lazy function: () => Promise<() => Array<AllUseItems>>
54
+ *
55
+ * Direct Promise<Array> is NOT supported and rejected at runtime.
56
+ */
57
+ handler: () =>
58
+ | Array<AllUseItems>
59
+ | Promise<{ default: () => Array<AllUseItems> }>
60
+ | Promise<() => Array<AllUseItems>>;
61
+ mountIndex: number;
62
+
63
+ /**
64
+ * Router ID that owns this entry. Used to namespace the manifest cache
65
+ * so multi-router setups (host routing) don't share cached EntryData
66
+ * across routers with overlapping mountIndex + routeKey combinations.
67
+ */
68
+ routerId?: string;
69
+
70
+ /**
71
+ * Route keys in this entry that have pre-render handlers.
72
+ * Used by the non-trie match path to set the `pr` flag.
73
+ */
74
+ prerenderRouteKeys?: Set<string>;
75
+
76
+ /**
77
+ * Route keys in this entry that are wrapped with `Passthrough()`.
78
+ * Used by the non-trie match path to set the `pt` flag.
79
+ */
80
+ passthroughRouteKeys?: Set<string>;
81
+
82
+ // === Lazy evaluation fields ===
83
+
84
+ /**
85
+ * Whether this entry is lazily evaluated.
86
+ * When true, routes are populated on first matching request.
87
+ */
88
+ lazy?: boolean;
89
+
90
+ /**
91
+ * For lazy entries: the UrlPatterns to evaluate
92
+ */
93
+ lazyPatterns?: unknown;
94
+
95
+ /**
96
+ * For lazy entries: captured context at definition time
97
+ */
98
+ lazyContext?: LazyIncludeContext;
99
+
100
+ /**
101
+ * For lazy entries: whether patterns have been evaluated
102
+ */
103
+ lazyEvaluated?: boolean;
104
+
105
+ /**
106
+ * Cache profiles for DSL-time cache("profileName") resolution.
107
+ * Set on all entries (lazy and non-lazy) so loadManifest() can
108
+ * propagate them into the HelperContext Store.
109
+ */
110
+ cacheProfiles?: Record<
111
+ string,
112
+ import("../cache/profile-registry.js").CacheProfile
113
+ >;
114
+ }