@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
@@ -1,28 +1,44 @@
1
1
  import * as React from "react";
2
2
  import { createElement, type ReactNode, type ComponentType } from "react";
3
- import { OutletProvider } from "./client.js";
3
+ import { OutletProvider } from "./outlet-provider.js";
4
4
  import { MountContextProvider } from "./browser/react/mount-context.js";
5
- import type {
6
- ResolvedSegment,
7
- LoaderDataResult,
8
- RootLayoutProps,
9
- } from "./types.js";
10
- import { isLoaderDataResult } from "./types.js";
5
+ import type { ResolvedSegment, RootLayoutProps } from "./types.js";
6
+ import { decodeLoaderResults } from "./decode-loader-results.js";
11
7
  import { invariant } from "./errors.js";
12
8
  import {
13
9
  RouteContentWrapper,
14
10
  LoaderBoundary,
15
11
  } from "./route-content-wrapper.js";
16
12
  import { RootErrorBoundary } from "./root-error-boundary.js";
13
+ import { getMemoizedContentPromise } from "./segment-content-promise.js";
14
+ import {
15
+ buildLoaderPromise,
16
+ getMemoizedLoaderPromise,
17
+ } from "./segment-loader-promise.js";
17
18
 
18
19
  // ViewTransition is only available in React experimental.
19
20
  // Access via namespace import to avoid compile-time errors on stable React.
20
21
  const ReactViewTransition: any =
21
22
  "ViewTransition" in React ? (React as any).ViewTransition : null;
22
23
 
