@rangojs/router 0.0.0-experimental.f2337aef → 0.0.0-experimental.f2d1a2f1

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 (972) hide show
  1. package/README.md +126 -38
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +1183 -461
  4. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  5. package/package.json +7 -5
  6. package/skills/breadcrumbs/SKILL.md +3 -1
  7. package/skills/cache-guide/SKILL.md +32 -0
  8. package/skills/caching/SKILL.md +45 -4
  9. package/skills/handler-use/SKILL.md +362 -0
  10. package/skills/hooks/SKILL.md +28 -20
  11. package/skills/intercept/SKILL.md +20 -0
  12. package/skills/layout/SKILL.md +22 -0
  13. package/skills/links/SKILL.md +91 -17
  14. package/skills/loader/SKILL.md +88 -45
  15. package/skills/middleware/SKILL.md +34 -3
  16. package/skills/migrate-nextjs/SKILL.md +560 -0
  17. package/skills/migrate-react-router/SKILL.md +765 -0
  18. package/skills/parallel/SKILL.md +185 -0
  19. package/skills/prerender/SKILL.md +110 -68
  20. package/skills/rango/SKILL.md +24 -22
  21. package/skills/response-routes/SKILL.md +8 -0
  22. package/skills/route/SKILL.md +55 -0
  23. package/skills/router-setup/SKILL.md +87 -2
  24. package/skills/streams-and-websockets/SKILL.md +283 -0
  25. package/skills/typesafety/SKILL.md +13 -1
  26. package/src/__internal.ts +1 -1
  27. package/src/browser/app-shell.ts +52 -0
  28. package/src/browser/app-version.ts +14 -0
  29. package/src/browser/event-controller.ts +5 -0
  30. package/src/browser/navigation-bridge.ts +88 -9
  31. package/src/browser/navigation-client.ts +167 -59
  32. package/src/browser/navigation-store.ts +68 -9
  33. package/src/browser/navigation-transaction.ts +11 -9
  34. package/src/browser/partial-update.ts +109 -15
  35. package/src/browser/prefetch/cache.ts +175 -15
  36. package/src/browser/prefetch/fetch.ts +180 -33
  37. package/src/browser/prefetch/queue.ts +123 -20
  38. package/src/browser/prefetch/resource-ready.ts +77 -0
  39. package/src/browser/rango-state.ts +53 -13
  40. package/src/browser/react/Link.tsx +81 -9
  41. package/src/browser/react/NavigationProvider.tsx +89 -14
  42. package/src/browser/react/context.ts +7 -2
  43. package/src/browser/react/use-handle.ts +9 -58
  44. package/src/browser/react/use-navigation.ts +22 -2
  45. package/src/browser/react/use-params.ts +11 -1
  46. package/src/browser/react/use-router.ts +29 -9
  47. package/src/browser/rsc-router.tsx +168 -65
  48. package/src/browser/scroll-restoration.ts +30 -15
  49. package/src/browser/segment-reconciler.ts +36 -9
  50. package/src/browser/server-action-bridge.ts +8 -6
  51. package/src/browser/types.ts +49 -5
  52. package/src/build/generate-manifest.ts +6 -6
  53. package/src/build/generate-route-types.ts +3 -0
  54. package/src/build/route-trie.ts +50 -24
  55. package/src/build/route-types/include-resolution.ts +8 -1
  56. package/src/build/route-types/router-processing.ts +223 -74
  57. package/src/build/route-types/scan-filter.ts +8 -1
  58. package/src/cache/cache-runtime.ts +15 -11
  59. package/src/cache/cache-scope.ts +48 -7
  60. package/src/cache/cf/cf-cache-store.ts +455 -15
  61. package/src/cache/cf/index.ts +5 -1
  62. package/src/cache/document-cache.ts +17 -7
  63. package/src/cache/index.ts +1 -0
  64. package/src/cache/taint.ts +55 -0
  65. package/src/client.tsx +84 -230
  66. package/src/context-var.ts +72 -2
  67. package/src/debug.ts +2 -2
  68. package/src/handle.ts +40 -0
  69. package/src/index.rsc.ts +6 -1
  70. package/src/index.ts +49 -6
  71. package/src/outlet-context.ts +1 -1
  72. package/src/prerender/store.ts +5 -4
  73. package/src/prerender.ts +138 -77
  74. package/src/response-utils.ts +28 -0
  75. package/src/reverse.ts +27 -2
  76. package/src/route-definition/dsl-helpers.ts +240 -40
  77. package/src/route-definition/helpers-types.ts +67 -19
  78. package/src/route-definition/index.ts +3 -0
  79. package/src/route-definition/redirect.ts +11 -3
  80. package/src/route-definition/resolve-handler-use.ts +155 -0
  81. package/src/route-types.ts +18 -0
  82. package/src/router/content-negotiation.ts +100 -1
  83. package/src/router/handler-context.ts +101 -25
  84. package/src/router/intercept-resolution.ts +9 -4
  85. package/src/router/lazy-includes.ts +10 -7
  86. package/src/router/loader-resolution.ts +159 -21
  87. package/src/router/logging.ts +1 -1
  88. package/src/router/manifest.ts +31 -16
  89. package/src/router/match-api.ts +127 -192
  90. package/src/router/match-middleware/background-revalidation.ts +30 -2
  91. package/src/router/match-middleware/cache-lookup.ts +94 -17
  92. package/src/router/match-middleware/cache-store.ts +53 -10
  93. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  94. package/src/router/match-middleware/segment-resolution.ts +60 -5
  95. package/src/router/match-result.ts +104 -10
  96. package/src/router/metrics.ts +6 -1
  97. package/src/router/middleware-types.ts +8 -30
  98. package/src/router/middleware.ts +36 -10
  99. package/src/router/navigation-snapshot.ts +182 -0
  100. package/src/router/pattern-matching.ts +60 -9
  101. package/src/router/prerender-match.ts +110 -10
  102. package/src/router/preview-match.ts +30 -102
  103. package/src/router/request-classification.ts +310 -0
  104. package/src/router/route-snapshot.ts +245 -0
  105. package/src/router/router-context.ts +1 -0
  106. package/src/router/router-interfaces.ts +36 -4
  107. package/src/router/router-options.ts +37 -11
  108. package/src/router/segment-resolution/fresh.ts +198 -20
  109. package/src/router/segment-resolution/helpers.ts +29 -24
  110. package/src/router/segment-resolution/loader-cache.ts +1 -0
  111. package/src/router/segment-resolution/revalidation.ts +433 -296
  112. package/src/router/trie-matching.ts +10 -4
  113. package/src/router/types.ts +1 -0
  114. package/src/router/url-params.ts +49 -0
  115. package/src/router.ts +60 -8
  116. package/src/rsc/handler.ts +478 -374
  117. package/src/rsc/helpers.ts +69 -41
  118. package/src/rsc/loader-fetch.ts +23 -3
  119. package/src/rsc/manifest-init.ts +5 -1
  120. package/src/rsc/progressive-enhancement.ts +16 -2
  121. package/src/rsc/response-route-handler.ts +14 -1
  122. package/src/rsc/rsc-rendering.ts +17 -1
  123. package/src/rsc/server-action.ts +10 -0
  124. package/src/rsc/ssr-setup.ts +2 -2
  125. package/src/rsc/types.ts +9 -1
  126. package/src/segment-content-promise.ts +67 -0
  127. package/src/segment-loader-promise.ts +122 -0
  128. package/src/segment-system.tsx +109 -23
  129. package/src/server/context.ts +166 -17
  130. package/src/server/handle-store.ts +19 -0
  131. package/src/server/loader-registry.ts +9 -8
  132. package/src/server/request-context.ts +194 -60
  133. package/src/ssr/index.tsx +4 -0
  134. package/src/static-handler.ts +18 -6
  135. package/src/types/cache-types.ts +4 -4
  136. package/src/types/handler-context.ts +137 -65
  137. package/src/types/loader-types.ts +41 -15
  138. package/src/types/request-scope.ts +126 -0
  139. package/src/types/route-entry.ts +19 -1
  140. package/src/types/segments.ts +2 -0
  141. package/src/urls/include-helper.ts +24 -14
  142. package/src/urls/path-helper-types.ts +39 -6
  143. package/src/urls/path-helper.ts +48 -13
  144. package/src/urls/pattern-types.ts +12 -0
  145. package/src/urls/response-types.ts +18 -16
  146. package/src/use-loader.tsx +77 -5
  147. package/src/vite/debug.ts +86 -0
  148. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  149. package/src/vite/discovery/discover-routers.ts +5 -1
  150. package/src/vite/discovery/prerender-collection.ts +128 -74
  151. package/src/vite/discovery/state.ts +13 -6
  152. package/src/vite/index.ts +4 -0
  153. package/src/vite/plugin-types.ts +51 -79
  154. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  155. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  156. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  157. package/src/vite/plugins/expose-action-id.ts +1 -3
  158. package/src/vite/plugins/expose-id-utils.ts +12 -0
  159. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  160. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  161. package/src/vite/plugins/performance-tracks.ts +86 -0
  162. package/src/vite/plugins/refresh-cmd.ts +88 -26
  163. package/src/vite/plugins/version-plugin.ts +13 -1
  164. package/src/vite/rango.ts +204 -217
  165. package/src/vite/router-discovery.ts +335 -64
  166. package/src/vite/utils/banner.ts +4 -4
  167. package/src/vite/utils/package-resolution.ts +41 -1
  168. package/src/vite/utils/prerender-utils.ts +37 -5
  169. package/src/vite/utils/shared-utils.ts +3 -2
  170. package/dist/__internal.d.ts +0 -83
  171. package/dist/__internal.d.ts.map +0 -1
  172. package/dist/__internal.js +0 -19
  173. package/dist/__internal.js.map +0 -1
  174. package/dist/__mocks__/version.d.ts +0 -7
  175. package/dist/__mocks__/version.d.ts.map +0 -1
  176. package/dist/__mocks__/version.js +0 -7
  177. package/dist/__mocks__/version.js.map +0 -1
  178. package/dist/__tests__/client-href.test.d.ts +0 -2
  179. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  180. package/dist/__tests__/client-href.test.js +0 -74
  181. package/dist/__tests__/client-href.test.js.map +0 -1
  182. package/dist/__tests__/component-utils.test.d.ts +0 -2
  183. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  184. package/dist/__tests__/component-utils.test.js +0 -51
  185. package/dist/__tests__/component-utils.test.js.map +0 -1
  186. package/dist/__tests__/event-controller.test.d.ts +0 -2
  187. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  188. package/dist/__tests__/event-controller.test.js +0 -538
  189. package/dist/__tests__/event-controller.test.js.map +0 -1
  190. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  191. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  192. package/dist/__tests__/helpers/route-tree.js +0 -374
  193. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  194. package/dist/__tests__/match-result.test.d.ts +0 -2
  195. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  196. package/dist/__tests__/match-result.test.js +0 -154
  197. package/dist/__tests__/match-result.test.js.map +0 -1
  198. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  199. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  200. package/dist/__tests__/navigation-store.test.js +0 -440
  201. package/dist/__tests__/navigation-store.test.js.map +0 -1
  202. package/dist/__tests__/partial-update.test.d.ts +0 -2
  203. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  204. package/dist/__tests__/partial-update.test.js +0 -1009
  205. package/dist/__tests__/partial-update.test.js.map +0 -1
  206. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  207. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  208. package/dist/__tests__/reverse-types.test.js +0 -656
  209. package/dist/__tests__/reverse-types.test.js.map +0 -1
  210. package/dist/__tests__/route-definition.test.d.ts +0 -2
  211. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  212. package/dist/__tests__/route-definition.test.js +0 -55
  213. package/dist/__tests__/route-definition.test.js.map +0 -1
  214. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  215. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  216. package/dist/__tests__/router-helpers.test.js +0 -377
  217. package/dist/__tests__/router-helpers.test.js.map +0 -1
  218. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  219. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  220. package/dist/__tests__/router-integration-2.test.js +0 -426
  221. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  222. package/dist/__tests__/router-integration.test.d.ts +0 -2
  223. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  224. package/dist/__tests__/router-integration.test.js +0 -1051
  225. package/dist/__tests__/router-integration.test.js.map +0 -1
  226. package/dist/__tests__/search-params.test.d.ts +0 -5
  227. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  228. package/dist/__tests__/search-params.test.js +0 -306
  229. package/dist/__tests__/search-params.test.js.map +0 -1
  230. package/dist/__tests__/segment-system.test.d.ts +0 -2
  231. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  232. package/dist/__tests__/segment-system.test.js +0 -627
  233. package/dist/__tests__/segment-system.test.js.map +0 -1
  234. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  235. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  236. package/dist/__tests__/static-handler-types.test.js +0 -63
  237. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  238. package/dist/__tests__/urls.test.d.ts +0 -2
  239. package/dist/__tests__/urls.test.d.ts.map +0 -1
  240. package/dist/__tests__/urls.test.js +0 -421
  241. package/dist/__tests__/urls.test.js.map +0 -1
  242. package/dist/__tests__/use-mount.test.d.ts +0 -2
  243. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  244. package/dist/__tests__/use-mount.test.js +0 -35
  245. package/dist/__tests__/use-mount.test.js.map +0 -1
  246. package/dist/bin/rango.d.ts +0 -2
  247. package/dist/bin/rango.d.ts.map +0 -1
  248. package/dist/bin/rango.js.map +0 -1
  249. package/dist/browser/event-controller.d.ts +0 -191
  250. package/dist/browser/event-controller.d.ts.map +0 -1
  251. package/dist/browser/event-controller.js +0 -559
  252. package/dist/browser/event-controller.js.map +0 -1
  253. package/dist/browser/index.d.ts +0 -2
  254. package/dist/browser/index.d.ts.map +0 -1
  255. package/dist/browser/index.js +0 -14
  256. package/dist/browser/index.js.map +0 -1
  257. package/dist/browser/link-interceptor.d.ts +0 -38
  258. package/dist/browser/link-interceptor.d.ts.map +0 -1
  259. package/dist/browser/link-interceptor.js +0 -99
  260. package/dist/browser/link-interceptor.js.map +0 -1
  261. package/dist/browser/logging.d.ts +0 -10
  262. package/dist/browser/logging.d.ts.map +0 -1
  263. package/dist/browser/logging.js +0 -29
  264. package/dist/browser/logging.js.map +0 -1
  265. package/dist/browser/lru-cache.d.ts +0 -17
  266. package/dist/browser/lru-cache.d.ts.map +0 -1
  267. package/dist/browser/lru-cache.js +0 -50
  268. package/dist/browser/lru-cache.js.map +0 -1
  269. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  270. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  271. package/dist/browser/merge-segment-loaders.js +0 -102
  272. package/dist/browser/merge-segment-loaders.js.map +0 -1
  273. package/dist/browser/navigation-bridge.d.ts +0 -102
  274. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  275. package/dist/browser/navigation-bridge.js +0 -708
  276. package/dist/browser/navigation-bridge.js.map +0 -1
  277. package/dist/browser/navigation-client.d.ts +0 -25
  278. package/dist/browser/navigation-client.d.ts.map +0 -1
  279. package/dist/browser/navigation-client.js +0 -157
  280. package/dist/browser/navigation-client.js.map +0 -1
  281. package/dist/browser/navigation-store.d.ts +0 -101
  282. package/dist/browser/navigation-store.d.ts.map +0 -1
  283. package/dist/browser/navigation-store.js +0 -625
  284. package/dist/browser/navigation-store.js.map +0 -1
  285. package/dist/browser/partial-update.d.ts +0 -75
  286. package/dist/browser/partial-update.d.ts.map +0 -1
  287. package/dist/browser/partial-update.js +0 -426
  288. package/dist/browser/partial-update.js.map +0 -1
  289. package/dist/browser/react/Link.d.ts +0 -86
  290. package/dist/browser/react/Link.d.ts.map +0 -1
  291. package/dist/browser/react/Link.js +0 -128
  292. package/dist/browser/react/Link.js.map +0 -1
  293. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  294. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  295. package/dist/browser/react/NavigationProvider.js +0 -216
  296. package/dist/browser/react/NavigationProvider.js.map +0 -1
  297. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  298. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  299. package/dist/browser/react/ScrollRestoration.js +0 -57
  300. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  301. package/dist/browser/react/context.d.ts +0 -46
  302. package/dist/browser/react/context.d.ts.map +0 -1
  303. package/dist/browser/react/context.js +0 -10
  304. package/dist/browser/react/context.js.map +0 -1
  305. package/dist/browser/react/index.d.ts +0 -11
  306. package/dist/browser/react/index.d.ts.map +0 -1
  307. package/dist/browser/react/index.js +0 -22
  308. package/dist/browser/react/index.js.map +0 -1
  309. package/dist/browser/react/location-state-shared.d.ts +0 -63
  310. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  311. package/dist/browser/react/location-state-shared.js +0 -81
  312. package/dist/browser/react/location-state-shared.js.map +0 -1
  313. package/dist/browser/react/location-state.d.ts +0 -23
  314. package/dist/browser/react/location-state.d.ts.map +0 -1
  315. package/dist/browser/react/location-state.js +0 -29
  316. package/dist/browser/react/location-state.js.map +0 -1
  317. package/dist/browser/react/mount-context.d.ts +0 -24
  318. package/dist/browser/react/mount-context.d.ts.map +0 -1
  319. package/dist/browser/react/mount-context.js +0 -24
  320. package/dist/browser/react/mount-context.js.map +0 -1
  321. package/dist/browser/react/use-action.d.ts +0 -64
  322. package/dist/browser/react/use-action.d.ts.map +0 -1
  323. package/dist/browser/react/use-action.js +0 -134
  324. package/dist/browser/react/use-action.js.map +0 -1
  325. package/dist/browser/react/use-client-cache.d.ts +0 -41
  326. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  327. package/dist/browser/react/use-client-cache.js +0 -39
  328. package/dist/browser/react/use-client-cache.js.map +0 -1
  329. package/dist/browser/react/use-handle.d.ts +0 -31
  330. package/dist/browser/react/use-handle.d.ts.map +0 -1
  331. package/dist/browser/react/use-handle.js +0 -144
  332. package/dist/browser/react/use-handle.js.map +0 -1
  333. package/dist/browser/react/use-href.d.ts +0 -33
  334. package/dist/browser/react/use-href.d.ts.map +0 -1
  335. package/dist/browser/react/use-href.js +0 -39
  336. package/dist/browser/react/use-href.js.map +0 -1
  337. package/dist/browser/react/use-link-status.d.ts +0 -37
  338. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  339. package/dist/browser/react/use-link-status.js +0 -99
  340. package/dist/browser/react/use-link-status.js.map +0 -1
  341. package/dist/browser/react/use-mount.d.ts +0 -25
  342. package/dist/browser/react/use-mount.d.ts.map +0 -1
  343. package/dist/browser/react/use-mount.js +0 -30
  344. package/dist/browser/react/use-mount.js.map +0 -1
  345. package/dist/browser/react/use-navigation.d.ts +0 -27
  346. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  347. package/dist/browser/react/use-navigation.js +0 -87
  348. package/dist/browser/react/use-navigation.js.map +0 -1
  349. package/dist/browser/react/use-segments.d.ts +0 -38
  350. package/dist/browser/react/use-segments.d.ts.map +0 -1
  351. package/dist/browser/react/use-segments.js +0 -130
  352. package/dist/browser/react/use-segments.js.map +0 -1
  353. package/dist/browser/request-controller.d.ts +0 -26
  354. package/dist/browser/request-controller.d.ts.map +0 -1
  355. package/dist/browser/request-controller.js +0 -147
  356. package/dist/browser/request-controller.js.map +0 -1
  357. package/dist/browser/rsc-router.d.ts +0 -129
  358. package/dist/browser/rsc-router.d.ts.map +0 -1
  359. package/dist/browser/rsc-router.js +0 -195
  360. package/dist/browser/rsc-router.js.map +0 -1
  361. package/dist/browser/scroll-restoration.d.ts +0 -93
  362. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  363. package/dist/browser/scroll-restoration.js +0 -321
  364. package/dist/browser/scroll-restoration.js.map +0 -1
  365. package/dist/browser/segment-structure-assert.d.ts +0 -17
  366. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  367. package/dist/browser/segment-structure-assert.js +0 -59
  368. package/dist/browser/segment-structure-assert.js.map +0 -1
  369. package/dist/browser/server-action-bridge.d.ts +0 -26
  370. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  371. package/dist/browser/server-action-bridge.js +0 -668
  372. package/dist/browser/server-action-bridge.js.map +0 -1
  373. package/dist/browser/shallow.d.ts +0 -12
  374. package/dist/browser/shallow.d.ts.map +0 -1
  375. package/dist/browser/shallow.js +0 -34
  376. package/dist/browser/shallow.js.map +0 -1
  377. package/dist/browser/types.d.ts +0 -369
  378. package/dist/browser/types.d.ts.map +0 -1
  379. package/dist/browser/types.js +0 -2
  380. package/dist/browser/types.js.map +0 -1
  381. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  382. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  383. package/dist/build/__tests__/generate-cli.test.js +0 -237
  384. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  385. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  386. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  387. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  388. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  389. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  390. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  391. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  392. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  393. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  394. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  395. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  396. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  397. package/dist/build/generate-manifest.d.ts +0 -81
  398. package/dist/build/generate-manifest.d.ts.map +0 -1
  399. package/dist/build/generate-manifest.js +0 -276
  400. package/dist/build/generate-manifest.js.map +0 -1
  401. package/dist/build/generate-route-types.d.ts +0 -115
  402. package/dist/build/generate-route-types.d.ts.map +0 -1
  403. package/dist/build/generate-route-types.js +0 -740
  404. package/dist/build/generate-route-types.js.map +0 -1
  405. package/dist/build/index.d.ts +0 -21
  406. package/dist/build/index.d.ts.map +0 -1
  407. package/dist/build/index.js +0 -21
  408. package/dist/build/index.js.map +0 -1
  409. package/dist/build/route-trie.d.ts +0 -71
  410. package/dist/build/route-trie.d.ts.map +0 -1
  411. package/dist/build/route-trie.js +0 -175
  412. package/dist/build/route-trie.js.map +0 -1
  413. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  414. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  415. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  416. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  417. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  418. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  419. package/dist/cache/__tests__/document-cache.test.js +0 -345
  420. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  421. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  422. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  423. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  424. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  425. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  426. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  427. package/dist/cache/__tests__/memory-store.test.js +0 -367
  428. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  429. package/dist/cache/cache-scope.d.ts +0 -102
  430. package/dist/cache/cache-scope.d.ts.map +0 -1
  431. package/dist/cache/cache-scope.js +0 -440
  432. package/dist/cache/cache-scope.js.map +0 -1
  433. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  434. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  435. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  436. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  437. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  438. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  439. package/dist/cache/cf/cf-cache-store.js +0 -242
  440. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  441. package/dist/cache/cf/index.d.ts +0 -14
  442. package/dist/cache/cf/index.d.ts.map +0 -1
  443. package/dist/cache/cf/index.js +0 -17
  444. package/dist/cache/cf/index.js.map +0 -1
  445. package/dist/cache/document-cache.d.ts +0 -64
  446. package/dist/cache/document-cache.d.ts.map +0 -1
  447. package/dist/cache/document-cache.js +0 -228
  448. package/dist/cache/document-cache.js.map +0 -1
  449. package/dist/cache/index.d.ts +0 -19
  450. package/dist/cache/index.d.ts.map +0 -1
  451. package/dist/cache/index.js +0 -21
  452. package/dist/cache/index.js.map +0 -1
  453. package/dist/cache/memory-segment-store.d.ts +0 -110
  454. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  455. package/dist/cache/memory-segment-store.js +0 -117
  456. package/dist/cache/memory-segment-store.js.map +0 -1
  457. package/dist/cache/memory-store.d.ts +0 -41
  458. package/dist/cache/memory-store.d.ts.map +0 -1
  459. package/dist/cache/memory-store.js +0 -191
  460. package/dist/cache/memory-store.js.map +0 -1
  461. package/dist/cache/types.d.ts +0 -317
  462. package/dist/cache/types.d.ts.map +0 -1
  463. package/dist/cache/types.js +0 -12
  464. package/dist/cache/types.js.map +0 -1
  465. package/dist/client.d.ts +0 -248
  466. package/dist/client.d.ts.map +0 -1
  467. package/dist/client.js +0 -367
  468. package/dist/client.js.map +0 -1
  469. package/dist/client.rsc.d.ts +0 -26
  470. package/dist/client.rsc.d.ts.map +0 -1
  471. package/dist/client.rsc.js +0 -46
  472. package/dist/client.rsc.js.map +0 -1
  473. package/dist/component-utils.d.ts +0 -36
  474. package/dist/component-utils.d.ts.map +0 -1
  475. package/dist/component-utils.js +0 -61
  476. package/dist/component-utils.js.map +0 -1
  477. package/dist/components/DefaultDocument.d.ts +0 -13
  478. package/dist/components/DefaultDocument.d.ts.map +0 -1
  479. package/dist/components/DefaultDocument.js +0 -15
  480. package/dist/components/DefaultDocument.js.map +0 -1
  481. package/dist/debug.d.ts +0 -58
  482. package/dist/debug.d.ts.map +0 -1
  483. package/dist/debug.js +0 -157
  484. package/dist/debug.js.map +0 -1
  485. package/dist/default-error-boundary.d.ts +0 -11
  486. package/dist/default-error-boundary.d.ts.map +0 -1
  487. package/dist/default-error-boundary.js +0 -45
  488. package/dist/default-error-boundary.js.map +0 -1
  489. package/dist/deps/browser.d.ts +0 -2
  490. package/dist/deps/browser.d.ts.map +0 -1
  491. package/dist/deps/browser.js +0 -3
  492. package/dist/deps/browser.js.map +0 -1
  493. package/dist/deps/html-stream-client.d.ts +0 -2
  494. package/dist/deps/html-stream-client.d.ts.map +0 -1
  495. package/dist/deps/html-stream-client.js +0 -3
  496. package/dist/deps/html-stream-client.js.map +0 -1
  497. package/dist/deps/html-stream-server.d.ts +0 -2
  498. package/dist/deps/html-stream-server.d.ts.map +0 -1
  499. package/dist/deps/html-stream-server.js +0 -3
  500. package/dist/deps/html-stream-server.js.map +0 -1
  501. package/dist/deps/rsc.d.ts +0 -2
  502. package/dist/deps/rsc.d.ts.map +0 -1
  503. package/dist/deps/rsc.js +0 -4
  504. package/dist/deps/rsc.js.map +0 -1
  505. package/dist/deps/ssr.d.ts +0 -2
  506. package/dist/deps/ssr.d.ts.map +0 -1
  507. package/dist/deps/ssr.js +0 -3
  508. package/dist/deps/ssr.js.map +0 -1
  509. package/dist/errors.d.ts +0 -174
  510. package/dist/errors.d.ts.map +0 -1
  511. package/dist/errors.js +0 -241
  512. package/dist/errors.js.map +0 -1
  513. package/dist/handle.d.ts +0 -78
  514. package/dist/handle.d.ts.map +0 -1
  515. package/dist/handle.js +0 -82
  516. package/dist/handle.js.map +0 -1
  517. package/dist/handles/MetaTags.d.ts +0 -14
  518. package/dist/handles/MetaTags.d.ts.map +0 -1
  519. package/dist/handles/MetaTags.js +0 -136
  520. package/dist/handles/MetaTags.js.map +0 -1
  521. package/dist/handles/index.d.ts +0 -6
  522. package/dist/handles/index.d.ts.map +0 -1
  523. package/dist/handles/index.js +0 -6
  524. package/dist/handles/index.js.map +0 -1
  525. package/dist/handles/meta.d.ts +0 -39
  526. package/dist/handles/meta.d.ts.map +0 -1
  527. package/dist/handles/meta.js +0 -202
  528. package/dist/handles/meta.js.map +0 -1
  529. package/dist/host/__tests__/errors.test.d.ts +0 -2
  530. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  531. package/dist/host/__tests__/errors.test.js +0 -76
  532. package/dist/host/__tests__/errors.test.js.map +0 -1
  533. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  534. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  535. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  536. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  537. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  538. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  539. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  540. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  541. package/dist/host/__tests__/router.test.d.ts +0 -2
  542. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  543. package/dist/host/__tests__/router.test.js +0 -241
  544. package/dist/host/__tests__/router.test.js.map +0 -1
  545. package/dist/host/__tests__/testing.test.d.ts +0 -2
  546. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  547. package/dist/host/__tests__/testing.test.js +0 -64
  548. package/dist/host/__tests__/testing.test.js.map +0 -1
  549. package/dist/host/__tests__/utils.test.d.ts +0 -2
  550. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  551. package/dist/host/__tests__/utils.test.js +0 -29
  552. package/dist/host/__tests__/utils.test.js.map +0 -1
  553. package/dist/host/cookie-handler.d.ts +0 -34
  554. package/dist/host/cookie-handler.d.ts.map +0 -1
  555. package/dist/host/cookie-handler.js +0 -124
  556. package/dist/host/cookie-handler.js.map +0 -1
  557. package/dist/host/errors.d.ts +0 -56
  558. package/dist/host/errors.d.ts.map +0 -1
  559. package/dist/host/errors.js +0 -79
  560. package/dist/host/errors.js.map +0 -1
  561. package/dist/host/index.d.ts +0 -29
  562. package/dist/host/index.d.ts.map +0 -1
  563. package/dist/host/index.js +0 -32
  564. package/dist/host/index.js.map +0 -1
  565. package/dist/host/pattern-matcher.d.ts +0 -36
  566. package/dist/host/pattern-matcher.d.ts.map +0 -1
  567. package/dist/host/pattern-matcher.js +0 -172
  568. package/dist/host/pattern-matcher.js.map +0 -1
  569. package/dist/host/router.d.ts +0 -26
  570. package/dist/host/router.d.ts.map +0 -1
  571. package/dist/host/router.js +0 -218
  572. package/dist/host/router.js.map +0 -1
  573. package/dist/host/testing.d.ts +0 -36
  574. package/dist/host/testing.d.ts.map +0 -1
  575. package/dist/host/testing.js +0 -55
  576. package/dist/host/testing.js.map +0 -1
  577. package/dist/host/types.d.ts +0 -115
  578. package/dist/host/types.d.ts.map +0 -1
  579. package/dist/host/types.js +0 -7
  580. package/dist/host/types.js.map +0 -1
  581. package/dist/host/utils.d.ts +0 -21
  582. package/dist/host/utils.d.ts.map +0 -1
  583. package/dist/host/utils.js +0 -23
  584. package/dist/host/utils.js.map +0 -1
  585. package/dist/href-client.d.ts +0 -131
  586. package/dist/href-client.d.ts.map +0 -1
  587. package/dist/href-client.js +0 -64
  588. package/dist/href-client.js.map +0 -1
  589. package/dist/href-context.d.ts +0 -29
  590. package/dist/href-context.d.ts.map +0 -1
  591. package/dist/href-context.js +0 -21
  592. package/dist/href-context.js.map +0 -1
  593. package/dist/index.d.ts +0 -73
  594. package/dist/index.d.ts.map +0 -1
  595. package/dist/index.js +0 -91
  596. package/dist/index.js.map +0 -1
  597. package/dist/index.rsc.d.ts +0 -32
  598. package/dist/index.rsc.d.ts.map +0 -1
  599. package/dist/index.rsc.js +0 -40
  600. package/dist/index.rsc.js.map +0 -1
  601. package/dist/internal-debug.d.ts +0 -2
  602. package/dist/internal-debug.d.ts.map +0 -1
  603. package/dist/internal-debug.js +0 -5
  604. package/dist/internal-debug.js.map +0 -1
  605. package/dist/loader.d.ts +0 -14
  606. package/dist/loader.d.ts.map +0 -1
  607. package/dist/loader.js +0 -20
  608. package/dist/loader.js.map +0 -1
  609. package/dist/loader.rsc.d.ts +0 -19
  610. package/dist/loader.rsc.d.ts.map +0 -1
  611. package/dist/loader.rsc.js +0 -99
  612. package/dist/loader.rsc.js.map +0 -1
  613. package/dist/network-error-thrower.d.ts +0 -17
  614. package/dist/network-error-thrower.d.ts.map +0 -1
  615. package/dist/network-error-thrower.js +0 -14
  616. package/dist/network-error-thrower.js.map +0 -1
  617. package/dist/outlet-context.d.ts +0 -13
  618. package/dist/outlet-context.d.ts.map +0 -1
  619. package/dist/outlet-context.js +0 -3
  620. package/dist/outlet-context.js.map +0 -1
  621. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  622. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  623. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  624. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  625. package/dist/prerender/param-hash.d.ts +0 -16
  626. package/dist/prerender/param-hash.d.ts.map +0 -1
  627. package/dist/prerender/param-hash.js +0 -36
  628. package/dist/prerender/param-hash.js.map +0 -1
  629. package/dist/prerender/store.d.ts +0 -38
  630. package/dist/prerender/store.d.ts.map +0 -1
  631. package/dist/prerender/store.js +0 -61
  632. package/dist/prerender/store.js.map +0 -1
  633. package/dist/prerender.d.ts +0 -66
  634. package/dist/prerender.d.ts.map +0 -1
  635. package/dist/prerender.js +0 -57
  636. package/dist/prerender.js.map +0 -1
  637. package/dist/reverse.d.ts +0 -196
  638. package/dist/reverse.d.ts.map +0 -1
  639. package/dist/reverse.js +0 -78
  640. package/dist/reverse.js.map +0 -1
  641. package/dist/root-error-boundary.d.ts +0 -33
  642. package/dist/root-error-boundary.d.ts.map +0 -1
  643. package/dist/root-error-boundary.js +0 -165
  644. package/dist/root-error-boundary.js.map +0 -1
  645. package/dist/route-content-wrapper.d.ts +0 -46
  646. package/dist/route-content-wrapper.d.ts.map +0 -1
  647. package/dist/route-content-wrapper.js +0 -77
  648. package/dist/route-content-wrapper.js.map +0 -1
  649. package/dist/route-definition.d.ts +0 -421
  650. package/dist/route-definition.d.ts.map +0 -1
  651. package/dist/route-definition.js +0 -868
  652. package/dist/route-definition.js.map +0 -1
  653. package/dist/route-map-builder.d.ts +0 -155
  654. package/dist/route-map-builder.d.ts.map +0 -1
  655. package/dist/route-map-builder.js +0 -237
  656. package/dist/route-map-builder.js.map +0 -1
  657. package/dist/route-types.d.ts +0 -165
  658. package/dist/route-types.d.ts.map +0 -1
  659. package/dist/route-types.js +0 -7
  660. package/dist/route-types.js.map +0 -1
  661. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  662. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  663. package/dist/router/__tests__/handler-context.test.js +0 -65
  664. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  665. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  666. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  667. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  668. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  669. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  670. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  671. package/dist/router/__tests__/match-context.test.js +0 -92
  672. package/dist/router/__tests__/match-context.test.js.map +0 -1
  673. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  674. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  675. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  676. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  677. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  678. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  679. package/dist/router/__tests__/match-result.test.js +0 -457
  680. package/dist/router/__tests__/match-result.test.js.map +0 -1
  681. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  682. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  683. package/dist/router/__tests__/on-error.test.js +0 -678
  684. package/dist/router/__tests__/on-error.test.js.map +0 -1
  685. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  686. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  687. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  688. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  689. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  690. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  691. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  692. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  693. package/dist/router/error-handling.d.ts +0 -77
  694. package/dist/router/error-handling.d.ts.map +0 -1
  695. package/dist/router/error-handling.js +0 -202
  696. package/dist/router/error-handling.js.map +0 -1
  697. package/dist/router/handler-context.d.ts +0 -20
  698. package/dist/router/handler-context.d.ts.map +0 -1
  699. package/dist/router/handler-context.js +0 -198
  700. package/dist/router/handler-context.js.map +0 -1
  701. package/dist/router/intercept-resolution.d.ts +0 -66
  702. package/dist/router/intercept-resolution.d.ts.map +0 -1
  703. package/dist/router/intercept-resolution.js +0 -246
  704. package/dist/router/intercept-resolution.js.map +0 -1
  705. package/dist/router/loader-resolution.d.ts +0 -64
  706. package/dist/router/loader-resolution.d.ts.map +0 -1
  707. package/dist/router/loader-resolution.js +0 -284
  708. package/dist/router/loader-resolution.js.map +0 -1
  709. package/dist/router/logging.d.ts +0 -15
  710. package/dist/router/logging.d.ts.map +0 -1
  711. package/dist/router/logging.js +0 -99
  712. package/dist/router/logging.js.map +0 -1
  713. package/dist/router/manifest.d.ts +0 -22
  714. package/dist/router/manifest.d.ts.map +0 -1
  715. package/dist/router/manifest.js +0 -181
  716. package/dist/router/manifest.js.map +0 -1
  717. package/dist/router/match-api.d.ts +0 -35
  718. package/dist/router/match-api.d.ts.map +0 -1
  719. package/dist/router/match-api.js +0 -406
  720. package/dist/router/match-api.js.map +0 -1
  721. package/dist/router/match-context.d.ts +0 -206
  722. package/dist/router/match-context.d.ts.map +0 -1
  723. package/dist/router/match-context.js +0 -17
  724. package/dist/router/match-context.js.map +0 -1
  725. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  726. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  727. package/dist/router/match-middleware/background-revalidation.js +0 -75
  728. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  729. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  730. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  731. package/dist/router/match-middleware/cache-lookup.js +0 -257
  732. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  733. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  734. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  735. package/dist/router/match-middleware/cache-store.js +0 -108
  736. package/dist/router/match-middleware/cache-store.js.map +0 -1
  737. package/dist/router/match-middleware/index.d.ts +0 -81
  738. package/dist/router/match-middleware/index.d.ts.map +0 -1
  739. package/dist/router/match-middleware/index.js +0 -80
  740. package/dist/router/match-middleware/index.js.map +0 -1
  741. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  742. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  743. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  744. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  745. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  746. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  747. package/dist/router/match-middleware/segment-resolution.js +0 -53
  748. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  749. package/dist/router/match-pipelines.d.ts +0 -147
  750. package/dist/router/match-pipelines.d.ts.map +0 -1
  751. package/dist/router/match-pipelines.js +0 -82
  752. package/dist/router/match-pipelines.js.map +0 -1
  753. package/dist/router/match-result.d.ts +0 -126
  754. package/dist/router/match-result.d.ts.map +0 -1
  755. package/dist/router/match-result.js +0 -93
  756. package/dist/router/match-result.js.map +0 -1
  757. package/dist/router/metrics.d.ts +0 -20
  758. package/dist/router/metrics.d.ts.map +0 -1
  759. package/dist/router/metrics.js +0 -47
  760. package/dist/router/metrics.js.map +0 -1
  761. package/dist/router/middleware.d.ts +0 -249
  762. package/dist/router/middleware.d.ts.map +0 -1
  763. package/dist/router/middleware.js +0 -434
  764. package/dist/router/middleware.js.map +0 -1
  765. package/dist/router/middleware.test.d.ts +0 -2
  766. package/dist/router/middleware.test.d.ts.map +0 -1
  767. package/dist/router/middleware.test.js +0 -816
  768. package/dist/router/middleware.test.js.map +0 -1
  769. package/dist/router/pattern-matching.d.ts +0 -149
  770. package/dist/router/pattern-matching.d.ts.map +0 -1
  771. package/dist/router/pattern-matching.js +0 -349
  772. package/dist/router/pattern-matching.js.map +0 -1
  773. package/dist/router/revalidation.d.ts +0 -44
  774. package/dist/router/revalidation.d.ts.map +0 -1
  775. package/dist/router/revalidation.js +0 -147
  776. package/dist/router/revalidation.js.map +0 -1
  777. package/dist/router/router-context.d.ts +0 -135
  778. package/dist/router/router-context.d.ts.map +0 -1
  779. package/dist/router/router-context.js +0 -36
  780. package/dist/router/router-context.js.map +0 -1
  781. package/dist/router/segment-resolution.d.ts +0 -127
  782. package/dist/router/segment-resolution.d.ts.map +0 -1
  783. package/dist/router/segment-resolution.js +0 -919
  784. package/dist/router/segment-resolution.js.map +0 -1
  785. package/dist/router/trie-matching.d.ts +0 -40
  786. package/dist/router/trie-matching.d.ts.map +0 -1
  787. package/dist/router/trie-matching.js +0 -127
  788. package/dist/router/trie-matching.js.map +0 -1
  789. package/dist/router/types.d.ts +0 -136
  790. package/dist/router/types.d.ts.map +0 -1
  791. package/dist/router/types.js +0 -7
  792. package/dist/router/types.js.map +0 -1
  793. package/dist/router.d.ts +0 -753
  794. package/dist/router.d.ts.map +0 -1
  795. package/dist/router.gen.d.ts +0 -6
  796. package/dist/router.gen.d.ts.map +0 -1
  797. package/dist/router.gen.js +0 -6
  798. package/dist/router.gen.js.map +0 -1
  799. package/dist/router.js +0 -1304
  800. package/dist/router.js.map +0 -1
  801. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  802. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  803. package/dist/rsc/__tests__/helpers.test.js +0 -140
  804. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  805. package/dist/rsc/handler.d.ts +0 -45
  806. package/dist/rsc/handler.d.ts.map +0 -1
  807. package/dist/rsc/handler.js +0 -1172
  808. package/dist/rsc/handler.js.map +0 -1
  809. package/dist/rsc/helpers.d.ts +0 -16
  810. package/dist/rsc/helpers.d.ts.map +0 -1
  811. package/dist/rsc/helpers.js +0 -55
  812. package/dist/rsc/helpers.js.map +0 -1
  813. package/dist/rsc/index.d.ts +0 -22
  814. package/dist/rsc/index.d.ts.map +0 -1
  815. package/dist/rsc/index.js +0 -23
  816. package/dist/rsc/index.js.map +0 -1
  817. package/dist/rsc/nonce.d.ts +0 -9
  818. package/dist/rsc/nonce.d.ts.map +0 -1
  819. package/dist/rsc/nonce.js +0 -18
  820. package/dist/rsc/nonce.js.map +0 -1
  821. package/dist/rsc/types.d.ts +0 -206
  822. package/dist/rsc/types.d.ts.map +0 -1
  823. package/dist/rsc/types.js +0 -8
  824. package/dist/rsc/types.js.map +0 -1
  825. package/dist/search-params.d.ts +0 -103
  826. package/dist/search-params.d.ts.map +0 -1
  827. package/dist/search-params.js +0 -74
  828. package/dist/search-params.js.map +0 -1
  829. package/dist/segment-system.d.ts +0 -75
  830. package/dist/segment-system.d.ts.map +0 -1
  831. package/dist/segment-system.js +0 -336
  832. package/dist/segment-system.js.map +0 -1
  833. package/dist/server/context.d.ts +0 -245
  834. package/dist/server/context.d.ts.map +0 -1
  835. package/dist/server/context.js +0 -197
  836. package/dist/server/context.js.map +0 -1
  837. package/dist/server/fetchable-loader-store.d.ts +0 -18
  838. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  839. package/dist/server/fetchable-loader-store.js +0 -18
  840. package/dist/server/fetchable-loader-store.js.map +0 -1
  841. package/dist/server/handle-store.d.ts +0 -85
  842. package/dist/server/handle-store.d.ts.map +0 -1
  843. package/dist/server/handle-store.js +0 -142
  844. package/dist/server/handle-store.js.map +0 -1
  845. package/dist/server/loader-registry.d.ts +0 -55
  846. package/dist/server/loader-registry.d.ts.map +0 -1
  847. package/dist/server/loader-registry.js +0 -132
  848. package/dist/server/loader-registry.js.map +0 -1
  849. package/dist/server/request-context.d.ts +0 -226
  850. package/dist/server/request-context.d.ts.map +0 -1
  851. package/dist/server/request-context.js +0 -290
  852. package/dist/server/request-context.js.map +0 -1
  853. package/dist/server/root-layout.d.ts +0 -4
  854. package/dist/server/root-layout.d.ts.map +0 -1
  855. package/dist/server/root-layout.js +0 -5
  856. package/dist/server/root-layout.js.map +0 -1
  857. package/dist/server.d.ts +0 -15
  858. package/dist/server.d.ts.map +0 -1
  859. package/dist/server.js +0 -20
  860. package/dist/server.js.map +0 -1
  861. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  862. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  863. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  864. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  865. package/dist/ssr/index.d.ts +0 -98
  866. package/dist/ssr/index.d.ts.map +0 -1
  867. package/dist/ssr/index.js +0 -158
  868. package/dist/ssr/index.js.map +0 -1
  869. package/dist/static-handler.d.ts +0 -50
  870. package/dist/static-handler.d.ts.map +0 -1
  871. package/dist/static-handler.gen.d.ts +0 -5
  872. package/dist/static-handler.gen.d.ts.map +0 -1
  873. package/dist/static-handler.gen.js +0 -5
  874. package/dist/static-handler.gen.js.map +0 -1
  875. package/dist/static-handler.js +0 -29
  876. package/dist/static-handler.js.map +0 -1
  877. package/dist/theme/ThemeProvider.d.ts +0 -20
  878. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  879. package/dist/theme/ThemeProvider.js +0 -240
  880. package/dist/theme/ThemeProvider.js.map +0 -1
  881. package/dist/theme/ThemeScript.d.ts +0 -48
  882. package/dist/theme/ThemeScript.d.ts.map +0 -1
  883. package/dist/theme/ThemeScript.js +0 -13
  884. package/dist/theme/ThemeScript.js.map +0 -1
  885. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  886. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  887. package/dist/theme/__tests__/theme.test.js +0 -103
  888. package/dist/theme/__tests__/theme.test.js.map +0 -1
  889. package/dist/theme/constants.d.ts +0 -29
  890. package/dist/theme/constants.d.ts.map +0 -1
  891. package/dist/theme/constants.js +0 -48
  892. package/dist/theme/constants.js.map +0 -1
  893. package/dist/theme/index.d.ts +0 -31
  894. package/dist/theme/index.d.ts.map +0 -1
  895. package/dist/theme/index.js +0 -36
  896. package/dist/theme/index.js.map +0 -1
  897. package/dist/theme/theme-context.d.ts +0 -40
  898. package/dist/theme/theme-context.d.ts.map +0 -1
  899. package/dist/theme/theme-context.js +0 -60
  900. package/dist/theme/theme-context.js.map +0 -1
  901. package/dist/theme/theme-script.d.ts +0 -27
  902. package/dist/theme/theme-script.d.ts.map +0 -1
  903. package/dist/theme/theme-script.js +0 -147
  904. package/dist/theme/theme-script.js.map +0 -1
  905. package/dist/theme/types.d.ts +0 -163
  906. package/dist/theme/types.d.ts.map +0 -1
  907. package/dist/theme/types.js +0 -11
  908. package/dist/theme/types.js.map +0 -1
  909. package/dist/theme/use-theme.d.ts +0 -12
  910. package/dist/theme/use-theme.d.ts.map +0 -1
  911. package/dist/theme/use-theme.js +0 -40
  912. package/dist/theme/use-theme.js.map +0 -1
  913. package/dist/types.d.ts +0 -1479
  914. package/dist/types.d.ts.map +0 -1
  915. package/dist/types.js +0 -10
  916. package/dist/types.js.map +0 -1
  917. package/dist/urls.d.ts +0 -441
  918. package/dist/urls.d.ts.map +0 -1
  919. package/dist/urls.gen.d.ts +0 -8
  920. package/dist/urls.gen.d.ts.map +0 -1
  921. package/dist/urls.gen.js +0 -8
  922. package/dist/urls.gen.js.map +0 -1
  923. package/dist/urls.js +0 -443
  924. package/dist/urls.js.map +0 -1
  925. package/dist/use-loader.d.ts +0 -127
  926. package/dist/use-loader.d.ts.map +0 -1
  927. package/dist/use-loader.js +0 -237
  928. package/dist/use-loader.js.map +0 -1
  929. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  930. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  931. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  932. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  933. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  934. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  935. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  936. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  937. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  938. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  939. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  940. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  941. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  942. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  943. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  944. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  945. package/dist/vite/ast-handler-extract.d.ts +0 -49
  946. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  947. package/dist/vite/ast-handler-extract.js +0 -249
  948. package/dist/vite/ast-handler-extract.js.map +0 -1
  949. package/dist/vite/expose-action-id.d.ts +0 -19
  950. package/dist/vite/expose-action-id.d.ts.map +0 -1
  951. package/dist/vite/expose-action-id.js +0 -250
  952. package/dist/vite/expose-action-id.js.map +0 -1
  953. package/dist/vite/expose-id-utils.d.ts +0 -69
  954. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  955. package/dist/vite/expose-id-utils.js +0 -289
  956. package/dist/vite/expose-id-utils.js.map +0 -1
  957. package/dist/vite/expose-internal-ids.d.ts +0 -22
  958. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  959. package/dist/vite/expose-internal-ids.js +0 -886
  960. package/dist/vite/expose-internal-ids.js.map +0 -1
  961. package/dist/vite/index.d.ts +0 -149
  962. package/dist/vite/index.d.ts.map +0 -1
  963. package/dist/vite/index.js.map +0 -1
  964. package/dist/vite/index.named-routes.gen.ts +0 -103
  965. package/dist/vite/package-resolution.d.ts +0 -43
  966. package/dist/vite/package-resolution.d.ts.map +0 -1
  967. package/dist/vite/package-resolution.js +0 -112
  968. package/dist/vite/package-resolution.js.map +0 -1
  969. package/dist/vite/virtual-entries.d.ts +0 -25
  970. package/dist/vite/virtual-entries.d.ts.map +0 -1
  971. package/dist/vite/virtual-entries.js +0 -110
  972. package/dist/vite/virtual-entries.js.map +0 -1
