@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
@@ -0,0 +1,581 @@
1
+ /**
2
+ * renderRoute — a React-Testing-Library-style helper for unit-testing CLIENT
3
+ * components that read @rangojs/router client context (useParams, useReverse,
4
+ * Outlet, useNavigation, useLoader).
5
+ *
6
+ * Peer of React Router's createRoutesStub and Expo Router's renderRouter. It
7
+ * mounts the router's NavigationProvider plus a synthetic segment tree so that
8
+ * a component under test sees real router context, without spinning up a
9
+ * server, a Vite build, or a real Flight round-trip.
10
+ *
11
+ * FIDELITY CONTRACT — read before relying on this helper:
12
+ * This renders the CLIENT tree ONLY. The segment tree is built synthetically
13
+ * from the `routes` you pass; there is no server render and no Flight
14
+ * (de)serialization. Consequences:
15
+ * - It will NOT catch server/client boundary reference-identity remount bugs
16
+ * (a server-serialized component reference differing from the client
17
+ * reference). Use renderServerTree / e2e for those.
18
+ * - It will NOT catch real Flight serialization errors (non-serializable
19
+ * props crossing the RSC boundary), loader execution on the server,
20
+ * middleware, or handler ordering. Those are renderServerTree / renderHandler
21
+ * / e2e territory.
22
+ * - Loader data, location state, and handle output are SEEDED directly into
23
+ * client context (see the `loaders` / `locationState` / `handles` options) —
24
+ * nothing is executed on the server. This exercises the read path
25
+ * (useLoader / useLocationState / useHandle from context), not the run path.
26
+ * - navigate() commits synchronously, so it does NOT drive the navigation
27
+ * lifecycle: useNavigation().state, useLinkStatus().pending, and
28
+ * useAction().state stay "idle". Assert pending/loading/submitting transition
29
+ * states with renderServerTree / e2e instead (navigate() warns once if used).
30
+ * What it DOES cover: client hooks that read NavigationProvider /
31
+ * OutletContext — useParams, useReverse, useHref, useMount, useNavigation,
32
+ * useRouter, usePathname, useSearchParams, Outlet nesting, useLoader /
33
+ * useFetchLoader (seeded data), useLocationState (seeded), and useHandle (seeded).
34
+ * Basename-mounted apps: pass the `basename` option so useRouter().basename,
35
+ * <Link> prefixing, and useMount/useHref resolve against the mount prefix
36
+ * (without it they resolve at the root "/"). For an include("/shop", ...)
37
+ * subtree, pass the `mount` option so useMount() returns the mounted prefix
38
+ * (the segment chain is wrapped in a MountContext exactly as in production).
39
+ */
40
+
41
+ import type { ReactNode, ComponentType } from "react";
42
+ import type { RenderResult } from "@testing-library/react";
43
+ import { renderSegments } from "../segment-system.js";
44
+ import {
45
+ createNavigationStore,
46
+ generateHistoryKey,
47
+ } from "../browser/navigation-store.js";
48
+ import { createEventController } from "../browser/event-controller.js";
49
+ import type { NavigationStore, NavigationBridge } from "../browser/types.js";
50
+ import type { EventController } from "../browser/event-controller.js";
51
+ import type { ResolvedSegment, RscMetadata } from "../browser/types.js";
52
+ import { NavigationProvider } from "../browser/react/NavigationProvider.js";
53
+ import { compilePattern } from "../router/pattern-matching.js";
54
+ import { normalizeBasename } from "../router/basename.js";
55
+ import type { LoaderDefinition } from "../types.js";
56
+ import type { LocationStateDefinition } from "../browser/react/location-state-shared.js";
57
+ import type { Handle } from "../handle.js";
58
+ import type { ThemeConfig } from "../theme/types.js";
59
+ import { resolveThemeConfig } from "../theme/constants.js";
60
+ import { isUnderTestRunner } from "../runtime-env.js";
61
+
62
+ const TEST_ORIGIN = "http://localhost";
63
+
64
+ /**
65
+ * Seed shape for `options.handle`, matching the handle wire format:
66
+ * `{ [handleName]: { [segmentId]: pushedValues[] } }` (each segment accumulates
67
+ * an array of values pushed for that handle).
68
+ */
69
+ export type HandleDataSeed = Record<string, Record<string, unknown[]>>;
70
+
71
+ const syntheticIds = new WeakMap<object, string>();
72
+ let syntheticIdCounter = 0;
73
+
74
+ function ensureSyntheticId(
75
+ handle: object,
76
+ field: "$$id" | "__rsc_ls_key",
77
+ ): string {
78
+ const existing = (handle as Record<string, string>)[field];
79
+ if (existing) return existing;
80
+ let id = syntheticIds.get(handle);
81
+ if (!id) {
82
+ id = `__rango_test_id_${syntheticIdCounter++}`;
83
+ syntheticIds.set(handle, id);
84
+ }
85
+ (handle as Record<string, string>)[field] = id;
86
+ return id;
87
+ }
88
+
89
+ function cloneHandleSeed(seed?: HandleDataSeed): HandleDataSeed {
90
+ const out: HandleDataSeed = {};
91
+ for (const [name, segMap] of Object.entries(seed ?? {})) {
92
+ out[name] = { ...segMap };
93
+ }
94
+ return out;
95
+ }
96
+
97
+ export interface RenderRouteSpec {
98
+ /**
99
+ * The route pattern this node matches, e.g. "/products/:productId". The LAST
100
+ * spec in the array is treated as the leaf route; earlier specs are layouts
101
+ * wrapping it. Only the leaf pattern is matched against the `request` URL to
102
+ * extract params; layout patterns are informational.
103
+ */
104
+ path: string;
105
+ /** The component rendered for this node (the leaf route or a layout body). */
106
+ Component: ComponentType;
107
+ /**
108
+ * Optional layout component. When set on the LEAF spec it wraps the route in
109
+ * its own layout segment (useful for a route that owns a layout). Prefer
110
+ * expressing layouts as their own array entries instead.
111
+ */
112
+ layout?: ComponentType;
113
+ /**
114
+ * Loader ids ($$id) whose seeded data (from `options.loaderData`) should be
115
+ * attached to THIS node's segment so useLoader/useFetchLoader resolve it from
116
+ * context. When omitted, every key in `options.loaderData` is attached to the
117
+ * leaf route segment.
118
+ */
119
+ loaderIds?: string[];
120
+ /** Optional route name (informational; not used for matching). */
121
+ name?: string;
122
+ }
123
+
124
+ /**
125
+ * Options for renderRoute.
126
+ */
127
+ export interface RenderRouteOptions {
128
+ /**
129
+ * The initial location to render at: a `Request`, or a URL string (absolute or
130
+ * path). Only the URL is read (this is a client render — headers/method are
131
+ * ignored); named `request` for parity with the other primitives. Defaults to
132
+ * the leaf spec's static prefix or "/".
133
+ */
134
+ request?: Request | string;
135
+ /**
136
+ * Loader data to seed into client context, keyed by loader id ($$id). A
137
+ * component calling useLoader(SomeLoader) reads `loaderData[SomeLoader.$$id]`.
138
+ * Seeded values are placed in the route segment's OutletProvider context, so
139
+ * the read path is exercised without executing any loader.
140
+ */
141
+ loaderData?: Record<string, unknown>;
142
+ /**
143
+ * Loaders to seed by REFERENCE — the robust way to test a component that calls
144
+ * `useLoader(loader)`. A real `createLoader()` handle has an empty `$$id` in a
145
+ * bare test (the id is injected by the Vite plugin at build time), so keying
146
+ * `loaderData` by `$$id` collides under `""` and `useLoader` resolves nothing.
147
+ * Passing `[loader, data]` pairs lets renderRoute assign a synthetic stable id
148
+ * and wire `useLoader` to it. Prefer this over `loaderData` for real handles.
149
+ *
150
+ * NOTE: when a real handle has no `$$id`, renderRoute MUTATES it to assign a
151
+ * synthetic stable id (so repeat renders key consistently). This is a side
152
+ * effect on your input object; a handle reused across tests keeps that id.
153
+ *
154
+ * @example
155
+ * // useLoader returns an ENVELOPE — destructure `data`, it is not the bare value.
156
+ * function CartBadge() {
157
+ * const { data } = useLoader(CartLoader); // NOT `useLoader(CartLoader).itemCount`
158
+ * return <span>{data.itemCount}</span>;
159
+ * }
160
+ * renderRoute([{ path: "/cart", Component: CartBadge }], {
161
+ * loaders: [[CartLoader, { itemCount: 3, total: 89.97 }]],
162
+ * });
163
+ */
164
+ loaders?: ReadonlyArray<readonly [LoaderDefinition<any>, unknown]>;
165
+ /**
166
+ * Explicit params. Merged over (and overriding) params extracted from the
167
+ * `request` URL. Use this when the URL alone cannot express the params, or to
168
+ * avoid relying on URL parsing. Supplying params also OPTS OUT of the
169
+ * request/leaf match check: a `request` whose pathname does not resolve the
170
+ * leaf is normally rejected under the test runner, but passing params here
171
+ * tells renderRoute the request is intentionally not the param source.
172
+ */
173
+ params?: Record<string, string>;
174
+ /**
175
+ * Location-state values to seed by REFERENCE, for components that call
176
+ * `useLocationState(StateDef)`. Like loaders, a real `createLocationState()`
177
+ * handle has an empty injected key in a bare test, so pass `[def, value]`
178
+ * pairs; renderRoute assigns a synthetic key and writes it to `history.state`.
179
+ *
180
+ * @example
181
+ * renderRoute([{ path: "/", Component: FlashBanner }], {
182
+ * locationState: [[FlashMessage, { text: "Saved" }]],
183
+ * });
184
+ */
185
+ locationState?: ReadonlyArray<
186
+ readonly [LocationStateDefinition<any, any>, unknown]
187
+ >;
188
+ /**
189
+ * Handles to seed by REFERENCE, for components that read handle output via
190
+ * `useHandle(SomeHandle)` (e.g. a client `Breadcrumbs` trail). Each entry is
191
+ * `[handle, pushedValues[]]` — the values a route's handlers would have pushed;
192
+ * renderRoute attaches them to the leaf route segment under the handle's id.
193
+ * Built-in handles (Breadcrumbs/Meta) have stable ids and work directly.
194
+ *
195
+ * Handle data is accumulated GLOBALLY on the event controller, not scoped per
196
+ * segment like loaders — so ANY component in the chain reads the seeded values,
197
+ * a LAYOUT (e.g. a DetailLayout/ActionToolbar reading a handle) just as much as
198
+ * the leaf route. Most handle usage is server-side (`ctx.use(...)`) and is
199
+ * better covered by `renderToFlightString`/e2e; this seeds the client read path
200
+ * only.
201
+ *
202
+ * @example
203
+ * renderRoute([{ path: "/p", Component: BreadcrumbTrail }], {
204
+ * handles: [[Breadcrumbs, [{ label: "Home", href: "/" }, { label: "P", href: "/p" }]]],
205
+ * });
206
+ */
207
+ handles?: ReadonlyArray<readonly [Handle<any, any>, unknown[]]>;
208
+ /**
209
+ * Advanced: raw handle data in wire format
210
+ * `{ [handleId]: { [segmentId]: pushedValues[] } }`. Prefer `handles` (which
211
+ * computes the segment id for you). Merged with `handles`.
212
+ */
213
+ handle?: HandleDataSeed;
214
+ /**
215
+ * Route name -> pattern map. Informational for parity with the server test
216
+ * context; client useReverse takes its map directly as an argument, so this
217
+ * is not consumed by the client hooks.
218
+ */
219
+ routeMap?: Record<string, string>;
220
+ /**
221
+ * Router basename (the `createRouter({ basename })` value). Wired into
222
+ * NavigationProvider so `useRouter().basename`, `<Link>` href prefixing, and
223
+ * `useMount`/`useHref` resolve against the mounted prefix instead of the root.
224
+ * Normalized exactly like createRouter (leading slash forced, trailing
225
+ * stripped, bare "/" -> undefined). Defaults to undefined (root mount).
226
+ */
227
+ basename?: string;
228
+ /**
229
+ * include() mount prefix, to model an `include("/shop", ...)` subtree so a
230
+ * component (route OR layout in the chain) calling `useMount()` returns the
231
+ * mounted prefix instead of "/". Wraps the segment chain in a MountContext
232
+ * exactly as `renderSegments` does in production (a segment whose `mountPath`
233
+ * is set is wrapped in a MountContextProvider). Normalized like a path prefix
234
+ * (leading slash forced, trailing stripped, bare "/" -> root). Defaults to "/".
235
+ * An explicitly-passed `request` must match the leaf `path` directly (paths are
236
+ * include-RELATIVE; the mount does NOT rewrite the request) — pass the relative
237
+ * path, not the mount-prefixed one, or renderRoute throws rather than silently
238
+ * rendering empty params.
239
+ *
240
+ * @example
241
+ * renderRoute([{ path: "/c/wine", Component: ProductPage }], { mount: "/shop" });
242
+ * // useMount() inside ProductPage returns "/shop"
243
+ */
244
+ mount?: string;
245
+ /**
246
+ * Theme config in the `createRouter({ theme })` shape (resolved internally) to
247
+ * wrap the tree in a ThemeProvider. Defaults to no provider. Note: a component
248
+ * that calls `useTheme()` REQUIRES a provider — it throws "used outside
249
+ * ThemeProvider" without one — so pass a config (e.g. `true`) to test such a
250
+ * component.
251
+ */
252
+ theme?: ThemeConfig | true;
253
+ /**
254
+ * CSP nonce to seed via NonceContext, so a component calling `useNonce()`
255
+ * (e.g. an analytics/GTM head-script component) sees this value — mirroring
256
+ * what the SSR renderer provides per request. Defaults to undefined (the
257
+ * browser default), matching production client behavior.
258
+ *
259
+ * @example
260
+ * const { getByTestId } = await renderRoute(
261
+ * [{ path: "/", Component: NonceProbe }],
262
+ * { nonce: "test-nonce" },
263
+ * );
264
+ * expect(getByTestId("nonce").textContent).toBe("test-nonce");
265
+ */
266
+ nonce?: string;
267
+ }
268
+
269
+ /**
270
+ * Imperative handle returned alongside the RTL result.
271
+ */
272
+ export interface TestRouterHandle {
273
+ /**
274
+ * Navigate to a new URL. Re-resolves the URL against the supplied `routes`,
275
+ * updates params + location, and re-renders the segment tree. This is a
276
+ * client-only navigation: no server fetch occurs, so only the components in
277
+ * `routes` can be reached.
278
+ */
279
+ navigate(url: string): Promise<void>;
280
+ /** The current committed pathname. */
281
+ pathname(): string;
282
+ /** The current committed params. */
283
+ params(): Record<string, string>;
284
+ /** The underlying navigation store (advanced use). */
285
+ store: NavigationStore;
286
+ /** The underlying event controller (advanced use). */
287
+ eventController: EventController;
288
+ }
289
+
290
+ /** Result of renderRoute: RTL's render result plus the router handle. */
291
+ export type RenderRouteResult = RenderResult & { router: TestRouterHandle };
292
+
293
+ interface ResolvedMatch {
294
+ params: Record<string, string>;
295
+ pathname: string;
296
+ }
297
+
298
+ function matchLeaf(
299
+ pattern: string,
300
+ pathname: string,
301
+ ): Record<string, string> | null {
302
+ const compiled = compilePattern(pattern);
303
+ const match = compiled.regex.exec(pathname);
304
+ if (!match) return null;
305
+ const params: Record<string, string> = {};
306
+ compiled.paramNames.forEach((name, index) => {
307
+ const value = match[index + 1];
308
+ if (value !== undefined) {
309
+ params[name] = decodeURIComponent(value);
310
+ }
311
+ });
312
+ return params;
313
+ }
314
+
315
+ function staticPrefix(pattern: string): string {
316
+ const out: string[] = [];
317
+ for (const part of pattern.split("/")) {
318
+ if (part === "") continue;
319
+ if (part.startsWith(":") || part === "*") break;
320
+ out.push(part);
321
+ }
322
+ return "/" + out.join("/");
323
+ }
324
+
325
+ function buildSegments(
326
+ routes: RenderRouteSpec[],
327
+ params: Record<string, string>,
328
+ loaderData: Record<string, unknown>,
329
+ mount?: string,
330
+ ): ResolvedSegment[] {
331
+ const segments: ResolvedSegment[] = [];
332
+ const leafIndex = routes.length - 1;
333
+ let idPath = "";
334
+
335
+ const seededIds = Object.keys(loaderData);
336
+ const explicitlyOwned = new Set<string>();
337
+ for (const spec of routes) {
338
+ for (const id of spec.loaderIds ?? []) explicitlyOwned.add(id);
339
+ }
340
+
341
+ routes.forEach((spec, i) => {
342
+ const isLeaf = i === leafIndex;
343
+ const tag = isLeaf ? `R${i}` : `L${i}`;
344
+ idPath = idPath + tag;
345
+ const segmentId = idPath;
346
+
347
+ const Component = spec.Component;
348
+ const node: ResolvedSegment = {
349
+ id: segmentId,
350
+ namespace: "",
351
+ type: isLeaf ? "route" : "layout",
352
+ index: i,
353
+ component: <Component />,
354
+ params,
355
+ belongsToRoute: true,
356
+ };
357
+ if (mount) node.mountPath = mount;
358
+ if (isLeaf && spec.layout) {
359
+ const Layout = spec.layout;
360
+ node.layout = <Layout />;
361
+ }
362
+ segments.push(node);
363
+
364
+ const ownedIds = spec.loaderIds
365
+ ? spec.loaderIds.filter((id) => id in loaderData)
366
+ : isLeaf
367
+ ? seededIds.filter((id) => !explicitlyOwned.has(id))
368
+ : [];
369
+
370
+ ownedIds.forEach((loaderId, li) => {
371
+ segments.push({
372
+ id: `${segmentId}D${li}.${loaderId}`,
373
+ namespace: "",
374
+ type: "loader",
375
+ index: li,
376
+ component: null,
377
+ loaderId,
378
+ loaderData: loaderData[loaderId],
379
+ params,
380
+ });
381
+ });
382
+ });
383
+
384
+ return segments;
385
+ }
386
+
387
+ export async function renderRoute(
388
+ routes: RenderRouteSpec[],
389
+ options: RenderRouteOptions = {},
390
+ ): Promise<RenderRouteResult> {
391
+ if (routes.length === 0) {
392
+ throw new Error("renderRoute: `routes` must contain at least one entry");
393
+ }
394
+ if ("initialUrl" in options) {
395
+ throw new Error(
396
+ "renderRoute: the `initialUrl` option was renamed to `request`. " +
397
+ "Pass { request: <Request | url> } instead.",
398
+ );
399
+ }
400
+
401
+ const { render, act } = await import("@testing-library/react");
402
+
403
+ const leaf = routes[routes.length - 1];
404
+ const requestUrl =
405
+ options.request instanceof Request ? options.request.url : options.request;
406
+ const initialUrl = requestUrl ?? staticPrefix(leaf.path) ?? "/";
407
+ const url = new URL(initialUrl, TEST_ORIGIN);
408
+
409
+ const loaderData: Record<string, unknown> = { ...(options.loaderData ?? {}) };
410
+ for (const [loader, data] of options.loaders ?? []) {
411
+ loaderData[ensureSyntheticId(loader as object, "$$id")] = data;
412
+ }
413
+
414
+ if (typeof window !== "undefined") {
415
+ const stateObj: Record<string, unknown> = {};
416
+ for (const [def, value] of options.locationState ?? []) {
417
+ stateObj[ensureSyntheticId(def as object, "__rsc_ls_key")] = value;
418
+ }
419
+ window.history.replaceState(stateObj, "");
420
+ }
421
+
422
+ const resolve = (pathname: string): ResolvedMatch => {
423
+ const matched = matchLeaf(leaf.path, pathname) ?? {};
424
+ return {
425
+ params: { ...matched, ...(options.params ?? {}) },
426
+ pathname,
427
+ };
428
+ };
429
+ const initialMatch = resolve(url.pathname);
430
+
431
+ const historyKey = generateHistoryKey(url.href);
432
+ const mount = normalizeBasename(options.mount);
433
+ // Fail loud on a request that cannot resolve the leaf route (a typo, or the
434
+ // mount-prefixed-vs-relative confusion) instead of silently rendering empty
435
+ // params (matchLeaf -> null -> {}). renderRoute paths are include-RELATIVE and
436
+ // resolve() matches the request against the leaf as-is, so the request must be
437
+ // the relative form — a mount does NOT rewrite it. Only checked when `request`
438
+ // was passed explicitly (a defaulted request is staticPrefix of the leaf and
439
+ // always matches). Skipped when explicit `params` are supplied: those are
440
+ // merged over the URL-extracted params in resolve(), so the request is
441
+ // intentionally not the param source and an empty matchLeaf is not the trap.
442
+ // Gated on the test runner so it can never affect production.
443
+ if (
444
+ options.request !== undefined &&
445
+ Object.keys(options.params ?? {}).length === 0 &&
446
+ isUnderTestRunner() &&
447
+ matchLeaf(leaf.path, url.pathname) === null
448
+ ) {
449
+ throw new Error(
450
+ `renderRoute: request "${url.pathname}" does not match the leaf route ` +
451
+ `"${leaf.path}"${mount ? ` (mount "${mount}")` : ""}. renderRoute paths ` +
452
+ `are include-RELATIVE: pass a request that matches "${leaf.path}" ` +
453
+ `(e.g. "${staticPrefix(leaf.path)}"). A mount does NOT auto-rewrite the ` +
454
+ `request — pass the relative path, not the mount-prefixed one. If the ` +
455
+ `request URL intentionally does not carry the params, pass them ` +
456
+ `explicitly via the \`params\` option to bypass this check.`,
457
+ );
458
+ }
459
+ const initialSegments = buildSegments(
460
+ routes,
461
+ initialMatch.params,
462
+ loaderData,
463
+ mount,
464
+ );
465
+ const store = createNavigationStore({
466
+ initialLocation: { href: url.href },
467
+ initialSegmentIds: initialSegments.map((s) => s.id),
468
+ initialHistoryKey: historyKey,
469
+ initialSegments,
470
+ crossTabSync: false,
471
+ });
472
+ const leafRouteSegmentId =
473
+ [...initialSegments].reverse().find((s) => s.type === "route")?.id ??
474
+ initialSegments[initialSegments.length - 1]?.id;
475
+ const handleSeed: HandleDataSeed = cloneHandleSeed(options.handle);
476
+ for (const [handle, values] of options.handles ?? []) {
477
+ if (leafRouteSegmentId === undefined) continue;
478
+ const id = (handle as unknown as { $$id: string }).$$id;
479
+ (handleSeed[id] ??= {})[leafRouteSegmentId] = values;
480
+ }
481
+
482
+ const eventController = createEventController({ initialLocation: url });
483
+ eventController.setParams(initialMatch.params);
484
+ eventController.setHandleData(
485
+ handleSeed,
486
+ initialSegments.map((s) => s.id),
487
+ );
488
+
489
+ let warnedNavLifecycle = false;
490
+ const navigate = async (target: string): Promise<void> => {
491
+ // renderRoute commits navigations synchronously (no server fetch, no Flight
492
+ // stream), so it never drives the navigation lifecycle. The transition state
493
+ // useNavigation()/useLinkStatus()/useAction() read stays "idle" — asserting a
494
+ // pending/loading/submitting state here proves nothing. Warn once (per render)
495
+ // under the test runner so that false-confidence trap is loud, not silent.
496
+ if (isUnderTestRunner() && !warnedNavLifecycle) {
497
+ warnedNavLifecycle = true;
498
+ console.warn(
499
+ "renderRoute: navigate()/useRouter().push commit synchronously and do " +
500
+ "NOT drive the navigation lifecycle. useNavigation().state, " +
501
+ 'useLinkStatus().pending, and useAction().state stay "idle" here. ' +
502
+ "Assert params/pathname/content after navigate(); use renderServerTree " +
503
+ "or e2e to assert pending/loading/submitting transition states.",
504
+ );
505
+ }
506
+ const nextUrl = new URL(target, TEST_ORIGIN);
507
+ const match = resolve(nextUrl.pathname);
508
+ const segments = buildSegments(routes, match.params, loaderData, mount);
509
+ const metadata = makeMetadata(nextUrl.pathname, segments, match.params);
510
+ const root = await renderSegments(segments);
511
+ eventController.setLocation(nextUrl);
512
+ eventController.setParams(match.params);
513
+ store.setCurrentUrl(nextUrl.href);
514
+ store.setSegmentIds(segments.map((s) => s.id));
515
+ await act(async () => {
516
+ store.emitUpdate({ root, metadata });
517
+ });
518
+ };
519
+
520
+ const bridge: NavigationBridge = {
521
+ navigate: (target) => navigate(target),
522
+ refresh: () => navigate(url.pathname + url.search),
523
+ handlePopstate: async () => {},
524
+ registerLinkInterception: () => () => {},
525
+ getVersion: () => undefined,
526
+ updateVersion: () => {},
527
+ };
528
+
529
+ const initialMetadata = makeMetadata(
530
+ url.pathname,
531
+ initialSegments,
532
+ initialMatch.params,
533
+ );
534
+ const initialTree = await renderSegments(initialSegments);
535
+
536
+ // Wrap render in an awaited async act so a tree that suspends (async loaders,
537
+ // loading states, deferred handle entries that arrive as a Promise) settles its
538
+ // Suspense within act — otherwise React orphans the resolution ("a component
539
+ // suspended inside an act scope, but the act call was not awaited") and the
540
+ // resolved content never reaches the asserted DOM.
541
+ let result!: Awaited<ReturnType<typeof render>>;
542
+ await act(async () => {
543
+ result = render(
544
+ <NavigationProvider
545
+ store={store}
546
+ eventController={eventController}
547
+ initialPayload={{ root: initialTree, metadata: initialMetadata }}
548
+ bridge={bridge}
549
+ basename={normalizeBasename(options.basename)}
550
+ themeConfig={
551
+ options.theme === undefined ? null : resolveThemeConfig(options.theme)
552
+ }
553
+ nonce={options.nonce}
554
+ />,
555
+ );
556
+ });
557
+
558
+ const router: TestRouterHandle = {
559
+ navigate,
560
+ pathname: () => new URL(eventController.getLocation().href).pathname,
561
+ params: () => eventController.getParams(),
562
+ store,
563
+ eventController,
564
+ };
565
+
566
+ return Object.assign(result, { router });
567
+ }
568
+
569
+ function makeMetadata(
570
+ pathname: string,
571
+ segments: ResolvedSegment[],
572
+ params: Record<string, string>,
573
+ ): RscMetadata {
574
+ return {
575
+ pathname,
576
+ segments,
577
+ params,
578
+ matched: segments.map((s) => s.id),
579
+ isPartial: false,
580
+ };
581
+ }