@rangojs/router 0.0.0-experimental.ce770c9a → 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 (1202) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +245 -49
  3. package/dist/bin/rango.js +433 -131
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +3376 -1102
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +247 -23
  12. package/skills/caching/SKILL.md +281 -11
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +249 -17
  24. package/skills/loader/SKILL.md +279 -53
  25. package/skills/middleware/SKILL.md +52 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +144 -7
  31. package/skills/prerender/SKILL.md +153 -109
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +101 -5
  36. package/skills/router-setup/SKILL.md +116 -8
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +332 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +1 -66
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/app-version.ts +14 -0
  66. package/src/browser/connection-warmup.ts +134 -0
  67. package/src/browser/cookie-name.ts +140 -0
  68. package/src/browser/event-controller.ts +192 -150
  69. package/src/browser/history-state.ts +21 -0
  70. package/src/browser/index.ts +3 -3
  71. package/src/browser/invalidate-client-cache.ts +52 -0
  72. package/src/browser/navigation-bridge.ts +108 -21
  73. package/src/browser/navigation-client.ts +187 -86
  74. package/src/browser/navigation-store-handle.ts +38 -0
  75. package/src/browser/navigation-store.ts +76 -67
  76. package/src/browser/navigation-transaction.ts +9 -59
  77. package/src/browser/network-error-handler.ts +34 -7
  78. package/src/browser/partial-update.ts +150 -107
  79. package/src/browser/prefetch/cache.ts +205 -62
  80. package/src/browser/prefetch/fetch.ts +329 -39
  81. package/src/browser/prefetch/queue.ts +95 -29
  82. package/src/browser/prefetch/resource-ready.ts +77 -0
  83. package/src/browser/rango-state.ts +158 -76
  84. package/src/browser/react/Link.tsx +102 -15
  85. package/src/browser/react/NavigationProvider.tsx +193 -120
  86. package/src/browser/react/ScrollRestoration.tsx +10 -6
  87. package/src/browser/react/context.ts +7 -2
  88. package/src/browser/react/filter-segment-order.ts +66 -7
  89. package/src/browser/react/index.ts +0 -48
  90. package/src/browser/react/location-state-shared.ts +178 -8
  91. package/src/browser/react/location-state.ts +39 -14
  92. package/src/browser/react/use-action.ts +6 -15
  93. package/src/browser/react/use-handle.ts +23 -69
  94. package/src/browser/react/use-href.tsx +8 -1
  95. package/src/browser/react/use-link-status.ts +33 -8
  96. package/src/browser/react/use-navigation.ts +32 -7
  97. package/src/browser/react/use-params.ts +20 -10
  98. package/src/browser/react/use-reverse.ts +106 -0
  99. package/src/browser/react/use-router.ts +46 -11
  100. package/src/browser/react/use-search-params.ts +0 -5
  101. package/src/browser/react/use-segments.ts +11 -21
  102. package/src/browser/response-adapter.ts +80 -5
  103. package/src/browser/rsc-router.tsx +114 -24
  104. package/src/browser/scroll-restoration.ts +37 -22
  105. package/src/browser/segment-reconciler.ts +36 -14
  106. package/src/browser/segment-structure-assert.ts +2 -2
  107. package/src/browser/server-action-bridge.ts +222 -61
  108. package/src/browser/types.ts +82 -11
  109. package/src/browser/validate-redirect-origin.ts +43 -16
  110. package/src/build/collect-fallback-refs.ts +107 -0
  111. package/src/build/generate-manifest.ts +65 -40
  112. package/src/build/generate-route-types.ts +5 -1
  113. package/src/build/index.ts +8 -2
  114. package/src/build/prefix-tree-utils.ts +123 -0
  115. package/src/build/route-trie.ts +165 -36
  116. package/src/build/route-types/ast-route-extraction.ts +15 -8
  117. package/src/build/route-types/codegen.ts +16 -5
  118. package/src/build/route-types/include-resolution.ts +125 -24
  119. package/src/build/route-types/param-extraction.ts +6 -3
  120. package/src/build/route-types/per-module-writer.ts +22 -6
  121. package/src/build/route-types/router-processing.ts +260 -94
  122. package/src/build/route-types/scan-filter.ts +9 -2
  123. package/src/build/route-types/source-scan.ts +216 -0
  124. package/src/build/runtime-discovery.ts +9 -20
  125. package/src/cache/cache-error.ts +104 -0
  126. package/src/cache/cache-key-utils.ts +29 -13
  127. package/src/cache/cache-policy.ts +108 -34
  128. package/src/cache/cache-runtime.ts +214 -48
  129. package/src/cache/cache-scope.ts +234 -87
  130. package/src/cache/cache-tag.ts +103 -0
  131. package/src/cache/cf/cf-base64.ts +33 -0
  132. package/src/cache/cf/cf-cache-constants.ts +127 -0
  133. package/src/cache/cf/cf-cache-store.ts +1989 -378
  134. package/src/cache/cf/cf-cache-types.ts +349 -0
  135. package/src/cache/cf/cf-kv-utils.ts +46 -0
  136. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  137. package/src/cache/cf/index.ts +6 -16
  138. package/src/cache/document-cache.ts +72 -20
  139. package/src/cache/handle-snapshot.ts +70 -0
  140. package/src/cache/index.ts +10 -20
  141. package/src/cache/memory-segment-store.ts +136 -37
  142. package/src/cache/profile-registry.ts +31 -31
  143. package/src/cache/read-through-swr.ts +41 -11
  144. package/src/cache/segment-codec.ts +9 -17
  145. package/src/cache/tag-invalidation.ts +230 -0
  146. package/src/cache/taint.ts +55 -0
  147. package/src/cache/types.ts +37 -100
  148. package/src/client.rsc.tsx +44 -21
  149. package/src/client.tsx +119 -290
  150. package/src/cloudflare/index.ts +11 -0
  151. package/src/cloudflare/tracing.ts +109 -0
  152. package/src/component-utils.ts +19 -0
  153. package/src/components/DefaultDocument.tsx +8 -2
  154. package/src/context-var.ts +84 -2
  155. package/src/decode-loader-results.ts +52 -0
  156. package/src/defer.ts +196 -0
  157. package/src/deps/ssr.ts +0 -1
  158. package/src/encode-kv.ts +49 -0
  159. package/src/errors.ts +30 -4
  160. package/src/escape-script.ts +52 -0
  161. package/src/handle.ts +70 -22
  162. package/src/handles/MetaTags.tsx +62 -19
  163. package/src/handles/Scripts.tsx +183 -0
  164. package/src/handles/breadcrumbs.ts +37 -8
  165. package/src/handles/is-thenable.ts +19 -0
  166. package/src/handles/meta.ts +51 -40
  167. package/src/handles/script.ts +244 -0
  168. package/src/host/cookie-handler.ts +9 -60
  169. package/src/host/errors.ts +0 -24
  170. package/src/host/index.ts +8 -2
  171. package/src/host/pattern-matcher.ts +23 -52
  172. package/src/host/router.ts +107 -99
  173. package/src/host/testing.ts +40 -27
  174. package/src/host/types.ts +37 -4
  175. package/src/host/utils.ts +1 -1
  176. package/src/href-client.ts +137 -22
  177. package/src/index.rsc.ts +93 -12
  178. package/src/index.ts +133 -15
  179. package/src/internal-debug.ts +11 -10
  180. package/src/loader-store.ts +500 -0
  181. package/src/loader.rsc.ts +20 -13
  182. package/src/loader.ts +12 -11
  183. package/src/missing-id-error.ts +68 -0
  184. package/src/outlet-context.ts +1 -1
  185. package/src/outlet-provider.tsx +1 -5
  186. package/src/prerender/param-hash.ts +16 -16
  187. package/src/prerender/store.ts +37 -41
  188. package/src/prerender.ts +198 -82
  189. package/src/redirect-origin.ts +100 -0
  190. package/src/regex-escape.ts +8 -0
  191. package/src/render-error-thrower.tsx +20 -0
  192. package/src/response-utils.ts +62 -0
  193. package/src/reverse.ts +65 -15
  194. package/src/root-error-boundary.tsx +1 -19
  195. package/src/route-content-wrapper.tsx +7 -72
  196. package/src/route-definition/dsl-helpers.ts +445 -277
  197. package/src/route-definition/helper-factories.ts +29 -139
  198. package/src/route-definition/helpers-types.ts +113 -37
  199. package/src/route-definition/index.ts +3 -0
  200. package/src/route-definition/redirect.ts +51 -10
  201. package/src/route-definition/resolve-handler-use.ts +161 -0
  202. package/src/route-definition/use-item-types.ts +32 -0
  203. package/src/route-map-builder.ts +0 -16
  204. package/src/route-types.ts +37 -41
  205. package/src/router/basename.ts +14 -0
  206. package/src/router/content-negotiation.ts +164 -17
  207. package/src/router/error-handling.ts +45 -18
  208. package/src/router/find-match.ts +44 -23
  209. package/src/router/handler-context.ts +83 -39
  210. package/src/router/instrument.ts +350 -0
  211. package/src/router/intercept-resolution.ts +48 -24
  212. package/src/router/lazy-includes.ts +15 -52
  213. package/src/router/loader-resolution.ts +274 -56
  214. package/src/router/logging.ts +0 -6
  215. package/src/router/manifest.ts +40 -42
  216. package/src/router/match-api.ts +120 -204
  217. package/src/router/match-context.ts +0 -22
  218. package/src/router/match-handlers.ts +58 -58
  219. package/src/router/match-middleware/background-revalidation.ts +15 -5
  220. package/src/router/match-middleware/cache-lookup.ts +202 -268
  221. package/src/router/match-middleware/cache-store.ts +42 -28
  222. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  223. package/src/router/match-middleware/segment-resolution.ts +45 -14
  224. package/src/router/match-pipelines.ts +1 -42
  225. package/src/router/match-result.ts +93 -39
  226. package/src/router/metrics.ts +0 -34
  227. package/src/router/middleware-types.ts +13 -142
  228. package/src/router/middleware.ts +268 -171
  229. package/src/router/navigation-snapshot.ts +131 -0
  230. package/src/router/params-util.ts +23 -0
  231. package/src/router/pattern-matching.ts +132 -90
  232. package/src/router/prefetch-cache-ttl.ts +51 -0
  233. package/src/router/prerender-match.ts +195 -56
  234. package/src/router/preview-match.ts +32 -102
  235. package/src/router/request-classification.ts +276 -0
  236. package/src/router/revalidation.ts +123 -73
  237. package/src/router/route-snapshot.ts +244 -0
  238. package/src/router/router-context.ts +3 -27
  239. package/src/router/router-interfaces.ts +115 -35
  240. package/src/router/router-options.ts +172 -15
  241. package/src/router/router-registry.ts +2 -5
  242. package/src/router/segment-resolution/fresh.ts +190 -99
  243. package/src/router/segment-resolution/helpers.ts +115 -30
  244. package/src/router/segment-resolution/loader-cache.ts +62 -37
  245. package/src/router/segment-resolution/revalidation.ts +386 -341
  246. package/src/router/segment-resolution/static-store.ts +19 -5
  247. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  248. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  249. package/src/router/segment-resolution.ts +5 -1
  250. package/src/router/segment-wrappers.ts +6 -5
  251. package/src/router/state-cookie-name.ts +33 -0
  252. package/src/router/substitute-pattern-params.ts +56 -0
  253. package/src/router/telemetry-otel.ts +161 -199
  254. package/src/router/telemetry.ts +96 -19
  255. package/src/router/timeout.ts +0 -20
  256. package/src/router/tracing.ts +206 -0
  257. package/src/router/trie-matching.ts +163 -59
  258. package/src/router/types.ts +10 -63
  259. package/src/router/url-params.ts +44 -0
  260. package/src/router.ts +158 -54
  261. package/src/rsc/handler-context.ts +3 -2
  262. package/src/rsc/handler.ts +658 -511
  263. package/src/rsc/helpers.ts +168 -46
  264. package/src/rsc/index.ts +2 -5
  265. package/src/rsc/json-route-result.ts +38 -0
  266. package/src/rsc/loader-fetch.ts +127 -31
  267. package/src/rsc/manifest-init.ts +33 -42
  268. package/src/rsc/origin-guard.ts +39 -25
  269. package/src/rsc/progressive-enhancement.ts +77 -11
  270. package/src/rsc/redirect-guard.ts +99 -0
  271. package/src/rsc/response-cache-serve.ts +238 -0
  272. package/src/rsc/response-error.ts +79 -12
  273. package/src/rsc/response-route-handler.ts +99 -189
  274. package/src/rsc/rsc-rendering.ts +105 -72
  275. package/src/rsc/runtime-warnings.ts +23 -10
  276. package/src/rsc/server-action.ts +263 -112
  277. package/src/rsc/ssr-setup.ts +18 -2
  278. package/src/rsc/types.ts +32 -6
  279. package/src/runtime-env.ts +18 -0
  280. package/src/search-params.ts +35 -30
  281. package/src/segment-content-promise.ts +67 -0
  282. package/src/segment-loader-promise.ts +149 -0
  283. package/src/segment-system.tsx +218 -202
  284. package/src/serialize.ts +243 -0
  285. package/src/server/context.ts +222 -51
  286. package/src/server/cookie-parse.ts +32 -0
  287. package/src/server/cookie-store.ts +80 -5
  288. package/src/server/handle-store.ts +40 -38
  289. package/src/server/loader-registry.ts +26 -46
  290. package/src/server/request-context.ts +390 -170
  291. package/src/ssr/index.tsx +24 -16
  292. package/src/static-handler.ts +27 -18
  293. package/src/testing/cache-status.ts +162 -0
  294. package/src/testing/collect-handle.ts +40 -0
  295. package/src/testing/dispatch.ts +701 -0
  296. package/src/testing/dom.entry.ts +22 -0
  297. package/src/testing/e2e/fixture.ts +188 -0
  298. package/src/testing/e2e/index.ts +128 -0
  299. package/src/testing/e2e/matchers.ts +35 -0
  300. package/src/testing/e2e/page-helpers.ts +272 -0
  301. package/src/testing/e2e/parity.ts +387 -0
  302. package/src/testing/e2e/server.ts +195 -0
  303. package/src/testing/flight-matchers.ts +97 -0
  304. package/src/testing/flight-normalize.ts +11 -0
  305. package/src/testing/flight-runtime.d.ts +57 -0
  306. package/src/testing/flight-tree.ts +682 -0
  307. package/src/testing/flight.entry.ts +52 -0
  308. package/src/testing/flight.ts +257 -0
  309. package/src/testing/generated-routes.ts +183 -0
  310. package/src/testing/index.ts +99 -0
  311. package/src/testing/internal/context.ts +371 -0
  312. package/src/testing/internal/flight-client-globals.ts +30 -0
  313. package/src/testing/internal/seed-vars.ts +54 -0
  314. package/src/testing/render-handler.ts +343 -0
  315. package/src/testing/render-route.tsx +581 -0
  316. package/src/testing/run-loader.ts +385 -0
  317. package/src/testing/run-middleware.ts +205 -0
  318. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  319. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  320. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  321. package/src/testing/vitest-stubs/version.ts +5 -0
  322. package/src/testing/vitest.ts +305 -0
  323. package/src/theme/ThemeProvider.tsx +20 -58
  324. package/src/theme/ThemeScript.tsx +7 -9
  325. package/src/theme/constants.ts +52 -13
  326. package/src/theme/index.ts +0 -7
  327. package/src/theme/theme-context.ts +1 -5
  328. package/src/theme/theme-script.ts +22 -21
  329. package/src/theme/use-theme.ts +0 -3
  330. package/src/types/boundaries.ts +0 -35
  331. package/src/types/cache-types.ts +17 -8
  332. package/src/types/error-types.ts +30 -90
  333. package/src/types/global-namespace.ts +54 -41
  334. package/src/types/handler-context.ts +233 -81
  335. package/src/types/index.ts +1 -10
  336. package/src/types/loader-types.ts +44 -15
  337. package/src/types/request-scope.ts +112 -0
  338. package/src/types/route-config.ts +6 -50
  339. package/src/types/route-entry.ts +12 -7
  340. package/src/types/segments.ts +36 -15
  341. package/src/urls/include-helper.ts +33 -70
  342. package/src/urls/index.ts +1 -11
  343. package/src/urls/path-helper-types.ts +58 -11
  344. package/src/urls/path-helper.ts +57 -111
  345. package/src/urls/pattern-types.ts +48 -19
  346. package/src/urls/response-types.ts +25 -22
  347. package/src/urls/type-extraction.ts +58 -139
  348. package/src/urls/urls-function.ts +1 -18
  349. package/src/use-loader.tsx +346 -89
  350. package/src/vite/debug.ts +185 -0
  351. package/src/vite/discovery/bundle-postprocess.ts +36 -38
  352. package/src/vite/discovery/discover-routers.ts +130 -85
  353. package/src/vite/discovery/discovery-errors.ts +194 -0
  354. package/src/vite/discovery/gate-state.ts +171 -0
  355. package/src/vite/discovery/prerender-collection.ts +214 -132
  356. package/src/vite/discovery/route-types-writer.ts +40 -84
  357. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  358. package/src/vite/discovery/state.ts +57 -4
  359. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  360. package/src/vite/index.ts +6 -0
  361. package/src/vite/inject-client-debug.ts +36 -0
  362. package/src/vite/plugin-types.ts +178 -5
  363. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  364. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  365. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  366. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  367. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  368. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  369. package/src/vite/plugins/expose-action-id.ts +48 -95
  370. package/src/vite/plugins/expose-id-utils.ts +96 -51
  371. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  372. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  373. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  374. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  375. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  376. package/src/vite/plugins/performance-tracks.ts +89 -0
  377. package/src/vite/plugins/refresh-cmd.ts +89 -27
  378. package/src/vite/plugins/use-cache-transform.ts +73 -83
  379. package/src/vite/plugins/version-injector.ts +21 -25
  380. package/src/vite/plugins/version-plugin.ts +37 -40
  381. package/src/vite/plugins/virtual-entries.ts +13 -18
  382. package/src/vite/rango.ts +119 -111
  383. package/src/vite/router-discovery.ts +941 -142
  384. package/src/vite/utils/ast-handler-extract.ts +26 -35
  385. package/src/vite/utils/banner.ts +1 -1
  386. package/src/vite/utils/bundle-analysis.ts +10 -15
  387. package/src/vite/utils/client-chunks.ts +184 -0
  388. package/src/vite/utils/directive-prologue.ts +40 -0
  389. package/src/vite/utils/forward-user-plugins.ts +171 -0
  390. package/src/vite/utils/manifest-utils.ts +4 -59
  391. package/src/vite/utils/package-resolution.ts +20 -52
  392. package/src/vite/utils/prerender-utils.ts +81 -34
  393. package/src/vite/utils/shared-utils.ts +92 -42
  394. package/dist/__internal.d.ts +0 -83
  395. package/dist/__internal.d.ts.map +0 -1
  396. package/dist/__internal.js +0 -19
  397. package/dist/__internal.js.map +0 -1
  398. package/dist/__mocks__/version.d.ts +0 -7
  399. package/dist/__mocks__/version.d.ts.map +0 -1
  400. package/dist/__mocks__/version.js +0 -7
  401. package/dist/__mocks__/version.js.map +0 -1
  402. package/dist/__tests__/client-href.test.d.ts +0 -2
  403. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  404. package/dist/__tests__/client-href.test.js +0 -74
  405. package/dist/__tests__/client-href.test.js.map +0 -1
  406. package/dist/__tests__/component-utils.test.d.ts +0 -2
  407. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  408. package/dist/__tests__/component-utils.test.js +0 -51
  409. package/dist/__tests__/component-utils.test.js.map +0 -1
  410. package/dist/__tests__/event-controller.test.d.ts +0 -2
  411. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  412. package/dist/__tests__/event-controller.test.js +0 -538
  413. package/dist/__tests__/event-controller.test.js.map +0 -1
  414. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  415. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  416. package/dist/__tests__/helpers/route-tree.js +0 -374
  417. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  418. package/dist/__tests__/match-result.test.d.ts +0 -2
  419. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  420. package/dist/__tests__/match-result.test.js +0 -154
  421. package/dist/__tests__/match-result.test.js.map +0 -1
  422. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  423. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  424. package/dist/__tests__/navigation-store.test.js +0 -440
  425. package/dist/__tests__/navigation-store.test.js.map +0 -1
  426. package/dist/__tests__/partial-update.test.d.ts +0 -2
  427. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  428. package/dist/__tests__/partial-update.test.js +0 -1009
  429. package/dist/__tests__/partial-update.test.js.map +0 -1
  430. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  431. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  432. package/dist/__tests__/reverse-types.test.js +0 -656
  433. package/dist/__tests__/reverse-types.test.js.map +0 -1
  434. package/dist/__tests__/route-definition.test.d.ts +0 -2
  435. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  436. package/dist/__tests__/route-definition.test.js +0 -55
  437. package/dist/__tests__/route-definition.test.js.map +0 -1
  438. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  439. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  440. package/dist/__tests__/router-helpers.test.js +0 -377
  441. package/dist/__tests__/router-helpers.test.js.map +0 -1
  442. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  443. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  444. package/dist/__tests__/router-integration-2.test.js +0 -426
  445. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  446. package/dist/__tests__/router-integration.test.d.ts +0 -2
  447. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  448. package/dist/__tests__/router-integration.test.js +0 -1051
  449. package/dist/__tests__/router-integration.test.js.map +0 -1
  450. package/dist/__tests__/search-params.test.d.ts +0 -5
  451. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  452. package/dist/__tests__/search-params.test.js +0 -306
  453. package/dist/__tests__/search-params.test.js.map +0 -1
  454. package/dist/__tests__/segment-system.test.d.ts +0 -2
  455. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  456. package/dist/__tests__/segment-system.test.js +0 -627
  457. package/dist/__tests__/segment-system.test.js.map +0 -1
  458. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  459. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  460. package/dist/__tests__/static-handler-types.test.js +0 -63
  461. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  462. package/dist/__tests__/urls.test.d.ts +0 -2
  463. package/dist/__tests__/urls.test.d.ts.map +0 -1
  464. package/dist/__tests__/urls.test.js +0 -421
  465. package/dist/__tests__/urls.test.js.map +0 -1
  466. package/dist/__tests__/use-mount.test.d.ts +0 -2
  467. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  468. package/dist/__tests__/use-mount.test.js +0 -35
  469. package/dist/__tests__/use-mount.test.js.map +0 -1
  470. package/dist/bin/rango.d.ts +0 -2
  471. package/dist/bin/rango.d.ts.map +0 -1
  472. package/dist/bin/rango.js.map +0 -1
  473. package/dist/browser/event-controller.d.ts +0 -191
  474. package/dist/browser/event-controller.d.ts.map +0 -1
  475. package/dist/browser/event-controller.js +0 -559
  476. package/dist/browser/event-controller.js.map +0 -1
  477. package/dist/browser/index.d.ts +0 -2
  478. package/dist/browser/index.d.ts.map +0 -1
  479. package/dist/browser/index.js +0 -14
  480. package/dist/browser/index.js.map +0 -1
  481. package/dist/browser/link-interceptor.d.ts +0 -38
  482. package/dist/browser/link-interceptor.d.ts.map +0 -1
  483. package/dist/browser/link-interceptor.js +0 -99
  484. package/dist/browser/link-interceptor.js.map +0 -1
  485. package/dist/browser/logging.d.ts +0 -10
  486. package/dist/browser/logging.d.ts.map +0 -1
  487. package/dist/browser/logging.js +0 -29
  488. package/dist/browser/logging.js.map +0 -1
  489. package/dist/browser/lru-cache.d.ts +0 -17
  490. package/dist/browser/lru-cache.d.ts.map +0 -1
  491. package/dist/browser/lru-cache.js +0 -50
  492. package/dist/browser/lru-cache.js.map +0 -1
  493. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  494. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  495. package/dist/browser/merge-segment-loaders.js +0 -102
  496. package/dist/browser/merge-segment-loaders.js.map +0 -1
  497. package/dist/browser/navigation-bridge.d.ts +0 -102
  498. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  499. package/dist/browser/navigation-bridge.js +0 -708
  500. package/dist/browser/navigation-bridge.js.map +0 -1
  501. package/dist/browser/navigation-client.d.ts +0 -25
  502. package/dist/browser/navigation-client.d.ts.map +0 -1
  503. package/dist/browser/navigation-client.js +0 -157
  504. package/dist/browser/navigation-client.js.map +0 -1
  505. package/dist/browser/navigation-store.d.ts +0 -101
  506. package/dist/browser/navigation-store.d.ts.map +0 -1
  507. package/dist/browser/navigation-store.js +0 -625
  508. package/dist/browser/navigation-store.js.map +0 -1
  509. package/dist/browser/partial-update.d.ts +0 -75
  510. package/dist/browser/partial-update.d.ts.map +0 -1
  511. package/dist/browser/partial-update.js +0 -426
  512. package/dist/browser/partial-update.js.map +0 -1
  513. package/dist/browser/react/Link.d.ts +0 -86
  514. package/dist/browser/react/Link.d.ts.map +0 -1
  515. package/dist/browser/react/Link.js +0 -128
  516. package/dist/browser/react/Link.js.map +0 -1
  517. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  518. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  519. package/dist/browser/react/NavigationProvider.js +0 -216
  520. package/dist/browser/react/NavigationProvider.js.map +0 -1
  521. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  522. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  523. package/dist/browser/react/ScrollRestoration.js +0 -57
  524. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  525. package/dist/browser/react/context.d.ts +0 -46
  526. package/dist/browser/react/context.d.ts.map +0 -1
  527. package/dist/browser/react/context.js +0 -10
  528. package/dist/browser/react/context.js.map +0 -1
  529. package/dist/browser/react/index.d.ts +0 -11
  530. package/dist/browser/react/index.d.ts.map +0 -1
  531. package/dist/browser/react/index.js +0 -22
  532. package/dist/browser/react/index.js.map +0 -1
  533. package/dist/browser/react/location-state-shared.d.ts +0 -63
  534. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  535. package/dist/browser/react/location-state-shared.js +0 -81
  536. package/dist/browser/react/location-state-shared.js.map +0 -1
  537. package/dist/browser/react/location-state.d.ts +0 -23
  538. package/dist/browser/react/location-state.d.ts.map +0 -1
  539. package/dist/browser/react/location-state.js +0 -29
  540. package/dist/browser/react/location-state.js.map +0 -1
  541. package/dist/browser/react/mount-context.d.ts +0 -24
  542. package/dist/browser/react/mount-context.d.ts.map +0 -1
  543. package/dist/browser/react/mount-context.js +0 -24
  544. package/dist/browser/react/mount-context.js.map +0 -1
  545. package/dist/browser/react/use-action.d.ts +0 -64
  546. package/dist/browser/react/use-action.d.ts.map +0 -1
  547. package/dist/browser/react/use-action.js +0 -134
  548. package/dist/browser/react/use-action.js.map +0 -1
  549. package/dist/browser/react/use-client-cache.d.ts +0 -41
  550. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  551. package/dist/browser/react/use-client-cache.js +0 -39
  552. package/dist/browser/react/use-client-cache.js.map +0 -1
  553. package/dist/browser/react/use-handle.d.ts +0 -31
  554. package/dist/browser/react/use-handle.d.ts.map +0 -1
  555. package/dist/browser/react/use-handle.js +0 -144
  556. package/dist/browser/react/use-handle.js.map +0 -1
  557. package/dist/browser/react/use-href.d.ts +0 -33
  558. package/dist/browser/react/use-href.d.ts.map +0 -1
  559. package/dist/browser/react/use-href.js +0 -39
  560. package/dist/browser/react/use-href.js.map +0 -1
  561. package/dist/browser/react/use-link-status.d.ts +0 -37
  562. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  563. package/dist/browser/react/use-link-status.js +0 -99
  564. package/dist/browser/react/use-link-status.js.map +0 -1
  565. package/dist/browser/react/use-mount.d.ts +0 -25
  566. package/dist/browser/react/use-mount.d.ts.map +0 -1
  567. package/dist/browser/react/use-mount.js +0 -30
  568. package/dist/browser/react/use-mount.js.map +0 -1
  569. package/dist/browser/react/use-navigation.d.ts +0 -27
  570. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  571. package/dist/browser/react/use-navigation.js +0 -87
  572. package/dist/browser/react/use-navigation.js.map +0 -1
  573. package/dist/browser/react/use-segments.d.ts +0 -38
  574. package/dist/browser/react/use-segments.d.ts.map +0 -1
  575. package/dist/browser/react/use-segments.js +0 -130
  576. package/dist/browser/react/use-segments.js.map +0 -1
  577. package/dist/browser/request-controller.d.ts +0 -26
  578. package/dist/browser/request-controller.d.ts.map +0 -1
  579. package/dist/browser/request-controller.js +0 -147
  580. package/dist/browser/request-controller.js.map +0 -1
  581. package/dist/browser/rsc-router.d.ts +0 -129
  582. package/dist/browser/rsc-router.d.ts.map +0 -1
  583. package/dist/browser/rsc-router.js +0 -195
  584. package/dist/browser/rsc-router.js.map +0 -1
  585. package/dist/browser/scroll-restoration.d.ts +0 -93
  586. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  587. package/dist/browser/scroll-restoration.js +0 -321
  588. package/dist/browser/scroll-restoration.js.map +0 -1
  589. package/dist/browser/segment-structure-assert.d.ts +0 -17
  590. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  591. package/dist/browser/segment-structure-assert.js +0 -59
  592. package/dist/browser/segment-structure-assert.js.map +0 -1
  593. package/dist/browser/server-action-bridge.d.ts +0 -26
  594. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  595. package/dist/browser/server-action-bridge.js +0 -668
  596. package/dist/browser/server-action-bridge.js.map +0 -1
  597. package/dist/browser/shallow.d.ts +0 -12
  598. package/dist/browser/shallow.d.ts.map +0 -1
  599. package/dist/browser/shallow.js +0 -34
  600. package/dist/browser/shallow.js.map +0 -1
  601. package/dist/browser/types.d.ts +0 -369
  602. package/dist/browser/types.d.ts.map +0 -1
  603. package/dist/browser/types.js +0 -2
  604. package/dist/browser/types.js.map +0 -1
  605. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  606. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  607. package/dist/build/__tests__/generate-cli.test.js +0 -237
  608. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  609. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  610. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  611. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  612. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  613. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  614. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  615. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  616. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  617. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  618. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  619. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  620. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  621. package/dist/build/generate-manifest.d.ts +0 -81
  622. package/dist/build/generate-manifest.d.ts.map +0 -1
  623. package/dist/build/generate-manifest.js +0 -276
  624. package/dist/build/generate-manifest.js.map +0 -1
  625. package/dist/build/generate-route-types.d.ts +0 -115
  626. package/dist/build/generate-route-types.d.ts.map +0 -1
  627. package/dist/build/generate-route-types.js +0 -740
  628. package/dist/build/generate-route-types.js.map +0 -1
  629. package/dist/build/index.d.ts +0 -21
  630. package/dist/build/index.d.ts.map +0 -1
  631. package/dist/build/index.js +0 -21
  632. package/dist/build/index.js.map +0 -1
  633. package/dist/build/route-trie.d.ts +0 -71
  634. package/dist/build/route-trie.d.ts.map +0 -1
  635. package/dist/build/route-trie.js +0 -175
  636. package/dist/build/route-trie.js.map +0 -1
  637. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  638. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  639. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  640. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  641. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  642. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  643. package/dist/cache/__tests__/document-cache.test.js +0 -345
  644. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  645. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  646. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  647. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  648. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  649. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  650. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  651. package/dist/cache/__tests__/memory-store.test.js +0 -367
  652. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  653. package/dist/cache/cache-scope.d.ts +0 -102
  654. package/dist/cache/cache-scope.d.ts.map +0 -1
  655. package/dist/cache/cache-scope.js +0 -440
  656. package/dist/cache/cache-scope.js.map +0 -1
  657. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  658. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  659. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  660. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  661. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  662. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  663. package/dist/cache/cf/cf-cache-store.js +0 -242
  664. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  665. package/dist/cache/cf/index.d.ts +0 -14
  666. package/dist/cache/cf/index.d.ts.map +0 -1
  667. package/dist/cache/cf/index.js +0 -17
  668. package/dist/cache/cf/index.js.map +0 -1
  669. package/dist/cache/document-cache.d.ts +0 -64
  670. package/dist/cache/document-cache.d.ts.map +0 -1
  671. package/dist/cache/document-cache.js +0 -228
  672. package/dist/cache/document-cache.js.map +0 -1
  673. package/dist/cache/index.d.ts +0 -19
  674. package/dist/cache/index.d.ts.map +0 -1
  675. package/dist/cache/index.js +0 -21
  676. package/dist/cache/index.js.map +0 -1
  677. package/dist/cache/memory-segment-store.d.ts +0 -110
  678. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  679. package/dist/cache/memory-segment-store.js +0 -117
  680. package/dist/cache/memory-segment-store.js.map +0 -1
  681. package/dist/cache/memory-store.d.ts +0 -41
  682. package/dist/cache/memory-store.d.ts.map +0 -1
  683. package/dist/cache/memory-store.js +0 -191
  684. package/dist/cache/memory-store.js.map +0 -1
  685. package/dist/cache/types.d.ts +0 -317
  686. package/dist/cache/types.d.ts.map +0 -1
  687. package/dist/cache/types.js +0 -12
  688. package/dist/cache/types.js.map +0 -1
  689. package/dist/client.d.ts +0 -248
  690. package/dist/client.d.ts.map +0 -1
  691. package/dist/client.js +0 -367
  692. package/dist/client.js.map +0 -1
  693. package/dist/client.rsc.d.ts +0 -26
  694. package/dist/client.rsc.d.ts.map +0 -1
  695. package/dist/client.rsc.js +0 -46
  696. package/dist/client.rsc.js.map +0 -1
  697. package/dist/component-utils.d.ts +0 -36
  698. package/dist/component-utils.d.ts.map +0 -1
  699. package/dist/component-utils.js +0 -61
  700. package/dist/component-utils.js.map +0 -1
  701. package/dist/components/DefaultDocument.d.ts +0 -13
  702. package/dist/components/DefaultDocument.d.ts.map +0 -1
  703. package/dist/components/DefaultDocument.js +0 -15
  704. package/dist/components/DefaultDocument.js.map +0 -1
  705. package/dist/debug.d.ts +0 -58
  706. package/dist/debug.d.ts.map +0 -1
  707. package/dist/debug.js +0 -157
  708. package/dist/debug.js.map +0 -1
  709. package/dist/default-error-boundary.d.ts +0 -11
  710. package/dist/default-error-boundary.d.ts.map +0 -1
  711. package/dist/default-error-boundary.js +0 -45
  712. package/dist/default-error-boundary.js.map +0 -1
  713. package/dist/deps/browser.d.ts +0 -2
  714. package/dist/deps/browser.d.ts.map +0 -1
  715. package/dist/deps/browser.js +0 -3
  716. package/dist/deps/browser.js.map +0 -1
  717. package/dist/deps/html-stream-client.d.ts +0 -2
  718. package/dist/deps/html-stream-client.d.ts.map +0 -1
  719. package/dist/deps/html-stream-client.js +0 -3
  720. package/dist/deps/html-stream-client.js.map +0 -1
  721. package/dist/deps/html-stream-server.d.ts +0 -2
  722. package/dist/deps/html-stream-server.d.ts.map +0 -1
  723. package/dist/deps/html-stream-server.js +0 -3
  724. package/dist/deps/html-stream-server.js.map +0 -1
  725. package/dist/deps/rsc.d.ts +0 -2
  726. package/dist/deps/rsc.d.ts.map +0 -1
  727. package/dist/deps/rsc.js +0 -4
  728. package/dist/deps/rsc.js.map +0 -1
  729. package/dist/deps/ssr.d.ts +0 -2
  730. package/dist/deps/ssr.d.ts.map +0 -1
  731. package/dist/deps/ssr.js +0 -3
  732. package/dist/deps/ssr.js.map +0 -1
  733. package/dist/errors.d.ts +0 -174
  734. package/dist/errors.d.ts.map +0 -1
  735. package/dist/errors.js +0 -241
  736. package/dist/errors.js.map +0 -1
  737. package/dist/handle.d.ts +0 -78
  738. package/dist/handle.d.ts.map +0 -1
  739. package/dist/handle.js +0 -82
  740. package/dist/handle.js.map +0 -1
  741. package/dist/handles/MetaTags.d.ts +0 -14
  742. package/dist/handles/MetaTags.d.ts.map +0 -1
  743. package/dist/handles/MetaTags.js +0 -136
  744. package/dist/handles/MetaTags.js.map +0 -1
  745. package/dist/handles/index.d.ts +0 -6
  746. package/dist/handles/index.d.ts.map +0 -1
  747. package/dist/handles/index.js +0 -6
  748. package/dist/handles/index.js.map +0 -1
  749. package/dist/handles/meta.d.ts +0 -39
  750. package/dist/handles/meta.d.ts.map +0 -1
  751. package/dist/handles/meta.js +0 -202
  752. package/dist/handles/meta.js.map +0 -1
  753. package/dist/host/__tests__/errors.test.d.ts +0 -2
  754. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  755. package/dist/host/__tests__/errors.test.js +0 -76
  756. package/dist/host/__tests__/errors.test.js.map +0 -1
  757. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  758. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  759. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  760. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  761. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  762. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  763. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  764. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  765. package/dist/host/__tests__/router.test.d.ts +0 -2
  766. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  767. package/dist/host/__tests__/router.test.js +0 -241
  768. package/dist/host/__tests__/router.test.js.map +0 -1
  769. package/dist/host/__tests__/testing.test.d.ts +0 -2
  770. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  771. package/dist/host/__tests__/testing.test.js +0 -64
  772. package/dist/host/__tests__/testing.test.js.map +0 -1
  773. package/dist/host/__tests__/utils.test.d.ts +0 -2
  774. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  775. package/dist/host/__tests__/utils.test.js +0 -29
  776. package/dist/host/__tests__/utils.test.js.map +0 -1
  777. package/dist/host/cookie-handler.d.ts +0 -34
  778. package/dist/host/cookie-handler.d.ts.map +0 -1
  779. package/dist/host/cookie-handler.js +0 -124
  780. package/dist/host/cookie-handler.js.map +0 -1
  781. package/dist/host/errors.d.ts +0 -56
  782. package/dist/host/errors.d.ts.map +0 -1
  783. package/dist/host/errors.js +0 -79
  784. package/dist/host/errors.js.map +0 -1
  785. package/dist/host/index.d.ts +0 -29
  786. package/dist/host/index.d.ts.map +0 -1
  787. package/dist/host/index.js +0 -32
  788. package/dist/host/index.js.map +0 -1
  789. package/dist/host/pattern-matcher.d.ts +0 -36
  790. package/dist/host/pattern-matcher.d.ts.map +0 -1
  791. package/dist/host/pattern-matcher.js +0 -172
  792. package/dist/host/pattern-matcher.js.map +0 -1
  793. package/dist/host/router.d.ts +0 -26
  794. package/dist/host/router.d.ts.map +0 -1
  795. package/dist/host/router.js +0 -218
  796. package/dist/host/router.js.map +0 -1
  797. package/dist/host/testing.d.ts +0 -36
  798. package/dist/host/testing.d.ts.map +0 -1
  799. package/dist/host/testing.js +0 -55
  800. package/dist/host/testing.js.map +0 -1
  801. package/dist/host/types.d.ts +0 -115
  802. package/dist/host/types.d.ts.map +0 -1
  803. package/dist/host/types.js +0 -7
  804. package/dist/host/types.js.map +0 -1
  805. package/dist/host/utils.d.ts +0 -21
  806. package/dist/host/utils.d.ts.map +0 -1
  807. package/dist/host/utils.js +0 -23
  808. package/dist/host/utils.js.map +0 -1
  809. package/dist/href-client.d.ts +0 -131
  810. package/dist/href-client.d.ts.map +0 -1
  811. package/dist/href-client.js +0 -64
  812. package/dist/href-client.js.map +0 -1
  813. package/dist/href-context.d.ts +0 -29
  814. package/dist/href-context.d.ts.map +0 -1
  815. package/dist/href-context.js +0 -21
  816. package/dist/href-context.js.map +0 -1
  817. package/dist/index.d.ts +0 -73
  818. package/dist/index.d.ts.map +0 -1
  819. package/dist/index.js +0 -91
  820. package/dist/index.js.map +0 -1
  821. package/dist/index.rsc.d.ts +0 -32
  822. package/dist/index.rsc.d.ts.map +0 -1
  823. package/dist/index.rsc.js +0 -40
  824. package/dist/index.rsc.js.map +0 -1
  825. package/dist/internal-debug.d.ts +0 -2
  826. package/dist/internal-debug.d.ts.map +0 -1
  827. package/dist/internal-debug.js +0 -5
  828. package/dist/internal-debug.js.map +0 -1
  829. package/dist/loader.d.ts +0 -14
  830. package/dist/loader.d.ts.map +0 -1
  831. package/dist/loader.js +0 -20
  832. package/dist/loader.js.map +0 -1
  833. package/dist/loader.rsc.d.ts +0 -19
  834. package/dist/loader.rsc.d.ts.map +0 -1
  835. package/dist/loader.rsc.js +0 -99
  836. package/dist/loader.rsc.js.map +0 -1
  837. package/dist/network-error-thrower.d.ts +0 -17
  838. package/dist/network-error-thrower.d.ts.map +0 -1
  839. package/dist/network-error-thrower.js +0 -14
  840. package/dist/network-error-thrower.js.map +0 -1
  841. package/dist/outlet-context.d.ts +0 -13
  842. package/dist/outlet-context.d.ts.map +0 -1
  843. package/dist/outlet-context.js +0 -3
  844. package/dist/outlet-context.js.map +0 -1
  845. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  846. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  847. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  848. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  849. package/dist/prerender/param-hash.d.ts +0 -16
  850. package/dist/prerender/param-hash.d.ts.map +0 -1
  851. package/dist/prerender/param-hash.js +0 -36
  852. package/dist/prerender/param-hash.js.map +0 -1
  853. package/dist/prerender/store.d.ts +0 -38
  854. package/dist/prerender/store.d.ts.map +0 -1
  855. package/dist/prerender/store.js +0 -61
  856. package/dist/prerender/store.js.map +0 -1
  857. package/dist/prerender.d.ts +0 -66
  858. package/dist/prerender.d.ts.map +0 -1
  859. package/dist/prerender.js +0 -57
  860. package/dist/prerender.js.map +0 -1
  861. package/dist/reverse.d.ts +0 -196
  862. package/dist/reverse.d.ts.map +0 -1
  863. package/dist/reverse.js +0 -78
  864. package/dist/reverse.js.map +0 -1
  865. package/dist/root-error-boundary.d.ts +0 -33
  866. package/dist/root-error-boundary.d.ts.map +0 -1
  867. package/dist/root-error-boundary.js +0 -165
  868. package/dist/root-error-boundary.js.map +0 -1
  869. package/dist/route-content-wrapper.d.ts +0 -46
  870. package/dist/route-content-wrapper.d.ts.map +0 -1
  871. package/dist/route-content-wrapper.js +0 -77
  872. package/dist/route-content-wrapper.js.map +0 -1
  873. package/dist/route-definition.d.ts +0 -421
  874. package/dist/route-definition.d.ts.map +0 -1
  875. package/dist/route-definition.js +0 -868
  876. package/dist/route-definition.js.map +0 -1
  877. package/dist/route-map-builder.d.ts +0 -155
  878. package/dist/route-map-builder.d.ts.map +0 -1
  879. package/dist/route-map-builder.js +0 -237
  880. package/dist/route-map-builder.js.map +0 -1
  881. package/dist/route-types.d.ts +0 -165
  882. package/dist/route-types.d.ts.map +0 -1
  883. package/dist/route-types.js +0 -7
  884. package/dist/route-types.js.map +0 -1
  885. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  886. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  887. package/dist/router/__tests__/handler-context.test.js +0 -65
  888. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  889. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  890. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  891. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  892. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  893. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  894. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  895. package/dist/router/__tests__/match-context.test.js +0 -92
  896. package/dist/router/__tests__/match-context.test.js.map +0 -1
  897. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  898. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  899. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  900. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  901. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  902. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  903. package/dist/router/__tests__/match-result.test.js +0 -457
  904. package/dist/router/__tests__/match-result.test.js.map +0 -1
  905. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  906. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  907. package/dist/router/__tests__/on-error.test.js +0 -678
  908. package/dist/router/__tests__/on-error.test.js.map +0 -1
  909. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  910. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  911. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  912. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  913. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  914. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  915. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  916. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  917. package/dist/router/error-handling.d.ts +0 -77
  918. package/dist/router/error-handling.d.ts.map +0 -1
  919. package/dist/router/error-handling.js +0 -202
  920. package/dist/router/error-handling.js.map +0 -1
  921. package/dist/router/handler-context.d.ts +0 -20
  922. package/dist/router/handler-context.d.ts.map +0 -1
  923. package/dist/router/handler-context.js +0 -198
  924. package/dist/router/handler-context.js.map +0 -1
  925. package/dist/router/intercept-resolution.d.ts +0 -66
  926. package/dist/router/intercept-resolution.d.ts.map +0 -1
  927. package/dist/router/intercept-resolution.js +0 -246
  928. package/dist/router/intercept-resolution.js.map +0 -1
  929. package/dist/router/loader-resolution.d.ts +0 -64
  930. package/dist/router/loader-resolution.d.ts.map +0 -1
  931. package/dist/router/loader-resolution.js +0 -284
  932. package/dist/router/loader-resolution.js.map +0 -1
  933. package/dist/router/logging.d.ts +0 -15
  934. package/dist/router/logging.d.ts.map +0 -1
  935. package/dist/router/logging.js +0 -99
  936. package/dist/router/logging.js.map +0 -1
  937. package/dist/router/manifest.d.ts +0 -22
  938. package/dist/router/manifest.d.ts.map +0 -1
  939. package/dist/router/manifest.js +0 -181
  940. package/dist/router/manifest.js.map +0 -1
  941. package/dist/router/match-api.d.ts +0 -35
  942. package/dist/router/match-api.d.ts.map +0 -1
  943. package/dist/router/match-api.js +0 -406
  944. package/dist/router/match-api.js.map +0 -1
  945. package/dist/router/match-context.d.ts +0 -206
  946. package/dist/router/match-context.d.ts.map +0 -1
  947. package/dist/router/match-context.js +0 -17
  948. package/dist/router/match-context.js.map +0 -1
  949. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  950. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  951. package/dist/router/match-middleware/background-revalidation.js +0 -75
  952. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  953. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  954. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  955. package/dist/router/match-middleware/cache-lookup.js +0 -257
  956. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  957. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  958. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  959. package/dist/router/match-middleware/cache-store.js +0 -108
  960. package/dist/router/match-middleware/cache-store.js.map +0 -1
  961. package/dist/router/match-middleware/index.d.ts +0 -81
  962. package/dist/router/match-middleware/index.d.ts.map +0 -1
  963. package/dist/router/match-middleware/index.js +0 -80
  964. package/dist/router/match-middleware/index.js.map +0 -1
  965. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  966. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  967. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  968. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  969. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  970. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  971. package/dist/router/match-middleware/segment-resolution.js +0 -53
  972. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  973. package/dist/router/match-pipelines.d.ts +0 -147
  974. package/dist/router/match-pipelines.d.ts.map +0 -1
  975. package/dist/router/match-pipelines.js +0 -82
  976. package/dist/router/match-pipelines.js.map +0 -1
  977. package/dist/router/match-result.d.ts +0 -126
  978. package/dist/router/match-result.d.ts.map +0 -1
  979. package/dist/router/match-result.js +0 -93
  980. package/dist/router/match-result.js.map +0 -1
  981. package/dist/router/metrics.d.ts +0 -20
  982. package/dist/router/metrics.d.ts.map +0 -1
  983. package/dist/router/metrics.js +0 -47
  984. package/dist/router/metrics.js.map +0 -1
  985. package/dist/router/middleware.d.ts +0 -249
  986. package/dist/router/middleware.d.ts.map +0 -1
  987. package/dist/router/middleware.js +0 -434
  988. package/dist/router/middleware.js.map +0 -1
  989. package/dist/router/middleware.test.d.ts +0 -2
  990. package/dist/router/middleware.test.d.ts.map +0 -1
  991. package/dist/router/middleware.test.js +0 -816
  992. package/dist/router/middleware.test.js.map +0 -1
  993. package/dist/router/pattern-matching.d.ts +0 -149
  994. package/dist/router/pattern-matching.d.ts.map +0 -1
  995. package/dist/router/pattern-matching.js +0 -349
  996. package/dist/router/pattern-matching.js.map +0 -1
  997. package/dist/router/revalidation.d.ts +0 -44
  998. package/dist/router/revalidation.d.ts.map +0 -1
  999. package/dist/router/revalidation.js +0 -147
  1000. package/dist/router/revalidation.js.map +0 -1
  1001. package/dist/router/router-context.d.ts +0 -135
  1002. package/dist/router/router-context.d.ts.map +0 -1
  1003. package/dist/router/router-context.js +0 -36
  1004. package/dist/router/router-context.js.map +0 -1
  1005. package/dist/router/segment-resolution.d.ts +0 -127
  1006. package/dist/router/segment-resolution.d.ts.map +0 -1
  1007. package/dist/router/segment-resolution.js +0 -919
  1008. package/dist/router/segment-resolution.js.map +0 -1
  1009. package/dist/router/trie-matching.d.ts +0 -40
  1010. package/dist/router/trie-matching.d.ts.map +0 -1
  1011. package/dist/router/trie-matching.js +0 -127
  1012. package/dist/router/trie-matching.js.map +0 -1
  1013. package/dist/router/types.d.ts +0 -136
  1014. package/dist/router/types.d.ts.map +0 -1
  1015. package/dist/router/types.js +0 -7
  1016. package/dist/router/types.js.map +0 -1
  1017. package/dist/router.d.ts +0 -753
  1018. package/dist/router.d.ts.map +0 -1
  1019. package/dist/router.gen.d.ts +0 -6
  1020. package/dist/router.gen.d.ts.map +0 -1
  1021. package/dist/router.gen.js +0 -6
  1022. package/dist/router.gen.js.map +0 -1
  1023. package/dist/router.js +0 -1304
  1024. package/dist/router.js.map +0 -1
  1025. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1026. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1027. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1028. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1029. package/dist/rsc/handler.d.ts +0 -45
  1030. package/dist/rsc/handler.d.ts.map +0 -1
  1031. package/dist/rsc/handler.js +0 -1172
  1032. package/dist/rsc/handler.js.map +0 -1
  1033. package/dist/rsc/helpers.d.ts +0 -16
  1034. package/dist/rsc/helpers.d.ts.map +0 -1
  1035. package/dist/rsc/helpers.js +0 -55
  1036. package/dist/rsc/helpers.js.map +0 -1
  1037. package/dist/rsc/index.d.ts +0 -22
  1038. package/dist/rsc/index.d.ts.map +0 -1
  1039. package/dist/rsc/index.js +0 -23
  1040. package/dist/rsc/index.js.map +0 -1
  1041. package/dist/rsc/nonce.d.ts +0 -9
  1042. package/dist/rsc/nonce.d.ts.map +0 -1
  1043. package/dist/rsc/nonce.js +0 -18
  1044. package/dist/rsc/nonce.js.map +0 -1
  1045. package/dist/rsc/types.d.ts +0 -206
  1046. package/dist/rsc/types.d.ts.map +0 -1
  1047. package/dist/rsc/types.js +0 -8
  1048. package/dist/rsc/types.js.map +0 -1
  1049. package/dist/search-params.d.ts +0 -103
  1050. package/dist/search-params.d.ts.map +0 -1
  1051. package/dist/search-params.js +0 -74
  1052. package/dist/search-params.js.map +0 -1
  1053. package/dist/segment-system.d.ts +0 -75
  1054. package/dist/segment-system.d.ts.map +0 -1
  1055. package/dist/segment-system.js +0 -336
  1056. package/dist/segment-system.js.map +0 -1
  1057. package/dist/server/context.d.ts +0 -245
  1058. package/dist/server/context.d.ts.map +0 -1
  1059. package/dist/server/context.js +0 -197
  1060. package/dist/server/context.js.map +0 -1
  1061. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1062. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1063. package/dist/server/fetchable-loader-store.js +0 -18
  1064. package/dist/server/fetchable-loader-store.js.map +0 -1
  1065. package/dist/server/handle-store.d.ts +0 -85
  1066. package/dist/server/handle-store.d.ts.map +0 -1
  1067. package/dist/server/handle-store.js +0 -142
  1068. package/dist/server/handle-store.js.map +0 -1
  1069. package/dist/server/loader-registry.d.ts +0 -55
  1070. package/dist/server/loader-registry.d.ts.map +0 -1
  1071. package/dist/server/loader-registry.js +0 -132
  1072. package/dist/server/loader-registry.js.map +0 -1
  1073. package/dist/server/request-context.d.ts +0 -226
  1074. package/dist/server/request-context.d.ts.map +0 -1
  1075. package/dist/server/request-context.js +0 -290
  1076. package/dist/server/request-context.js.map +0 -1
  1077. package/dist/server/root-layout.d.ts +0 -4
  1078. package/dist/server/root-layout.d.ts.map +0 -1
  1079. package/dist/server/root-layout.js +0 -5
  1080. package/dist/server/root-layout.js.map +0 -1
  1081. package/dist/server.d.ts +0 -15
  1082. package/dist/server.d.ts.map +0 -1
  1083. package/dist/server.js +0 -20
  1084. package/dist/server.js.map +0 -1
  1085. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1086. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1087. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1088. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1089. package/dist/ssr/index.d.ts +0 -98
  1090. package/dist/ssr/index.d.ts.map +0 -1
  1091. package/dist/ssr/index.js +0 -158
  1092. package/dist/ssr/index.js.map +0 -1
  1093. package/dist/static-handler.d.ts +0 -50
  1094. package/dist/static-handler.d.ts.map +0 -1
  1095. package/dist/static-handler.gen.d.ts +0 -5
  1096. package/dist/static-handler.gen.d.ts.map +0 -1
  1097. package/dist/static-handler.gen.js +0 -5
  1098. package/dist/static-handler.gen.js.map +0 -1
  1099. package/dist/static-handler.js +0 -29
  1100. package/dist/static-handler.js.map +0 -1
  1101. package/dist/theme/ThemeProvider.d.ts +0 -20
  1102. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1103. package/dist/theme/ThemeProvider.js +0 -240
  1104. package/dist/theme/ThemeProvider.js.map +0 -1
  1105. package/dist/theme/ThemeScript.d.ts +0 -48
  1106. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1107. package/dist/theme/ThemeScript.js +0 -13
  1108. package/dist/theme/ThemeScript.js.map +0 -1
  1109. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1110. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1111. package/dist/theme/__tests__/theme.test.js +0 -103
  1112. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1113. package/dist/theme/constants.d.ts +0 -29
  1114. package/dist/theme/constants.d.ts.map +0 -1
  1115. package/dist/theme/constants.js +0 -48
  1116. package/dist/theme/constants.js.map +0 -1
  1117. package/dist/theme/index.d.ts +0 -31
  1118. package/dist/theme/index.d.ts.map +0 -1
  1119. package/dist/theme/index.js +0 -36
  1120. package/dist/theme/index.js.map +0 -1
  1121. package/dist/theme/theme-context.d.ts +0 -40
  1122. package/dist/theme/theme-context.d.ts.map +0 -1
  1123. package/dist/theme/theme-context.js +0 -60
  1124. package/dist/theme/theme-context.js.map +0 -1
  1125. package/dist/theme/theme-script.d.ts +0 -27
  1126. package/dist/theme/theme-script.d.ts.map +0 -1
  1127. package/dist/theme/theme-script.js +0 -147
  1128. package/dist/theme/theme-script.js.map +0 -1
  1129. package/dist/theme/types.d.ts +0 -163
  1130. package/dist/theme/types.d.ts.map +0 -1
  1131. package/dist/theme/types.js +0 -11
  1132. package/dist/theme/types.js.map +0 -1
  1133. package/dist/theme/use-theme.d.ts +0 -12
  1134. package/dist/theme/use-theme.d.ts.map +0 -1
  1135. package/dist/theme/use-theme.js +0 -40
  1136. package/dist/theme/use-theme.js.map +0 -1
  1137. package/dist/types.d.ts +0 -1479
  1138. package/dist/types.d.ts.map +0 -1
  1139. package/dist/types.js +0 -10
  1140. package/dist/types.js.map +0 -1
  1141. package/dist/urls.d.ts +0 -441
  1142. package/dist/urls.d.ts.map +0 -1
  1143. package/dist/urls.gen.d.ts +0 -8
  1144. package/dist/urls.gen.d.ts.map +0 -1
  1145. package/dist/urls.gen.js +0 -8
  1146. package/dist/urls.gen.js.map +0 -1
  1147. package/dist/urls.js +0 -443
  1148. package/dist/urls.js.map +0 -1
  1149. package/dist/use-loader.d.ts +0 -127
  1150. package/dist/use-loader.d.ts.map +0 -1
  1151. package/dist/use-loader.js +0 -237
  1152. package/dist/use-loader.js.map +0 -1
  1153. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1154. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1155. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1156. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1157. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1158. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1159. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1160. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1161. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1162. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1163. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1164. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1165. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1166. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1167. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1168. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1169. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1170. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1171. package/dist/vite/ast-handler-extract.js +0 -249
  1172. package/dist/vite/ast-handler-extract.js.map +0 -1
  1173. package/dist/vite/expose-action-id.d.ts +0 -19
  1174. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1175. package/dist/vite/expose-action-id.js +0 -250
  1176. package/dist/vite/expose-action-id.js.map +0 -1
  1177. package/dist/vite/expose-id-utils.d.ts +0 -69
  1178. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1179. package/dist/vite/expose-id-utils.js +0 -289
  1180. package/dist/vite/expose-id-utils.js.map +0 -1
  1181. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1182. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1183. package/dist/vite/expose-internal-ids.js +0 -886
  1184. package/dist/vite/expose-internal-ids.js.map +0 -1
  1185. package/dist/vite/index.d.ts +0 -149
  1186. package/dist/vite/index.d.ts.map +0 -1
  1187. package/dist/vite/index.js.map +0 -1
  1188. package/dist/vite/index.named-routes.gen.ts +0 -103
  1189. package/dist/vite/package-resolution.d.ts +0 -43
  1190. package/dist/vite/package-resolution.d.ts.map +0 -1
  1191. package/dist/vite/package-resolution.js +0 -112
  1192. package/dist/vite/package-resolution.js.map +0 -1
  1193. package/dist/vite/virtual-entries.d.ts +0 -25
  1194. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1195. package/dist/vite/virtual-entries.js +0 -110
  1196. package/dist/vite/virtual-entries.js.map +0 -1
  1197. package/src/browser/action-response-classifier.ts +0 -99
  1198. package/src/browser/react/use-client-cache.ts +0 -58
  1199. package/src/browser/shallow.ts +0 -40
  1200. package/src/handles/index.ts +0 -7
  1201. package/src/network-error-thrower.tsx +0 -23
  1202. package/src/router/middleware-cookies.ts +0 -55
