@rangojs/router 0.0.0-experimental.79 → 0.0.0-experimental.7cf4e116

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 (1196) 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 +2827 -1032
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +76 -21
  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 +4 -2
  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 +30 -6
  22. package/skills/layout/SKILL.md +13 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +18 -10
  26. package/skills/migrate-nextjs/SKILL.md +40 -16
  27. package/skills/migrate-react-router/SKILL.md +9 -2
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +18 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -24
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +46 -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 +71 -16
  72. package/src/browser/navigation-client.ts +127 -78
  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 +125 -127
  78. package/src/browser/prefetch/cache.ts +201 -68
  79. package/src/browser/prefetch/fetch.ts +287 -59
  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 +48 -20
  83. package/src/browser/react/NavigationProvider.tsx +162 -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-structure-assert.ts +2 -2
  103. package/src/browser/server-action-bridge.ts +214 -55
  104. package/src/browser/types.ts +57 -8
  105. package/src/browser/validate-redirect-origin.ts +43 -16
  106. package/src/build/collect-fallback-refs.ts +107 -0
  107. package/src/build/generate-manifest.ts +60 -35
  108. package/src/build/generate-route-types.ts +2 -1
  109. package/src/build/index.ts +8 -2
  110. package/src/build/prefix-tree-utils.ts +123 -0
  111. package/src/build/route-trie.ts +117 -14
  112. package/src/build/route-types/ast-route-extraction.ts +15 -8
  113. package/src/build/route-types/codegen.ts +16 -5
  114. package/src/build/route-types/include-resolution.ts +117 -23
  115. package/src/build/route-types/param-extraction.ts +6 -3
  116. package/src/build/route-types/per-module-writer.ts +22 -6
  117. package/src/build/route-types/router-processing.ts +55 -28
  118. package/src/build/route-types/scan-filter.ts +1 -1
  119. package/src/build/route-types/source-scan.ts +216 -0
  120. package/src/build/runtime-discovery.ts +9 -20
  121. package/src/cache/cache-error.ts +104 -0
  122. package/src/cache/cache-key-utils.ts +29 -13
  123. package/src/cache/cache-policy.ts +108 -34
  124. package/src/cache/cache-runtime.ts +199 -37
  125. package/src/cache/cache-scope.ts +188 -82
  126. package/src/cache/cache-tag.ts +103 -0
  127. package/src/cache/cf/cf-base64.ts +33 -0
  128. package/src/cache/cf/cf-cache-constants.ts +127 -0
  129. package/src/cache/cf/cf-cache-store.ts +1989 -378
  130. package/src/cache/cf/cf-cache-types.ts +349 -0
  131. package/src/cache/cf/cf-kv-utils.ts +46 -0
  132. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  133. package/src/cache/cf/index.ts +6 -16
  134. package/src/cache/document-cache.ts +72 -20
  135. package/src/cache/handle-snapshot.ts +70 -0
  136. package/src/cache/index.ts +10 -20
  137. package/src/cache/memory-segment-store.ts +136 -37
  138. package/src/cache/profile-registry.ts +31 -31
  139. package/src/cache/read-through-swr.ts +41 -11
  140. package/src/cache/segment-codec.ts +9 -17
  141. package/src/cache/tag-invalidation.ts +230 -0
  142. package/src/cache/types.ts +37 -100
  143. package/src/client.rsc.tsx +44 -21
  144. package/src/client.tsx +36 -61
  145. package/src/cloudflare/index.ts +11 -0
  146. package/src/cloudflare/tracing.ts +109 -0
  147. package/src/component-utils.ts +19 -0
  148. package/src/components/DefaultDocument.tsx +8 -2
  149. package/src/context-var.ts +18 -6
  150. package/src/decode-loader-results.ts +52 -0
  151. package/src/defer.ts +196 -0
  152. package/src/deps/ssr.ts +0 -1
  153. package/src/encode-kv.ts +49 -0
  154. package/src/errors.ts +30 -4
  155. package/src/escape-script.ts +52 -0
  156. package/src/handle.ts +31 -23
  157. package/src/handles/MetaTags.tsx +62 -19
  158. package/src/handles/Scripts.tsx +183 -0
  159. package/src/handles/breadcrumbs.ts +37 -8
  160. package/src/handles/is-thenable.ts +19 -0
  161. package/src/handles/meta.ts +51 -40
  162. package/src/handles/script.ts +244 -0
  163. package/src/host/cookie-handler.ts +9 -60
  164. package/src/host/errors.ts +0 -24
  165. package/src/host/index.ts +8 -2
  166. package/src/host/pattern-matcher.ts +23 -52
  167. package/src/host/router.ts +107 -99
  168. package/src/host/testing.ts +40 -27
  169. package/src/host/types.ts +37 -4
  170. package/src/host/utils.ts +1 -1
  171. package/src/href-client.ts +137 -22
  172. package/src/index.rsc.ts +90 -11
  173. package/src/index.ts +88 -10
  174. package/src/internal-debug.ts +11 -10
  175. package/src/loader-store.ts +500 -0
  176. package/src/loader.rsc.ts +20 -13
  177. package/src/loader.ts +12 -11
  178. package/src/missing-id-error.ts +68 -0
  179. package/src/outlet-context.ts +1 -1
  180. package/src/outlet-provider.tsx +1 -5
  181. package/src/prerender/param-hash.ts +16 -16
  182. package/src/prerender/store.ts +32 -37
  183. package/src/prerender.ts +61 -6
  184. package/src/redirect-origin.ts +100 -0
  185. package/src/regex-escape.ts +8 -0
  186. package/src/render-error-thrower.tsx +20 -0
  187. package/src/response-utils.ts +62 -0
  188. package/src/reverse.ts +65 -39
  189. package/src/root-error-boundary.tsx +1 -19
  190. package/src/route-content-wrapper.tsx +7 -72
  191. package/src/route-definition/dsl-helpers.ts +287 -281
  192. package/src/route-definition/helper-factories.ts +29 -139
  193. package/src/route-definition/helpers-types.ts +46 -18
  194. package/src/route-definition/redirect.ts +44 -11
  195. package/src/route-definition/resolve-handler-use.ts +12 -0
  196. package/src/route-definition/use-item-types.ts +32 -0
  197. package/src/route-map-builder.ts +0 -16
  198. package/src/route-types.ts +19 -41
  199. package/src/router/basename.ts +14 -0
  200. package/src/router/content-negotiation.ts +73 -25
  201. package/src/router/error-handling.ts +45 -18
  202. package/src/router/find-match.ts +44 -23
  203. package/src/router/handler-context.ts +27 -42
  204. package/src/router/instrument.ts +350 -0
  205. package/src/router/intercept-resolution.ts +39 -20
  206. package/src/router/lazy-includes.ts +10 -47
  207. package/src/router/loader-resolution.ts +155 -72
  208. package/src/router/logging.ts +0 -6
  209. package/src/router/manifest.ts +18 -29
  210. package/src/router/match-api.ts +4 -23
  211. package/src/router/match-context.ts +0 -22
  212. package/src/router/match-handlers.ts +58 -58
  213. package/src/router/match-middleware/background-revalidation.ts +6 -7
  214. package/src/router/match-middleware/cache-lookup.ts +159 -285
  215. package/src/router/match-middleware/cache-store.ts +31 -34
  216. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  217. package/src/router/match-middleware/segment-resolution.ts +0 -22
  218. package/src/router/match-pipelines.ts +1 -42
  219. package/src/router/match-result.ts +44 -74
  220. package/src/router/metrics.ts +0 -34
  221. package/src/router/middleware-types.ts +7 -134
  222. package/src/router/middleware.ts +266 -166
  223. package/src/router/navigation-snapshot.ts +0 -51
  224. package/src/router/params-util.ts +23 -0
  225. package/src/router/pattern-matching.ts +132 -90
  226. package/src/router/prefetch-cache-ttl.ts +51 -0
  227. package/src/router/prerender-match.ts +104 -65
  228. package/src/router/preview-match.ts +3 -1
  229. package/src/router/request-classification.ts +28 -62
  230. package/src/router/revalidation.ts +123 -73
  231. package/src/router/route-snapshot.ts +0 -1
  232. package/src/router/router-context.ts +3 -28
  233. package/src/router/router-interfaces.ts +83 -35
  234. package/src/router/router-options.ts +136 -5
  235. package/src/router/router-registry.ts +2 -5
  236. package/src/router/segment-resolution/fresh.ts +93 -84
  237. package/src/router/segment-resolution/helpers.ts +86 -6
  238. package/src/router/segment-resolution/loader-cache.ts +62 -37
  239. package/src/router/segment-resolution/revalidation.ts +269 -320
  240. package/src/router/segment-resolution/static-store.ts +19 -5
  241. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  242. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  243. package/src/router/segment-resolution.ts +5 -1
  244. package/src/router/segment-wrappers.ts +6 -5
  245. package/src/router/state-cookie-name.ts +33 -0
  246. package/src/router/substitute-pattern-params.ts +56 -0
  247. package/src/router/telemetry-otel.ts +161 -199
  248. package/src/router/telemetry.ts +96 -19
  249. package/src/router/timeout.ts +0 -20
  250. package/src/router/tracing.ts +206 -0
  251. package/src/router/trie-matching.ts +163 -59
  252. package/src/router/types.ts +9 -63
  253. package/src/router/url-params.ts +44 -0
  254. package/src/router.ts +110 -55
  255. package/src/rsc/handler-context.ts +3 -2
  256. package/src/rsc/handler.ts +266 -219
  257. package/src/rsc/helpers.ts +168 -46
  258. package/src/rsc/index.ts +2 -5
  259. package/src/rsc/json-route-result.ts +38 -0
  260. package/src/rsc/loader-fetch.ts +114 -38
  261. package/src/rsc/manifest-init.ts +28 -41
  262. package/src/rsc/origin-guard.ts +39 -25
  263. package/src/rsc/progressive-enhancement.ts +63 -9
  264. package/src/rsc/redirect-guard.ts +99 -0
  265. package/src/rsc/response-cache-serve.ts +238 -0
  266. package/src/rsc/response-error.ts +79 -12
  267. package/src/rsc/response-route-handler.ts +99 -189
  268. package/src/rsc/rsc-rendering.ts +99 -75
  269. package/src/rsc/runtime-warnings.ts +23 -10
  270. package/src/rsc/server-action.ts +258 -115
  271. package/src/rsc/ssr-setup.ts +16 -0
  272. package/src/rsc/types.ts +23 -5
  273. package/src/runtime-env.ts +18 -0
  274. package/src/search-params.ts +35 -30
  275. package/src/segment-loader-promise.ts +31 -4
  276. package/src/segment-system.tsx +209 -143
  277. package/src/serialize.ts +243 -0
  278. package/src/server/context.ts +150 -51
  279. package/src/server/cookie-parse.ts +32 -0
  280. package/src/server/cookie-store.ts +80 -5
  281. package/src/server/handle-store.ts +21 -38
  282. package/src/server/loader-registry.ts +21 -42
  283. package/src/server/request-context.ts +235 -175
  284. package/src/ssr/index.tsx +21 -16
  285. package/src/static-handler.ts +10 -13
  286. package/src/testing/cache-status.ts +162 -0
  287. package/src/testing/collect-handle.ts +40 -0
  288. package/src/testing/dispatch.ts +701 -0
  289. package/src/testing/dom.entry.ts +22 -0
  290. package/src/testing/e2e/fixture.ts +188 -0
  291. package/src/testing/e2e/index.ts +128 -0
  292. package/src/testing/e2e/matchers.ts +35 -0
  293. package/src/testing/e2e/page-helpers.ts +272 -0
  294. package/src/testing/e2e/parity.ts +387 -0
  295. package/src/testing/e2e/server.ts +195 -0
  296. package/src/testing/flight-matchers.ts +97 -0
  297. package/src/testing/flight-normalize.ts +11 -0
  298. package/src/testing/flight-runtime.d.ts +57 -0
  299. package/src/testing/flight-tree.ts +682 -0
  300. package/src/testing/flight.entry.ts +52 -0
  301. package/src/testing/flight.ts +257 -0
  302. package/src/testing/generated-routes.ts +183 -0
  303. package/src/testing/index.ts +99 -0
  304. package/src/testing/internal/context.ts +371 -0
  305. package/src/testing/internal/flight-client-globals.ts +30 -0
  306. package/src/testing/internal/seed-vars.ts +54 -0
  307. package/src/testing/render-handler.ts +343 -0
  308. package/src/testing/render-route.tsx +581 -0
  309. package/src/testing/run-loader.ts +385 -0
  310. package/src/testing/run-middleware.ts +205 -0
  311. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  312. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  313. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  314. package/src/testing/vitest-stubs/version.ts +5 -0
  315. package/src/testing/vitest.ts +305 -0
  316. package/src/theme/ThemeProvider.tsx +20 -58
  317. package/src/theme/ThemeScript.tsx +7 -9
  318. package/src/theme/constants.ts +52 -13
  319. package/src/theme/index.ts +0 -7
  320. package/src/theme/theme-context.ts +1 -5
  321. package/src/theme/theme-script.ts +22 -21
  322. package/src/theme/use-theme.ts +0 -3
  323. package/src/types/boundaries.ts +0 -35
  324. package/src/types/cache-types.ts +13 -4
  325. package/src/types/error-types.ts +30 -90
  326. package/src/types/global-namespace.ts +54 -41
  327. package/src/types/handler-context.ts +109 -61
  328. package/src/types/index.ts +1 -10
  329. package/src/types/loader-types.ts +11 -9
  330. package/src/types/request-scope.ts +112 -0
  331. package/src/types/route-config.ts +6 -50
  332. package/src/types/route-entry.ts +0 -6
  333. package/src/types/segments.ts +35 -14
  334. package/src/urls/include-helper.ts +9 -56
  335. package/src/urls/index.ts +1 -11
  336. package/src/urls/path-helper-types.ts +19 -5
  337. package/src/urls/path-helper.ts +17 -106
  338. package/src/urls/pattern-types.ts +36 -19
  339. package/src/urls/response-types.ts +22 -29
  340. package/src/urls/type-extraction.ts +58 -139
  341. package/src/urls/urls-function.ts +1 -18
  342. package/src/use-loader.tsx +292 -107
  343. package/src/vite/debug.ts +185 -0
  344. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  345. package/src/vite/discovery/discover-routers.ts +126 -85
  346. package/src/vite/discovery/discovery-errors.ts +194 -0
  347. package/src/vite/discovery/gate-state.ts +171 -0
  348. package/src/vite/discovery/prerender-collection.ts +96 -68
  349. package/src/vite/discovery/route-types-writer.ts +40 -84
  350. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  351. package/src/vite/discovery/state.ts +44 -0
  352. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  353. package/src/vite/index.ts +2 -0
  354. package/src/vite/inject-client-debug.ts +36 -0
  355. package/src/vite/plugin-types.ts +126 -8
  356. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  357. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  358. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  359. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  360. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  361. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  362. package/src/vite/plugins/expose-action-id.ts +48 -95
  363. package/src/vite/plugins/expose-id-utils.ts +88 -55
  364. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  365. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  366. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  367. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  368. package/src/vite/plugins/expose-internal-ids.ts +505 -486
  369. package/src/vite/plugins/performance-tracks.ts +26 -25
  370. package/src/vite/plugins/refresh-cmd.ts +1 -1
  371. package/src/vite/plugins/use-cache-transform.ts +73 -83
  372. package/src/vite/plugins/version-injector.ts +21 -25
  373. package/src/vite/plugins/version-plugin.ts +37 -40
  374. package/src/vite/plugins/virtual-entries.ts +13 -18
  375. package/src/vite/rango.ts +109 -118
  376. package/src/vite/router-discovery.ts +777 -119
  377. package/src/vite/utils/ast-handler-extract.ts +26 -35
  378. package/src/vite/utils/banner.ts +1 -1
  379. package/src/vite/utils/bundle-analysis.ts +10 -15
  380. package/src/vite/utils/client-chunks.ts +184 -0
  381. package/src/vite/utils/directive-prologue.ts +40 -0
  382. package/src/vite/utils/forward-user-plugins.ts +171 -0
  383. package/src/vite/utils/manifest-utils.ts +4 -59
  384. package/src/vite/utils/package-resolution.ts +20 -52
  385. package/src/vite/utils/prerender-utils.ts +54 -39
  386. package/src/vite/utils/shared-utils.ts +90 -41
  387. package/dist/__internal.d.ts +0 -83
  388. package/dist/__internal.d.ts.map +0 -1
  389. package/dist/__internal.js +0 -19
  390. package/dist/__internal.js.map +0 -1
  391. package/dist/__mocks__/version.d.ts +0 -7
  392. package/dist/__mocks__/version.d.ts.map +0 -1
  393. package/dist/__mocks__/version.js +0 -7
  394. package/dist/__mocks__/version.js.map +0 -1
  395. package/dist/__tests__/client-href.test.d.ts +0 -2
  396. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  397. package/dist/__tests__/client-href.test.js +0 -74
  398. package/dist/__tests__/client-href.test.js.map +0 -1
  399. package/dist/__tests__/component-utils.test.d.ts +0 -2
  400. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  401. package/dist/__tests__/component-utils.test.js +0 -51
  402. package/dist/__tests__/component-utils.test.js.map +0 -1
  403. package/dist/__tests__/event-controller.test.d.ts +0 -2
  404. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  405. package/dist/__tests__/event-controller.test.js +0 -538
  406. package/dist/__tests__/event-controller.test.js.map +0 -1
  407. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  408. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  409. package/dist/__tests__/helpers/route-tree.js +0 -374
  410. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  411. package/dist/__tests__/match-result.test.d.ts +0 -2
  412. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  413. package/dist/__tests__/match-result.test.js +0 -154
  414. package/dist/__tests__/match-result.test.js.map +0 -1
  415. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  416. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  417. package/dist/__tests__/navigation-store.test.js +0 -440
  418. package/dist/__tests__/navigation-store.test.js.map +0 -1
  419. package/dist/__tests__/partial-update.test.d.ts +0 -2
  420. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  421. package/dist/__tests__/partial-update.test.js +0 -1009
  422. package/dist/__tests__/partial-update.test.js.map +0 -1
  423. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  424. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  425. package/dist/__tests__/reverse-types.test.js +0 -656
  426. package/dist/__tests__/reverse-types.test.js.map +0 -1
  427. package/dist/__tests__/route-definition.test.d.ts +0 -2
  428. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  429. package/dist/__tests__/route-definition.test.js +0 -55
  430. package/dist/__tests__/route-definition.test.js.map +0 -1
  431. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  432. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  433. package/dist/__tests__/router-helpers.test.js +0 -377
  434. package/dist/__tests__/router-helpers.test.js.map +0 -1
  435. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  436. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  437. package/dist/__tests__/router-integration-2.test.js +0 -426
  438. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  439. package/dist/__tests__/router-integration.test.d.ts +0 -2
  440. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  441. package/dist/__tests__/router-integration.test.js +0 -1051
  442. package/dist/__tests__/router-integration.test.js.map +0 -1
  443. package/dist/__tests__/search-params.test.d.ts +0 -5
  444. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  445. package/dist/__tests__/search-params.test.js +0 -306
  446. package/dist/__tests__/search-params.test.js.map +0 -1
  447. package/dist/__tests__/segment-system.test.d.ts +0 -2
  448. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  449. package/dist/__tests__/segment-system.test.js +0 -627
  450. package/dist/__tests__/segment-system.test.js.map +0 -1
  451. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  452. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  453. package/dist/__tests__/static-handler-types.test.js +0 -63
  454. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  455. package/dist/__tests__/urls.test.d.ts +0 -2
  456. package/dist/__tests__/urls.test.d.ts.map +0 -1
  457. package/dist/__tests__/urls.test.js +0 -421
  458. package/dist/__tests__/urls.test.js.map +0 -1
  459. package/dist/__tests__/use-mount.test.d.ts +0 -2
  460. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  461. package/dist/__tests__/use-mount.test.js +0 -35
  462. package/dist/__tests__/use-mount.test.js.map +0 -1
  463. package/dist/bin/rango.d.ts +0 -2
  464. package/dist/bin/rango.d.ts.map +0 -1
  465. package/dist/bin/rango.js.map +0 -1
  466. package/dist/browser/event-controller.d.ts +0 -191
  467. package/dist/browser/event-controller.d.ts.map +0 -1
  468. package/dist/browser/event-controller.js +0 -559
  469. package/dist/browser/event-controller.js.map +0 -1
  470. package/dist/browser/index.d.ts +0 -2
  471. package/dist/browser/index.d.ts.map +0 -1
  472. package/dist/browser/index.js +0 -14
  473. package/dist/browser/index.js.map +0 -1
  474. package/dist/browser/link-interceptor.d.ts +0 -38
  475. package/dist/browser/link-interceptor.d.ts.map +0 -1
  476. package/dist/browser/link-interceptor.js +0 -99
  477. package/dist/browser/link-interceptor.js.map +0 -1
  478. package/dist/browser/logging.d.ts +0 -10
  479. package/dist/browser/logging.d.ts.map +0 -1
  480. package/dist/browser/logging.js +0 -29
  481. package/dist/browser/logging.js.map +0 -1
  482. package/dist/browser/lru-cache.d.ts +0 -17
  483. package/dist/browser/lru-cache.d.ts.map +0 -1
  484. package/dist/browser/lru-cache.js +0 -50
  485. package/dist/browser/lru-cache.js.map +0 -1
  486. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  487. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  488. package/dist/browser/merge-segment-loaders.js +0 -102
  489. package/dist/browser/merge-segment-loaders.js.map +0 -1
  490. package/dist/browser/navigation-bridge.d.ts +0 -102
  491. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  492. package/dist/browser/navigation-bridge.js +0 -708
  493. package/dist/browser/navigation-bridge.js.map +0 -1
  494. package/dist/browser/navigation-client.d.ts +0 -25
  495. package/dist/browser/navigation-client.d.ts.map +0 -1
  496. package/dist/browser/navigation-client.js +0 -157
  497. package/dist/browser/navigation-client.js.map +0 -1
  498. package/dist/browser/navigation-store.d.ts +0 -101
  499. package/dist/browser/navigation-store.d.ts.map +0 -1
  500. package/dist/browser/navigation-store.js +0 -625
  501. package/dist/browser/navigation-store.js.map +0 -1
  502. package/dist/browser/partial-update.d.ts +0 -75
  503. package/dist/browser/partial-update.d.ts.map +0 -1
  504. package/dist/browser/partial-update.js +0 -426
  505. package/dist/browser/partial-update.js.map +0 -1
  506. package/dist/browser/react/Link.d.ts +0 -86
  507. package/dist/browser/react/Link.d.ts.map +0 -1
  508. package/dist/browser/react/Link.js +0 -128
  509. package/dist/browser/react/Link.js.map +0 -1
  510. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  511. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  512. package/dist/browser/react/NavigationProvider.js +0 -216
  513. package/dist/browser/react/NavigationProvider.js.map +0 -1
  514. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  515. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  516. package/dist/browser/react/ScrollRestoration.js +0 -57
  517. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  518. package/dist/browser/react/context.d.ts +0 -46
  519. package/dist/browser/react/context.d.ts.map +0 -1
  520. package/dist/browser/react/context.js +0 -10
  521. package/dist/browser/react/context.js.map +0 -1
  522. package/dist/browser/react/index.d.ts +0 -11
  523. package/dist/browser/react/index.d.ts.map +0 -1
  524. package/dist/browser/react/index.js +0 -22
  525. package/dist/browser/react/index.js.map +0 -1
  526. package/dist/browser/react/location-state-shared.d.ts +0 -63
  527. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  528. package/dist/browser/react/location-state-shared.js +0 -81
  529. package/dist/browser/react/location-state-shared.js.map +0 -1
  530. package/dist/browser/react/location-state.d.ts +0 -23
  531. package/dist/browser/react/location-state.d.ts.map +0 -1
  532. package/dist/browser/react/location-state.js +0 -29
  533. package/dist/browser/react/location-state.js.map +0 -1
  534. package/dist/browser/react/mount-context.d.ts +0 -24
  535. package/dist/browser/react/mount-context.d.ts.map +0 -1
  536. package/dist/browser/react/mount-context.js +0 -24
  537. package/dist/browser/react/mount-context.js.map +0 -1
  538. package/dist/browser/react/use-action.d.ts +0 -64
  539. package/dist/browser/react/use-action.d.ts.map +0 -1
  540. package/dist/browser/react/use-action.js +0 -134
  541. package/dist/browser/react/use-action.js.map +0 -1
  542. package/dist/browser/react/use-client-cache.d.ts +0 -41
  543. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  544. package/dist/browser/react/use-client-cache.js +0 -39
  545. package/dist/browser/react/use-client-cache.js.map +0 -1
  546. package/dist/browser/react/use-handle.d.ts +0 -31
  547. package/dist/browser/react/use-handle.d.ts.map +0 -1
  548. package/dist/browser/react/use-handle.js +0 -144
  549. package/dist/browser/react/use-handle.js.map +0 -1
  550. package/dist/browser/react/use-href.d.ts +0 -33
  551. package/dist/browser/react/use-href.d.ts.map +0 -1
  552. package/dist/browser/react/use-href.js +0 -39
  553. package/dist/browser/react/use-href.js.map +0 -1
  554. package/dist/browser/react/use-link-status.d.ts +0 -37
  555. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  556. package/dist/browser/react/use-link-status.js +0 -99
  557. package/dist/browser/react/use-link-status.js.map +0 -1
  558. package/dist/browser/react/use-mount.d.ts +0 -25
  559. package/dist/browser/react/use-mount.d.ts.map +0 -1
  560. package/dist/browser/react/use-mount.js +0 -30
  561. package/dist/browser/react/use-mount.js.map +0 -1
  562. package/dist/browser/react/use-navigation.d.ts +0 -27
  563. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  564. package/dist/browser/react/use-navigation.js +0 -87
  565. package/dist/browser/react/use-navigation.js.map +0 -1
  566. package/dist/browser/react/use-segments.d.ts +0 -38
  567. package/dist/browser/react/use-segments.d.ts.map +0 -1
  568. package/dist/browser/react/use-segments.js +0 -130
  569. package/dist/browser/react/use-segments.js.map +0 -1
  570. package/dist/browser/request-controller.d.ts +0 -26
  571. package/dist/browser/request-controller.d.ts.map +0 -1
  572. package/dist/browser/request-controller.js +0 -147
  573. package/dist/browser/request-controller.js.map +0 -1
  574. package/dist/browser/rsc-router.d.ts +0 -129
  575. package/dist/browser/rsc-router.d.ts.map +0 -1
  576. package/dist/browser/rsc-router.js +0 -195
  577. package/dist/browser/rsc-router.js.map +0 -1
  578. package/dist/browser/scroll-restoration.d.ts +0 -93
  579. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  580. package/dist/browser/scroll-restoration.js +0 -321
  581. package/dist/browser/scroll-restoration.js.map +0 -1
  582. package/dist/browser/segment-structure-assert.d.ts +0 -17
  583. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  584. package/dist/browser/segment-structure-assert.js +0 -59
  585. package/dist/browser/segment-structure-assert.js.map +0 -1
  586. package/dist/browser/server-action-bridge.d.ts +0 -26
  587. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  588. package/dist/browser/server-action-bridge.js +0 -668
  589. package/dist/browser/server-action-bridge.js.map +0 -1
  590. package/dist/browser/shallow.d.ts +0 -12
  591. package/dist/browser/shallow.d.ts.map +0 -1
  592. package/dist/browser/shallow.js +0 -34
  593. package/dist/browser/shallow.js.map +0 -1
  594. package/dist/browser/types.d.ts +0 -369
  595. package/dist/browser/types.d.ts.map +0 -1
  596. package/dist/browser/types.js +0 -2
  597. package/dist/browser/types.js.map +0 -1
  598. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  599. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  600. package/dist/build/__tests__/generate-cli.test.js +0 -237
  601. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  602. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  603. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  604. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  605. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  606. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  607. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  608. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  609. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  610. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  611. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  612. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  613. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  614. package/dist/build/generate-manifest.d.ts +0 -81
  615. package/dist/build/generate-manifest.d.ts.map +0 -1
  616. package/dist/build/generate-manifest.js +0 -276
  617. package/dist/build/generate-manifest.js.map +0 -1
  618. package/dist/build/generate-route-types.d.ts +0 -115
  619. package/dist/build/generate-route-types.d.ts.map +0 -1
  620. package/dist/build/generate-route-types.js +0 -740
  621. package/dist/build/generate-route-types.js.map +0 -1
  622. package/dist/build/index.d.ts +0 -21
  623. package/dist/build/index.d.ts.map +0 -1
  624. package/dist/build/index.js +0 -21
  625. package/dist/build/index.js.map +0 -1
  626. package/dist/build/route-trie.d.ts +0 -71
  627. package/dist/build/route-trie.d.ts.map +0 -1
  628. package/dist/build/route-trie.js +0 -175
  629. package/dist/build/route-trie.js.map +0 -1
  630. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  631. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  632. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  633. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  634. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  635. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  636. package/dist/cache/__tests__/document-cache.test.js +0 -345
  637. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  638. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  639. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  640. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  641. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  642. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  643. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  644. package/dist/cache/__tests__/memory-store.test.js +0 -367
  645. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  646. package/dist/cache/cache-scope.d.ts +0 -102
  647. package/dist/cache/cache-scope.d.ts.map +0 -1
  648. package/dist/cache/cache-scope.js +0 -440
  649. package/dist/cache/cache-scope.js.map +0 -1
  650. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  651. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  654. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  655. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  656. package/dist/cache/cf/cf-cache-store.js +0 -242
  657. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  658. package/dist/cache/cf/index.d.ts +0 -14
  659. package/dist/cache/cf/index.d.ts.map +0 -1
  660. package/dist/cache/cf/index.js +0 -17
  661. package/dist/cache/cf/index.js.map +0 -1
  662. package/dist/cache/document-cache.d.ts +0 -64
  663. package/dist/cache/document-cache.d.ts.map +0 -1
  664. package/dist/cache/document-cache.js +0 -228
  665. package/dist/cache/document-cache.js.map +0 -1
  666. package/dist/cache/index.d.ts +0 -19
  667. package/dist/cache/index.d.ts.map +0 -1
  668. package/dist/cache/index.js +0 -21
  669. package/dist/cache/index.js.map +0 -1
  670. package/dist/cache/memory-segment-store.d.ts +0 -110
  671. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  672. package/dist/cache/memory-segment-store.js +0 -117
  673. package/dist/cache/memory-segment-store.js.map +0 -1
  674. package/dist/cache/memory-store.d.ts +0 -41
  675. package/dist/cache/memory-store.d.ts.map +0 -1
  676. package/dist/cache/memory-store.js +0 -191
  677. package/dist/cache/memory-store.js.map +0 -1
  678. package/dist/cache/types.d.ts +0 -317
  679. package/dist/cache/types.d.ts.map +0 -1
  680. package/dist/cache/types.js +0 -12
  681. package/dist/cache/types.js.map +0 -1
  682. package/dist/client.d.ts +0 -248
  683. package/dist/client.d.ts.map +0 -1
  684. package/dist/client.js +0 -367
  685. package/dist/client.js.map +0 -1
  686. package/dist/client.rsc.d.ts +0 -26
  687. package/dist/client.rsc.d.ts.map +0 -1
  688. package/dist/client.rsc.js +0 -46
  689. package/dist/client.rsc.js.map +0 -1
  690. package/dist/component-utils.d.ts +0 -36
  691. package/dist/component-utils.d.ts.map +0 -1
  692. package/dist/component-utils.js +0 -61
  693. package/dist/component-utils.js.map +0 -1
  694. package/dist/components/DefaultDocument.d.ts +0 -13
  695. package/dist/components/DefaultDocument.d.ts.map +0 -1
  696. package/dist/components/DefaultDocument.js +0 -15
  697. package/dist/components/DefaultDocument.js.map +0 -1
  698. package/dist/debug.d.ts +0 -58
  699. package/dist/debug.d.ts.map +0 -1
  700. package/dist/debug.js +0 -157
  701. package/dist/debug.js.map +0 -1
  702. package/dist/default-error-boundary.d.ts +0 -11
  703. package/dist/default-error-boundary.d.ts.map +0 -1
  704. package/dist/default-error-boundary.js +0 -45
  705. package/dist/default-error-boundary.js.map +0 -1
  706. package/dist/deps/browser.d.ts +0 -2
  707. package/dist/deps/browser.d.ts.map +0 -1
  708. package/dist/deps/browser.js +0 -3
  709. package/dist/deps/browser.js.map +0 -1
  710. package/dist/deps/html-stream-client.d.ts +0 -2
  711. package/dist/deps/html-stream-client.d.ts.map +0 -1
  712. package/dist/deps/html-stream-client.js +0 -3
  713. package/dist/deps/html-stream-client.js.map +0 -1
  714. package/dist/deps/html-stream-server.d.ts +0 -2
  715. package/dist/deps/html-stream-server.d.ts.map +0 -1
  716. package/dist/deps/html-stream-server.js +0 -3
  717. package/dist/deps/html-stream-server.js.map +0 -1
  718. package/dist/deps/rsc.d.ts +0 -2
  719. package/dist/deps/rsc.d.ts.map +0 -1
  720. package/dist/deps/rsc.js +0 -4
  721. package/dist/deps/rsc.js.map +0 -1
  722. package/dist/deps/ssr.d.ts +0 -2
  723. package/dist/deps/ssr.d.ts.map +0 -1
  724. package/dist/deps/ssr.js +0 -3
  725. package/dist/deps/ssr.js.map +0 -1
  726. package/dist/errors.d.ts +0 -174
  727. package/dist/errors.d.ts.map +0 -1
  728. package/dist/errors.js +0 -241
  729. package/dist/errors.js.map +0 -1
  730. package/dist/handle.d.ts +0 -78
  731. package/dist/handle.d.ts.map +0 -1
  732. package/dist/handle.js +0 -82
  733. package/dist/handle.js.map +0 -1
  734. package/dist/handles/MetaTags.d.ts +0 -14
  735. package/dist/handles/MetaTags.d.ts.map +0 -1
  736. package/dist/handles/MetaTags.js +0 -136
  737. package/dist/handles/MetaTags.js.map +0 -1
  738. package/dist/handles/index.d.ts +0 -6
  739. package/dist/handles/index.d.ts.map +0 -1
  740. package/dist/handles/index.js +0 -6
  741. package/dist/handles/index.js.map +0 -1
  742. package/dist/handles/meta.d.ts +0 -39
  743. package/dist/handles/meta.d.ts.map +0 -1
  744. package/dist/handles/meta.js +0 -202
  745. package/dist/handles/meta.js.map +0 -1
  746. package/dist/host/__tests__/errors.test.d.ts +0 -2
  747. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  748. package/dist/host/__tests__/errors.test.js +0 -76
  749. package/dist/host/__tests__/errors.test.js.map +0 -1
  750. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  751. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  752. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  753. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  754. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  755. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  756. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  757. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  758. package/dist/host/__tests__/router.test.d.ts +0 -2
  759. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  760. package/dist/host/__tests__/router.test.js +0 -241
  761. package/dist/host/__tests__/router.test.js.map +0 -1
  762. package/dist/host/__tests__/testing.test.d.ts +0 -2
  763. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  764. package/dist/host/__tests__/testing.test.js +0 -64
  765. package/dist/host/__tests__/testing.test.js.map +0 -1
  766. package/dist/host/__tests__/utils.test.d.ts +0 -2
  767. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  768. package/dist/host/__tests__/utils.test.js +0 -29
  769. package/dist/host/__tests__/utils.test.js.map +0 -1
  770. package/dist/host/cookie-handler.d.ts +0 -34
  771. package/dist/host/cookie-handler.d.ts.map +0 -1
  772. package/dist/host/cookie-handler.js +0 -124
  773. package/dist/host/cookie-handler.js.map +0 -1
  774. package/dist/host/errors.d.ts +0 -56
  775. package/dist/host/errors.d.ts.map +0 -1
  776. package/dist/host/errors.js +0 -79
  777. package/dist/host/errors.js.map +0 -1
  778. package/dist/host/index.d.ts +0 -29
  779. package/dist/host/index.d.ts.map +0 -1
  780. package/dist/host/index.js +0 -32
  781. package/dist/host/index.js.map +0 -1
  782. package/dist/host/pattern-matcher.d.ts +0 -36
  783. package/dist/host/pattern-matcher.d.ts.map +0 -1
  784. package/dist/host/pattern-matcher.js +0 -172
  785. package/dist/host/pattern-matcher.js.map +0 -1
  786. package/dist/host/router.d.ts +0 -26
  787. package/dist/host/router.d.ts.map +0 -1
  788. package/dist/host/router.js +0 -218
  789. package/dist/host/router.js.map +0 -1
  790. package/dist/host/testing.d.ts +0 -36
  791. package/dist/host/testing.d.ts.map +0 -1
  792. package/dist/host/testing.js +0 -55
  793. package/dist/host/testing.js.map +0 -1
  794. package/dist/host/types.d.ts +0 -115
  795. package/dist/host/types.d.ts.map +0 -1
  796. package/dist/host/types.js +0 -7
  797. package/dist/host/types.js.map +0 -1
  798. package/dist/host/utils.d.ts +0 -21
  799. package/dist/host/utils.d.ts.map +0 -1
  800. package/dist/host/utils.js +0 -23
  801. package/dist/host/utils.js.map +0 -1
  802. package/dist/href-client.d.ts +0 -131
  803. package/dist/href-client.d.ts.map +0 -1
  804. package/dist/href-client.js +0 -64
  805. package/dist/href-client.js.map +0 -1
  806. package/dist/href-context.d.ts +0 -29
  807. package/dist/href-context.d.ts.map +0 -1
  808. package/dist/href-context.js +0 -21
  809. package/dist/href-context.js.map +0 -1
  810. package/dist/index.d.ts +0 -73
  811. package/dist/index.d.ts.map +0 -1
  812. package/dist/index.js +0 -91
  813. package/dist/index.js.map +0 -1
  814. package/dist/index.rsc.d.ts +0 -32
  815. package/dist/index.rsc.d.ts.map +0 -1
  816. package/dist/index.rsc.js +0 -40
  817. package/dist/index.rsc.js.map +0 -1
  818. package/dist/internal-debug.d.ts +0 -2
  819. package/dist/internal-debug.d.ts.map +0 -1
  820. package/dist/internal-debug.js +0 -5
  821. package/dist/internal-debug.js.map +0 -1
  822. package/dist/loader.d.ts +0 -14
  823. package/dist/loader.d.ts.map +0 -1
  824. package/dist/loader.js +0 -20
  825. package/dist/loader.js.map +0 -1
  826. package/dist/loader.rsc.d.ts +0 -19
  827. package/dist/loader.rsc.d.ts.map +0 -1
  828. package/dist/loader.rsc.js +0 -99
  829. package/dist/loader.rsc.js.map +0 -1
  830. package/dist/network-error-thrower.d.ts +0 -17
  831. package/dist/network-error-thrower.d.ts.map +0 -1
  832. package/dist/network-error-thrower.js +0 -14
  833. package/dist/network-error-thrower.js.map +0 -1
  834. package/dist/outlet-context.d.ts +0 -13
  835. package/dist/outlet-context.d.ts.map +0 -1
  836. package/dist/outlet-context.js +0 -3
  837. package/dist/outlet-context.js.map +0 -1
  838. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  839. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  840. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  841. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  842. package/dist/prerender/param-hash.d.ts +0 -16
  843. package/dist/prerender/param-hash.d.ts.map +0 -1
  844. package/dist/prerender/param-hash.js +0 -36
  845. package/dist/prerender/param-hash.js.map +0 -1
  846. package/dist/prerender/store.d.ts +0 -38
  847. package/dist/prerender/store.d.ts.map +0 -1
  848. package/dist/prerender/store.js +0 -61
  849. package/dist/prerender/store.js.map +0 -1
  850. package/dist/prerender.d.ts +0 -66
  851. package/dist/prerender.d.ts.map +0 -1
  852. package/dist/prerender.js +0 -57
  853. package/dist/prerender.js.map +0 -1
  854. package/dist/reverse.d.ts +0 -196
  855. package/dist/reverse.d.ts.map +0 -1
  856. package/dist/reverse.js +0 -78
  857. package/dist/reverse.js.map +0 -1
  858. package/dist/root-error-boundary.d.ts +0 -33
  859. package/dist/root-error-boundary.d.ts.map +0 -1
  860. package/dist/root-error-boundary.js +0 -165
  861. package/dist/root-error-boundary.js.map +0 -1
  862. package/dist/route-content-wrapper.d.ts +0 -46
  863. package/dist/route-content-wrapper.d.ts.map +0 -1
  864. package/dist/route-content-wrapper.js +0 -77
  865. package/dist/route-content-wrapper.js.map +0 -1
  866. package/dist/route-definition.d.ts +0 -421
  867. package/dist/route-definition.d.ts.map +0 -1
  868. package/dist/route-definition.js +0 -868
  869. package/dist/route-definition.js.map +0 -1
  870. package/dist/route-map-builder.d.ts +0 -155
  871. package/dist/route-map-builder.d.ts.map +0 -1
  872. package/dist/route-map-builder.js +0 -237
  873. package/dist/route-map-builder.js.map +0 -1
  874. package/dist/route-types.d.ts +0 -165
  875. package/dist/route-types.d.ts.map +0 -1
  876. package/dist/route-types.js +0 -7
  877. package/dist/route-types.js.map +0 -1
  878. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  879. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  880. package/dist/router/__tests__/handler-context.test.js +0 -65
  881. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  882. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  883. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  884. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  885. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  886. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  887. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  888. package/dist/router/__tests__/match-context.test.js +0 -92
  889. package/dist/router/__tests__/match-context.test.js.map +0 -1
  890. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  891. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  892. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  893. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  894. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  895. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  896. package/dist/router/__tests__/match-result.test.js +0 -457
  897. package/dist/router/__tests__/match-result.test.js.map +0 -1
  898. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  899. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  900. package/dist/router/__tests__/on-error.test.js +0 -678
  901. package/dist/router/__tests__/on-error.test.js.map +0 -1
  902. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  903. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  904. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  905. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  906. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  907. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  910. package/dist/router/error-handling.d.ts +0 -77
  911. package/dist/router/error-handling.d.ts.map +0 -1
  912. package/dist/router/error-handling.js +0 -202
  913. package/dist/router/error-handling.js.map +0 -1
  914. package/dist/router/handler-context.d.ts +0 -20
  915. package/dist/router/handler-context.d.ts.map +0 -1
  916. package/dist/router/handler-context.js +0 -198
  917. package/dist/router/handler-context.js.map +0 -1
  918. package/dist/router/intercept-resolution.d.ts +0 -66
  919. package/dist/router/intercept-resolution.d.ts.map +0 -1
  920. package/dist/router/intercept-resolution.js +0 -246
  921. package/dist/router/intercept-resolution.js.map +0 -1
  922. package/dist/router/loader-resolution.d.ts +0 -64
  923. package/dist/router/loader-resolution.d.ts.map +0 -1
  924. package/dist/router/loader-resolution.js +0 -284
  925. package/dist/router/loader-resolution.js.map +0 -1
  926. package/dist/router/logging.d.ts +0 -15
  927. package/dist/router/logging.d.ts.map +0 -1
  928. package/dist/router/logging.js +0 -99
  929. package/dist/router/logging.js.map +0 -1
  930. package/dist/router/manifest.d.ts +0 -22
  931. package/dist/router/manifest.d.ts.map +0 -1
  932. package/dist/router/manifest.js +0 -181
  933. package/dist/router/manifest.js.map +0 -1
  934. package/dist/router/match-api.d.ts +0 -35
  935. package/dist/router/match-api.d.ts.map +0 -1
  936. package/dist/router/match-api.js +0 -406
  937. package/dist/router/match-api.js.map +0 -1
  938. package/dist/router/match-context.d.ts +0 -206
  939. package/dist/router/match-context.d.ts.map +0 -1
  940. package/dist/router/match-context.js +0 -17
  941. package/dist/router/match-context.js.map +0 -1
  942. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  943. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  944. package/dist/router/match-middleware/background-revalidation.js +0 -75
  945. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  946. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  947. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  948. package/dist/router/match-middleware/cache-lookup.js +0 -257
  949. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  950. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  951. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  952. package/dist/router/match-middleware/cache-store.js +0 -108
  953. package/dist/router/match-middleware/cache-store.js.map +0 -1
  954. package/dist/router/match-middleware/index.d.ts +0 -81
  955. package/dist/router/match-middleware/index.d.ts.map +0 -1
  956. package/dist/router/match-middleware/index.js +0 -80
  957. package/dist/router/match-middleware/index.js.map +0 -1
  958. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  959. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  960. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  961. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  962. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  963. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  964. package/dist/router/match-middleware/segment-resolution.js +0 -53
  965. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  966. package/dist/router/match-pipelines.d.ts +0 -147
  967. package/dist/router/match-pipelines.d.ts.map +0 -1
  968. package/dist/router/match-pipelines.js +0 -82
  969. package/dist/router/match-pipelines.js.map +0 -1
  970. package/dist/router/match-result.d.ts +0 -126
  971. package/dist/router/match-result.d.ts.map +0 -1
  972. package/dist/router/match-result.js +0 -93
  973. package/dist/router/match-result.js.map +0 -1
  974. package/dist/router/metrics.d.ts +0 -20
  975. package/dist/router/metrics.d.ts.map +0 -1
  976. package/dist/router/metrics.js +0 -47
  977. package/dist/router/metrics.js.map +0 -1
  978. package/dist/router/middleware.d.ts +0 -249
  979. package/dist/router/middleware.d.ts.map +0 -1
  980. package/dist/router/middleware.js +0 -434
  981. package/dist/router/middleware.js.map +0 -1
  982. package/dist/router/middleware.test.d.ts +0 -2
  983. package/dist/router/middleware.test.d.ts.map +0 -1
  984. package/dist/router/middleware.test.js +0 -816
  985. package/dist/router/middleware.test.js.map +0 -1
  986. package/dist/router/pattern-matching.d.ts +0 -149
  987. package/dist/router/pattern-matching.d.ts.map +0 -1
  988. package/dist/router/pattern-matching.js +0 -349
  989. package/dist/router/pattern-matching.js.map +0 -1
  990. package/dist/router/revalidation.d.ts +0 -44
  991. package/dist/router/revalidation.d.ts.map +0 -1
  992. package/dist/router/revalidation.js +0 -147
  993. package/dist/router/revalidation.js.map +0 -1
  994. package/dist/router/router-context.d.ts +0 -135
  995. package/dist/router/router-context.d.ts.map +0 -1
  996. package/dist/router/router-context.js +0 -36
  997. package/dist/router/router-context.js.map +0 -1
  998. package/dist/router/segment-resolution.d.ts +0 -127
  999. package/dist/router/segment-resolution.d.ts.map +0 -1
  1000. package/dist/router/segment-resolution.js +0 -919
  1001. package/dist/router/segment-resolution.js.map +0 -1
  1002. package/dist/router/trie-matching.d.ts +0 -40
  1003. package/dist/router/trie-matching.d.ts.map +0 -1
  1004. package/dist/router/trie-matching.js +0 -127
  1005. package/dist/router/trie-matching.js.map +0 -1
  1006. package/dist/router/types.d.ts +0 -136
  1007. package/dist/router/types.d.ts.map +0 -1
  1008. package/dist/router/types.js +0 -7
  1009. package/dist/router/types.js.map +0 -1
  1010. package/dist/router.d.ts +0 -753
  1011. package/dist/router.d.ts.map +0 -1
  1012. package/dist/router.gen.d.ts +0 -6
  1013. package/dist/router.gen.d.ts.map +0 -1
  1014. package/dist/router.gen.js +0 -6
  1015. package/dist/router.gen.js.map +0 -1
  1016. package/dist/router.js +0 -1304
  1017. package/dist/router.js.map +0 -1
  1018. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1019. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1020. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1021. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1022. package/dist/rsc/handler.d.ts +0 -45
  1023. package/dist/rsc/handler.d.ts.map +0 -1
  1024. package/dist/rsc/handler.js +0 -1172
  1025. package/dist/rsc/handler.js.map +0 -1
  1026. package/dist/rsc/helpers.d.ts +0 -16
  1027. package/dist/rsc/helpers.d.ts.map +0 -1
  1028. package/dist/rsc/helpers.js +0 -55
  1029. package/dist/rsc/helpers.js.map +0 -1
  1030. package/dist/rsc/index.d.ts +0 -22
  1031. package/dist/rsc/index.d.ts.map +0 -1
  1032. package/dist/rsc/index.js +0 -23
  1033. package/dist/rsc/index.js.map +0 -1
  1034. package/dist/rsc/nonce.d.ts +0 -9
  1035. package/dist/rsc/nonce.d.ts.map +0 -1
  1036. package/dist/rsc/nonce.js +0 -18
  1037. package/dist/rsc/nonce.js.map +0 -1
  1038. package/dist/rsc/types.d.ts +0 -206
  1039. package/dist/rsc/types.d.ts.map +0 -1
  1040. package/dist/rsc/types.js +0 -8
  1041. package/dist/rsc/types.js.map +0 -1
  1042. package/dist/search-params.d.ts +0 -103
  1043. package/dist/search-params.d.ts.map +0 -1
  1044. package/dist/search-params.js +0 -74
  1045. package/dist/search-params.js.map +0 -1
  1046. package/dist/segment-system.d.ts +0 -75
  1047. package/dist/segment-system.d.ts.map +0 -1
  1048. package/dist/segment-system.js +0 -336
  1049. package/dist/segment-system.js.map +0 -1
  1050. package/dist/server/context.d.ts +0 -245
  1051. package/dist/server/context.d.ts.map +0 -1
  1052. package/dist/server/context.js +0 -197
  1053. package/dist/server/context.js.map +0 -1
  1054. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1055. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1056. package/dist/server/fetchable-loader-store.js +0 -18
  1057. package/dist/server/fetchable-loader-store.js.map +0 -1
  1058. package/dist/server/handle-store.d.ts +0 -85
  1059. package/dist/server/handle-store.d.ts.map +0 -1
  1060. package/dist/server/handle-store.js +0 -142
  1061. package/dist/server/handle-store.js.map +0 -1
  1062. package/dist/server/loader-registry.d.ts +0 -55
  1063. package/dist/server/loader-registry.d.ts.map +0 -1
  1064. package/dist/server/loader-registry.js +0 -132
  1065. package/dist/server/loader-registry.js.map +0 -1
  1066. package/dist/server/request-context.d.ts +0 -226
  1067. package/dist/server/request-context.d.ts.map +0 -1
  1068. package/dist/server/request-context.js +0 -290
  1069. package/dist/server/request-context.js.map +0 -1
  1070. package/dist/server/root-layout.d.ts +0 -4
  1071. package/dist/server/root-layout.d.ts.map +0 -1
  1072. package/dist/server/root-layout.js +0 -5
  1073. package/dist/server/root-layout.js.map +0 -1
  1074. package/dist/server.d.ts +0 -15
  1075. package/dist/server.d.ts.map +0 -1
  1076. package/dist/server.js +0 -20
  1077. package/dist/server.js.map +0 -1
  1078. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1079. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1080. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1081. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1082. package/dist/ssr/index.d.ts +0 -98
  1083. package/dist/ssr/index.d.ts.map +0 -1
  1084. package/dist/ssr/index.js +0 -158
  1085. package/dist/ssr/index.js.map +0 -1
  1086. package/dist/static-handler.d.ts +0 -50
  1087. package/dist/static-handler.d.ts.map +0 -1
  1088. package/dist/static-handler.gen.d.ts +0 -5
  1089. package/dist/static-handler.gen.d.ts.map +0 -1
  1090. package/dist/static-handler.gen.js +0 -5
  1091. package/dist/static-handler.gen.js.map +0 -1
  1092. package/dist/static-handler.js +0 -29
  1093. package/dist/static-handler.js.map +0 -1
  1094. package/dist/theme/ThemeProvider.d.ts +0 -20
  1095. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1096. package/dist/theme/ThemeProvider.js +0 -240
  1097. package/dist/theme/ThemeProvider.js.map +0 -1
  1098. package/dist/theme/ThemeScript.d.ts +0 -48
  1099. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1100. package/dist/theme/ThemeScript.js +0 -13
  1101. package/dist/theme/ThemeScript.js.map +0 -1
  1102. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1103. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1104. package/dist/theme/__tests__/theme.test.js +0 -103
  1105. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1106. package/dist/theme/constants.d.ts +0 -29
  1107. package/dist/theme/constants.d.ts.map +0 -1
  1108. package/dist/theme/constants.js +0 -48
  1109. package/dist/theme/constants.js.map +0 -1
  1110. package/dist/theme/index.d.ts +0 -31
  1111. package/dist/theme/index.d.ts.map +0 -1
  1112. package/dist/theme/index.js +0 -36
  1113. package/dist/theme/index.js.map +0 -1
  1114. package/dist/theme/theme-context.d.ts +0 -40
  1115. package/dist/theme/theme-context.d.ts.map +0 -1
  1116. package/dist/theme/theme-context.js +0 -60
  1117. package/dist/theme/theme-context.js.map +0 -1
  1118. package/dist/theme/theme-script.d.ts +0 -27
  1119. package/dist/theme/theme-script.d.ts.map +0 -1
  1120. package/dist/theme/theme-script.js +0 -147
  1121. package/dist/theme/theme-script.js.map +0 -1
  1122. package/dist/theme/types.d.ts +0 -163
  1123. package/dist/theme/types.d.ts.map +0 -1
  1124. package/dist/theme/types.js +0 -11
  1125. package/dist/theme/types.js.map +0 -1
  1126. package/dist/theme/use-theme.d.ts +0 -12
  1127. package/dist/theme/use-theme.d.ts.map +0 -1
  1128. package/dist/theme/use-theme.js +0 -40
  1129. package/dist/theme/use-theme.js.map +0 -1
  1130. package/dist/types.d.ts +0 -1479
  1131. package/dist/types.d.ts.map +0 -1
  1132. package/dist/types.js +0 -10
  1133. package/dist/types.js.map +0 -1
  1134. package/dist/urls.d.ts +0 -441
  1135. package/dist/urls.d.ts.map +0 -1
  1136. package/dist/urls.gen.d.ts +0 -8
  1137. package/dist/urls.gen.d.ts.map +0 -1
  1138. package/dist/urls.gen.js +0 -8
  1139. package/dist/urls.gen.js.map +0 -1
  1140. package/dist/urls.js +0 -443
  1141. package/dist/urls.js.map +0 -1
  1142. package/dist/use-loader.d.ts +0 -127
  1143. package/dist/use-loader.d.ts.map +0 -1
  1144. package/dist/use-loader.js +0 -237
  1145. package/dist/use-loader.js.map +0 -1
  1146. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1147. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1148. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1149. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1150. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1151. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1152. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1153. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1154. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1155. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1156. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1157. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1158. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1159. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1160. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1161. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1162. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1163. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1164. package/dist/vite/ast-handler-extract.js +0 -249
  1165. package/dist/vite/ast-handler-extract.js.map +0 -1
  1166. package/dist/vite/expose-action-id.d.ts +0 -19
  1167. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1168. package/dist/vite/expose-action-id.js +0 -250
  1169. package/dist/vite/expose-action-id.js.map +0 -1
  1170. package/dist/vite/expose-id-utils.d.ts +0 -69
  1171. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1172. package/dist/vite/expose-id-utils.js +0 -289
  1173. package/dist/vite/expose-id-utils.js.map +0 -1
  1174. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1175. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1176. package/dist/vite/expose-internal-ids.js +0 -886
  1177. package/dist/vite/expose-internal-ids.js.map +0 -1
  1178. package/dist/vite/index.d.ts +0 -149
  1179. package/dist/vite/index.d.ts.map +0 -1
  1180. package/dist/vite/index.js.bak +0 -5448
  1181. package/dist/vite/index.js.map +0 -1
  1182. package/dist/vite/index.named-routes.gen.ts +0 -103
  1183. package/dist/vite/package-resolution.d.ts +0 -43
  1184. package/dist/vite/package-resolution.d.ts.map +0 -1
  1185. package/dist/vite/package-resolution.js +0 -112
  1186. package/dist/vite/package-resolution.js.map +0 -1
  1187. package/dist/vite/virtual-entries.d.ts +0 -25
  1188. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1189. package/dist/vite/virtual-entries.js +0 -110
  1190. package/dist/vite/virtual-entries.js.map +0 -1
  1191. package/src/browser/action-response-classifier.ts +0 -99
  1192. package/src/browser/react/use-client-cache.ts +0 -58
  1193. package/src/browser/shallow.ts +0 -40
  1194. package/src/handles/index.ts +0 -7
  1195. package/src/network-error-thrower.tsx +0 -23
  1196. package/src/router/middleware-cookies.ts +0 -55
