@rangojs/router 0.0.0-experimental.66 → 0.0.0-experimental.66f5aa51

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 (1197) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +169 -31
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +3012 -1058
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +224 -32
  12. package/skills/caching/SKILL.md +279 -17
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +50 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +77 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +70 -5
  36. package/skills/router-setup/SKILL.md +29 -6
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +322 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +0 -65
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/connection-warmup.ts +134 -0
  66. package/src/browser/cookie-name.ts +140 -0
  67. package/src/browser/event-controller.ts +192 -150
  68. package/src/browser/history-state.ts +21 -0
  69. package/src/browser/index.ts +3 -3
  70. package/src/browser/invalidate-client-cache.ts +52 -0
  71. package/src/browser/navigation-bridge.ts +92 -18
  72. package/src/browser/navigation-client.ts +146 -69
  73. package/src/browser/navigation-store-handle.ts +38 -0
  74. package/src/browser/navigation-store.ts +33 -59
  75. package/src/browser/navigation-transaction.ts +9 -59
  76. package/src/browser/network-error-handler.ts +34 -7
  77. package/src/browser/partial-update.ts +131 -121
  78. package/src/browser/prefetch/cache.ts +205 -62
  79. package/src/browser/prefetch/fetch.ts +321 -37
  80. package/src/browser/prefetch/queue.ts +42 -8
  81. package/src/browser/rango-state.ts +158 -76
  82. package/src/browser/react/Link.tsx +60 -9
  83. package/src/browser/react/NavigationProvider.tsx +97 -118
  84. package/src/browser/react/ScrollRestoration.tsx +10 -6
  85. package/src/browser/react/filter-segment-order.ts +66 -7
  86. package/src/browser/react/index.ts +0 -48
  87. package/src/browser/react/location-state-shared.ts +178 -8
  88. package/src/browser/react/location-state.ts +39 -14
  89. package/src/browser/react/use-action.ts +6 -15
  90. package/src/browser/react/use-handle.ts +17 -14
  91. package/src/browser/react/use-href.tsx +8 -1
  92. package/src/browser/react/use-link-status.ts +33 -8
  93. package/src/browser/react/use-navigation.ts +32 -7
  94. package/src/browser/react/use-params.ts +20 -10
  95. package/src/browser/react/use-reverse.ts +106 -0
  96. package/src/browser/react/use-router.ts +25 -3
  97. package/src/browser/react/use-search-params.ts +0 -5
  98. package/src/browser/react/use-segments.ts +11 -21
  99. package/src/browser/response-adapter.ts +80 -5
  100. package/src/browser/rsc-router.tsx +91 -24
  101. package/src/browser/scroll-restoration.ts +30 -17
  102. package/src/browser/segment-reconciler.ts +36 -14
  103. package/src/browser/segment-structure-assert.ts +2 -2
  104. package/src/browser/server-action-bridge.ts +214 -55
  105. package/src/browser/types.ts +57 -8
  106. package/src/browser/validate-redirect-origin.ts +43 -16
  107. package/src/build/collect-fallback-refs.ts +107 -0
  108. package/src/build/generate-manifest.ts +60 -35
  109. package/src/build/generate-route-types.ts +2 -1
  110. package/src/build/index.ts +8 -2
  111. package/src/build/prefix-tree-utils.ts +123 -0
  112. package/src/build/route-trie.ts +165 -36
  113. package/src/build/route-types/ast-route-extraction.ts +15 -8
  114. package/src/build/route-types/codegen.ts +16 -5
  115. package/src/build/route-types/include-resolution.ts +117 -23
  116. package/src/build/route-types/param-extraction.ts +6 -3
  117. package/src/build/route-types/per-module-writer.ts +22 -6
  118. package/src/build/route-types/router-processing.ts +55 -28
  119. package/src/build/route-types/scan-filter.ts +1 -1
  120. package/src/build/route-types/source-scan.ts +216 -0
  121. package/src/build/runtime-discovery.ts +9 -20
  122. package/src/cache/cache-error.ts +104 -0
  123. package/src/cache/cache-key-utils.ts +29 -13
  124. package/src/cache/cache-policy.ts +108 -34
  125. package/src/cache/cache-runtime.ts +199 -37
  126. package/src/cache/cache-scope.ts +188 -82
  127. package/src/cache/cache-tag.ts +103 -0
  128. package/src/cache/cf/cf-base64.ts +33 -0
  129. package/src/cache/cf/cf-cache-constants.ts +127 -0
  130. package/src/cache/cf/cf-cache-store.ts +1989 -378
  131. package/src/cache/cf/cf-cache-types.ts +349 -0
  132. package/src/cache/cf/cf-kv-utils.ts +46 -0
  133. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  134. package/src/cache/cf/index.ts +6 -16
  135. package/src/cache/document-cache.ts +72 -20
  136. package/src/cache/handle-snapshot.ts +70 -0
  137. package/src/cache/index.ts +10 -20
  138. package/src/cache/memory-segment-store.ts +136 -37
  139. package/src/cache/profile-registry.ts +31 -31
  140. package/src/cache/read-through-swr.ts +41 -11
  141. package/src/cache/segment-codec.ts +9 -17
  142. package/src/cache/tag-invalidation.ts +230 -0
  143. package/src/cache/types.ts +37 -100
  144. package/src/client.rsc.tsx +44 -21
  145. package/src/client.tsx +118 -235
  146. package/src/cloudflare/index.ts +11 -0
  147. package/src/cloudflare/tracing.ts +109 -0
  148. package/src/component-utils.ts +19 -0
  149. package/src/components/DefaultDocument.tsx +8 -2
  150. package/src/context-var.ts +18 -6
  151. package/src/decode-loader-results.ts +52 -0
  152. package/src/defer.ts +196 -0
  153. package/src/deps/ssr.ts +0 -1
  154. package/src/encode-kv.ts +49 -0
  155. package/src/errors.ts +30 -4
  156. package/src/escape-script.ts +52 -0
  157. package/src/handle.ts +31 -23
  158. package/src/handles/MetaTags.tsx +56 -19
  159. package/src/handles/Scripts.tsx +183 -0
  160. package/src/handles/breadcrumbs.ts +37 -8
  161. package/src/handles/is-thenable.ts +19 -0
  162. package/src/handles/meta.ts +51 -40
  163. package/src/handles/script.ts +244 -0
  164. package/src/host/cookie-handler.ts +9 -60
  165. package/src/host/errors.ts +0 -24
  166. package/src/host/index.ts +8 -2
  167. package/src/host/pattern-matcher.ts +23 -52
  168. package/src/host/router.ts +107 -99
  169. package/src/host/testing.ts +40 -27
  170. package/src/host/types.ts +37 -4
  171. package/src/host/utils.ts +1 -1
  172. package/src/href-client.ts +137 -22
  173. package/src/index.rsc.ts +90 -11
  174. package/src/index.ts +129 -19
  175. package/src/internal-debug.ts +2 -4
  176. package/src/loader-store.ts +500 -0
  177. package/src/loader.rsc.ts +20 -13
  178. package/src/loader.ts +12 -11
  179. package/src/missing-id-error.ts +68 -0
  180. package/src/outlet-context.ts +1 -1
  181. package/src/outlet-provider.tsx +1 -5
  182. package/src/prerender/param-hash.ts +16 -16
  183. package/src/prerender/store.ts +32 -37
  184. package/src/prerender.ts +61 -6
  185. package/src/redirect-origin.ts +100 -0
  186. package/src/regex-escape.ts +8 -0
  187. package/src/render-error-thrower.tsx +20 -0
  188. package/src/response-utils.ts +62 -0
  189. package/src/reverse.ts +65 -36
  190. package/src/root-error-boundary.tsx +1 -19
  191. package/src/route-content-wrapper.tsx +7 -72
  192. package/src/route-definition/dsl-helpers.ts +418 -273
  193. package/src/route-definition/helper-factories.ts +29 -139
  194. package/src/route-definition/helpers-types.ts +103 -31
  195. package/src/route-definition/redirect.ts +44 -11
  196. package/src/route-definition/resolve-handler-use.ts +12 -0
  197. package/src/route-definition/use-item-types.ts +32 -0
  198. package/src/route-map-builder.ts +0 -16
  199. package/src/route-types.ts +26 -41
  200. package/src/router/basename.ts +14 -0
  201. package/src/router/content-negotiation.ts +73 -25
  202. package/src/router/error-handling.ts +45 -18
  203. package/src/router/find-match.ts +44 -23
  204. package/src/router/handler-context.ts +27 -39
  205. package/src/router/instrument.ts +350 -0
  206. package/src/router/intercept-resolution.ts +39 -20
  207. package/src/router/lazy-includes.ts +15 -52
  208. package/src/router/loader-resolution.ts +155 -72
  209. package/src/router/logging.ts +0 -6
  210. package/src/router/manifest.ts +40 -42
  211. package/src/router/match-api.ts +4 -23
  212. package/src/router/match-context.ts +0 -22
  213. package/src/router/match-handlers.ts +58 -58
  214. package/src/router/match-middleware/background-revalidation.ts +6 -7
  215. package/src/router/match-middleware/cache-lookup.ts +161 -286
  216. package/src/router/match-middleware/cache-store.ts +31 -34
  217. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  218. package/src/router/match-middleware/segment-resolution.ts +0 -22
  219. package/src/router/match-pipelines.ts +1 -42
  220. package/src/router/match-result.ts +87 -39
  221. package/src/router/metrics.ts +0 -34
  222. package/src/router/middleware-types.ts +7 -134
  223. package/src/router/middleware.ts +266 -166
  224. package/src/router/navigation-snapshot.ts +0 -51
  225. package/src/router/params-util.ts +23 -0
  226. package/src/router/pattern-matching.ts +132 -90
  227. package/src/router/prefetch-cache-ttl.ts +51 -0
  228. package/src/router/prerender-match.ts +104 -65
  229. package/src/router/preview-match.ts +3 -1
  230. package/src/router/request-classification.ts +28 -62
  231. package/src/router/revalidation.ts +123 -73
  232. package/src/router/route-snapshot.ts +0 -1
  233. package/src/router/router-context.ts +3 -28
  234. package/src/router/router-interfaces.ts +83 -35
  235. package/src/router/router-options.ts +136 -5
  236. package/src/router/router-registry.ts +2 -5
  237. package/src/router/segment-resolution/fresh.ts +98 -84
  238. package/src/router/segment-resolution/helpers.ts +86 -6
  239. package/src/router/segment-resolution/loader-cache.ts +62 -37
  240. package/src/router/segment-resolution/revalidation.ts +274 -319
  241. package/src/router/segment-resolution/static-store.ts +19 -5
  242. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  243. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  244. package/src/router/segment-resolution.ts +5 -1
  245. package/src/router/segment-wrappers.ts +6 -5
  246. package/src/router/state-cookie-name.ts +33 -0
  247. package/src/router/substitute-pattern-params.ts +56 -0
  248. package/src/router/telemetry-otel.ts +161 -199
  249. package/src/router/telemetry.ts +96 -19
  250. package/src/router/timeout.ts +0 -20
  251. package/src/router/tracing.ts +206 -0
  252. package/src/router/trie-matching.ts +163 -59
  253. package/src/router/types.ts +9 -63
  254. package/src/router/url-params.ts +44 -0
  255. package/src/router.ts +110 -55
  256. package/src/rsc/handler-context.ts +3 -2
  257. package/src/rsc/handler.ts +274 -223
  258. package/src/rsc/helpers.ts +168 -46
  259. package/src/rsc/index.ts +2 -5
  260. package/src/rsc/json-route-result.ts +38 -0
  261. package/src/rsc/loader-fetch.ts +114 -38
  262. package/src/rsc/manifest-init.ts +28 -41
  263. package/src/rsc/origin-guard.ts +39 -25
  264. package/src/rsc/progressive-enhancement.ts +63 -9
  265. package/src/rsc/redirect-guard.ts +99 -0
  266. package/src/rsc/response-cache-serve.ts +238 -0
  267. package/src/rsc/response-error.ts +79 -12
  268. package/src/rsc/response-route-handler.ts +99 -189
  269. package/src/rsc/rsc-rendering.ts +99 -75
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +258 -115
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +23 -5
  274. package/src/runtime-env.ts +18 -0
  275. package/src/search-params.ts +35 -30
  276. package/src/segment-content-promise.ts +67 -0
  277. package/src/segment-loader-promise.ts +149 -0
  278. package/src/segment-system.tsx +218 -202
  279. package/src/serialize.ts +243 -0
  280. package/src/server/context.ts +175 -53
  281. package/src/server/cookie-parse.ts +32 -0
  282. package/src/server/cookie-store.ts +80 -5
  283. package/src/server/handle-store.ts +21 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +235 -175
  286. package/src/ssr/index.tsx +21 -16
  287. package/src/static-handler.ts +10 -13
  288. package/src/testing/cache-status.ts +162 -0
  289. package/src/testing/collect-handle.ts +40 -0
  290. package/src/testing/dispatch.ts +701 -0
  291. package/src/testing/dom.entry.ts +22 -0
  292. package/src/testing/e2e/fixture.ts +188 -0
  293. package/src/testing/e2e/index.ts +128 -0
  294. package/src/testing/e2e/matchers.ts +35 -0
  295. package/src/testing/e2e/page-helpers.ts +272 -0
  296. package/src/testing/e2e/parity.ts +387 -0
  297. package/src/testing/e2e/server.ts +195 -0
  298. package/src/testing/flight-matchers.ts +97 -0
  299. package/src/testing/flight-normalize.ts +11 -0
  300. package/src/testing/flight-runtime.d.ts +57 -0
  301. package/src/testing/flight-tree.ts +682 -0
  302. package/src/testing/flight.entry.ts +52 -0
  303. package/src/testing/flight.ts +257 -0
  304. package/src/testing/generated-routes.ts +183 -0
  305. package/src/testing/index.ts +99 -0
  306. package/src/testing/internal/context.ts +371 -0
  307. package/src/testing/internal/flight-client-globals.ts +30 -0
  308. package/src/testing/internal/seed-vars.ts +54 -0
  309. package/src/testing/render-handler.ts +343 -0
  310. package/src/testing/render-route.tsx +581 -0
  311. package/src/testing/run-loader.ts +385 -0
  312. package/src/testing/run-middleware.ts +205 -0
  313. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  314. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  315. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  316. package/src/testing/vitest-stubs/version.ts +5 -0
  317. package/src/testing/vitest.ts +305 -0
  318. package/src/theme/ThemeProvider.tsx +20 -58
  319. package/src/theme/ThemeScript.tsx +7 -9
  320. package/src/theme/constants.ts +52 -13
  321. package/src/theme/index.ts +0 -7
  322. package/src/theme/theme-context.ts +1 -5
  323. package/src/theme/theme-script.ts +22 -21
  324. package/src/theme/use-theme.ts +0 -3
  325. package/src/types/boundaries.ts +0 -35
  326. package/src/types/cache-types.ts +13 -4
  327. package/src/types/error-types.ts +30 -90
  328. package/src/types/global-namespace.ts +54 -41
  329. package/src/types/handler-context.ts +109 -61
  330. package/src/types/index.ts +1 -10
  331. package/src/types/loader-types.ts +11 -9
  332. package/src/types/request-scope.ts +112 -0
  333. package/src/types/route-config.ts +6 -50
  334. package/src/types/route-entry.ts +11 -6
  335. package/src/types/segments.ts +36 -15
  336. package/src/urls/include-helper.ts +33 -70
  337. package/src/urls/index.ts +1 -11
  338. package/src/urls/path-helper-types.ts +49 -9
  339. package/src/urls/path-helper.ts +17 -106
  340. package/src/urls/pattern-types.ts +36 -19
  341. package/src/urls/response-types.ts +22 -29
  342. package/src/urls/type-extraction.ts +58 -139
  343. package/src/urls/urls-function.ts +1 -18
  344. package/src/use-loader.tsx +295 -107
  345. package/src/vite/debug.ts +185 -0
  346. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  347. package/src/vite/discovery/discover-routers.ts +126 -85
  348. package/src/vite/discovery/discovery-errors.ts +194 -0
  349. package/src/vite/discovery/gate-state.ts +171 -0
  350. package/src/vite/discovery/prerender-collection.ts +211 -142
  351. package/src/vite/discovery/route-types-writer.ts +40 -84
  352. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  353. package/src/vite/discovery/state.ts +44 -0
  354. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  355. package/src/vite/index.ts +2 -0
  356. package/src/vite/plugin-types.ts +126 -8
  357. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  358. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  359. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  360. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  362. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  363. package/src/vite/plugins/expose-action-id.ts +48 -95
  364. package/src/vite/plugins/expose-id-utils.ts +96 -51
  365. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  366. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  367. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  368. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  369. package/src/vite/plugins/expose-internal-ids.ts +534 -304
  370. package/src/vite/plugins/performance-tracks.ts +26 -25
  371. package/src/vite/plugins/refresh-cmd.ts +1 -1
  372. package/src/vite/plugins/use-cache-transform.ts +73 -83
  373. package/src/vite/plugins/version-injector.ts +21 -25
  374. package/src/vite/plugins/version-plugin.ts +37 -40
  375. package/src/vite/plugins/virtual-entries.ts +13 -18
  376. package/src/vite/rango.ts +109 -118
  377. package/src/vite/router-discovery.ts +769 -106
  378. package/src/vite/utils/ast-handler-extract.ts +26 -35
  379. package/src/vite/utils/banner.ts +1 -1
  380. package/src/vite/utils/bundle-analysis.ts +10 -15
  381. package/src/vite/utils/client-chunks.ts +184 -0
  382. package/src/vite/utils/directive-prologue.ts +40 -0
  383. package/src/vite/utils/forward-user-plugins.ts +171 -0
  384. package/src/vite/utils/manifest-utils.ts +4 -59
  385. package/src/vite/utils/package-resolution.ts +20 -52
  386. package/src/vite/utils/prerender-utils.ts +67 -38
  387. package/src/vite/utils/shared-utils.ts +90 -41
  388. package/dist/__internal.d.ts +0 -83
  389. package/dist/__internal.d.ts.map +0 -1
  390. package/dist/__internal.js +0 -19
  391. package/dist/__internal.js.map +0 -1
  392. package/dist/__mocks__/version.d.ts +0 -7
  393. package/dist/__mocks__/version.d.ts.map +0 -1
  394. package/dist/__mocks__/version.js +0 -7
  395. package/dist/__mocks__/version.js.map +0 -1
  396. package/dist/__tests__/client-href.test.d.ts +0 -2
  397. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  398. package/dist/__tests__/client-href.test.js +0 -74
  399. package/dist/__tests__/client-href.test.js.map +0 -1
  400. package/dist/__tests__/component-utils.test.d.ts +0 -2
  401. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  402. package/dist/__tests__/component-utils.test.js +0 -51
  403. package/dist/__tests__/component-utils.test.js.map +0 -1
  404. package/dist/__tests__/event-controller.test.d.ts +0 -2
  405. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  406. package/dist/__tests__/event-controller.test.js +0 -538
  407. package/dist/__tests__/event-controller.test.js.map +0 -1
  408. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  409. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  410. package/dist/__tests__/helpers/route-tree.js +0 -374
  411. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  412. package/dist/__tests__/match-result.test.d.ts +0 -2
  413. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  414. package/dist/__tests__/match-result.test.js +0 -154
  415. package/dist/__tests__/match-result.test.js.map +0 -1
  416. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  417. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  418. package/dist/__tests__/navigation-store.test.js +0 -440
  419. package/dist/__tests__/navigation-store.test.js.map +0 -1
  420. package/dist/__tests__/partial-update.test.d.ts +0 -2
  421. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  422. package/dist/__tests__/partial-update.test.js +0 -1009
  423. package/dist/__tests__/partial-update.test.js.map +0 -1
  424. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  425. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  426. package/dist/__tests__/reverse-types.test.js +0 -656
  427. package/dist/__tests__/reverse-types.test.js.map +0 -1
  428. package/dist/__tests__/route-definition.test.d.ts +0 -2
  429. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  430. package/dist/__tests__/route-definition.test.js +0 -55
  431. package/dist/__tests__/route-definition.test.js.map +0 -1
  432. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  433. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  434. package/dist/__tests__/router-helpers.test.js +0 -377
  435. package/dist/__tests__/router-helpers.test.js.map +0 -1
  436. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  437. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  438. package/dist/__tests__/router-integration-2.test.js +0 -426
  439. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  440. package/dist/__tests__/router-integration.test.d.ts +0 -2
  441. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  442. package/dist/__tests__/router-integration.test.js +0 -1051
  443. package/dist/__tests__/router-integration.test.js.map +0 -1
  444. package/dist/__tests__/search-params.test.d.ts +0 -5
  445. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  446. package/dist/__tests__/search-params.test.js +0 -306
  447. package/dist/__tests__/search-params.test.js.map +0 -1
  448. package/dist/__tests__/segment-system.test.d.ts +0 -2
  449. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  450. package/dist/__tests__/segment-system.test.js +0 -627
  451. package/dist/__tests__/segment-system.test.js.map +0 -1
  452. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  453. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  454. package/dist/__tests__/static-handler-types.test.js +0 -63
  455. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  456. package/dist/__tests__/urls.test.d.ts +0 -2
  457. package/dist/__tests__/urls.test.d.ts.map +0 -1
  458. package/dist/__tests__/urls.test.js +0 -421
  459. package/dist/__tests__/urls.test.js.map +0 -1
  460. package/dist/__tests__/use-mount.test.d.ts +0 -2
  461. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  462. package/dist/__tests__/use-mount.test.js +0 -35
  463. package/dist/__tests__/use-mount.test.js.map +0 -1
  464. package/dist/bin/rango.d.ts +0 -2
  465. package/dist/bin/rango.d.ts.map +0 -1
  466. package/dist/bin/rango.js.map +0 -1
  467. package/dist/browser/event-controller.d.ts +0 -191
  468. package/dist/browser/event-controller.d.ts.map +0 -1
  469. package/dist/browser/event-controller.js +0 -559
  470. package/dist/browser/event-controller.js.map +0 -1
  471. package/dist/browser/index.d.ts +0 -2
  472. package/dist/browser/index.d.ts.map +0 -1
  473. package/dist/browser/index.js +0 -14
  474. package/dist/browser/index.js.map +0 -1
  475. package/dist/browser/link-interceptor.d.ts +0 -38
  476. package/dist/browser/link-interceptor.d.ts.map +0 -1
  477. package/dist/browser/link-interceptor.js +0 -99
  478. package/dist/browser/link-interceptor.js.map +0 -1
  479. package/dist/browser/logging.d.ts +0 -10
  480. package/dist/browser/logging.d.ts.map +0 -1
  481. package/dist/browser/logging.js +0 -29
  482. package/dist/browser/logging.js.map +0 -1
  483. package/dist/browser/lru-cache.d.ts +0 -17
  484. package/dist/browser/lru-cache.d.ts.map +0 -1
  485. package/dist/browser/lru-cache.js +0 -50
  486. package/dist/browser/lru-cache.js.map +0 -1
  487. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  488. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  489. package/dist/browser/merge-segment-loaders.js +0 -102
  490. package/dist/browser/merge-segment-loaders.js.map +0 -1
  491. package/dist/browser/navigation-bridge.d.ts +0 -102
  492. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  493. package/dist/browser/navigation-bridge.js +0 -708
  494. package/dist/browser/navigation-bridge.js.map +0 -1
  495. package/dist/browser/navigation-client.d.ts +0 -25
  496. package/dist/browser/navigation-client.d.ts.map +0 -1
  497. package/dist/browser/navigation-client.js +0 -157
  498. package/dist/browser/navigation-client.js.map +0 -1
  499. package/dist/browser/navigation-store.d.ts +0 -101
  500. package/dist/browser/navigation-store.d.ts.map +0 -1
  501. package/dist/browser/navigation-store.js +0 -625
  502. package/dist/browser/navigation-store.js.map +0 -1
  503. package/dist/browser/partial-update.d.ts +0 -75
  504. package/dist/browser/partial-update.d.ts.map +0 -1
  505. package/dist/browser/partial-update.js +0 -426
  506. package/dist/browser/partial-update.js.map +0 -1
  507. package/dist/browser/react/Link.d.ts +0 -86
  508. package/dist/browser/react/Link.d.ts.map +0 -1
  509. package/dist/browser/react/Link.js +0 -128
  510. package/dist/browser/react/Link.js.map +0 -1
  511. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  512. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  513. package/dist/browser/react/NavigationProvider.js +0 -216
  514. package/dist/browser/react/NavigationProvider.js.map +0 -1
  515. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  516. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  517. package/dist/browser/react/ScrollRestoration.js +0 -57
  518. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  519. package/dist/browser/react/context.d.ts +0 -46
  520. package/dist/browser/react/context.d.ts.map +0 -1
  521. package/dist/browser/react/context.js +0 -10
  522. package/dist/browser/react/context.js.map +0 -1
  523. package/dist/browser/react/index.d.ts +0 -11
  524. package/dist/browser/react/index.d.ts.map +0 -1
  525. package/dist/browser/react/index.js +0 -22
  526. package/dist/browser/react/index.js.map +0 -1
  527. package/dist/browser/react/location-state-shared.d.ts +0 -63
  528. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  529. package/dist/browser/react/location-state-shared.js +0 -81
  530. package/dist/browser/react/location-state-shared.js.map +0 -1
  531. package/dist/browser/react/location-state.d.ts +0 -23
  532. package/dist/browser/react/location-state.d.ts.map +0 -1
  533. package/dist/browser/react/location-state.js +0 -29
  534. package/dist/browser/react/location-state.js.map +0 -1
  535. package/dist/browser/react/mount-context.d.ts +0 -24
  536. package/dist/browser/react/mount-context.d.ts.map +0 -1
  537. package/dist/browser/react/mount-context.js +0 -24
  538. package/dist/browser/react/mount-context.js.map +0 -1
  539. package/dist/browser/react/use-action.d.ts +0 -64
  540. package/dist/browser/react/use-action.d.ts.map +0 -1
  541. package/dist/browser/react/use-action.js +0 -134
  542. package/dist/browser/react/use-action.js.map +0 -1
  543. package/dist/browser/react/use-client-cache.d.ts +0 -41
  544. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  545. package/dist/browser/react/use-client-cache.js +0 -39
  546. package/dist/browser/react/use-client-cache.js.map +0 -1
  547. package/dist/browser/react/use-handle.d.ts +0 -31
  548. package/dist/browser/react/use-handle.d.ts.map +0 -1
  549. package/dist/browser/react/use-handle.js +0 -144
  550. package/dist/browser/react/use-handle.js.map +0 -1
  551. package/dist/browser/react/use-href.d.ts +0 -33
  552. package/dist/browser/react/use-href.d.ts.map +0 -1
  553. package/dist/browser/react/use-href.js +0 -39
  554. package/dist/browser/react/use-href.js.map +0 -1
  555. package/dist/browser/react/use-link-status.d.ts +0 -37
  556. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  557. package/dist/browser/react/use-link-status.js +0 -99
  558. package/dist/browser/react/use-link-status.js.map +0 -1
  559. package/dist/browser/react/use-mount.d.ts +0 -25
  560. package/dist/browser/react/use-mount.d.ts.map +0 -1
  561. package/dist/browser/react/use-mount.js +0 -30
  562. package/dist/browser/react/use-mount.js.map +0 -1
  563. package/dist/browser/react/use-navigation.d.ts +0 -27
  564. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  565. package/dist/browser/react/use-navigation.js +0 -87
  566. package/dist/browser/react/use-navigation.js.map +0 -1
  567. package/dist/browser/react/use-segments.d.ts +0 -38
  568. package/dist/browser/react/use-segments.d.ts.map +0 -1
  569. package/dist/browser/react/use-segments.js +0 -130
  570. package/dist/browser/react/use-segments.js.map +0 -1
  571. package/dist/browser/request-controller.d.ts +0 -26
  572. package/dist/browser/request-controller.d.ts.map +0 -1
  573. package/dist/browser/request-controller.js +0 -147
  574. package/dist/browser/request-controller.js.map +0 -1
  575. package/dist/browser/rsc-router.d.ts +0 -129
  576. package/dist/browser/rsc-router.d.ts.map +0 -1
  577. package/dist/browser/rsc-router.js +0 -195
  578. package/dist/browser/rsc-router.js.map +0 -1
  579. package/dist/browser/scroll-restoration.d.ts +0 -93
  580. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  581. package/dist/browser/scroll-restoration.js +0 -321
  582. package/dist/browser/scroll-restoration.js.map +0 -1
  583. package/dist/browser/segment-structure-assert.d.ts +0 -17
  584. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  585. package/dist/browser/segment-structure-assert.js +0 -59
  586. package/dist/browser/segment-structure-assert.js.map +0 -1
  587. package/dist/browser/server-action-bridge.d.ts +0 -26
  588. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  589. package/dist/browser/server-action-bridge.js +0 -668
  590. package/dist/browser/server-action-bridge.js.map +0 -1
  591. package/dist/browser/shallow.d.ts +0 -12
  592. package/dist/browser/shallow.d.ts.map +0 -1
  593. package/dist/browser/shallow.js +0 -34
  594. package/dist/browser/shallow.js.map +0 -1
  595. package/dist/browser/types.d.ts +0 -369
  596. package/dist/browser/types.d.ts.map +0 -1
  597. package/dist/browser/types.js +0 -2
  598. package/dist/browser/types.js.map +0 -1
  599. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  600. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  601. package/dist/build/__tests__/generate-cli.test.js +0 -237
  602. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  603. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  604. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  605. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  606. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  607. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  608. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  609. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  610. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  611. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  613. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  614. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  615. package/dist/build/generate-manifest.d.ts +0 -81
  616. package/dist/build/generate-manifest.d.ts.map +0 -1
  617. package/dist/build/generate-manifest.js +0 -276
  618. package/dist/build/generate-manifest.js.map +0 -1
  619. package/dist/build/generate-route-types.d.ts +0 -115
  620. package/dist/build/generate-route-types.d.ts.map +0 -1
  621. package/dist/build/generate-route-types.js +0 -740
  622. package/dist/build/generate-route-types.js.map +0 -1
  623. package/dist/build/index.d.ts +0 -21
  624. package/dist/build/index.d.ts.map +0 -1
  625. package/dist/build/index.js +0 -21
  626. package/dist/build/index.js.map +0 -1
  627. package/dist/build/route-trie.d.ts +0 -71
  628. package/dist/build/route-trie.d.ts.map +0 -1
  629. package/dist/build/route-trie.js +0 -175
  630. package/dist/build/route-trie.js.map +0 -1
  631. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  632. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  633. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  634. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  635. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  636. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  637. package/dist/cache/__tests__/document-cache.test.js +0 -345
  638. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  639. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  641. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  642. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  643. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  644. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  645. package/dist/cache/__tests__/memory-store.test.js +0 -367
  646. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  647. package/dist/cache/cache-scope.d.ts +0 -102
  648. package/dist/cache/cache-scope.d.ts.map +0 -1
  649. package/dist/cache/cache-scope.js +0 -440
  650. package/dist/cache/cache-scope.js.map +0 -1
  651. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  655. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  656. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  657. package/dist/cache/cf/cf-cache-store.js +0 -242
  658. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  659. package/dist/cache/cf/index.d.ts +0 -14
  660. package/dist/cache/cf/index.d.ts.map +0 -1
  661. package/dist/cache/cf/index.js +0 -17
  662. package/dist/cache/cf/index.js.map +0 -1
  663. package/dist/cache/document-cache.d.ts +0 -64
  664. package/dist/cache/document-cache.d.ts.map +0 -1
  665. package/dist/cache/document-cache.js +0 -228
  666. package/dist/cache/document-cache.js.map +0 -1
  667. package/dist/cache/index.d.ts +0 -19
  668. package/dist/cache/index.d.ts.map +0 -1
  669. package/dist/cache/index.js +0 -21
  670. package/dist/cache/index.js.map +0 -1
  671. package/dist/cache/memory-segment-store.d.ts +0 -110
  672. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  673. package/dist/cache/memory-segment-store.js +0 -117
  674. package/dist/cache/memory-segment-store.js.map +0 -1
  675. package/dist/cache/memory-store.d.ts +0 -41
  676. package/dist/cache/memory-store.d.ts.map +0 -1
  677. package/dist/cache/memory-store.js +0 -191
  678. package/dist/cache/memory-store.js.map +0 -1
  679. package/dist/cache/types.d.ts +0 -317
  680. package/dist/cache/types.d.ts.map +0 -1
  681. package/dist/cache/types.js +0 -12
  682. package/dist/cache/types.js.map +0 -1
  683. package/dist/client.d.ts +0 -248
  684. package/dist/client.d.ts.map +0 -1
  685. package/dist/client.js +0 -367
  686. package/dist/client.js.map +0 -1
  687. package/dist/client.rsc.d.ts +0 -26
  688. package/dist/client.rsc.d.ts.map +0 -1
  689. package/dist/client.rsc.js +0 -46
  690. package/dist/client.rsc.js.map +0 -1
  691. package/dist/component-utils.d.ts +0 -36
  692. package/dist/component-utils.d.ts.map +0 -1
  693. package/dist/component-utils.js +0 -61
  694. package/dist/component-utils.js.map +0 -1
  695. package/dist/components/DefaultDocument.d.ts +0 -13
  696. package/dist/components/DefaultDocument.d.ts.map +0 -1
  697. package/dist/components/DefaultDocument.js +0 -15
  698. package/dist/components/DefaultDocument.js.map +0 -1
  699. package/dist/debug.d.ts +0 -58
  700. package/dist/debug.d.ts.map +0 -1
  701. package/dist/debug.js +0 -157
  702. package/dist/debug.js.map +0 -1
  703. package/dist/default-error-boundary.d.ts +0 -11
  704. package/dist/default-error-boundary.d.ts.map +0 -1
  705. package/dist/default-error-boundary.js +0 -45
  706. package/dist/default-error-boundary.js.map +0 -1
  707. package/dist/deps/browser.d.ts +0 -2
  708. package/dist/deps/browser.d.ts.map +0 -1
  709. package/dist/deps/browser.js +0 -3
  710. package/dist/deps/browser.js.map +0 -1
  711. package/dist/deps/html-stream-client.d.ts +0 -2
  712. package/dist/deps/html-stream-client.d.ts.map +0 -1
  713. package/dist/deps/html-stream-client.js +0 -3
  714. package/dist/deps/html-stream-client.js.map +0 -1
  715. package/dist/deps/html-stream-server.d.ts +0 -2
  716. package/dist/deps/html-stream-server.d.ts.map +0 -1
  717. package/dist/deps/html-stream-server.js +0 -3
  718. package/dist/deps/html-stream-server.js.map +0 -1
  719. package/dist/deps/rsc.d.ts +0 -2
  720. package/dist/deps/rsc.d.ts.map +0 -1
  721. package/dist/deps/rsc.js +0 -4
  722. package/dist/deps/rsc.js.map +0 -1
  723. package/dist/deps/ssr.d.ts +0 -2
  724. package/dist/deps/ssr.d.ts.map +0 -1
  725. package/dist/deps/ssr.js +0 -3
  726. package/dist/deps/ssr.js.map +0 -1
  727. package/dist/errors.d.ts +0 -174
  728. package/dist/errors.d.ts.map +0 -1
  729. package/dist/errors.js +0 -241
  730. package/dist/errors.js.map +0 -1
  731. package/dist/handle.d.ts +0 -78
  732. package/dist/handle.d.ts.map +0 -1
  733. package/dist/handle.js +0 -82
  734. package/dist/handle.js.map +0 -1
  735. package/dist/handles/MetaTags.d.ts +0 -14
  736. package/dist/handles/MetaTags.d.ts.map +0 -1
  737. package/dist/handles/MetaTags.js +0 -136
  738. package/dist/handles/MetaTags.js.map +0 -1
  739. package/dist/handles/index.d.ts +0 -6
  740. package/dist/handles/index.d.ts.map +0 -1
  741. package/dist/handles/index.js +0 -6
  742. package/dist/handles/index.js.map +0 -1
  743. package/dist/handles/meta.d.ts +0 -39
  744. package/dist/handles/meta.d.ts.map +0 -1
  745. package/dist/handles/meta.js +0 -202
  746. package/dist/handles/meta.js.map +0 -1
  747. package/dist/host/__tests__/errors.test.d.ts +0 -2
  748. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  749. package/dist/host/__tests__/errors.test.js +0 -76
  750. package/dist/host/__tests__/errors.test.js.map +0 -1
  751. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  753. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  754. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  755. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  757. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  758. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  759. package/dist/host/__tests__/router.test.d.ts +0 -2
  760. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  761. package/dist/host/__tests__/router.test.js +0 -241
  762. package/dist/host/__tests__/router.test.js.map +0 -1
  763. package/dist/host/__tests__/testing.test.d.ts +0 -2
  764. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  765. package/dist/host/__tests__/testing.test.js +0 -64
  766. package/dist/host/__tests__/testing.test.js.map +0 -1
  767. package/dist/host/__tests__/utils.test.d.ts +0 -2
  768. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  769. package/dist/host/__tests__/utils.test.js +0 -29
  770. package/dist/host/__tests__/utils.test.js.map +0 -1
  771. package/dist/host/cookie-handler.d.ts +0 -34
  772. package/dist/host/cookie-handler.d.ts.map +0 -1
  773. package/dist/host/cookie-handler.js +0 -124
  774. package/dist/host/cookie-handler.js.map +0 -1
  775. package/dist/host/errors.d.ts +0 -56
  776. package/dist/host/errors.d.ts.map +0 -1
  777. package/dist/host/errors.js +0 -79
  778. package/dist/host/errors.js.map +0 -1
  779. package/dist/host/index.d.ts +0 -29
  780. package/dist/host/index.d.ts.map +0 -1
  781. package/dist/host/index.js +0 -32
  782. package/dist/host/index.js.map +0 -1
  783. package/dist/host/pattern-matcher.d.ts +0 -36
  784. package/dist/host/pattern-matcher.d.ts.map +0 -1
  785. package/dist/host/pattern-matcher.js +0 -172
  786. package/dist/host/pattern-matcher.js.map +0 -1
  787. package/dist/host/router.d.ts +0 -26
  788. package/dist/host/router.d.ts.map +0 -1
  789. package/dist/host/router.js +0 -218
  790. package/dist/host/router.js.map +0 -1
  791. package/dist/host/testing.d.ts +0 -36
  792. package/dist/host/testing.d.ts.map +0 -1
  793. package/dist/host/testing.js +0 -55
  794. package/dist/host/testing.js.map +0 -1
  795. package/dist/host/types.d.ts +0 -115
  796. package/dist/host/types.d.ts.map +0 -1
  797. package/dist/host/types.js +0 -7
  798. package/dist/host/types.js.map +0 -1
  799. package/dist/host/utils.d.ts +0 -21
  800. package/dist/host/utils.d.ts.map +0 -1
  801. package/dist/host/utils.js +0 -23
  802. package/dist/host/utils.js.map +0 -1
  803. package/dist/href-client.d.ts +0 -131
  804. package/dist/href-client.d.ts.map +0 -1
  805. package/dist/href-client.js +0 -64
  806. package/dist/href-client.js.map +0 -1
  807. package/dist/href-context.d.ts +0 -29
  808. package/dist/href-context.d.ts.map +0 -1
  809. package/dist/href-context.js +0 -21
  810. package/dist/href-context.js.map +0 -1
  811. package/dist/index.d.ts +0 -73
  812. package/dist/index.d.ts.map +0 -1
  813. package/dist/index.js +0 -91
  814. package/dist/index.js.map +0 -1
  815. package/dist/index.rsc.d.ts +0 -32
  816. package/dist/index.rsc.d.ts.map +0 -1
  817. package/dist/index.rsc.js +0 -40
  818. package/dist/index.rsc.js.map +0 -1
  819. package/dist/internal-debug.d.ts +0 -2
  820. package/dist/internal-debug.d.ts.map +0 -1
  821. package/dist/internal-debug.js +0 -5
  822. package/dist/internal-debug.js.map +0 -1
  823. package/dist/loader.d.ts +0 -14
  824. package/dist/loader.d.ts.map +0 -1
  825. package/dist/loader.js +0 -20
  826. package/dist/loader.js.map +0 -1
  827. package/dist/loader.rsc.d.ts +0 -19
  828. package/dist/loader.rsc.d.ts.map +0 -1
  829. package/dist/loader.rsc.js +0 -99
  830. package/dist/loader.rsc.js.map +0 -1
  831. package/dist/network-error-thrower.d.ts +0 -17
  832. package/dist/network-error-thrower.d.ts.map +0 -1
  833. package/dist/network-error-thrower.js +0 -14
  834. package/dist/network-error-thrower.js.map +0 -1
  835. package/dist/outlet-context.d.ts +0 -13
  836. package/dist/outlet-context.d.ts.map +0 -1
  837. package/dist/outlet-context.js +0 -3
  838. package/dist/outlet-context.js.map +0 -1
  839. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  840. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  841. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  842. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  843. package/dist/prerender/param-hash.d.ts +0 -16
  844. package/dist/prerender/param-hash.d.ts.map +0 -1
  845. package/dist/prerender/param-hash.js +0 -36
  846. package/dist/prerender/param-hash.js.map +0 -1
  847. package/dist/prerender/store.d.ts +0 -38
  848. package/dist/prerender/store.d.ts.map +0 -1
  849. package/dist/prerender/store.js +0 -61
  850. package/dist/prerender/store.js.map +0 -1
  851. package/dist/prerender.d.ts +0 -66
  852. package/dist/prerender.d.ts.map +0 -1
  853. package/dist/prerender.js +0 -57
  854. package/dist/prerender.js.map +0 -1
  855. package/dist/reverse.d.ts +0 -196
  856. package/dist/reverse.d.ts.map +0 -1
  857. package/dist/reverse.js +0 -78
  858. package/dist/reverse.js.map +0 -1
  859. package/dist/root-error-boundary.d.ts +0 -33
  860. package/dist/root-error-boundary.d.ts.map +0 -1
  861. package/dist/root-error-boundary.js +0 -165
  862. package/dist/root-error-boundary.js.map +0 -1
  863. package/dist/route-content-wrapper.d.ts +0 -46
  864. package/dist/route-content-wrapper.d.ts.map +0 -1
  865. package/dist/route-content-wrapper.js +0 -77
  866. package/dist/route-content-wrapper.js.map +0 -1
  867. package/dist/route-definition.d.ts +0 -421
  868. package/dist/route-definition.d.ts.map +0 -1
  869. package/dist/route-definition.js +0 -868
  870. package/dist/route-definition.js.map +0 -1
  871. package/dist/route-map-builder.d.ts +0 -155
  872. package/dist/route-map-builder.d.ts.map +0 -1
  873. package/dist/route-map-builder.js +0 -237
  874. package/dist/route-map-builder.js.map +0 -1
  875. package/dist/route-types.d.ts +0 -165
  876. package/dist/route-types.d.ts.map +0 -1
  877. package/dist/route-types.js +0 -7
  878. package/dist/route-types.js.map +0 -1
  879. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  880. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  881. package/dist/router/__tests__/handler-context.test.js +0 -65
  882. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  883. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  885. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  886. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  887. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  888. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  889. package/dist/router/__tests__/match-context.test.js +0 -92
  890. package/dist/router/__tests__/match-context.test.js.map +0 -1
  891. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  892. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  893. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  894. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  895. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  896. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  897. package/dist/router/__tests__/match-result.test.js +0 -457
  898. package/dist/router/__tests__/match-result.test.js.map +0 -1
  899. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  900. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  901. package/dist/router/__tests__/on-error.test.js +0 -678
  902. package/dist/router/__tests__/on-error.test.js.map +0 -1
  903. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  904. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  905. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  906. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  907. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  911. package/dist/router/error-handling.d.ts +0 -77
  912. package/dist/router/error-handling.d.ts.map +0 -1
  913. package/dist/router/error-handling.js +0 -202
  914. package/dist/router/error-handling.js.map +0 -1
  915. package/dist/router/handler-context.d.ts +0 -20
  916. package/dist/router/handler-context.d.ts.map +0 -1
  917. package/dist/router/handler-context.js +0 -198
  918. package/dist/router/handler-context.js.map +0 -1
  919. package/dist/router/intercept-resolution.d.ts +0 -66
  920. package/dist/router/intercept-resolution.d.ts.map +0 -1
  921. package/dist/router/intercept-resolution.js +0 -246
  922. package/dist/router/intercept-resolution.js.map +0 -1
  923. package/dist/router/loader-resolution.d.ts +0 -64
  924. package/dist/router/loader-resolution.d.ts.map +0 -1
  925. package/dist/router/loader-resolution.js +0 -284
  926. package/dist/router/loader-resolution.js.map +0 -1
  927. package/dist/router/logging.d.ts +0 -15
  928. package/dist/router/logging.d.ts.map +0 -1
  929. package/dist/router/logging.js +0 -99
  930. package/dist/router/logging.js.map +0 -1
  931. package/dist/router/manifest.d.ts +0 -22
  932. package/dist/router/manifest.d.ts.map +0 -1
  933. package/dist/router/manifest.js +0 -181
  934. package/dist/router/manifest.js.map +0 -1
  935. package/dist/router/match-api.d.ts +0 -35
  936. package/dist/router/match-api.d.ts.map +0 -1
  937. package/dist/router/match-api.js +0 -406
  938. package/dist/router/match-api.js.map +0 -1
  939. package/dist/router/match-context.d.ts +0 -206
  940. package/dist/router/match-context.d.ts.map +0 -1
  941. package/dist/router/match-context.js +0 -17
  942. package/dist/router/match-context.js.map +0 -1
  943. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  944. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  945. package/dist/router/match-middleware/background-revalidation.js +0 -75
  946. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  947. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  948. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  949. package/dist/router/match-middleware/cache-lookup.js +0 -257
  950. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  951. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  952. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  953. package/dist/router/match-middleware/cache-store.js +0 -108
  954. package/dist/router/match-middleware/cache-store.js.map +0 -1
  955. package/dist/router/match-middleware/index.d.ts +0 -81
  956. package/dist/router/match-middleware/index.d.ts.map +0 -1
  957. package/dist/router/match-middleware/index.js +0 -80
  958. package/dist/router/match-middleware/index.js.map +0 -1
  959. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  960. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  961. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  962. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  963. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  964. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  965. package/dist/router/match-middleware/segment-resolution.js +0 -53
  966. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  967. package/dist/router/match-pipelines.d.ts +0 -147
  968. package/dist/router/match-pipelines.d.ts.map +0 -1
  969. package/dist/router/match-pipelines.js +0 -82
  970. package/dist/router/match-pipelines.js.map +0 -1
  971. package/dist/router/match-result.d.ts +0 -126
  972. package/dist/router/match-result.d.ts.map +0 -1
  973. package/dist/router/match-result.js +0 -93
  974. package/dist/router/match-result.js.map +0 -1
  975. package/dist/router/metrics.d.ts +0 -20
  976. package/dist/router/metrics.d.ts.map +0 -1
  977. package/dist/router/metrics.js +0 -47
  978. package/dist/router/metrics.js.map +0 -1
  979. package/dist/router/middleware.d.ts +0 -249
  980. package/dist/router/middleware.d.ts.map +0 -1
  981. package/dist/router/middleware.js +0 -434
  982. package/dist/router/middleware.js.map +0 -1
  983. package/dist/router/middleware.test.d.ts +0 -2
  984. package/dist/router/middleware.test.d.ts.map +0 -1
  985. package/dist/router/middleware.test.js +0 -816
  986. package/dist/router/middleware.test.js.map +0 -1
  987. package/dist/router/pattern-matching.d.ts +0 -149
  988. package/dist/router/pattern-matching.d.ts.map +0 -1
  989. package/dist/router/pattern-matching.js +0 -349
  990. package/dist/router/pattern-matching.js.map +0 -1
  991. package/dist/router/revalidation.d.ts +0 -44
  992. package/dist/router/revalidation.d.ts.map +0 -1
  993. package/dist/router/revalidation.js +0 -147
  994. package/dist/router/revalidation.js.map +0 -1
  995. package/dist/router/router-context.d.ts +0 -135
  996. package/dist/router/router-context.d.ts.map +0 -1
  997. package/dist/router/router-context.js +0 -36
  998. package/dist/router/router-context.js.map +0 -1
  999. package/dist/router/segment-resolution.d.ts +0 -127
  1000. package/dist/router/segment-resolution.d.ts.map +0 -1
  1001. package/dist/router/segment-resolution.js +0 -919
  1002. package/dist/router/segment-resolution.js.map +0 -1
  1003. package/dist/router/trie-matching.d.ts +0 -40
  1004. package/dist/router/trie-matching.d.ts.map +0 -1
  1005. package/dist/router/trie-matching.js +0 -127
  1006. package/dist/router/trie-matching.js.map +0 -1
  1007. package/dist/router/types.d.ts +0 -136
  1008. package/dist/router/types.d.ts.map +0 -1
  1009. package/dist/router/types.js +0 -7
  1010. package/dist/router/types.js.map +0 -1
  1011. package/dist/router.d.ts +0 -753
  1012. package/dist/router.d.ts.map +0 -1
  1013. package/dist/router.gen.d.ts +0 -6
  1014. package/dist/router.gen.d.ts.map +0 -1
  1015. package/dist/router.gen.js +0 -6
  1016. package/dist/router.gen.js.map +0 -1
  1017. package/dist/router.js +0 -1304
  1018. package/dist/router.js.map +0 -1
  1019. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1020. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1021. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1022. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1023. package/dist/rsc/handler.d.ts +0 -45
  1024. package/dist/rsc/handler.d.ts.map +0 -1
  1025. package/dist/rsc/handler.js +0 -1172
  1026. package/dist/rsc/handler.js.map +0 -1
  1027. package/dist/rsc/helpers.d.ts +0 -16
  1028. package/dist/rsc/helpers.d.ts.map +0 -1
  1029. package/dist/rsc/helpers.js +0 -55
  1030. package/dist/rsc/helpers.js.map +0 -1
  1031. package/dist/rsc/index.d.ts +0 -22
  1032. package/dist/rsc/index.d.ts.map +0 -1
  1033. package/dist/rsc/index.js +0 -23
  1034. package/dist/rsc/index.js.map +0 -1
  1035. package/dist/rsc/nonce.d.ts +0 -9
  1036. package/dist/rsc/nonce.d.ts.map +0 -1
  1037. package/dist/rsc/nonce.js +0 -18
  1038. package/dist/rsc/nonce.js.map +0 -1
  1039. package/dist/rsc/types.d.ts +0 -206
  1040. package/dist/rsc/types.d.ts.map +0 -1
  1041. package/dist/rsc/types.js +0 -8
  1042. package/dist/rsc/types.js.map +0 -1
  1043. package/dist/search-params.d.ts +0 -103
  1044. package/dist/search-params.d.ts.map +0 -1
  1045. package/dist/search-params.js +0 -74
  1046. package/dist/search-params.js.map +0 -1
  1047. package/dist/segment-system.d.ts +0 -75
  1048. package/dist/segment-system.d.ts.map +0 -1
  1049. package/dist/segment-system.js +0 -336
  1050. package/dist/segment-system.js.map +0 -1
  1051. package/dist/server/context.d.ts +0 -245
  1052. package/dist/server/context.d.ts.map +0 -1
  1053. package/dist/server/context.js +0 -197
  1054. package/dist/server/context.js.map +0 -1
  1055. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1056. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1057. package/dist/server/fetchable-loader-store.js +0 -18
  1058. package/dist/server/fetchable-loader-store.js.map +0 -1
  1059. package/dist/server/handle-store.d.ts +0 -85
  1060. package/dist/server/handle-store.d.ts.map +0 -1
  1061. package/dist/server/handle-store.js +0 -142
  1062. package/dist/server/handle-store.js.map +0 -1
  1063. package/dist/server/loader-registry.d.ts +0 -55
  1064. package/dist/server/loader-registry.d.ts.map +0 -1
  1065. package/dist/server/loader-registry.js +0 -132
  1066. package/dist/server/loader-registry.js.map +0 -1
  1067. package/dist/server/request-context.d.ts +0 -226
  1068. package/dist/server/request-context.d.ts.map +0 -1
  1069. package/dist/server/request-context.js +0 -290
  1070. package/dist/server/request-context.js.map +0 -1
  1071. package/dist/server/root-layout.d.ts +0 -4
  1072. package/dist/server/root-layout.d.ts.map +0 -1
  1073. package/dist/server/root-layout.js +0 -5
  1074. package/dist/server/root-layout.js.map +0 -1
  1075. package/dist/server.d.ts +0 -15
  1076. package/dist/server.d.ts.map +0 -1
  1077. package/dist/server.js +0 -20
  1078. package/dist/server.js.map +0 -1
  1079. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1081. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1082. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1083. package/dist/ssr/index.d.ts +0 -98
  1084. package/dist/ssr/index.d.ts.map +0 -1
  1085. package/dist/ssr/index.js +0 -158
  1086. package/dist/ssr/index.js.map +0 -1
  1087. package/dist/static-handler.d.ts +0 -50
  1088. package/dist/static-handler.d.ts.map +0 -1
  1089. package/dist/static-handler.gen.d.ts +0 -5
  1090. package/dist/static-handler.gen.d.ts.map +0 -1
  1091. package/dist/static-handler.gen.js +0 -5
  1092. package/dist/static-handler.gen.js.map +0 -1
  1093. package/dist/static-handler.js +0 -29
  1094. package/dist/static-handler.js.map +0 -1
  1095. package/dist/theme/ThemeProvider.d.ts +0 -20
  1096. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1097. package/dist/theme/ThemeProvider.js +0 -240
  1098. package/dist/theme/ThemeProvider.js.map +0 -1
  1099. package/dist/theme/ThemeScript.d.ts +0 -48
  1100. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1101. package/dist/theme/ThemeScript.js +0 -13
  1102. package/dist/theme/ThemeScript.js.map +0 -1
  1103. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1104. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1105. package/dist/theme/__tests__/theme.test.js +0 -103
  1106. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1107. package/dist/theme/constants.d.ts +0 -29
  1108. package/dist/theme/constants.d.ts.map +0 -1
  1109. package/dist/theme/constants.js +0 -48
  1110. package/dist/theme/constants.js.map +0 -1
  1111. package/dist/theme/index.d.ts +0 -31
  1112. package/dist/theme/index.d.ts.map +0 -1
  1113. package/dist/theme/index.js +0 -36
  1114. package/dist/theme/index.js.map +0 -1
  1115. package/dist/theme/theme-context.d.ts +0 -40
  1116. package/dist/theme/theme-context.d.ts.map +0 -1
  1117. package/dist/theme/theme-context.js +0 -60
  1118. package/dist/theme/theme-context.js.map +0 -1
  1119. package/dist/theme/theme-script.d.ts +0 -27
  1120. package/dist/theme/theme-script.d.ts.map +0 -1
  1121. package/dist/theme/theme-script.js +0 -147
  1122. package/dist/theme/theme-script.js.map +0 -1
  1123. package/dist/theme/types.d.ts +0 -163
  1124. package/dist/theme/types.d.ts.map +0 -1
  1125. package/dist/theme/types.js +0 -11
  1126. package/dist/theme/types.js.map +0 -1
  1127. package/dist/theme/use-theme.d.ts +0 -12
  1128. package/dist/theme/use-theme.d.ts.map +0 -1
  1129. package/dist/theme/use-theme.js +0 -40
  1130. package/dist/theme/use-theme.js.map +0 -1
  1131. package/dist/types.d.ts +0 -1479
  1132. package/dist/types.d.ts.map +0 -1
  1133. package/dist/types.js +0 -10
  1134. package/dist/types.js.map +0 -1
  1135. package/dist/urls.d.ts +0 -441
  1136. package/dist/urls.d.ts.map +0 -1
  1137. package/dist/urls.gen.d.ts +0 -8
  1138. package/dist/urls.gen.d.ts.map +0 -1
  1139. package/dist/urls.gen.js +0 -8
  1140. package/dist/urls.gen.js.map +0 -1
  1141. package/dist/urls.js +0 -443
  1142. package/dist/urls.js.map +0 -1
  1143. package/dist/use-loader.d.ts +0 -127
  1144. package/dist/use-loader.d.ts.map +0 -1
  1145. package/dist/use-loader.js +0 -237
  1146. package/dist/use-loader.js.map +0 -1
  1147. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1149. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1151. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1153. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1154. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1155. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1157. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1159. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1161. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1162. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1163. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1164. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1165. package/dist/vite/ast-handler-extract.js +0 -249
  1166. package/dist/vite/ast-handler-extract.js.map +0 -1
  1167. package/dist/vite/expose-action-id.d.ts +0 -19
  1168. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1169. package/dist/vite/expose-action-id.js +0 -250
  1170. package/dist/vite/expose-action-id.js.map +0 -1
  1171. package/dist/vite/expose-id-utils.d.ts +0 -69
  1172. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1173. package/dist/vite/expose-id-utils.js +0 -289
  1174. package/dist/vite/expose-id-utils.js.map +0 -1
  1175. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1176. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1177. package/dist/vite/expose-internal-ids.js +0 -886
  1178. package/dist/vite/expose-internal-ids.js.map +0 -1
  1179. package/dist/vite/index.d.ts +0 -149
  1180. package/dist/vite/index.d.ts.map +0 -1
  1181. package/dist/vite/index.js.bak +0 -5448
  1182. package/dist/vite/index.js.map +0 -1
  1183. package/dist/vite/index.named-routes.gen.ts +0 -103
  1184. package/dist/vite/package-resolution.d.ts +0 -43
  1185. package/dist/vite/package-resolution.d.ts.map +0 -1
  1186. package/dist/vite/package-resolution.js +0 -112
  1187. package/dist/vite/package-resolution.js.map +0 -1
  1188. package/dist/vite/virtual-entries.d.ts +0 -25
  1189. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1190. package/dist/vite/virtual-entries.js +0 -110
  1191. package/dist/vite/virtual-entries.js.map +0 -1
  1192. package/src/browser/action-response-classifier.ts +0 -99
  1193. package/src/browser/react/use-client-cache.ts +0 -58
  1194. package/src/browser/shallow.ts +0 -40
  1195. package/src/handles/index.ts +0 -7
  1196. package/src/network-error-thrower.tsx +0 -23
  1197. package/src/router/middleware-cookies.ts +0 -55
