@rangojs/router 0.0.0-experimental.760a71d9 → 0.0.0-experimental.77ed8945

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 (1060) hide show
  1. package/README.md +196 -43
  2. package/dist/bin/rango.js +269 -96
  3. package/dist/vite/index.js +2629 -908
  4. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  5. package/package.json +13 -8
  6. package/skills/api-client/SKILL.md +211 -0
  7. package/skills/breadcrumbs/SKILL.md +3 -1
  8. package/skills/bundle-analysis/SKILL.md +159 -0
  9. package/skills/cache-guide/SKILL.md +243 -21
  10. package/skills/caching/SKILL.md +118 -2
  11. package/skills/composability/SKILL.md +27 -2
  12. package/skills/css/SKILL.md +76 -0
  13. package/skills/document-cache/SKILL.md +78 -55
  14. package/skills/handler-use/SKILL.md +364 -0
  15. package/skills/hooks/SKILL.md +229 -20
  16. package/skills/host-router/SKILL.md +66 -20
  17. package/skills/i18n/SKILL.md +276 -0
  18. package/skills/intercept/SKILL.md +46 -4
  19. package/skills/layout/SKILL.md +28 -7
  20. package/skills/links/SKILL.md +249 -17
  21. package/skills/loader/SKILL.md +273 -53
  22. package/skills/middleware/SKILL.md +49 -12
  23. package/skills/migrate-nextjs/SKILL.md +562 -0
  24. package/skills/migrate-react-router/SKILL.md +769 -0
  25. package/skills/mime-routes/SKILL.md +27 -0
  26. package/skills/observability/SKILL.md +137 -0
  27. package/skills/parallel/SKILL.md +138 -6
  28. package/skills/prerender/SKILL.md +123 -100
  29. package/skills/rango/SKILL.md +238 -22
  30. package/skills/react-compiler/SKILL.md +168 -0
  31. package/skills/response-routes/SKILL.md +122 -47
  32. package/skills/route/SKILL.md +88 -4
  33. package/skills/router-setup/SKILL.md +90 -5
  34. package/skills/server-actions/SKILL.md +751 -0
  35. package/skills/streams-and-websockets/SKILL.md +283 -0
  36. package/skills/tailwind/SKILL.md +27 -3
  37. package/skills/typesafety/SKILL.md +329 -27
  38. package/skills/use-cache/SKILL.md +34 -5
  39. package/skills/view-transitions/SKILL.md +294 -0
  40. package/src/__augment-tests__/augment.ts +81 -0
  41. package/src/__augment-tests__/augmented.check.ts +116 -0
  42. package/src/__internal.ts +1 -1
  43. package/src/browser/action-coordinator.ts +53 -36
  44. package/src/browser/app-shell.ts +39 -0
  45. package/src/browser/app-version.ts +14 -0
  46. package/src/browser/event-controller.ts +86 -70
  47. package/src/browser/history-state.ts +21 -0
  48. package/src/browser/index.ts +3 -3
  49. package/src/browser/navigation-bridge.ts +52 -13
  50. package/src/browser/navigation-client.ts +159 -85
  51. package/src/browser/navigation-store.ts +50 -16
  52. package/src/browser/navigation-transaction.ts +10 -28
  53. package/src/browser/partial-update.ts +77 -30
  54. package/src/browser/prefetch/cache.ts +201 -44
  55. package/src/browser/prefetch/fetch.ts +245 -39
  56. package/src/browser/prefetch/queue.ts +92 -29
  57. package/src/browser/prefetch/resource-ready.ts +77 -0
  58. package/src/browser/rango-state.ts +37 -13
  59. package/src/browser/react/Link.tsx +72 -8
  60. package/src/browser/react/NavigationProvider.tsx +86 -33
  61. package/src/browser/react/context.ts +7 -2
  62. package/src/browser/react/filter-segment-order.ts +51 -7
  63. package/src/browser/react/index.ts +3 -0
  64. package/src/browser/react/location-state-shared.ts +175 -4
  65. package/src/browser/react/location-state.ts +39 -13
  66. package/src/browser/react/use-handle.ts +23 -64
  67. package/src/browser/react/use-navigation.ts +22 -2
  68. package/src/browser/react/use-params.ts +20 -8
  69. package/src/browser/react/use-reverse.ts +106 -0
  70. package/src/browser/react/use-router.ts +44 -10
  71. package/src/browser/react/use-segments.ts +11 -8
  72. package/src/browser/response-adapter.ts +52 -1
  73. package/src/browser/rsc-router.tsx +94 -22
  74. package/src/browser/scroll-restoration.ts +29 -19
  75. package/src/browser/segment-reconciler.ts +36 -14
  76. package/src/browser/segment-structure-assert.ts +2 -2
  77. package/src/browser/server-action-bridge.ts +52 -36
  78. package/src/browser/types.ts +37 -5
  79. package/src/build/collect-fallback-refs.ts +107 -0
  80. package/src/build/generate-manifest.ts +65 -40
  81. package/src/build/generate-route-types.ts +5 -0
  82. package/src/build/index.ts +8 -1
  83. package/src/build/prefix-tree-utils.ts +123 -0
  84. package/src/build/route-trie.ts +95 -25
  85. package/src/build/route-types/codegen.ts +4 -4
  86. package/src/build/route-types/include-resolution.ts +9 -2
  87. package/src/build/route-types/per-module-writer.ts +7 -4
  88. package/src/build/route-types/router-processing.ts +266 -86
  89. package/src/build/route-types/scan-filter.ts +9 -2
  90. package/src/build/route-types/source-scan.ts +118 -0
  91. package/src/build/runtime-discovery.ts +9 -20
  92. package/src/cache/cache-runtime.ts +17 -5
  93. package/src/cache/cache-scope.ts +97 -54
  94. package/src/cache/cf/cf-cache-store.ts +502 -32
  95. package/src/cache/cf/index.ts +3 -0
  96. package/src/cache/handle-snapshot.ts +103 -0
  97. package/src/cache/index.ts +3 -0
  98. package/src/cache/memory-segment-store.ts +3 -2
  99. package/src/cache/taint.ts +55 -0
  100. package/src/cache/types.ts +10 -6
  101. package/src/client.rsc.tsx +3 -0
  102. package/src/client.tsx +98 -261
  103. package/src/context-var.ts +72 -2
  104. package/src/decode-loader-results.ts +36 -0
  105. package/src/errors.ts +30 -4
  106. package/src/handle.ts +43 -5
  107. package/src/host/index.ts +2 -2
  108. package/src/host/router.ts +129 -57
  109. package/src/host/types.ts +31 -2
  110. package/src/host/utils.ts +1 -1
  111. package/src/href-client.ts +140 -21
  112. package/src/index.rsc.ts +13 -7
  113. package/src/index.ts +62 -13
  114. package/src/loader-store.ts +500 -0
  115. package/src/loader.rsc.ts +2 -5
  116. package/src/loader.ts +3 -10
  117. package/src/missing-id-error.ts +68 -0
  118. package/src/outlet-context.ts +1 -1
  119. package/src/prerender/store.ts +14 -11
  120. package/src/prerender.ts +141 -80
  121. package/src/response-utils.ts +37 -0
  122. package/src/reverse.ts +65 -15
  123. package/src/route-content-wrapper.tsx +6 -28
  124. package/src/route-definition/dsl-helpers.ts +411 -261
  125. package/src/route-definition/helper-factories.ts +29 -139
  126. package/src/route-definition/helpers-types.ts +110 -34
  127. package/src/route-definition/index.ts +3 -0
  128. package/src/route-definition/redirect.ts +9 -1
  129. package/src/route-definition/resolve-handler-use.ts +155 -0
  130. package/src/route-definition/use-item-types.ts +32 -0
  131. package/src/route-types.ts +37 -41
  132. package/src/router/content-negotiation.ts +113 -1
  133. package/src/router/error-handling.ts +1 -1
  134. package/src/router/find-match.ts +54 -6
  135. package/src/router/handler-context.ts +77 -38
  136. package/src/router/intercept-resolution.ts +13 -22
  137. package/src/router/lazy-includes.ts +41 -22
  138. package/src/router/loader-resolution.ts +203 -22
  139. package/src/router/manifest.ts +41 -19
  140. package/src/router/match-api.ts +128 -192
  141. package/src/router/match-handlers.ts +1 -0
  142. package/src/router/match-middleware/background-revalidation.ts +12 -1
  143. package/src/router/match-middleware/cache-lookup.ts +95 -106
  144. package/src/router/match-middleware/cache-store.ts +22 -4
  145. package/src/router/match-middleware/segment-resolution.ts +53 -0
  146. package/src/router/match-result.ts +103 -4
  147. package/src/router/metrics.ts +1 -1
  148. package/src/router/middleware-types.ts +21 -34
  149. package/src/router/middleware.ts +101 -89
  150. package/src/router/navigation-snapshot.ts +182 -0
  151. package/src/router/pattern-matching.ts +116 -19
  152. package/src/router/prerender-match.ts +147 -22
  153. package/src/router/preview-match.ts +32 -102
  154. package/src/router/request-classification.ts +313 -0
  155. package/src/router/revalidation.ts +58 -2
  156. package/src/router/route-snapshot.ts +245 -0
  157. package/src/router/router-context.ts +1 -0
  158. package/src/router/router-interfaces.ts +83 -35
  159. package/src/router/router-options.ts +61 -11
  160. package/src/router/router-registry.ts +2 -5
  161. package/src/router/segment-resolution/fresh.ts +105 -13
  162. package/src/router/segment-resolution/helpers.ts +29 -24
  163. package/src/router/segment-resolution/revalidation.ts +236 -112
  164. package/src/router/segment-resolution/static-store.ts +19 -5
  165. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  166. package/src/router/substitute-pattern-params.ts +56 -0
  167. package/src/router/trie-matching.ts +40 -16
  168. package/src/router/types.ts +9 -0
  169. package/src/router/url-params.ts +49 -0
  170. package/src/router.ts +90 -29
  171. package/src/rsc/handler-context.ts +2 -2
  172. package/src/rsc/handler.ts +461 -380
  173. package/src/rsc/helpers.ts +72 -43
  174. package/src/rsc/index.ts +1 -1
  175. package/src/rsc/loader-fetch.ts +23 -3
  176. package/src/rsc/manifest-init.ts +33 -42
  177. package/src/rsc/origin-guard.ts +30 -10
  178. package/src/rsc/progressive-enhancement.ts +18 -2
  179. package/src/rsc/response-error.ts +79 -12
  180. package/src/rsc/response-route-handler.ts +76 -61
  181. package/src/rsc/rsc-rendering.ts +51 -48
  182. package/src/rsc/runtime-warnings.ts +9 -10
  183. package/src/rsc/server-action.ts +41 -39
  184. package/src/rsc/ssr-setup.ts +18 -2
  185. package/src/rsc/types.ts +17 -3
  186. package/src/search-params.ts +4 -4
  187. package/src/segment-content-promise.ts +67 -0
  188. package/src/segment-loader-promise.ts +122 -0
  189. package/src/segment-system.tsx +132 -116
  190. package/src/serialize.ts +243 -0
  191. package/src/server/context.ts +222 -51
  192. package/src/server/cookie-store.ts +28 -4
  193. package/src/server/handle-store.ts +19 -0
  194. package/src/server/loader-registry.ts +9 -8
  195. package/src/server/request-context.ts +223 -57
  196. package/src/ssr/index.tsx +8 -1
  197. package/src/static-handler.ts +19 -7
  198. package/src/types/cache-types.ts +4 -4
  199. package/src/types/global-namespace.ts +39 -26
  200. package/src/types/handler-context.ts +103 -67
  201. package/src/types/index.ts +1 -0
  202. package/src/types/loader-types.ts +44 -15
  203. package/src/types/request-scope.ts +126 -0
  204. package/src/types/route-entry.ts +12 -1
  205. package/src/types/segments.ts +36 -2
  206. package/src/urls/include-helper.ts +34 -67
  207. package/src/urls/index.ts +1 -5
  208. package/src/urls/path-helper-types.ts +56 -9
  209. package/src/urls/path-helper.ts +63 -63
  210. package/src/urls/pattern-types.ts +48 -19
  211. package/src/urls/response-types.ts +25 -22
  212. package/src/urls/type-extraction.ts +58 -139
  213. package/src/urls/urls-function.ts +1 -5
  214. package/src/use-loader.tsx +487 -44
  215. package/src/vite/debug.ts +185 -0
  216. package/src/vite/discovery/bundle-postprocess.ts +34 -37
  217. package/src/vite/discovery/discover-routers.ts +110 -75
  218. package/src/vite/discovery/discovery-errors.ts +194 -0
  219. package/src/vite/discovery/gate-state.ts +171 -0
  220. package/src/vite/discovery/prerender-collection.ts +193 -98
  221. package/src/vite/discovery/route-types-writer.ts +40 -84
  222. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  223. package/src/vite/discovery/state.ts +46 -4
  224. package/src/vite/discovery/virtual-module-codegen.ts +13 -23
  225. package/src/vite/index.ts +6 -0
  226. package/src/vite/plugin-types.ts +126 -4
  227. package/src/vite/plugins/cjs-to-esm.ts +8 -7
  228. package/src/vite/plugins/client-ref-dedup.ts +16 -0
  229. package/src/vite/plugins/client-ref-hashing.ts +28 -5
  230. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  231. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  232. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  233. package/src/vite/plugins/expose-action-id.ts +54 -30
  234. package/src/vite/plugins/expose-id-utils.ts +24 -8
  235. package/src/vite/plugins/expose-ids/export-analysis.ts +100 -20
  236. package/src/vite/plugins/expose-ids/handler-transform.ts +12 -35
  237. package/src/vite/plugins/expose-ids/loader-transform.ts +3 -5
  238. package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
  239. package/src/vite/plugins/expose-internal-ids.ts +544 -317
  240. package/src/vite/plugins/performance-tracks.ts +92 -0
  241. package/src/vite/plugins/refresh-cmd.ts +88 -26
  242. package/src/vite/plugins/use-cache-transform.ts +65 -50
  243. package/src/vite/plugins/version-injector.ts +39 -23
  244. package/src/vite/plugins/version-plugin.ts +59 -2
  245. package/src/vite/plugins/virtual-entries.ts +2 -2
  246. package/src/vite/rango.ts +130 -26
  247. package/src/vite/router-discovery.ts +923 -133
  248. package/src/vite/utils/ast-handler-extract.ts +15 -15
  249. package/src/vite/utils/banner.ts +1 -1
  250. package/src/vite/utils/bundle-analysis.ts +4 -2
  251. package/src/vite/utils/client-chunks.ts +190 -0
  252. package/src/vite/utils/forward-user-plugins.ts +193 -0
  253. package/src/vite/utils/manifest-utils.ts +8 -59
  254. package/src/vite/utils/package-resolution.ts +41 -1
  255. package/src/vite/utils/prerender-utils.ts +38 -5
  256. package/src/vite/utils/shared-utils.ts +109 -27
  257. package/dist/__internal.d.ts +0 -83
  258. package/dist/__internal.d.ts.map +0 -1
  259. package/dist/__internal.js +0 -19
  260. package/dist/__internal.js.map +0 -1
  261. package/dist/__mocks__/version.d.ts +0 -7
  262. package/dist/__mocks__/version.d.ts.map +0 -1
  263. package/dist/__mocks__/version.js +0 -7
  264. package/dist/__mocks__/version.js.map +0 -1
  265. package/dist/__tests__/client-href.test.d.ts +0 -2
  266. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  267. package/dist/__tests__/client-href.test.js +0 -74
  268. package/dist/__tests__/client-href.test.js.map +0 -1
  269. package/dist/__tests__/component-utils.test.d.ts +0 -2
  270. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  271. package/dist/__tests__/component-utils.test.js +0 -51
  272. package/dist/__tests__/component-utils.test.js.map +0 -1
  273. package/dist/__tests__/event-controller.test.d.ts +0 -2
  274. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  275. package/dist/__tests__/event-controller.test.js +0 -538
  276. package/dist/__tests__/event-controller.test.js.map +0 -1
  277. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  278. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  279. package/dist/__tests__/helpers/route-tree.js +0 -374
  280. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  281. package/dist/__tests__/match-result.test.d.ts +0 -2
  282. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  283. package/dist/__tests__/match-result.test.js +0 -154
  284. package/dist/__tests__/match-result.test.js.map +0 -1
  285. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  286. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  287. package/dist/__tests__/navigation-store.test.js +0 -440
  288. package/dist/__tests__/navigation-store.test.js.map +0 -1
  289. package/dist/__tests__/partial-update.test.d.ts +0 -2
  290. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  291. package/dist/__tests__/partial-update.test.js +0 -1009
  292. package/dist/__tests__/partial-update.test.js.map +0 -1
  293. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  294. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  295. package/dist/__tests__/reverse-types.test.js +0 -656
  296. package/dist/__tests__/reverse-types.test.js.map +0 -1
  297. package/dist/__tests__/route-definition.test.d.ts +0 -2
  298. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  299. package/dist/__tests__/route-definition.test.js +0 -55
  300. package/dist/__tests__/route-definition.test.js.map +0 -1
  301. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  302. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  303. package/dist/__tests__/router-helpers.test.js +0 -377
  304. package/dist/__tests__/router-helpers.test.js.map +0 -1
  305. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  306. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  307. package/dist/__tests__/router-integration-2.test.js +0 -426
  308. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  309. package/dist/__tests__/router-integration.test.d.ts +0 -2
  310. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  311. package/dist/__tests__/router-integration.test.js +0 -1051
  312. package/dist/__tests__/router-integration.test.js.map +0 -1
  313. package/dist/__tests__/search-params.test.d.ts +0 -5
  314. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  315. package/dist/__tests__/search-params.test.js +0 -306
  316. package/dist/__tests__/search-params.test.js.map +0 -1
  317. package/dist/__tests__/segment-system.test.d.ts +0 -2
  318. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  319. package/dist/__tests__/segment-system.test.js +0 -627
  320. package/dist/__tests__/segment-system.test.js.map +0 -1
  321. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  322. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  323. package/dist/__tests__/static-handler-types.test.js +0 -63
  324. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  325. package/dist/__tests__/urls.test.d.ts +0 -2
  326. package/dist/__tests__/urls.test.d.ts.map +0 -1
  327. package/dist/__tests__/urls.test.js +0 -421
  328. package/dist/__tests__/urls.test.js.map +0 -1
  329. package/dist/__tests__/use-mount.test.d.ts +0 -2
  330. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  331. package/dist/__tests__/use-mount.test.js +0 -35
  332. package/dist/__tests__/use-mount.test.js.map +0 -1
  333. package/dist/bin/rango.d.ts +0 -2
  334. package/dist/bin/rango.d.ts.map +0 -1
  335. package/dist/bin/rango.js.map +0 -1
  336. package/dist/browser/event-controller.d.ts +0 -191
  337. package/dist/browser/event-controller.d.ts.map +0 -1
  338. package/dist/browser/event-controller.js +0 -559
  339. package/dist/browser/event-controller.js.map +0 -1
  340. package/dist/browser/index.d.ts +0 -2
  341. package/dist/browser/index.d.ts.map +0 -1
  342. package/dist/browser/index.js +0 -14
  343. package/dist/browser/index.js.map +0 -1
  344. package/dist/browser/link-interceptor.d.ts +0 -38
  345. package/dist/browser/link-interceptor.d.ts.map +0 -1
  346. package/dist/browser/link-interceptor.js +0 -99
  347. package/dist/browser/link-interceptor.js.map +0 -1
  348. package/dist/browser/logging.d.ts +0 -10
  349. package/dist/browser/logging.d.ts.map +0 -1
  350. package/dist/browser/logging.js +0 -29
  351. package/dist/browser/logging.js.map +0 -1
  352. package/dist/browser/lru-cache.d.ts +0 -17
  353. package/dist/browser/lru-cache.d.ts.map +0 -1
  354. package/dist/browser/lru-cache.js +0 -50
  355. package/dist/browser/lru-cache.js.map +0 -1
  356. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  357. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  358. package/dist/browser/merge-segment-loaders.js +0 -102
  359. package/dist/browser/merge-segment-loaders.js.map +0 -1
  360. package/dist/browser/navigation-bridge.d.ts +0 -102
  361. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  362. package/dist/browser/navigation-bridge.js +0 -708
  363. package/dist/browser/navigation-bridge.js.map +0 -1
  364. package/dist/browser/navigation-client.d.ts +0 -25
  365. package/dist/browser/navigation-client.d.ts.map +0 -1
  366. package/dist/browser/navigation-client.js +0 -157
  367. package/dist/browser/navigation-client.js.map +0 -1
  368. package/dist/browser/navigation-store.d.ts +0 -101
  369. package/dist/browser/navigation-store.d.ts.map +0 -1
  370. package/dist/browser/navigation-store.js +0 -625
  371. package/dist/browser/navigation-store.js.map +0 -1
  372. package/dist/browser/partial-update.d.ts +0 -75
  373. package/dist/browser/partial-update.d.ts.map +0 -1
  374. package/dist/browser/partial-update.js +0 -426
  375. package/dist/browser/partial-update.js.map +0 -1
  376. package/dist/browser/react/Link.d.ts +0 -86
  377. package/dist/browser/react/Link.d.ts.map +0 -1
  378. package/dist/browser/react/Link.js +0 -128
  379. package/dist/browser/react/Link.js.map +0 -1
  380. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  381. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  382. package/dist/browser/react/NavigationProvider.js +0 -216
  383. package/dist/browser/react/NavigationProvider.js.map +0 -1
  384. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  385. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  386. package/dist/browser/react/ScrollRestoration.js +0 -57
  387. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  388. package/dist/browser/react/context.d.ts +0 -46
  389. package/dist/browser/react/context.d.ts.map +0 -1
  390. package/dist/browser/react/context.js +0 -10
  391. package/dist/browser/react/context.js.map +0 -1
  392. package/dist/browser/react/index.d.ts +0 -11
  393. package/dist/browser/react/index.d.ts.map +0 -1
  394. package/dist/browser/react/index.js +0 -22
  395. package/dist/browser/react/index.js.map +0 -1
  396. package/dist/browser/react/location-state-shared.d.ts +0 -63
  397. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  398. package/dist/browser/react/location-state-shared.js +0 -81
  399. package/dist/browser/react/location-state-shared.js.map +0 -1
  400. package/dist/browser/react/location-state.d.ts +0 -23
  401. package/dist/browser/react/location-state.d.ts.map +0 -1
  402. package/dist/browser/react/location-state.js +0 -29
  403. package/dist/browser/react/location-state.js.map +0 -1
  404. package/dist/browser/react/mount-context.d.ts +0 -24
  405. package/dist/browser/react/mount-context.d.ts.map +0 -1
  406. package/dist/browser/react/mount-context.js +0 -24
  407. package/dist/browser/react/mount-context.js.map +0 -1
  408. package/dist/browser/react/use-action.d.ts +0 -64
  409. package/dist/browser/react/use-action.d.ts.map +0 -1
  410. package/dist/browser/react/use-action.js +0 -134
  411. package/dist/browser/react/use-action.js.map +0 -1
  412. package/dist/browser/react/use-client-cache.d.ts +0 -41
  413. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  414. package/dist/browser/react/use-client-cache.js +0 -39
  415. package/dist/browser/react/use-client-cache.js.map +0 -1
  416. package/dist/browser/react/use-handle.d.ts +0 -31
  417. package/dist/browser/react/use-handle.d.ts.map +0 -1
  418. package/dist/browser/react/use-handle.js +0 -144
  419. package/dist/browser/react/use-handle.js.map +0 -1
  420. package/dist/browser/react/use-href.d.ts +0 -33
  421. package/dist/browser/react/use-href.d.ts.map +0 -1
  422. package/dist/browser/react/use-href.js +0 -39
  423. package/dist/browser/react/use-href.js.map +0 -1
  424. package/dist/browser/react/use-link-status.d.ts +0 -37
  425. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  426. package/dist/browser/react/use-link-status.js +0 -99
  427. package/dist/browser/react/use-link-status.js.map +0 -1
  428. package/dist/browser/react/use-mount.d.ts +0 -25
  429. package/dist/browser/react/use-mount.d.ts.map +0 -1
  430. package/dist/browser/react/use-mount.js +0 -30
  431. package/dist/browser/react/use-mount.js.map +0 -1
  432. package/dist/browser/react/use-navigation.d.ts +0 -27
  433. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  434. package/dist/browser/react/use-navigation.js +0 -87
  435. package/dist/browser/react/use-navigation.js.map +0 -1
  436. package/dist/browser/react/use-segments.d.ts +0 -38
  437. package/dist/browser/react/use-segments.d.ts.map +0 -1
  438. package/dist/browser/react/use-segments.js +0 -130
  439. package/dist/browser/react/use-segments.js.map +0 -1
  440. package/dist/browser/request-controller.d.ts +0 -26
  441. package/dist/browser/request-controller.d.ts.map +0 -1
  442. package/dist/browser/request-controller.js +0 -147
  443. package/dist/browser/request-controller.js.map +0 -1
  444. package/dist/browser/rsc-router.d.ts +0 -129
  445. package/dist/browser/rsc-router.d.ts.map +0 -1
  446. package/dist/browser/rsc-router.js +0 -195
  447. package/dist/browser/rsc-router.js.map +0 -1
  448. package/dist/browser/scroll-restoration.d.ts +0 -93
  449. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  450. package/dist/browser/scroll-restoration.js +0 -321
  451. package/dist/browser/scroll-restoration.js.map +0 -1
  452. package/dist/browser/segment-structure-assert.d.ts +0 -17
  453. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  454. package/dist/browser/segment-structure-assert.js +0 -59
  455. package/dist/browser/segment-structure-assert.js.map +0 -1
  456. package/dist/browser/server-action-bridge.d.ts +0 -26
  457. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  458. package/dist/browser/server-action-bridge.js +0 -668
  459. package/dist/browser/server-action-bridge.js.map +0 -1
  460. package/dist/browser/shallow.d.ts +0 -12
  461. package/dist/browser/shallow.d.ts.map +0 -1
  462. package/dist/browser/shallow.js +0 -34
  463. package/dist/browser/shallow.js.map +0 -1
  464. package/dist/browser/types.d.ts +0 -369
  465. package/dist/browser/types.d.ts.map +0 -1
  466. package/dist/browser/types.js +0 -2
  467. package/dist/browser/types.js.map +0 -1
  468. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  469. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  470. package/dist/build/__tests__/generate-cli.test.js +0 -237
  471. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  472. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  473. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  474. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  475. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  476. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  477. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  478. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  479. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  480. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  481. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  482. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  483. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  484. package/dist/build/generate-manifest.d.ts +0 -81
  485. package/dist/build/generate-manifest.d.ts.map +0 -1
  486. package/dist/build/generate-manifest.js +0 -276
  487. package/dist/build/generate-manifest.js.map +0 -1
  488. package/dist/build/generate-route-types.d.ts +0 -115
  489. package/dist/build/generate-route-types.d.ts.map +0 -1
  490. package/dist/build/generate-route-types.js +0 -740
  491. package/dist/build/generate-route-types.js.map +0 -1
  492. package/dist/build/index.d.ts +0 -21
  493. package/dist/build/index.d.ts.map +0 -1
  494. package/dist/build/index.js +0 -21
  495. package/dist/build/index.js.map +0 -1
  496. package/dist/build/route-trie.d.ts +0 -71
  497. package/dist/build/route-trie.d.ts.map +0 -1
  498. package/dist/build/route-trie.js +0 -175
  499. package/dist/build/route-trie.js.map +0 -1
  500. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  501. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  502. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  503. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  504. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  505. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  506. package/dist/cache/__tests__/document-cache.test.js +0 -345
  507. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  508. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  509. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  510. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  511. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  512. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  513. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  514. package/dist/cache/__tests__/memory-store.test.js +0 -367
  515. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  516. package/dist/cache/cache-scope.d.ts +0 -102
  517. package/dist/cache/cache-scope.d.ts.map +0 -1
  518. package/dist/cache/cache-scope.js +0 -440
  519. package/dist/cache/cache-scope.js.map +0 -1
  520. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  521. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  522. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  523. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  524. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  525. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  526. package/dist/cache/cf/cf-cache-store.js +0 -242
  527. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  528. package/dist/cache/cf/index.d.ts +0 -14
  529. package/dist/cache/cf/index.d.ts.map +0 -1
  530. package/dist/cache/cf/index.js +0 -17
  531. package/dist/cache/cf/index.js.map +0 -1
  532. package/dist/cache/document-cache.d.ts +0 -64
  533. package/dist/cache/document-cache.d.ts.map +0 -1
  534. package/dist/cache/document-cache.js +0 -228
  535. package/dist/cache/document-cache.js.map +0 -1
  536. package/dist/cache/index.d.ts +0 -19
  537. package/dist/cache/index.d.ts.map +0 -1
  538. package/dist/cache/index.js +0 -21
  539. package/dist/cache/index.js.map +0 -1
  540. package/dist/cache/memory-segment-store.d.ts +0 -110
  541. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  542. package/dist/cache/memory-segment-store.js +0 -117
  543. package/dist/cache/memory-segment-store.js.map +0 -1
  544. package/dist/cache/memory-store.d.ts +0 -41
  545. package/dist/cache/memory-store.d.ts.map +0 -1
  546. package/dist/cache/memory-store.js +0 -191
  547. package/dist/cache/memory-store.js.map +0 -1
  548. package/dist/cache/types.d.ts +0 -317
  549. package/dist/cache/types.d.ts.map +0 -1
  550. package/dist/cache/types.js +0 -12
  551. package/dist/cache/types.js.map +0 -1
  552. package/dist/client.d.ts +0 -248
  553. package/dist/client.d.ts.map +0 -1
  554. package/dist/client.js +0 -367
  555. package/dist/client.js.map +0 -1
  556. package/dist/client.rsc.d.ts +0 -26
  557. package/dist/client.rsc.d.ts.map +0 -1
  558. package/dist/client.rsc.js +0 -46
  559. package/dist/client.rsc.js.map +0 -1
  560. package/dist/component-utils.d.ts +0 -36
  561. package/dist/component-utils.d.ts.map +0 -1
  562. package/dist/component-utils.js +0 -61
  563. package/dist/component-utils.js.map +0 -1
  564. package/dist/components/DefaultDocument.d.ts +0 -13
  565. package/dist/components/DefaultDocument.d.ts.map +0 -1
  566. package/dist/components/DefaultDocument.js +0 -15
  567. package/dist/components/DefaultDocument.js.map +0 -1
  568. package/dist/debug.d.ts +0 -58
  569. package/dist/debug.d.ts.map +0 -1
  570. package/dist/debug.js +0 -157
  571. package/dist/debug.js.map +0 -1
  572. package/dist/default-error-boundary.d.ts +0 -11
  573. package/dist/default-error-boundary.d.ts.map +0 -1
  574. package/dist/default-error-boundary.js +0 -45
  575. package/dist/default-error-boundary.js.map +0 -1
  576. package/dist/deps/browser.d.ts +0 -2
  577. package/dist/deps/browser.d.ts.map +0 -1
  578. package/dist/deps/browser.js +0 -3
  579. package/dist/deps/browser.js.map +0 -1
  580. package/dist/deps/html-stream-client.d.ts +0 -2
  581. package/dist/deps/html-stream-client.d.ts.map +0 -1
  582. package/dist/deps/html-stream-client.js +0 -3
  583. package/dist/deps/html-stream-client.js.map +0 -1
  584. package/dist/deps/html-stream-server.d.ts +0 -2
  585. package/dist/deps/html-stream-server.d.ts.map +0 -1
  586. package/dist/deps/html-stream-server.js +0 -3
  587. package/dist/deps/html-stream-server.js.map +0 -1
  588. package/dist/deps/rsc.d.ts +0 -2
  589. package/dist/deps/rsc.d.ts.map +0 -1
  590. package/dist/deps/rsc.js +0 -4
  591. package/dist/deps/rsc.js.map +0 -1
  592. package/dist/deps/ssr.d.ts +0 -2
  593. package/dist/deps/ssr.d.ts.map +0 -1
  594. package/dist/deps/ssr.js +0 -3
  595. package/dist/deps/ssr.js.map +0 -1
  596. package/dist/errors.d.ts +0 -174
  597. package/dist/errors.d.ts.map +0 -1
  598. package/dist/errors.js +0 -241
  599. package/dist/errors.js.map +0 -1
  600. package/dist/handle.d.ts +0 -78
  601. package/dist/handle.d.ts.map +0 -1
  602. package/dist/handle.js +0 -82
  603. package/dist/handle.js.map +0 -1
  604. package/dist/handles/MetaTags.d.ts +0 -14
  605. package/dist/handles/MetaTags.d.ts.map +0 -1
  606. package/dist/handles/MetaTags.js +0 -136
  607. package/dist/handles/MetaTags.js.map +0 -1
  608. package/dist/handles/index.d.ts +0 -6
  609. package/dist/handles/index.d.ts.map +0 -1
  610. package/dist/handles/index.js +0 -6
  611. package/dist/handles/index.js.map +0 -1
  612. package/dist/handles/meta.d.ts +0 -39
  613. package/dist/handles/meta.d.ts.map +0 -1
  614. package/dist/handles/meta.js +0 -202
  615. package/dist/handles/meta.js.map +0 -1
  616. package/dist/host/__tests__/errors.test.d.ts +0 -2
  617. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  618. package/dist/host/__tests__/errors.test.js +0 -76
  619. package/dist/host/__tests__/errors.test.js.map +0 -1
  620. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  621. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  622. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  623. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  624. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  625. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  626. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  627. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  628. package/dist/host/__tests__/router.test.d.ts +0 -2
  629. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  630. package/dist/host/__tests__/router.test.js +0 -241
  631. package/dist/host/__tests__/router.test.js.map +0 -1
  632. package/dist/host/__tests__/testing.test.d.ts +0 -2
  633. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  634. package/dist/host/__tests__/testing.test.js +0 -64
  635. package/dist/host/__tests__/testing.test.js.map +0 -1
  636. package/dist/host/__tests__/utils.test.d.ts +0 -2
  637. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  638. package/dist/host/__tests__/utils.test.js +0 -29
  639. package/dist/host/__tests__/utils.test.js.map +0 -1
  640. package/dist/host/cookie-handler.d.ts +0 -34
  641. package/dist/host/cookie-handler.d.ts.map +0 -1
  642. package/dist/host/cookie-handler.js +0 -124
  643. package/dist/host/cookie-handler.js.map +0 -1
  644. package/dist/host/errors.d.ts +0 -56
  645. package/dist/host/errors.d.ts.map +0 -1
  646. package/dist/host/errors.js +0 -79
  647. package/dist/host/errors.js.map +0 -1
  648. package/dist/host/index.d.ts +0 -29
  649. package/dist/host/index.d.ts.map +0 -1
  650. package/dist/host/index.js +0 -32
  651. package/dist/host/index.js.map +0 -1
  652. package/dist/host/pattern-matcher.d.ts +0 -36
  653. package/dist/host/pattern-matcher.d.ts.map +0 -1
  654. package/dist/host/pattern-matcher.js +0 -172
  655. package/dist/host/pattern-matcher.js.map +0 -1
  656. package/dist/host/router.d.ts +0 -26
  657. package/dist/host/router.d.ts.map +0 -1
  658. package/dist/host/router.js +0 -218
  659. package/dist/host/router.js.map +0 -1
  660. package/dist/host/testing.d.ts +0 -36
  661. package/dist/host/testing.d.ts.map +0 -1
  662. package/dist/host/testing.js +0 -55
  663. package/dist/host/testing.js.map +0 -1
  664. package/dist/host/types.d.ts +0 -115
  665. package/dist/host/types.d.ts.map +0 -1
  666. package/dist/host/types.js +0 -7
  667. package/dist/host/types.js.map +0 -1
  668. package/dist/host/utils.d.ts +0 -21
  669. package/dist/host/utils.d.ts.map +0 -1
  670. package/dist/host/utils.js +0 -23
  671. package/dist/host/utils.js.map +0 -1
  672. package/dist/href-client.d.ts +0 -131
  673. package/dist/href-client.d.ts.map +0 -1
  674. package/dist/href-client.js +0 -64
  675. package/dist/href-client.js.map +0 -1
  676. package/dist/href-context.d.ts +0 -29
  677. package/dist/href-context.d.ts.map +0 -1
  678. package/dist/href-context.js +0 -21
  679. package/dist/href-context.js.map +0 -1
  680. package/dist/index.d.ts +0 -73
  681. package/dist/index.d.ts.map +0 -1
  682. package/dist/index.js +0 -91
  683. package/dist/index.js.map +0 -1
  684. package/dist/index.rsc.d.ts +0 -32
  685. package/dist/index.rsc.d.ts.map +0 -1
  686. package/dist/index.rsc.js +0 -40
  687. package/dist/index.rsc.js.map +0 -1
  688. package/dist/internal-debug.d.ts +0 -2
  689. package/dist/internal-debug.d.ts.map +0 -1
  690. package/dist/internal-debug.js +0 -5
  691. package/dist/internal-debug.js.map +0 -1
  692. package/dist/loader.d.ts +0 -14
  693. package/dist/loader.d.ts.map +0 -1
  694. package/dist/loader.js +0 -20
  695. package/dist/loader.js.map +0 -1
  696. package/dist/loader.rsc.d.ts +0 -19
  697. package/dist/loader.rsc.d.ts.map +0 -1
  698. package/dist/loader.rsc.js +0 -99
  699. package/dist/loader.rsc.js.map +0 -1
  700. package/dist/network-error-thrower.d.ts +0 -17
  701. package/dist/network-error-thrower.d.ts.map +0 -1
  702. package/dist/network-error-thrower.js +0 -14
  703. package/dist/network-error-thrower.js.map +0 -1
  704. package/dist/outlet-context.d.ts +0 -13
  705. package/dist/outlet-context.d.ts.map +0 -1
  706. package/dist/outlet-context.js +0 -3
  707. package/dist/outlet-context.js.map +0 -1
  708. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  709. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  710. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  711. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  712. package/dist/prerender/param-hash.d.ts +0 -16
  713. package/dist/prerender/param-hash.d.ts.map +0 -1
  714. package/dist/prerender/param-hash.js +0 -36
  715. package/dist/prerender/param-hash.js.map +0 -1
  716. package/dist/prerender/store.d.ts +0 -38
  717. package/dist/prerender/store.d.ts.map +0 -1
  718. package/dist/prerender/store.js +0 -61
  719. package/dist/prerender/store.js.map +0 -1
  720. package/dist/prerender.d.ts +0 -66
  721. package/dist/prerender.d.ts.map +0 -1
  722. package/dist/prerender.js +0 -57
  723. package/dist/prerender.js.map +0 -1
  724. package/dist/reverse.d.ts +0 -196
  725. package/dist/reverse.d.ts.map +0 -1
  726. package/dist/reverse.js +0 -78
  727. package/dist/reverse.js.map +0 -1
  728. package/dist/root-error-boundary.d.ts +0 -33
  729. package/dist/root-error-boundary.d.ts.map +0 -1
  730. package/dist/root-error-boundary.js +0 -165
  731. package/dist/root-error-boundary.js.map +0 -1
  732. package/dist/route-content-wrapper.d.ts +0 -46
  733. package/dist/route-content-wrapper.d.ts.map +0 -1
  734. package/dist/route-content-wrapper.js +0 -77
  735. package/dist/route-content-wrapper.js.map +0 -1
  736. package/dist/route-definition.d.ts +0 -421
  737. package/dist/route-definition.d.ts.map +0 -1
  738. package/dist/route-definition.js +0 -868
  739. package/dist/route-definition.js.map +0 -1
  740. package/dist/route-map-builder.d.ts +0 -155
  741. package/dist/route-map-builder.d.ts.map +0 -1
  742. package/dist/route-map-builder.js +0 -237
  743. package/dist/route-map-builder.js.map +0 -1
  744. package/dist/route-types.d.ts +0 -165
  745. package/dist/route-types.d.ts.map +0 -1
  746. package/dist/route-types.js +0 -7
  747. package/dist/route-types.js.map +0 -1
  748. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  749. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  750. package/dist/router/__tests__/handler-context.test.js +0 -65
  751. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  752. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  753. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  754. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  755. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  756. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  757. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  758. package/dist/router/__tests__/match-context.test.js +0 -92
  759. package/dist/router/__tests__/match-context.test.js.map +0 -1
  760. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  761. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  762. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  763. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  764. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  765. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  766. package/dist/router/__tests__/match-result.test.js +0 -457
  767. package/dist/router/__tests__/match-result.test.js.map +0 -1
  768. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  769. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  770. package/dist/router/__tests__/on-error.test.js +0 -678
  771. package/dist/router/__tests__/on-error.test.js.map +0 -1
  772. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  773. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  774. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  775. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  776. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  777. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  778. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  779. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  780. package/dist/router/error-handling.d.ts +0 -77
  781. package/dist/router/error-handling.d.ts.map +0 -1
  782. package/dist/router/error-handling.js +0 -202
  783. package/dist/router/error-handling.js.map +0 -1
  784. package/dist/router/handler-context.d.ts +0 -20
  785. package/dist/router/handler-context.d.ts.map +0 -1
  786. package/dist/router/handler-context.js +0 -198
  787. package/dist/router/handler-context.js.map +0 -1
  788. package/dist/router/intercept-resolution.d.ts +0 -66
  789. package/dist/router/intercept-resolution.d.ts.map +0 -1
  790. package/dist/router/intercept-resolution.js +0 -246
  791. package/dist/router/intercept-resolution.js.map +0 -1
  792. package/dist/router/loader-resolution.d.ts +0 -64
  793. package/dist/router/loader-resolution.d.ts.map +0 -1
  794. package/dist/router/loader-resolution.js +0 -284
  795. package/dist/router/loader-resolution.js.map +0 -1
  796. package/dist/router/logging.d.ts +0 -15
  797. package/dist/router/logging.d.ts.map +0 -1
  798. package/dist/router/logging.js +0 -99
  799. package/dist/router/logging.js.map +0 -1
  800. package/dist/router/manifest.d.ts +0 -22
  801. package/dist/router/manifest.d.ts.map +0 -1
  802. package/dist/router/manifest.js +0 -181
  803. package/dist/router/manifest.js.map +0 -1
  804. package/dist/router/match-api.d.ts +0 -35
  805. package/dist/router/match-api.d.ts.map +0 -1
  806. package/dist/router/match-api.js +0 -406
  807. package/dist/router/match-api.js.map +0 -1
  808. package/dist/router/match-context.d.ts +0 -206
  809. package/dist/router/match-context.d.ts.map +0 -1
  810. package/dist/router/match-context.js +0 -17
  811. package/dist/router/match-context.js.map +0 -1
  812. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  813. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  814. package/dist/router/match-middleware/background-revalidation.js +0 -75
  815. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  816. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  817. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  818. package/dist/router/match-middleware/cache-lookup.js +0 -257
  819. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  820. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  821. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  822. package/dist/router/match-middleware/cache-store.js +0 -108
  823. package/dist/router/match-middleware/cache-store.js.map +0 -1
  824. package/dist/router/match-middleware/index.d.ts +0 -81
  825. package/dist/router/match-middleware/index.d.ts.map +0 -1
  826. package/dist/router/match-middleware/index.js +0 -80
  827. package/dist/router/match-middleware/index.js.map +0 -1
  828. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  829. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  830. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  831. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  832. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  833. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  834. package/dist/router/match-middleware/segment-resolution.js +0 -53
  835. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  836. package/dist/router/match-pipelines.d.ts +0 -147
  837. package/dist/router/match-pipelines.d.ts.map +0 -1
  838. package/dist/router/match-pipelines.js +0 -82
  839. package/dist/router/match-pipelines.js.map +0 -1
  840. package/dist/router/match-result.d.ts +0 -126
  841. package/dist/router/match-result.d.ts.map +0 -1
  842. package/dist/router/match-result.js +0 -93
  843. package/dist/router/match-result.js.map +0 -1
  844. package/dist/router/metrics.d.ts +0 -20
  845. package/dist/router/metrics.d.ts.map +0 -1
  846. package/dist/router/metrics.js +0 -47
  847. package/dist/router/metrics.js.map +0 -1
  848. package/dist/router/middleware.d.ts +0 -249
  849. package/dist/router/middleware.d.ts.map +0 -1
  850. package/dist/router/middleware.js +0 -434
  851. package/dist/router/middleware.js.map +0 -1
  852. package/dist/router/middleware.test.d.ts +0 -2
  853. package/dist/router/middleware.test.d.ts.map +0 -1
  854. package/dist/router/middleware.test.js +0 -816
  855. package/dist/router/middleware.test.js.map +0 -1
  856. package/dist/router/pattern-matching.d.ts +0 -149
  857. package/dist/router/pattern-matching.d.ts.map +0 -1
  858. package/dist/router/pattern-matching.js +0 -349
  859. package/dist/router/pattern-matching.js.map +0 -1
  860. package/dist/router/revalidation.d.ts +0 -44
  861. package/dist/router/revalidation.d.ts.map +0 -1
  862. package/dist/router/revalidation.js +0 -147
  863. package/dist/router/revalidation.js.map +0 -1
  864. package/dist/router/router-context.d.ts +0 -135
  865. package/dist/router/router-context.d.ts.map +0 -1
  866. package/dist/router/router-context.js +0 -36
  867. package/dist/router/router-context.js.map +0 -1
  868. package/dist/router/segment-resolution.d.ts +0 -127
  869. package/dist/router/segment-resolution.d.ts.map +0 -1
  870. package/dist/router/segment-resolution.js +0 -919
  871. package/dist/router/segment-resolution.js.map +0 -1
  872. package/dist/router/trie-matching.d.ts +0 -40
  873. package/dist/router/trie-matching.d.ts.map +0 -1
  874. package/dist/router/trie-matching.js +0 -127
  875. package/dist/router/trie-matching.js.map +0 -1
  876. package/dist/router/types.d.ts +0 -136
  877. package/dist/router/types.d.ts.map +0 -1
  878. package/dist/router/types.js +0 -7
  879. package/dist/router/types.js.map +0 -1
  880. package/dist/router.d.ts +0 -753
  881. package/dist/router.d.ts.map +0 -1
  882. package/dist/router.gen.d.ts +0 -6
  883. package/dist/router.gen.d.ts.map +0 -1
  884. package/dist/router.gen.js +0 -6
  885. package/dist/router.gen.js.map +0 -1
  886. package/dist/router.js +0 -1304
  887. package/dist/router.js.map +0 -1
  888. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  889. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  890. package/dist/rsc/__tests__/helpers.test.js +0 -140
  891. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  892. package/dist/rsc/handler.d.ts +0 -45
  893. package/dist/rsc/handler.d.ts.map +0 -1
  894. package/dist/rsc/handler.js +0 -1172
  895. package/dist/rsc/handler.js.map +0 -1
  896. package/dist/rsc/helpers.d.ts +0 -16
  897. package/dist/rsc/helpers.d.ts.map +0 -1
  898. package/dist/rsc/helpers.js +0 -55
  899. package/dist/rsc/helpers.js.map +0 -1
  900. package/dist/rsc/index.d.ts +0 -22
  901. package/dist/rsc/index.d.ts.map +0 -1
  902. package/dist/rsc/index.js +0 -23
  903. package/dist/rsc/index.js.map +0 -1
  904. package/dist/rsc/nonce.d.ts +0 -9
  905. package/dist/rsc/nonce.d.ts.map +0 -1
  906. package/dist/rsc/nonce.js +0 -18
  907. package/dist/rsc/nonce.js.map +0 -1
  908. package/dist/rsc/types.d.ts +0 -206
  909. package/dist/rsc/types.d.ts.map +0 -1
  910. package/dist/rsc/types.js +0 -8
  911. package/dist/rsc/types.js.map +0 -1
  912. package/dist/search-params.d.ts +0 -103
  913. package/dist/search-params.d.ts.map +0 -1
  914. package/dist/search-params.js +0 -74
  915. package/dist/search-params.js.map +0 -1
  916. package/dist/segment-system.d.ts +0 -75
  917. package/dist/segment-system.d.ts.map +0 -1
  918. package/dist/segment-system.js +0 -336
  919. package/dist/segment-system.js.map +0 -1
  920. package/dist/server/context.d.ts +0 -245
  921. package/dist/server/context.d.ts.map +0 -1
  922. package/dist/server/context.js +0 -197
  923. package/dist/server/context.js.map +0 -1
  924. package/dist/server/fetchable-loader-store.d.ts +0 -18
  925. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  926. package/dist/server/fetchable-loader-store.js +0 -18
  927. package/dist/server/fetchable-loader-store.js.map +0 -1
  928. package/dist/server/handle-store.d.ts +0 -85
  929. package/dist/server/handle-store.d.ts.map +0 -1
  930. package/dist/server/handle-store.js +0 -142
  931. package/dist/server/handle-store.js.map +0 -1
  932. package/dist/server/loader-registry.d.ts +0 -55
  933. package/dist/server/loader-registry.d.ts.map +0 -1
  934. package/dist/server/loader-registry.js +0 -132
  935. package/dist/server/loader-registry.js.map +0 -1
  936. package/dist/server/request-context.d.ts +0 -226
  937. package/dist/server/request-context.d.ts.map +0 -1
  938. package/dist/server/request-context.js +0 -290
  939. package/dist/server/request-context.js.map +0 -1
  940. package/dist/server/root-layout.d.ts +0 -4
  941. package/dist/server/root-layout.d.ts.map +0 -1
  942. package/dist/server/root-layout.js +0 -5
  943. package/dist/server/root-layout.js.map +0 -1
  944. package/dist/server.d.ts +0 -15
  945. package/dist/server.d.ts.map +0 -1
  946. package/dist/server.js +0 -20
  947. package/dist/server.js.map +0 -1
  948. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  949. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  950. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  951. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  952. package/dist/ssr/index.d.ts +0 -98
  953. package/dist/ssr/index.d.ts.map +0 -1
  954. package/dist/ssr/index.js +0 -158
  955. package/dist/ssr/index.js.map +0 -1
  956. package/dist/static-handler.d.ts +0 -50
  957. package/dist/static-handler.d.ts.map +0 -1
  958. package/dist/static-handler.gen.d.ts +0 -5
  959. package/dist/static-handler.gen.d.ts.map +0 -1
  960. package/dist/static-handler.gen.js +0 -5
  961. package/dist/static-handler.gen.js.map +0 -1
  962. package/dist/static-handler.js +0 -29
  963. package/dist/static-handler.js.map +0 -1
  964. package/dist/theme/ThemeProvider.d.ts +0 -20
  965. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  966. package/dist/theme/ThemeProvider.js +0 -240
  967. package/dist/theme/ThemeProvider.js.map +0 -1
  968. package/dist/theme/ThemeScript.d.ts +0 -48
  969. package/dist/theme/ThemeScript.d.ts.map +0 -1
  970. package/dist/theme/ThemeScript.js +0 -13
  971. package/dist/theme/ThemeScript.js.map +0 -1
  972. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  973. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  974. package/dist/theme/__tests__/theme.test.js +0 -103
  975. package/dist/theme/__tests__/theme.test.js.map +0 -1
  976. package/dist/theme/constants.d.ts +0 -29
  977. package/dist/theme/constants.d.ts.map +0 -1
  978. package/dist/theme/constants.js +0 -48
  979. package/dist/theme/constants.js.map +0 -1
  980. package/dist/theme/index.d.ts +0 -31
  981. package/dist/theme/index.d.ts.map +0 -1
  982. package/dist/theme/index.js +0 -36
  983. package/dist/theme/index.js.map +0 -1
  984. package/dist/theme/theme-context.d.ts +0 -40
  985. package/dist/theme/theme-context.d.ts.map +0 -1
  986. package/dist/theme/theme-context.js +0 -60
  987. package/dist/theme/theme-context.js.map +0 -1
  988. package/dist/theme/theme-script.d.ts +0 -27
  989. package/dist/theme/theme-script.d.ts.map +0 -1
  990. package/dist/theme/theme-script.js +0 -147
  991. package/dist/theme/theme-script.js.map +0 -1
  992. package/dist/theme/types.d.ts +0 -163
  993. package/dist/theme/types.d.ts.map +0 -1
  994. package/dist/theme/types.js +0 -11
  995. package/dist/theme/types.js.map +0 -1
  996. package/dist/theme/use-theme.d.ts +0 -12
  997. package/dist/theme/use-theme.d.ts.map +0 -1
  998. package/dist/theme/use-theme.js +0 -40
  999. package/dist/theme/use-theme.js.map +0 -1
  1000. package/dist/types.d.ts +0 -1479
  1001. package/dist/types.d.ts.map +0 -1
  1002. package/dist/types.js +0 -10
  1003. package/dist/types.js.map +0 -1
  1004. package/dist/urls.d.ts +0 -441
  1005. package/dist/urls.d.ts.map +0 -1
  1006. package/dist/urls.gen.d.ts +0 -8
  1007. package/dist/urls.gen.d.ts.map +0 -1
  1008. package/dist/urls.gen.js +0 -8
  1009. package/dist/urls.gen.js.map +0 -1
  1010. package/dist/urls.js +0 -443
  1011. package/dist/urls.js.map +0 -1
  1012. package/dist/use-loader.d.ts +0 -127
  1013. package/dist/use-loader.d.ts.map +0 -1
  1014. package/dist/use-loader.js +0 -237
  1015. package/dist/use-loader.js.map +0 -1
  1016. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1017. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1018. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1019. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1020. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1021. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1022. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1023. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1024. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1025. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1026. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1027. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1028. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1029. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1030. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1031. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1032. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1033. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1034. package/dist/vite/ast-handler-extract.js +0 -249
  1035. package/dist/vite/ast-handler-extract.js.map +0 -1
  1036. package/dist/vite/expose-action-id.d.ts +0 -19
  1037. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1038. package/dist/vite/expose-action-id.js +0 -250
  1039. package/dist/vite/expose-action-id.js.map +0 -1
  1040. package/dist/vite/expose-id-utils.d.ts +0 -69
  1041. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1042. package/dist/vite/expose-id-utils.js +0 -289
  1043. package/dist/vite/expose-id-utils.js.map +0 -1
  1044. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1045. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1046. package/dist/vite/expose-internal-ids.js +0 -886
  1047. package/dist/vite/expose-internal-ids.js.map +0 -1
  1048. package/dist/vite/index.d.ts +0 -149
  1049. package/dist/vite/index.d.ts.map +0 -1
  1050. package/dist/vite/index.js.map +0 -1
  1051. package/dist/vite/index.named-routes.gen.ts +0 -103
  1052. package/dist/vite/package-resolution.d.ts +0 -43
  1053. package/dist/vite/package-resolution.d.ts.map +0 -1
  1054. package/dist/vite/package-resolution.js +0 -112
  1055. package/dist/vite/package-resolution.js.map +0 -1
  1056. package/dist/vite/virtual-entries.d.ts +0 -25
  1057. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1058. package/dist/vite/virtual-entries.js +0 -110
  1059. package/dist/vite/virtual-entries.js.map +0 -1
  1060. package/src/browser/action-response-classifier.ts +0 -99