@@ -11,12 +11,17 @@ import {
11
11
  getContext,
12
12
  getNamePrefix,
13
13
  getUrlPrefix,
14
+ requireDslContext,
14
15
  type EntryData,
16
+ type EntryPropDatas,
17
+ type EntryPropSegments,
18
+ type HelperContext,
15
19
  type InterceptEntry,
16
20
  } from "../server/context";
17
21
  import { invariant } from "../errors";
22
+ import { validateUserRouteName } from "../route-name.js";
18
23
  import { isCachedFunction } from "../cache/taint.js";
19
- import { RSCRouterContext } from "../server/context";
24
+ import { RangoContext } from "../server/context";
20
25
  import { isStaticHandler } from "../static-handler.js";
21
26
  import RootLayout from "../server/root-layout";
22
27
  import type {
@@ -38,6 +43,7 @@ import type {
38
43
  } from "../route-types.js";
39
44
  import type { RouteHelpers } from "./helpers-types.js";
40
45
  import { resolveHandlerUse, mergeHandlerUse } from "./resolve-handler-use.js";
46
+ import { ALL_USE_ITEM_TYPES } from "./use-item-types.js";
41
47
 
42
48
  /**
43
49
  * Check if an item contains routes (directly or inside nested structures like cache).
@@ -61,16 +67,105 @@ const hasRoutesInItem = (item: AllUseItems): boolean => {
61
67
  return false;
62
68
  };
63
69
 
70
+ /**
71
+ * Fresh empty collections shared by every from-scratch segment entry. Returns
72
+ * new arrays/objects per call so no two entries share mutable references.
73
+ * mountPath is intentionally NOT included here — each call site adds it from
74
+ * getUrlPrefix() where applicable: the route() and transition() helpers add
75
+ * none, while path() (which also builds a `type: "route"` entry) and the
76
+ * structural helpers (layout/cache/middleware/parallel) do.
77
+ */
78
+ const emptySegmentBase = (): EntryPropDatas &
79
+ EntryPropSegments & { loading: undefined } => ({
80
+ loading: undefined,
81
+ middleware: [],
82
+ revalidate: [],
83
+ errorBoundary: [],
84
+ notFoundBoundary: [],
85
+ layout: [],
86
+ parallel: {},
87
+ intercept: [],
88
+ loader: [],
89
+ });
90
+
91
+ /**
92
+ * Run a children/use callback as a nested scope, flatten the result, and assert
93
+ * every item is a valid use item. `kind` preserves the existing error wording
94
+ * ("use()" vs "children" callback).
95
+ */
96
+ function runAndValidateUseItems(
97
+ store: ReturnType<typeof getContext>,
98
+ namespace: string,
99
+ entry: EntryData,
100
+ cb: () => any,
101
+ label: string,
102
+ kind: "use" | "children",
103
+ ): AllUseItems[] {
104
+ const result = store.run(namespace, entry, cb)?.flat(3);
105
+ return validateUseItems(result, namespace, label, kind);
106
+ }
107
+
108
+ /** Assert an already-invoked, flattened callback result is a use-item array. */
109
+ function validateUseItems(
110
+ result: any,
111
+ namespace: string,
112
+ label: string,
113
+ kind: "use" | "children",
114
+ ): AllUseItems[] {
115
+ invariant(
116
+ Array.isArray(result) && result.every((item) => isValidUseItem(item)),
117
+ `${label}() ${kind === "use" ? "use()" : "children"} callback must return an array of use items [${namespace}]`,
118
+ );
119
+ return result as AllUseItems[];
120
+ }
121
+
122
+ /** True when a children/use result contains no routes (directly or nested). */
123
+ const isOrphan = (result: AllUseItems[]): boolean =>
124
+ !result.some((item) => item != null && hasRoutesInItem(item));
125
+
126
+ /**
127
+ * Register a routeless structural entry as an orphan sibling: clear its parent
128
+ * pointer so it leaves the middleware/parent-pointer chain (LOAD-BEARING — see
129
+ * docs/tree-structure.md) and push it onto the parent's layout[] so it renders
130
+ * as a wrapper. Used by cache()/middleware()/transition(); layout() runs extra
131
+ * validation and registers inline.
132
+ */
133
+ const attachOrphanSibling = (
134
+ parent: EntryData | null,
135
+ entry: EntryData,
136
+ ): void => {
137
+ entry.parent = null;
138
+ if (parent && "layout" in parent) parent.layout.push(entry);
139
+ };
140
+
141
+ /**
142
+ * Run `fn` with `ctx.parent` temporarily redirected to `temp` — a satellite
143
+ * entry that captures the attachments declared by a use() callback — restoring
144
+ * the original parent afterward, including on throw. loader()/intercept() each
145
+ * build their own tempParent shape (intercept keeps a loading get/set accessor
146
+ * and a captured-layouts array); this only centralizes the save/restore.
147
+ */
148
+ function withParent<T>(ctx: HelperContext, temp: EntryData, fn: () => T): T {
149
+ const original = ctx.parent;
150
+ ctx.parent = temp;
151
+ try {
152
+ return fn();
153
+ } finally {
154
+ ctx.parent = original;
155
+ }
156
+ }
157
+
64
158
  const revalidate: RouteHelpers<any, any>["revalidate"] = (fn) => {
65
- const ctx = getContext().getStore();
66
- if (!ctx) throw new Error("revalidate() must be called inside map()");
159
+ const { store, ctx } = requireDslContext(
160
+ "revalidate() must be called inside urls()",
161
+ );
67
162
 
68
163
  // Attach to last entry in stack
69
164
  const parent = ctx.parent;
70
165
  if (!parent || !("revalidate" in parent)) {
71
166
  invariant(false, "No parent entry available for revalidate()");
72
167
  }
73
- const name = `$${getContext().getNextIndex("revalidate")}`;
168
+ const name = `$${store.getNextIndex("revalidate")}`;
74
169
  parent.revalidate.push(fn);
75
170
  return { name, type: "revalidate" } as RevalidateItem;
76
171
  };
@@ -108,15 +203,16 @@ const revalidate: RouteHelpers<any, any>["revalidate"] = (fn) => {
108
203
  * ```
109
204
  */
110
205
  const errorBoundary: RouteHelpers<any, any>["errorBoundary"] = (fallback) => {
111
- const ctx = getContext().getStore();
112
- if (!ctx) throw new Error("errorBoundary() must be called inside map()");
206
+ const { store, ctx } = requireDslContext(
207
+ "errorBoundary() must be called inside urls()",
208
+ );
113
209
 
114
210
  // Attach to parent entry in stack
115
211
  const parent = ctx.parent;
116
212
  if (!parent || !("errorBoundary" in parent)) {
117
213
  invariant(false, "No parent entry available for errorBoundary()");
118
214
  }
119
- const name = `$${getContext().getNextIndex("errorBoundary")}`;
215
+ const name = `$${store.getNextIndex("errorBoundary")}`;
120
216
  parent.errorBoundary.push(fallback);
121
217
  return { name, type: "errorBoundary" } as ErrorBoundaryItem;
122
218
  };
@@ -155,15 +251,16 @@ const errorBoundary: RouteHelpers<any, any>["errorBoundary"] = (fallback) => {
155
251
  const notFoundBoundary: RouteHelpers<any, any>["notFoundBoundary"] = (
156
252
  fallback,
157
253
  ) => {
158
- const ctx = getContext().getStore();
159
- if (!ctx) throw new Error("notFoundBoundary() must be called inside map()");
254
+ const { store, ctx } = requireDslContext(
255
+ "notFoundBoundary() must be called inside urls()",
256
+ );
160
257
 
161
258
  // Attach to parent entry in stack
162
259
  const parent = ctx.parent;
163
260
  if (!parent || !("notFoundBoundary" in parent)) {
164
261
  invariant(false, "No parent entry available for notFoundBoundary()");
165
262
  }
166
- const name = `$${getContext().getNextIndex("notFoundBoundary")}`;
263
+ const name = `$${store.getNextIndex("notFoundBoundary")}`;
167
264
  parent.notFoundBoundary.push(fallback);
168
265
  return { name, type: "notFoundBoundary" } as NotFoundBoundaryItem;
169
266
  };
@@ -177,8 +274,9 @@ const notFoundBoundary: RouteHelpers<any, any>["notFoundBoundary"] = (
177
274
  * for the intercept to activate.
178
275
  */
179
276
  const when: RouteHelpers<any, any>["when"] = (fn) => {
180
- const ctx = getContext().getStore();
181
- if (!ctx) throw new Error("when() must be called inside intercept()");
277
+ const { store, ctx } = requireDslContext(
278
+ "when() must be called inside intercept()",
279
+ );
182
280
 
183
281
  // The when() function needs to be captured by the intercept's tempParent
184
282
  // which should have a `when` array. If not present, we're not inside intercept()
@@ -190,7 +288,7 @@ const when: RouteHelpers<any, any>["when"] = (fn) => {
190
288
  );
191
289
  }
192
290
 
193
- const name = `$${getContext().getNextIndex("when")}`;
291
+ const name = `$${store.getNextIndex("when")}`;
194
292
  parent.when.push(fn);
195
293
  return { name, type: "when" } as WhenItem;
196
294
  };
@@ -205,21 +303,21 @@ const when: RouteHelpers<any, any>["when"] = (fn) => {
205
303
  * Supports these call signatures:
206
304
  * - cache() - no args, uses app-level defaults (for loader caching)
207
305
  * - cache(() => [...]) - wraps children with app-level defaults
208
- * - cache('profileName') - uses a named cache profile
209
- * - cache('profileName', () => [...]) - named profile with children
210
306
  * - cache({ ttl: 60 }, () => [...]) - with explicit options
307
+ *
308
+ * Named cache profiles are applied via the `"use cache: <profile>"` directive,
309
+ * not a `cache("profileName")` form in the route tree.
211
310
  */
212
311
  const cache: RouteHelpers<any, any>["cache"] = (
213
312
  optionsOrChildren?:
214
313
  | PartialCacheOptions
215
314
  | false
216
- | string
217
315
  | (() => UseItems<AllUseItems>),
218
316
  maybeChildren?: () => UseItems<AllUseItems>,
219
317
  ) => {
220
- const store = getContext();
221
- const ctx = store.getStore();
222
- if (!ctx) throw new Error("cache() must be called inside map()");
318
+ const { store, ctx } = requireDslContext(
319
+ "cache() must be called inside urls()",
320
+ );
223
321
 
224
322
  // Handle overloaded signature
225
323
  let options: PartialCacheOptions | false;
@@ -229,18 +327,6 @@ const cache: RouteHelpers<any, any>["cache"] = (
229
327
  // cache() - no args, use defaults
230
328
  options = {};
231
329
  children = undefined;
232
- } else if (typeof optionsOrChildren === "string") {
233
- // cache('profileName') or cache('profileName', () => [...])
234
- // Resolve from context-scoped profiles (set per-router via HelperContext).
235
- const ctxStore = RSCRouterContext.getStore();
236
- const profile = ctxStore?.cacheProfiles?.[optionsOrChildren];
237
- invariant(
238
- profile,
239
- `cache("${optionsOrChildren}"): unknown cache profile. ` +
240
- `Define it in createRouter({ cacheProfiles: { "${optionsOrChildren}": { ttl: ... } } }).`,
241
- );
242
- options = { ttl: profile.ttl, swr: profile.swr, tags: profile.tags };
243
- children = maybeChildren;
244
330
  } else if (typeof optionsOrChildren === "function") {
245
331
  // cache(() => [...]) - use empty options (will use defaults)
246
332
  options = {};
@@ -271,26 +357,18 @@ const cache: RouteHelpers<any, any>["cache"] = (
271
357
  // Create orphan cache entry (like orphan layout)
272
358
  // Subsequent siblings in the same array will attach to this entry
273
359
  const namespace = `${ctx.namespace}.${cacheIndex}`;
274
- const cacheUrlPrefix = getUrlPrefix();
360
+ const urlPrefix = getUrlPrefix();
275
361
 
276
362
  const entry = {
363
+ ...emptySegmentBase(),
277
364
  id: namespace,
278
365
  shortCode: store.getShortCode("cache"),
279
366
  type: "cache",
280
367
  parent: parent, // link to current parent for hierarchy
281
368
  cache: cacheConfig,
282
369
  handler: RootLayout,
283
- loading: undefined, // Allow loading() to attach loading state
284
- middleware: [],
285
- revalidate: [],
286
- errorBoundary: [],
287
- notFoundBoundary: [],
288
- layout: [],
289
- parallel: {},
290
- intercept: [],
291
- loader: [],
292
- ...(cacheUrlPrefix ? { mountPath: cacheUrlPrefix } : {}),
293
- } as EntryData;
370
+ ...(urlPrefix ? { mountPath: urlPrefix } : {}),
371
+ } satisfies EntryData;
294
372
 
295
373
  // Attach to parent's layout array (cache entries are structural like layouts)
296
374
  if (parent && "layout" in parent) {
@@ -304,13 +382,23 @@ const cache: RouteHelpers<any, any>["cache"] = (
304
382
  return { name: namespace, type: "cache" } as CacheItem;
305
383
  }
306
384
 
385
+ // Inside a loader() use() callback, only the direct form — cache()/cache(opts)
386
+ // — writes cache config to the loader entry. The wrapper form creates a
387
+ // structural cache boundary with its own children scope, which has no effect
388
+ // on the loader and would silently no-op.
389
+ invariant(
390
+ !(ctx.parent && (ctx.parent as any).type === "loader"),
391
+ "cache() wrapper form is not valid inside loader() use(). Use cache({...}) without children to configure the loader's cache.",
392
+ );
393
+
307
394
  // With children: create a cache entry (like layout with caching semantics)
308
395
  const namespace = `${ctx.namespace}.${cacheIndex}`;
309
396
  const cacheShortCode = store.getShortCode("cache");
310
397
 
311
- const cacheUrlPrefix2 = getUrlPrefix();
398
+ const urlPrefix = getUrlPrefix();
312
399
 
313
400
  const entry = {
401
+ ...emptySegmentBase(),
314
402
  id: namespace,
315
403
  shortCode: cacheShortCode,
316
404
  type: "cache",
@@ -318,40 +406,22 @@ const cache: RouteHelpers<any, any>["cache"] = (
318
406
  cache: cacheConfig,
319
407
  // Cache entries render like layouts (with Outlet as default handler)
320
408
  handler: RootLayout, // RootLayout just renders <Outlet />
321
- loading: undefined, // Allow loading() to attach loading state
322
- middleware: [],
323
- revalidate: [],
324
- errorBoundary: [],
325
- notFoundBoundary: [],
326
- layout: [],
327
- parallel: {},
328
- intercept: [],
329
- loader: [],
330
- ...(cacheUrlPrefix2 ? { mountPath: cacheUrlPrefix2 } : {}),
331
- } as EntryData;
409
+ ...(urlPrefix ? { mountPath: urlPrefix } : {}),
410
+ } satisfies EntryData;
332
411
 
333
412
  // Run children with cache entry as parent
334
- const result = store.run(namespace, entry, children)?.flat(3);
335
-
336
- invariant(
337
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
338
- `cache() children callback must return an array of use items [${namespace}]`,
413
+ const result = runAndValidateUseItems(
414
+ store,
415
+ namespace,
416
+ entry,
417
+ children,
418
+ "cache",
419
+ "children",
339
420
  );
340
421
 
341
- // Check if this cache has routes (including nested caches/layouts)
342
- const hasRoutes =
343
- result &&
344
- Array.isArray(result) &&
345
- result.some((item) => hasRoutesInItem(item));
346
-
347
- if (!hasRoutes) {
348
- const parent = ctx.parent;
349
- if (parent && "layout" in parent) {
350
- // Attach to parent's layout array (cache entries are structural like layouts)
351
- entry.parent = null;
352
- parent.layout.push(entry);
353
- }
354
- }
422
+ // Cache entries are structural like layouts: with no routes inside, register
423
+ // as an orphan sibling.
424
+ if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
355
425
 
356
426
  return { name: namespace, type: "cache", uses: result } as CacheItem;
357
427
  };
@@ -397,9 +467,9 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
397
467
  }
398
468
  }
399
469
 
400
- const store = getContext();
401
- const ctx = store.getStore();
402
- if (!ctx) throw new Error("middleware() must be called inside map()");
470
+ const { store, ctx } = requireDslContext(
471
+ "middleware() must be called inside urls()",
472
+ );
403
473
 
404
474
  if (!children) {
405
475
  // Sibling mode: attach to parent entry
@@ -418,22 +488,15 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
418
488
 
419
489
  const urlPrefix = getUrlPrefix();
420
490
  const entry = {
491
+ ...emptySegmentBase(),
421
492
  id: namespace,
422
493
  shortCode: store.getShortCode("layout"),
423
494
  type: "layout",
424
495
  parent: ctx.parent,
425
496
  handler: RootLayout,
426
- loading: undefined,
427
497
  middleware: [...fns],
428
- revalidate: [],
429
- errorBoundary: [],
430
- notFoundBoundary: [],
431
- layout: [],
432
- parallel: {},
433
- intercept: [],
434
- loader: [],
435
498
  ...(urlPrefix ? { mountPath: urlPrefix } : {}),
436
- } as EntryData;
499
+ } satisfies EntryData;
437
500
 
438
501
  // Run children callback. If the second arg was actually a middleware fn
439
502
  // (old variadic form: middleware(mw1, mw2)), this will return a non-array
@@ -446,25 +509,14 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
446
509
  "To pass multiple middleware, use middleware([fn1, fn2]).",
447
510
  );
448
511
 
449
- const result = rawResult.flat(3);
450
-
451
- invariant(
452
- result.every((item: any) => isValidUseItem(item)),
453
- `middleware() children callback must return an array of use items [${namespace}]`,
512
+ const result = validateUseItems(
513
+ rawResult.flat(3),
514
+ namespace,
515
+ "middleware",
516
+ "children",
454
517
  );
455
518
 
456
- const hasRoutes =
457
- result &&
458
- Array.isArray(result) &&
459
- result.some((item) => item != null && hasRoutesInItem(item));
460
-
461
- if (!hasRoutes) {
462
- const parent = ctx.parent;
463
- if (parent && "layout" in parent) {
464
- entry.parent = null;
465
- parent.layout.push(entry);
466
- }
467
- }
519
+ if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
468
520
 
469
521
  return {
470
522
  name: namespace,
@@ -473,10 +525,26 @@ const middleware: RouteHelpers<any, any>["middleware"] = (...args: any[]) => {
473
525
  } as MiddlewareItem;
474
526
  };
475
527
 
528
+ // Slot names become part of segment ids: a parallel/intercept slot is encoded
529
+ // as `${shortCode}.${slotName}`, and loader segments append `D${index}.${loaderId}`.
530
+ // A "." in the slot name collides with that separator -- loaderParentId
531
+ // (segment-system.tsx) strips from the FIRST `D<index>.`, so a name like
532
+ // "@D3.foo" is mis-cut to "@" and the loader's data is silently dropped. Reject
533
+ // the dot at definition time so the failure is loud, not a corrupted tree at
534
+ // runtime. (A bare "D" without a trailing dot -- e.g. "@Detail" -- is fine.)
535
+ function assertValidSlotName(slotName: string): void {
536
+ invariant(
537
+ !slotName.includes("."),
538
+ `Slot name "${slotName}" must not contain ".". The dot is a reserved ` +
539
+ `segment-id separator; a name like "@D3.foo" corrupts loader segment-id ` +
540
+ `parsing and silently drops the loader's data. Rename the slot.`,
541
+ );
542
+ }
543
+
476
544
  const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
