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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1198) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +169 -31
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +2974 -1019
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +224 -32
  12. package/skills/caching/SKILL.md +279 -17
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +50 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +77 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +70 -5
  36. package/skills/router-setup/SKILL.md +29 -6
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +322 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +0 -65
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/connection-warmup.ts +134 -0
  66. package/src/browser/cookie-name.ts +140 -0
  67. package/src/browser/event-controller.ts +192 -150
  68. package/src/browser/history-state.ts +21 -0
  69. package/src/browser/index.ts +3 -3
  70. package/src/browser/invalidate-client-cache.ts +52 -0
  71. package/src/browser/navigation-bridge.ts +92 -18
  72. package/src/browser/navigation-client.ts +146 -69
  73. package/src/browser/navigation-store-handle.ts +38 -0
  74. package/src/browser/navigation-store.ts +33 -59
  75. package/src/browser/navigation-transaction.ts +9 -59
  76. package/src/browser/network-error-handler.ts +34 -7
  77. package/src/browser/partial-update.ts +131 -121
  78. package/src/browser/prefetch/cache.ts +205 -62
  79. package/src/browser/prefetch/fetch.ts +321 -37
  80. package/src/browser/prefetch/queue.ts +42 -8
  81. package/src/browser/rango-state.ts +158 -76
  82. package/src/browser/react/Link.tsx +60 -9
  83. package/src/browser/react/NavigationProvider.tsx +162 -118
  84. package/src/browser/react/ScrollRestoration.tsx +10 -6
  85. package/src/browser/react/filter-segment-order.ts +66 -7
  86. package/src/browser/react/index.ts +0 -48
  87. package/src/browser/react/location-state-shared.ts +178 -8
  88. package/src/browser/react/location-state.ts +39 -14
  89. package/src/browser/react/use-action.ts +6 -15
  90. package/src/browser/react/use-handle.ts +17 -14
  91. package/src/browser/react/use-href.tsx +8 -1
  92. package/src/browser/react/use-link-status.ts +33 -8
  93. package/src/browser/react/use-navigation.ts +32 -7
  94. package/src/browser/react/use-params.ts +20 -10
  95. package/src/browser/react/use-reverse.ts +106 -0
  96. package/src/browser/react/use-router.ts +25 -3
  97. package/src/browser/react/use-search-params.ts +0 -5
  98. package/src/browser/react/use-segments.ts +11 -21
  99. package/src/browser/response-adapter.ts +80 -5
  100. package/src/browser/rsc-router.tsx +91 -24
  101. package/src/browser/scroll-restoration.ts +30 -17
  102. package/src/browser/segment-reconciler.ts +36 -14
  103. package/src/browser/segment-structure-assert.ts +2 -2
  104. package/src/browser/server-action-bridge.ts +214 -55
  105. package/src/browser/types.ts +57 -8
  106. package/src/browser/validate-redirect-origin.ts +43 -16
  107. package/src/build/collect-fallback-refs.ts +107 -0
  108. package/src/build/generate-manifest.ts +60 -35
  109. package/src/build/generate-route-types.ts +2 -1
  110. package/src/build/index.ts +8 -2
  111. package/src/build/prefix-tree-utils.ts +123 -0
  112. package/src/build/route-trie.ts +165 -36
  113. package/src/build/route-types/ast-route-extraction.ts +15 -8
  114. package/src/build/route-types/codegen.ts +16 -5
  115. package/src/build/route-types/include-resolution.ts +117 -23
  116. package/src/build/route-types/param-extraction.ts +6 -3
  117. package/src/build/route-types/per-module-writer.ts +22 -6
  118. package/src/build/route-types/router-processing.ts +55 -28
  119. package/src/build/route-types/scan-filter.ts +1 -1
  120. package/src/build/route-types/source-scan.ts +216 -0
  121. package/src/build/runtime-discovery.ts +9 -20
  122. package/src/cache/cache-error.ts +104 -0
  123. package/src/cache/cache-key-utils.ts +29 -13
  124. package/src/cache/cache-policy.ts +108 -34
  125. package/src/cache/cache-runtime.ts +199 -37
  126. package/src/cache/cache-scope.ts +188 -82
  127. package/src/cache/cache-tag.ts +103 -0
  128. package/src/cache/cf/cf-base64.ts +33 -0
  129. package/src/cache/cf/cf-cache-constants.ts +127 -0
  130. package/src/cache/cf/cf-cache-store.ts +1989 -378
  131. package/src/cache/cf/cf-cache-types.ts +349 -0
  132. package/src/cache/cf/cf-kv-utils.ts +46 -0
  133. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  134. package/src/cache/cf/index.ts +6 -16
  135. package/src/cache/document-cache.ts +72 -20
  136. package/src/cache/handle-snapshot.ts +70 -0
  137. package/src/cache/index.ts +10 -20
  138. package/src/cache/memory-segment-store.ts +136 -37
  139. package/src/cache/profile-registry.ts +31 -31
  140. package/src/cache/read-through-swr.ts +41 -11
  141. package/src/cache/segment-codec.ts +9 -17
  142. package/src/cache/tag-invalidation.ts +230 -0
  143. package/src/cache/types.ts +37 -100
  144. package/src/client.rsc.tsx +44 -21
  145. package/src/client.tsx +118 -235
  146. package/src/cloudflare/index.ts +11 -0
  147. package/src/cloudflare/tracing.ts +109 -0
  148. package/src/component-utils.ts +19 -0
  149. package/src/components/DefaultDocument.tsx +8 -2
  150. package/src/context-var.ts +18 -6
  151. package/src/decode-loader-results.ts +52 -0
  152. package/src/defer.ts +196 -0
  153. package/src/deps/ssr.ts +0 -1
  154. package/src/encode-kv.ts +49 -0
  155. package/src/errors.ts +30 -4
  156. package/src/escape-script.ts +52 -0
  157. package/src/handle.ts +31 -23
  158. package/src/handles/MetaTags.tsx +62 -19
  159. package/src/handles/Scripts.tsx +183 -0
  160. package/src/handles/breadcrumbs.ts +37 -8
  161. package/src/handles/is-thenable.ts +19 -0
  162. package/src/handles/meta.ts +51 -40
  163. package/src/handles/script.ts +244 -0
  164. package/src/host/cookie-handler.ts +9 -60
  165. package/src/host/errors.ts +0 -24
  166. package/src/host/index.ts +8 -2
  167. package/src/host/pattern-matcher.ts +23 -52
  168. package/src/host/router.ts +107 -99
  169. package/src/host/testing.ts +40 -27
  170. package/src/host/types.ts +37 -4
  171. package/src/host/utils.ts +1 -1
  172. package/src/href-client.ts +137 -22
  173. package/src/index.rsc.ts +90 -11
  174. package/src/index.ts +129 -19
  175. package/src/internal-debug.ts +11 -10
  176. package/src/loader-store.ts +500 -0
  177. package/src/loader.rsc.ts +20 -13
  178. package/src/loader.ts +12 -11
  179. package/src/missing-id-error.ts +68 -0
  180. package/src/outlet-context.ts +1 -1
  181. package/src/outlet-provider.tsx +1 -5
  182. package/src/prerender/param-hash.ts +16 -16
  183. package/src/prerender/store.ts +32 -37
  184. package/src/prerender.ts +61 -6
  185. package/src/redirect-origin.ts +100 -0
  186. package/src/regex-escape.ts +8 -0
  187. package/src/render-error-thrower.tsx +20 -0
  188. package/src/response-utils.ts +62 -0
  189. package/src/reverse.ts +65 -36
  190. package/src/root-error-boundary.tsx +1 -19
  191. package/src/route-content-wrapper.tsx +7 -72
  192. package/src/route-definition/dsl-helpers.ts +418 -273
  193. package/src/route-definition/helper-factories.ts +29 -139
  194. package/src/route-definition/helpers-types.ts +103 -31
  195. package/src/route-definition/redirect.ts +44 -11
  196. package/src/route-definition/resolve-handler-use.ts +12 -0
  197. package/src/route-definition/use-item-types.ts +32 -0
  198. package/src/route-map-builder.ts +0 -16
  199. package/src/route-types.ts +26 -41
  200. package/src/router/basename.ts +14 -0
  201. package/src/router/content-negotiation.ts +73 -25
  202. package/src/router/error-handling.ts +45 -18
  203. package/src/router/find-match.ts +44 -23
  204. package/src/router/handler-context.ts +27 -39
  205. package/src/router/instrument.ts +350 -0
  206. package/src/router/intercept-resolution.ts +39 -20
  207. package/src/router/lazy-includes.ts +15 -52
  208. package/src/router/loader-resolution.ts +198 -92
  209. package/src/router/logging.ts +0 -6
  210. package/src/router/manifest.ts +40 -42
  211. package/src/router/match-api.ts +4 -23
  212. package/src/router/match-context.ts +0 -22
  213. package/src/router/match-handlers.ts +58 -58
  214. package/src/router/match-middleware/background-revalidation.ts +6 -7
  215. package/src/router/match-middleware/cache-lookup.ts +164 -285
  216. package/src/router/match-middleware/cache-store.ts +31 -34
  217. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  218. package/src/router/match-middleware/segment-resolution.ts +1 -23
  219. package/src/router/match-pipelines.ts +1 -42
  220. package/src/router/match-result.ts +87 -39
  221. package/src/router/metrics.ts +0 -34
  222. package/src/router/middleware-types.ts +7 -134
  223. package/src/router/middleware.ts +266 -166
  224. package/src/router/navigation-snapshot.ts +0 -51
  225. package/src/router/params-util.ts +23 -0
  226. package/src/router/pattern-matching.ts +132 -90
  227. package/src/router/prefetch-cache-ttl.ts +51 -0
  228. package/src/router/prerender-match.ts +104 -65
  229. package/src/router/preview-match.ts +3 -1
  230. package/src/router/request-classification.ts +28 -62
  231. package/src/router/revalidation.ts +123 -73
  232. package/src/router/route-snapshot.ts +0 -1
  233. package/src/router/router-context.ts +3 -28
  234. package/src/router/router-interfaces.ts +83 -35
  235. package/src/router/router-options.ts +136 -5
  236. package/src/router/router-registry.ts +2 -5
  237. package/src/router/segment-resolution/fresh.ts +98 -84
  238. package/src/router/segment-resolution/helpers.ts +86 -6
  239. package/src/router/segment-resolution/loader-cache.ts +62 -37
  240. package/src/router/segment-resolution/revalidation.ts +274 -319
  241. package/src/router/segment-resolution/static-store.ts +19 -5
  242. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  243. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  244. package/src/router/segment-resolution.ts +5 -1
  245. package/src/router/segment-wrappers.ts +6 -5
  246. package/src/router/state-cookie-name.ts +33 -0
  247. package/src/router/substitute-pattern-params.ts +56 -0
  248. package/src/router/telemetry-otel.ts +161 -199
  249. package/src/router/telemetry.ts +96 -19
  250. package/src/router/timeout.ts +0 -20
  251. package/src/router/tracing.ts +206 -0
  252. package/src/router/trie-matching.ts +163 -59
  253. package/src/router/types.ts +9 -63
  254. package/src/router/url-params.ts +44 -0
  255. package/src/router.ts +110 -55
  256. package/src/rsc/handler-context.ts +3 -2
  257. package/src/rsc/handler.ts +279 -224
  258. package/src/rsc/helpers.ts +168 -46
  259. package/src/rsc/index.ts +2 -5
  260. package/src/rsc/json-route-result.ts +38 -0
  261. package/src/rsc/loader-fetch.ts +127 -31
  262. package/src/rsc/manifest-init.ts +28 -41
  263. package/src/rsc/origin-guard.ts +39 -25
  264. package/src/rsc/progressive-enhancement.ts +73 -11
  265. package/src/rsc/redirect-guard.ts +99 -0
  266. package/src/rsc/response-cache-serve.ts +238 -0
  267. package/src/rsc/response-error.ts +79 -12
  268. package/src/rsc/response-route-handler.ts +99 -189
  269. package/src/rsc/rsc-rendering.ts +104 -76
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +262 -113
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +24 -5
  274. package/src/runtime-env.ts +18 -0
  275. package/src/search-params.ts +35 -30
  276. package/src/segment-content-promise.ts +67 -0
  277. package/src/segment-loader-promise.ts +149 -0
  278. package/src/segment-system.tsx +218 -202
  279. package/src/serialize.ts +243 -0
  280. package/src/server/context.ts +175 -53
  281. package/src/server/cookie-parse.ts +32 -0
  282. package/src/server/cookie-store.ts +80 -5
  283. package/src/server/handle-store.ts +40 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +258 -170
  286. package/src/ssr/index.tsx +21 -16
  287. package/src/static-handler.ts +10 -13
  288. package/src/testing/cache-status.ts +162 -0
  289. package/src/testing/collect-handle.ts +40 -0
  290. package/src/testing/dispatch.ts +701 -0
  291. package/src/testing/dom.entry.ts +22 -0
  292. package/src/testing/e2e/fixture.ts +188 -0
  293. package/src/testing/e2e/index.ts +128 -0
  294. package/src/testing/e2e/matchers.ts +35 -0
  295. package/src/testing/e2e/page-helpers.ts +272 -0
  296. package/src/testing/e2e/parity.ts +387 -0
  297. package/src/testing/e2e/server.ts +195 -0
  298. package/src/testing/flight-matchers.ts +97 -0
  299. package/src/testing/flight-normalize.ts +11 -0
  300. package/src/testing/flight-runtime.d.ts +57 -0
  301. package/src/testing/flight-tree.ts +682 -0
  302. package/src/testing/flight.entry.ts +52 -0
  303. package/src/testing/flight.ts +257 -0
  304. package/src/testing/generated-routes.ts +183 -0
  305. package/src/testing/index.ts +99 -0
  306. package/src/testing/internal/context.ts +371 -0
  307. package/src/testing/internal/flight-client-globals.ts +30 -0
  308. package/src/testing/internal/seed-vars.ts +54 -0
  309. package/src/testing/render-handler.ts +343 -0
  310. package/src/testing/render-route.tsx +581 -0
  311. package/src/testing/run-loader.ts +385 -0
  312. package/src/testing/run-middleware.ts +205 -0
  313. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  314. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  315. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  316. package/src/testing/vitest-stubs/version.ts +5 -0
  317. package/src/testing/vitest.ts +305 -0
  318. package/src/theme/ThemeProvider.tsx +20 -58
  319. package/src/theme/ThemeScript.tsx +7 -9
  320. package/src/theme/constants.ts +52 -13
  321. package/src/theme/index.ts +0 -7
  322. package/src/theme/theme-context.ts +1 -5
  323. package/src/theme/theme-script.ts +22 -21
  324. package/src/theme/use-theme.ts +0 -3
  325. package/src/types/boundaries.ts +0 -35
  326. package/src/types/cache-types.ts +13 -4
  327. package/src/types/error-types.ts +30 -90
  328. package/src/types/global-namespace.ts +54 -41
  329. package/src/types/handler-context.ts +109 -61
  330. package/src/types/index.ts +1 -10
  331. package/src/types/loader-types.ts +11 -9
  332. package/src/types/request-scope.ts +112 -0
  333. package/src/types/route-config.ts +6 -50
  334. package/src/types/route-entry.ts +11 -6
  335. package/src/types/segments.ts +36 -15
  336. package/src/urls/include-helper.ts +33 -70
  337. package/src/urls/index.ts +1 -11
  338. package/src/urls/path-helper-types.ts +49 -9
  339. package/src/urls/path-helper.ts +17 -106
  340. package/src/urls/pattern-types.ts +36 -19
  341. package/src/urls/response-types.ts +22 -29
  342. package/src/urls/type-extraction.ts +58 -139
  343. package/src/urls/urls-function.ts +1 -18
  344. package/src/use-loader.tsx +295 -107
  345. package/src/vite/debug.ts +185 -0
  346. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  347. package/src/vite/discovery/discover-routers.ts +126 -85
  348. package/src/vite/discovery/discovery-errors.ts +194 -0
  349. package/src/vite/discovery/gate-state.ts +171 -0
  350. package/src/vite/discovery/prerender-collection.ts +211 -142
  351. package/src/vite/discovery/route-types-writer.ts +40 -84
  352. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  353. package/src/vite/discovery/state.ts +44 -0
  354. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  355. package/src/vite/index.ts +2 -0
  356. package/src/vite/inject-client-debug.ts +36 -0
  357. package/src/vite/plugin-types.ts +126 -8
  358. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  359. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  360. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  362. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  363. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  364. package/src/vite/plugins/expose-action-id.ts +48 -95
  365. package/src/vite/plugins/expose-id-utils.ts +96 -51
  366. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  367. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  368. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  369. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  370. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  371. package/src/vite/plugins/performance-tracks.ts +26 -25
  372. package/src/vite/plugins/refresh-cmd.ts +1 -1
  373. package/src/vite/plugins/use-cache-transform.ts +73 -83
  374. package/src/vite/plugins/version-injector.ts +21 -25
  375. package/src/vite/plugins/version-plugin.ts +37 -40
  376. package/src/vite/plugins/virtual-entries.ts +13 -18
  377. package/src/vite/rango.ts +109 -118
  378. package/src/vite/router-discovery.ts +777 -119
  379. package/src/vite/utils/ast-handler-extract.ts +26 -35
  380. package/src/vite/utils/banner.ts +1 -1
  381. package/src/vite/utils/bundle-analysis.ts +10 -15
  382. package/src/vite/utils/client-chunks.ts +184 -0
  383. package/src/vite/utils/directive-prologue.ts +40 -0
  384. package/src/vite/utils/forward-user-plugins.ts +171 -0
  385. package/src/vite/utils/manifest-utils.ts +4 -59
  386. package/src/vite/utils/package-resolution.ts +20 -52
  387. package/src/vite/utils/prerender-utils.ts +67 -38
  388. package/src/vite/utils/shared-utils.ts +90 -41
  389. package/dist/__internal.d.ts +0 -83
  390. package/dist/__internal.d.ts.map +0 -1
  391. package/dist/__internal.js +0 -19
  392. package/dist/__internal.js.map +0 -1
  393. package/dist/__mocks__/version.d.ts +0 -7
  394. package/dist/__mocks__/version.d.ts.map +0 -1
  395. package/dist/__mocks__/version.js +0 -7
  396. package/dist/__mocks__/version.js.map +0 -1
  397. package/dist/__tests__/client-href.test.d.ts +0 -2
  398. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  399. package/dist/__tests__/client-href.test.js +0 -74
  400. package/dist/__tests__/client-href.test.js.map +0 -1
  401. package/dist/__tests__/component-utils.test.d.ts +0 -2
  402. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  403. package/dist/__tests__/component-utils.test.js +0 -51
  404. package/dist/__tests__/component-utils.test.js.map +0 -1
  405. package/dist/__tests__/event-controller.test.d.ts +0 -2
  406. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  407. package/dist/__tests__/event-controller.test.js +0 -538
  408. package/dist/__tests__/event-controller.test.js.map +0 -1
  409. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  410. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  411. package/dist/__tests__/helpers/route-tree.js +0 -374
  412. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  413. package/dist/__tests__/match-result.test.d.ts +0 -2
  414. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  415. package/dist/__tests__/match-result.test.js +0 -154
  416. package/dist/__tests__/match-result.test.js.map +0 -1
  417. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  418. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  419. package/dist/__tests__/navigation-store.test.js +0 -440
  420. package/dist/__tests__/navigation-store.test.js.map +0 -1
  421. package/dist/__tests__/partial-update.test.d.ts +0 -2
  422. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  423. package/dist/__tests__/partial-update.test.js +0 -1009
  424. package/dist/__tests__/partial-update.test.js.map +0 -1
  425. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  426. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  427. package/dist/__tests__/reverse-types.test.js +0 -656
  428. package/dist/__tests__/reverse-types.test.js.map +0 -1
  429. package/dist/__tests__/route-definition.test.d.ts +0 -2
  430. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  431. package/dist/__tests__/route-definition.test.js +0 -55
  432. package/dist/__tests__/route-definition.test.js.map +0 -1
  433. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  434. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  435. package/dist/__tests__/router-helpers.test.js +0 -377
  436. package/dist/__tests__/router-helpers.test.js.map +0 -1
  437. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  438. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  439. package/dist/__tests__/router-integration-2.test.js +0 -426
  440. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  441. package/dist/__tests__/router-integration.test.d.ts +0 -2
  442. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/router-integration.test.js +0 -1051
  444. package/dist/__tests__/router-integration.test.js.map +0 -1
  445. package/dist/__tests__/search-params.test.d.ts +0 -5
  446. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  447. package/dist/__tests__/search-params.test.js +0 -306
  448. package/dist/__tests__/search-params.test.js.map +0 -1
  449. package/dist/__tests__/segment-system.test.d.ts +0 -2
  450. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  451. package/dist/__tests__/segment-system.test.js +0 -627
  452. package/dist/__tests__/segment-system.test.js.map +0 -1
  453. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  454. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  455. package/dist/__tests__/static-handler-types.test.js +0 -63
  456. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  457. package/dist/__tests__/urls.test.d.ts +0 -2
  458. package/dist/__tests__/urls.test.d.ts.map +0 -1
  459. package/dist/__tests__/urls.test.js +0 -421
  460. package/dist/__tests__/urls.test.js.map +0 -1
  461. package/dist/__tests__/use-mount.test.d.ts +0 -2
  462. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  463. package/dist/__tests__/use-mount.test.js +0 -35
  464. package/dist/__tests__/use-mount.test.js.map +0 -1
  465. package/dist/bin/rango.d.ts +0 -2
  466. package/dist/bin/rango.d.ts.map +0 -1
  467. package/dist/bin/rango.js.map +0 -1
  468. package/dist/browser/event-controller.d.ts +0 -191
  469. package/dist/browser/event-controller.d.ts.map +0 -1
  470. package/dist/browser/event-controller.js +0 -559
  471. package/dist/browser/event-controller.js.map +0 -1
  472. package/dist/browser/index.d.ts +0 -2
  473. package/dist/browser/index.d.ts.map +0 -1
  474. package/dist/browser/index.js +0 -14
  475. package/dist/browser/index.js.map +0 -1
  476. package/dist/browser/link-interceptor.d.ts +0 -38
  477. package/dist/browser/link-interceptor.d.ts.map +0 -1
  478. package/dist/browser/link-interceptor.js +0 -99
  479. package/dist/browser/link-interceptor.js.map +0 -1
  480. package/dist/browser/logging.d.ts +0 -10
  481. package/dist/browser/logging.d.ts.map +0 -1
  482. package/dist/browser/logging.js +0 -29
  483. package/dist/browser/logging.js.map +0 -1
  484. package/dist/browser/lru-cache.d.ts +0 -17
  485. package/dist/browser/lru-cache.d.ts.map +0 -1
  486. package/dist/browser/lru-cache.js +0 -50
  487. package/dist/browser/lru-cache.js.map +0 -1
  488. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  489. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  490. package/dist/browser/merge-segment-loaders.js +0 -102
  491. package/dist/browser/merge-segment-loaders.js.map +0 -1
  492. package/dist/browser/navigation-bridge.d.ts +0 -102
  493. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  494. package/dist/browser/navigation-bridge.js +0 -708
  495. package/dist/browser/navigation-bridge.js.map +0 -1
  496. package/dist/browser/navigation-client.d.ts +0 -25
  497. package/dist/browser/navigation-client.d.ts.map +0 -1
  498. package/dist/browser/navigation-client.js +0 -157
  499. package/dist/browser/navigation-client.js.map +0 -1
  500. package/dist/browser/navigation-store.d.ts +0 -101
  501. package/dist/browser/navigation-store.d.ts.map +0 -1
  502. package/dist/browser/navigation-store.js +0 -625
  503. package/dist/browser/navigation-store.js.map +0 -1
  504. package/dist/browser/partial-update.d.ts +0 -75
  505. package/dist/browser/partial-update.d.ts.map +0 -1
  506. package/dist/browser/partial-update.js +0 -426
  507. package/dist/browser/partial-update.js.map +0 -1
  508. package/dist/browser/react/Link.d.ts +0 -86
  509. package/dist/browser/react/Link.d.ts.map +0 -1
  510. package/dist/browser/react/Link.js +0 -128
  511. package/dist/browser/react/Link.js.map +0 -1
  512. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  513. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  514. package/dist/browser/react/NavigationProvider.js +0 -216
  515. package/dist/browser/react/NavigationProvider.js.map +0 -1
  516. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  517. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  518. package/dist/browser/react/ScrollRestoration.js +0 -57
  519. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  520. package/dist/browser/react/context.d.ts +0 -46
  521. package/dist/browser/react/context.d.ts.map +0 -1
  522. package/dist/browser/react/context.js +0 -10
  523. package/dist/browser/react/context.js.map +0 -1
  524. package/dist/browser/react/index.d.ts +0 -11
  525. package/dist/browser/react/index.d.ts.map +0 -1
  526. package/dist/browser/react/index.js +0 -22
  527. package/dist/browser/react/index.js.map +0 -1
  528. package/dist/browser/react/location-state-shared.d.ts +0 -63
  529. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  530. package/dist/browser/react/location-state-shared.js +0 -81
  531. package/dist/browser/react/location-state-shared.js.map +0 -1
  532. package/dist/browser/react/location-state.d.ts +0 -23
  533. package/dist/browser/react/location-state.d.ts.map +0 -1
  534. package/dist/browser/react/location-state.js +0 -29
  535. package/dist/browser/react/location-state.js.map +0 -1
  536. package/dist/browser/react/mount-context.d.ts +0 -24
  537. package/dist/browser/react/mount-context.d.ts.map +0 -1
  538. package/dist/browser/react/mount-context.js +0 -24
  539. package/dist/browser/react/mount-context.js.map +0 -1
  540. package/dist/browser/react/use-action.d.ts +0 -64
  541. package/dist/browser/react/use-action.d.ts.map +0 -1
  542. package/dist/browser/react/use-action.js +0 -134
  543. package/dist/browser/react/use-action.js.map +0 -1
  544. package/dist/browser/react/use-client-cache.d.ts +0 -41
  545. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  546. package/dist/browser/react/use-client-cache.js +0 -39
  547. package/dist/browser/react/use-client-cache.js.map +0 -1
  548. package/dist/browser/react/use-handle.d.ts +0 -31
  549. package/dist/browser/react/use-handle.d.ts.map +0 -1
  550. package/dist/browser/react/use-handle.js +0 -144
  551. package/dist/browser/react/use-handle.js.map +0 -1
  552. package/dist/browser/react/use-href.d.ts +0 -33
  553. package/dist/browser/react/use-href.d.ts.map +0 -1
  554. package/dist/browser/react/use-href.js +0 -39
  555. package/dist/browser/react/use-href.js.map +0 -1
  556. package/dist/browser/react/use-link-status.d.ts +0 -37
  557. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  558. package/dist/browser/react/use-link-status.js +0 -99
  559. package/dist/browser/react/use-link-status.js.map +0 -1
  560. package/dist/browser/react/use-mount.d.ts +0 -25
  561. package/dist/browser/react/use-mount.d.ts.map +0 -1
  562. package/dist/browser/react/use-mount.js +0 -30
  563. package/dist/browser/react/use-mount.js.map +0 -1
  564. package/dist/browser/react/use-navigation.d.ts +0 -27
  565. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  566. package/dist/browser/react/use-navigation.js +0 -87
  567. package/dist/browser/react/use-navigation.js.map +0 -1
  568. package/dist/browser/react/use-segments.d.ts +0 -38
  569. package/dist/browser/react/use-segments.d.ts.map +0 -1
  570. package/dist/browser/react/use-segments.js +0 -130
  571. package/dist/browser/react/use-segments.js.map +0 -1
  572. package/dist/browser/request-controller.d.ts +0 -26
  573. package/dist/browser/request-controller.d.ts.map +0 -1
  574. package/dist/browser/request-controller.js +0 -147
  575. package/dist/browser/request-controller.js.map +0 -1
  576. package/dist/browser/rsc-router.d.ts +0 -129
  577. package/dist/browser/rsc-router.d.ts.map +0 -1
  578. package/dist/browser/rsc-router.js +0 -195
  579. package/dist/browser/rsc-router.js.map +0 -1
  580. package/dist/browser/scroll-restoration.d.ts +0 -93
  581. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  582. package/dist/browser/scroll-restoration.js +0 -321
  583. package/dist/browser/scroll-restoration.js.map +0 -1
  584. package/dist/browser/segment-structure-assert.d.ts +0 -17
  585. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  586. package/dist/browser/segment-structure-assert.js +0 -59
  587. package/dist/browser/segment-structure-assert.js.map +0 -1
  588. package/dist/browser/server-action-bridge.d.ts +0 -26
  589. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  590. package/dist/browser/server-action-bridge.js +0 -668
  591. package/dist/browser/server-action-bridge.js.map +0 -1
  592. package/dist/browser/shallow.d.ts +0 -12
  593. package/dist/browser/shallow.d.ts.map +0 -1
  594. package/dist/browser/shallow.js +0 -34
  595. package/dist/browser/shallow.js.map +0 -1
  596. package/dist/browser/types.d.ts +0 -369
  597. package/dist/browser/types.d.ts.map +0 -1
  598. package/dist/browser/types.js +0 -2
  599. package/dist/browser/types.js.map +0 -1
  600. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  601. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  602. package/dist/build/__tests__/generate-cli.test.js +0 -237
  603. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  604. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  605. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  606. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  607. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  608. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  609. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  610. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  611. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  613. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  614. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  615. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  616. package/dist/build/generate-manifest.d.ts +0 -81
  617. package/dist/build/generate-manifest.d.ts.map +0 -1
  618. package/dist/build/generate-manifest.js +0 -276
  619. package/dist/build/generate-manifest.js.map +0 -1
  620. package/dist/build/generate-route-types.d.ts +0 -115
  621. package/dist/build/generate-route-types.d.ts.map +0 -1
  622. package/dist/build/generate-route-types.js +0 -740
  623. package/dist/build/generate-route-types.js.map +0 -1
  624. package/dist/build/index.d.ts +0 -21
  625. package/dist/build/index.d.ts.map +0 -1
  626. package/dist/build/index.js +0 -21
  627. package/dist/build/index.js.map +0 -1
  628. package/dist/build/route-trie.d.ts +0 -71
  629. package/dist/build/route-trie.d.ts.map +0 -1
  630. package/dist/build/route-trie.js +0 -175
  631. package/dist/build/route-trie.js.map +0 -1
  632. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  633. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  634. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  635. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  636. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  637. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  638. package/dist/cache/__tests__/document-cache.test.js +0 -345
  639. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  641. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  642. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  643. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  644. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  645. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  646. package/dist/cache/__tests__/memory-store.test.js +0 -367
  647. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  648. package/dist/cache/cache-scope.d.ts +0 -102
  649. package/dist/cache/cache-scope.d.ts.map +0 -1
  650. package/dist/cache/cache-scope.js +0 -440
  651. package/dist/cache/cache-scope.js.map +0 -1
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  655. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  656. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  657. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  658. package/dist/cache/cf/cf-cache-store.js +0 -242
  659. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  660. package/dist/cache/cf/index.d.ts +0 -14
  661. package/dist/cache/cf/index.d.ts.map +0 -1
  662. package/dist/cache/cf/index.js +0 -17
  663. package/dist/cache/cf/index.js.map +0 -1
  664. package/dist/cache/document-cache.d.ts +0 -64
  665. package/dist/cache/document-cache.d.ts.map +0 -1
  666. package/dist/cache/document-cache.js +0 -228
  667. package/dist/cache/document-cache.js.map +0 -1
  668. package/dist/cache/index.d.ts +0 -19
  669. package/dist/cache/index.d.ts.map +0 -1
  670. package/dist/cache/index.js +0 -21
  671. package/dist/cache/index.js.map +0 -1
  672. package/dist/cache/memory-segment-store.d.ts +0 -110
  673. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  674. package/dist/cache/memory-segment-store.js +0 -117
  675. package/dist/cache/memory-segment-store.js.map +0 -1
  676. package/dist/cache/memory-store.d.ts +0 -41
  677. package/dist/cache/memory-store.d.ts.map +0 -1
  678. package/dist/cache/memory-store.js +0 -191
  679. package/dist/cache/memory-store.js.map +0 -1
  680. package/dist/cache/types.d.ts +0 -317
  681. package/dist/cache/types.d.ts.map +0 -1
  682. package/dist/cache/types.js +0 -12
  683. package/dist/cache/types.js.map +0 -1
  684. package/dist/client.d.ts +0 -248
  685. package/dist/client.d.ts.map +0 -1
  686. package/dist/client.js +0 -367
  687. package/dist/client.js.map +0 -1
  688. package/dist/client.rsc.d.ts +0 -26
  689. package/dist/client.rsc.d.ts.map +0 -1
  690. package/dist/client.rsc.js +0 -46
  691. package/dist/client.rsc.js.map +0 -1
  692. package/dist/component-utils.d.ts +0 -36
  693. package/dist/component-utils.d.ts.map +0 -1
  694. package/dist/component-utils.js +0 -61
  695. package/dist/component-utils.js.map +0 -1
  696. package/dist/components/DefaultDocument.d.ts +0 -13
  697. package/dist/components/DefaultDocument.d.ts.map +0 -1
  698. package/dist/components/DefaultDocument.js +0 -15
  699. package/dist/components/DefaultDocument.js.map +0 -1
  700. package/dist/debug.d.ts +0 -58
  701. package/dist/debug.d.ts.map +0 -1
  702. package/dist/debug.js +0 -157
  703. package/dist/debug.js.map +0 -1
  704. package/dist/default-error-boundary.d.ts +0 -11
  705. package/dist/default-error-boundary.d.ts.map +0 -1
  706. package/dist/default-error-boundary.js +0 -45
  707. package/dist/default-error-boundary.js.map +0 -1
  708. package/dist/deps/browser.d.ts +0 -2
  709. package/dist/deps/browser.d.ts.map +0 -1
  710. package/dist/deps/browser.js +0 -3
  711. package/dist/deps/browser.js.map +0 -1
  712. package/dist/deps/html-stream-client.d.ts +0 -2
  713. package/dist/deps/html-stream-client.d.ts.map +0 -1
  714. package/dist/deps/html-stream-client.js +0 -3
  715. package/dist/deps/html-stream-client.js.map +0 -1
  716. package/dist/deps/html-stream-server.d.ts +0 -2
  717. package/dist/deps/html-stream-server.d.ts.map +0 -1
  718. package/dist/deps/html-stream-server.js +0 -3
  719. package/dist/deps/html-stream-server.js.map +0 -1
  720. package/dist/deps/rsc.d.ts +0 -2
  721. package/dist/deps/rsc.d.ts.map +0 -1
  722. package/dist/deps/rsc.js +0 -4
  723. package/dist/deps/rsc.js.map +0 -1
  724. package/dist/deps/ssr.d.ts +0 -2
  725. package/dist/deps/ssr.d.ts.map +0 -1
  726. package/dist/deps/ssr.js +0 -3
  727. package/dist/deps/ssr.js.map +0 -1
  728. package/dist/errors.d.ts +0 -174
  729. package/dist/errors.d.ts.map +0 -1
  730. package/dist/errors.js +0 -241
  731. package/dist/errors.js.map +0 -1
  732. package/dist/handle.d.ts +0 -78
  733. package/dist/handle.d.ts.map +0 -1
  734. package/dist/handle.js +0 -82
  735. package/dist/handle.js.map +0 -1
  736. package/dist/handles/MetaTags.d.ts +0 -14
  737. package/dist/handles/MetaTags.d.ts.map +0 -1
  738. package/dist/handles/MetaTags.js +0 -136
  739. package/dist/handles/MetaTags.js.map +0 -1
  740. package/dist/handles/index.d.ts +0 -6
  741. package/dist/handles/index.d.ts.map +0 -1
  742. package/dist/handles/index.js +0 -6
  743. package/dist/handles/index.js.map +0 -1
  744. package/dist/handles/meta.d.ts +0 -39
  745. package/dist/handles/meta.d.ts.map +0 -1
  746. package/dist/handles/meta.js +0 -202
  747. package/dist/handles/meta.js.map +0 -1
  748. package/dist/host/__tests__/errors.test.d.ts +0 -2
  749. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  750. package/dist/host/__tests__/errors.test.js +0 -76
  751. package/dist/host/__tests__/errors.test.js.map +0 -1
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  753. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  754. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  755. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  757. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  758. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  759. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  760. package/dist/host/__tests__/router.test.d.ts +0 -2
  761. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  762. package/dist/host/__tests__/router.test.js +0 -241
  763. package/dist/host/__tests__/router.test.js.map +0 -1
  764. package/dist/host/__tests__/testing.test.d.ts +0 -2
  765. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  766. package/dist/host/__tests__/testing.test.js +0 -64
  767. package/dist/host/__tests__/testing.test.js.map +0 -1
  768. package/dist/host/__tests__/utils.test.d.ts +0 -2
  769. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  770. package/dist/host/__tests__/utils.test.js +0 -29
  771. package/dist/host/__tests__/utils.test.js.map +0 -1
  772. package/dist/host/cookie-handler.d.ts +0 -34
  773. package/dist/host/cookie-handler.d.ts.map +0 -1
  774. package/dist/host/cookie-handler.js +0 -124
  775. package/dist/host/cookie-handler.js.map +0 -1
  776. package/dist/host/errors.d.ts +0 -56
  777. package/dist/host/errors.d.ts.map +0 -1
  778. package/dist/host/errors.js +0 -79
  779. package/dist/host/errors.js.map +0 -1
  780. package/dist/host/index.d.ts +0 -29
  781. package/dist/host/index.d.ts.map +0 -1
  782. package/dist/host/index.js +0 -32
  783. package/dist/host/index.js.map +0 -1
  784. package/dist/host/pattern-matcher.d.ts +0 -36
  785. package/dist/host/pattern-matcher.d.ts.map +0 -1
  786. package/dist/host/pattern-matcher.js +0 -172
  787. package/dist/host/pattern-matcher.js.map +0 -1
  788. package/dist/host/router.d.ts +0 -26
  789. package/dist/host/router.d.ts.map +0 -1
  790. package/dist/host/router.js +0 -218
  791. package/dist/host/router.js.map +0 -1
  792. package/dist/host/testing.d.ts +0 -36
  793. package/dist/host/testing.d.ts.map +0 -1
  794. package/dist/host/testing.js +0 -55
  795. package/dist/host/testing.js.map +0 -1
  796. package/dist/host/types.d.ts +0 -115
  797. package/dist/host/types.d.ts.map +0 -1
  798. package/dist/host/types.js +0 -7
  799. package/dist/host/types.js.map +0 -1
  800. package/dist/host/utils.d.ts +0 -21
  801. package/dist/host/utils.d.ts.map +0 -1
  802. package/dist/host/utils.js +0 -23
  803. package/dist/host/utils.js.map +0 -1
  804. package/dist/href-client.d.ts +0 -131
  805. package/dist/href-client.d.ts.map +0 -1
  806. package/dist/href-client.js +0 -64
  807. package/dist/href-client.js.map +0 -1
  808. package/dist/href-context.d.ts +0 -29
  809. package/dist/href-context.d.ts.map +0 -1
  810. package/dist/href-context.js +0 -21
  811. package/dist/href-context.js.map +0 -1
  812. package/dist/index.d.ts +0 -73
  813. package/dist/index.d.ts.map +0 -1
  814. package/dist/index.js +0 -91
  815. package/dist/index.js.map +0 -1
  816. package/dist/index.rsc.d.ts +0 -32
  817. package/dist/index.rsc.d.ts.map +0 -1
  818. package/dist/index.rsc.js +0 -40
  819. package/dist/index.rsc.js.map +0 -1
  820. package/dist/internal-debug.d.ts +0 -2
  821. package/dist/internal-debug.d.ts.map +0 -1
  822. package/dist/internal-debug.js +0 -5
  823. package/dist/internal-debug.js.map +0 -1
  824. package/dist/loader.d.ts +0 -14
  825. package/dist/loader.d.ts.map +0 -1
  826. package/dist/loader.js +0 -20
  827. package/dist/loader.js.map +0 -1
  828. package/dist/loader.rsc.d.ts +0 -19
  829. package/dist/loader.rsc.d.ts.map +0 -1
  830. package/dist/loader.rsc.js +0 -99
  831. package/dist/loader.rsc.js.map +0 -1
  832. package/dist/network-error-thrower.d.ts +0 -17
  833. package/dist/network-error-thrower.d.ts.map +0 -1
  834. package/dist/network-error-thrower.js +0 -14
  835. package/dist/network-error-thrower.js.map +0 -1
  836. package/dist/outlet-context.d.ts +0 -13
  837. package/dist/outlet-context.d.ts.map +0 -1
  838. package/dist/outlet-context.js +0 -3
  839. package/dist/outlet-context.js.map +0 -1
  840. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  841. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  842. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  843. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  844. package/dist/prerender/param-hash.d.ts +0 -16
  845. package/dist/prerender/param-hash.d.ts.map +0 -1
  846. package/dist/prerender/param-hash.js +0 -36
  847. package/dist/prerender/param-hash.js.map +0 -1
  848. package/dist/prerender/store.d.ts +0 -38
  849. package/dist/prerender/store.d.ts.map +0 -1
  850. package/dist/prerender/store.js +0 -61
  851. package/dist/prerender/store.js.map +0 -1
  852. package/dist/prerender.d.ts +0 -66
  853. package/dist/prerender.d.ts.map +0 -1
  854. package/dist/prerender.js +0 -57
  855. package/dist/prerender.js.map +0 -1
  856. package/dist/reverse.d.ts +0 -196
  857. package/dist/reverse.d.ts.map +0 -1
  858. package/dist/reverse.js +0 -78
  859. package/dist/reverse.js.map +0 -1
  860. package/dist/root-error-boundary.d.ts +0 -33
  861. package/dist/root-error-boundary.d.ts.map +0 -1
  862. package/dist/root-error-boundary.js +0 -165
  863. package/dist/root-error-boundary.js.map +0 -1
  864. package/dist/route-content-wrapper.d.ts +0 -46
  865. package/dist/route-content-wrapper.d.ts.map +0 -1
  866. package/dist/route-content-wrapper.js +0 -77
  867. package/dist/route-content-wrapper.js.map +0 -1
  868. package/dist/route-definition.d.ts +0 -421
  869. package/dist/route-definition.d.ts.map +0 -1
  870. package/dist/route-definition.js +0 -868
  871. package/dist/route-definition.js.map +0 -1
  872. package/dist/route-map-builder.d.ts +0 -155
  873. package/dist/route-map-builder.d.ts.map +0 -1
  874. package/dist/route-map-builder.js +0 -237
  875. package/dist/route-map-builder.js.map +0 -1
  876. package/dist/route-types.d.ts +0 -165
  877. package/dist/route-types.d.ts.map +0 -1
  878. package/dist/route-types.js +0 -7
  879. package/dist/route-types.js.map +0 -1
  880. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  881. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  882. package/dist/router/__tests__/handler-context.test.js +0 -65
  883. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  885. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  886. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  887. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  888. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  889. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  890. package/dist/router/__tests__/match-context.test.js +0 -92
  891. package/dist/router/__tests__/match-context.test.js.map +0 -1
  892. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  893. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  894. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  895. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  896. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  897. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  898. package/dist/router/__tests__/match-result.test.js +0 -457
  899. package/dist/router/__tests__/match-result.test.js.map +0 -1
  900. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  901. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  902. package/dist/router/__tests__/on-error.test.js +0 -678
  903. package/dist/router/__tests__/on-error.test.js.map +0 -1
  904. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  905. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  906. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  907. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  911. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  912. package/dist/router/error-handling.d.ts +0 -77
  913. package/dist/router/error-handling.d.ts.map +0 -1
  914. package/dist/router/error-handling.js +0 -202
  915. package/dist/router/error-handling.js.map +0 -1
  916. package/dist/router/handler-context.d.ts +0 -20
  917. package/dist/router/handler-context.d.ts.map +0 -1
  918. package/dist/router/handler-context.js +0 -198
  919. package/dist/router/handler-context.js.map +0 -1
  920. package/dist/router/intercept-resolution.d.ts +0 -66
  921. package/dist/router/intercept-resolution.d.ts.map +0 -1
  922. package/dist/router/intercept-resolution.js +0 -246
  923. package/dist/router/intercept-resolution.js.map +0 -1
  924. package/dist/router/loader-resolution.d.ts +0 -64
  925. package/dist/router/loader-resolution.d.ts.map +0 -1
  926. package/dist/router/loader-resolution.js +0 -284
  927. package/dist/router/loader-resolution.js.map +0 -1
  928. package/dist/router/logging.d.ts +0 -15
  929. package/dist/router/logging.d.ts.map +0 -1
  930. package/dist/router/logging.js +0 -99
  931. package/dist/router/logging.js.map +0 -1
  932. package/dist/router/manifest.d.ts +0 -22
  933. package/dist/router/manifest.d.ts.map +0 -1
  934. package/dist/router/manifest.js +0 -181
  935. package/dist/router/manifest.js.map +0 -1
  936. package/dist/router/match-api.d.ts +0 -35
  937. package/dist/router/match-api.d.ts.map +0 -1
  938. package/dist/router/match-api.js +0 -406
  939. package/dist/router/match-api.js.map +0 -1
  940. package/dist/router/match-context.d.ts +0 -206
  941. package/dist/router/match-context.d.ts.map +0 -1
  942. package/dist/router/match-context.js +0 -17
  943. package/dist/router/match-context.js.map +0 -1
  944. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  945. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  946. package/dist/router/match-middleware/background-revalidation.js +0 -75
  947. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  948. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  949. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  950. package/dist/router/match-middleware/cache-lookup.js +0 -257
  951. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  952. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  953. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  954. package/dist/router/match-middleware/cache-store.js +0 -108
  955. package/dist/router/match-middleware/cache-store.js.map +0 -1
  956. package/dist/router/match-middleware/index.d.ts +0 -81
  957. package/dist/router/match-middleware/index.d.ts.map +0 -1
  958. package/dist/router/match-middleware/index.js +0 -80
  959. package/dist/router/match-middleware/index.js.map +0 -1
  960. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  961. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  962. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  963. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  964. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  965. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  966. package/dist/router/match-middleware/segment-resolution.js +0 -53
  967. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  968. package/dist/router/match-pipelines.d.ts +0 -147
  969. package/dist/router/match-pipelines.d.ts.map +0 -1
  970. package/dist/router/match-pipelines.js +0 -82
  971. package/dist/router/match-pipelines.js.map +0 -1
  972. package/dist/router/match-result.d.ts +0 -126
  973. package/dist/router/match-result.d.ts.map +0 -1
  974. package/dist/router/match-result.js +0 -93
  975. package/dist/router/match-result.js.map +0 -1
  976. package/dist/router/metrics.d.ts +0 -20
  977. package/dist/router/metrics.d.ts.map +0 -1
  978. package/dist/router/metrics.js +0 -47
  979. package/dist/router/metrics.js.map +0 -1
  980. package/dist/router/middleware.d.ts +0 -249
  981. package/dist/router/middleware.d.ts.map +0 -1
  982. package/dist/router/middleware.js +0 -434
  983. package/dist/router/middleware.js.map +0 -1
  984. package/dist/router/middleware.test.d.ts +0 -2
  985. package/dist/router/middleware.test.d.ts.map +0 -1
  986. package/dist/router/middleware.test.js +0 -816
  987. package/dist/router/middleware.test.js.map +0 -1
  988. package/dist/router/pattern-matching.d.ts +0 -149
  989. package/dist/router/pattern-matching.d.ts.map +0 -1
  990. package/dist/router/pattern-matching.js +0 -349
  991. package/dist/router/pattern-matching.js.map +0 -1
  992. package/dist/router/revalidation.d.ts +0 -44
  993. package/dist/router/revalidation.d.ts.map +0 -1
  994. package/dist/router/revalidation.js +0 -147
  995. package/dist/router/revalidation.js.map +0 -1
  996. package/dist/router/router-context.d.ts +0 -135
  997. package/dist/router/router-context.d.ts.map +0 -1
  998. package/dist/router/router-context.js +0 -36
  999. package/dist/router/router-context.js.map +0 -1
  1000. package/dist/router/segment-resolution.d.ts +0 -127
  1001. package/dist/router/segment-resolution.d.ts.map +0 -1
  1002. package/dist/router/segment-resolution.js +0 -919
  1003. package/dist/router/segment-resolution.js.map +0 -1
  1004. package/dist/router/trie-matching.d.ts +0 -40
  1005. package/dist/router/trie-matching.d.ts.map +0 -1
  1006. package/dist/router/trie-matching.js +0 -127
  1007. package/dist/router/trie-matching.js.map +0 -1
  1008. package/dist/router/types.d.ts +0 -136
  1009. package/dist/router/types.d.ts.map +0 -1
  1010. package/dist/router/types.js +0 -7
  1011. package/dist/router/types.js.map +0 -1
  1012. package/dist/router.d.ts +0 -753
  1013. package/dist/router.d.ts.map +0 -1
  1014. package/dist/router.gen.d.ts +0 -6
  1015. package/dist/router.gen.d.ts.map +0 -1
  1016. package/dist/router.gen.js +0 -6
  1017. package/dist/router.gen.js.map +0 -1
  1018. package/dist/router.js +0 -1304
  1019. package/dist/router.js.map +0 -1
  1020. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1021. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1022. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1023. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1024. package/dist/rsc/handler.d.ts +0 -45
  1025. package/dist/rsc/handler.d.ts.map +0 -1
  1026. package/dist/rsc/handler.js +0 -1172
  1027. package/dist/rsc/handler.js.map +0 -1
  1028. package/dist/rsc/helpers.d.ts +0 -16
  1029. package/dist/rsc/helpers.d.ts.map +0 -1
  1030. package/dist/rsc/helpers.js +0 -55
  1031. package/dist/rsc/helpers.js.map +0 -1
  1032. package/dist/rsc/index.d.ts +0 -22
  1033. package/dist/rsc/index.d.ts.map +0 -1
  1034. package/dist/rsc/index.js +0 -23
  1035. package/dist/rsc/index.js.map +0 -1
  1036. package/dist/rsc/nonce.d.ts +0 -9
  1037. package/dist/rsc/nonce.d.ts.map +0 -1
  1038. package/dist/rsc/nonce.js +0 -18
  1039. package/dist/rsc/nonce.js.map +0 -1
  1040. package/dist/rsc/types.d.ts +0 -206
  1041. package/dist/rsc/types.d.ts.map +0 -1
  1042. package/dist/rsc/types.js +0 -8
  1043. package/dist/rsc/types.js.map +0 -1
  1044. package/dist/search-params.d.ts +0 -103
  1045. package/dist/search-params.d.ts.map +0 -1
  1046. package/dist/search-params.js +0 -74
  1047. package/dist/search-params.js.map +0 -1
  1048. package/dist/segment-system.d.ts +0 -75
  1049. package/dist/segment-system.d.ts.map +0 -1
  1050. package/dist/segment-system.js +0 -336
  1051. package/dist/segment-system.js.map +0 -1
  1052. package/dist/server/context.d.ts +0 -245
  1053. package/dist/server/context.d.ts.map +0 -1
  1054. package/dist/server/context.js +0 -197
  1055. package/dist/server/context.js.map +0 -1
  1056. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1057. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1058. package/dist/server/fetchable-loader-store.js +0 -18
  1059. package/dist/server/fetchable-loader-store.js.map +0 -1
  1060. package/dist/server/handle-store.d.ts +0 -85
  1061. package/dist/server/handle-store.d.ts.map +0 -1
  1062. package/dist/server/handle-store.js +0 -142
  1063. package/dist/server/handle-store.js.map +0 -1
  1064. package/dist/server/loader-registry.d.ts +0 -55
  1065. package/dist/server/loader-registry.d.ts.map +0 -1
  1066. package/dist/server/loader-registry.js +0 -132
  1067. package/dist/server/loader-registry.js.map +0 -1
  1068. package/dist/server/request-context.d.ts +0 -226
  1069. package/dist/server/request-context.d.ts.map +0 -1
  1070. package/dist/server/request-context.js +0 -290
  1071. package/dist/server/request-context.js.map +0 -1
  1072. package/dist/server/root-layout.d.ts +0 -4
  1073. package/dist/server/root-layout.d.ts.map +0 -1
  1074. package/dist/server/root-layout.js +0 -5
  1075. package/dist/server/root-layout.js.map +0 -1
  1076. package/dist/server.d.ts +0 -15
  1077. package/dist/server.d.ts.map +0 -1
  1078. package/dist/server.js +0 -20
  1079. package/dist/server.js.map +0 -1
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1081. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1082. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1083. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1084. package/dist/ssr/index.d.ts +0 -98
  1085. package/dist/ssr/index.d.ts.map +0 -1
  1086. package/dist/ssr/index.js +0 -158
  1087. package/dist/ssr/index.js.map +0 -1
  1088. package/dist/static-handler.d.ts +0 -50
  1089. package/dist/static-handler.d.ts.map +0 -1
  1090. package/dist/static-handler.gen.d.ts +0 -5
  1091. package/dist/static-handler.gen.d.ts.map +0 -1
  1092. package/dist/static-handler.gen.js +0 -5
  1093. package/dist/static-handler.gen.js.map +0 -1
  1094. package/dist/static-handler.js +0 -29
  1095. package/dist/static-handler.js.map +0 -1
  1096. package/dist/theme/ThemeProvider.d.ts +0 -20
  1097. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1098. package/dist/theme/ThemeProvider.js +0 -240
  1099. package/dist/theme/ThemeProvider.js.map +0 -1
  1100. package/dist/theme/ThemeScript.d.ts +0 -48
  1101. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1102. package/dist/theme/ThemeScript.js +0 -13
  1103. package/dist/theme/ThemeScript.js.map +0 -1
  1104. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1105. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1106. package/dist/theme/__tests__/theme.test.js +0 -103
  1107. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1108. package/dist/theme/constants.d.ts +0 -29
  1109. package/dist/theme/constants.d.ts.map +0 -1
  1110. package/dist/theme/constants.js +0 -48
  1111. package/dist/theme/constants.js.map +0 -1
  1112. package/dist/theme/index.d.ts +0 -31
  1113. package/dist/theme/index.d.ts.map +0 -1
  1114. package/dist/theme/index.js +0 -36
  1115. package/dist/theme/index.js.map +0 -1
  1116. package/dist/theme/theme-context.d.ts +0 -40
  1117. package/dist/theme/theme-context.d.ts.map +0 -1
  1118. package/dist/theme/theme-context.js +0 -60
  1119. package/dist/theme/theme-context.js.map +0 -1
  1120. package/dist/theme/theme-script.d.ts +0 -27
  1121. package/dist/theme/theme-script.d.ts.map +0 -1
  1122. package/dist/theme/theme-script.js +0 -147
  1123. package/dist/theme/theme-script.js.map +0 -1
  1124. package/dist/theme/types.d.ts +0 -163
  1125. package/dist/theme/types.d.ts.map +0 -1
  1126. package/dist/theme/types.js +0 -11
  1127. package/dist/theme/types.js.map +0 -1
  1128. package/dist/theme/use-theme.d.ts +0 -12
  1129. package/dist/theme/use-theme.d.ts.map +0 -1
  1130. package/dist/theme/use-theme.js +0 -40
  1131. package/dist/theme/use-theme.js.map +0 -1
  1132. package/dist/types.d.ts +0 -1479
  1133. package/dist/types.d.ts.map +0 -1
  1134. package/dist/types.js +0 -10
  1135. package/dist/types.js.map +0 -1
  1136. package/dist/urls.d.ts +0 -441
  1137. package/dist/urls.d.ts.map +0 -1
  1138. package/dist/urls.gen.d.ts +0 -8
  1139. package/dist/urls.gen.d.ts.map +0 -1
  1140. package/dist/urls.gen.js +0 -8
  1141. package/dist/urls.gen.js.map +0 -1
  1142. package/dist/urls.js +0 -443
  1143. package/dist/urls.js.map +0 -1
  1144. package/dist/use-loader.d.ts +0 -127
  1145. package/dist/use-loader.d.ts.map +0 -1
  1146. package/dist/use-loader.js +0 -237
  1147. package/dist/use-loader.js.map +0 -1
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1149. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1151. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1153. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1154. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1155. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1157. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1159. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1161. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1162. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1163. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1164. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1165. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1166. package/dist/vite/ast-handler-extract.js +0 -249
  1167. package/dist/vite/ast-handler-extract.js.map +0 -1
  1168. package/dist/vite/expose-action-id.d.ts +0 -19
  1169. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1170. package/dist/vite/expose-action-id.js +0 -250
  1171. package/dist/vite/expose-action-id.js.map +0 -1
  1172. package/dist/vite/expose-id-utils.d.ts +0 -69
  1173. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1174. package/dist/vite/expose-id-utils.js +0 -289
  1175. package/dist/vite/expose-id-utils.js.map +0 -1
  1176. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1177. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1178. package/dist/vite/expose-internal-ids.js +0 -886
  1179. package/dist/vite/expose-internal-ids.js.map +0 -1
  1180. package/dist/vite/index.d.ts +0 -149
  1181. package/dist/vite/index.d.ts.map +0 -1
  1182. package/dist/vite/index.js.bak +0 -5448
  1183. package/dist/vite/index.js.map +0 -1
  1184. package/dist/vite/index.named-routes.gen.ts +0 -103
  1185. package/dist/vite/package-resolution.d.ts +0 -43
  1186. package/dist/vite/package-resolution.d.ts.map +0 -1
  1187. package/dist/vite/package-resolution.js +0 -112
  1188. package/dist/vite/package-resolution.js.map +0 -1
  1189. package/dist/vite/virtual-entries.d.ts +0 -25
  1190. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1191. package/dist/vite/virtual-entries.js +0 -110
  1192. package/dist/vite/virtual-entries.js.map +0 -1
  1193. package/src/browser/action-response-classifier.ts +0 -99
  1194. package/src/browser/react/use-client-cache.ts +0 -58
  1195. package/src/browser/shallow.ts +0 -40
  1196. package/src/handles/index.ts +0 -7
  1197. package/src/network-error-thrower.tsx +0 -23
  1198. package/src/router/middleware-cookies.ts +0 -55