package/dist/router.d.ts DELETED
@@ -1,753 +0,0 @@
1
- import type { ComponentType } from "react";
2
- import { type ReactNode } from "react";
3
- import type { SegmentCacheStore } from "./cache/types.js";
4
- import { type SerializedManifest } from "./debug.js";
5
- import { type ReverseFunction, type PrefixRoutePatterns } from "./reverse.js";
6
- import { type RouteHandlers } from "./route-definition.js";
7
- import type { AllUseItems } from "./route-types.js";
8
- import type { UrlPatterns } from "./urls.js";
9
- import type { ErrorBoundaryHandler, ErrorInfo, HandlerContext, MatchResult, NotFoundBoundaryHandler, OnErrorCallback, RouteDefinition } from "./types";
10
- import type { NonceProvider } from "./rsc/types.js";
11
- import { type ExecutionContext } from "./server/request-context.js";
12
- import type { SerializedSegmentData, SegmentHandleData } from "./cache/types.js";
13
- import { type MiddlewareEntry, type MiddlewareFn } from "./router/middleware.js";
14
- /**
15
- * Props passed to the root layout component
16
- */
17
- export interface RootLayoutProps {
18
- children: ReactNode;
19
- }
20
- /**
21
- * Router configuration options
22
- */
23
- /**
24
- * Brand marker for identifying router instances at build time.
25
- * Used by the Vite plugin to auto-discover routers from module exports.
26
- */
27
- export declare const RSC_ROUTER_BRAND: "__rsc_router__";
28
- /**
29
- * Global registry of all router instances created via createRouter().
30
- * Each router is keyed by its id (auto-generated or user-provided).
31
- * Used by the Vite plugin at build time to discover routers and extract
32
- * manifests, prefix trees, and pre-render candidates.
33
- */
34
- export declare const RouterRegistry: Map<string, RSCRouter<any, any>>;
35
- export interface RSCRouterOptions<TEnv = any> {
36
- /**
37
- * Unique identifier for this router instance.
38
- * Used to namespace static output files and route maps.
39
- * Auto-generated if not provided.
40
- */
41
- id?: string;
42
- /**
43
- * Injected by the Vite transform at compile time.
44
- * Hash of filename + line number for stable cross-environment ID.
45
- * @internal
46
- */
47
- $$id?: string;
48
- /**
49
- * Enable performance metrics collection
50
- * When enabled, metrics are output to console and available via Server-Timing header
51
- */
52
- debugPerformance?: boolean;
53
- /**
54
- * Allow the `?__debug_manifest` query parameter to return route manifest data as JSON.
55
- * In development mode this is always enabled regardless of this setting.
56
- * Defaults to true. Set to false to disable in production.
57
- * @internal
58
- */
59
- allowDebugManifest?: boolean;
60
- /**
61
- * Document component that wraps the entire application.
62
- *
63
- * This component provides the HTML structure for your app and wraps
64
- * both normal route content AND error states, preventing the app shell
65
- * from unmounting during errors (avoids FOUC).
66
- *
67
- * Must be a client component ("use client") that accepts { children }.
68
- *
69
- * If not provided, a default document with basic HTML structure is used:
70
- * `<html><head><meta charset/viewport></head><body>{children}</body></html>`
71
- *
72
- * @example
73
- * ```typescript
74
- * // components/Document.tsx
75
- * "use client";
76
- * export function Document({ children }: { children: ReactNode }) {
77
- * return (
78
- * <html lang="en">
79
- * <head>
80
- * <link rel="stylesheet" href="/styles.css" />
81
- * </head>
82
- * <body>
83
- * <nav>...</nav>
84
- * {children}
85
- * </body>
86
- * </html>
87
- * );
88
- * }
89
- *
90
- * // router.tsx
91
- * const router = createRouter<AppEnv>({
92
- * document: Document,
93
- * });
94
- * ```
95
- */
96
- document?: ComponentType<RootLayoutProps>;
97
- /**
98
- * Default error boundary fallback used when no error boundary is defined in the route tree
99
- * If not provided, errors will propagate and crash the request
100
- */
101
- defaultErrorBoundary?: ReactNode | ErrorBoundaryHandler;
102
- /**
103
- * Default not-found boundary fallback used when no notFoundBoundary is defined in the route tree
104
- * If not provided, DataNotFoundError will be treated as a regular error
105
- */
106
- defaultNotFoundBoundary?: ReactNode | NotFoundBoundaryHandler;
107
- /**
108
- * Component to render when no route matches the requested URL.
109
- *
110
- * This is rendered within your document/app shell with a 404 status code.
111
- * Use this for a custom 404 page that maintains your app's look and feel.
112
- *
113
- * If not provided, a default "Page not found" component is rendered.
114
- *
115
- * Can be a static ReactNode or a function receiving the pathname.
116
- *
117
- * @example
118
- * ```typescript
119
- * // Simple static component
120
- * const router = createRouter<AppEnv>({
121
- * document: Document,
122
- * notFound: <NotFound404 />,
123
- * });
124
- *
125
- * // Dynamic component with pathname
126
- * const router = createRouter<AppEnv>({
127
- * document: Document,
128
- * notFound: ({ pathname }) => (
129
- * <div>
130
- * <h1>404 - Not Found</h1>
131
- * <p>No page exists at {pathname}</p>
132
- * <a href="/">Go home</a>
133
- * </div>
134
- * ),
135
- * });
136
- * ```
137
- */
138
- notFound?: ReactNode | ((props: {
139
- pathname: string;
140
- }) => ReactNode);
141
- /**
142
- * Callback invoked when an error occurs during request handling.
143
- *
144
- * This callback is for notification/logging purposes - it cannot modify
145
- * the error handling flow. Use errorBoundary() in route definitions to
146
- * customize error UI.
147
- *
148
- * The callback receives comprehensive context about the error including:
149
- * - The error itself
150
- * - Phase where it occurred (routing, middleware, loader, handler, etc.)
151
- * - Request info (URL, method, params)
152
- * - Route info (routeKey, segmentId)
153
- * - Environment/bindings
154
- * - Duration from request start
155
- *
156
- * @example
157
- * ```typescript
158
- * const router = createRouter<AppEnv>({
159
- * onError: (context) => {
160
- * // Send to error tracking service
161
- * Sentry.captureException(context.error, {
162
- * tags: {
163
- * phase: context.phase,
164
- * route: context.routeKey,
165
- * },
166
- * extra: {
167
- * url: context.url.toString(),
168
- * params: context.params,
169
- * duration: context.duration,
170
- * },
171
- * });
172
- * },
173
- * });
174
- * ```
175
- */
176
- onError?: OnErrorCallback<TEnv>;
177
- /**
178
- * Cache store for segment caching.
179
- *
180
- * When provided, enables route-level caching via cache() boundaries.
181
- * The store handles persistence (memory, KV, Redis, etc.).
182
- *
183
- * Can be a static config or a function receiving env for runtime bindings.
184
- *
185
- * @example Static config
186
- * ```typescript
187
- * import { MemorySegmentCacheStore } from "rsc-router/rsc";
188
- *
189
- * const router = createRouter({
190
- * cache: {
191
- * store: new MemorySegmentCacheStore({ defaults: { ttl: 60 } }),
192
- * },
193
- * });
194
- * ```
195
- *
196
- * @example Dynamic config with env (e.g., Cloudflare Workers with ExecutionContext)
197
- * ```typescript
198
- * const router = createRouter<AppEnv>({
199
- * cache: (env) => ({
200
- * store: new CFCacheStore({
201
- * defaults: { ttl: 60 },
202
- * ctx: env.ctx, // ExecutionContext for non-blocking writes
203
- * }),
204
- * }),
205
- * });
206
- * ```
207
- */
208
- cache?: {
209
- store: SegmentCacheStore;
210
- enabled?: boolean;
211
- } | ((env: TEnv & {
212
- ctx?: ExecutionContext;
213
- }) => {
214
- store: SegmentCacheStore;
215
- enabled?: boolean;
216
- });
217
- /**
218
- * Theme configuration for automatic theme management.
219
- *
220
- * When provided, enables:
221
- * - ctx.theme and ctx.setTheme() in route handlers
222
- * - useTheme() hook for client components
223
- * - FOUC prevention via inline script in MetaTags
224
- * - Automatic ThemeProvider wrapping in NavigationProvider
225
- *
226
- * @example
227
- * ```typescript
228
- * const router = createRouter<AppEnv>({
229
- * theme: {
230
- * defaultTheme: "system",
231
- * themes: ["light", "dark"],
232
- * }
233
- * });
234
- *
235
- * // In route handler:
236
- * route("settings", (ctx) => {
237
- * const theme = ctx.theme; // "light" | "dark" | "system"
238
- * ctx.setTheme("dark"); // Sets cookie
239
- * return <SettingsPage />;
240
- * });
241
- *
242
- * // In client component:
243
- * import { useTheme } from "@rangojs/router/theme";
244
- *
245
- * function ThemeToggle() {
246
- * const { theme, setTheme, themes } = useTheme();
247
- * return <select value={theme} onChange={e => setTheme(e.target.value)}>
248
- * {themes.map(t => <option key={t}>{t}</option>)}
249
- * </select>;
250
- * }
251
- * ```
252
- *
253
- * Use `theme: true` to enable with all defaults.
254
- */
255
- theme?: import("./theme/types.js").ThemeConfig | true;
256
- /**
257
- * URL patterns to register with the router.
258
- *
259
- * Alternative to calling `.routes()` method - allows passing patterns
260
- * directly in the config for a more concise setup.
261
- *
262
- * @example
263
- * ```typescript
264
- * import { urls } from "@rangojs/router/server";
265
- *
266
- * const urlpatterns = urls(({ path, layout }) => [
267
- * path("/", HomePage, { name: "home" }),
268
- * path("/about", AboutPage, { name: "about" }),
269
- * ]);
270
- *
271
- * const router = createRouter<AppEnv>({
272
- * document: Document,
273
- * urls: urlpatterns,
274
- * });
275
- * ```
276
- */
277
- urls?: UrlPatterns<TEnv, any>;
278
- /**
279
- * Injected by the Vite transform at compile time.
280
- * Static import of NamedRoutes from the generated named-routes file.
281
- * Provides O(1) reverse() fallback when lazy includes haven't resolved.
282
- * @internal
283
- */
284
- $$routeNames?: Record<string, string>;
285
- /**
286
- * Nonce provider for Content Security Policy (CSP).
287
- *
288
- * Can be:
289
- * - A function that returns a nonce string
290
- * - A function that returns `true` to auto-generate a nonce
291
- * - Undefined to disable nonce (default)
292
- *
293
- * The nonce will be applied to inline scripts injected by the RSC payload.
294
- * It's also available to middleware via `ctx.get('nonce')`.
295
- *
296
- * @example Auto-generate nonce
297
- * ```tsx
298
- * createRouter({
299
- * nonce: () => true,
300
- * });
301
- * ```
302
- *
303
- * @example Custom nonce from request context
304
- * ```tsx
305
- * createRouter({
306
- * nonce: (request, env) => env.nonce,
307
- * });
308
- * ```
309
- */
310
- nonce?: NonceProvider<TEnv>;
311
- /**
312
- * RSC version string included in metadata.
313
- * The browser sends this back on partial requests to detect version mismatches.
314
- *
315
- * Defaults to the auto-generated VERSION from `@rangojs/router:version` virtual module.
316
- * Only set this if you need a custom versioning strategy.
317
- *
318
- * @default VERSION from @rangojs/router:version
319
- */
320
- version?: string;
321
- /**
322
- * Enable connection warmup to keep TCP+TLS alive after idle periods.
323
- *
324
- * When enabled, the client sends a HEAD request after the user returns
325
- * from an idle period (60s+), prewarming the TLS connection before
326
- * the next navigation.
327
- *
328
- * @default true
329
- */
330
- warmup?: boolean;
331
- }
332
- /**
333
- * Merge route patterns with response types into a single route map.
334
- * Routes with response types get { path, response } objects; others stay as strings.
335
- * Handles both plain string routes and { path, search } object routes.
336
- */
337
- type MergeRoutesWithResponses<TRoutes extends Record<string, unknown>, TResponses> = {
338
- [K in keyof TRoutes]: K extends keyof NonNullable<TResponses> ? unknown extends NonNullable<TResponses>[K] ? TRoutes[K] : TRoutes[K] extends {
339
- readonly path: infer P extends string;
340
- } ? TRoutes[K] & {
341
- readonly response: NonNullable<TResponses>[K];
342
- } : {
343
- readonly path: TRoutes[K] & string;
344
- readonly response: NonNullable<TResponses>[K];
345
- } : TRoutes[K];
346
- };
347
- /**
348
- * Extract the URL pattern from a route entry (string or { path, response } object)
349
- */
350
- type PatternOfEntry<V> = V extends string ? V : V extends {
351
- readonly path: infer P extends string;
352
- } ? P : never;
353
- /**
354
- * Type-level detection of conflicting route keys.
355
- * Extracts keys that exist in both TExisting and TNew but with different URL patterns.
356
- * Returns `never` if no conflicts exist.
357
- * Compares patterns (not full entries) to handle both string and { path, response } values.
358
- *
359
- * @example
360
- * ```typescript
361
- * ConflictingKeys<{ a: "/a" }, { a: "/b" }> // "a" (conflict - same key, different URLs)
362
- * ConflictingKeys<{ a: "/a" }, { a: "/a" }> // never (no conflict - same key and URL)
363
- * ConflictingKeys<{ a: "/a" }, { b: "/b" }> // never (no conflict - different keys)
364
- * ```
365
- */
366
- type ConflictingKeys<TExisting extends Record<string, unknown>, TNew extends Record<string, unknown>> = {
367
- [K in keyof TExisting & keyof TNew]: PatternOfEntry<TExisting[K]> extends PatternOfEntry<TNew[K]> ? PatternOfEntry<TNew[K]> extends PatternOfEntry<TExisting[K]> ? never : K : K;
368
- }[keyof TExisting & keyof TNew];
369
- /**
370
- * Error type returned when route keys conflict.
371
- * Methods require an impossible `never` parameter so TypeScript errors at the call site.
372
- */
373
- type RouteConflictError<TConflicts extends string> = {
374
- __error: `Route key conflict! Key "${TConflicts}" already exists with a different URL pattern.`;
375
- hint: "Route keys must be globally unique. Use prefixed names like 'blog.index' instead of 'index'.";
376
- conflictingKeys: TConflicts;
377
- routes: (__conflict: `Fix route key conflict: "${TConflicts}" is already defined with a different URL pattern`) => never;
378
- map: (__conflict: `Fix route key conflict: "${TConflicts}" is already defined with a different URL pattern`) => never;
379
- };
380
- /**
381
- * Simplified route helpers for inline route definitions.
382
- * Uses TRoutes (Record<string, string>) instead of RouteDefinition.
383
- *
384
- * Note: Some helpers use `any` for context types as a trade-off for simpler usage.
385
- * The main type safety is in the `route` helper which enforces valid route names.
386
- * For full type safety, use the standard map() API with separate handler files.
387
- */
388
- type InlineRouteHelpers<TRoutes extends Record<string, string>, TEnv> = {
389
- /**
390
- * Define a route handler for a specific route pattern
391
- */
392
- route: <K extends keyof TRoutes & string>(name: K, handler: ((ctx: HandlerContext<{}, TEnv>) => ReactNode | Promise<ReactNode>) | ReactNode) => AllUseItems;
393
- /**
394
- * Define a layout that wraps child routes
395
- */
396
- layout: (component: ReactNode | ((ctx: HandlerContext<any, TEnv>) => ReactNode | Promise<ReactNode>), use?: () => AllUseItems[]) => AllUseItems;
397
- /**
398
- * Define parallel routes
399
- */
400
- parallel: (slots: Record<`@${string}`, ReactNode | ((ctx: HandlerContext<any, TEnv>) => ReactNode | Promise<ReactNode>)>, use?: () => AllUseItems[]) => AllUseItems;
401
- /**
402
- * Define route middleware
403
- */
404
- middleware: (fn: (ctx: any, next: () => Promise<void>) => Promise<void>) => AllUseItems;
405
- /**
406
- * Define revalidation handlers
407
- */
408
- revalidate: (fn: (ctx: any) => boolean | Promise<boolean>) => AllUseItems;
409
- /**
410
- * Define data loaders
411
- */
412
- loader: (loader: any, use?: () => AllUseItems[]) => AllUseItems;
413
- /**
414
- * Define loading states
415
- */
416
- loading: (component: ReactNode) => AllUseItems;
417
- /**
418
- * Define error boundaries
419
- */
420
- errorBoundary: (handler: ReactNode | ((props: {
421
- error: Error;
422
- }) => ReactNode)) => AllUseItems;
423
- /**
424
- * Define not found boundaries
425
- */
426
- notFoundBoundary: (handler: ReactNode | ((props: {
427
- pathname: string;
428
- }) => ReactNode)) => AllUseItems;
429
- /**
430
- * Define intercept routes
431
- */
432
- intercept: (name: string, handler: ReactNode | ((ctx: HandlerContext<any, TEnv>) => ReactNode | Promise<ReactNode>), use?: () => AllUseItems[]) => AllUseItems;
433
- /**
434
- * Define when conditions for intercepts
435
- */
436
- when: (condition: (ctx: any) => boolean | Promise<boolean>) => AllUseItems;
437
- /**
438
- * Define cache configuration
439
- */
440
- cache: (config: {
441
- ttl?: number;
442
- swr?: number;
443
- } | false, use?: () => AllUseItems[]) => AllUseItems;
444
- };
445
- /**
446
- * Router builder for chaining .use() and .map()
447
- * TRoutes accumulates all registered route types through the chain
448
- * TLocalRoutes contains the routes for the current .routes() call (for inline handler typing)
449
- */
450
- interface RouteBuilder<T extends RouteDefinition, TEnv, TRoutes extends Record<string, unknown>, TLocalRoutes extends Record<string, string> = Record<string, string>> {
451
- /**
452
- * Add middleware scoped to this mount
453
- * Called between .routes() and .map()
454
- *
455
- * @example
456
- * ```typescript
457
- * .routes("/admin", adminRoutes)
458
- * .use(authMiddleware) // All of /admin/*
459
- * .use("/danger/*", superAuth) // Only /admin/danger/*
460
- * .map(() => import("./admin"))
461
- * ```
462
- */
463
- use(patternOrMiddleware: string | MiddlewareFn<TEnv>, middleware?: MiddlewareFn<TEnv>): RouteBuilder<T, TEnv, TRoutes, TLocalRoutes>;
464
- /**
465
- * Map routes to handlers
466
- *
467
- * Supports two patterns:
468
- *
469
- * 1. Lazy loading (code-split):
470
- * ```typescript
471
- * .routes(homeRoutes)
472
- * .map(() => import("./handlers/home"))
473
- * ```
474
- *
475
- * 2. Inline definition:
476
- * ```typescript
477
- * .routes({ index: "/", about: "/about" })
478
- * .map(({ route }) => [
479
- * route("index", () => <HomePage />),
480
- * route("about", () => <AboutPage />),
481
- * ])
482
- * ```
483
- */
484
- map<H extends (helpers: InlineRouteHelpers<TLocalRoutes, TEnv>) => Array<AllUseItems>>(handler: H): RSCRouter<TEnv, TRoutes>;
485
- map(handler: () => Array<AllUseItems> | Promise<{
486
- default: RouteHandlers<TLocalRoutes>;
487
- }> | Promise<RouteHandlers<TLocalRoutes>>): RSCRouter<TEnv, TRoutes>;
488
- /**
489
- * Accumulated route map for typeof extraction
490
- * Used for module augmentation: `type AppRoutes = typeof _router.routeMap`
491
- */
492
- readonly routeMap: TRoutes;
493
- }
494
- /**
495
- * RSC Router interface
496
- * TRoutes accumulates all registered route types through the builder chain
497
- */
498
- export interface RSCRouter<TEnv = any, TRoutes extends Record<string, unknown> = Record<string, string>> {
499
- /**
500
- * Brand marker for build-time discovery.
501
- * The Vite plugin uses this to identify router instances in module exports.
502
- */
503
- readonly __brand: typeof RSC_ROUTER_BRAND;
504
- /**
505
- * Unique identifier for this router instance.
506
- * Used to namespace static output and isolate route maps between routers.
507
- */
508
- readonly id: string;
509
- /**
510
- * Register routes with a prefix
511
- * Route keys stay unchanged, only URL patterns get the prefix applied.
512
- * This enables composable route modules that work regardless of mount point.
513
- *
514
- * @throws Compile-time error if route keys conflict with previously registered routes
515
- */
516
- routes<const TPrefix extends string, const T extends Record<string, string>>(prefix: TPrefix, routes: T): ConflictingKeys<TRoutes, PrefixRoutePatterns<T, TPrefix>> extends never ? RouteBuilder<RouteDefinition, TEnv, TRoutes & PrefixRoutePatterns<T, TPrefix>, T> : RouteConflictError<ConflictingKeys<TRoutes, PrefixRoutePatterns<T, TPrefix>> & string>;
517
- /**
518
- * Register routes without a prefix
519
- * Route types are accumulated through the chain
520
- *
521
- * @throws Compile-time error if route keys conflict with previously registered routes
522
- */
523
- routes<const T extends Record<string, string>>(routes: T): ConflictingKeys<TRoutes, T> extends never ? RouteBuilder<RouteDefinition, TEnv, TRoutes & T, T> : RouteConflictError<ConflictingKeys<TRoutes, T> & string>;
524
- /**
525
- * Register routes using Django-style URL patterns
526
- * This is the new API for @rangojs/router - call once with urls() result
527
- *
528
- * @example
529
- * ```typescript
530
- * createRouter({})
531
- * .routes(urlpatterns) // Single call with urls() result
532
- * ```
533
- */
534
- routes<T extends UrlPatterns<TEnv, any>>(patterns: T): RSCRouter<TEnv, TRoutes & (NonNullable<T["_routes"]> extends Record<string, unknown> ? MergeRoutesWithResponses<NonNullable<T["_routes"]>, T["_responses"]> : Record<string, string>)>;
535
- /**
536
- * Add global middleware that runs on all routes
537
- * Position matters: middleware before any .routes() is global
538
- *
539
- * @example
540
- * ```typescript
541
- * createRouter({ document: RootLayout })
542
- * .use(loggerMiddleware) // All routes
543
- * .use("/api/*", rateLimiter) // Pattern match
544
- * .routes(homeRoutes)
545
- * .map(() => import("./home"))
546
- * ```
547
- */
548
- use(patternOrMiddleware: string | MiddlewareFn<TEnv>, middleware?: MiddlewareFn<TEnv>): RSCRouter<TEnv, TRoutes>;
549
- /**
550
- * Type-safe URL builder for registered routes
551
- * Types are inferred from the accumulated route registrations
552
- * Route keys stay unchanged regardless of mount prefix.
553
- *
554
- * @example
555
- * ```typescript
556
- * // Given: .routes("/shop", { cart: "/cart", detail: "/product/:slug" })
557
- * router.reverse("cart"); // "/shop/cart"
558
- * router.reverse("detail", { slug: "widget" }); // "/shop/product/widget"
559
- * ```
560
- */
561
- reverse: ReverseFunction<TRoutes>;
562
- /**
563
- * Accumulated route map for typeof extraction
564
- * Used for module augmentation: `type AppRoutes = typeof _router.routeMap`
565
- *
566
- * @example
567
- * ```typescript
568
- * const _router = createRouter<AppEnv>()
569
- * .routes(homeRoutes).map(() => import('./home'))
570
- * .routes('/shop', shopRoutes).map(() => import('./shop'));
571
- *
572
- * type AppRoutes = typeof _router.routeMap;
573
- *
574
- * declare global {
575
- * namespace RSCRouter {
576
- * interface RegisteredRoutes extends AppRoutes {}
577
- * }
578
- * }
579
- * ```
580
- */
581
- readonly routeMap: TRoutes;
582
- /**
583
- * Root layout component that wraps the entire application
584
- * Access this to pass to renderSegments
585
- */
586
- readonly rootLayout?: ComponentType<RootLayoutProps>;
587
- /**
588
- * Error callback for monitoring/alerting
589
- * Called when errors occur in loaders, actions, or routes
590
- */
591
- readonly onError?: RSCRouterOptions<TEnv>["onError"];
592
- /**
593
- * Cache configuration (for internal use by RSC handler)
594
- */
595
- readonly cache?: RSCRouterOptions<TEnv>["cache"];
596
- /**
597
- * Not found component to render when no route matches (for internal use by RSC handler)
598
- */
599
- readonly notFound?: RSCRouterOptions<TEnv>["notFound"];
600
- /**
601
- * Resolved theme configuration (null if theme not enabled)
602
- * Used by NavigationProvider to include ThemeProvider and by MetaTags to render theme script
603
- */
604
- readonly themeConfig: import("./theme/types.js").ResolvedThemeConfig | null;
605
- /**
606
- * Whether connection warmup is enabled.
607
- * When true, the client sends HEAD /?_rsc_warmup after idle periods
608
- * and the server responds with 204 No Content.
609
- */
610
- readonly warmupEnabled: boolean;
611
- /**
612
- * Whether ?__debug_manifest is allowed in production.
613
- * Always enabled in development.
614
- * @internal
615
- */
616
- readonly allowDebugManifest: boolean;
617
- /**
618
- * App-level middleware entries (for internal use by RSC handler)
619
- * These wrap the entire request/response cycle
620
- */
621
- readonly middleware: MiddlewareEntry<TEnv>[];
622
- /**
623
- * Nonce provider for CSP (for internal use by createHandler)
624
- */
625
- readonly nonce?: NonceProvider<TEnv>;
626
- /**
627
- * RSC version string (for internal use by createHandler)
628
- */
629
- readonly version?: string;
630
- /**
631
- * URL patterns reference for build-time manifest generation
632
- * @internal
633
- */
634
- readonly urlpatterns?: UrlPatterns<TEnv, any>;
635
- /**
636
- * Source file path where createRouter() was called.
637
- * Set via Error.stack parsing at construction time.
638
- * Used by the Vite plugin to write per-router named-routes.gen.ts files.
639
- * @internal
640
- */
641
- readonly __sourceFile?: string;
642
- match(request: Request, context: TEnv): Promise<MatchResult>;
643
- /**
644
- * Build-time pre-render match. Resolves segments with a BuildContext
645
- * (no request/env/headers/cookies), skipping middleware and loaders.
646
- * Used by the Vite plugin to collect pre-render data at build time.
647
- * @internal
648
- */
649
- matchForPrerender(pathname: string, params: Record<string, string>): Promise<{
650
- segments: SerializedSegmentData[];
651
- handles: Record<string, SegmentHandleData>;
652
- routeName: string;
653
- params: Record<string, string>;
654
- } | null>;
655
- /**
656
- * Preview match - returns route middleware without segment resolution.
657
- * Also returns responseType and handler for response routes (non-RSC short-circuit).
658
- */
659
- previewMatch(request: Request, context: TEnv): Promise<{
660
- routeMiddleware?: Array<{
661
- handler: import("./router/middleware.js").MiddlewareFn;
662
- params: Record<string, string>;
663
- }>;
664
- responseType?: string;
665
- handler?: Function;
666
- params?: Record<string, string>;
667
- negotiated?: boolean;
668
- } | null>;
669
- matchPartial(request: Request, context: TEnv, actionContext?: {
670
- actionId?: string;
671
- actionUrl?: URL;
672
- actionResult?: any;
673
- formData?: FormData;
674
- }): Promise<MatchResult | null>;
675
- /**
676
- * Match an error to the nearest error boundary and return error segments
677
- *
678
- * Used when an action or other operation fails and we need to render
679
- * the error boundary UI. Finds the nearest errorBoundary in the route tree
680
- * for the current URL and renders it with the error info.
681
- *
682
- * @param request - The current request (used to match the route)
683
- * @param context - Environment context
684
- * @param error - The error that occurred
685
- * @param segmentType - Type of segment where error occurred (default: "route")
686
- * @returns MatchResult with error segment, or null if no error boundary found
687
- */
688
- matchError(request: Request, context: TEnv, error: unknown, segmentType?: ErrorInfo["segmentType"]): Promise<MatchResult | null>;
689
- /**
690
- * @internal
691
- * Debug utility to serialize the manifest for inspection
692
- * Returns a JSON-friendly representation of all routes and layouts
693
- */
694
- debugManifest(): Promise<SerializedManifest>;
695
- /**
696
- * Handle an RSC request.
697
- *
698
- * Uses the router's configuration (nonce, version, cache) automatically.
699
- * The handler is lazily created on first call.
700
- *
701
- * @example Cloudflare Workers
702
- * ```tsx
703
- * import { router } from "./router";
704
- *
705
- * export default { fetch: router.fetch };
706
- * ```
707
- *
708
- * @example Direct export
709
- * ```tsx
710
- * const router = createRouter({
711
- * document: Document,
712
- * urls: urlpatterns,
713
- * nonce: () => true,
714
- * });
715
- *
716
- * export const fetch = router.fetch;
717
- * ```
718
- */
719
- fetch(request: Request, env: TEnv & {
720
- ctx?: ExecutionContext;
721
- }): Promise<Response>;
722
- }
723
- /**
724
- * Create an RSC router with generic context type
725
- * Route types are accumulated automatically through the builder chain
726
- *
727
- * @example
728
- * ```typescript
729
- * interface AppContext {
730
- * db: Database;
731
- * user?: User;
732
- * }
733
- *
734
- * const router = createRouter<AppContext>({
735
- * debugPerformance: true // Enable metrics
736
- * });
737
- *
738
- * // Route types accumulate through the chain - no module augmentation needed!
739
- * // Keys stay unchanged, only URL patterns get the prefix
740
- * router
741
- * .routes(homeRoutes) // accumulates homeRoutes
742
- * .map(() => import('./home'))
743
- * .routes('/shop', shopRoutes) // accumulates shopRoutes with prefixed URLs
744
- * .map(() => import('./shop'));
745
- *
746
- * // router.reverse now has type-safe autocomplete for all registered routes
747
- * // Given shopRoutes = { cart: "/cart" }, reverse uses original key:
748
- * router.reverse("cart"); // "/shop/cart"
749
- * ```
750
- */
751
- export declare function createRouter<TEnv = any>(options?: RSCRouterOptions<TEnv>): RSCRouter<TEnv, {}>;
752
- export {};
753
- //# sourceMappingURL=router.d.ts.map