@@ -11,122 +11,40 @@ import {
11
11
  when,
12
12
  errorBoundary,
13
13
  notFoundBoundary,
14
- loaderFn,
15
- loadingFn,
16
- transitionFn,
17
- routeFn,
14
+ route,
15
+ loader,
16
+ loading,
17
+ transition,
18
18
  } from "./dsl-helpers.js";
19
19
  import RootLayout from "../server/root-layout";
20
20
  import { invariant } from "../errors";
21
21
 
22
- /*
23
- * Create revalidate helper
24
- */
25
- const createRevalidateHelper = <TEnv>(): RouteHelpers<
26
- any,
27
- TEnv
28
- >["revalidate"] => {
29
- return revalidate as RouteHelpers<any, TEnv>["revalidate"];
30
- };
31
-
32
- /**
33
- * Create errorBoundary helper
34
- */
35
- const createErrorBoundaryHelper = <TEnv>(): RouteHelpers<
36
- any,
37
- TEnv
38
- >["errorBoundary"] => {
39
- return errorBoundary as RouteHelpers<any, TEnv>["errorBoundary"];
40
- };
41
-
42
- /**
43
- * Create notFoundBoundary helper
44
- */
45
- const createNotFoundBoundaryHelper = <TEnv>(): RouteHelpers<
46
- any,
47
- TEnv
48
- >["notFoundBoundary"] => {
49
- return notFoundBoundary as RouteHelpers<any, TEnv>["notFoundBoundary"];
50
- };
51
-
52
22
  /**
53
- * Create middleware helper
23
+ * Assemble the RouteHelpers object. The helpers are the DSL functions
24
+ * themselves; the single cast erases the phantom generics (and the extra
25
+ * `route` key) that the per-router RouteHelpers<T, TEnv> type carries but the
26
+ * runtime functions do not.
54
27
  */