@@ -14,7 +14,6 @@ import type { RenderSegmentsOptions } from "../segment-system.js";
14
14
  export interface RscPayload<TMetadata = RscMetadata> {
15
15
  metadata?: TMetadata;
16
16
  returnValue?: ActionResult;
17
- formState?: unknown;
18
17
  }
19
18
 
20
19
  /**
@@ -32,13 +31,21 @@ export type HandleData = Record<string, Record<string, unknown[]>>;
32
31
  export interface RscMetadata {
33
32
  pathname: string;
34
33
  segments: ResolvedSegment[];
35
- /** Router instance ID. When this changes between navigations, the client
36
- * forces a full tree replacement (app switch via host router). */
34
+ /** Router instance ID — the current app's identity. A mismatch with the
35
+ * client's id (sent as _rsc_rid) is detected server-side and answered with
36
+ * X-RSC-Reload (full document load), so the client never swaps apps
37
+ * in-session; within a session this always equals the current app. */
37
38
  routerId?: string;
38
39
  isPartial?: boolean;
39
40
  isError?: boolean;
40
41
  matched?: string[];
41
42
  diff?: string[];
43
+ /**
44
+ * All segment ids re-resolved on the server, including null-component
45
+ * ones excluded from `segments`/`diff`. Drives client-side handle-bucket
46
+ * cleanup. Superset of `diff`. See MatchResult.resolvedIds.
47
+ */
48
+ resolvedIds?: string[];
42
49
  /** Merged route params from the matched route */