@@ -10,9 +10,24 @@ import {
10
10
  parsePattern,
11
11
  type ParsedSegment,
12
12
  } from "../router/pattern-matching.js";
13
+ import { buildRouteToStaticPrefix } from "./prefix-tree-utils.js";
14
+ import type { FullManifest } from "./generate-manifest.js";
13
15
 
14
16
  // -- Trie data structures (compact keys for JSON serialization) --
15
17
 
18
+ /**
19
+ * A response-type variant folded into a primary leaf's negotiate list. `pa` is
20
+ * the variant's own positional param-name array, carried so the runtime can
21
+ * re-key the matched params under the variant's names when it wins negotiation
22
+ * (the trie match extracts params under the PRIMARY leaf's pa). Omitted when the
23
+ * variant has no params; absent/identical pa means no re-key is needed.
24
+ */
25
+ export interface NegotiateVariant {
26
+ routeKey: string;
27
+ responseType: string;
28
+ pa?: string[];
29
+ }
30
+
16
31
  export interface TrieLeaf {
17
32
  /** Route name (e.g., "site.l1_500") */
18
33
  n: string;
@@ -20,8 +35,6 @@ export interface TrieLeaf {
20
35
  sp: string;
21
36
  /** Ancestry shortCodes from root to route [M0L0, M0L0L0, M0L0L0R499] */
22
37
  a: string[];
23
- /** Optional param names (absent params get empty string value) */
24
- op?: string[];
25
38
  /** Constraint validation: paramName -> allowed values */
26
39
  cv?: Record<string, string[]>;
27
40
  /** Ordered param names for this route (positional) */
@@ -35,7 +48,7 @@ export interface TrieLeaf {
35
48
  /** Response type for non-RSC routes (json, text, image, any) */
36
49
  rt?: string;
37
50
  /** Negotiate variants: response-type routes sharing this path */
38
- nv?: Array<{ routeKey: string; responseType: string }>;
51
+ nv?: NegotiateVariant[];
39
52
  /** RSC-first: RSC route was defined before response-type variants */
40
53
  rf?: true;
41
54
  }
@@ -60,6 +73,9 @@ export interface TrieNode {
60
73
  * @param routeAncestry - Map of route name to ancestry shortCodes
61
74
  * @param routeToStaticPrefix - Map of route name to its entry's staticPrefix
62
75
  * @param routeTrailingSlash - Optional map of route name to trailing slash mode
76
+ * @param prerenderRouteNames - Optional set of prerendered route names (sets leaf.pr)
77
+ * @param passthroughRouteNames - Optional set of passthrough route names (sets leaf.pt)
78
+ * @param responseTypeRoutes - Optional map of route name to response type (sets leaf.rt)
63
79
  */
64
80
  export function buildRouteTrie(
65
81
  routeManifest: Record<string, string>,
@@ -94,51 +110,124 @@ export function buildRouteTrie(
94
110
  });
95
111
  }
96
112
 
113
+ sortSuffixParams(root);
97
114
  return root;
98
115
  }
99
116
 
100
117
  /**
101
- * Insert a route into the trie, handling optional params by forking
102
- * the insertion path (one terminal without the param, one with).
118
+ * Sort every node's suffix-param map (`node.xp`) by descending suffix length so
119
+ * the matcher tries the most specific suffix first. Overlapping suffixes like
120
+ * `.min.js` and `.js` must resolve by specificity, not route declaration order:
121
+ * a request for `/app.min.js` should match `:file.min.js`, not `:file.js`.
122
+ *
123
+ * This started as a bug — `walkTrie` iterates `node.xp` in object order and
124
+ * returns the first suffix the segment ends with, so the winner depended on
125
+ * which route was declared first. Sorting at build time fixes it allocation-free
126
+ * on the match hot path: the serialized production trie preserves this key order
127
+ * through JSON.parse, so dev (per-request rebuild) and production match
128
+ * identically. Array.prototype.sort is stable (ES2019+), so equal-length
129
+ * suffixes keep their declaration order — the router's existing tiebreak.
130
+ */
131
+ function sortSuffixParams(node: TrieNode): void {
132
+ if (node.xp) {
133
+ const sorted: Record<string, { n: string; c: TrieNode }> = {};
134
+ for (const suffix of Object.keys(node.xp).sort(
135
+ (a, b) => b.length - a.length,
136
+ )) {
137
+ sorted[suffix] = node.xp[suffix];
138
+ }
139
+ node.xp = sorted;
140
+ for (const child of Object.values(node.xp)) {
141
+ sortSuffixParams(child.c);
142
+ }
143
+ }
144
+ if (node.s) {
145
+ for (const child of Object.values(node.s)) {
146
+ sortSuffixParams(child);
147
+ }
148
+ }
149
+ if (node.p) {
150
+ sortSuffixParams(node.p.c);
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Build a per-router trie from a generated manifest. This is the single
156
+ * construction path shared by build/discovery (discover-routers.ts, serialized
157
+ * into the production chunk) and the dev/HMR runtime rebuild
158
+ * (rsc/manifest-init.ts). Keeping one code path is what guarantees the dev
159
+ * runtime trie and the production serialized trie are byte-for-byte identical
160
+ * (modulo `leaf.a` ancestry, which embeds the mount index and is debug-only).
161
+ *
162
+ * Returns null when the manifest has no route ancestry (no routes), matching
163
+ * the prior guard at both call sites.
164
+ */
165
+ export function buildPerRouterTrie(manifest: FullManifest): TrieNode | null {
166
+ const ancestry = manifest._routeAncestry;
167
+ if (!ancestry || Object.keys(ancestry).length === 0) {
168
+ return null;
169
+ }
170
+
171
+ // Seed every route to the root static prefix (""), then override with each
172
+ // route's include() scope prefix from the prefix tree so the trie returns the
173
+ // correct `sp` for lazy-entry lookup in find-match.
174
+ const routeToStaticPrefix: Record<string, string> = {};
175
+ for (const name of Object.keys(manifest.routeManifest)) {
176
+ routeToStaticPrefix[name] = "";
177
+ }
178
+ if (manifest.prefixTree) {
179
+ buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
180
+ }
181
+
182
+ return buildRouteTrie(
183
+ manifest.routeManifest,
184
+ ancestry,
185
+ routeToStaticPrefix,
186
+ manifest.routeTrailingSlash,
187
+ manifest.prerenderRoutes ? new Set(manifest.prerenderRoutes) : undefined,
188
+ manifest.passthroughRoutes
189
+ ? new Set(manifest.passthroughRoutes)
190
+ : undefined,
191
+ manifest.responseTypeRoutes,
192
+ );
193
+ }
194
+
195
+ /**
196
+ * Insert a route into the trie. Optional params expand into two branches at
197
+ * registration time (skip-first, then present), so each terminal lives at the
198
+ * correct depth for its number of bound params and carries a branch-local
199
+ * `pa` listing only those names. The trie's single-slot `node.p` is reused
200
+ * across branches because matching ignores `node.p.n` — the leaf's `pa` is
201
+ * the source of truth for naming. Skip-first ordering lets `mergeLeaf`'s
202
+ * last-wins rule produce greedy-leftmost semantics for free at any shared
203
+ * terminal depth.
103
204
  */
104
205
  function insertRoute(
105
206
  node: TrieNode,
106
207
  segments: ParsedSegment[],
107
208
  index: number,
108
- leaf: Omit<TrieLeaf, "op" | "cv" | "pa">,
209
+ leaf: Omit<TrieLeaf, "cv" | "pa">,
109
210
  ): void {
110
- // Collect param names, optional param names, and constraints across all segments
111
- const paramNames: string[] = [];
112
- const optionalParams: string[] = [];
211
+ // cv (full constraint map) is route-level and identical on every terminal,
212
+ // so compute it once on the shared base.
113
213
  const constraints: Record<string, string[]> = {};
114
214
 
115
215
  for (const seg of segments) {
116
216
  if (seg.type === "param") {
117
- paramNames.push(seg.value);
118
- if (seg.optional) {
119
- optionalParams.push(seg.value);
120
- }
121
217
  if (seg.constraint) {
122
218
  constraints[seg.value] = seg.constraint;
123
219
  }
124
220
  }
125
221
  }
126
222
 
127
- const fullLeaf: TrieLeaf = {
223
+ const leafBase: Omit<TrieLeaf, "pa"> = {
128
224
  ...leaf,
129
- ...(paramNames.length > 0 ? { pa: paramNames } : {}),
130
- ...(optionalParams.length > 0 ? { op: optionalParams } : {}),
131
225
  ...(Object.keys(constraints).length > 0 ? { cv: constraints } : {}),
132
226
  };
133
227
 
134
- insertSegments(node, segments, index, fullLeaf);
228
+ insertSegments(node, segments, index, leafBase, []);
135
229
  }
136
230
 
137
- /**
138
- * Recursively insert segments into the trie.
139
- * For optional params, we add a terminal at the current node (param absent)
140
- * AND continue inserting into the param child (param present).
141
- */
142
231
  /**
143
232
  * Extract ancestry map from a built trie by visiting all leaf nodes.
144
233
  * Returns { routeName: ancestryShortCodes[] } for every route in the trie.
@@ -181,6 +270,19 @@ export function extractAncestryFromTrie(
181
270
  * appended to the nv (negotiate variants) array.
182
271
  * Multiple response types on the same path are supported (json + text + xml).
183
272
  */
273
+ /**
274
+ * Build a negotiate-variant entry from a leaf being folded into another leaf's
275
+ * nv list. Carries the variant's positional param names (`pa`) so the runtime
276
+ * can re-key matched params under the variant's names; omitted when the variant
277
+ * has none (the common case where primary and variant share the same names is a
278
+ * no-op re-key regardless).
279
+ */
280
+ function toVariant(leaf: TrieLeaf, responseType: string): NegotiateVariant {
281
+ return leaf.pa
282
+ ? { routeKey: leaf.n, responseType, pa: leaf.pa }
283
+ : { routeKey: leaf.n, responseType };
284
+ }
285
+
184
286
  function mergeLeaves(existing: TrieLeaf | undefined, leaf: TrieLeaf): TrieLeaf {
185
287
  if (!existing) return leaf;
186
288
 
@@ -188,7 +290,7 @@ function mergeLeaves(existing: TrieLeaf | undefined, leaf: TrieLeaf): TrieLeaf {
188
290
  // Both are response-type: preserve old as variant
189
291
  const merged = leaf;
190
292
  merged.nv = existing.nv || [];
191
- merged.nv.push({ routeKey: existing.n, responseType: existing.rt });
293
+ merged.nv.push(toVariant(existing, existing.rt));
192
294
  return merged;
193
295
  }
194
296
  if (leaf.rt && !existing.rt) {
@@ -198,7 +300,7 @@ function mergeLeaves(existing: TrieLeaf | undefined, leaf: TrieLeaf): TrieLeaf {
198
300
  existing.nv = [];
199
301
  existing.rf = true;
200
302
  }
201
- existing.nv.push({ routeKey: leaf.n, responseType: leaf.rt });
303
+ existing.nv.push(toVariant(leaf, leaf.rt));
202
304
  return existing;
203
305
  }
204
306
  if (!leaf.rt && existing.rt) {
@@ -206,7 +308,7 @@ function mergeLeaves(existing: TrieLeaf | undefined, leaf: TrieLeaf): TrieLeaf {
206
308
  // RSC was defined second (response-type was already the existing leaf)
207
309
  if (!leaf.nv) leaf.nv = [];
208
310
  if (existing.nv) leaf.nv.push(...existing.nv);
209
- leaf.nv.push({ routeKey: existing.n, responseType: existing.rt });
311
+ leaf.nv.push(toVariant(existing, existing.rt));
210
312
  // rf intentionally not set — RSC came after response-type variants
211
313
  return leaf;
212
314
  }
@@ -218,15 +320,25 @@ function mergeLeaf(node: TrieNode, leaf: TrieLeaf): void {
218
320
  node.r = mergeLeaves(node.r, leaf);
219
321
  }
220
322
 
323
+ function buildLeaf(
324
+ leafBase: Omit<TrieLeaf, "pa">,
325
+ paramNames: string[],
326
+ ): TrieLeaf {
327
+ return paramNames.length > 0
328
+ ? { ...leafBase, pa: [...paramNames] }
329
+ : { ...leafBase };
330
+ }
331
+
221
332
  function insertSegments(
222
333
  node: TrieNode,
223
334
  segments: ParsedSegment[],
224
335
  index: number,
225
- leaf: TrieLeaf,
336
+ leafBase: Omit<TrieLeaf, "pa">,
337
+ paramNames: string[],
226
338
  ): void {
227
- // Base case: all segments consumed, add terminal
339
+ // Base case: all segments consumed, add terminal with branch-local pa
228
340
  if (index >= segments.length) {
229
- mergeLeaf(node, leaf);
341
+ mergeLeaf(node, buildLeaf(leafBase, paramNames));
230
342
  return;
231
343
  }
232
344
 
@@ -235,12 +347,19 @@ function insertSegments(
235
347
  if (segment.type === "static") {
236
348
  if (!node.s) node.s = {};
237
349
  if (!node.s[segment.value]) node.s[segment.value] = {};
238
- insertSegments(node.s[segment.value], segments, index + 1, leaf);
350
+ insertSegments(
351
+ node.s[segment.value],
352
+ segments,
353
+ index + 1,
354
+ leafBase,
355
+ paramNames,
356
+ );
239
357
  } else if (segment.type === "param") {
240
358
  if (segment.optional) {
241
- // Optional param: add terminal at current node (param absent)
242
- mergeLeaf(node, leaf);
243
- // AND continue with param child (param present)
359
+ // SKIP first: continue at the same node without binding this name.
360
+ // Skip-first ordering means the present-branch's TAKE overwrites any
361
+ // shared terminal later, giving greedy-leftmost semantics.
362
+ insertSegments(node, segments, index + 1, leafBase, paramNames);
244
363
  }
245
364
  if (segment.suffix) {
246
365
  // Suffix param: keyed by suffix string (e.g., ".html")
@@ -248,16 +367,26 @@ function insertSegments(
248
367
  if (!node.xp[segment.suffix]) {
249
368
  node.xp[segment.suffix] = { n: segment.value, c: {} };
250
369
  }
251
- insertSegments(node.xp[segment.suffix].c, segments, index + 1, leaf);
370
+ insertSegments(node.xp[segment.suffix].c, segments, index + 1, leafBase, [
371
+ ...paramNames,
372
+ segment.value,
373
+ ]);
252
374
  } else {
253
375
  if (!node.p) {
254
376
  node.p = { n: segment.value, c: {} };
255
377
  }
256
- insertSegments(node.p.c, segments, index + 1, leaf);
378
+ insertSegments(node.p.c, segments, index + 1, leafBase, [
379
+ ...paramNames,
380
+ segment.value,
381
+ ]);
257
382
  }
258
383
  } else if (segment.type === "wildcard") {
259
- // Wildcard consumes all remaining segments
260
- const wildLeaf = { ...leaf, pn: "*" };
384
+ // Wildcard consumes all remaining segments. Carry any params bound before
385
+ // the wildcard in pa so they zip correctly against paramValues at match.
386
+ const wildLeaf: TrieLeaf & { pn: string } = {
387
+ ...buildLeaf(leafBase, paramNames),
388
+ pn: "*",
389
+ };
261
390
  const existing = node.w ? ({ ...node.w } as TrieLeaf) : undefined;
262
391
  const merged = mergeLeaves(existing, wildLeaf);
263
392
  node.w = merged as TrieLeaf & { pn: string };
@@ -15,19 +15,26 @@ import { extractParamsFromPattern } from "./param-extraction.js";
15
15
  * the pattern, name, params, and optional search schema from each.
16
16
  * Skips unnamed paths (no { name: "..." }).
17
17
  */
18
- export function extractRoutesFromSource(code: string): Array<{
18
+ export function extractRoutesFromSource(
19
+ code: string,
20
+ sourceFileArg?: ts.SourceFile,
21
+ ): Array<{
19
22
  name: string;
20
23
  pattern: string;
21
24
  params?: Record<string, string>;
22
25
  search?: Record<string, string>;
23
26
  }> {
24
- const sourceFile = ts.createSourceFile(
25
- "input.tsx",
26
- code,
27
- ts.ScriptTarget.Latest,
28
- true,
29
- ts.ScriptKind.TSX,
30
- );
27
+ // Reuse a caller-provided SourceFile (parsed once per scan) when given;
28
+ // otherwise parse the block here. The walk does not mutate the tree.
29
+ const sourceFile =
30
+ sourceFileArg ??
31
+ ts.createSourceFile(
32
+ "input.tsx",
33
+ code,
34
+ ts.ScriptTarget.Latest,
35
+ true,
36
+ ts.ScriptKind.TSX,
37
+ );
31
38
  const routes: Array<{
32
39
  name: string;
33
40
  pattern: string;
@@ -23,7 +23,7 @@ export function generatePerModuleTypesSource(
23
23
  const valid = routes.filter(({ name }) => {
24
24
  if (!name || /["'\\`\n\r]/.test(name)) {
25
25
  console.warn(
26
- `[rsc-router] Skipping route with invalid name: ${JSON.stringify(name)}`,
26
+ `[rango] Skipping route with invalid name: ${JSON.stringify(name)}`,
27
27
  );
28
28
  return false;
29
29
  }
@@ -42,7 +42,7 @@ export function generatePerModuleTypesSource(
42
42
  for (const { name, pattern, params, search } of valid) {
43
43
  if (deduped.has(name)) {
44
44
  console.warn(
45
- `[rsc-router] Duplicate route name "${name}" — keeping first definition`,
45
+ `[rango] Duplicate route name "${name}" — keeping first definition`,
46
46
  );
47
47
  continue;
48
48
  }
@@ -59,7 +59,7 @@ export function generatePerModuleTypesSource(
59
59
  }
60
60
 
61
61
  /**
62
- * Generates a .ts file that augments RSCRouter.GeneratedRouteMap
62
+ * Generates a .ts file that augments Rango.GeneratedRouteMap
63
63
  * with route name -> pattern mappings. This enables Handler<"routeName">
64
64
  * without circular references since the file has no imports from the app.
65
65
  */
@@ -88,14 +88,25 @@ export function generateRouteTypesSource(
88
88
  })
89
89
  .join("\n");
90
90
 
91
+ // The global augmentation extends an alias of `typeof NamedRoutes` rather than
92
+ // `Readonly<typeof NamedRoutes>`. `as const` already makes the members readonly,
93
+ // so the two are behaviour-identical, but `Readonly<>` is a homomorphic mapped
94
+ // type the compiler instantiates once per route at the augmentation site
95
+ // (~4 instantiations/route). An interface `extends` clause cannot name a bare
96
+ // `typeof` query, so the alias is what lets us drop the wrapper. Measured: ~35%
97
+ // fewer type instantiations on a 14k-route app; negligible (but free) on small.
91
98
  return `// Auto-generated by @rangojs/router - do not edit
92
99
  export const NamedRoutes = {
93
100
  ${objectBody}
94
101
  } as const;
95
102
 
103
+ // Aliased so the augmentation below does not pay a homomorphic mapped-type
104
+ // instantiation per route; \`as const\` already makes the members readonly.
105
+ type NamedRoutesShape = typeof NamedRoutes;
106
+
96
107
  declare global {
97
- namespace RSCRouter {
98
- interface GeneratedRouteMap extends Readonly<typeof NamedRoutes> {}
108
+ namespace Rango {
109
+ interface GeneratedRouteMap extends NamedRoutesShape {}
99
110
  }
100
111
  }
101
112
  `;
@@ -22,6 +22,61 @@ export interface UnresolvableInclude {
22
22
  detail: string;
23
23
  }
24
24
 
25
+ // ---------------------------------------------------------------------------
26
+ // Per-scan memo
27
+ // ---------------------------------------------------------------------------
28
+
29
+ /**
30
+ * Per-scan memo shared across the include-resolution recursion. Keys are
31
+ * absolute file paths; values cache the readFileSync result and the
32
+ * ts.SourceFile parsed from the FULL file source. A separate blockSources map
33
+ * caches parses of extracted sub-blocks (urls() call text), keyed by the exact
34
+ * block string, so the two extractors (routes + includes) for the same block
35
+ * share a single parse.
36
+ *
37
+ * The memo is purely a performance accelerator: same input -> same parse, so
38
+ * generated output is identical to the un-memoized path. A fresh memo is
39
+ * created per top-level scan entry, so stale file edits between scans are never
40
+ * served.
41
+ */
42
+ export interface ScanMemo {
43
+ files: Map<string, string>;
44
+ blockSourceFiles: Map<string, ts.SourceFile>;
45
+ }
46
+
47
+ export function createScanMemo(): ScanMemo {
48
+ return { files: new Map(), blockSourceFiles: new Map() };
49
+ }
50
+
51
+ function parseBlock(memo: ScanMemo | undefined, block: string): ts.SourceFile {
52
+ if (memo) {
53
+ const cached = memo.blockSourceFiles.get(block);
54
+ if (cached) return cached;
55
+ }
56
+ const sf = ts.createSourceFile(
57
+ "input.tsx",
58
+ block,
59
+ ts.ScriptTarget.Latest,
60
+ true,
61
+ ts.ScriptKind.TSX,
62
+ );
63
+ if (memo) memo.blockSourceFiles.set(block, sf);
64
+ return sf;
65
+ }
66
+
67
+ function readSourceMemoized(
68
+ memo: ScanMemo | undefined,
69
+ realPath: string,
70
+ ): string {
71
+ if (memo) {
72
+ const cached = memo.files.get(realPath);
73
+ if (cached !== undefined) return cached;
74
+ }
75
+ const source = readFileSync(realPath, "utf-8");
76
+ if (memo) memo.files.set(realPath, source);
77
+ return source;
78
+ }
79
+
25
80
  // ---------------------------------------------------------------------------
26
81
  // AST-based include() parsing
27
82
  // ---------------------------------------------------------------------------
@@ -47,7 +102,10 @@ function extractNamePrefixFromInclude(node: ts.CallExpression): string | null {
47
102
  * Returns both resolved includes (identifier second args) and unresolvable
48
103
  * includes (factory calls, etc.) with reasons.
49
104
  */
50
- export function extractIncludesWithDiagnostics(code: string): {
105
+ export function extractIncludesWithDiagnostics(
106
+ code: string,
107
+ sourceFileArg?: ts.SourceFile,
108
+ ): {
51
109
  resolved: Array<{
52
110
  pathPrefix: string;
53
111
  variableName: string;
@@ -60,13 +118,16 @@ export function extractIncludesWithDiagnostics(code: string): {
60
118
  detail: string;
61
119
  }>;
62
120
  } {
63
- const sourceFile = ts.createSourceFile(
64
- "input.tsx",
65
- code,
66
- ts.ScriptTarget.Latest,
67
- true,
68
- ts.ScriptKind.TSX,
69
- );
121
+ // Reuse a caller-provided SourceFile (parsed once per scan) when given.
122
+ const sourceFile =
123
+ sourceFileArg ??
124
+ ts.createSourceFile(
125
+ "input.tsx",
126
+ code,
127
+ ts.ScriptTarget.Latest,
128
+ true,
129
+ ts.ScriptKind.TSX,
130
+ );
70
131
  const resolved: Array<{
71
132
  pathPrefix: string;
72
133
  variableName: string;
@@ -140,7 +201,13 @@ export function resolveImportedVariable(
140
201
  code: string,
141
202
  localName: string,
142
203
  ): { specifier: string; exportedName: string } | null {
143
- const importRegex = /import\s*\{([^}]+)\}\s*from\s*["']([^"']+)["']/g;
204
+ // Allow an optional leading default binding before the named-import brace so
205
+ // a combined `import Foo, { bar } from "..."` is matched (the named members
206
+ // are the only part we resolve; the default binding is skipped). Without the
207
+ // optional `(?:[\w$]+\s*,\s*)?` segment, the `Foo, ` prefix breaks the match
208
+ // and a legitimate static named import surfaces as `unresolvable-import`.
209
+ const importRegex =
210
+ /import\s*(?:[\w$]+\s*,\s*)?\{([^}]+)\}\s*from\s*["']([^"']+)["']/g;
144
211
  let match;
145
212
 
146
213
  while ((match = importRegex.exec(code)) !== null) {
@@ -206,14 +273,18 @@ export function resolveImportPath(
206
273
  function extractUrlsBlockForVariable(
207
274
  code: string,
208
275
  varName: string,
276
+ sourceFileArg?: ts.SourceFile,
209
277
  ): string | null {
210
- const sourceFile = ts.createSourceFile(
211
- "input.tsx",
212
- code,
213
- ts.ScriptTarget.Latest,
214
- true,
215
- ts.ScriptKind.TSX,
216
- );
278
+ // Reuse a caller-provided full-source SourceFile (parsed once per scan).
279
+ const sourceFile =
280
+ sourceFileArg ??
281
+ ts.createSourceFile(
282
+ "input.tsx",
283
+ code,
284
+ ts.ScriptTarget.Latest,
285
+ true,
286
+ ts.ScriptKind.TSX,
287
+ );
217
288
  let result: string | null = null;
218
289
 
219
290
  function visit(node: ts.Node) {
@@ -249,11 +320,15 @@ function buildRouteMapFromBlock(
249
320
  visited: Set<string>,
250
321
  searchSchemasOut?: Record<string, Record<string, string>>,
251
322
  diagnosticsOut?: UnresolvableInclude[],
323
+ memo?: ScanMemo,
252
324
  ): Record<string, string> {
253
325
  const routeMap: Record<string, string> = {};
254
326
 
327
+ // Parse the block once and share the SourceFile between both extractors.
328
+ const blockSourceFile = parseBlock(memo, block);
329
+
255
330
  // Extract local path() routes
256
- const localRoutes = extractRoutesFromSource(block);
331
+ const localRoutes = extractRoutesFromSource(block, blockSourceFile);
257
332
  for (const { name, pattern, search } of localRoutes) {
258
333
  routeMap[name] = pattern;
259
334
  if (search && searchSchemasOut) {
@@ -262,8 +337,10 @@ function buildRouteMapFromBlock(
262
337
  }
263
338
 
264
339
  // Extract include() calls with diagnostics for unresolvable ones
265
- const { resolved: includes, unresolvable } =
266
- extractIncludesWithDiagnostics(block);
340
+ const { resolved: includes, unresolvable } = extractIncludesWithDiagnostics(
341
+ block,
342
+ blockSourceFile,
343
+ );
267
344
 
268
345
  if (diagnosticsOut) {
269
346
  for (const entry of unresolvable) {
@@ -298,12 +375,17 @@ function buildRouteMapFromBlock(
298
375
  imported.exportedName,
299
376
  visited,
300
377
  diagnosticsOut,
378
+ undefined,
379
+ memo,
301
380
  );
302
381
  } else {
303
- // Check if variable exists as a same-file urls() definition
382
+ // Check if variable exists as a same-file urls() definition. Share the
383
+ // full-source SourceFile parse via the memo (block === fullSource hits the
384
+ // same cache entry already used above).
304
385
  const sameFileBlock = extractUrlsBlockForVariable(
305
386
  fullSource,
306
387
  variableName,
388
+ parseBlock(memo, fullSource),
307
389
  );
308
390
  if (!sameFileBlock) {
309
391
  if (diagnosticsOut) {
@@ -322,6 +404,8 @@ function buildRouteMapFromBlock(
322
404
  variableName,
323
405
  visited,
324
406
  diagnosticsOut,
407
+ undefined,
408
+ memo,
325
409
  );
326
410
  }
327
411
 
@@ -357,35 +441,51 @@ function buildRouteMapFromBlock(
357
441
  /**
358
442
  * Build route map and search schemas together.
359
443
  * Internal helper used by the include resolution path.
444
+ *
445
+ * @param inlineBlock - Optional pre-extracted code block (e.g. from an inline
446
+ * builder function). When provided, variableName is ignored and the block
447
+ * is parsed directly for path()/include() calls.
448
+ * @param memo - Per-scan readFileSync/parse memo. A fresh one is created at the
449
+ * top-level entry and threaded through the recursion so each file is read and
450
+ * parsed once per scan. Behavior-preserving (same input -> same output).
360
451
  */
361
452
  export function buildCombinedRouteMapWithSearch(
362
453
  filePath: string,
363
454
  variableName?: string,
364
455
  visited?: Set<string>,
365
456
  diagnosticsOut?: UnresolvableInclude[],
457
+ inlineBlock?: string,
458
+ memo?: ScanMemo,
366
459
  ): {
367
460
  routes: Record<string, string>;
368
461
  searchSchemas: Record<string, Record<string, string>>;
369
462
  } {
370
463
  visited = visited ?? new Set();
464
+ memo = memo ?? createScanMemo();
371
465
  const realPath = resolve(filePath);
372
466
  const key = variableName ? `${realPath}:${variableName}` : realPath;
373
467
  if (visited.has(key)) {
374
- console.warn(`[rsc-router] Circular include detected, skipping: ${key}`);
468
+ console.warn(`[rango] Circular include detected, skipping: ${key}`);
375
469
  return { routes: {}, searchSchemas: {} };
376
470
  }
377
471
  visited.add(key);
378
472
 
379
473
  let source: string;
380
474
  try {
381
- source = readFileSync(realPath, "utf-8");
475
+ source = readSourceMemoized(memo, realPath);
382
476
  } catch {
383
477
  return { routes: {}, searchSchemas: {} };
384
478
  }
385
479
 
386
480
  let block: string;
387
- if (variableName) {
388
- const extracted = extractUrlsBlockForVariable(source, variableName);
481
+ if (inlineBlock) {
482
+ block = inlineBlock;
483
+ } else if (variableName) {
484
+ const extracted = extractUrlsBlockForVariable(
485
+ source,
486
+ variableName,
487
+ parseBlock(memo, source),
488
+ );
389
489
  if (!extracted) return { routes: {}, searchSchemas: {} };
390
490
  block = extracted;
391
491
  } else {
@@ -400,6 +500,7 @@ export function buildCombinedRouteMapWithSearch(
400
500
  visited,
401
501
  searchSchemas,
402
502
  diagnosticsOut,
503
+ memo,
403
504
  );
404
505
 
405
506
  // Remove from visited so sibling branches can include the same variable