55
- const createMiddlewareHelper = <TEnv>(): RouteHelpers<
56
- any,
28
+ function buildRouteHelpers<T extends RouteDefinition, TEnv>(): RouteHelpers<
29
+ T,
57
30
  TEnv
58
- >["middleware"] => {
59
- return middleware as RouteHelpers<any, TEnv>["middleware"];
60
- };
61
-
62
- /**
63
- * Create parallel helper
64
- */
65
- const createParallelHelper = <TEnv>(): RouteHelpers<any, TEnv>["parallel"] => {
66
- return parallel as RouteHelpers<any, TEnv>["parallel"];
67
- };
68
-
69
- /**
70
- * Create intercept helper
71
- */
72
- const createInterceptHelper = <
73
- const T extends RouteDefinition,
74
- TEnv,
75
- >(): RouteHelpers<T, TEnv>["intercept"] => {
76
- return intercept as RouteHelpers<T, TEnv>["intercept"];
77
- };
78
-
79
- /**
80
- * Create loader helper
81
- */
82
- const createLoaderHelper = <TEnv>(): RouteHelpers<any, TEnv>["loader"] => {
83
- return loaderFn as RouteHelpers<any, TEnv>["loader"];
84
- };
85
-
86
- /**
87
- * Create loading helper
88
- */
89
- const createLoadingHelper = (): RouteHelpers<any, any>["loading"] => {
90
- return loadingFn;
91
- };
92
-
93
- /**
94
- * Create route helper
95
- */
96
- const createRouteHelper = <
97
- const T extends RouteDefinition,
98
- TEnv,
99
- >(): RouteHelpers<T, TEnv>["route"] => {
100
- return routeFn as unknown as RouteHelpers<T, TEnv>["route"];
101
- };
102
-
103
- /**
104
- * Create layout helper
105
- */
106
- const createLayoutHelper = <TEnv>(): RouteHelpers<any, TEnv>["layout"] => {
107
- return layout as RouteHelpers<any, TEnv>["layout"];
108
- };
109
-
110
- /**
111
- * Create when helper for intercept conditions
112
- */
113
- const createWhenHelper = (): RouteHelpers<any, any>["when"] => {
114
- return when;
115
- };
116
-
117
- /**
118
- * Create cache helper for cache configuration
119
- */
120
- const createCacheHelper = (): RouteHelpers<any, any>["cache"] => {
121
- return cache;
122
- };
123
-
124
- /**
125
- * Create transition helper
126
- */
127
- const createTransitionHelper = (): RouteHelpers<any, any>["transition"] => {
128
- return transitionFn as RouteHelpers<any, any>["transition"];
129
- };
31
+ > {
32
+ return {
33
+ route,
34
+ layout,
35
+ parallel,
36
+ intercept,
37
+ middleware,
38
+ revalidate,
39
+ loader,
40
+ loading,
41
+ errorBoundary,
42
+ notFoundBoundary,
43
+ when,
44
+ cache,
45
+ transition,
46
+ } as unknown as RouteHelpers<T, TEnv>;
47
+ }
130
48
 