43
50
  params?: Record<string, string>;
44
51
  /**
@@ -63,6 +70,12 @@ export interface RscMetadata {
63
70
  * Sent on initial render so the browser can configure its cache duration.
64
71
  */
65
72
  prefetchCacheTTL?: number;
73
+ /**
74
+ * Server-resolved rango state cookie name (`{prefix}_{routerId}`). The client
75
+ * reads it verbatim and binds the rango state cookie to it; composition
76
+ * happens only server-side.
77
+ */
78
+ stateCookieName?: string;
66
79
  /**
67
80
  * Theme configuration from router.
68
81
  * Included when theme is enabled in router config.
@@ -77,8 +90,18 @@ export interface RscMetadata {
77
90
  basename?: string;
78
91
  /** Whether connection warmup is enabled */
79
92
  warmupEnabled?: boolean;
80
- /** Server-side redirect with optional state (for partial requests) */
81
- redirect?: { url: string };
93
+ /**
94
+ * Whether the client should hydrate inside React.StrictMode. Carried on the
95
+ * initial full-render payload only; the browser entry reads it once at
96
+ * hydration. Defaults to true on the client when omitted.
97
+ */
98
+ strictMode?: boolean;
99
+ /**
100
+ * Server-side redirect with optional state (for partial requests).
101
+ * `external: true` (from redirect(url, { external: true })) tells the client
102
+ * to hard-navigate to an off-host target instead of validating same-origin.
103
+ */
104
+ redirect?: { url: string; external?: boolean };
82
105
  /** Server-set location state to include in history.pushState */