477
- const store = getContext();
478
- const ctx = store.getStore();
479
- if (!ctx) throw new Error("parallel() must be called inside map()");
545
+ const { store, ctx } = requireDslContext(
546
+ "parallel() must be called inside urls()",
547
+ );
480
548
 
481
549
  if (!ctx.parent || !ctx.parent?.parallel) {
482
550
  invariant(false, "No parent entry available for parallel()");
@@ -488,6 +556,7 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
488
556
  );
489
557
 
490
558
  const slotNames = Object.keys(slots as Record<string, any>) as `@${string}`[];
559
+ for (const slotName of slotNames) assertValidSlotName(slotName);
491
560
 
492
561
  const namespace = `${ctx.namespace}.$${store.getNextIndex("parallel")}`;
493
562
 
@@ -528,20 +597,12 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
528
597
  // Create full EntryData for parallel with its own loaders/revalidate/loading
529
598
  const parallelUrlPrefix = getUrlPrefix();
530
599
  const entry = {
600
+ ...emptySegmentBase(),
531
601
  id: namespace,
532
602
  shortCode: store.getShortCode("parallel"),
533
603
  type: "parallel",
534
604
  parent: null, // Parallels don't participate in parent chain traversal
535
605
  handler: unwrappedSlots,
536
- loading: undefined, // Allow loading() to attach loading state
537
- middleware: [],
538
- revalidate: [],
539
- errorBoundary: [],
540
- notFoundBoundary: [],
541
- layout: [],
542
- parallel: {},
543
- intercept: [],
544
- loader: [],
545
606
  ...(parallelUrlPrefix ? { mountPath: parallelUrlPrefix } : {}),
546
607
  ...(hasStaticSlot
547
608
  ? {
@@ -596,10 +657,13 @@ const parallel: RouteHelpers<any, any>["parallel"] = (slots, use) => {
596
657
  "parallel",
597
658
  );
598
659
  if (slotMergedUse) {
599
- const result = store.run(namespace, slotEntry, slotMergedUse)?.flat(3);
600
- invariant(
601
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
602
- `parallel() use() callback must return an array of use items [${namespace}]`,
660
+ runAndValidateUseItems(
661
+ store,
662
+ namespace,
663
+ slotEntry,
664
+ slotMergedUse,
665
+ "parallel",
666
+ "use",
603
667
  );
604
668
  }
605
669
 
@@ -639,9 +703,9 @@ const intercept = (
639
703
  handler: any,
640
704
  use?: () => any[],
641
705
  ) => {
642
- const store = getContext();
643
- const ctx = store.getStore();
644
- if (!ctx) throw new Error("intercept() must be called inside map()");
706
+ const { store, ctx } = requireDslContext(
707
+ "intercept() must be called inside urls()",
708
+ );
645
709
 
646
710
  if (!ctx.parent || !ctx.parent?.intercept) {
647
711
  invariant(false, "No parent entry available for intercept()");
@@ -652,6 +716,8 @@ const intercept = (
652
716
  "intercept() cannot be used inside parallel()",
653
717
  );
654
718
 
719
+ assertValidSlotName(slotName);
720
+
655
721
  const namespace = `${ctx.namespace}.$${store.getNextIndex("intercept")}.${slotName}`;
656
722
 
657
723
  // Dot-prefixed = local (add include prefix), unprefixed = global (use as-is)
@@ -680,15 +746,13 @@ const intercept = (
680
746
 
681
747
  // Run merged use callback to collect loaders, revalidate, middleware, etc.
682
748
  if (mergedUse) {
683
- // Create a temporary parent context for the use() callback
684
- // so that middleware, loader, revalidate attach to the intercept entry
685
- const originalParent = ctx.parent;
686
-
687
- // Capture layouts in a temporary array
749
+ // Capture layout() calls into a temporary array
688
750
  const capturedLayouts: EntryData[] = [];
689
751
 
752
+ // Temporary parent so middleware/loader/revalidate/when attach to the
753
+ // intercept entry; the loading get/set accessor mirrors writes onto `entry`.
690
754
  const tempParent = {
691
- ...originalParent,
755
+ ...ctx.parent,
692
756
  middleware: entry.middleware,
693
757
  revalidate: entry.revalidate,
694
758
  errorBoundary: entry.errorBoundary,
@@ -696,7 +760,6 @@ const intercept = (
696
760
  loader: entry.loader,
697
761
  layout: capturedLayouts, // Capture layout() calls
698
762
  when: entry.when, // Capture when() conditions
699
- // Use getter/setter to capture loading on the entry
700
763
  get loading() {
701
764
  return entry.loading;
702
765
  },
@@ -704,12 +767,10 @@ const intercept = (
704
767
  entry.loading = value;
705
768
  },
706
769
  };
707
- ctx.parent = tempParent as EntryData;
708
-
709
- const result = mergedUse()?.flat(3);
710
770
 
711
- // Restore original parent
712
- ctx.parent = originalParent;
771
+ const result = withParent(ctx, tempParent as EntryData, () =>
772
+ mergedUse()?.flat(3),
773
+ );
713
774
 
714
775
  // Extract layout from captured layouts (use first one if multiple)
715
776
  // Layout inside intercept should always be ReactNode or Handler, not Record slots
@@ -719,10 +780,7 @@ const intercept = (
719
780
  | Handler<any, any, any>;
720
781
  }
721
782
 
722
- invariant(
723
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
724
- `intercept() use() callback must return an array of use items [${namespace}]`,
725
- );
783
+ validateUseItems(result, namespace, "intercept", "use");
726
784
  }
727
785
 
728
786
  ctx.parent.intercept.push(entry);
@@ -732,10 +790,10 @@ const intercept = (
732
790
  /**
733
791
  * Loader helper - attaches a loader to the current entry
734
792
  */
735
- const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
736
- const store = getContext();
737
- const ctx = store.getStore();
738
- if (!ctx) throw new Error("loader() must be called inside map()");
793
+ const loader: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
794
+ const { store, ctx } = requireDslContext(
795
+ "loader() must be called inside urls()",
796
+ );
739
797
 
740
798
  // Attach to last entry in stack
741
799
  if (!ctx.parent || !ctx.parent?.loader) {
@@ -750,25 +808,28 @@ const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
750
808
  revalidate: [] as ShouldRevalidateFn<any, any>[],
751
809
  };
752
810
 
753
- // If use() callback provided, run it to collect revalidation rules and cache config
754
- if (use && typeof use === "function") {
755
- // Temporarily set context for revalidate()/cache() calls to target this loader
756
- const originalParent = ctx.parent;
811
+ // Merge handler.use defaults (attached to the loader definition) with explicit use
812
+ const handlerUseFn = resolveHandlerUse(loaderDef);
813
+ const mergedUse = mergeHandlerUse(handlerUseFn, use, "loader");
814
+
815
+ // If any use callback is in effect, run it to collect revalidation rules and cache config
816
+ if (mergedUse) {
757
817
  // Create a temporary "parent" with type "loader" so cache() can detect it.
758
818
  // Save existing .cache to distinguish inherited config from newly set config.
759
- const parentCache = (originalParent as any).cache;
819
+ const parentCache = (ctx.parent as any).cache;
760
820
  const tempParent = {
761
- ...originalParent,
821
+ ...ctx.parent,
762
822
  type: "loader",
763
823
  revalidate: loaderEntry.revalidate,
764
824
  };
765
- ctx.parent = tempParent as EntryData;
766
825
 
767
- const result = use()?.flat(3);
826
+ const result = withParent(ctx, tempParent as EntryData, () =>
827
+ mergedUse()?.flat(3),
828
+ );
768
829
 
769
830
  // Copy cache config only if cache() was called during the use() callback.
770
- // The spread from originalParent may carry an inherited .cache from
771
- // a parent cache() boundary — only copy if it was newly set.
831
+ // The spread may carry an inherited .cache from a parent cache() boundary —
832
+ // only copy if it was newly set.
772
833
  if (
773
834
  (tempParent as any).cache &&
774
835
  (tempParent as any).cache !== parentCache
@@ -776,13 +837,7 @@ const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
776
837
  (loaderEntry as any).cache = (tempParent as any).cache;
777
838
  }
778
839
 
779
- // Restore original parent
780
- ctx.parent = originalParent;
781
-
782
- invariant(
783
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
784
- `loader() use() callback must return an array of use items [${name}]`,
785
- );
840
+ validateUseItems(result, name, "loader", "use");
786
841
  }
787
842
 
788
843
  ctx.parent.loader.push(loaderEntry);
@@ -793,10 +848,10 @@ const loaderFn: RouteHelpers<any, any>["loader"] = (loaderDef, use) => {
793
848
  * Loading helper - attaches a loading component to the current entry
794
849
  * Loading components are static (no context) and shown during navigation
795
850
  */
796
- const loadingFn: RouteHelpers<any, any>["loading"] = (component, options) => {
797
- const store = getContext();
798
- const ctx = store.getStore();
799
- if (!ctx) throw new Error("loading() must be called inside map()");
851
+ const loading: RouteHelpers<any, any>["loading"] = (component, options) => {
852
+ const { store, ctx } = requireDslContext(
853
+ "loading() must be called inside urls()",
854
+ );
800
855
 
801
856
  const parent = ctx.parent;
802
857
  if (!parent || !("loading" in parent)) {
@@ -819,10 +874,13 @@ const loadingFn: RouteHelpers<any, any>["loading"] = (component, options) => {
819
874
  };
820
875
 
821
876
  /**
822
- * Transition helper - attaches a ViewTransition config to the current entry
823
- * or wraps a group of routes in a transparent layout with ViewTransition
877
+ * Transition helper - opts the entry (or a wrapped group of routes) into
878
+ * transition-driven navigation by attaching a TransitionConfig. This drives the
879
+ * commit through startTransition (content hold on all React versions) and, on
880
+ * experimental React, places a `<ViewTransition>` boundary unless
881
+ * `viewTransition: false`. See skills/view-transitions for the matrix.
824
882
  */
825
- const transitionFn = (
883
+ const transition = (
826
884
  configOrChildren?: TransitionConfig | (() => UseItems<AllUseItems>),
827
885
  maybeChildren?: () => UseItems<AllUseItems>,
828
886
  ): TransitionItem => {
@@ -836,11 +894,15 @@ const transitionFn = (
836
894
  const children: (() => UseItems<AllUseItems>) | undefined =
837
895
  typeof configOrChildren === "function" ? configOrChildren : maybeChildren;
838
896
 
839
- const store = getContext();
840
- const ctx = store.getStore();
841
- if (!ctx) throw new Error("transition() must be called inside map()");
897
+ const { store, ctx } = requireDslContext(
898
+ "transition() must be called inside urls()",
899
+ );
842
900
 
843
- const name = `$${store.getNextIndex("transition")}`;
901
+ // Allocate a single index for this transition() call (used in all paths),
902
+ // mirroring cache() — the child form uses it for the name, the wrapper form
903
+ // reuses it for the namespace, so no index is burned.
904
+ const transitionIndex = store.getNextIndex("transition");
905
+ const name = `$${transitionIndex}`;
844
906
 
845
907
  if (!children) {
846
908
  // Position 1: child of path() — attach to parent entry
@@ -853,70 +915,51 @@ const transitionFn = (
853
915
  }
854
916
 
855
917
  // Position 2: wrapper — create a transparent layout with transition config
856
- const namespace = `${ctx.namespace}.${store.getNextIndex("transition")}`;
918
+ const namespace = `${ctx.namespace}.${transitionIndex}`;
857
919
  const entry = {
920
+ ...emptySegmentBase(),
858
921
  id: namespace,
859
922
  shortCode: store.getShortCode("layout"),
860
923
  type: "layout",
861
924
  parent: ctx.parent,
862
925
  handler: RootLayout,
863
- loading: undefined,
864
926
  transition: config,
865
- middleware: [],
866
- revalidate: [],
867
- errorBoundary: [],
868
- notFoundBoundary: [],
869
- layout: [],
870
- parallel: {},
871
- intercept: [],
872
- loader: [],
873
- } as EntryData;
874
-
875
- const result = store.run(namespace, entry, children)?.flat(3);
927
+ } satisfies EntryData;
876
928
 
877
- invariant(
878
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
879
- `transition() children callback must return an array of use items [${namespace}]`,
929
+ const result = runAndValidateUseItems(
930
+ store,
931
+ namespace,
932
+ entry,
933
+ children,
934
+ "transition",
935
+ "children",
880
936
  );
881
937
 
882
- const hasRoutes =
883
- result &&
884
- Array.isArray(result) &&
885
- result.some((item) => hasRoutesInItem(item));
886
-
887
- if (!hasRoutes) {
888
- const parent = ctx.parent;
889
- if (parent && "layout" in parent) {
890
- entry.parent = null;
891
- parent.layout.push(entry);
892
- }
893
- }
938
+ if (isOrphan(result)) attachOrphanSibling(ctx.parent, entry);
894
939
 
895
940
  return { name: namespace, type: "transition" } as TransitionItem;
896
941
  };
897
942
 
898
- const routeFn: RouteHelpers<any, any>["route"] = (name, handler, use) => {
899
- const store = getContext();
900
- const ctx = store.getStore();
901
- if (!ctx) throw new Error("route() must be called inside map()");
943
+ const route: RouteHelpers<any, any>["route"] = (name, handler, use) => {
944
+ const { store, ctx } = requireDslContext(
945
+ "route() must be called inside urls()",
946
+ );
947
+
948
+ // Reject names colliding with reserved internal prefixes ($path_, $prefix_),
949
+ // the same guard path() and include() enforce. Without it such a name
950
+ // type-checks on an untyped router, then silently vanishes from generated
951
+ // route-types and public reverse() (isAutoGeneratedRouteName filters it out).
952
+ validateUserRouteName(name);
902
953
 
903
954
  const namespace = `${ctx.namespace}.${store.getNextIndex("route")}.${name}`;
904
955
 
905
956
  const entry = {
957
+ ...emptySegmentBase(),
906
958
  id: namespace,
907
959
  shortCode: store.getShortCode("route"),
908
960
  type: "route",
909
961
  parent: ctx.parent,
910
962
  handler: handler as unknown as Handler<any, any, any>,
911
- loading: undefined, // Allow loading() to attach loading state
912
- middleware: [],
913
- revalidate: [],
914
- errorBoundary: [],
915
- notFoundBoundary: [],
916
- layout: [],
917
- parallel: {},
918
- intercept: [],
919
- loader: [],
920
963
  } satisfies EntryData;
921
964
 
922
965
  /* We will throw if user is registring same route name twice */
@@ -931,10 +974,13 @@ const routeFn: RouteHelpers<any, any>["route"] = (name, handler, use) => {
931
974
  const mergedUse = mergeHandlerUse(handlerUseFn, use, "route");
932
975
  /* Run use and attach handlers */
933
976
  if (mergedUse) {
934
- const result = store.run(namespace, entry, mergedUse)?.flat(3);
935
- invariant(
936
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
937
- `route() use() callback must return an array of use items [${namespace}]`,
977
+ const result = runAndValidateUseItems(
978
+ store,
979
+ namespace,
980
+ entry,
981
+ mergedUse,
982
+ "route",
983
+ "use",
938
984
  );
939
985
  return { name: namespace, type: "route", uses: result } as RouteItem;
940
986
  }
@@ -944,9 +990,9 @@ const routeFn: RouteHelpers<any, any>["route"] = (name, handler, use) => {
944
990
  };
945
991
 
946
992
  const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
947
- const store = getContext();
948
- const ctx = store.getStore();
949
- if (!ctx) throw new Error("layout() must be called inside map()");
993
+ const { store, ctx } = requireDslContext(
994
+ "layout() must be called inside urls()",
995
+ );
950
996
 
951
997
  invariant(
952
998
  !ctx.parent || ctx.parent.type !== "parallel",
@@ -964,20 +1010,12 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
964
1010
 
965
1011
  const urlPrefix = getUrlPrefix();
966
1012
  const entry = {
1013
+ ...emptySegmentBase(),
967
1014
  id: namespace,
968
1015
  shortCode,
969
1016
  type: "layout",
970
1017
  parent: ctx.parent,
971
1018
  handler: unwrappedHandler,
972
- loading: undefined, // Allow loading() to attach loading state
973
- middleware: [],
974
- revalidate: [],
975
- errorBoundary: [],
976
- notFoundBoundary: [],
977
- parallel: {},
978
- intercept: [],
979
- layout: [],
980
- loader: [],
981
1019
  ...(urlPrefix ? { mountPath: urlPrefix } : {}),
982
1020
  ...(isStatic
983
1021
  ? {
@@ -999,11 +1037,13 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
999
1037
  // Run merged use callback if present
1000
1038
  let result: AllUseItems[] | undefined;
1001
1039
  if (mergedUse) {
1002
- result = store.run(namespace, entry, mergedUse)?.flat(3);
1003
-
1004
- invariant(
1005
- Array.isArray(result) && result.every((item) => isValidUseItem(item)),
1006
- `layout() use() callback must return an array of use items [${namespace}]`,
1040
+ result = runAndValidateUseItems(
1041
+ store,
1042
+ namespace,
1043
+ entry,
1044
+ mergedUse,
1045
+ "layout",
1046
+ "use",
1007
1047
  );
1008
1048
  }
1009
1049
 
@@ -1045,9 +1085,7 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
1045
1085
  `Orphan layouts can only be defined inside route or layout > check [${namespace}]`,
1046
1086
  );
1047
1087
 
1048
- // Clear parent pointer for orphan layouts to prevent duplicate processing
1049
- entry.parent = null;
1050
- parent.layout.push(entry);
1088
+ attachOrphanSibling(parent, entry);
1051
1089
  }
1052
1090
  }
1053
1091
 
@@ -1060,33 +1098,15 @@ const layout: RouteHelpers<any, any>["layout"] = (handler, use) => {
1060
1098
  } as LayoutItem;
1061
1099
  };
1062
1100
 
1063
- const isValidUseItem = (item: any): item is AllUseItems | undefined | null => {
1064
- return (
1065
- typeof item === "undefined" ||
1066
- item === null ||
1067
- (item &&
1068
- typeof item === "object" &&
1069
- "type" in item &&
1070
- [
1071
- "layout",
1072
- "route",
1073
- "middleware",
1074
- "revalidate",
1075
- "parallel",
1076
- "intercept",
1077
- "loader",
1078
- "loading",
1079
- "errorBoundary",
1080
- "notFoundBoundary",
1081
- "when",
1082
- "cache",
1083
- "transition",
1084
- "include", // For urls() include() helper
1085
- ].includes(item.type))
1086
- );
1087
- };
1101
+ const isValidUseItem = (item: any): item is AllUseItems | undefined | null =>
1102
+ item == null ||
1103
+ (typeof item === "object" &&
1104
+ "type" in item &&
1105
+ ALL_USE_ITEM_TYPES.has(item.type));
1088
1106
 
1089
- // Global helper exports for direct import from @rangojs/router
1107
+ // DSL helpers exported for direct import from @rangojs/router and for
1108
+ // assembly into the RouteHelpers object in helper-factories.ts. The route-item
1109
+ // types are discriminated by their `type` literal, so the helpers carry no brand.
1090
1110
  export {
1091
1111
  layout,
1092
1112
  cache,
@@ -1097,25 +1117,11 @@ export {
1097
1117
  when,
1098
1118
  errorBoundary,
1099
1119
  notFoundBoundary,
1100
- loaderFn as loader,
1101
- loadingFn as loading,
1102
- transitionFn as transition,
1103
- };
1104
-
1105
- const isOrphanLayout = (item: AllUseItems): boolean => {
1106
- return (
1107
- item.type === "layout" &&
1108
- !item.uses?.some((child) => hasRoutesInItem(child))
1109
- );
1110
- };
1111
-
1112
- // Internal exports used by helper-factories.ts
1113
- export {
1114
- routeFn,
1115
- loaderFn,
1116
- loadingFn,
1117
- transitionFn,
1118
- hasRoutesInItem,
1120
+ route,
1121
+ loader,
1122
+ loading,
1123
+ transition,
1119
1124
  isValidUseItem,
1120
- isOrphanLayout,
1125
+ emptySegmentBase,
1126
+ runAndValidateUseItems,
1121
1127
  };