131
49
  /**
132
50
  * Branded type for route handlers that carries the route type info.
@@ -152,21 +70,7 @@ export function map<const T extends RouteDefinition, TEnv = DefaultEnv>(
152
70
  "map() expects a builder function as its argument",
153
71
  );
154
72
  // Create helpers
155
- const helpers: RouteHelpers<T, TEnv> = {
156
- route: createRouteHelper<T, TEnv>(),
157
- layout: createLayoutHelper<TEnv>(),
158
- parallel: createParallelHelper<TEnv>(),
159
- intercept: createInterceptHelper<T, TEnv>(),
160
- middleware: createMiddlewareHelper<TEnv>(),
161
- revalidate: createRevalidateHelper<TEnv>(),
162
- loader: createLoaderHelper<TEnv>(),
163
- loading: createLoadingHelper(),
164
- errorBoundary: createErrorBoundaryHelper<TEnv>(),
165
- notFoundBoundary: createNotFoundBoundaryHelper<TEnv>(),
166
- when: createWhenHelper(),
167
- cache: createCacheHelper(),
168
- transition: createTransitionHelper(),
169
- };
73
+ const helpers = buildRouteHelpers<T, TEnv>();
170
74
 
171
75
  return [layout(RootLayout, () => builder(helpers))].flat(3);
172
76
  };
@@ -182,19 +86,5 @@ export function createRouteHelpers<
182
86
  T extends RouteDefinition,
183
87
  TEnv,
184
88
  >(): RouteHelpers<T, TEnv> {
185
- return {
186
- route: createRouteHelper<T, TEnv>(),
187
- layout: createLayoutHelper<TEnv>(),
188
- parallel: createParallelHelper<TEnv>(),
189
- intercept: createInterceptHelper<T, TEnv>(),
190
- middleware: createMiddlewareHelper<TEnv>(),
191
- revalidate: createRevalidateHelper<TEnv>(),
192
- loader: createLoaderHelper<TEnv>(),
193
- loading: createLoadingHelper(),
194
- errorBoundary: createErrorBoundaryHelper<TEnv>(),
195
- notFoundBoundary: createNotFoundBoundaryHelper<TEnv>(),
196
- when: createWhenHelper(),
197
- cache: createCacheHelper(),
198
- transition: createTransitionHelper(),
199
- };
89
+ return buildRouteHelpers<T, TEnv>();
200
90
  }
@@ -123,7 +123,7 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
123
123
  * "@main": async (ctx) => <MainContent data={ctx.use(DataLoader)} />,
124
124
  * })
125
125
  *
126
- * // With loaders and loading states
126
+ * // With loaders and loading states (broadcast to every slot)
127
127
  * parallel({
128
128
  * "@analytics": AnalyticsPanel,
129
129
  * "@metrics": MetricsPanel,
@@ -131,12 +131,36 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
131
131
  * loader(DashboardLoader),
132
132
  * loading(<DashboardSkeleton />),
133
133
  * ])
134
+ *
135
+ * // Per-slot scoped use via slot descriptor — for single-assignment items
136
+ * // like loading() that should not broadcast to siblings.
137
+ * parallel({
138
+ * "@meta": MetaSlot,
139
+ * "@sidebar": {
140
+ * handler: SidebarSlot,
141
+ * use: () => [loading(<SidebarSkeleton />)],
142
+ * },
143
+ * })
134
144
  * ```
135
145
  * @param slots - Object with slot names (prefixed with @) mapped to handlers
146
+ * or `{ handler, use? }` slot descriptors.
136
147
  * @param use - Optional callback for loaders, loading, revalidate, etc.
148
+ * Items here apply to every slot in the call (broadcast).
149
+ * For per-slot single-assignment items, use the slot descriptor's
150
+ * own `use` callback — slot-local items run after the broadcast,
151
+ * so they take precedence on `loading()` and other last-write-wins
152
+ * fields.
137
153
  */