83
106
  locationState?: Record<string, unknown>;
84
107
  }
@@ -179,6 +202,15 @@ export interface TrackedActionState {
179
202
  result: unknown | null;
180
203
  }
181
204
 
205
+ /**
206
+ * The value returned by {@link useAction} when called without a selector.
207
+ *
208
+ * This is the stable, public name for the action-state shape; consumers can
209
+ * name it in their own signatures (e.g. a wrapper hook). It aliases the
210
+ * internal {@link TrackedActionState}.
211
+ */
212
+ export type ActionState = TrackedActionState;
213
+
182
214
  /**
183
215
  * Listener for action state changes
184
216
  *
@@ -316,8 +348,14 @@ export interface RouterInstance {
316
348
  replace(url: string, options?: RouterNavigateOptions): Promise<void>;
317
349
  /** Refresh the current route (re-fetch server data, preserve client state) */
318
350
  refresh(): Promise<void>;
319
- /** Prefetch a URL for faster client-side transition */
320
- prefetch(url: string): void;
351
+ /**
352
+ * Prefetch a URL for faster client-side transition.
353
+ *
354
+ * Pass `{ key: ":source" }` to source-scope the prefetch cache entry (parity
355
+ * with `<Link prefetchKey=":source">`) when the target's response can differ
356
+ * by source page.
357
+ */
358
+ prefetch(url: string, options?: { key?: ":source" }): void;
321
359
  /** Go back in browser history */
