@rangojs/router 0.0.0-experimental.d20dd405 → 0.0.0-experimental.d5d3070a

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