138
154
  parallel: <
139
- TSlots extends Record<`@${string}`, Handler<any, any, TEnv> | ReactNode>,
155
+ TSlots extends Record<
156
+ `@${string}`,
157
+ | Handler<any, any, TEnv>
158
+ | ReactNode
159
+ | {
160
+ handler: Handler<any, any, TEnv> | ReactNode;
161
+ use?: () => UseItems<ParallelUseItem>;
162
+ }
163
+ >,
140
164
  >(
141
165
  slots: TSlots,
142
166
  use?: () => UseItems<ParallelUseItem>,
@@ -174,29 +198,49 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
174
198
  use?: () => UseItems<InterceptUseItem>,
175
199
  ): InterceptItem;
176
200
  // Global: unprefixed, params inferred from global route map
177
- <K extends keyof RSCRouter.GeneratedRouteMap & string>(
201
+ <K extends keyof Rango.GeneratedRouteMap & string>(
178
202
  slotName: `@${string}`,
179
203
  routeName: K,
180
- handler: ReactNode | Handler<K, RSCRouter.GeneratedRouteMap, TEnv>,
204
+ handler: ReactNode | Handler<K, Rango.GeneratedRouteMap, TEnv>,
181
205
  use?: () => UseItems<InterceptUseItem>,
182
206
  ): InterceptItem;
183
207
  };