322
360
  back(): void;
323
361
  /** Go forward in browser history */
@@ -425,9 +463,9 @@ export interface NavigationStore {
425
463
  hasHistoryCache(historyKey: string): boolean;
426
464
  updateCacheHandleData(historyKey: string, handleData: HandleData): void;
427
465
  markCacheAsStale(): void;
466
+ markHistoryCacheStale(): void;
428
467
  markCacheAsStaleAndBroadcast(): void;
429
468
  clearHistoryCache(): void;
430
- broadcastCacheInvalidation(): void;
431
469
 
432
470
  // Cross-tab refresh callback (set by navigation bridge)
433
471
  setCrossTabRefreshCallback(callback: () => void): void;
@@ -483,6 +521,15 @@ export interface FetchPartialResult {
483
521
  payload: RscPayload;
484
522
  /** Promise that resolves when the response stream is fully consumed */
485
523
  streamComplete: Promise<void>;
524
+ /**
525
+ * True only when this payload came from a prefetch-cache hit whose stream had
526
+ * ALREADY fully drained at fetch time (the route was fully prefetched). The
527
+ * commit then runs in a startTransition so loading()/Suspense content — already
528
+ * resolved — swaps in directly without flashing a fallback. A partially-warmed
529
+ * (still-streaming) prefetch hit and a cold fetch leave this false so their
530
+ * fallbacks stream as usual.
531
+ */
532
+ fullyPrefetched?: boolean;
486
533
  }
487
534
 
488
535
  /**
@@ -540,6 +587,8 @@ export interface NavigationBridge {
540
587
  refresh(): Promise<void>;
541
588
  handlePopstate(): Promise<void>;
542
589
  registerLinkInterception(): () => void;
590
+ /** Current RSC version (live, reflects the latest updateVersion). */
591
+ getVersion(): string | undefined;
543
592
  /** Update the RSC version (e.g. after HMR). Clears prefetch cache. */
544
593
  updateVersion(newVersion: string): void;
545
594
  }