23
- function restoreParallelLoaderMarkers(
24
+ // A loading skeleton is renderable only when it is a real ReactNode value.
25
+ // `false` is treated as "not renderable" here. This is the three-term gate;
26
+ // the distinct two-term gate at the LoaderBoundary site deliberately treats
27
+ // `false` as "create a boundary without a RouteContentWrapper"
28
+ // (tree-structure.md), so it must NOT use this helper.
29
+ function isRenderableLoading(loading: ReactNode): boolean {
30
+ return loading !== undefined && loading !== null && loading !== false;
31
+ }
32
+
33
+ // Exported for unit testing the no-parallel fast path (D6); internal otherwise.
34
+ export function restoreParallelLoaderMarkers(
24
35
  segments: ResolvedSegment[],
25
36
  ): ResolvedSegment[] {
37
+ // Parallel-loading markers only exist when a parallel segment is present, so
38
+ // a list with no parallel slot has nothing to restore. Skip the Map alloc and
39
+ // full scan in that (common) case — this runs on every render.
40
+ if (!segments.some((s) => s.type === "parallel")) return segments;
41
+
26
42
  const parallelLoadingByNamespace = new Map<string, ReactNode>();
27
43
  let nextSegments: ResolvedSegment[] | null = null;
28
44
 
@@ -30,12 +46,7 @@ function restoreParallelLoaderMarkers(
30
46
  const segment = segments[i];
31
47
 
32
48
  if (segment.type === "parallel") {
33
- if (
34
- segment.namespace &&
35
- segment.loading !== undefined &&
36
- segment.loading !== null &&
37
- segment.loading !== false
38
- ) {
49
+ if (segment.namespace && isRenderableLoading(segment.loading)) {
39
50
  parallelLoadingByNamespace.set(segment.namespace, segment.loading);
40
51
  }
41
52
  continue;
@@ -61,56 +72,6 @@ function restoreParallelLoaderMarkers(
61
72
  return nextSegments ?? segments;
62
73
  }
63
74
 
64
- function hasSameReferences(a: unknown[] | undefined, b: unknown[]): boolean {
65
- if (!a || a.length !== b.length) {
66
- return false;
67
- }
68
-
69
- for (let i = 0; i < a.length; i++) {
70
- if (a[i] !== b[i]) {
71
- return false;
72
- }
73
- }
74
-
75
- return true;
76
- }
77
-
78
- /**
79
- * Resolve loader data from raw results, unwrapping LoaderDataResult wrappers
80
- */
81
- function resolveLoaderData(
82
- resolvedData: any[],
83
- loaderIds: string[],
84
- ): { loaderData: Record<string, any>; errorFallback: ReactNode } {
85
- const loaderData: Record<string, any> = {};
86
- let errorFallback: ReactNode = null;
87
-
88
- for (let i = 0; i < loaderIds.length; i++) {
89
- const id = loaderIds[i];
90
- const result = resolvedData[i];
91
-
92
- if (!isLoaderDataResult(result)) {
93
- // Legacy format - direct data
94
- loaderData[id] = result;
95
- continue;
96
- }
97
-
98
- if (result.ok) {
99
- loaderData[id] = result.data;
100
- continue;
101
- }
102
-
103
- // Error case
104
- if (result.fallback) {
105
- errorFallback = result.fallback;
106
- } else {
107
- throw new Error(result.error.message);
108
- }
109
- }
110
-
111
- return { loaderData, errorFallback };
112
- }
113
-
114
75
  /**
115
76
  * Options for renderSegments
116
77
  */
@@ -147,11 +108,61 @@ export interface RenderSegmentsOptions {
147
108
  rootLayout?: ComponentType<RootLayoutProps>;
148
109
  }
149
110
 
111
+ function createViewTransitionBoundary(
112
+ transition: NonNullable<ResolvedSegment["transition"]>,
113
+ children: ReactNode,
114
+ ): ReactNode {
115
+ // `viewTransition` is a router-specific flag (boundary opt-out), not a React
116
+ // <ViewTransition> prop — strip it so it never reaches React.
117
+ const { viewTransition: _viewTransition, ...vtProps } = transition;
118
+ return createElement(ReactViewTransition, {
119
+ ...vtProps,
120
+ children,
121
+ });
122
+ }
123
+
124
+ function wrapDefaultOutletContent(
125
+ content: ReactNode,
126
+ transition: NonNullable<ResolvedSegment["transition"]>,
127
+ ): ReactNode {
128
+ if (!React.isValidElement(content)) {
129
+ return createViewTransitionBoundary(transition, content);
130
+ }
131
+
132
+ const props = content.props as any;
133
+
134
+ if (content.type === MountContextProvider) {
135
+ return React.cloneElement(content, {
136
+ children: wrapDefaultOutletContent(props.children, transition),
137
+ } as any);
138
+ }
139
+
140
+ if (content.type === OutletProvider && props.segment?.type === "layout") {
141
+ return React.cloneElement(content, {
142
+ content: wrapDefaultOutletContent(props.content, transition),
143
+ } as any);
144
+ }
145
+
146
+ if (content.type === LoaderBoundary && props.segment?.type === "layout") {
147
+ return React.cloneElement(content, {
148
+ outletContent: wrapDefaultOutletContent(props.outletContent, transition),
149
+ } as any);
150
+ }
151
+
152
+ return createViewTransitionBoundary(transition, content);
153
+ }
154
+
150
155
  /**
151
156
  * Render segments into a React tree with proper layout nesting
152
157
  *
153
- * Layouts nest using OutletProvider, while route + parallel + error + notFound segments
154
- * render as siblings in a Fragment.
158
+ * Layouts nest using OutletProvider; a layout receives the inner content via
159
+ * its `<Outlet />`. Parallel segments do NOT render as inline Fragment siblings
160
+ * — they flow through OutletContext.parallel and are resolved where a layout
161
+ * places `<ParallelOutlet name="@sidebar" />` (or `<Outlet name="@sidebar" />`).
162
+ *
163
+ * The result is always wrapped in RootErrorBoundary so unhandled errors never
164
+ * blank the screen. When `options.rootLayout` is provided it wraps the error
165
+ * boundary at the OUTERMOST level (so the app shell survives errors).
155
166
  *
156
167
  * Error segments are treated like route segments - they render their fallback
157
168
  * component in place of the failed segment. When an error occurs in a handler,
@@ -163,27 +174,30 @@ export interface RenderSegmentsOptions {
163
174
  * notFoundBoundary's fallback component.
164
175
  *
165
176
  * @param segments - Array of resolved segments to render
166
- * @returns ReactNode representing the component tree
177
+ * @returns Promise resolving to the ReactNode tree (the function is async)
167
178
  *
168
179
  * @example
169
180
  * ```typescript
170
181
  * const segments = [
171
- * { id: 'L0.0', type: 'layout', component: <RootLayout /> },
172
- * { id: 'L1.0', type: 'layout', component: <BlogLayout /> },
173
- * { id: 'R2.0', type: 'route', component: <BlogPost /> },
174
- * { id: 'P3.0', type: 'parallel', component: <Sidebar />, slot: '@sidebar' }
182
+ * { id: 'L0.0', type: 'layout', component: <BlogLayout /> },
183
+ * { id: 'L0R1', type: 'route', component: <BlogPost /> },
184
+ * { id: 'L0R1.@sidebar', type: 'parallel', component: <Sidebar />, slot: '@sidebar' }
175
185
  * ];
176
186
  *
177
- * const tree = renderSegments(segments);
178
- * // Results in:
179
- * // <OutletProvider><RootLayout>
180
- * // <OutletProvider><BlogLayout>
181
- * // <><BlogPost /><Sidebar /></>
182
- * // </BlogLayout></OutletProvider>
183
- * // </RootLayout></OutletProvider>
187
+ * // BlogLayout renders <Outlet /> for the route and
188
+ * // <ParallelOutlet name="@sidebar" /> for the parallel slot.
189
+ * const tree = await renderSegments(segments, { rootLayout: RootLayout });
190
+ * // Results in (outermost first):
191
+ * // <RootLayout>
192
+ * // <RootErrorBoundary>
193
+ * // <OutletProvider segment={BlogLayout} parallel={[Sidebar]}>
194
+ * // <BlogPost />
195
+ * // </OutletProvider>
196
+ * // </RootErrorBoundary>
197
+ * // </RootLayout>
184
198
  *
185
199
  * // For server actions, pass isAction to await components:
186
- * const tree = renderSegments(segments, { isAction: true });
200
+ * const tree = await renderSegments(segments, { isAction: true });
187
201
  * ```
188
202
  */
189
203
  export async function renderSegments(
@@ -227,6 +241,25 @@ export async function renderSegments(
227
241
  }
228
242
  // Separate segments by type, passing intercept segments for explicit injection
229
243
  const tree = segmentTreeWalk(normalizedSegments, normalizedInterceptSegments);
244
+
245
+ // A route is "in a transition scope" when its own segment OR any layout in
246
+ // its matched chain declares transition(). Both transition() forms land here:
247
+ // the per-route item form sets transition on the route entry, and the block
248
+ // wrapper form sets it on a transparent ancestor layout (dsl-helpers.ts). When
249
+ // in scope, the route and its route-owned layouts use param-agnostic keys so a
250
+ // same-route navigation reconciles (holds content) instead of remounting. The
251
+ // value is a static property of the route's position in the tree, so it is the
252
+ // same on every render of that route (SSR, navigation, action) — the keys
253
+ // never drift. Cross-route navigation still remounts: different routes have
254
+ // different segment ids regardless of transition scope.
255
+ const inTransitionScope = normalizedSegments.some(
256
+ (s) =>
257
+ s.transition != null &&
258
+ (s.type === "layout" ||
259
+ s.type === "route" ||
260
+ s.type === "error" ||
261
+ s.type === "notFound"),
262
+ );
230
263
  // Render content segments as siblings
231
264
  let content: ReactNode = null;
232
265
  for (const node of tree) {
@@ -239,17 +272,31 @@ export async function renderSegments(
239
272
  );
240
273
  const { component, id, params, loading } = node.segment;
241
274
 
242
- // Only include params in key for segments that belong to the route
243
- // - Routes: always include params (they render param-specific content)
244
- // - Error/notFound segments: always include params (they replace failed route content)
245
- // - Route's layouts (orphans): include params (children of parameterized route)
246
- // - Parent chain layouts: exclude params (shared across routes, param-agnostic)
247
- // This prevents unnecessary unmounting when params change
275
+ // Param-agnostic keys are opt-in via the transition() DSL (see
276
+ // inTransitionScope above). A route (and its route-owned layouts) inside a
277
+ // transition scope drops the param from its key, so navigating between two
278
+ // param values of the SAME route (e.g. /product/1 -> /product/2) reconciles
279
+ // the route subtree instead of remounting it. Combined with the
280
+ // startTransition wrap that shouldStartViewTransition already applies to
281
+ // transition routes (browser/partial-update.ts), the previous content stays
282
+ // on screen while the new loaders resolve (stale-while-revalidate) instead
283
+ // of flashing the loading skeleton. This works on stable React; experimental
284
+ // React adds the animated <ViewTransition> cross-fade on top.
285
+ //
286
+ // Outside a transition scope the key stays param-bearing and the route
287
+ // remounts on param change (the default: a fresh skeleton and fresh
288
+ // component state).
289
+ //
290
+ // error/notFound always keep param-bearing keys: createErrorSegment reuses
291
+ // the boundary layout's shortCode as the error segment id (router/
292
+ // error-handling.ts), so a param-agnostic error key could collide with that
293
+ // layout's key within the same render.
248
294
  const includeParams =
249
- node.segment.type === "route" ||
250
295
  node.segment.type === "error" ||
251
296
  node.segment.type === "notFound" ||
252
- (node.segment.type === "layout" && node.segment.belongsToRoute);
297
+ ((node.segment.type === "route" ||
298
+ (node.segment.type === "layout" && node.segment.belongsToRoute)) &&
299
+ !inTransitionScope);
253
300
 
254
301
  const paramStr =
255
302
  includeParams && params && Object.keys(params).length > 0
@@ -258,69 +305,70 @@ export async function renderSegments(
258
305
  .map(([k, v]) => `${k}=${v}`)
259
306
  .join(",")
260
307
  : "";
261
- const key = `${paramStr ? `${id}-${paramStr}` : id}`;
308
+ const key = paramStr ? `${id}-${paramStr}` : id;
262
309
 
263
- // Get loader entries for this node
264
310
  const loaderEntries = node.loaders.filter(
265
311
  (loader) => loader.loaderId && loader.loaderData !== undefined,
266
312
  );
267
313
 
268
- // Determine the component content (with or without Suspense wrapper)
269
- // Wrap when loading skeleton defined OR component is Promise (needs Suspense)
270
- // During actions, await component Promise to prevent Suspense from triggering
271
- // This keeps existing content visible instead of showing loading skeleton
272
314
  let resolvedComponent = component;
273
315
  if (isAction && component instanceof Promise) {
274
316
  resolvedComponent = await component;
275
317
  }
276
318
 
277
- let nodeContent: ReactNode =
278
- loading !== null && loading !== undefined && loading !== false
279
- ? createElement(RouteContentWrapper, {
280
- key: `suspense-loading-${id}`,
281
- content:
282
- resolvedComponent instanceof Promise
283
- ? resolvedComponent
284
- : Promise.resolve(resolvedComponent),
285
- fallback: loading,
286
- segmentId: id,
287
- })
288
- : registerLazyRef(resolvedComponent);
319
+ let nodeContent: ReactNode = isRenderableLoading(loading)
320
+ ? createElement(RouteContentWrapper, {
321
+ key: `suspense-loading-${id}`,
322
+ content: getMemoizedContentPromise(resolvedComponent),
323
+ fallback: loading,
324
+ segmentId: id,
325
+ })
326
+ : registerLazyRef(resolvedComponent);
289
327
 
290
328
  // Wrap with <ViewTransition> if transition config exists (React experimental only).
291
329
  // An empty config ({}) creates a bare <ViewTransition> boundary that participates
292
330
  // in transitions without adding custom animation classes. Named element-level
293
331
  // <ViewTransition> components inside (with name/share props) morph independently
294
332
  // from the parent's default cross-fade.
295
- if (ReactViewTransition && node.segment.transition) {
296
- nodeContent = createElement(ReactViewTransition, {
297
- ...node.segment.transition,
298
- children: nodeContent,
299
- });
300
- }
301
-
302
- // Common props for OutletProvider
303
- const outletContent: ReactNode =
333
+ //
334
+ // For layouts, wrap the outlet content (what `<Outlet />` renders) rather
335
+ // than the layout component itself. Parallel slots like `<ParallelOutlet
336
+ // name="@modal" />` read from a separate context channel and end up as
337
+ // siblings of the VT in the rendered tree, so modal mounts don't trigger a
338
+ // subtree update on the layout-level VT — which would otherwise make
339
+ // React's commit walker fire `document.startViewTransition` and apply
340
+ // view-transition-names to the underlying main subtree (cover/title/etc.).
341
+ //
342
+ // `transition.viewTransition === false` opts out of the router-owned
343
+ // boundary only. Driving (the startTransition wrap in browser/partial-update.ts
344
+ // and the param-agnostic key/hold below) keys off transition *presence*, not
345
+ // this flag, so a boundary-less transition still holds content and lets
346
+ // consumer-placed <ViewTransition> elements animate. The global
347
+ // createRouter({ viewTransition }) default is resolved into this field
348
+ // during segment resolution (only `false` is stamped; unset/"auto" is left
349
+ // as-is and means "wrap"), so this gate needs no router-option threading.
350
+ let outletContent: ReactNode =
304
351
  node.segment.type === "layout" ? content : null;
305
352
 
353
+ const transition = node.segment.transition;
354
+
355
+ if (
356
+ ReactViewTransition &&
357
+ transition &&
358
+ transition.viewTransition !== false
359
+ ) {
360
+ if (node.segment.type === "layout") {
361
+ outletContent = wrapDefaultOutletContent(outletContent, transition);
362
+ } else {
363
+ nodeContent = createViewTransitionBoundary(transition, nodeContent);
364
+ }
365
+ }
366
+
306
367
  // Prepare loader data if there are loaders
307
368
  const loaderIds = loaderEntries.map((loader) => loader.loaderId!);
308
- const loaderDataPromise =
309
- loaderEntries.length > 0
310
- ? Promise.all(
311
- loaderEntries.map((loader) =>
312
- loader.loaderData instanceof Promise
313
- ? loader.loaderData
314
- : Promise.resolve(loader.loaderData),
315
- ),
316
- )
317
- : Promise.resolve([]);
318
-
319
- // Use LoaderBoundary when loading is defined to maintain consistent tree structure
320
- // This ensures cached segments (which may not have loader segments) have the same
321
- // tree structure as fresh segments, preventing React remounts
322
- // If forceAwait or isAction is set, pre-resolve promises so LoaderBoundary won't suspend
369
+
323
370
  if (loading !== undefined && loading !== null) {
371
+ const loaderDataPromise = getMemoizedLoaderPromise(loaderEntries);
324
372
  content = createElement(LoaderBoundary, {
325
373
  key: `loader-boundary-${key}`,
326
374
  loaderDataPromise:
@@ -334,7 +382,6 @@ export async function renderSegments(
334
382
  children: nodeContent,
335
383
  });
336
384
  } else if (loaderEntries.length === 0) {
337
- // No loaders, no loading - simple OutletProvider
338
385
  content = createElement(OutletProvider, {
339
386
  key,
340
387
  content: outletContent,
@@ -343,34 +390,18 @@ export async function renderSegments(
343
390
  children: nodeContent,
344
391
  });
345
392
  } else {
346
- // Has loaders but no loading skeleton.
347
- // Split: parallel-owned loaders stream (their parallel has loading()),
348
- // layout-owned loaders are awaited (they gate the layout content).
349
393
  const layoutLoaders = loaderEntries.filter((l) => !l.parallelLoading);
350
394
  const parallelOwnedLoaders = loaderEntries.filter(
351
395
  (l) => !!l.parallelLoading,
352
396
  );
353
397
 
354
- // Await only layout-owned loaders
355
398
  const layoutLoaderIds = layoutLoaders.map((l) => l.loaderId!);
356
- const layoutLoaderDataPromise =
357
- layoutLoaders.length > 0
358
- ? Promise.all(
359
- layoutLoaders.map((l) =>
360
- l.loaderData instanceof Promise
361
- ? l.loaderData
362
- : Promise.resolve(l.loaderData),
363
- ),
364
- )
365
- : Promise.resolve([]);
366
- const resolvedData = await layoutLoaderDataPromise;
367
- const { loaderData, errorFallback } = resolveLoaderData(
399
+ const resolvedData = await buildLoaderPromise(layoutLoaders);
400
+ const { loaderData, errorFallback } = decodeLoaderResults(
368
401
  resolvedData,
369
402
  layoutLoaderIds,
370
403
  );
371
404
 
372
- // Parallel-owned loaders: attach to their owning parallel segment
373
- // as loaderDataPromise so ParallelOutlet wraps in LoaderBoundary
374
405
  if (parallelOwnedLoaders.length > 0) {
375
406
  const loadersByParallelNamespace = new Map<string, ResolvedSegment[]>();
376
407
 
@@ -396,34 +427,12 @@ export async function renderSegments(
396
427
  continue;
397
428
  }
398
429
 
399
- const parallelLoaderIds = ownedLoaders.map((l) => l.loaderId!);
400
- const parallelLoaderSources = ownedLoaders.map((l) => l.loaderData);
401
- p.loaderIds = parallelLoaderIds;
402
-
403
- const shouldReuseParallelPromise =
404
- p.loaderDataPromise !== undefined &&
405
- hasSameReferences(p.parallelLoaderSources, parallelLoaderSources);
406
-
407
- const parallelLoaderDataPromise = shouldReuseParallelPromise
408
- ? p.loaderDataPromise
409
- : forceAwait || isAction
410
- ? await Promise.all(
411
- ownedLoaders.map((l) =>
412
- l.loaderData instanceof Promise
413
- ? l.loaderData
414
- : Promise.resolve(l.loaderData),
415
- ),
416
- )
417
- : Promise.all(
418
- ownedLoaders.map((l) =>
419
- l.loaderData instanceof Promise
420
- ? l.loaderData
421
- : Promise.resolve(l.loaderData),
422
- ),
423
- );
424
-
425
- p.loaderDataPromise = parallelLoaderDataPromise;
426
- p.parallelLoaderSources = parallelLoaderSources;
430
+ p.loaderIds = ownedLoaders.map((l) => l.loaderId!);
431
+ const aggregated = getMemoizedLoaderPromise(ownedLoaders);
432
+ p.loaderDataPromise =
433
+ (forceAwait || isAction) && aggregated instanceof Promise
434
+ ? await aggregated
435
+ : aggregated;
427
436
  }
428
437
  }
429
438
 
@@ -449,8 +458,6 @@ export async function renderSegments(
449
458
  }
450
459
  }
451
460
 
452
- // Always wrap with root error boundary to prevent white screens
453
- // This catches any unhandled errors that bubble up from the segment tree
454
461
  const errorBoundaryWrapped = createElement(RootErrorBoundary, {
455
462
  children: content,
456
463
  });
@@ -458,11 +465,8 @@ export async function renderSegments(
458
465
  await Promise.allSettled(temporalLazyRefs);
459
466
  }
460
467
 
461
- // Build the final result, optionally wrapped with root layout
462
468
  let result: ReactNode = errorBoundaryWrapped;
463
469
 
464
- // If rootLayout is provided, wrap the error boundary with it
465
- // This ensures the app shell stays mounted even during errors (prevents FOUC)
466
470
  if (RootLayout) {
467
471
  result = createElement(RootLayout, {
468
472
  children: errorBoundaryWrapped,
@@ -500,6 +504,31 @@ export async function renderSegments(
500
504
  * @param segments - Main segments from the route tree
501
505
  * @param interceptSegments - Optional intercept segments to inject
502
506
  */
507
+ // Loader segment ids have the grammar `${parentId}D${index}.${loaderId}`.
508
+ // parentId is the parent shortCode (M/L/P/R/C + digits, never "D") for normal
509
+ // loaders, or `${shortCode}.${slotName}` for intercept-slot loaders, where the
510
+ // slot name is user-controlled (`@${string}`) and may contain an uppercase "D"
511
+ // (e.g. "@Detail"). Strip from the first `D<index>.` separator so the slot name
512
+ // is preserved; splitting on a bare "D" mis-cut "@Detail" to "@" and silently
513
+ // dropped the loader's data. The first-`D<index>.` strip is only correct because
514
+ // slot names cannot contain "." -- assertValidSlotName (route-definition/
515
+ // dsl-helpers.ts) rejects a "." at definition time, so a name like "@D3.foo"
516
+ // (which WOULD mis-cut here) can never reach this function.
517
+ function loaderParentId(loaderSegmentId: string): string {
518
+ return loaderSegmentId.replace(/D\d+\..*$/, "");
519
+ }
520
+
521
+ // Append a value to the array stored under `key`, creating the array on first
522
+ // use. Single Map lookup (vs the has/get!().push double-lookup idiom).
523
+ function pushToGroup<K, V>(map: Map<K, V[]>, key: K, value: V): void {
524
+ const arr = map.get(key);
525
+ if (arr) {
526
+ arr.push(value);
527
+ } else {
528
+ map.set(key, [value]);
529
+ }
530
+ }
531
+
503
532
  function* segmentTreeWalk(
504
533
  segments: ResolvedSegment[],
505
534
  interceptSegments?: ResolvedSegment[],
@@ -520,19 +549,12 @@ function* segmentTreeWalk(
520
549
  // Extract parent ID from parallel ID
521
550
  // Example: "L0R1L0.@sidebar" → "L0R1L0"
522
551
  const parentId = segment.id.split(".")[0];
523
- if (!parallelsByParent.has(parentId)) {
524
- parallelsByParent.set(parentId, []);
525
- }
526
- parallelsByParent.get(parentId)!.push(segment);
552
+ pushToGroup(parallelsByParent, parentId, segment);
527
553
  } else if (segment.type === "loader") {
528
554
  // Extract parent ID from loader ID
529
- // Example: "L0D0.cart" → "L0"
530
- // Loader ID format: {parentShortCode}D{index}.{loaderId}
531
- const parentId = segment.id.split("D")[0];
532
- if (!loadersByParent.has(parentId)) {
533
- loadersByParent.set(parentId, []);
534
- }
535
- loadersByParent.get(parentId)!.push(segment);
555
+ // Example: "L0D0.cart" → "L0"; "L0.@DetailD0.x" → "L0.@Detail"
556
+ const parentId = loaderParentId(segment.id);
557
+ pushToGroup(loadersByParent, parentId, segment);
536
558
  } else {
537
559
  // Layout, route, error, and notFound segments are all rendered in the tree
538
560
  // Error/notFound segments replace the failed segment with fallback UI
@@ -547,17 +569,11 @@ function* segmentTreeWalk(
547
569
  if (intercept.type === "parallel" && intercept.slot) {
548
570
  // Extract parent ID from intercept ID (e.g., "M4L0L0L2.@modal" → "M4L0L0L2")
549
571
  const parentId = intercept.id.split(".")[0];
550
- if (!parallelsByParent.has(parentId)) {
551
- parallelsByParent.set(parentId, []);
552
- }
553
- parallelsByParent.get(parentId)!.push(intercept);
572
+ pushToGroup(parallelsByParent, parentId, intercept);
554
573
  } else if (intercept.type === "loader") {
555
- // Intercept loaders - extract parent from loader ID
556
- const parentId = intercept.id.split("D")[0];
557
- if (!loadersByParent.has(parentId)) {
558
- loadersByParent.set(parentId, []);
559
- }
560
- loadersByParent.get(parentId)!.push(intercept);
574
+ // Intercept loaders - extract parent from loader ID (slot name preserved)
575
+ const parentId = loaderParentId(intercept.id);
576
+ pushToGroup(loadersByParent, parentId, intercept);
561
577
  }
562
578
  }
563
579
  }