184
208
  /**
185
- * Attach middleware to the current route/layout
209
+ * Attach middleware to the current route/layout, or wrap child segments
210
+ *
211
+ * **Sibling mode** — attaches middleware to the parent entry:
186
212
  * ```typescript
187
- * middleware(async (ctx, next) => {
188
- * const session = await getSession(ctx.request);
189
- * if (!session) return redirect("/login");
190
- * ctx.set("user", session.user);
191
- * next();
192
- * })
213
+ * layout(<DashboardShell />, () => [
214
+ * middleware(authMiddleware),
215
+ * middleware([authMiddleware, loggingMiddleware]),
216
+ * path("/", DashboardPage),
217
+ * ])
218
+ * ```
219
+ *
220
+ * **Wrapping mode** — scopes middleware to the children only:
221
+ * ```typescript
222
+ * middleware(authMiddleware, () => [
223
+ * path("/dashboard", DashboardPage),
224
+ * path("/settings", SettingsPage),
225
+ * ])
193
226
  *
194
- * // Chain multiple middleware
195
- * middleware(authMiddleware, loggingMiddleware, rateLimitMiddleware)
227
+ * middleware([authMiddleware, loggingMiddleware], () => [
228
+ * path("/admin", AdminPage),
229
+ * ])
196
230
  * ```
197
- * @param fns - One or more middleware functions to execute in order
198
231
  */