@@ -1,29 +1,56 @@
1
+ import {
2
+ resolveSameOriginRedirect,
3
+ resolveExternalRedirect,
4
+ } from "../redirect-origin.js";
5
+
1
6
  /**
2
7
  * Validate that a client-consumed redirect URL (from headers or Flight payload)
3
8
  * targets the same origin as the current page. Prevents open-redirect attacks
4
9
  * via crafted responses.
5
10
  *
11
+ * Thin wrapper over the shared {@link resolveSameOriginRedirect} rule (also used
12
+ * by the server guard in `rsc/redirect-guard.ts`) so client and server enforce
13
+ * the identical same-origin contract. Adds the client-side `console.error` on a
14
+ * block; the resolver itself stays pure.
15
+ *
6
16
  * @returns The canonical (normalized) URL string on success, or null if blocked.
7
17
  */
8
18
  export function validateRedirectOrigin(
9
19
  url: string,
10
20
  currentOrigin: string,
11
21
  ): string | null {
12
- try {
13
- const target = new URL(url, currentOrigin);
14
- if (target.origin !== currentOrigin) {
15
- console.error(
16
- `[rango] Redirect blocked: origin mismatch (${target.origin})`,
17
- );
18
- return null;
19
- }
20
- // Return pathname+search+hash for relative inputs, full href for absolute.
21
- // This normalizes protocol-relative and other ambiguous forms.
22
- return target.href.startsWith(currentOrigin)
23
- ? target.href
24
- : target.pathname + target.search + target.hash;
25
- } catch {
26
- console.error(`[rango] Redirect blocked: invalid URL "${url}"`);
27
- return null;
22
+ const resolved = resolveSameOriginRedirect(url, currentOrigin);
23
+ if (resolved === null) {
24
+ console.error(
25
+ `[rango] Redirect blocked: cross-origin or invalid target "${url}"`,
26
+ );
27
+ }
28
+ return resolved;
29
+ }
30
+
31
+ /**
32
+ * Validate an explicit off-origin redirect (`redirect(url, { external: true })`)
33
+ * the client is about to hard-navigate to via `window.location.assign()`.
34
+ *
35
+ * Thin wrapper over the shared {@link resolveExternalRedirect} rule (also used by
36
+ * the server guard in `rsc/redirect-guard.ts`) so client and server enforce the
37
+ * identical contract: `external` allows an off-origin target but only an
38
+ * http(s) scheme. This stops a forged or mistaken external payload carrying a
39
+ * `javascript:`/`data:` URL from turning `location.assign` into a scriptable
40
+ * navigation. Adds the client-side `console.error` on a block; the resolver
41
+ * itself stays pure.
42
+ *
43
+ * @returns The normalized URL string on success, or null if blocked.
44
+ */
45
+ export function validateExternalRedirect(
46
+ url: string,
47
+ currentOrigin: string,
48
+ ): string | null {
49
+ const resolved = resolveExternalRedirect(url, currentOrigin);
50
+ if (resolved === null) {
51
+ console.error(
52
+ `[rango] External redirect blocked: non-http(s) target "${url}"`,
53
+ );
28
54
  }
55
+ return resolved;
29
56
  }
@@ -0,0 +1,107 @@
1
+ // Collect the `"use client"` client-reference keys reachable from an error /
2
+ // notFound boundary registration, for routing them into the dedicated
3
+ // `app-fallback` chunk (see vite/utils/client-chunks.ts).
4
+ //
5
+ // A boundary registration is not always a bare client element. The common,
6
+ // load-bearing pattern wraps the client boundary in providers a thrown handler
7
+ // needs (the layout that would normally supply them did not mount):
8
+ //
9
+ // defaultErrorBoundary: ({ error }) => (
10
+ // <FallbackIntl locales={...}>
11
+ // <ThemedError error={error} /> // <- the real "use client" boundary
12
+ // </FallbackIntl>
13
+ // )
14
+ //
15
+ // So the value may be (a) a handler FUNCTION returning a tree, or (b) an element
16
+ // tree with the client boundary nested below server wrappers. We:
17
+ // 1. If it's a function, CALL it with synthetic props to get the returned tree.
18
+ // This only constructs JSX — the inner components are element `type`s, never
19
+ // invoked — so no hooks run. Guarded: a boundary that needs a real render
20
+ // context (request globals, etc.) throws and is skipped (graceful: it simply
21
+ // stays on the default grouping, as before).
22
+ // 2. Walk the resulting tree and report every element whose `.type` is a
23
+ // plugin-rsc client reference.
24
+ //
25
+ // Limit: a boundary that *conditionally* renders different client components based
26
+ // on the runtime error cannot be resolved statically — only the branch taken with
27
+ // the synthetic error is seen. Such cases fall back to the default chunk; the
28
+ // custom `clientChunks` function is the escape hatch.
29
+
30
+ const CLIENT_REF = Symbol.for("react.client.reference");
31
+ const MAX_DEPTH = 40;
32
+
33
+ // Synthetic props covering the error-boundary (`{ error, reset }`) and notFound
34
+ // (`{ pathname }`) handler shapes. The handler destructures what it needs.
35
+ const SYNTHETIC_PROPS = {
36
+ error: new Error("rango: build-time fallback-chunk discovery"),
37
+ reset: () => {},
38
+ pathname: "/",
39
+ info: { componentStack: "" },
40
+ };
41
+
42
+ interface MaybeElement {
43
+ type?: { $$typeof?: symbol; $$id?: string };
44
+ props?: Record<string, unknown>;
45
+ }
46
+
47
+ function isReactNodeLike(v: unknown): boolean {
48
+ return (
49
+ Array.isArray(v) ||
50
+ (typeof v === "object" && v !== null && "$$typeof" in (v as object))
51
+ );
52
+ }
53
+
54
+ function walkElementTree(
55
+ node: unknown,
56
+ report: (refKey: string) => void,
57
+ depth: number,
58
+ ): void {
59
+ if (node == null || depth > MAX_DEPTH) return;
60
+ if (Array.isArray(node)) {
61
+ for (const child of node) walkElementTree(child, report, depth + 1);
62
+ return;
63
+ }
64
+ if (typeof node !== "object") return;
65
+
66
+ const el = node as MaybeElement;
67
+ const type = el.type;
68
+ if (type?.$$typeof === CLIENT_REF && typeof type.$$id === "string") {
69
+ // $$id is `<referenceKey>#<exportName>` in build mode — keep the referenceKey.
70
+ report(type.$$id.split("#")[0]);
71
+ }
72
+
73
+ const props = el.props;
74
+ if (props && typeof props === "object") {
75
+ // Children are always nodes; other props are followed only when they look
76
+ // like React nodes (slots/icons), never arbitrary data objects.
77
+ walkElementTree(props.children, report, depth + 1);
78
+ for (const key in props) {
79
+ if (key === "children") continue;
80
+ const value = props[key];
81
+ if (isReactNodeLike(value)) walkElementTree(value, report, depth + 1);
82
+ }
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Report every `"use client"` client-reference key reachable from a single
88
+ * error/notFound boundary registration (handler function or element tree).
89
+ */
90
+ export function collectFallbackClientRefs(
91
+ boundary: unknown,
92
+ report: (refKey: string) => void,
93
+ ): void {
94
+ try {
95
+ let node = boundary;
96
+ if (typeof node === "function") {
97
+ node = (node as (props: unknown) => unknown)(SYNTHETIC_PROPS);
98
+ }
99
+ walkElementTree(node, report, 0);
100
+ } catch {
101
+ // The boundary needs a real render context (request globals, hooks at the
102
+ // top level) or its tree has hostile getters. Its client refs can't be
103
+ // resolved statically — skip. It stays on the default grouping (no
104
+ // regression vs. not collecting), and the custom clientChunks fn is the
105
+ // escape hatch for such cases.
106
+ }
107
+ }
@@ -11,11 +11,12 @@
11
11
  import type { UrlPatterns } from "../urls.js";
12
12
  import type { AllUseItems } from "../route-types.js";
13
13
  import { extractStaticPrefix } from "../router/pattern-matching.js";
14
- import { RSCRouterContext, runWithPrefixes } from "../server/context.js";
14
+ import { RangoContext, runWithPrefixes } from "../server/context.js";
15
15
  import type { EntryData, TrackedInclude } from "../server/context.js";
16
16
  import type { TrailingSlashMode } from "../types.js";
17
17
  import { createRouteHelpers } from "../route-definition.js";
18
18
  import MapRootLayout from "../server/root-layout.js";
19
+ import { collectFallbackClientRefs } from "./collect-fallback-refs.js";
19
20
 
20
21
  /**
21
22
  * Node in the prefix tree
@@ -57,6 +58,26 @@ export interface GeneratedManifest {
57
58
  * Build prefix tree node by running the patterns with proper context.
58
59
  * Uses a visited set to detect circular includes and prevent infinite recursion.
59
60
  */
61
+ // Merge tracked nested includes into `target`. Multiple includes can share a
62
+ // fullPrefix (e.g. include("/", a), include("/", b)) — concat their routes and
63
+ // Object.assign children rather than overwrite.
64
+ function mergeIncludeNodes(
65
+ target: Record<string, PrefixTreeNode>,
66
+ includes: TrackedInclude[],
67
+ buildChild: (include: TrackedInclude) => PrefixTreeNode,
68
+ ): void {
69
+ for (const include of includes) {
70
+ const node = buildChild(include);
71
+ const existing = target[include.fullPrefix];
72
+ if (existing) {
73
+ existing.routes.push(...node.routes);
74
+ Object.assign(existing.children, node.children);
75
+ } else {
76
+ target[include.fullPrefix] = node;
77
+ }
78
+ }
79
+ }
80
+
60
81
  function buildPrefixTreeNode(
61
82
  urlPrefix: string,
62
83
  namePrefix: string | undefined,
@@ -93,7 +114,7 @@ function buildPrefixTreeNode(
93
114
  const searchSchemasMap = new Map<string, Record<string, string>>();
94
115
  const trackedIncludes: TrackedInclude[] = [];
95
116
 
96
- RSCRouterContext.run(
117
+ RangoContext.run(
97
118
  {
98
119
  manifest,
99
120
  patterns: patternsMap,
@@ -166,13 +187,9 @@ function buildPrefixTreeNode(
166
187
  }
167
188
  }
168
189
 
169
- // Build children from tracked nested includes.
170
- // Multiple includes can share the same fullPrefix (e.g., include("/", patternsA),
171
- // include("/", patternsB)). Merge their routes instead of overwriting.
172
190
  const children: Record<string, PrefixTreeNode> = {};
173
-
174
- for (const include of trackedIncludes) {
175
- const childNode = buildPrefixTreeNode(
191
+ mergeIncludeNodes(children, trackedIncludes, (include) =>
192
+ buildPrefixTreeNode(
176
193
  include.fullPrefix,
177
194
  include.namePrefix,
178
195
  include.patterns as UrlPatterns<any>,
@@ -186,16 +203,8 @@ function buildPrefixTreeNode(
186
203
  passthroughRoutes,
187
204
  responseTypeRoutes,
188
205
  routeSearchSchemas,
189
- );
190
-
191
- const existing = children[include.fullPrefix];
192
- if (existing) {
193
- existing.routes.push(...childNode.routes);
194
- Object.assign(existing.children, childNode.children);
195
- } else {
196
- children[include.fullPrefix] = childNode;
197
- }
198
- }
206
+ ),
207
+ );
199
208
 
200
209
  // Remove from visited so sibling branches can reuse the same patterns
201
210
  // without false circular-include detection. Only ancestors in the current
@@ -282,7 +291,17 @@ export function generateManifest<TEnv>(
282
291
  export function generateManifestFull<TEnv>(
283
292
  urlpatterns: UrlPatterns<TEnv, any>,
284
293
  mountIndex: number = 0,
285
- options?: { urlPrefix?: string },
294
+ options?: {
295
+ urlPrefix?: string;
296
+ /**
297
+ * Called once per `"use client"` component registered as an
298
+ * errorBoundary/notFoundBoundary fallback, with its client-reference key
299
+ * (`$$id`). Lets the build collect fallback module ids for dedicated
300
+ * chunking without exposing the otherwise-discarded EntryData tree. The
301
+ * EntryData map built below is local; this is the only seam that surfaces it.
302
+ */
303
+ collectClientFallbackRef?: (refKey: string) => void;
304
+ },
286
305
  ): FullManifest {
287
306
  const routeManifest: Record<string, string> = {};
288
307
  const routeAncestry: Record<string, string[]> = {};
@@ -296,7 +315,7 @@ export function generateManifestFull<TEnv>(
296
315
  const searchSchemasMap = new Map<string, Record<string, string>>();
297
316
  const trackedIncludes: TrackedInclude[] = [];
298
317
 
299
- RSCRouterContext.run(
318
+ RangoContext.run(
300
319
  {
301
320
  manifest,
302
321
  patterns: patternsMap,
@@ -320,6 +339,22 @@ export function generateManifestFull<TEnv>(
320
339
  },
321
340
  );
322
341
 
342
+ // Surface the "use client" components registered as error/notFound fallbacks
343
+ // (route-tree errorBoundary()/notFoundBoundary() helpers, stored on EntryData).
344
+ // The boundary may be a handler function and/or wrap the client boundary in
345
+ // server providers, so walk the whole tree (see collectFallbackClientRefs).
346
+ if (options?.collectClientFallbackRef) {
347
+ const report = options.collectClientFallbackRef;
348
+ const collect = (boundary: unknown[] | undefined) => {
349
+ for (const item of boundary ?? [])
350
+ collectFallbackClientRefs(item, report);
351
+ };
352
+ for (const entry of manifest.values()) {
353
+ collect(entry.errorBoundary);
354
+ collect(entry.notFoundBoundary);
355
+ }
356
+ }
357
+
323
358
  // Collect root-level routes and trailing slash config
324
359
  const routeTrailingSlash: Record<string, string> = {};
325
360
  for (const [name, pattern] of patternsMap.entries()) {
@@ -356,12 +391,10 @@ export function generateManifestFull<TEnv>(
356
391
  }
357
392
  }
358
393
 
359
- // Build prefix tree from tracked includes (shared visited set for cycle detection).
360
- // Multiple includes can share the same fullPrefix (e.g., include("/", patternsA),
361
- // include("/", patternsB)). Merge their routes instead of overwriting.
394
+ // Shared visited set for cycle detection across all root-level includes.
362
395
  const visited = new Set<unknown>();
363
- for (const include of trackedIncludes) {
364
- const node = buildPrefixTreeNode(
396
+ mergeIncludeNodes(prefixTree, trackedIncludes, (include) =>
397
+ buildPrefixTreeNode(
365
398
  include.fullPrefix,
366
399
  include.namePrefix,
367
400
  include.patterns as UrlPatterns<any>,
@@ -375,16 +408,8 @@ export function generateManifestFull<TEnv>(
375
408
  passthroughRoutes,
376
409
  responseTypeRoutes,
377
410
  routeSearchSchemas,
378
- );
379
-
380
- const existing = prefixTree[include.fullPrefix];
381
- if (existing) {
382
- existing.routes.push(...node.routes);
383
- Object.assign(existing.children, node.children);
384
- } else {
385
- prefixTree[include.fullPrefix] = node;
386
- }
387
- }
411
+ ),
412
+ );
388
413
 
389
414
  return {
390
415
  prefixTree,
@@ -24,7 +24,6 @@ export {
24
24
  extractIncludesWithDiagnostics,
25
25
  } from "./route-types/include-resolution.js";
26
26
  export {
27
- extractUrlsVariableFromRouter,
28
27
  extractUrlsFromRouter,
29
28
  extractBasenameFromRouter,
30
29
  type UrlsExtractionResult,
@@ -35,5 +34,7 @@ export {
35
34
  formatNestedRouterConflictError,
36
35
  findRouterFiles,
37
36
  writeCombinedRouteTypes,
37
+ genFileTsPath,
38
+ resolveSearchSchemas,
38
39
  } from "./route-types/router-processing.js";
39
40
  export { findUrlsVariableNames } from "./route-types/per-module-writer.js";
@@ -22,8 +22,14 @@ export {
22
22
  type GeneratedManifest,
23
23
  } from "./generate-manifest.js";
24
24
 
25
- export { buildRouteTrie, type TrieNode, type TrieLeaf } from "./route-trie.js";
26
-
25
+ // buildRouteTrie / buildPerRouterTrie / collectFallbackClientRefs and the
26
+ // TrieNode/TrieLeaf types are NOT exported here: they are build-pipeline
27
+ // internals, not public API. Their only build-time consumer (the Vite
28
+ // discovery pass) imports them directly from source via a relative path
29
+ // (vite/discovery/discover-routers.ts), and the runtime RSC realm likewise
30
+ // imports route-trie.js directly (rsc/manifest-init.ts). Keeping them off the
31
+ // public ./build surface (#569 decision 6) means consumers can't mistake them
32
+ // for intended API. generateManifest* / route-types / hashParams stay public.
27
33
  export {
28
34
  writePerModuleRouteTypes,
29
35
  extractRoutesFromSource,
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Pure prefix-tree walks shared by the build/discovery layer and the runtime
3
+ * trie builder. Kept in `build/` (not `vite/utils`) so runtime code
4
+ * (rsc/manifest-init via build/route-trie) can consume them without importing
5
+ * from the vite layer. `vite/utils/manifest-utils` re-exports them so existing
6
+ * vite-side imports stay unchanged.
7
+ */
8
+
9
+ /**
10
+ * Flatten prefix tree leaf nodes into precomputed route entries.
11
+ * Leaf nodes have no children (no nested includes), so their routes can be
12
+ * used directly by evaluateLazyEntry() without running the handler.
13
+ * Non-leaf nodes are skipped because they have nested lazy includes that
14
+ * require the handler to run for discovery.
15
+ *
16
+ * A leaf is also skipped when its staticPrefix collides with an ancestor
17
+ * include node's staticPrefix. That happens when a dynamic param collapses the
18
+ * staticPrefix of nested includes onto the parent's (e.g. `/m/:id/edit` -> sp
19
+ * `/m`): precomputing such a leaf under the collapsed prefix would let the
20
+ * ancestor's lazy entry claim a route it cannot register (the route is behind
21
+ * further nested lazy includes), producing a RouteNotFoundError at request time
22
+ * (issue #506). Those routes are resolved via the handler chain instead.
23
+ */
24
+ export function flattenLeafEntries(
25
+ prefixTree: Record<string, any>,
26
+ routeManifest: Record<string, string>,
27
+ result: Array<{ staticPrefix: string; routes: Record<string, string> }>,
28
+ ): void {
29
+ function visit(node: any, ancestorStaticPrefixes: Set<string>): void {
30
+ const children = node.children || {};
31
+ if (
32
+ Object.keys(children).length === 0 &&
33
+ node.routes &&
34
+ node.routes.length > 0
35
+ ) {
36
+ // Leaf node. Skip if its staticPrefix collides with an ancestor include
37
+ // node's staticPrefix (dynamic-param collapse) — see doc comment above.
38
+ if (ancestorStaticPrefixes.has(node.staticPrefix)) {
39
+ return;
40
+ }
41
+ // Collect its routes from the manifest
42
+ const routes: Record<string, string> = {};
43
+ for (const name of node.routes) {
44
+ if (name in routeManifest) {
45
+ routes[name] = routeManifest[name];
46
+ }
47
+ }
48
+ result.push({ staticPrefix: node.staticPrefix, routes });
49
+ } else {
50
+ // Non-leaf: recurse into children, tracking this node's staticPrefix as
51
+ // an ancestor so a collapsed nested leaf below it is not over-claimed.
52
+ const nextAncestors = new Set(ancestorStaticPrefixes);
53
+ nextAncestors.add(node.staticPrefix);
54
+ for (const child of Object.values(children)) {
55
+ visit(child, nextAncestors);
56
+ }
57
+ }
58
+ }
59
+ for (const node of Object.values(prefixTree)) {
60
+ visit(node, new Set());
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Build the staticPrefix -> routes lookup the runtime shortcut consumes from a
66
+ * flat precomputed-entry array.
67
+ *
68
+ * A staticPrefix owned by MORE THAN ONE leaf include cannot be collapsed to a
69
+ * single routes object: `new Map(entries.map(e => [e.staticPrefix, e.routes]))`
70
+ * is last-wins, so one include's routes are silently dropped and mis-assigned
71
+ * to whichever entry evaluates first. Two distinct includes legitimately share a
72
+ * staticPrefix when a dynamic param collapses their literal prefixes onto the
73
+ * same value (e.g. `include("/shop/:cat", ...)` and a nested
74
+ * `include("/shop/:brand", ...)` both extract "/shop/"). Merging them is also
75
+ * wrong — assigning the merged set to the first matching entry makes findMatch
76
+ * pick the wrong handler for routes belonging to the other include, which then
77
+ * fails its `Store.manifest.has(routeKey)` invariant at render (500 on a valid
78
+ * route, dev/prod identical).
79
+ *
80
+ * So any shared staticPrefix is OMITTED from the shortcut entirely. Those
81
+ * includes fall through to the handler path in evaluateLazyEntry(), which is the
82
+ * ground truth (identical to pre-precomputed behavior). The shortcut is purely an
83
+ * optimization, so dropping a prefix can only cost a handler run, never change a
84
+ * result.
85
+ */
86
+ export function buildPrecomputedByPrefix(
87
+ entries: Array<{ staticPrefix: string; routes: Record<string, string> }>,
88
+ ): Map<string, Record<string, string>> {
89
+ const byPrefix = new Map<string, Record<string, string>>();
90
+ const shared = new Set<string>();
91
+ for (const e of entries) {
92
+ if (byPrefix.has(e.staticPrefix)) {
93
+ shared.add(e.staticPrefix);
94
+ } else {
95
+ byPrefix.set(e.staticPrefix, e.routes);
96
+ }
97
+ }
98
+ for (const sp of shared) {
99
+ byPrefix.delete(sp);
100
+ }
101
+ return byPrefix;
102
+ }
103
+
104
+ /**
105
+ * Walk prefix tree to map each route name to its scope's staticPrefix.
106
+ */
107
+ export function buildRouteToStaticPrefix(
108
+ prefixTree: Record<string, any>,
109
+ result: Record<string, string>,
110
+ ): void {
111
+ function visit(node: any): void {
112
+ const sp = node.staticPrefix || "";
113
+ for (const name of node.routes || []) {
114
+ result[name] = sp;
115
+ }
116
+ for (const child of Object.values(node.children || {})) {
117
+ visit(child);
118
+ }
119
+ }
120
+ for (const node of Object.values(prefixTree)) {
121
+ visit(node);
122
+ }
123
+ }