@@ -2,7 +2,12 @@ import type { Plugin, ResolvedConfig } from "vite";
2
2
  import { parseAst } from "vite";
3
3
  import MagicString from "magic-string";
4
4
  import path from "node:path";
5
- import { normalizePath, hashId, detectImports } from "./expose-id-utils.js";
5
+ import {
6
+ normalizePath,
7
+ hashId,
8
+ makeStubId,
9
+ detectImports,
10
+ } from "./expose-id-utils.js";
6
11
  import {
7
12
  transformInlineHandlers,
8
13
  type VirtualHandlerEntry,
@@ -23,6 +28,8 @@ import {
23
28
  getImportedFnNames,
24
29
  collectCreateExportBindings,
25
30
  buildUnsupportedShapeWarning,
31
+ findUnsupportedCreateCallSites,
32
+ isExportOnlyFile,
26
33
  } from "./expose-ids/export-analysis.js";
27
34
  import {
28
35
  hasCreateLoaderImport,
@@ -33,9 +40,12 @@ import {
33
40
  transformHandles,
34
41
  transformLocationState,
35
42
  generateWholeFileStubs,
36
- generateExprStubs,
43
+ stubHandlerExprs,
37
44
  transformHandlerIds,
38
45
  } from "./expose-ids/handler-transform.js";
46
+ import { createRangoDebugger, createCounter, NS } from "../debug.js";
47
+
48
+ const debug = createRangoDebugger(NS.transform);
39
49
 
40
50
  // Re-exports consumed by other packages/plugins
41
51
  export { exposeRouterId } from "./expose-ids/router-transform.js";
@@ -80,10 +90,16 @@ export function exposeInternalIds(options?: { forceBuild?: boolean }): Plugin {
80
90
  // De-duplicate unsupported shape warnings across repeated transforms.
81
91
  const unsupportedShapeWarnings = new Set<string>();
82
92
 
93
+ const counter = createCounter(debug, "expose-internal-ids");
94
+
83
95
  return {
84
96
  name: "@rangojs/router:expose-internal-ids",
85
97
  enforce: "post",
86
98
 
99
+ buildEnd() {
100
+ counter?.flush();
101
+ },
102
+
87
103
  api: {
88
104
  prerenderHandlerModules,
89
105
  staticHandlerModules,
@@ -168,6 +184,16 @@ ${lazyImports.join(",\n")}
168
184
  async buildStart() {
169
185
  if (!isBuild) return;
170
186
 
187
+ // The loader pre-scan walks and reads the entire project, but the
188
+ // loaderRegistry it populates is consumed only by the RSC loader-manifest
189
+ // virtual module (and the transform hook already gates its registry writes
190
+ // with isRscEnv). plugin-rsc runs ~5 build passes (rsc-scan, ssr-scan, rsc,
191
+ // client, ssr) over this single shared plugin instance; without this gate
192
+ // the full-tree I/O ran on every pass with no consumer on the non-RSC
193
+ // ones. Skip only when the environment is known and not RSC, so an
194
+ // unavailable environment still falls through (no empty registry).
195
+ if (this.environment && this.environment.name !== "rsc") return;
196
+
171
197
  const fs = await import("node:fs/promises");
172
198
 
173
199
  const SKIP_DIRS = new Set(["node_modules", "dist", "build", "coverage"]);
@@ -226,344 +252,554 @@ ${lazyImports.join(",\n")}
226
252
  transform(code, id) {
227
253
  if (id.includes("/node_modules/")) return;
228
254
 
229
- const filePath = normalizePath(path.relative(projectRoot, id));
230
- const isRscEnv = this.environment?.name === "rsc";
231
-
232
- // Warn if named-routes.gen is imported in a client component.
233
- // NamedRoutes is server-only data and would bloat the client bundle.
234
- if (
235
- id.includes(".named-routes.gen.") &&
236
- !isRscEnv &&
237
- this.environment?.name === "client"
238
- ) {
239
- this.warn(
240
- `\n` +
241
- `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n` +
242
- `!! !!\n` +
243
- `!! WARNING: NamedRoutes imported in a CLIENT component! !!\n` +
244
- `!! !!\n` +
245
- `!! File: ${filePath.padEnd(53)}!!\n` +
246
- `!! !!\n` +
247
- `!! NamedRoutes contains your entire route structure — every !!\n` +
248
- `!! route name and URL pattern in your application. Shipping !!\n` +
249
- `!! this to the browser exposes your full routing topology to !!\n` +
250
- `!! the client, which is a security concern (internal/admin !!\n` +
251
- `!! routes, API endpoints, hidden paths become visible). !!\n` +
252
- `!! !!\n` +
253
- `!! It also bloats the client bundle — this map contains all !!\n` +
254
- `!! named routes in your application. !!\n` +
255
- `!! !!\n` +
256
- `!! Fix: remove the import or move it to a server component. !!\n` +
257
- `!! !!\n` +
258
- `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n`,
259
- );
260
- }
261
-
262
- // Fast exit: if the file doesn't import from @rangojs/router at all,
263
- // skip all create* analysis and transforms.
264
- if (!code.includes("@rangojs/router")) return;
265
-
266
- // Detect all relevant imports in one pass
267
- const has = detectImports(code);
268
-
269
- // Quick bail-out: also check for raw create* identifiers.
270
- // This is safe even with aliases (e.g., `import { createLoader as cl }`)
271
- // because the import statement itself always contains the canonical name
272
- // "createLoader", so code.includes("createLoader") will still match.
273
- const hasLoaderCode = has.loader && code.includes("createLoader");
274
- const hasHandleCode = has.handle && code.includes("createHandle");
275
- const hasLocationStateCode =
276
- has.locationState && code.includes("createLocationState");
277
- const hasPrerenderHandlerCode =
278
- has.prerenderHandler && code.includes("Prerender");
279
- const hasStaticHandlerCode = has.staticHandler && code.includes("Static");
280
- if (
281
- !hasLoaderCode &&
282
- !hasHandleCode &&
283
- !hasLocationStateCode &&
284
- !hasPrerenderHandlerCode &&
285
- !hasStaticHandlerCode
286
- ) {
287
- return;
288
- }
289
-
290
- // Per-invocation caches to avoid redundant AST parsing.
291
- // getImportedFnNames is cached by canonical name (imports never change).
292
- // collectCreateExportBindings is cached by fnNames key; the cache is
293
- // cleared when `code` changes (e.g., after inline handler extraction).
294
- const _fnNamesCache = new Map<string, string[]>();
295
- const _bindingsCache = new Map<string, CreateExportBinding[]>();
296
- let _cachedAst: any;
297
- let _astParseFailed = false;
298
- let _astCodeRef = code;
299
-
300
- const getFnNames = (canonicalName: string): string[] => {
301
- let result = _fnNamesCache.get(canonicalName);
302
- if (!result) {
303
- result = getImportedFnNames(code, canonicalName);
304
- _fnNamesCache.set(canonicalName, result);
305
- }
306
- return result;
307
- };
308
-
309
- // Lazy AST parse: parsed once and shared across all
310
- // collectCreateExportBindings calls for the same code string.
311
- const lazyAst = (): any | undefined => {
312
- if (code !== _astCodeRef) {
313
- _cachedAst = undefined;
314
- _astParseFailed = false;
315
- _astCodeRef = code;
316
- }
317
- if (_cachedAst !== undefined || _astParseFailed) return _cachedAst;
318
- try {
319
- _cachedAst = parseAst(code, { jsx: true });
320
- } catch {
321
- _astParseFailed = true;
322
- }
323
- return _cachedAst;
324
- };
325
-
326
- const getBindings = (
327
- currentCode: string,
328
- fnNames: string[],
329
- ): CreateExportBinding[] => {
330
- const key = fnNames.join("\0");
331
- let result = _bindingsCache.get(key);
332
- if (!result) {
333
- result = collectCreateExportBindings(currentCode, fnNames, lazyAst());
334
- _bindingsCache.set(key, result);
255
+ const __t0 = counter ? performance.now() : 0;
256
+ try {
257
+ const filePath = normalizePath(path.relative(projectRoot, id));
258
+ const isRscEnv = this.environment?.name === "rsc";
259
+
260
+ // Warn if named-routes.gen is imported in a client component.
261
+ // NamedRoutes is server-only data and would bloat the client bundle.
262
+ if (
263
+ id.includes(".named-routes.gen.") &&
264
+ !isRscEnv &&
265
+ this.environment?.name === "client"
266
+ ) {
267
+ this.warn(
268
+ `\n` +
269
+ `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n` +
270
+ `!! !!\n` +
271
+ `!! WARNING: NamedRoutes imported in a CLIENT component! !!\n` +
272
+ `!! !!\n` +
273
+ `!! File: ${filePath.padEnd(53)}!!\n` +
274
+ `!! !!\n` +
275
+ `!! NamedRoutes contains your entire route structure every !!\n` +
276
+ `!! route name and URL pattern in your application. Shipping !!\n` +
277
+ `!! this to the browser exposes your full routing topology to !!\n` +
278
+ `!! the client, which is a security concern (internal/admin !!\n` +
279
+ `!! routes, API endpoints, hidden paths become visible). !!\n` +
280
+ `!! !!\n` +
281
+ `!! It also bloats the client bundle — this map contains all !!\n` +
282
+ `!! named routes in your application. !!\n` +
283
+ `!! !!\n` +
284
+ `!! Fix: remove the import or move it to a server component. !!\n` +
285
+ `!! !!\n` +
286
+ `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n`,
287
+ );
335
288
  }
336
- return result;
337
- };
338
-
339
- // Warn on create* declaration shapes that are currently unsupported by
340
- // non-AST transforms (loader/handle/locationState only).
341
- for (const cfg of STRICT_CREATE_CONFIGS) {
342
- const hasCode =
343
- cfg.fnName === "createLoader"
344
- ? hasLoaderCode
345
- : cfg.fnName === "createHandle"
346
- ? hasHandleCode
347
- : hasLocationStateCode;
348
- if (!hasCode) continue;
349
-
350
- const fnNames = getFnNames(cfg.fnName);
351
- const totalCalls = countCreateCallsForNames(code, fnNames);
352
- const supportedBindings = getBindings(code, fnNames).length;
353
- if (totalCalls <= supportedBindings) continue;
354
-
355
- const warnKey = `${id}::${cfg.fnName}`;
356
- if (unsupportedShapeWarnings.has(warnKey)) continue;
357
- unsupportedShapeWarnings.add(warnKey);
358
- this.warn(buildUnsupportedShapeWarning(filePath, cfg.fnName));
359
- }
360
289
 
361
- // --- Loader: track for manifest (RSC env only) ---
362
- if (hasLoaderCode && isRscEnv) {
363
- const fnNames = getFnNames("createLoader");
364
- const bindings = getBindings(code, fnNames);
365
- for (const binding of bindings) {
366
- const exportName = binding.exportNames[0];
367
- const hashedId = hashId(filePath, exportName);
368
- loaderRegistry.set(hashedId, {
369
- filePath,
370
- exportName,
371
- });
290
+ // Fast exit: if the file doesn't import from @rangojs/router at all,
291
+ // skip all create* analysis and transforms.
292
+ if (!code.includes("@rangojs/router")) return;
293
+
294
+ // Detect all relevant imports in one pass
295
+ const has = detectImports(code);
296
+
297
+ // Quick bail-out: also check for raw create* identifiers.
298
+ // This is safe even with aliases (e.g., `import { createLoader as cl }`)
299
+ // because the import statement itself always contains the canonical name
300
+ // "createLoader", so code.includes("createLoader") will still match.
301
+ const hasLoaderCode = has.loader && code.includes("createLoader");
302
+ const hasHandleCode = has.handle && code.includes("createHandle");
303
+ const hasLocationStateCode =
304
+ has.locationState && code.includes("createLocationState");
305
+ const hasPrerenderHandlerCode =
306
+ has.prerenderHandler && code.includes("Prerender");
307
+ const hasStaticHandlerCode =
308
+ has.staticHandler && code.includes("Static");
309
+ if (
310
+ !hasLoaderCode &&
311
+ !hasHandleCode &&
312
+ !hasLocationStateCode &&
313
+ !hasPrerenderHandlerCode &&
314
+ !hasStaticHandlerCode
315
+ ) {
316
+ return;
372
317
  }
373
- }
374
-
375
- // --- Loader: client stubs for non-RSC environments ---
376
- if (hasLoaderCode && !isRscEnv) {
377
- const fnNames = getFnNames("createLoader");
378
- const bindings = getBindings(code, fnNames);
379
- const stubResult = generateClientLoaderStubs(
380
- bindings,
381
- code,
382
- filePath,
383
- isBuild,
384
- );
385
- if (stubResult) return stubResult;
386
- }
387
-
388
- // --- PrerenderHandler: non-RSC stub replacement ---
389
- if (hasPrerenderHandlerCode && !isRscEnv) {
390
- const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
391
- const bindings = getBindings(code, fnNames);
392
- const wholeFile = generateWholeFileStubs(
393
- PRERENDER_CONFIG,
394
- bindings,
395
- code,
396
- filePath,
397
- isBuild,
398
- );
399
- if (wholeFile) return wholeFile;
400
-
401
- const exprStubs = generateExprStubs(
402
- PRERENDER_CONFIG,
403
- bindings,
404
- code,
405
- filePath,
406
- id,
407
- isBuild,
408
- );
409
- if (exprStubs) return exprStubs;
410
- }
411
318
 
412
- // --- PrerenderHandler: RSC build module tracking ---
413
- if (hasPrerenderHandlerCode && isRscEnv && isBuild) {
414
- const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
415
- const exportNames = getBindings(code, fnNames).map(
416
- (b) => b.exportNames[0],
417
- );
418
- if (exportNames.length > 0) {
419
- prerenderHandlerModules.set(id, exportNames);
420
- }
421
- }
319
+ // Per-invocation caches to avoid redundant AST parsing.
320
+ // getImportedFnNames is cached by canonical name (imports never change).
321
+ // collectCreateExportBindings is cached by fnNames key; the cache is
322
+ // cleared when `code` changes (e.g., after inline handler extraction).
323
+ const _fnNamesCache = new Map<string, string[]>();
324
+ const _bindingsCache = new Map<string, CreateExportBinding[]>();
325
+ let _cachedAst: any;
326
+ let _astParseFailed = false;
327
+ let _astCodeRef = code;
328
+
329
+ const getFnNames = (canonicalName: string): string[] => {
330
+ let result = _fnNamesCache.get(canonicalName);
331
+ if (!result) {
332
+ result = getImportedFnNames(code, canonicalName);
333
+ _fnNamesCache.set(canonicalName, result);
334
+ }
335
+ return result;
336
+ };
337
+
338
+ // Lazy AST parse: parsed once and shared across all
339
+ // collectCreateExportBindings calls for the same code string.
340
+ const lazyAst = (): any | undefined => {
341
+ if (code !== _astCodeRef) {
342
+ _cachedAst = undefined;
343
+ _astParseFailed = false;
344
+ _astCodeRef = code;
345
+ }
346
+ if (_cachedAst !== undefined || _astParseFailed) return _cachedAst;
347
+ try {
348
+ _cachedAst = parseAst(code, { lang: "tsx" });
349
+ } catch {
350
+ _astParseFailed = true;
351
+ }
352
+ return _cachedAst;
353
+ };
354
+
355
+ const getBindings = (
356
+ currentCode: string,
357
+ fnNames: string[],
358
+ ): CreateExportBinding[] => {
359
+ const key = fnNames.join("\0");
360
+ let result = _bindingsCache.get(key);
361
+ if (!result) {
362
+ result = collectCreateExportBindings(
363
+ currentCode,
364
+ fnNames,
365
+ lazyAst(),
366
+ );
367
+ _bindingsCache.set(key, result);
368
+ }
369
+ return result;
370
+ };
371
+
372
+ // Warn on create* declaration shapes that are currently unsupported by
373
+ // non-AST transforms (loader/handle/locationState only).
374
+ for (const cfg of STRICT_CREATE_CONFIGS) {
375
+ const hasCode =
376
+ cfg.fnName === "createLoader"
377
+ ? hasLoaderCode
378
+ : cfg.fnName === "createHandle"
379
+ ? hasHandleCode
380
+ : hasLocationStateCode;
381
+ if (!hasCode) continue;
422
382
 
423
- // --- Inline handler extraction to virtual modules ---
424
- // Runs before stubs/tracking so inline calls become imports, then
425
- // the existing regex fast path handles both the original file's
426
- // export const patterns and the virtual modules independently.
427
- //
428
- // Cheap pre-check: count total fnName( occurrences vs export const
429
- // patterns. If they match, every call is a named export and the
430
- // regex fast path handles them -- skip the AST parse entirely.
431
- //
432
- // Each iteration creates a fresh MagicString so that AST positions
433
- // from findHandlerCalls always match the string they were parsed from.
434
- let changed = false;
435
-
436
- const handlerConfigs = [
437
- hasStaticHandlerCode && STATIC_CONFIG,
438
- hasPrerenderHandlerCode && PRERENDER_CONFIG,
439
- ]
440
- .filter((c): c is HandlerTransformConfig => !!c)
441
- .map((cfg) => {
442
383
  const fnNames = getFnNames(cfg.fnName);
443
- return { cfg, fnNames };
444
- });
445
-
446
- for (const { cfg, fnNames } of handlerConfigs) {
447
- const totalCalls = countCreateCallsForNames(code, fnNames);
448
- const supportedBindings = getBindings(code, fnNames).length;
449
-
450
- if (totalCalls > supportedBindings) {
451
- const iterS = new MagicString(code);
452
- const result = transformInlineHandlers(
453
- cfg.fnName,
454
- VIRTUAL_HANDLER_PREFIX,
455
- iterS,
384
+ // Locate the real (comment/string-free) create* calls not covered by
385
+ // a supported, id-injectable export shape. Empty means every call is
386
+ // fine — in particular, a create*() token in a comment or string no
387
+ // longer trips a spurious warning.
388
+ const sites = findUnsupportedCreateCallSites(
456
389
  code,
457
- filePath,
458
- virtualHandlers,
459
- id,
460
- parseAst,
390
+ fnNames,
391
+ getBindings(code, fnNames),
461
392
  );
462
- if (result) {
463
- changed = true;
464
- code = iterS.toString();
465
- _bindingsCache.clear();
466
- }
467
- }
468
- }
393
+ if (sites.length === 0) continue;
469
394
 
470
- // --- StaticHandler: non-RSC stub replacement ---
471
- if (hasStaticHandlerCode && !isRscEnv) {
472
- const fnNames = getFnNames(STATIC_CONFIG.fnName);
473
- const bindings = getBindings(code, fnNames);
474
- const wholeFile = generateWholeFileStubs(
475
- STATIC_CONFIG,
476
- bindings,
477
- code,
478
- filePath,
479
- isBuild,
480
- );
481
- if (wholeFile) return wholeFile;
482
-
483
- const exprStubs = generateExprStubs(
484
- STATIC_CONFIG,
485
- bindings,
486
- code,
487
- filePath,
488
- id,
489
- isBuild,
490
- );
491
- if (exprStubs) return exprStubs;
492
- }
395
+ const warnKey = `${id}::${cfg.fnName}`;
396
+ if (unsupportedShapeWarnings.has(warnKey)) continue;
397
+ unsupportedShapeWarnings.add(warnKey);
398
+ this.warn(buildUnsupportedShapeWarning(filePath, cfg.fnName, sites));
399
+ }
493
400
 
494
- // --- StaticHandler: RSC build module tracking ---
495
- if (hasStaticHandlerCode && isRscEnv && isBuild) {
496
- const fnNames = getFnNames(STATIC_CONFIG.fnName);
497
- const exportNames = getBindings(code, fnNames).map(
498
- (b) => b.exportNames[0],
499
- );
500
- if (exportNames.length > 0) {
501
- staticHandlerModules.set(id, exportNames);
401
+ // --- Loader: track for manifest (RSC env only) ---
402
+ if (hasLoaderCode && isRscEnv) {
403
+ const fnNames = getFnNames("createLoader");
404
+ const bindings = getBindings(code, fnNames);
405
+ for (const binding of bindings) {
406
+ const exportName = binding.exportNames[0];
407
+ const hashedId = hashId(filePath, exportName);
408
+ loaderRegistry.set(hashedId, {
409
+ filePath,
410
+ exportName,
411
+ });
412
+ }
502
413
  }
503
- }
504
414
 
505
- // --- Unified MagicString transforms ---
506
- // Single pipeline for all downstream transforms (loaders, handles,
507
- // locationState, handler IDs). Uses the post-extraction code so
508
- // positions are always consistent.
509
- const s = new MagicString(code);
510
-
511
- if (hasLoaderCode) {
512
- const fnNames = getFnNames("createLoader");
513
- changed =
514
- transformLoaders(getBindings(code, fnNames), s, filePath, isBuild) ||
515
- changed;
516
- }
517
- if (hasHandleCode) {
518
- const fnNames = getFnNames("createHandle");
519
- changed =
520
- transformHandles(
521
- getBindings(code, fnNames),
522
- s,
415
+ // --- Loader: client stubs for non-RSC environments ---
416
+ if (hasLoaderCode && !isRscEnv) {
417
+ const fnNames = getFnNames("createLoader");
418
+ const bindings = getBindings(code, fnNames);
419
+ const stubResult = generateClientLoaderStubs(
420
+ bindings,
523
421
  code,
524
422
  filePath,
525
423
  isBuild,
526
- ) || changed;
527
- }
528
- if (hasLocationStateCode) {
529
- const fnNames = getFnNames("createLocationState");
530
- changed =
531
- transformLocationState(
532
- getBindings(code, fnNames),
533
- s,
534
- filePath,
535
- isBuild,
536
- ) || changed;
537
- }
538
- if (hasPrerenderHandlerCode && isRscEnv) {
539
- const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
540
- changed =
541
- transformHandlerIds(
424
+ );
425
+ if (stubResult) return stubResult;
426
+ }
427
+
428
+ // --- PrerenderHandler: non-RSC whole-file stub replacement ---
429
+ // When ALL exports are Prerender() calls, replace the entire file.
430
+ // Mixed-export files are handled in the unified pipeline below.
431
+ if (hasPrerenderHandlerCode && !isRscEnv) {
432
+ const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
433
+ const bindings = getBindings(code, fnNames);
434
+ const wholeFile = generateWholeFileStubs(
542
435
  PRERENDER_CONFIG,
543
- getBindings(code, fnNames),
544
- s,
436
+ bindings,
437
+ code,
545
438
  filePath,
546
439
  isBuild,
547
- ) || changed;
548
- }
549
- if (hasStaticHandlerCode && isRscEnv) {
550
- const fnNames = getFnNames(STATIC_CONFIG.fnName);
551
- changed =
552
- transformHandlerIds(
440
+ );
441
+ if (wholeFile) return wholeFile;
442
+ }
443
+
444
+ // --- Inline handler extraction to virtual modules ---
445
+ // Runs before stubs/tracking so inline calls become imports, then
446
+ // the existing regex fast path handles both the original file's
447
+ // export const patterns and the virtual modules independently.
448
+ //
449
+ // Cheap pre-check: count total fnName( occurrences vs export const
450
+ // patterns. If they match, every call is a named export and the
451
+ // regex fast path handles them -- skip the AST parse entirely.
452
+ //
453
+ // Each iteration creates a fresh MagicString so that AST positions
454
+ // from findHandlerCalls always match the string they were parsed from.
455
+ let changed = false;
456
+
457
+ const handlerConfigs = [
458
+ hasStaticHandlerCode && STATIC_CONFIG,
459
+ hasPrerenderHandlerCode && PRERENDER_CONFIG,
460
+ ]
461
+ .filter((c): c is HandlerTransformConfig => !!c)
462
+ .map((cfg) => {
463
+ const fnNames = getFnNames(cfg.fnName);
464
+ return { cfg, fnNames };
465
+ });
466
+
467
+ for (const { cfg, fnNames } of handlerConfigs) {
468
+ const totalCalls = countCreateCallsForNames(code, fnNames);
469
+ const supportedBindings = getBindings(code, fnNames).length;
470
+
471
+ if (totalCalls > supportedBindings) {
472
+ const iterS = new MagicString(code);
473
+ const result = transformInlineHandlers(
474
+ cfg.fnName,
475
+ VIRTUAL_HANDLER_PREFIX,
476
+ iterS,
477
+ code,
478
+ filePath,
479
+ virtualHandlers,
480
+ id,
481
+ parseAst,
482
+ );
483
+ if (result) {
484
+ changed = true;
485
+ code = iterS.toString();
486
+ _bindingsCache.clear();
487
+ }
488
+ }
489
+ }
490
+
491
+ // --- StaticHandler: non-RSC whole-file stub replacement ---
492
+ // When ALL exports are Static() calls, replace the entire file.
493
+ if (hasStaticHandlerCode && !isRscEnv) {
494
+ const fnNames = getFnNames(STATIC_CONFIG.fnName);
495
+ const bindings = getBindings(code, fnNames);
496
+ const wholeFile = generateWholeFileStubs(
553
497
  STATIC_CONFIG,
554
- getBindings(code, fnNames),
555
- s,
498
+ bindings,
499
+ code,
556
500
  filePath,
557
501
  isBuild,
558
- ) || changed;
559
- }
502
+ );
503
+ if (wholeFile) return wholeFile;
504
+ }
560
505
 
561
- if (!changed) return;
506
+ // --- Mixed-type whole-file stub replacement (non-RSC) ---
507
+ // When the individual whole-file checks above fail (each only checks
508
+ // one type), the file has mixed exports (e.g. createLoader + Prerender).
509
+ // Gather ALL stub-safe bindings and check if they cover every export.
510
+ // If yes, replace the entire file with stubs — this strips server-only
511
+ // imports (node:fs, DB clients, etc.) that would crash in the browser.
512
+ //
513
+ // Only applies when the file contains Prerender/Static (the handler
514
+ // types that bring server-only code). Files with only loaders, handles,
515
+ // or locationState are handled correctly by the unified pipeline below.
516
+ //
517
+ // Loader, Prerender, and Static exports become plain { __brand, $$id }
518
+ // stubs. createHandle and createLocationState need their create*()
519
+ // functions to execute (collect registration / __rsc_ls_key), so their
520
+ // call expressions are preserved with only a @rangojs/router import.
521
+ // This strips all server-only imports while keeping the correct
522
+ // client contract for every export type.
523
+ if (!isRscEnv && (hasPrerenderHandlerCode || hasStaticHandlerCode)) {
524
+ const prerenderFnNames = hasPrerenderHandlerCode
525
+ ? getFnNames(PRERENDER_CONFIG.fnName)
526
+ : [];
527
+ const staticFnNames = hasStaticHandlerCode
528
+ ? getFnNames(STATIC_CONFIG.fnName)
529
+ : [];
530
+ const loaderFnNames = hasLoaderCode ? getFnNames("createLoader") : [];
531
+ const handleFnNames = hasHandleCode ? getFnNames("createHandle") : [];
532
+ const lsFnNames = hasLocationStateCode
533
+ ? getFnNames("createLocationState")
534
+ : [];
535
+
536
+ // Collect ALL recognized bindings to check export coverage
537
+ const allBindings: CreateExportBinding[] = [];
538
+ for (const fnNames of [
539
+ prerenderFnNames,
540
+ staticFnNames,
541
+ loaderFnNames,
542
+ handleFnNames,
543
+ lsFnNames,
544
+ ]) {
545
+ if (fnNames.length > 0) {
546
+ allBindings.push(...getBindings(code, fnNames));
547
+ }
548
+ }
562
549
 
563
- return {
564
- code: s.toString(),
565
- map: s.generateMap({ source: id, includeContent: true }),
566
- };
550
+ // Check if preserved createHandle/createLocationState calls
551
+ // reference non-exported locals (e.g. helper functions, constants).
552
+ // If so, the whole-file stub would strip those locals, breaking
553
+ // the call. Fall through to the unified pipeline instead.
554
+ let canStubWholeFile =
555
+ allBindings.length > 0 && isExportOnlyFile(code, allBindings);
556
+
557
+ if (
558
+ canStubWholeFile &&
559
+ (handleFnNames.length > 0 || lsFnNames.length > 0)
560
+ ) {
561
+ const exportedLocals = new Set(allBindings.map((b) => b.localName));
562
+ // Collect bindings that would be stripped by whole-file replacement:
563
+ // local declarations and imported bindings from non-@rangojs/router
564
+ // modules. This is a regex-based heuristic — it intentionally skips
565
+ // edge cases (class decls, destructured bindings, combined
566
+ // default+named imports) since those rarely appear in route files.
567
+ const strippedBindings: string[] = [];
568
+
569
+ // Skip React Fast Refresh temporaries (_c, _c2, ...) which are
570
+ // injected by @vitejs/plugin-react in the client environment and
571
+ // would falsely trigger the bailout.
572
+ const localDeclPattern =
573
+ /(?:^|;|\n)\s*(?:const|let|var|function)\s+(\w+)/g;
574
+ let declMatch: RegExpExecArray | null;
575
+ while ((declMatch = localDeclPattern.exec(code)) !== null) {
576
+ const name = declMatch[1];
577
+ if (!exportedLocals.has(name) && !/^_c\d*$/.test(name)) {
578
+ strippedBindings.push(name);
579
+ }
580
+ }
581
+
582
+ const importPattern =
583
+ /import\s*\{([^}]*)\}\s*from\s*["'](?!@rangojs\/router)[^"']*["']/g;
584
+ let importMatch: RegExpExecArray | null;
585
+ while ((importMatch = importPattern.exec(code)) !== null) {
586
+ for (const spec of importMatch[1].split(",")) {
587
+ const m = spec
588
+ .trim()
589
+ .match(/^[A-Za-z_$][\w$]*(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);
590
+ if (m)
591
+ strippedBindings.push(m[1] || m[0].trim().split(/\s/)[0]);
592
+ }
593
+ }
594
+ const defaultImportPattern =
595
+ /import\s+([A-Za-z_$][\w$]*)\s+from\s*["'](?!@rangojs\/router)[^"']*["']/g;
596
+ while ((importMatch = defaultImportPattern.exec(code)) !== null) {
597
+ strippedBindings.push(importMatch[1]);
598
+ }
599
+ const nsImportPattern =
600
+ /import\s+\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*["'](?!@rangojs\/router)[^"']*["']/g;
601
+ while ((importMatch = nsImportPattern.exec(code)) !== null) {
602
+ strippedBindings.push(importMatch[1]);
603
+ }
604
+
605
+ if (strippedBindings.length > 0) {
606
+ const preservedBindings = allBindings.filter((b) => {
607
+ const fc = code.slice(b.callExprStart, b.callOpenParenPos + 1);
608
+ return (
609
+ handleFnNames.some((n) => fc.includes(n)) ||
610
+ lsFnNames.some((n) => fc.includes(n))
611
+ );
612
+ });
613
+ const strippedRe = new RegExp(
614
+ `\\b(?:${strippedBindings.join("|")})\\b`,
615
+ );
616
+ canStubWholeFile = !preservedBindings.some((b) => {
617
+ const expr = code.slice(
618
+ b.callExprStart,
619
+ b.callCloseParenPos + 1,
620
+ );
621
+ return strippedRe.test(expr);
622
+ });
623
+ }
624
+ }
625
+
626
+ if (canStubWholeFile) {
627
+ const lines: string[] = [];
628
+ const neededImports: string[] = [];
629
+ if (handleFnNames.length > 0) neededImports.push("createHandle");
630
+ if (lsFnNames.length > 0) neededImports.push("createLocationState");
631
+ if (neededImports.length > 0) {
632
+ lines.push(
633
+ `import { ${neededImports.join(", ")} } from "@rangojs/router";`,
634
+ );
635
+ }
636
+
637
+ for (const binding of allBindings) {
638
+ const fnCall = code.slice(
639
+ binding.callExprStart,
640
+ binding.callOpenParenPos + 1,
641
+ );
642
+ const isHandle = handleFnNames.some((n) => fnCall.includes(n));
643
+ const isLocationState = lsFnNames.some((n) => fnCall.includes(n));
644
+
645
+ // Aliases share the primary name's ID (matches server transforms).
646
+ const primaryName = binding.exportNames[0];
647
+ const stubId = makeStubId(filePath, primaryName, isBuild);
648
+
649
+ if (isHandle || isLocationState) {
650
+ // Rewrite alias to canonical name since the stub file only
651
+ // imports canonical names from @rangojs/router.
652
+ // Strip React Fast Refresh `_c = ` wrappers from args
653
+ // (e.g. `_c = (segments) => ...` → `(segments) => ...`)
654
+ const rawArgs = code
655
+ .slice(
656
+ binding.callOpenParenPos + 1,
657
+ binding.callCloseParenPos,
658
+ )
659
+ .replace(/\b_c\d*\s*=\s*/g, "");
660
+ const canonicalName = isHandle
661
+ ? "createHandle"
662
+ : "createLocationState";
663
+ const activeFnNames = isHandle ? handleFnNames : lsFnNames;
664
+
665
+ // Reconstruct the function name (handling aliases + generics)
666
+ let rawCallee = code.slice(
667
+ binding.callExprStart,
668
+ binding.callOpenParenPos,
669
+ );
670
+ for (const alias of activeFnNames) {
671
+ if (alias !== canonicalName && rawCallee.startsWith(alias)) {
672
+ rawCallee = canonicalName + rawCallee.slice(alias.length);
673
+ break;
674
+ }
675
+ }
676
+
677
+ if (isHandle) {
678
+ // createHandle checks __injectedId DURING the call, so $$id
679
+ // must be a parameter, not a post-call property assignment.
680
+ const idParam =
681
+ binding.argCount === 0
682
+ ? `undefined, "${stubId}"`
683
+ : `, "${stubId}"`;
684
+ lines.push(
685
+ `export const ${primaryName} = ${rawCallee}(${rawArgs}${idParam});`,
686
+ );
687
+ lines.push(`${primaryName}.$$id = "${stubId}";`);
688
+ } else {
689
+ lines.push(
690
+ `export const ${primaryName} = ${rawCallee}(${rawArgs});`,
691
+ );
692
+ lines.push(
693
+ `${primaryName}.__rsc_ls_key = "__rsc_ls_${stubId}";`,
694
+ );
695
+ }
696
+ for (const name of binding.exportNames.slice(1)) {
697
+ lines.push(`export const ${name} = ${primaryName};`);
698
+ }
699
+ } else {
700
+ let brand = "loader";
701
+ if (prerenderFnNames.some((n) => fnCall.includes(n))) {
702
+ brand = PRERENDER_CONFIG.brand;
703
+ } else if (staticFnNames.some((n) => fnCall.includes(n))) {
704
+ brand = STATIC_CONFIG.brand;
705
+ }
706
+ lines.push(
707
+ `export const ${primaryName} = { __brand: "${brand}", $$id: "${stubId}" };`,
708
+ );
709
+ for (const name of binding.exportNames.slice(1)) {
710
+ lines.push(`export const ${name} = ${primaryName};`);
711
+ }
712
+ }
713
+ }
714
+
715
+ return { code: lines.join("\n") + "\n", map: null };
716
+ }
717
+ }
718
+
719
+ // RSC build module tracking (prerender + static), consumed via the
720
+ // plugin API for prerender freezing. Export-binding sets are invariant
721
+ // across the inline-extraction loop, so tracking both here is equivalent
722
+ // to the pre-extraction prerender tracking this replaces.
723
+ if (isRscEnv && isBuild) {
724
+ const trackTypes: Array<
725
+ [boolean, HandlerTransformConfig, Map<string, string[]>]
726
+ > = [
727
+ [
728
+ hasPrerenderHandlerCode,
729
+ PRERENDER_CONFIG,
730
+ prerenderHandlerModules,
731
+ ],
732
+ [hasStaticHandlerCode, STATIC_CONFIG, staticHandlerModules],
733
+ ];
734
+ for (const [has, cfg, trackMap] of trackTypes) {
735
+ if (!has) continue;
736
+ const exportNames = getBindings(code, getFnNames(cfg.fnName)).map(
737
+ (b) => b.exportNames[0],
738
+ );
739
+ if (exportNames.length > 0) trackMap.set(id, exportNames);
740
+ }
741
+ }
742
+
743
+ // --- Unified MagicString transforms ---
744
+ // Single pipeline for all downstream transforms (loaders, handles,
745
+ // locationState, handler IDs). Uses the post-extraction code so
746
+ // positions are always consistent.
747
+ const s = new MagicString(code);
748
+
749
+ if (hasLoaderCode) {
750
+ const fnNames = getFnNames("createLoader");
751
+ changed =
752
+ transformLoaders(
753
+ getBindings(code, fnNames),
754
+ s,
755
+ filePath,
756
+ isBuild,
757
+ ) || changed;
758
+ }
759
+ if (hasHandleCode) {
760
+ const fnNames = getFnNames("createHandle");
761
+ changed =
762
+ transformHandles(
763
+ getBindings(code, fnNames),
764
+ s,
765
+ filePath,
766
+ isBuild,
767
+ ) || changed;
768
+ }
769
+ if (hasLocationStateCode) {
770
+ const fnNames = getFnNames("createLocationState");
771
+ changed =
772
+ transformLocationState(
773
+ getBindings(code, fnNames),
774
+ s,
775
+ filePath,
776
+ isBuild,
777
+ ) || changed;
778
+ }
779
+ // Prerender + Static share the RSC inject-id vs non-RSC stub dispatch.
780
+ // Call sites are disjoint (distinct fnNames), so loop order is irrelevant.
781
+ const finalHandlerConfigs = [
782
+ hasPrerenderHandlerCode && PRERENDER_CONFIG,
783
+ hasStaticHandlerCode && STATIC_CONFIG,
784
+ ].filter((c): c is HandlerTransformConfig => !!c);
785
+ for (const cfg of finalHandlerConfigs) {
786
+ const bindings = getBindings(code, getFnNames(cfg.fnName));
787
+ changed =
788
+ (isRscEnv
789
+ ? transformHandlerIds(cfg, bindings, s, filePath, isBuild)
790
+ : stubHandlerExprs(cfg, bindings, s, filePath, isBuild)) ||
791
+ changed;
792
+ }
793
+
794
+ if (!changed) return;
795
+
796
+ return {
797
+ code: s.toString(),
798
+ map: s.generateMap({ source: id, includeContent: true }),
799
+ };
800
+ } finally {
801
+ counter?.record(id, performance.now() - __t0);
802
+ }
567
803
  },
568
804
  };
569
805
  }