199
- middleware: (...fns: MiddlewareFn<TEnv>[]) => MiddlewareItem;
232
+ middleware: {
233
+ (fn: MiddlewareFn<TEnv>): MiddlewareItem;
234
+ (
235
+ fn: MiddlewareFn<TEnv>,
236
+ children: () => UseItems<LayoutUseItem>,
237
+ ): MiddlewareItem;
238
+ (fns: MiddlewareFn<TEnv>[]): MiddlewareItem;
239
+ (
240
+ fns: MiddlewareFn<TEnv>[],
241
+ children: () => UseItems<LayoutUseItem>,
242
+ ): MiddlewareItem;
243
+ };
200
244
  /**
201
245
  * Control when a segment should revalidate during navigation
202
246
  * ```typescript
@@ -206,8 +250,10 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
206
250
  * )
207
251
  *
208
252
  * // Revalidate after specific actions (actionId format: "path/to/file.ts#exportName")
253
+ * // Use `|| undefined` (defer), not `?? false` (hard short-circuit), so the
254
+ * // chain and the segment default still apply when there is no match.
209
255
  * revalidate(({ actionId }) =>
210
- * actionId?.includes("Cart") ?? false
256
+ * actionId?.includes("Cart") || undefined
211
257
  * )
212
258
  *
213
259
  * // Soft decision (suggest but allow override)
@@ -215,7 +261,12 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
215
261
  * ({ defaultShouldRevalidate: true })
216
262
  * )
217
263
  * ```
218
- * @param fn - Function that returns boolean (hard) or { defaultShouldRevalidate } (soft)
264
+ * @param fn - Function returning either:
265
+ * - `boolean` (hard decision — short-circuits the chain),
266
+ * - `{ defaultShouldRevalidate: boolean }` (soft — updates the suggestion
267
+ * for downstream revalidators),
268
+ * - or nothing / `null` / `undefined` (defer — leaves the suggestion
269
+ * unchanged and continues to the next revalidator).
219
270
  */
220
271
  revalidate: (fn: ShouldRevalidateFn<any, TEnv>) => RevalidateItem;
221
272
  /**
@@ -225,14 +276,15 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
225
276
  *
226
277
  * // With loader-specific revalidation (match by file or export name)
227
278
  * loader(CartLoader, () => [
228
- * revalidate(({ actionId }) => actionId?.includes("Cart") ?? false),
279
+ * revalidate(({ actionId }) => actionId?.includes("Cart") || undefined),
229
280
  * ])
230
281
  *
231
- * // Access loader data in handlers via ctx.use()
232
- * route("products.detail", async (ctx) => {
233
- * const product = await ctx.use(ProductLoader);
234
- * return <ProductPage product={product} />;
235
- * })
282
+ * // Consume in client components with useLoader()
283
+ * // (preferred — cache-safe, always fresh)
284
+ * function ProductDetails() {
285
+ * const { data } = useLoader(ProductLoader);
286
+ * return <div>{data.name}</div>;
287
+ * }
236
288
  * ```
237
289
  * @param loaderDef - Loader created with createLoader()
238
290
  * @param use - Optional callback for loader-specific revalidation rules
@@ -254,7 +306,10 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
254
306
  * @param options - Configuration options
255
307
  * @param options.ssr - If false, skip showing loading on document requests (SSR)
256
308
  */
257
- loading: (component: ReactNode, options?: { ssr?: boolean }) => LoadingItem;
309
+ loading: (
310
+ component: ReactNode | (() => ReactNode),
311
+ options?: { ssr?: boolean },
312
+ ) => LoadingItem;
258
313
  /**
259
314
  * Attach an error boundary to catch errors in this segment and children
260
315
  * ```typescript
@@ -394,10 +449,30 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
394
449
  ): CacheItem;
395
450
  };
396
451
  /**
397
- * Attach a ViewTransition boundary to the current segment or a group of routes
398
- *
399
- * Wraps segment content with React's `<ViewTransition>` component.
400
- * Only takes effect when React experimental is used (no-op on stable React).
452
+ * Opt a route (or group of routes) into transition-driven navigation.
453
+ *
454
+ * `transition()` does two independent things, and you choose how far to go:
455
+ * 1. startTransition (ALL React versions): the navigation commit is driven
456
+ * through React's startTransition, so a same-route nav (same route,
457
+ * different params, e.g. /product/1 -> /product/2) holds the previous
458
+ * content while the new loader resolves instead of flashing the route's
459
+ * loading() skeleton (see segment-system.tsx inTransitionScope). This is
460
+ * also the precondition for any view-transition animation.
461
+ * 2. <ViewTransition> (experimental React only): the segment content is also
462
+ * wrapped in React's <ViewTransition>, so the held swap cross-fades/morphs.
463
+ * Layered on by default; pass { viewTransition: false } to keep #1 without
464
+ * the router boundary (and place your own <ViewTransition> instead).
465
+ *
466
+ * A view transition cannot fire without a startTransition, so the meaningful
467
+ * choices are (see skills/view-transitions for the full matrix):
468
+ * - no transition() -> neither (remount + skeleton)
469
+ * - transition({ viewTransition: false }) -> startTransition only (hold)
470
+ * - transition({}) / transition({ enter… }) -> startTransition + ViewTransition
471
+ *
472
+ * Precedence: a bare transition({}) inherits createRouter({ viewTransition })
473
+ * (default "auto"); an explicit per-route `viewTransition` always wins. So
474
+ * transition({}) is startTransition + ViewTransition under the default and
475
+ * startTransition only when the router sets viewTransition: false.
401
476
  *
402
477
  * ```typescript
403
478
  * // Attach to a single route
@@ -411,13 +486,14 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
411
486
  * path("/about", AboutPage),
412
487
  * ])
413
488
  *
414
- * // Direction-aware transitions
415
- * transition({
416
- * enter: { "navigation": "slide-right", "navigation-back": "slide-left" },
417
- * exit: { "navigation": "slide-left", "navigation-back": "slide-right" },
418
- * })
489
+ * // Hold content + drive view transitions, but place no router boundary:
490
+ * path("/product/:id", ProductPage, { name: "product" }, () => [
491
+ * transition({ viewTransition: false }),
492
+ * ])
419
493
  * ```
420
- * @param config - ViewTransition configuration (enter, exit, update, share, default, name)
494
+ * @param config - ViewTransition configuration (enter, exit, update, share,
495
+ * default, name) plus `viewTransition: "auto" | false` to toggle the router
496
+ * boundary (createRouter({ viewTransition }) sets the app-wide default)
421
497
  * @param children - Optional callback returning child routes to wrap
422
498
  */
423
499
  transition: {
@@ -45,6 +45,9 @@ export {
45
45
  type RouteHandlers,
46
46
  } from "./helper-factories.js";
47
47
 
48
+ // Handler use resolver
49
+ export { resolveHandlerUse } from "./resolve-handler-use.js";
50
+
48
51
  // Redirect
49
52
  export { redirect } from "./redirect.js";
50
53
 
@@ -2,6 +2,7 @@ import type { LocationStateEntry } from "../browser/react/location-state-shared.
2
2
  import {
3
3
  requireRequestContext,
4
4
  getRequestContext,
5
+ _getRequestContext,
5
6
  } from "../server/request-context.js";
6
7
 
7
8
  /**
@@ -83,10 +84,17 @@ export function redirect(
83
84
  }
84
85
  }
85
86
 
87
+ // Auto-prefix root-relative URLs with basename for app-local redirects.
88
+ const bn = _getRequestContext()?._basename;
89
+ let resolvedUrl = url;
90
+ if (bn && url.startsWith("/") && !url.startsWith(bn + "/") && url !== bn) {
91
+ resolvedUrl = url === "/" ? bn : bn + url;
92
+ }
93
+
86
94
  return new Response(null, {
87
95
  status,
88
96
  headers: {
89
- Location: url,
97
+ Location: resolvedUrl,
90
98
  "X-RSC-Redirect": "soft",
91
99
  },
92
100
  });
@@ -0,0 +1,155 @@
1
+ import type { AllUseItems } from "../route-types.js";
2
+ import { isPrerenderHandler, isPassthroughHandler } from "../prerender.js";
3
+ import { isStaticHandler } from "../static-handler.js";
4
+
5
+ /**
6
+ * Extract the .use callback from any handler shape.
7
+ *
8
+ * Checks definition brands first (objects with __brand), then plain functions.
9
+ * ReactNode handlers return undefined (no .use possible).
10
+ */
11
+ export function resolveHandlerUse(handler: unknown): (() => any[]) | undefined {
12
+ if (handler == null) return undefined;
13
+
14
+ // Check branded definitions first — they're objects but also have typeof "object"
15
+ if (isPassthroughHandler(handler)) {
16
+ return (handler as any).use;
17
+ }
18
+ if (isPrerenderHandler(handler)) {
19
+ return (handler as any).use;
20
+ }
21
+ if (isStaticHandler(handler)) {
22
+ return (handler as any).use;
23
+ }
24
+ // Loader definitions from createLoader() — branded objects with optional .use
25
+ if (typeof handler === "object" && (handler as any).__brand === "loader") {
26
+ return (handler as any).use;
27
+ }
28
+ // Plain handler function
29
+ if (typeof handler === "function") {
30
+ return (handler as any).use;
31
+ }
32
+ // ReactNode or other — no .use
33
+ return undefined;
34
+ }
35
+
36
+ /**
37
+ * Allowed item types per mount site.
38
+ * Mirrors the RouteUseItem / ParallelUseItem / InterceptUseItem / LayoutUseItem unions
39
+ * from route-types.ts for runtime validation.
40
+ */
41
+ const MOUNT_SITE_ALLOWED_TYPES: Record<string, Set<string>> = {
42
+ path: new Set([
43
+ "layout",
44
+ "parallel",
45
+ "intercept",
46
+ "middleware",
47
+ "revalidate",
48
+ "loader",
49
+ "loading",
50
+ "errorBoundary",
51
+ "notFoundBoundary",
52
+ "cache",
53
+ "transition",
54
+ ]),
55
+ // Response routes (path.json, path.text, etc.) — mirrors ResponseRouteUseItem
56
+ response: new Set(["middleware", "cache"]),
57
+ route: new Set([
58
+ "layout",
59
+ "parallel",
60
+ "intercept",
61
+ "middleware",
62
+ "revalidate",
63
+ "loader",
64
+ "loading",
65
+ "errorBoundary",
66
+ "notFoundBoundary",
67
+ "cache",
68
+ "transition",
69
+ ]),
70
+ // layout allows AllUseItems — no validation needed, but included for completeness
71
+ layout: new Set([
72
+ "layout",
73
+ "route",
74
+ "middleware",
75
+ "revalidate",
76
+ "parallel",
77
+ "intercept",
78
+ "loader",
79
+ "loading",
80
+ "errorBoundary",
81
+ "notFoundBoundary",
82
+ "cache",
83
+ "transition",
84
+ "include",
85
+ ]),
86
+ parallel: new Set([
87
+ "revalidate",
88
+ "loader",
89
+ "loading",
90
+ "errorBoundary",
91
+ "notFoundBoundary",
92
+ "transition",
93
+ ]),
94
+ intercept: new Set([
95
+ "middleware",
96
+ "revalidate",
97
+ "loader",
98
+ "loading",
99
+ "errorBoundary",
100
+ "notFoundBoundary",
101
+ "layout",
102
+ "route",
103
+ "when",
104
+ "transition",
105
+ ]),
106
+ // LoaderUseItem — only revalidate + cache can attach to a loader entry
107
+ loader: new Set(["revalidate", "cache"]),
108
+ };
109
+
110
+ /**
111
+ * Validate that items from handler.use() are valid for the given mount site.
112
+ * Throws a descriptive error if any item is not allowed.
113
+ */
114
+ export function validateHandlerUseItems(
115
+ items: AllUseItems[],
116
+ mountSite: string,
117
+ ): void {
118
+ const allowed = MOUNT_SITE_ALLOWED_TYPES[mountSite];
119
+ if (!allowed) return;
120
+ for (const item of items) {
121
+ if (item == null) continue;
122
+ if (!allowed.has((item as any).type)) {
123
+ throw new Error(
124
+ `handler.use() returned ${(item as any).type}() which is not valid inside ${mountSite}(). ` +
125
+ `Allowed types: ${[...allowed].join(", ")}.`,
126
+ );
127
+ }
128
+ }
129
+ }
130
+
131
+ /**
132
+ * Create a merged use callback from handler.use and explicit use.
133
+ * handler.use items come first (defaults), explicit items second (overrides).
134
+ * Returns undefined if both are absent.
135
+ */
136
+ export function mergeHandlerUse(
137
+ handlerUse: (() => any[]) | undefined,
138
+ explicitUse: (() => any[]) | undefined,
139
+ mountSite: string,
140
+ ): (() => any[]) | undefined {
141
+ if (!handlerUse && !explicitUse) return undefined;
142
+ if (!handlerUse) return explicitUse;
143
+ if (!explicitUse) {
144
+ return () => {
145
+ const items = handlerUse().flat(3);
146
+ validateHandlerUseItems(items, mountSite);
147
+ return items;
148
+ };
149
+ }
150
+ return () => {
151
+ const hItems = handlerUse().flat(3);
152
+ validateHandlerUseItems(hItems, mountSite);
153
+ return [...hItems, ...explicitUse()];
154
+ };
155
+ }
@@ -0,0 +1,32 @@
1
+ import type { AllUseItems, WhenItem } from "../route-types.js";
2
+
3
+ /**
4
+ * The set of valid use-item `type` discriminants — the single runtime source of
5
+ * truth for "is this a well-formed use item?" shape validation.
6
+ *
7
+ * Declared via a `Record<...>` so that adding a member to the union without
8
+ * updating this map is a compile error. `when` is included because when() items
9
+ * are valid inside intercept() even though WhenItem is not part of AllUseItems
10
+ * (it lives only in InterceptUseItem). This is shape validation only; per-mount-
11
+ * site rules remain the narrower hand-written tables in resolve-handler-use.ts.
12
+ */
13
+ const USE_ITEM_TYPES: Record<AllUseItems["type"] | WhenItem["type"], true> = {
14
+ layout: true,
15
+ route: true,
16
+ middleware: true,
17
+ revalidate: true,
18
+ parallel: true,
19
+ intercept: true,
20
+ loader: true,
21
+ loading: true,
22
+ errorBoundary: true,
23
+ notFoundBoundary: true,
24
+ when: true,
25
+ cache: true,
26
+ transition: true,
27
+ include: true,
28
+ };
29
+
30
+ export const ALL_USE_ITEM_TYPES: ReadonlySet<string> = new Set(
31
+ Object.keys(USE_ITEM_TYPES),
32
+ );