@rangojs/router 0.0.0-experimental.39 → 0.0.0-experimental.39528925

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 (1697) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +320 -735
  3. package/dist/bin/rango.js +721 -197
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/types/__internal.d.ts +127 -0
  6. package/dist/types/bin/rango.d.ts +1 -0
  7. package/dist/types/browser/action-coordinator.d.ts +57 -0
  8. package/dist/types/browser/action-fence.d.ts +33 -0
  9. package/dist/types/browser/app-shell.d.ts +34 -0
  10. package/dist/types/browser/app-version.d.ts +6 -0
  11. package/dist/types/browser/connection-warmup.d.ts +31 -0
  12. package/dist/types/browser/cookie-name.d.ts +66 -0
  13. package/dist/types/browser/dev-discovery.d.ts +11 -0
  14. package/dist/types/browser/event-controller.d.ts +231 -0
  15. package/dist/types/browser/history-state.d.ts +26 -0
  16. package/dist/types/browser/index.d.ts +1 -0
  17. package/dist/types/browser/intercept-utils.d.ts +30 -0
  18. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  19. package/dist/types/browser/link-interceptor.d.ts +53 -0
  20. package/dist/types/browser/logging.d.ts +33 -0
  21. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  22. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  23. package/dist/types/browser/navigation-client.d.ts +17 -0
  24. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  25. package/dist/types/browser/navigation-store.d.ts +85 -0
  26. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  27. package/dist/types/browser/network-error-handler.d.ts +35 -0
  28. package/dist/types/browser/notify-listeners.d.ts +2 -0
  29. package/dist/types/browser/partial-update.d.ts +61 -0
  30. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  31. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  32. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  33. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  34. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  35. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  36. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  37. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  38. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  39. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  40. package/dist/types/browser/rango-state.d.ts +56 -0
  41. package/dist/types/browser/react/Link.d.ts +132 -0
  42. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types/browser/react/context.d.ts +57 -0
  45. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types/browser/react/index.d.ts +1 -0
  47. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types/browser/react/location-state.d.ts +29 -0
  49. package/dist/types/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types/browser/react/use-action.d.ts +61 -0
  53. package/dist/types/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types/browser/react/use-href.d.ts +32 -0
  55. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types/browser/react/use-params.d.ts +21 -0
  59. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types/browser/react/use-router.d.ts +23 -0
  62. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types/browser/response-adapter.d.ts +58 -0
  65. package/dist/types/browser/rsc-router.d.ts +146 -0
  66. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types/browser/types.d.ts +524 -0
  71. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types/build/generate-manifest.d.ts +106 -0
  74. package/dist/types/build/generate-route-types.d.ts +8 -0
  75. package/dist/types/build/index.d.ts +21 -0
  76. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  77. package/dist/types/build/route-trie.d.ts +89 -0
  78. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  79. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  80. package/dist/types/build/route-types/codegen.d.ts +16 -0
  81. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  82. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  83. package/dist/types/build/route-types/per-module-writer.d.ts +18 -0
  84. package/dist/types/build/route-types/router-processing.d.ts +82 -0
  85. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  86. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  87. package/dist/types/build/runtime-discovery.d.ts +24 -0
  88. package/dist/types/cache/background-task.d.ts +21 -0
  89. package/dist/types/cache/cache-error.d.ts +71 -0
  90. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  91. package/dist/types/cache/cache-policy.d.ts +59 -0
  92. package/dist/types/cache/cache-runtime.d.ts +51 -0
  93. package/dist/types/cache/cache-scope.d.ts +215 -0
  94. package/dist/types/cache/cache-tag.d.ts +79 -0
  95. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  96. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  97. package/dist/types/cache/cf/cf-cache-store.d.ts +616 -0
  98. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  99. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  100. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  101. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  102. package/dist/types/cache/cf/index.d.ts +4 -0
  103. package/dist/types/cache/document-cache.d.ts +71 -0
  104. package/dist/types/cache/handle-capture.d.ts +23 -0
  105. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  106. package/dist/types/cache/index.d.ts +9 -0
  107. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  108. package/dist/types/cache/profile-registry.d.ts +40 -0
  109. package/dist/types/cache/read-through-swr.d.ts +61 -0
  110. package/dist/types/cache/search-params-filter.d.ts +64 -0
  111. package/dist/types/cache/segment-codec.d.ts +78 -0
  112. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  113. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  114. package/dist/types/cache/taint.d.ts +71 -0
  115. package/dist/types/cache/types.d.ts +503 -0
  116. package/dist/types/cache/vercel/index.d.ts +1 -0
  117. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  118. package/dist/types/client.d.ts +184 -0
  119. package/dist/types/client.rsc.d.ts +39 -0
  120. package/dist/types/cloudflare/index.d.ts +7 -0
  121. package/dist/types/cloudflare/tracing.d.ts +57 -0
  122. package/dist/types/component-utils.d.ts +46 -0
  123. package/dist/types/components/DefaultDocument.d.ts +13 -0
  124. package/dist/types/context-var.d.ts +84 -0
  125. package/dist/types/debug.d.ts +57 -0
  126. package/dist/types/decode-loader-results.d.ts +5 -0
  127. package/dist/types/default-error-boundary.d.ts +10 -0
  128. package/dist/types/defer.d.ts +89 -0
  129. package/dist/types/deps/browser.d.ts +1 -0
  130. package/dist/types/deps/html-stream-client.d.ts +1 -0
  131. package/dist/types/deps/html-stream-server.d.ts +1 -0
  132. package/dist/types/deps/rsc.d.ts +1 -0
  133. package/dist/types/deps/ssr.d.ts +1 -0
  134. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  135. package/dist/types/encode-kv.d.ts +35 -0
  136. package/dist/types/errors.d.ts +226 -0
  137. package/dist/types/escape-script.d.ts +44 -0
  138. package/dist/types/handle.d.ts +93 -0
  139. package/dist/types/handles/MetaTags.d.ts +17 -0
  140. package/dist/types/handles/Scripts.d.ts +38 -0
  141. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  142. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  143. package/dist/types/handles/is-thenable.d.ts +10 -0
  144. package/dist/types/handles/meta.d.ts +43 -0
  145. package/dist/types/handles/script.d.ts +139 -0
  146. package/dist/types/host/cookie-handler.d.ts +8 -0
  147. package/dist/types/host/errors.d.ts +40 -0
  148. package/dist/types/host/index.d.ts +33 -0
  149. package/dist/types/host/pattern-matcher.d.ts +30 -0
  150. package/dist/types/host/router.d.ts +12 -0
  151. package/dist/types/host/testing.d.ts +41 -0
  152. package/dist/types/host/types.d.ts +148 -0
  153. package/dist/types/host/utils.d.ts +20 -0
  154. package/dist/types/href-client.d.ts +214 -0
  155. package/dist/types/index.d.ts +113 -0
  156. package/dist/types/index.rsc.d.ts +52 -0
  157. package/dist/types/internal-debug.d.ts +1 -0
  158. package/dist/types/loader-store.d.ts +193 -0
  159. package/dist/types/loader.d.ts +18 -0
  160. package/dist/types/loader.rsc.d.ts +18 -0
  161. package/dist/types/missing-id-error.d.ts +1 -0
  162. package/dist/types/outlet-context.d.ts +12 -0
  163. package/dist/types/outlet-provider.d.ts +12 -0
  164. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  165. package/dist/types/prerender/param-hash.d.ts +6 -0
  166. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  167. package/dist/types/prerender/store.d.ts +63 -0
  168. package/dist/types/prerender.d.ts +292 -0
  169. package/dist/types/redirect-origin.d.ts +67 -0
  170. package/dist/types/regex-escape.d.ts +6 -0
  171. package/dist/types/render-error-thrower.d.ts +13 -0
  172. package/dist/types/response-utils.d.ts +35 -0
  173. package/dist/types/reverse.d.ts +206 -0
  174. package/dist/types/root-error-boundary.d.ts +32 -0
  175. package/dist/types/route-content-wrapper.d.ts +40 -0
  176. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  177. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  178. package/dist/types/route-definition/helpers-types.d.ts +393 -0
  179. package/dist/types/route-definition/index.d.ts +7 -0
  180. package/dist/types/route-definition/redirect.d.ts +48 -0
  181. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  182. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  183. package/dist/types/route-definition.d.ts +1 -0
  184. package/dist/types/route-map-builder.d.ts +102 -0
  185. package/dist/types/route-name.d.ts +27 -0
  186. package/dist/types/route-types.d.ts +172 -0
  187. package/dist/types/router/basename.d.ts +10 -0
  188. package/dist/types/router/content-negotiation.d.ts +91 -0
  189. package/dist/types/router/debug-manifest.d.ts +7 -0
  190. package/dist/types/router/error-handling.d.ts +76 -0
  191. package/dist/types/router/find-match.d.ts +19 -0
  192. package/dist/types/router/handler-context.d.ts +41 -0
  193. package/dist/types/router/instrument.d.ts +191 -0
  194. package/dist/types/router/intercept-resolution.d.ts +79 -0
  195. package/dist/types/router/lazy-includes.d.ts +26 -0
  196. package/dist/types/router/loader-resolution.d.ts +63 -0
  197. package/dist/types/router/logging.d.ts +41 -0
  198. package/dist/types/router/manifest.d.ts +8 -0
  199. package/dist/types/router/match-api.d.ts +19 -0
  200. package/dist/types/router/match-context.d.ts +184 -0
  201. package/dist/types/router/match-handlers.d.ts +48 -0
  202. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  203. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  204. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  205. package/dist/types/router/match-middleware/index.d.ts +80 -0
  206. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  207. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  208. package/dist/types/router/match-pipelines.d.ts +103 -0
  209. package/dist/types/router/match-result.d.ts +114 -0
  210. package/dist/types/router/metrics.d.ts +6 -0
  211. package/dist/types/router/middleware-types.d.ts +74 -0
  212. package/dist/types/router/middleware.d.ts +116 -0
  213. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  214. package/dist/types/router/params-util.d.ts +8 -0
  215. package/dist/types/router/parse-pattern.d.ts +38 -0
  216. package/dist/types/router/pattern-matching.d.ts +169 -0
  217. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  218. package/dist/types/router/prefetch-default.d.ts +28 -0
  219. package/dist/types/router/prefetch-limits.d.ts +20 -0
  220. package/dist/types/router/prerender-match.d.ts +53 -0
  221. package/dist/types/router/preview-match.d.ts +22 -0
  222. package/dist/types/router/request-classification.d.ts +104 -0
  223. package/dist/types/router/revalidation.d.ts +57 -0
  224. package/dist/types/router/route-snapshot.d.ts +112 -0
  225. package/dist/types/router/router-context.d.ts +137 -0
  226. package/dist/types/router/router-interfaces.d.ts +441 -0
  227. package/dist/types/router/router-options.d.ts +792 -0
  228. package/dist/types/router/router-registry.d.ts +15 -0
  229. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  230. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  231. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  232. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  233. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  234. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  235. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  236. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  237. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  238. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  239. package/dist/types/router/segment-resolution.d.ts +3 -0
  240. package/dist/types/router/segment-wrappers.d.ts +53 -0
  241. package/dist/types/router/state-cookie-name.d.ts +1 -0
  242. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  243. package/dist/types/router/telemetry-otel.d.ts +113 -0
  244. package/dist/types/router/telemetry.d.ts +216 -0
  245. package/dist/types/router/timeout.d.ts +107 -0
  246. package/dist/types/router/tracing.d.ts +139 -0
  247. package/dist/types/router/transition-when.d.ts +13 -0
  248. package/dist/types/router/trie-matching.d.ts +32 -0
  249. package/dist/types/router/types.d.ts +98 -0
  250. package/dist/types/router/url-params.d.ts +26 -0
  251. package/dist/types/router.d.ts +7 -0
  252. package/dist/types/rsc/capture-queue.d.ts +49 -0
  253. package/dist/types/rsc/full-payload.d.ts +22 -0
  254. package/dist/types/rsc/handler-context.d.ts +32 -0
  255. package/dist/types/rsc/handler.d.ts +9 -0
  256. package/dist/types/rsc/helpers.d.ts +127 -0
  257. package/dist/types/rsc/index.d.ts +17 -0
  258. package/dist/types/rsc/json-route-result.d.ts +20 -0
  259. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  260. package/dist/types/rsc/manifest-init.d.ts +18 -0
  261. package/dist/types/rsc/nonce.d.ts +28 -0
  262. package/dist/types/rsc/origin-guard.d.ts +50 -0
  263. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  264. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  265. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  266. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  267. package/dist/types/rsc/response-error.d.ts +19 -0
  268. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  269. package/dist/types/rsc/routine-plan.d.ts +124 -0
  270. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  271. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  272. package/dist/types/rsc/server-action.d.ts +68 -0
  273. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  274. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  275. package/dist/types/rsc/shell-capture.d.ts +406 -0
  276. package/dist/types/rsc/shell-serve.d.ts +189 -0
  277. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  278. package/dist/types/rsc/stream-idle.d.ts +60 -0
  279. package/dist/types/rsc/transition-gate.d.ts +23 -0
  280. package/dist/types/rsc/types.d.ts +311 -0
  281. package/dist/types/runtime-env.d.ts +1 -0
  282. package/dist/types/search-params.d.ts +125 -0
  283. package/dist/types/segment-content-promise.d.ts +13 -0
  284. package/dist/types/segment-fragments.d.ts +79 -0
  285. package/dist/types/segment-loader-promise.d.ts +22 -0
  286. package/dist/types/segment-system.d.ts +84 -0
  287. package/dist/types/serialize.d.ts +164 -0
  288. package/dist/types/server/context.d.ts +510 -0
  289. package/dist/types/server/cookie-parse.d.ts +10 -0
  290. package/dist/types/server/cookie-store.d.ts +107 -0
  291. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  292. package/dist/types/server/handle-store.d.ts +100 -0
  293. package/dist/types/server/loader-registry.d.ts +32 -0
  294. package/dist/types/server/request-context.d.ts +707 -0
  295. package/dist/types/server/root-layout.d.ts +3 -0
  296. package/dist/types/server.d.ts +15 -0
  297. package/dist/types/ssr/index.d.ts +233 -0
  298. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  299. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  300. package/dist/types/ssr/ssr-root.d.ts +69 -0
  301. package/dist/types/static-handler.d.ts +71 -0
  302. package/dist/types/testing/cache-status.d.ts +63 -0
  303. package/dist/types/testing/collect-handle.d.ts +20 -0
  304. package/dist/types/testing/dispatch.d.ts +127 -0
  305. package/dist/types/testing/dom.entry.d.ts +15 -0
  306. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  307. package/dist/types/testing/e2e/index.d.ts +31 -0
  308. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  309. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  310. package/dist/types/testing/e2e/parity.d.ts +111 -0
  311. package/dist/types/testing/e2e/server.d.ts +35 -0
  312. package/dist/types/testing/flight-matchers.d.ts +55 -0
  313. package/dist/types/testing/flight-normalize.d.ts +1 -0
  314. package/dist/types/testing/flight-tree.d.ts +192 -0
  315. package/dist/types/testing/flight.d.ts +115 -0
  316. package/dist/types/testing/flight.entry.d.ts +27 -0
  317. package/dist/types/testing/generated-routes.d.ts +66 -0
  318. package/dist/types/testing/index.d.ts +54 -0
  319. package/dist/types/testing/internal/context.d.ts +225 -0
  320. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  321. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  322. package/dist/types/testing/render-handler.d.ts +160 -0
  323. package/dist/types/testing/render-route.d.ts +255 -0
  324. package/dist/types/testing/run-loader.d.ts +186 -0
  325. package/dist/types/testing/run-middleware.d.ts +132 -0
  326. package/dist/types/testing/run-transition-when.d.ts +78 -0
  327. package/dist/types/testing/shell-status.d.ts +81 -0
  328. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  329. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  330. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  331. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  332. package/dist/types/testing/vitest.d.ts +205 -0
  333. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  334. package/dist/types/theme/ThemeScript.d.ts +45 -0
  335. package/dist/types/theme/constants.d.ts +39 -0
  336. package/dist/types/theme/index.d.ts +29 -0
  337. package/dist/types/theme/theme-context.d.ts +21 -0
  338. package/dist/types/theme/theme-script.d.ts +26 -0
  339. package/dist/types/theme/types.d.ts +162 -0
  340. package/dist/types/theme/use-theme.d.ts +8 -0
  341. package/dist/types/types/boundaries.d.ts +93 -0
  342. package/dist/types/types/cache-types.d.ts +191 -0
  343. package/dist/types/types/error-types.d.ts +114 -0
  344. package/dist/types/types/global-namespace.d.ts +90 -0
  345. package/dist/types/types/handler-context.d.ts +658 -0
  346. package/dist/types/types/index.d.ts +11 -0
  347. package/dist/types/types/loader-types.d.ts +182 -0
  348. package/dist/types/types/request-scope.d.ts +93 -0
  349. package/dist/types/types/route-config.d.ts +105 -0
  350. package/dist/types/types/route-entry.d.ts +98 -0
  351. package/dist/types/types/segments.d.ts +239 -0
  352. package/dist/types/types.d.ts +1 -0
  353. package/dist/types/urls/include-helper.d.ts +17 -0
  354. package/dist/types/urls/include-provider.d.ts +27 -0
  355. package/dist/types/urls/index.d.ts +6 -0
  356. package/dist/types/urls/path-helper-types.d.ts +197 -0
  357. package/dist/types/urls/path-helper.d.ts +12 -0
  358. package/dist/types/urls/pattern-types.d.ts +166 -0
  359. package/dist/types/urls/response-types.d.ts +67 -0
  360. package/dist/types/urls/type-extraction.d.ts +157 -0
  361. package/dist/types/urls/urls-function.d.ts +24 -0
  362. package/dist/types/urls.d.ts +1 -0
  363. package/dist/types/use-loader.d.ts +150 -0
  364. package/dist/types/vercel/index.d.ts +10 -0
  365. package/dist/types/vercel/tracing.d.ts +71 -0
  366. package/dist/types/vite/debug.d.ts +80 -0
  367. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  368. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  369. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  370. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  371. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  372. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  373. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  374. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  375. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  376. package/dist/types/vite/discovery/state.d.ts +163 -0
  377. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  378. package/dist/types/vite/encryption-key.d.ts +2 -0
  379. package/dist/types/vite/index.d.ts +11 -0
  380. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  381. package/dist/types/vite/plugin-types.d.ts +298 -0
  382. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  383. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  384. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  385. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  386. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  387. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  388. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  389. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  390. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  391. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  392. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  393. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  394. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  395. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  396. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  397. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  398. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  399. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  400. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  401. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  402. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  403. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  404. package/dist/types/vite/rango.d.ts +29 -0
  405. package/dist/types/vite/router-discovery.d.ts +23 -0
  406. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  407. package/dist/types/vite/utils/banner.d.ts +2 -0
  408. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  409. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  410. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  411. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  412. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  413. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  414. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  415. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  416. package/dist/vite/index.js +5410 -1524
  417. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  418. package/package.json +120 -38
  419. package/skills/api-client/SKILL.md +211 -0
  420. package/skills/breadcrumbs/SKILL.md +85 -6
  421. package/skills/bundle-analysis/SKILL.md +159 -0
  422. package/skills/cache-guide/SKILL.md +255 -25
  423. package/skills/caching/SKILL.md +414 -17
  424. package/skills/catalog.json +283 -0
  425. package/skills/cloudflare/SKILL.md +151 -0
  426. package/skills/cloudflare/agents/openai.yaml +4 -0
  427. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  428. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  429. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  430. package/skills/comparison/SKILL.md +50 -0
  431. package/skills/comparison/agents/openai.yaml +4 -0
  432. package/skills/comparison/references/framework-comparison.md +844 -0
  433. package/skills/composability/SKILL.md +124 -4
  434. package/skills/css/SKILL.md +76 -0
  435. package/skills/debug-manifest/SKILL.md +5 -11
  436. package/skills/defer-hydration/SKILL.md +235 -0
  437. package/skills/deployment-caching/SKILL.md +176 -0
  438. package/skills/document-cache/SKILL.md +116 -58
  439. package/skills/fonts/SKILL.md +1 -1
  440. package/skills/handler-use/SKILL.md +364 -0
  441. package/skills/hooks/SKILL.md +73 -691
  442. package/skills/hooks/data.md +273 -0
  443. package/skills/hooks/handle-and-actions.md +103 -0
  444. package/skills/hooks/navigation.md +110 -0
  445. package/skills/hooks/outlets.md +41 -0
  446. package/skills/hooks/state.md +228 -0
  447. package/skills/hooks/urls.md +135 -0
  448. package/skills/host-router/SKILL.md +129 -27
  449. package/skills/i18n/SKILL.md +276 -0
  450. package/skills/intercept/SKILL.md +94 -18
  451. package/skills/layout/SKILL.md +62 -19
  452. package/skills/links/SKILL.md +285 -17
  453. package/skills/loader/SKILL.md +302 -54
  454. package/skills/middleware/SKILL.md +92 -16
  455. package/skills/migrate-nextjs/SKILL.md +794 -0
  456. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  457. package/skills/migrate-react-router/SKILL.md +153 -0
  458. package/skills/migrate-react-router/component-migration.md +196 -0
  459. package/skills/migrate-react-router/data-and-actions.md +225 -0
  460. package/skills/migrate-react-router/route-mapping.md +271 -0
  461. package/skills/mime-routes/SKILL.md +55 -18
  462. package/skills/observability/SKILL.md +231 -0
  463. package/skills/parallel/SKILL.md +225 -10
  464. package/skills/ppr/SKILL.md +904 -0
  465. package/skills/prerender/SKILL.md +236 -132
  466. package/skills/rango/SKILL.md +321 -24
  467. package/skills/react-compiler/SKILL.md +168 -0
  468. package/skills/response-routes/SKILL.md +180 -52
  469. package/skills/route/SKILL.md +178 -9
  470. package/skills/router-setup/SKILL.md +140 -11
  471. package/skills/scripts/SKILL.md +179 -0
  472. package/skills/server-actions/SKILL.md +776 -0
  473. package/skills/shell-manifest/SKILL.md +185 -0
  474. package/skills/streams-and-websockets/SKILL.md +283 -0
  475. package/skills/tailwind/SKILL.md +28 -4
  476. package/skills/testing/SKILL.md +131 -0
  477. package/skills/testing/bindings.md +103 -0
  478. package/skills/testing/cache-prerender.md +172 -0
  479. package/skills/testing/client-components.md +125 -0
  480. package/skills/testing/e2e-parity.md +125 -0
  481. package/skills/testing/flight.md +91 -0
  482. package/skills/testing/handles.md +131 -0
  483. package/skills/testing/loader.md +128 -0
  484. package/skills/testing/middleware.md +99 -0
  485. package/skills/testing/render-handler.md +122 -0
  486. package/skills/testing/response-routes.md +95 -0
  487. package/skills/testing/reverse-and-types.md +85 -0
  488. package/skills/testing/server-actions.md +107 -0
  489. package/skills/testing/server-tree.md +128 -0
  490. package/skills/testing/setup.md +123 -0
  491. package/skills/theme/SKILL.md +1 -1
  492. package/skills/typesafety/SKILL.md +45 -616
  493. package/skills/typesafety/env-and-bindings.md +254 -0
  494. package/skills/typesafety/generated-files-and-cli.md +342 -0
  495. package/skills/typesafety/params-and-search.md +153 -0
  496. package/skills/typesafety/route-types.md +213 -0
  497. package/skills/use-cache/SKILL.md +121 -15
  498. package/skills/vercel/SKILL.md +149 -0
  499. package/skills/view-transitions/SKILL.md +341 -0
  500. package/src/__augment-tests__/augment.ts +81 -0
  501. package/src/__augment-tests__/augmented.check.ts +116 -0
  502. package/src/__internal.ts +1 -66
  503. package/src/browser/action-coordinator.ts +53 -36
  504. package/src/browser/action-fence.ts +47 -0
  505. package/src/browser/app-shell.ts +39 -0
  506. package/src/browser/app-version.ts +14 -0
  507. package/src/browser/connection-warmup.ts +134 -0
  508. package/src/browser/cookie-name.ts +140 -0
  509. package/src/browser/dev-discovery.ts +66 -0
  510. package/src/browser/event-controller.ts +405 -168
  511. package/src/browser/history-state.ts +21 -0
  512. package/src/browser/index.ts +3 -3
  513. package/src/browser/invalidate-client-cache.ts +52 -0
  514. package/src/browser/link-interceptor.ts +469 -20
  515. package/src/browser/logging.ts +28 -0
  516. package/src/browser/merge-segment-loaders.ts +6 -4
  517. package/src/browser/navigation-bridge.ts +202 -36
  518. package/src/browser/navigation-client.ts +279 -73
  519. package/src/browser/navigation-store-handle.ts +38 -0
  520. package/src/browser/navigation-store.ts +208 -329
  521. package/src/browser/navigation-transaction.ts +18 -66
  522. package/src/browser/network-error-handler.ts +34 -7
  523. package/src/browser/notify-listeners.ts +22 -0
  524. package/src/browser/partial-update.ts +249 -127
  525. package/src/browser/prefetch/cache.ts +354 -51
  526. package/src/browser/prefetch/default-strategy.ts +74 -0
  527. package/src/browser/prefetch/fetch.ts +453 -40
  528. package/src/browser/prefetch/invalidation.ts +30 -0
  529. package/src/browser/prefetch/loader.ts +111 -0
  530. package/src/browser/prefetch/observer.ts +50 -22
  531. package/src/browser/prefetch/queue.ts +144 -23
  532. package/src/browser/prefetch/resource-ready.ts +77 -0
  533. package/src/browser/prefetch/runtime.ts +6 -0
  534. package/src/browser/rango-state.ts +178 -75
  535. package/src/browser/react/Link.tsx +187 -75
  536. package/src/browser/react/NavigationProvider.tsx +249 -123
  537. package/src/browser/react/ScrollRestoration.tsx +10 -6
  538. package/src/browser/react/context.ts +11 -2
  539. package/src/browser/react/filter-segment-order.ts +66 -7
  540. package/src/browser/react/index.ts +0 -48
  541. package/src/browser/react/location-state-shared.ts +178 -8
  542. package/src/browser/react/location-state.ts +39 -14
  543. package/src/browser/react/use-action.ts +6 -15
  544. package/src/browser/react/use-handle.ts +23 -69
  545. package/src/browser/react/use-href.tsx +8 -1
  546. package/src/browser/react/use-link-status.ts +33 -8
  547. package/src/browser/react/use-navigation.ts +32 -7
  548. package/src/browser/react/use-params.ts +20 -10
  549. package/src/browser/react/use-reverse.ts +106 -0
  550. package/src/browser/react/use-router.ts +47 -12
  551. package/src/browser/react/use-search-params.ts +0 -5
  552. package/src/browser/react/use-segments.ts +11 -21
  553. package/src/browser/response-adapter.ts +99 -8
  554. package/src/browser/rsc-router.tsx +316 -84
  555. package/src/browser/scroll-restoration.ts +61 -47
  556. package/src/browser/segment-reconciler.ts +44 -7
  557. package/src/browser/segment-structure-assert.ts +2 -2
  558. package/src/browser/server-action-bridge.ts +244 -71
  559. package/src/browser/types.ts +144 -37
  560. package/src/browser/validate-redirect-origin.ts +43 -16
  561. package/src/build/collect-fallback-refs.ts +107 -0
  562. package/src/build/generate-manifest.ts +217 -188
  563. package/src/build/generate-route-types.ts +6 -1
  564. package/src/build/index.ts +11 -3
  565. package/src/build/prefix-tree-utils.ts +123 -0
  566. package/src/build/route-trie.ts +196 -84
  567. package/src/build/route-types/ast-route-extraction.ts +15 -8
  568. package/src/build/route-types/codegen.ts +16 -5
  569. package/src/build/route-types/include-resolution.ts +464 -63
  570. package/src/build/route-types/param-extraction.ts +6 -3
  571. package/src/build/route-types/per-module-writer.ts +22 -6
  572. package/src/build/route-types/router-processing.ts +336 -110
  573. package/src/build/route-types/scan-filter.ts +9 -2
  574. package/src/build/route-types/source-scan.ts +216 -0
  575. package/src/build/runtime-discovery.ts +13 -21
  576. package/src/cache/cache-error.ts +104 -0
  577. package/src/cache/cache-key-utils.ts +73 -15
  578. package/src/cache/cache-policy.ts +108 -34
  579. package/src/cache/cache-runtime.ts +558 -108
  580. package/src/cache/cache-scope.ts +431 -112
  581. package/src/cache/cache-tag.ts +149 -0
  582. package/src/cache/cf/cf-base64.ts +33 -0
  583. package/src/cache/cf/cf-cache-constants.ts +134 -0
  584. package/src/cache/cf/cf-cache-store.ts +3250 -173
  585. package/src/cache/cf/cf-cache-types.ts +417 -0
  586. package/src/cache/cf/cf-kv-utils.ts +84 -0
  587. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  588. package/src/cache/cf/cf-zone-purge.ts +101 -0
  589. package/src/cache/cf/index.ts +16 -17
  590. package/src/cache/document-cache.ts +202 -61
  591. package/src/cache/handle-snapshot.ts +92 -1
  592. package/src/cache/index.ts +33 -20
  593. package/src/cache/memory-segment-store.ts +286 -37
  594. package/src/cache/profile-registry.ts +46 -31
  595. package/src/cache/read-through-swr.ts +66 -16
  596. package/src/cache/search-params-filter.ts +118 -0
  597. package/src/cache/segment-codec.ts +80 -25
  598. package/src/cache/shell-snapshot.ts +516 -0
  599. package/src/cache/tag-invalidation.ts +230 -0
  600. package/src/cache/taint.ts +55 -0
  601. package/src/cache/types.ts +323 -100
  602. package/src/cache/vercel/index.ts +11 -0
  603. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  604. package/src/client.rsc.tsx +41 -21
  605. package/src/client.tsx +116 -290
  606. package/src/cloudflare/index.ts +11 -0
  607. package/src/cloudflare/tracing.ts +112 -0
  608. package/src/component-utils.ts +19 -0
  609. package/src/components/DefaultDocument.tsx +8 -2
  610. package/src/context-var.ts +84 -2
  611. package/src/debug.ts +2 -2
  612. package/src/decode-loader-results.ts +52 -0
  613. package/src/defer.ts +185 -0
  614. package/src/deps/ssr.ts +4 -2
  615. package/src/dev-discovery-protocol.ts +11 -0
  616. package/src/encode-kv.ts +49 -0
  617. package/src/errors.ts +30 -4
  618. package/src/escape-script.ts +52 -0
  619. package/src/handle.ts +104 -34
  620. package/src/handles/MetaTags.tsx +24 -53
  621. package/src/handles/Scripts.tsx +183 -0
  622. package/src/handles/breadcrumbs.ts +35 -8
  623. package/src/handles/deferred-resolution.ts +127 -0
  624. package/src/handles/is-thenable.ts +16 -0
  625. package/src/handles/meta.ts +14 -40
  626. package/src/handles/script.ts +244 -0
  627. package/src/host/cookie-handler.ts +9 -60
  628. package/src/host/errors.ts +13 -22
  629. package/src/host/index.ts +9 -2
  630. package/src/host/pattern-matcher.ts +23 -52
  631. package/src/host/router.ts +107 -99
  632. package/src/host/testing.ts +40 -27
  633. package/src/host/types.ts +37 -4
  634. package/src/host/utils.ts +1 -1
  635. package/src/href-client.ts +137 -22
  636. package/src/index.rsc.ts +111 -13
  637. package/src/index.ts +150 -19
  638. package/src/internal-debug.ts +11 -10
  639. package/src/loader-store.ts +500 -0
  640. package/src/loader.rsc.ts +20 -13
  641. package/src/loader.ts +12 -11
  642. package/src/missing-id-error.ts +68 -0
  643. package/src/outlet-context.ts +1 -1
  644. package/src/outlet-provider.tsx +1 -5
  645. package/src/prerender/build-shell-capture.ts +453 -0
  646. package/src/prerender/param-hash.ts +16 -16
  647. package/src/prerender/shell-manifest-key.ts +20 -0
  648. package/src/prerender/store.ts +52 -42
  649. package/src/prerender.ts +215 -86
  650. package/src/redirect-origin.ts +143 -0
  651. package/src/regex-escape.ts +8 -0
  652. package/src/render-error-thrower.tsx +20 -0
  653. package/src/response-utils.ts +62 -0
  654. package/src/reverse.ts +65 -15
  655. package/src/root-error-boundary.tsx +1 -19
  656. package/src/route-content-wrapper.tsx +19 -77
  657. package/src/route-definition/dsl-helpers.ts +492 -305
  658. package/src/route-definition/helper-factories.ts +28 -140
  659. package/src/route-definition/helpers-types.ts +156 -78
  660. package/src/route-definition/index.ts +4 -2
  661. package/src/route-definition/redirect.ts +53 -12
  662. package/src/route-definition/resolve-handler-use.ts +160 -0
  663. package/src/route-definition/use-item-types.ts +29 -0
  664. package/src/route-map-builder.ts +102 -68
  665. package/src/route-types.ts +37 -46
  666. package/src/router/basename.ts +14 -0
  667. package/src/router/content-negotiation.ts +211 -22
  668. package/src/router/error-handling.ts +45 -18
  669. package/src/router/find-match.ts +130 -29
  670. package/src/router/handler-context.ts +105 -45
  671. package/src/router/instrument.ts +401 -0
  672. package/src/router/intercept-resolution.ts +79 -24
  673. package/src/router/lazy-includes.ts +90 -63
  674. package/src/router/loader-resolution.ts +302 -56
  675. package/src/router/logging.ts +5 -8
  676. package/src/router/manifest.ts +105 -56
  677. package/src/router/match-api.ts +190 -219
  678. package/src/router/match-context.ts +0 -22
  679. package/src/router/match-handlers.ts +268 -171
  680. package/src/router/match-middleware/background-revalidation.ts +66 -22
  681. package/src/router/match-middleware/cache-lookup.ts +368 -277
  682. package/src/router/match-middleware/cache-store.ts +175 -50
  683. package/src/router/match-middleware/intercept-resolution.ts +8 -28
  684. package/src/router/match-middleware/segment-resolution.ts +52 -18
  685. package/src/router/match-pipelines.ts +1 -42
  686. package/src/router/match-result.ts +128 -44
  687. package/src/router/metrics.ts +22 -36
  688. package/src/router/middleware-types.ts +26 -138
  689. package/src/router/middleware.ts +305 -177
  690. package/src/router/navigation-snapshot.ts +173 -0
  691. package/src/router/params-util.ts +23 -0
  692. package/src/router/parse-pattern.ts +115 -0
  693. package/src/router/pattern-matching.ts +181 -150
  694. package/src/router/prefetch-cache-ttl.ts +51 -0
  695. package/src/router/prefetch-default.ts +59 -0
  696. package/src/router/prefetch-limits.ts +37 -0
  697. package/src/router/prerender-match.ts +250 -60
  698. package/src/router/preview-match.ts +35 -103
  699. package/src/router/request-classification.ts +291 -0
  700. package/src/router/revalidation.ts +123 -73
  701. package/src/router/route-snapshot.ts +256 -0
  702. package/src/router/router-context.ts +11 -29
  703. package/src/router/router-interfaces.ts +162 -38
  704. package/src/router/router-options.ts +271 -21
  705. package/src/router/router-registry.ts +2 -5
  706. package/src/router/segment-resolution/fresh.ts +320 -78
  707. package/src/router/segment-resolution/helpers.ts +116 -31
  708. package/src/router/segment-resolution/loader-cache.ts +198 -39
  709. package/src/router/segment-resolution/loader-mask.ts +60 -0
  710. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  711. package/src/router/segment-resolution/mask-nested.ts +99 -0
  712. package/src/router/segment-resolution/revalidation.ts +501 -385
  713. package/src/router/segment-resolution/static-store.ts +55 -15
  714. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  715. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  716. package/src/router/segment-resolution.ts +5 -1
  717. package/src/router/segment-wrappers.ts +8 -5
  718. package/src/router/state-cookie-name.ts +33 -0
  719. package/src/router/substitute-pattern-params.ts +75 -0
  720. package/src/router/telemetry-otel.ts +171 -200
  721. package/src/router/telemetry.ts +106 -20
  722. package/src/router/timeout.ts +53 -22
  723. package/src/router/tracing.ts +235 -0
  724. package/src/router/transition-when.ts +76 -0
  725. package/src/router/trie-matching.ts +171 -59
  726. package/src/router/types.ts +10 -63
  727. package/src/router/url-params.ts +57 -0
  728. package/src/router.ts +256 -78
  729. package/src/rsc/capture-queue.ts +218 -0
  730. package/src/rsc/full-payload.ts +71 -0
  731. package/src/rsc/handler-context.ts +4 -2
  732. package/src/rsc/handler.ts +896 -517
  733. package/src/rsc/helpers.ts +245 -47
  734. package/src/rsc/index.ts +2 -5
  735. package/src/rsc/json-route-result.ts +38 -0
  736. package/src/rsc/loader-fetch.ts +129 -33
  737. package/src/rsc/manifest-init.ts +32 -48
  738. package/src/rsc/nonce.ts +10 -1
  739. package/src/rsc/origin-guard.ts +39 -25
  740. package/src/rsc/progressive-enhancement.ts +381 -74
  741. package/src/rsc/redirect-guard.ts +102 -0
  742. package/src/rsc/render-pipeline.ts +611 -0
  743. package/src/rsc/response-cache-serve.ts +259 -0
  744. package/src/rsc/response-error.ts +79 -12
  745. package/src/rsc/response-route-handler.ts +80 -206
  746. package/src/rsc/routine-plan.ts +359 -0
  747. package/src/rsc/rsc-rendering.ts +1624 -156
  748. package/src/rsc/runtime-warnings.ts +23 -10
  749. package/src/rsc/server-action.ts +424 -133
  750. package/src/rsc/shell-build-manifest.ts +336 -0
  751. package/src/rsc/shell-capture-constants.ts +45 -0
  752. package/src/rsc/shell-capture.ts +2063 -0
  753. package/src/rsc/shell-serve.ts +337 -0
  754. package/src/rsc/ssr-setup.ts +113 -18
  755. package/src/rsc/stream-idle.ts +137 -0
  756. package/src/rsc/transition-gate.ts +86 -0
  757. package/src/rsc/types.ts +83 -6
  758. package/src/runtime-env.ts +18 -0
  759. package/src/search-params.ts +35 -30
  760. package/src/segment-content-promise.ts +67 -0
  761. package/src/segment-fragments.ts +165 -0
  762. package/src/segment-loader-promise.ts +167 -0
  763. package/src/segment-system.tsx +449 -132
  764. package/src/serialize.ts +243 -0
  765. package/src/server/context.ts +571 -61
  766. package/src/server/cookie-parse.ts +32 -0
  767. package/src/server/cookie-store.ts +152 -5
  768. package/src/server/handle-store.ts +40 -38
  769. package/src/server/loader-registry.ts +38 -46
  770. package/src/server/request-context.ts +933 -182
  771. package/src/server.ts +0 -2
  772. package/src/ssr/index.tsx +631 -179
  773. package/src/ssr/inject-rsc-eager.ts +167 -0
  774. package/src/ssr/preinit-client-references.ts +106 -0
  775. package/src/ssr/ssr-root.tsx +262 -0
  776. package/src/static-handler.ts +45 -20
  777. package/src/testing/cache-status.ts +162 -0
  778. package/src/testing/collect-handle.ts +46 -0
  779. package/src/testing/dispatch.ts +951 -0
  780. package/src/testing/dom.entry.ts +22 -0
  781. package/src/testing/e2e/fixture.ts +188 -0
  782. package/src/testing/e2e/index.ts +147 -0
  783. package/src/testing/e2e/matchers.ts +35 -0
  784. package/src/testing/e2e/page-helpers.ts +319 -0
  785. package/src/testing/e2e/parity.ts +400 -0
  786. package/src/testing/e2e/server.ts +195 -0
  787. package/src/testing/flight-matchers.ts +97 -0
  788. package/src/testing/flight-normalize.ts +11 -0
  789. package/src/testing/flight-runtime.d.ts +57 -0
  790. package/src/testing/flight-tree.ts +682 -0
  791. package/src/testing/flight.entry.ts +52 -0
  792. package/src/testing/flight.ts +257 -0
  793. package/src/testing/generated-routes.ts +199 -0
  794. package/src/testing/index.ts +121 -0
  795. package/src/testing/internal/context.ts +380 -0
  796. package/src/testing/internal/flight-client-globals.ts +30 -0
  797. package/src/testing/internal/seed-vars.ts +54 -0
  798. package/src/testing/render-handler.ts +371 -0
  799. package/src/testing/render-route.tsx +653 -0
  800. package/src/testing/run-loader.ts +385 -0
  801. package/src/testing/run-middleware.ts +219 -0
  802. package/src/testing/run-transition-when.ts +197 -0
  803. package/src/testing/shell-status.ts +206 -0
  804. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  805. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  806. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  807. package/src/testing/vitest-stubs/version.ts +5 -0
  808. package/src/testing/vitest.ts +305 -0
  809. package/src/theme/ThemeProvider.tsx +56 -84
  810. package/src/theme/ThemeScript.tsx +7 -9
  811. package/src/theme/constants.ts +52 -13
  812. package/src/theme/index.ts +0 -7
  813. package/src/theme/theme-context.ts +1 -5
  814. package/src/theme/theme-script.ts +22 -21
  815. package/src/theme/use-theme.ts +0 -3
  816. package/src/types/boundaries.ts +0 -35
  817. package/src/types/cache-types.ts +17 -8
  818. package/src/types/error-types.ts +30 -90
  819. package/src/types/global-namespace.ts +54 -41
  820. package/src/types/handler-context.ts +244 -81
  821. package/src/types/index.ts +3 -10
  822. package/src/types/loader-types.ts +44 -15
  823. package/src/types/request-scope.ts +112 -0
  824. package/src/types/route-config.ts +20 -52
  825. package/src/types/route-entry.ts +22 -7
  826. package/src/types/segments.ts +142 -14
  827. package/src/urls/include-helper.ts +41 -75
  828. package/src/urls/include-provider.ts +71 -0
  829. package/src/urls/index.ts +2 -11
  830. package/src/urls/path-helper-types.ts +104 -25
  831. package/src/urls/path-helper.ts +70 -115
  832. package/src/urls/pattern-types.ts +113 -19
  833. package/src/urls/response-types.ts +25 -22
  834. package/src/urls/type-extraction.ts +98 -154
  835. package/src/urls/urls-function.ts +1 -19
  836. package/src/use-loader.tsx +346 -89
  837. package/src/vercel/index.ts +11 -0
  838. package/src/vercel/tracing.ts +89 -0
  839. package/src/vite/debug.ts +185 -0
  840. package/src/vite/discovery/bundle-postprocess.ts +46 -45
  841. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  842. package/src/vite/discovery/discover-routers.ts +149 -144
  843. package/src/vite/discovery/discovery-errors.ts +255 -0
  844. package/src/vite/discovery/gate-state.ts +171 -0
  845. package/src/vite/discovery/prerender-collection.ts +243 -134
  846. package/src/vite/discovery/route-types-writer.ts +40 -84
  847. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  848. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  849. package/src/vite/discovery/state.ts +105 -10
  850. package/src/vite/discovery/virtual-module-codegen.ts +206 -87
  851. package/src/vite/encryption-key.ts +29 -0
  852. package/src/vite/index.ts +16 -0
  853. package/src/vite/inject-client-debug.ts +88 -0
  854. package/src/vite/plugin-types.ts +267 -62
  855. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  856. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  857. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  858. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  859. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  860. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  861. package/src/vite/plugins/expose-action-id.ts +51 -100
  862. package/src/vite/plugins/expose-id-utils.ts +96 -51
  863. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  864. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  865. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  866. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  867. package/src/vite/plugins/expose-internal-ids.ts +599 -317
  868. package/src/vite/plugins/performance-tracks.ts +89 -0
  869. package/src/vite/plugins/refresh-cmd.ts +89 -27
  870. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  871. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  872. package/src/vite/plugins/use-cache-transform.ts +73 -83
  873. package/src/vite/plugins/vercel-output.ts +384 -0
  874. package/src/vite/plugins/version-injector.ts +39 -29
  875. package/src/vite/plugins/version-plugin.ts +54 -37
  876. package/src/vite/plugins/virtual-entries.ts +183 -29
  877. package/src/vite/rango.ts +403 -304
  878. package/src/vite/router-discovery.ts +1651 -187
  879. package/src/vite/utils/ast-handler-extract.ts +26 -35
  880. package/src/vite/utils/banner.ts +4 -4
  881. package/src/vite/utils/bundle-analysis.ts +10 -15
  882. package/src/vite/utils/client-chunks.ts +184 -0
  883. package/src/vite/utils/directive-prologue.ts +40 -0
  884. package/src/vite/utils/forward-user-plugins.ts +171 -0
  885. package/src/vite/utils/manifest-utils.ts +1 -59
  886. package/src/vite/utils/package-resolution.ts +21 -52
  887. package/src/vite/utils/prerender-utils.ts +123 -44
  888. package/src/vite/utils/shared-utils.ts +158 -44
  889. package/dist/__internal.d.ts +0 -83
  890. package/dist/__internal.d.ts.map +0 -1
  891. package/dist/__internal.js +0 -19
  892. package/dist/__internal.js.map +0 -1
  893. package/dist/__mocks__/version.d.ts +0 -7
  894. package/dist/__mocks__/version.d.ts.map +0 -1
  895. package/dist/__mocks__/version.js +0 -7
  896. package/dist/__mocks__/version.js.map +0 -1
  897. package/dist/__tests__/client-href.test.d.ts +0 -2
  898. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  899. package/dist/__tests__/client-href.test.js +0 -74
  900. package/dist/__tests__/client-href.test.js.map +0 -1
  901. package/dist/__tests__/component-utils.test.d.ts +0 -2
  902. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  903. package/dist/__tests__/component-utils.test.js +0 -51
  904. package/dist/__tests__/component-utils.test.js.map +0 -1
  905. package/dist/__tests__/event-controller.test.d.ts +0 -2
  906. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  907. package/dist/__tests__/event-controller.test.js +0 -538
  908. package/dist/__tests__/event-controller.test.js.map +0 -1
  909. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  910. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  911. package/dist/__tests__/helpers/route-tree.js +0 -374
  912. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  913. package/dist/__tests__/match-result.test.d.ts +0 -2
  914. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  915. package/dist/__tests__/match-result.test.js +0 -154
  916. package/dist/__tests__/match-result.test.js.map +0 -1
  917. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  918. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  919. package/dist/__tests__/navigation-store.test.js +0 -440
  920. package/dist/__tests__/navigation-store.test.js.map +0 -1
  921. package/dist/__tests__/partial-update.test.d.ts +0 -2
  922. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  923. package/dist/__tests__/partial-update.test.js +0 -1009
  924. package/dist/__tests__/partial-update.test.js.map +0 -1
  925. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  926. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  927. package/dist/__tests__/reverse-types.test.js +0 -656
  928. package/dist/__tests__/reverse-types.test.js.map +0 -1
  929. package/dist/__tests__/route-definition.test.d.ts +0 -2
  930. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  931. package/dist/__tests__/route-definition.test.js +0 -55
  932. package/dist/__tests__/route-definition.test.js.map +0 -1
  933. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  934. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  935. package/dist/__tests__/router-helpers.test.js +0 -377
  936. package/dist/__tests__/router-helpers.test.js.map +0 -1
  937. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  938. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  939. package/dist/__tests__/router-integration-2.test.js +0 -426
  940. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  941. package/dist/__tests__/router-integration.test.d.ts +0 -2
  942. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  943. package/dist/__tests__/router-integration.test.js +0 -1051
  944. package/dist/__tests__/router-integration.test.js.map +0 -1
  945. package/dist/__tests__/search-params.test.d.ts +0 -5
  946. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  947. package/dist/__tests__/search-params.test.js +0 -306
  948. package/dist/__tests__/search-params.test.js.map +0 -1
  949. package/dist/__tests__/segment-system.test.d.ts +0 -2
  950. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  951. package/dist/__tests__/segment-system.test.js +0 -627
  952. package/dist/__tests__/segment-system.test.js.map +0 -1
  953. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  954. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  955. package/dist/__tests__/static-handler-types.test.js +0 -63
  956. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  957. package/dist/__tests__/urls.test.d.ts +0 -2
  958. package/dist/__tests__/urls.test.d.ts.map +0 -1
  959. package/dist/__tests__/urls.test.js +0 -421
  960. package/dist/__tests__/urls.test.js.map +0 -1
  961. package/dist/__tests__/use-mount.test.d.ts +0 -2
  962. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  963. package/dist/__tests__/use-mount.test.js +0 -35
  964. package/dist/__tests__/use-mount.test.js.map +0 -1
  965. package/dist/bin/rango.d.ts +0 -2
  966. package/dist/bin/rango.d.ts.map +0 -1
  967. package/dist/bin/rango.js.map +0 -1
  968. package/dist/browser/event-controller.d.ts +0 -191
  969. package/dist/browser/event-controller.d.ts.map +0 -1
  970. package/dist/browser/event-controller.js +0 -559
  971. package/dist/browser/event-controller.js.map +0 -1
  972. package/dist/browser/index.d.ts +0 -2
  973. package/dist/browser/index.d.ts.map +0 -1
  974. package/dist/browser/index.js +0 -14
  975. package/dist/browser/index.js.map +0 -1
  976. package/dist/browser/link-interceptor.d.ts +0 -38
  977. package/dist/browser/link-interceptor.d.ts.map +0 -1
  978. package/dist/browser/link-interceptor.js +0 -99
  979. package/dist/browser/link-interceptor.js.map +0 -1
  980. package/dist/browser/logging.d.ts +0 -10
  981. package/dist/browser/logging.d.ts.map +0 -1
  982. package/dist/browser/logging.js +0 -29
  983. package/dist/browser/logging.js.map +0 -1
  984. package/dist/browser/lru-cache.d.ts +0 -17
  985. package/dist/browser/lru-cache.d.ts.map +0 -1
  986. package/dist/browser/lru-cache.js +0 -50
  987. package/dist/browser/lru-cache.js.map +0 -1
  988. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  989. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  990. package/dist/browser/merge-segment-loaders.js +0 -102
  991. package/dist/browser/merge-segment-loaders.js.map +0 -1
  992. package/dist/browser/navigation-bridge.d.ts +0 -102
  993. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  994. package/dist/browser/navigation-bridge.js +0 -708
  995. package/dist/browser/navigation-bridge.js.map +0 -1
  996. package/dist/browser/navigation-client.d.ts +0 -25
  997. package/dist/browser/navigation-client.d.ts.map +0 -1
  998. package/dist/browser/navigation-client.js +0 -157
  999. package/dist/browser/navigation-client.js.map +0 -1
  1000. package/dist/browser/navigation-store.d.ts +0 -101
  1001. package/dist/browser/navigation-store.d.ts.map +0 -1
  1002. package/dist/browser/navigation-store.js +0 -625
  1003. package/dist/browser/navigation-store.js.map +0 -1
  1004. package/dist/browser/partial-update.d.ts +0 -75
  1005. package/dist/browser/partial-update.d.ts.map +0 -1
  1006. package/dist/browser/partial-update.js +0 -426
  1007. package/dist/browser/partial-update.js.map +0 -1
  1008. package/dist/browser/react/Link.d.ts +0 -86
  1009. package/dist/browser/react/Link.d.ts.map +0 -1
  1010. package/dist/browser/react/Link.js +0 -128
  1011. package/dist/browser/react/Link.js.map +0 -1
  1012. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  1013. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  1014. package/dist/browser/react/NavigationProvider.js +0 -216
  1015. package/dist/browser/react/NavigationProvider.js.map +0 -1
  1016. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  1017. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  1018. package/dist/browser/react/ScrollRestoration.js +0 -57
  1019. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  1020. package/dist/browser/react/context.d.ts +0 -46
  1021. package/dist/browser/react/context.d.ts.map +0 -1
  1022. package/dist/browser/react/context.js +0 -10
  1023. package/dist/browser/react/context.js.map +0 -1
  1024. package/dist/browser/react/index.d.ts +0 -11
  1025. package/dist/browser/react/index.d.ts.map +0 -1
  1026. package/dist/browser/react/index.js +0 -22
  1027. package/dist/browser/react/index.js.map +0 -1
  1028. package/dist/browser/react/location-state-shared.d.ts +0 -63
  1029. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  1030. package/dist/browser/react/location-state-shared.js +0 -81
  1031. package/dist/browser/react/location-state-shared.js.map +0 -1
  1032. package/dist/browser/react/location-state.d.ts +0 -23
  1033. package/dist/browser/react/location-state.d.ts.map +0 -1
  1034. package/dist/browser/react/location-state.js +0 -29
  1035. package/dist/browser/react/location-state.js.map +0 -1
  1036. package/dist/browser/react/mount-context.d.ts +0 -24
  1037. package/dist/browser/react/mount-context.d.ts.map +0 -1
  1038. package/dist/browser/react/mount-context.js +0 -24
  1039. package/dist/browser/react/mount-context.js.map +0 -1
  1040. package/dist/browser/react/use-action.d.ts +0 -64
  1041. package/dist/browser/react/use-action.d.ts.map +0 -1
  1042. package/dist/browser/react/use-action.js +0 -134
  1043. package/dist/browser/react/use-action.js.map +0 -1
  1044. package/dist/browser/react/use-client-cache.d.ts +0 -41
  1045. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  1046. package/dist/browser/react/use-client-cache.js +0 -39
  1047. package/dist/browser/react/use-client-cache.js.map +0 -1
  1048. package/dist/browser/react/use-handle.d.ts +0 -31
  1049. package/dist/browser/react/use-handle.d.ts.map +0 -1
  1050. package/dist/browser/react/use-handle.js +0 -144
  1051. package/dist/browser/react/use-handle.js.map +0 -1
  1052. package/dist/browser/react/use-href.d.ts +0 -33
  1053. package/dist/browser/react/use-href.d.ts.map +0 -1
  1054. package/dist/browser/react/use-href.js +0 -39
  1055. package/dist/browser/react/use-href.js.map +0 -1
  1056. package/dist/browser/react/use-link-status.d.ts +0 -37
  1057. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  1058. package/dist/browser/react/use-link-status.js +0 -99
  1059. package/dist/browser/react/use-link-status.js.map +0 -1
  1060. package/dist/browser/react/use-mount.d.ts +0 -25
  1061. package/dist/browser/react/use-mount.d.ts.map +0 -1
  1062. package/dist/browser/react/use-mount.js +0 -30
  1063. package/dist/browser/react/use-mount.js.map +0 -1
  1064. package/dist/browser/react/use-navigation.d.ts +0 -27
  1065. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  1066. package/dist/browser/react/use-navigation.js +0 -87
  1067. package/dist/browser/react/use-navigation.js.map +0 -1
  1068. package/dist/browser/react/use-segments.d.ts +0 -38
  1069. package/dist/browser/react/use-segments.d.ts.map +0 -1
  1070. package/dist/browser/react/use-segments.js +0 -130
  1071. package/dist/browser/react/use-segments.js.map +0 -1
  1072. package/dist/browser/request-controller.d.ts +0 -26
  1073. package/dist/browser/request-controller.d.ts.map +0 -1
  1074. package/dist/browser/request-controller.js +0 -147
  1075. package/dist/browser/request-controller.js.map +0 -1
  1076. package/dist/browser/rsc-router.d.ts +0 -129
  1077. package/dist/browser/rsc-router.d.ts.map +0 -1
  1078. package/dist/browser/rsc-router.js +0 -195
  1079. package/dist/browser/rsc-router.js.map +0 -1
  1080. package/dist/browser/scroll-restoration.d.ts +0 -93
  1081. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  1082. package/dist/browser/scroll-restoration.js +0 -321
  1083. package/dist/browser/scroll-restoration.js.map +0 -1
  1084. package/dist/browser/segment-structure-assert.d.ts +0 -17
  1085. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  1086. package/dist/browser/segment-structure-assert.js +0 -59
  1087. package/dist/browser/segment-structure-assert.js.map +0 -1
  1088. package/dist/browser/server-action-bridge.d.ts +0 -26
  1089. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  1090. package/dist/browser/server-action-bridge.js +0 -668
  1091. package/dist/browser/server-action-bridge.js.map +0 -1
  1092. package/dist/browser/shallow.d.ts +0 -12
  1093. package/dist/browser/shallow.d.ts.map +0 -1
  1094. package/dist/browser/shallow.js +0 -34
  1095. package/dist/browser/shallow.js.map +0 -1
  1096. package/dist/browser/types.d.ts +0 -369
  1097. package/dist/browser/types.d.ts.map +0 -1
  1098. package/dist/browser/types.js +0 -2
  1099. package/dist/browser/types.js.map +0 -1
  1100. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  1101. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  1102. package/dist/build/__tests__/generate-cli.test.js +0 -237
  1103. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  1104. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  1105. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  1106. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  1107. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  1108. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  1109. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  1110. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  1111. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  1112. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  1113. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  1114. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  1115. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  1116. package/dist/build/generate-manifest.d.ts +0 -81
  1117. package/dist/build/generate-manifest.d.ts.map +0 -1
  1118. package/dist/build/generate-manifest.js +0 -276
  1119. package/dist/build/generate-manifest.js.map +0 -1
  1120. package/dist/build/generate-route-types.d.ts +0 -115
  1121. package/dist/build/generate-route-types.d.ts.map +0 -1
  1122. package/dist/build/generate-route-types.js +0 -740
  1123. package/dist/build/generate-route-types.js.map +0 -1
  1124. package/dist/build/index.d.ts +0 -21
  1125. package/dist/build/index.d.ts.map +0 -1
  1126. package/dist/build/index.js +0 -21
  1127. package/dist/build/index.js.map +0 -1
  1128. package/dist/build/route-trie.d.ts +0 -71
  1129. package/dist/build/route-trie.d.ts.map +0 -1
  1130. package/dist/build/route-trie.js +0 -175
  1131. package/dist/build/route-trie.js.map +0 -1
  1132. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  1133. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  1134. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  1135. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  1136. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  1137. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  1138. package/dist/cache/__tests__/document-cache.test.js +0 -345
  1139. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  1140. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  1141. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  1142. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  1143. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  1144. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  1145. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  1146. package/dist/cache/__tests__/memory-store.test.js +0 -367
  1147. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  1148. package/dist/cache/cache-scope.d.ts +0 -102
  1149. package/dist/cache/cache-scope.d.ts.map +0 -1
  1150. package/dist/cache/cache-scope.js +0 -440
  1151. package/dist/cache/cache-scope.js.map +0 -1
  1152. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  1153. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  1154. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  1155. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  1156. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  1157. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  1158. package/dist/cache/cf/cf-cache-store.js +0 -242
  1159. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  1160. package/dist/cache/cf/index.d.ts +0 -14
  1161. package/dist/cache/cf/index.d.ts.map +0 -1
  1162. package/dist/cache/cf/index.js +0 -17
  1163. package/dist/cache/cf/index.js.map +0 -1
  1164. package/dist/cache/document-cache.d.ts +0 -64
  1165. package/dist/cache/document-cache.d.ts.map +0 -1
  1166. package/dist/cache/document-cache.js +0 -228
  1167. package/dist/cache/document-cache.js.map +0 -1
  1168. package/dist/cache/index.d.ts +0 -19
  1169. package/dist/cache/index.d.ts.map +0 -1
  1170. package/dist/cache/index.js +0 -21
  1171. package/dist/cache/index.js.map +0 -1
  1172. package/dist/cache/memory-segment-store.d.ts +0 -110
  1173. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  1174. package/dist/cache/memory-segment-store.js +0 -117
  1175. package/dist/cache/memory-segment-store.js.map +0 -1
  1176. package/dist/cache/memory-store.d.ts +0 -41
  1177. package/dist/cache/memory-store.d.ts.map +0 -1
  1178. package/dist/cache/memory-store.js +0 -191
  1179. package/dist/cache/memory-store.js.map +0 -1
  1180. package/dist/cache/types.d.ts +0 -317
  1181. package/dist/cache/types.d.ts.map +0 -1
  1182. package/dist/cache/types.js +0 -12
  1183. package/dist/cache/types.js.map +0 -1
  1184. package/dist/client.d.ts +0 -248
  1185. package/dist/client.d.ts.map +0 -1
  1186. package/dist/client.js +0 -367
  1187. package/dist/client.js.map +0 -1
  1188. package/dist/client.rsc.d.ts +0 -26
  1189. package/dist/client.rsc.d.ts.map +0 -1
  1190. package/dist/client.rsc.js +0 -46
  1191. package/dist/client.rsc.js.map +0 -1
  1192. package/dist/component-utils.d.ts +0 -36
  1193. package/dist/component-utils.d.ts.map +0 -1
  1194. package/dist/component-utils.js +0 -61
  1195. package/dist/component-utils.js.map +0 -1
  1196. package/dist/components/DefaultDocument.d.ts +0 -13
  1197. package/dist/components/DefaultDocument.d.ts.map +0 -1
  1198. package/dist/components/DefaultDocument.js +0 -15
  1199. package/dist/components/DefaultDocument.js.map +0 -1
  1200. package/dist/debug.d.ts +0 -58
  1201. package/dist/debug.d.ts.map +0 -1
  1202. package/dist/debug.js +0 -157
  1203. package/dist/debug.js.map +0 -1
  1204. package/dist/default-error-boundary.d.ts +0 -11
  1205. package/dist/default-error-boundary.d.ts.map +0 -1
  1206. package/dist/default-error-boundary.js +0 -45
  1207. package/dist/default-error-boundary.js.map +0 -1
  1208. package/dist/deps/browser.d.ts +0 -2
  1209. package/dist/deps/browser.d.ts.map +0 -1
  1210. package/dist/deps/browser.js +0 -3
  1211. package/dist/deps/browser.js.map +0 -1
  1212. package/dist/deps/html-stream-client.d.ts +0 -2
  1213. package/dist/deps/html-stream-client.d.ts.map +0 -1
  1214. package/dist/deps/html-stream-client.js +0 -3
  1215. package/dist/deps/html-stream-client.js.map +0 -1
  1216. package/dist/deps/html-stream-server.d.ts +0 -2
  1217. package/dist/deps/html-stream-server.d.ts.map +0 -1
  1218. package/dist/deps/html-stream-server.js +0 -3
  1219. package/dist/deps/html-stream-server.js.map +0 -1
  1220. package/dist/deps/rsc.d.ts +0 -2
  1221. package/dist/deps/rsc.d.ts.map +0 -1
  1222. package/dist/deps/rsc.js +0 -4
  1223. package/dist/deps/rsc.js.map +0 -1
  1224. package/dist/deps/ssr.d.ts +0 -2
  1225. package/dist/deps/ssr.d.ts.map +0 -1
  1226. package/dist/deps/ssr.js +0 -3
  1227. package/dist/deps/ssr.js.map +0 -1
  1228. package/dist/errors.d.ts +0 -174
  1229. package/dist/errors.d.ts.map +0 -1
  1230. package/dist/errors.js +0 -241
  1231. package/dist/errors.js.map +0 -1
  1232. package/dist/handle.d.ts +0 -78
  1233. package/dist/handle.d.ts.map +0 -1
  1234. package/dist/handle.js +0 -82
  1235. package/dist/handle.js.map +0 -1
  1236. package/dist/handles/MetaTags.d.ts +0 -14
  1237. package/dist/handles/MetaTags.d.ts.map +0 -1
  1238. package/dist/handles/MetaTags.js +0 -136
  1239. package/dist/handles/MetaTags.js.map +0 -1
  1240. package/dist/handles/index.d.ts +0 -6
  1241. package/dist/handles/index.d.ts.map +0 -1
  1242. package/dist/handles/index.js +0 -6
  1243. package/dist/handles/index.js.map +0 -1
  1244. package/dist/handles/meta.d.ts +0 -39
  1245. package/dist/handles/meta.d.ts.map +0 -1
  1246. package/dist/handles/meta.js +0 -202
  1247. package/dist/handles/meta.js.map +0 -1
  1248. package/dist/host/__tests__/errors.test.d.ts +0 -2
  1249. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  1250. package/dist/host/__tests__/errors.test.js +0 -76
  1251. package/dist/host/__tests__/errors.test.js.map +0 -1
  1252. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  1253. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  1254. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  1255. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  1256. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  1257. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  1258. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  1259. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  1260. package/dist/host/__tests__/router.test.d.ts +0 -2
  1261. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  1262. package/dist/host/__tests__/router.test.js +0 -241
  1263. package/dist/host/__tests__/router.test.js.map +0 -1
  1264. package/dist/host/__tests__/testing.test.d.ts +0 -2
  1265. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  1266. package/dist/host/__tests__/testing.test.js +0 -64
  1267. package/dist/host/__tests__/testing.test.js.map +0 -1
  1268. package/dist/host/__tests__/utils.test.d.ts +0 -2
  1269. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  1270. package/dist/host/__tests__/utils.test.js +0 -29
  1271. package/dist/host/__tests__/utils.test.js.map +0 -1
  1272. package/dist/host/cookie-handler.d.ts +0 -34
  1273. package/dist/host/cookie-handler.d.ts.map +0 -1
  1274. package/dist/host/cookie-handler.js +0 -124
  1275. package/dist/host/cookie-handler.js.map +0 -1
  1276. package/dist/host/errors.d.ts +0 -56
  1277. package/dist/host/errors.d.ts.map +0 -1
  1278. package/dist/host/errors.js +0 -79
  1279. package/dist/host/errors.js.map +0 -1
  1280. package/dist/host/index.d.ts +0 -29
  1281. package/dist/host/index.d.ts.map +0 -1
  1282. package/dist/host/index.js +0 -32
  1283. package/dist/host/index.js.map +0 -1
  1284. package/dist/host/pattern-matcher.d.ts +0 -36
  1285. package/dist/host/pattern-matcher.d.ts.map +0 -1
  1286. package/dist/host/pattern-matcher.js +0 -172
  1287. package/dist/host/pattern-matcher.js.map +0 -1
  1288. package/dist/host/router.d.ts +0 -26
  1289. package/dist/host/router.d.ts.map +0 -1
  1290. package/dist/host/router.js +0 -218
  1291. package/dist/host/router.js.map +0 -1
  1292. package/dist/host/testing.d.ts +0 -36
  1293. package/dist/host/testing.d.ts.map +0 -1
  1294. package/dist/host/testing.js +0 -55
  1295. package/dist/host/testing.js.map +0 -1
  1296. package/dist/host/types.d.ts +0 -115
  1297. package/dist/host/types.d.ts.map +0 -1
  1298. package/dist/host/types.js +0 -7
  1299. package/dist/host/types.js.map +0 -1
  1300. package/dist/host/utils.d.ts +0 -21
  1301. package/dist/host/utils.d.ts.map +0 -1
  1302. package/dist/host/utils.js +0 -23
  1303. package/dist/host/utils.js.map +0 -1
  1304. package/dist/href-client.d.ts +0 -131
  1305. package/dist/href-client.d.ts.map +0 -1
  1306. package/dist/href-client.js +0 -64
  1307. package/dist/href-client.js.map +0 -1
  1308. package/dist/href-context.d.ts +0 -29
  1309. package/dist/href-context.d.ts.map +0 -1
  1310. package/dist/href-context.js +0 -21
  1311. package/dist/href-context.js.map +0 -1
  1312. package/dist/index.d.ts +0 -73
  1313. package/dist/index.d.ts.map +0 -1
  1314. package/dist/index.js +0 -91
  1315. package/dist/index.js.map +0 -1
  1316. package/dist/index.rsc.d.ts +0 -32
  1317. package/dist/index.rsc.d.ts.map +0 -1
  1318. package/dist/index.rsc.js +0 -40
  1319. package/dist/index.rsc.js.map +0 -1
  1320. package/dist/internal-debug.d.ts +0 -2
  1321. package/dist/internal-debug.d.ts.map +0 -1
  1322. package/dist/internal-debug.js +0 -5
  1323. package/dist/internal-debug.js.map +0 -1
  1324. package/dist/loader.d.ts +0 -14
  1325. package/dist/loader.d.ts.map +0 -1
  1326. package/dist/loader.js +0 -20
  1327. package/dist/loader.js.map +0 -1
  1328. package/dist/loader.rsc.d.ts +0 -19
  1329. package/dist/loader.rsc.d.ts.map +0 -1
  1330. package/dist/loader.rsc.js +0 -99
  1331. package/dist/loader.rsc.js.map +0 -1
  1332. package/dist/network-error-thrower.d.ts +0 -17
  1333. package/dist/network-error-thrower.d.ts.map +0 -1
  1334. package/dist/network-error-thrower.js +0 -14
  1335. package/dist/network-error-thrower.js.map +0 -1
  1336. package/dist/outlet-context.d.ts +0 -13
  1337. package/dist/outlet-context.d.ts.map +0 -1
  1338. package/dist/outlet-context.js +0 -3
  1339. package/dist/outlet-context.js.map +0 -1
  1340. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  1341. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  1342. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  1343. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  1344. package/dist/prerender/param-hash.d.ts +0 -16
  1345. package/dist/prerender/param-hash.d.ts.map +0 -1
  1346. package/dist/prerender/param-hash.js +0 -36
  1347. package/dist/prerender/param-hash.js.map +0 -1
  1348. package/dist/prerender/store.d.ts +0 -38
  1349. package/dist/prerender/store.d.ts.map +0 -1
  1350. package/dist/prerender/store.js +0 -61
  1351. package/dist/prerender/store.js.map +0 -1
  1352. package/dist/prerender.d.ts +0 -66
  1353. package/dist/prerender.d.ts.map +0 -1
  1354. package/dist/prerender.js +0 -57
  1355. package/dist/prerender.js.map +0 -1
  1356. package/dist/reverse.d.ts +0 -196
  1357. package/dist/reverse.d.ts.map +0 -1
  1358. package/dist/reverse.js +0 -78
  1359. package/dist/reverse.js.map +0 -1
  1360. package/dist/root-error-boundary.d.ts +0 -33
  1361. package/dist/root-error-boundary.d.ts.map +0 -1
  1362. package/dist/root-error-boundary.js +0 -165
  1363. package/dist/root-error-boundary.js.map +0 -1
  1364. package/dist/route-content-wrapper.d.ts +0 -46
  1365. package/dist/route-content-wrapper.d.ts.map +0 -1
  1366. package/dist/route-content-wrapper.js +0 -77
  1367. package/dist/route-content-wrapper.js.map +0 -1
  1368. package/dist/route-definition.d.ts +0 -421
  1369. package/dist/route-definition.d.ts.map +0 -1
  1370. package/dist/route-definition.js +0 -868
  1371. package/dist/route-definition.js.map +0 -1
  1372. package/dist/route-map-builder.d.ts +0 -155
  1373. package/dist/route-map-builder.d.ts.map +0 -1
  1374. package/dist/route-map-builder.js +0 -237
  1375. package/dist/route-map-builder.js.map +0 -1
  1376. package/dist/route-types.d.ts +0 -165
  1377. package/dist/route-types.d.ts.map +0 -1
  1378. package/dist/route-types.js +0 -7
  1379. package/dist/route-types.js.map +0 -1
  1380. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  1381. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  1382. package/dist/router/__tests__/handler-context.test.js +0 -65
  1383. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  1384. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  1385. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  1386. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  1387. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  1388. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  1389. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  1390. package/dist/router/__tests__/match-context.test.js +0 -92
  1391. package/dist/router/__tests__/match-context.test.js.map +0 -1
  1392. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  1393. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  1394. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  1395. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  1396. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  1397. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  1398. package/dist/router/__tests__/match-result.test.js +0 -457
  1399. package/dist/router/__tests__/match-result.test.js.map +0 -1
  1400. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  1401. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  1402. package/dist/router/__tests__/on-error.test.js +0 -678
  1403. package/dist/router/__tests__/on-error.test.js.map +0 -1
  1404. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  1405. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  1406. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  1407. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  1408. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  1409. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  1410. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  1411. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  1412. package/dist/router/error-handling.d.ts +0 -77
  1413. package/dist/router/error-handling.d.ts.map +0 -1
  1414. package/dist/router/error-handling.js +0 -202
  1415. package/dist/router/error-handling.js.map +0 -1
  1416. package/dist/router/handler-context.d.ts +0 -20
  1417. package/dist/router/handler-context.d.ts.map +0 -1
  1418. package/dist/router/handler-context.js +0 -198
  1419. package/dist/router/handler-context.js.map +0 -1
  1420. package/dist/router/intercept-resolution.d.ts +0 -66
  1421. package/dist/router/intercept-resolution.d.ts.map +0 -1
  1422. package/dist/router/intercept-resolution.js +0 -246
  1423. package/dist/router/intercept-resolution.js.map +0 -1
  1424. package/dist/router/loader-resolution.d.ts +0 -64
  1425. package/dist/router/loader-resolution.d.ts.map +0 -1
  1426. package/dist/router/loader-resolution.js +0 -284
  1427. package/dist/router/loader-resolution.js.map +0 -1
  1428. package/dist/router/logging.d.ts +0 -15
  1429. package/dist/router/logging.d.ts.map +0 -1
  1430. package/dist/router/logging.js +0 -99
  1431. package/dist/router/logging.js.map +0 -1
  1432. package/dist/router/manifest.d.ts +0 -22
  1433. package/dist/router/manifest.d.ts.map +0 -1
  1434. package/dist/router/manifest.js +0 -181
  1435. package/dist/router/manifest.js.map +0 -1
  1436. package/dist/router/match-api.d.ts +0 -35
  1437. package/dist/router/match-api.d.ts.map +0 -1
  1438. package/dist/router/match-api.js +0 -406
  1439. package/dist/router/match-api.js.map +0 -1
  1440. package/dist/router/match-context.d.ts +0 -206
  1441. package/dist/router/match-context.d.ts.map +0 -1
  1442. package/dist/router/match-context.js +0 -17
  1443. package/dist/router/match-context.js.map +0 -1
  1444. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  1445. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  1446. package/dist/router/match-middleware/background-revalidation.js +0 -75
  1447. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  1448. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  1449. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  1450. package/dist/router/match-middleware/cache-lookup.js +0 -257
  1451. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  1452. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  1453. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  1454. package/dist/router/match-middleware/cache-store.js +0 -108
  1455. package/dist/router/match-middleware/cache-store.js.map +0 -1
  1456. package/dist/router/match-middleware/index.d.ts +0 -81
  1457. package/dist/router/match-middleware/index.d.ts.map +0 -1
  1458. package/dist/router/match-middleware/index.js +0 -80
  1459. package/dist/router/match-middleware/index.js.map +0 -1
  1460. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  1461. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  1462. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  1463. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  1464. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  1465. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  1466. package/dist/router/match-middleware/segment-resolution.js +0 -53
  1467. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  1468. package/dist/router/match-pipelines.d.ts +0 -147
  1469. package/dist/router/match-pipelines.d.ts.map +0 -1
  1470. package/dist/router/match-pipelines.js +0 -82
  1471. package/dist/router/match-pipelines.js.map +0 -1
  1472. package/dist/router/match-result.d.ts +0 -126
  1473. package/dist/router/match-result.d.ts.map +0 -1
  1474. package/dist/router/match-result.js +0 -93
  1475. package/dist/router/match-result.js.map +0 -1
  1476. package/dist/router/metrics.d.ts +0 -20
  1477. package/dist/router/metrics.d.ts.map +0 -1
  1478. package/dist/router/metrics.js +0 -47
  1479. package/dist/router/metrics.js.map +0 -1
  1480. package/dist/router/middleware.d.ts +0 -249
  1481. package/dist/router/middleware.d.ts.map +0 -1
  1482. package/dist/router/middleware.js +0 -434
  1483. package/dist/router/middleware.js.map +0 -1
  1484. package/dist/router/middleware.test.d.ts +0 -2
  1485. package/dist/router/middleware.test.d.ts.map +0 -1
  1486. package/dist/router/middleware.test.js +0 -816
  1487. package/dist/router/middleware.test.js.map +0 -1
  1488. package/dist/router/pattern-matching.d.ts +0 -149
  1489. package/dist/router/pattern-matching.d.ts.map +0 -1
  1490. package/dist/router/pattern-matching.js +0 -349
  1491. package/dist/router/pattern-matching.js.map +0 -1
  1492. package/dist/router/revalidation.d.ts +0 -44
  1493. package/dist/router/revalidation.d.ts.map +0 -1
  1494. package/dist/router/revalidation.js +0 -147
  1495. package/dist/router/revalidation.js.map +0 -1
  1496. package/dist/router/router-context.d.ts +0 -135
  1497. package/dist/router/router-context.d.ts.map +0 -1
  1498. package/dist/router/router-context.js +0 -36
  1499. package/dist/router/router-context.js.map +0 -1
  1500. package/dist/router/segment-resolution.d.ts +0 -127
  1501. package/dist/router/segment-resolution.d.ts.map +0 -1
  1502. package/dist/router/segment-resolution.js +0 -919
  1503. package/dist/router/segment-resolution.js.map +0 -1
  1504. package/dist/router/trie-matching.d.ts +0 -40
  1505. package/dist/router/trie-matching.d.ts.map +0 -1
  1506. package/dist/router/trie-matching.js +0 -127
  1507. package/dist/router/trie-matching.js.map +0 -1
  1508. package/dist/router/types.d.ts +0 -136
  1509. package/dist/router/types.d.ts.map +0 -1
  1510. package/dist/router/types.js +0 -7
  1511. package/dist/router/types.js.map +0 -1
  1512. package/dist/router.d.ts +0 -753
  1513. package/dist/router.d.ts.map +0 -1
  1514. package/dist/router.gen.d.ts +0 -6
  1515. package/dist/router.gen.d.ts.map +0 -1
  1516. package/dist/router.gen.js +0 -6
  1517. package/dist/router.gen.js.map +0 -1
  1518. package/dist/router.js +0 -1304
  1519. package/dist/router.js.map +0 -1
  1520. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1521. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1522. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1523. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1524. package/dist/rsc/handler.d.ts +0 -45
  1525. package/dist/rsc/handler.d.ts.map +0 -1
  1526. package/dist/rsc/handler.js +0 -1172
  1527. package/dist/rsc/handler.js.map +0 -1
  1528. package/dist/rsc/helpers.d.ts +0 -16
  1529. package/dist/rsc/helpers.d.ts.map +0 -1
  1530. package/dist/rsc/helpers.js +0 -55
  1531. package/dist/rsc/helpers.js.map +0 -1
  1532. package/dist/rsc/index.d.ts +0 -22
  1533. package/dist/rsc/index.d.ts.map +0 -1
  1534. package/dist/rsc/index.js +0 -23
  1535. package/dist/rsc/index.js.map +0 -1
  1536. package/dist/rsc/nonce.d.ts +0 -9
  1537. package/dist/rsc/nonce.d.ts.map +0 -1
  1538. package/dist/rsc/nonce.js +0 -18
  1539. package/dist/rsc/nonce.js.map +0 -1
  1540. package/dist/rsc/types.d.ts +0 -206
  1541. package/dist/rsc/types.d.ts.map +0 -1
  1542. package/dist/rsc/types.js +0 -8
  1543. package/dist/rsc/types.js.map +0 -1
  1544. package/dist/search-params.d.ts +0 -103
  1545. package/dist/search-params.d.ts.map +0 -1
  1546. package/dist/search-params.js +0 -74
  1547. package/dist/search-params.js.map +0 -1
  1548. package/dist/segment-system.d.ts +0 -75
  1549. package/dist/segment-system.d.ts.map +0 -1
  1550. package/dist/segment-system.js +0 -336
  1551. package/dist/segment-system.js.map +0 -1
  1552. package/dist/server/context.d.ts +0 -245
  1553. package/dist/server/context.d.ts.map +0 -1
  1554. package/dist/server/context.js +0 -197
  1555. package/dist/server/context.js.map +0 -1
  1556. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1557. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1558. package/dist/server/fetchable-loader-store.js +0 -18
  1559. package/dist/server/fetchable-loader-store.js.map +0 -1
  1560. package/dist/server/handle-store.d.ts +0 -85
  1561. package/dist/server/handle-store.d.ts.map +0 -1
  1562. package/dist/server/handle-store.js +0 -142
  1563. package/dist/server/handle-store.js.map +0 -1
  1564. package/dist/server/loader-registry.d.ts +0 -55
  1565. package/dist/server/loader-registry.d.ts.map +0 -1
  1566. package/dist/server/loader-registry.js +0 -132
  1567. package/dist/server/loader-registry.js.map +0 -1
  1568. package/dist/server/request-context.d.ts +0 -226
  1569. package/dist/server/request-context.d.ts.map +0 -1
  1570. package/dist/server/request-context.js +0 -290
  1571. package/dist/server/request-context.js.map +0 -1
  1572. package/dist/server/root-layout.d.ts +0 -4
  1573. package/dist/server/root-layout.d.ts.map +0 -1
  1574. package/dist/server/root-layout.js +0 -5
  1575. package/dist/server/root-layout.js.map +0 -1
  1576. package/dist/server.d.ts +0 -15
  1577. package/dist/server.d.ts.map +0 -1
  1578. package/dist/server.js +0 -20
  1579. package/dist/server.js.map +0 -1
  1580. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1581. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1582. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1583. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1584. package/dist/ssr/index.d.ts +0 -98
  1585. package/dist/ssr/index.d.ts.map +0 -1
  1586. package/dist/ssr/index.js +0 -158
  1587. package/dist/ssr/index.js.map +0 -1
  1588. package/dist/static-handler.d.ts +0 -50
  1589. package/dist/static-handler.d.ts.map +0 -1
  1590. package/dist/static-handler.gen.d.ts +0 -5
  1591. package/dist/static-handler.gen.d.ts.map +0 -1
  1592. package/dist/static-handler.gen.js +0 -5
  1593. package/dist/static-handler.gen.js.map +0 -1
  1594. package/dist/static-handler.js +0 -29
  1595. package/dist/static-handler.js.map +0 -1
  1596. package/dist/theme/ThemeProvider.d.ts +0 -20
  1597. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1598. package/dist/theme/ThemeProvider.js +0 -240
  1599. package/dist/theme/ThemeProvider.js.map +0 -1
  1600. package/dist/theme/ThemeScript.d.ts +0 -48
  1601. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1602. package/dist/theme/ThemeScript.js +0 -13
  1603. package/dist/theme/ThemeScript.js.map +0 -1
  1604. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1605. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1606. package/dist/theme/__tests__/theme.test.js +0 -103
  1607. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1608. package/dist/theme/constants.d.ts +0 -29
  1609. package/dist/theme/constants.d.ts.map +0 -1
  1610. package/dist/theme/constants.js +0 -48
  1611. package/dist/theme/constants.js.map +0 -1
  1612. package/dist/theme/index.d.ts +0 -31
  1613. package/dist/theme/index.d.ts.map +0 -1
  1614. package/dist/theme/index.js +0 -36
  1615. package/dist/theme/index.js.map +0 -1
  1616. package/dist/theme/theme-context.d.ts +0 -40
  1617. package/dist/theme/theme-context.d.ts.map +0 -1
  1618. package/dist/theme/theme-context.js +0 -60
  1619. package/dist/theme/theme-context.js.map +0 -1
  1620. package/dist/theme/theme-script.d.ts +0 -27
  1621. package/dist/theme/theme-script.d.ts.map +0 -1
  1622. package/dist/theme/theme-script.js +0 -147
  1623. package/dist/theme/theme-script.js.map +0 -1
  1624. package/dist/theme/types.d.ts +0 -163
  1625. package/dist/theme/types.d.ts.map +0 -1
  1626. package/dist/theme/types.js +0 -11
  1627. package/dist/theme/types.js.map +0 -1
  1628. package/dist/theme/use-theme.d.ts +0 -12
  1629. package/dist/theme/use-theme.d.ts.map +0 -1
  1630. package/dist/theme/use-theme.js +0 -40
  1631. package/dist/theme/use-theme.js.map +0 -1
  1632. package/dist/types.d.ts +0 -1479
  1633. package/dist/types.d.ts.map +0 -1
  1634. package/dist/types.js +0 -10
  1635. package/dist/types.js.map +0 -1
  1636. package/dist/urls.d.ts +0 -441
  1637. package/dist/urls.d.ts.map +0 -1
  1638. package/dist/urls.gen.d.ts +0 -8
  1639. package/dist/urls.gen.d.ts.map +0 -1
  1640. package/dist/urls.gen.js +0 -8
  1641. package/dist/urls.gen.js.map +0 -1
  1642. package/dist/urls.js +0 -443
  1643. package/dist/urls.js.map +0 -1
  1644. package/dist/use-loader.d.ts +0 -127
  1645. package/dist/use-loader.d.ts.map +0 -1
  1646. package/dist/use-loader.js +0 -237
  1647. package/dist/use-loader.js.map +0 -1
  1648. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1649. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1650. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1651. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1652. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1653. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1654. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1655. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1656. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1657. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1658. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1659. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1660. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1661. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1662. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1663. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1664. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1665. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1666. package/dist/vite/ast-handler-extract.js +0 -249
  1667. package/dist/vite/ast-handler-extract.js.map +0 -1
  1668. package/dist/vite/expose-action-id.d.ts +0 -19
  1669. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1670. package/dist/vite/expose-action-id.js +0 -250
  1671. package/dist/vite/expose-action-id.js.map +0 -1
  1672. package/dist/vite/expose-id-utils.d.ts +0 -69
  1673. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1674. package/dist/vite/expose-id-utils.js +0 -289
  1675. package/dist/vite/expose-id-utils.js.map +0 -1
  1676. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1677. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1678. package/dist/vite/expose-internal-ids.js +0 -886
  1679. package/dist/vite/expose-internal-ids.js.map +0 -1
  1680. package/dist/vite/index.d.ts +0 -149
  1681. package/dist/vite/index.d.ts.map +0 -1
  1682. package/dist/vite/index.js.map +0 -1
  1683. package/dist/vite/index.named-routes.gen.ts +0 -103
  1684. package/dist/vite/package-resolution.d.ts +0 -43
  1685. package/dist/vite/package-resolution.d.ts.map +0 -1
  1686. package/dist/vite/package-resolution.js +0 -112
  1687. package/dist/vite/package-resolution.js.map +0 -1
  1688. package/dist/vite/virtual-entries.d.ts +0 -25
  1689. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1690. package/dist/vite/virtual-entries.js +0 -110
  1691. package/dist/vite/virtual-entries.js.map +0 -1
  1692. package/src/browser/action-response-classifier.ts +0 -99
  1693. package/src/browser/react/use-client-cache.ts +0 -58
  1694. package/src/browser/shallow.ts +0 -40
  1695. package/src/handles/index.ts +0 -7
  1696. package/src/network-error-thrower.tsx +0 -23
  1697. package/src/router/middleware-cookies.ts +0 -55
package/dist/bin/rango.js CHANGED
@@ -1,8 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __esm = (fn, res) => function __init() {
5
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
4
+ var __esm = (fn, res, err) => function __init() {
5
+ if (err) throw err[0];
6
+ try {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ } catch (e) {
9
+ throw err = [e], e;
10
+ }
6
11
  };
7
12
  var __export = (target, all) => {
8
13
  for (var name in all)
@@ -22,10 +27,10 @@ function extractParamsFromPattern(pattern) {
22
27
  function formatRouteEntry(key, pattern, _params, search) {
23
28
  const hasSearch = search && Object.keys(search).length > 0;
24
29
  if (!hasSearch) {
25
- return ` ${key}: "${pattern}",`;
30
+ return ` ${key}: ${JSON.stringify(pattern)},`;
26
31
  }
27
- const searchBody = Object.entries(search).map(([k, v]) => `${k}: "${v}"`).join(", ");
28
- return ` ${key}: { path: "${pattern}", search: { ${searchBody} } },`;
32
+ const searchBody = Object.entries(search).map(([k, v]) => `${k}: ${JSON.stringify(v)}`).join(", ");
33
+ return ` ${key}: { path: ${JSON.stringify(pattern)}, search: { ${searchBody} } },`;
29
34
  }
30
35
  var init_param_extraction = __esm({
31
36
  "src/build/route-types/param-extraction.ts"() {
@@ -59,8 +64,8 @@ var init_ast_helpers = __esm({
59
64
 
60
65
  // src/build/route-types/ast-route-extraction.ts
61
66
  import ts2 from "typescript";
62
- function extractRoutesFromSource(code) {
63
- const sourceFile = ts2.createSourceFile(
67
+ function extractRoutesFromSource(code, sourceFileArg) {
68
+ const sourceFile = sourceFileArg ?? ts2.createSourceFile(
64
69
  "input.tsx",
65
70
  code,
66
71
  ts2.ScriptTarget.Latest,
@@ -139,7 +144,7 @@ function generatePerModuleTypesSource(routes) {
139
144
  const valid = routes.filter(({ name }) => {
140
145
  if (!name || /["'\\`\n\r]/.test(name)) {
141
146
  console.warn(
142
- `[rsc-router] Skipping route with invalid name: ${JSON.stringify(name)}`
147
+ `[rango] Skipping route with invalid name: ${JSON.stringify(name)}`
143
148
  );
144
149
  return false;
145
150
  }
@@ -149,7 +154,7 @@ function generatePerModuleTypesSource(routes) {
149
154
  for (const { name, pattern, params, search } of valid) {
150
155
  if (deduped.has(name)) {
151
156
  console.warn(
152
- `[rsc-router] Duplicate route name "${name}" \u2014 keeping first definition`
157
+ `[rango] Duplicate route name "${name}" \u2014 keeping first definition`
153
158
  );
154
159
  continue;
155
160
  }
@@ -185,9 +190,13 @@ export const NamedRoutes = {
185
190
  ${objectBody}
186
191
  } as const;
187
192
 
193
+ // Aliased so the augmentation below does not pay a homomorphic mapped-type
194
+ // instantiation per route; \`as const\` already makes the members readonly.
195
+ type NamedRoutesShape = typeof NamedRoutes;
196
+
188
197
  declare global {
189
- namespace RSCRouter {
190
- interface GeneratedRouteMap extends Readonly<typeof NamedRoutes> {}
198
+ namespace Rango {
199
+ interface GeneratedRouteMap extends NamedRoutesShape {}
191
200
  }
192
201
  }
193
202
  `;
@@ -211,14 +220,15 @@ function findTsFiles(dir, filter) {
211
220
  entries = readdirSync(dir, { withFileTypes: true });
212
221
  } catch (err) {
213
222
  console.warn(
214
- `[rsc-router] Failed to scan directory ${dir}: ${err.message}`
223
+ `[rango] Failed to scan directory ${dir}: ${err.message}`
215
224
  );
216
225
  return results;
217
226
  }
218
227
  for (const entry of entries) {
219
228
  const fullPath = join(dir, entry.name);
220
229
  if (entry.isDirectory()) {
221
- if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
230
+ if (entry.name === "node_modules" || entry.name.startsWith(".") || entry.name === "dist" || entry.name === "build" || entry.name === "coverage")
231
+ continue;
222
232
  results.push(...findTsFiles(fullPath, filter));
223
233
  } else if ((entry.name.endsWith(".ts") || entry.name.endsWith(".tsx") || entry.name.endsWith(".js") || entry.name.endsWith(".jsx")) && !entry.name.includes(".gen.")) {
224
234
  if (filter && !filter(fullPath)) continue;
@@ -237,6 +247,33 @@ var init_scan_filter = __esm({
237
247
  import { readFileSync, existsSync } from "node:fs";
238
248
  import { dirname, resolve } from "node:path";
239
249
  import ts3 from "typescript";
250
+ function createScanMemo() {
251
+ return { files: /* @__PURE__ */ new Map(), blockSourceFiles: /* @__PURE__ */ new Map() };
252
+ }
253
+ function parseBlock(memo, block) {
254
+ if (memo) {
255
+ const cached = memo.blockSourceFiles.get(block);
256
+ if (cached) return cached;
257
+ }
258
+ const sf = ts3.createSourceFile(
259
+ "input.tsx",
260
+ block,
261
+ ts3.ScriptTarget.Latest,
262
+ true,
263
+ ts3.ScriptKind.TSX
264
+ );
265
+ if (memo) memo.blockSourceFiles.set(block, sf);
266
+ return sf;
267
+ }
268
+ function readSourceMemoized(memo, realPath) {
269
+ if (memo) {
270
+ const cached = memo.files.get(realPath);
271
+ if (cached !== void 0) return cached;
272
+ }
273
+ const source = readFileSync(realPath, "utf-8");
274
+ if (memo) memo.files.set(realPath, source);
275
+ return source;
276
+ }
240
277
  function extractNamePrefixFromInclude(node) {
241
278
  if (node.arguments.length >= 3) {
242
279
  const thirdArg = node.arguments[2];
@@ -252,8 +289,98 @@ function extractNamePrefixFromInclude(node) {
252
289
  }
253
290
  return null;
254
291
  }
255
- function extractIncludesWithDiagnostics(code) {
256
- const sourceFile = ts3.createSourceFile(
292
+ function thenSelectsNonDefaultMember(expr) {
293
+ const findThenCall = (e) => {
294
+ if (ts3.isCallExpression(e) && ts3.isPropertyAccessExpression(e.expression) && e.expression.name.text === "then") {
295
+ return e;
296
+ }
297
+ if (ts3.isCallExpression(e) && ts3.isPropertyAccessExpression(e.expression)) {
298
+ return findThenCall(e.expression.expression);
299
+ }
300
+ if (ts3.isPropertyAccessExpression(e)) return findThenCall(e.expression);
301
+ if (ts3.isParenthesizedExpression(e)) return findThenCall(e.expression);
302
+ if (ts3.isAwaitExpression(e)) return findThenCall(e.expression);
303
+ return null;
304
+ };
305
+ const thenCall = findThenCall(expr);
306
+ if (!thenCall || thenCall.arguments.length === 0) return false;
307
+ const cb = thenCall.arguments[0];
308
+ if (!ts3.isArrowFunction(cb) && !ts3.isFunctionExpression(cb)) return false;
309
+ let ret;
310
+ if (ts3.isBlock(cb.body)) {
311
+ for (const stmt of cb.body.statements) {
312
+ if (ts3.isReturnStatement(stmt) && stmt.expression) {
313
+ ret = stmt.expression;
314
+ break;
315
+ }
316
+ }
317
+ } else {
318
+ ret = cb.body;
319
+ }
320
+ if (!ret) return false;
321
+ if (ts3.isPropertyAccessExpression(ret)) {
322
+ return ret.name.text !== "default";
323
+ }
324
+ return false;
325
+ }
326
+ function extractDynamicImportSpecifier(node) {
327
+ let body;
328
+ if (ts3.isArrowFunction(node) || ts3.isFunctionExpression(node)) {
329
+ body = node.body;
330
+ }
331
+ if (!body) return null;
332
+ let expr;
333
+ if (ts3.isBlock(body)) {
334
+ for (const stmt of body.statements) {
335
+ if (ts3.isReturnStatement(stmt) && stmt.expression) {
336
+ expr = stmt.expression;
337
+ break;
338
+ }
339
+ }
340
+ } else {
341
+ expr = body;
342
+ }
343
+ if (!expr) return null;
344
+ const findImportCall = (e) => {
345
+ if (ts3.isCallExpression(e) && e.expression.kind === ts3.SyntaxKind.ImportKeyword) {
346
+ return e;
347
+ }
348
+ if (ts3.isCallExpression(e) && ts3.isPropertyAccessExpression(e.expression)) {
349
+ return findImportCall(e.expression.expression);
350
+ }
351
+ if (ts3.isPropertyAccessExpression(e)) return findImportCall(e.expression);
352
+ if (ts3.isParenthesizedExpression(e)) return findImportCall(e.expression);
353
+ if (ts3.isAwaitExpression(e)) return findImportCall(e.expression);
354
+ return null;
355
+ };
356
+ const importCall = findImportCall(expr);
357
+ if (!importCall || importCall.arguments.length === 0) return null;
358
+ if (thenSelectsNonDefaultMember(expr)) return null;
359
+ return getStringValue(importCall.arguments[0]);
360
+ }
361
+ function resolveDefaultExportTarget(code, sourceFile) {
362
+ let result = null;
363
+ function visit(node) {
364
+ if (result) return;
365
+ if (ts3.isExportAssignment(node) && !node.isExportEquals) {
366
+ const expr = node.expression;
367
+ if (ts3.isIdentifier(expr)) {
368
+ result = { variableName: expr.text };
369
+ } else if (ts3.isCallExpression(expr)) {
370
+ const callee = expr.expression;
371
+ if (ts3.isIdentifier(callee) && callee.text === "urls") {
372
+ result = { inlineBlock: expr.getText(sourceFile) };
373
+ }
374
+ }
375
+ return;
376
+ }
377
+ ts3.forEachChild(node, visit);
378
+ }
379
+ visit(sourceFile);
380
+ return result;
381
+ }
382
+ function extractIncludesWithDiagnostics(code, sourceFileArg) {
383
+ const sourceFile = sourceFileArg ?? ts3.createSourceFile(
257
384
  "input.tsx",
258
385
  code,
259
386
  ts3.ScriptTarget.Latest,
@@ -277,12 +404,19 @@ function extractIncludesWithDiagnostics(code) {
277
404
  }
278
405
  const secondArg = node.arguments[1];
279
406
  const namePrefix = extractNamePrefixFromInclude(node);
407
+ const dynamicImportSpec = extractDynamicImportSpecifier(secondArg);
280
408
  if (ts3.isIdentifier(secondArg)) {
281
409
  resolved.push({
282
410
  pathPrefix,
283
411
  variableName: secondArg.text,
284
412
  namePrefix
285
413
  });
414
+ } else if (dynamicImportSpec !== null) {
415
+ resolved.push({
416
+ pathPrefix,
417
+ moduleSpecifier: dynamicImportSpec,
418
+ namePrefix
419
+ });
286
420
  } else if (ts3.isCallExpression(secondArg)) {
287
421
  const callText = secondArg.expression.getText(sourceFile);
288
422
  unresolvable.push({
@@ -307,7 +441,7 @@ function extractIncludesWithDiagnostics(code) {
307
441
  return { resolved, unresolvable };
308
442
  }
309
443
  function resolveImportedVariable(code, localName) {
310
- const importRegex = /import\s*\{([^}]+)\}\s*from\s*["']([^"']+)["']/g;
444
+ const importRegex = /import\s*(?:[\w$]+\s*,\s*)?\{([^}]+)\}\s*from\s*["']([^"']+)["']/g;
311
445
  let match;
312
446
  while ((match = importRegex.exec(code)) !== null) {
313
447
  const imports = match[1];
@@ -344,8 +478,8 @@ function resolveImportPath(importSpec, fromFile) {
344
478
  }
345
479
  return null;
346
480
  }
347
- function extractUrlsBlockForVariable(code, varName) {
348
- const sourceFile = ts3.createSourceFile(
481
+ function extractUrlsBlockForVariable(code, varName, sourceFileArg) {
482
+ const sourceFile = sourceFileArg ?? ts3.createSourceFile(
349
483
  "input.tsx",
350
484
  code,
351
485
  ts3.ScriptTarget.Latest,
@@ -367,67 +501,113 @@ function extractUrlsBlockForVariable(code, varName) {
367
501
  visit(sourceFile);
368
502
  return result;
369
503
  }
370
- function buildRouteMapFromBlock(block, fullSource, filePath, visited, searchSchemasOut, diagnosticsOut) {
504
+ function buildRouteMapFromBlock(block, fullSource, filePath, visited, searchSchemasOut, diagnosticsOut, memo) {
371
505
  const routeMap = {};
372
- const localRoutes = extractRoutesFromSource(block);
506
+ const blockSourceFile = parseBlock(memo, block);
507
+ const localRoutes = extractRoutesFromSource(block, blockSourceFile);
373
508
  for (const { name, pattern, search } of localRoutes) {
374
509
  routeMap[name] = pattern;
375
510
  if (search && searchSchemasOut) {
376
511
  searchSchemasOut[name] = search;
377
512
  }
378
513
  }
379
- const { resolved: includes, unresolvable } = extractIncludesWithDiagnostics(block);
514
+ const { resolved: includes, unresolvable } = extractIncludesWithDiagnostics(
515
+ block,
516
+ blockSourceFile
517
+ );
380
518
  if (diagnosticsOut) {
381
519
  for (const entry of unresolvable) {
382
520
  diagnosticsOut.push({ ...entry, sourceFile: filePath });
383
521
  }
384
522
  }
385
- for (const { pathPrefix, variableName, namePrefix } of includes) {
523
+ for (const inc of includes) {
524
+ const { pathPrefix, namePrefix } = inc;
386
525
  let childResult;
387
- const imported = resolveImportedVariable(fullSource, variableName);
388
- if (imported) {
389
- const targetFile = resolveImportPath(imported.specifier, filePath);
526
+ if (inc.moduleSpecifier) {
527
+ const targetFile = resolveImportPath(inc.moduleSpecifier, filePath);
390
528
  if (!targetFile) {
391
- if (diagnosticsOut) {
392
- diagnosticsOut.push({
393
- pathPrefix,
394
- namePrefix,
395
- reason: "file-not-found",
396
- sourceFile: filePath,
397
- detail: `import "${imported.specifier}" resolved to no file`
398
- });
399
- }
529
+ diagnosticsOut?.push({
530
+ pathPrefix,
531
+ namePrefix,
532
+ reason: "file-not-found",
533
+ sourceFile: filePath,
534
+ detail: `import("${inc.moduleSpecifier}") resolved to no file`
535
+ });
400
536
  continue;
401
537
  }
402
- childResult = buildCombinedRouteMapWithSearch(
403
- targetFile,
404
- imported.exportedName,
405
- visited,
406
- diagnosticsOut
407
- );
408
- } else {
409
- const sameFileBlock = extractUrlsBlockForVariable(
410
- fullSource,
411
- variableName
538
+ let targetSource;
539
+ try {
540
+ targetSource = readSourceMemoized(memo, resolve(targetFile));
541
+ } catch (err) {
542
+ diagnosticsOut?.push({
543
+ pathPrefix,
544
+ namePrefix,
545
+ reason: "file-not-found",
546
+ sourceFile: filePath,
547
+ detail: `import("${inc.moduleSpecifier}") resolved to "${targetFile}" but reading it failed: ${err?.message ?? String(err)}`
548
+ });
549
+ continue;
550
+ }
551
+ const def = resolveDefaultExportTarget(
552
+ targetSource,
553
+ parseBlock(memo, targetSource)
412
554
  );
413
- if (!sameFileBlock) {
414
- if (diagnosticsOut) {
415
- diagnosticsOut.push({
416
- pathPrefix,
417
- namePrefix,
418
- reason: "unresolvable-import",
419
- sourceFile: filePath,
420
- detail: `variable "${variableName}" not found in imports or same-file scope`
421
- });
422
- }
555
+ if (!def) {
556
+ diagnosticsOut?.push({
557
+ pathPrefix,
558
+ namePrefix,
559
+ reason: "unresolvable-import",
560
+ sourceFile: filePath,
561
+ detail: `import("${inc.moduleSpecifier}") has no resolvable \`export default urls(...)\``
562
+ });
423
563
  continue;
424
564
  }
425
- childResult = buildCombinedRouteMapWithSearch(
426
- filePath,
565
+ if (def.inlineBlock) {
566
+ childResult = buildCombinedRouteMapWithSearch(
567
+ targetFile,
568
+ void 0,
569
+ visited,
570
+ diagnosticsOut,
571
+ def.inlineBlock,
572
+ memo
573
+ );
574
+ } else {
575
+ const variableName = def.variableName;
576
+ const resolved = resolveIncludedVariable({
577
+ variableName,
578
+ resolutionFile: targetFile,
579
+ resolutionSource: targetSource,
580
+ reportFile: filePath,
581
+ memo,
582
+ visited,
583
+ diagnosticsOut,
584
+ pathPrefix,
585
+ namePrefix,
586
+ fileNotFoundDetail: (specifier) => `import("${inc.moduleSpecifier}") default re-exports "${variableName}" from "${specifier}", which resolved to no file`,
587
+ notFoundDetail: () => `import("${inc.moduleSpecifier}") default "${variableName}" not found in its imports or same-file scope`
588
+ });
589
+ if (!resolved) continue;
590
+ childResult = resolved;
591
+ }
592
+ } else if (inc.variableName) {
593
+ const variableName = inc.variableName;
594
+ const resolved = resolveIncludedVariable({
427
595
  variableName,
596
+ resolutionFile: filePath,
597
+ resolutionSource: fullSource,
598
+ reportFile: filePath,
599
+ memo,
428
600
  visited,
429
- diagnosticsOut
430
- );
601
+ diagnosticsOut,
602
+ pathPrefix,
603
+ namePrefix,
604
+ fileNotFoundDetail: (specifier) => `import "${specifier}" resolved to no file`,
605
+ notFoundDetail: () => `variable "${variableName}" not found in imports or same-file scope`
606
+ });
607
+ if (!resolved) continue;
608
+ childResult = resolved;
609
+ } else {
610
+ continue;
431
611
  }
432
612
  if (namePrefix === null) {
433
613
  continue;
@@ -450,24 +630,89 @@ function buildRouteMapFromBlock(block, fullSource, filePath, visited, searchSche
450
630
  }
451
631
  return routeMap;
452
632
  }
453
- function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagnosticsOut) {
633
+ function resolveIncludedVariable(opts) {
634
+ const {
635
+ variableName,
636
+ resolutionFile,
637
+ resolutionSource,
638
+ reportFile,
639
+ memo,
640
+ visited,
641
+ diagnosticsOut,
642
+ pathPrefix,
643
+ namePrefix
644
+ } = opts;
645
+ const imported = resolveImportedVariable(resolutionSource, variableName);
646
+ if (imported) {
647
+ const targetFile = resolveImportPath(imported.specifier, resolutionFile);
648
+ if (!targetFile) {
649
+ diagnosticsOut?.push({
650
+ pathPrefix,
651
+ namePrefix,
652
+ reason: "file-not-found",
653
+ sourceFile: reportFile,
654
+ detail: opts.fileNotFoundDetail(imported.specifier)
655
+ });
656
+ return null;
657
+ }
658
+ return buildCombinedRouteMapWithSearch(
659
+ targetFile,
660
+ imported.exportedName,
661
+ visited,
662
+ diagnosticsOut,
663
+ void 0,
664
+ memo
665
+ );
666
+ }
667
+ const sameFileBlock = extractUrlsBlockForVariable(
668
+ resolutionSource,
669
+ variableName,
670
+ parseBlock(memo, resolutionSource)
671
+ );
672
+ if (!sameFileBlock) {
673
+ diagnosticsOut?.push({
674
+ pathPrefix,
675
+ namePrefix,
676
+ reason: "unresolvable-import",
677
+ sourceFile: reportFile,
678
+ detail: opts.notFoundDetail()
679
+ });
680
+ return null;
681
+ }
682
+ return buildCombinedRouteMapWithSearch(
683
+ resolutionFile,
684
+ variableName,
685
+ visited,
686
+ diagnosticsOut,
687
+ void 0,
688
+ memo
689
+ );
690
+ }
691
+ function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagnosticsOut, inlineBlock, memo) {
454
692
  visited = visited ?? /* @__PURE__ */ new Set();
693
+ memo = memo ?? createScanMemo();
455
694
  const realPath = resolve(filePath);
456
695
  const key = variableName ? `${realPath}:${variableName}` : realPath;
457
696
  if (visited.has(key)) {
458
- console.warn(`[rsc-router] Circular include detected, skipping: ${key}`);
697
+ console.warn(`[rango] Circular include detected, skipping: ${key}`);
459
698
  return { routes: {}, searchSchemas: {} };
460
699
  }
461
700
  visited.add(key);
462
701
  let source;
463
702
  try {
464
- source = readFileSync(realPath, "utf-8");
703
+ source = readSourceMemoized(memo, realPath);
465
704
  } catch {
466
705
  return { routes: {}, searchSchemas: {} };
467
706
  }
468
707
  let block;
469
- if (variableName) {
470
- const extracted = extractUrlsBlockForVariable(source, variableName);
708
+ if (inlineBlock) {
709
+ block = inlineBlock;
710
+ } else if (variableName) {
711
+ const extracted = extractUrlsBlockForVariable(
712
+ source,
713
+ variableName,
714
+ parseBlock(memo, source)
715
+ );
471
716
  if (!extracted) return { routes: {}, searchSchemas: {} };
472
717
  block = extracted;
473
718
  } else {
@@ -480,7 +725,8 @@ function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagno
480
725
  realPath,
481
726
  visited,
482
727
  searchSchemas,
483
- diagnosticsOut
728
+ diagnosticsOut,
729
+ memo
484
730
  );
485
731
  visited.delete(key);
486
732
  return { routes, searchSchemas };
@@ -525,8 +771,16 @@ function writePerModuleRouteTypesForFile(filePath) {
525
771
  let routes;
526
772
  if (varNames.length > 0) {
527
773
  routes = [];
774
+ const memo = createScanMemo();
528
775
  for (const varName of varNames) {
529
- const { routes: routeMap, searchSchemas } = buildCombinedRouteMapWithSearch(filePath, varName);
776
+ const { routes: routeMap, searchSchemas } = buildCombinedRouteMapWithSearch(
777
+ filePath,
778
+ varName,
779
+ void 0,
780
+ void 0,
781
+ void 0,
782
+ memo
783
+ );
530
784
  for (const [name, pattern] of Object.entries(routeMap)) {
531
785
  const params = extractParamsFromPattern(pattern);
532
786
  routes.push({
@@ -540,12 +794,12 @@ function writePerModuleRouteTypesForFile(filePath) {
540
794
  } else {
541
795
  routes = extractRoutesFromSource(source);
542
796
  }
543
- const genPath = filePath.replace(/\.(tsx?)$/, ".gen.ts");
797
+ const genPath = filePath.replace(/\.(tsx?|jsx?)$/, ".gen.ts");
544
798
  if (routes.length === 0) {
545
799
  if (varNames.length > 0 && !existsSync2(genPath)) {
546
800
  writeFileSync(genPath, generatePerModuleTypesSource([]));
547
801
  console.log(
548
- `[rsc-router] Generated route types (placeholder) -> ${genPath}`
802
+ `[rango] Generated route types (placeholder) -> ${genPath}`
549
803
  );
550
804
  }
551
805
  return;
@@ -554,11 +808,11 @@ function writePerModuleRouteTypesForFile(filePath) {
554
808
  const existing = existsSync2(genPath) ? readFileSync2(genPath, "utf-8") : null;
555
809
  if (existing !== genSource) {
556
810
  writeFileSync(genPath, genSource);
557
- console.log(`[rsc-router] Generated route types -> ${genPath}`);
811
+ console.log(`[rango] Generated route types -> ${genPath}`);
558
812
  }
559
813
  } catch (err) {
560
814
  console.warn(
561
- `[rsc-router] Failed to generate route types for ${filePath}: ${err.message}`
815
+ `[rango] Failed to generate route types for ${filePath}: ${err.message}`
562
816
  );
563
817
  }
564
818
  }
@@ -573,6 +827,131 @@ var init_per_module_writer = __esm({
573
827
  }
574
828
  });
575
829
 
830
+ // src/build/route-types/source-scan.ts
831
+ function isLineTerminator(ch) {
832
+ const c = ch.charCodeAt(0);
833
+ return c === 10 || c === 13 || c === 8232 || c === 8233;
834
+ }
835
+ function isRegexPositionAt(code, slashPos, prevChar) {
836
+ if (prevChar === void 0) return true;
837
+ if (prevChar === ")" || prevChar === "]" || prevChar === "}") return false;
838
+ if (!/[\w$]/.test(prevChar)) return true;
839
+ let k = slashPos - 1;
840
+ while (k >= 0 && /\s/.test(code[k])) k--;
841
+ const wordEnd = k + 1;
842
+ while (k >= 0 && /[\w$]/.test(code[k])) k--;
843
+ return REGEX_PRECEDING_KEYWORDS.has(code.slice(k + 1, wordEnd));
844
+ }
845
+ function makeCodeClassifier(code) {
846
+ const n = code.length;
847
+ let i = 0;
848
+ let skipStart = -1;
849
+ let skipEnd = -1;
850
+ let lastSig;
851
+ return (q) => {
852
+ if (q >= skipStart && q < skipEnd) return false;
853
+ while (i < n && i <= q) {
854
+ const c = code[i];
855
+ const d = i + 1 < n ? code[i + 1] : "";
856
+ let end = -1;
857
+ let transparent = false;
858
+ if (c === "/" && d === "/") {
859
+ let j = i + 2;
860
+ while (j < n && !isLineTerminator(code[j])) j++;
861
+ end = j;
862
+ transparent = true;
863
+ } else if (c === "/" && d === "*") {
864
+ let j = i + 2;
865
+ while (j < n && !(code[j] === "*" && code[j + 1] === "/")) j++;
866
+ end = Math.min(n, j + 2);
867
+ transparent = true;
868
+ } else if (c === '"' || c === "'" || c === "`") {
869
+ let j = i + 1;
870
+ while (j < n) {
871
+ if (code[j] === "\\") {
872
+ j += 2;
873
+ continue;
874
+ }
875
+ if (code[j] === c) {
876
+ j++;
877
+ break;
878
+ }
879
+ j++;
880
+ }
881
+ end = j;
882
+ } else if (c === "/" && d !== "/" && d !== "*" && isRegexPositionAt(code, i, lastSig)) {
883
+ let j = i + 1;
884
+ let inClass = false;
885
+ let closed = false;
886
+ while (j < n && !isLineTerminator(code[j])) {
887
+ const r = code[j];
888
+ if (r === "\\") {
889
+ j += 2;
890
+ continue;
891
+ }
892
+ if (r === "[") inClass = true;
893
+ else if (r === "]") inClass = false;
894
+ else if (r === "/" && !inClass) {
895
+ j++;
896
+ closed = true;
897
+ break;
898
+ }
899
+ j++;
900
+ }
901
+ if (closed) {
902
+ while (j < n && /[a-z]/.test(code[j])) j++;
903
+ end = j;
904
+ }
905
+ }
906
+ if (end >= 0) {
907
+ if (q < end) {
908
+ skipStart = i;
909
+ skipEnd = end;
910
+ return false;
911
+ }
912
+ i = end;
913
+ if (!transparent) lastSig = "x";
914
+ } else {
915
+ if (!/\s/.test(c)) lastSig = c;
916
+ i++;
917
+ }
918
+ }
919
+ return true;
920
+ };
921
+ }
922
+ function firstCodeMatchIndex(code, pattern) {
923
+ const inCode = makeCodeClassifier(code);
924
+ pattern.lastIndex = 0;
925
+ let m;
926
+ while ((m = pattern.exec(code)) !== null) {
927
+ if (inCode(m.index)) return m.index;
928
+ if (pattern.lastIndex <= m.index) pattern.lastIndex = m.index + 1;
929
+ }
930
+ return -1;
931
+ }
932
+ var REGEX_PRECEDING_KEYWORDS;
933
+ var init_source_scan = __esm({
934
+ "src/build/route-types/source-scan.ts"() {
935
+ "use strict";
936
+ REGEX_PRECEDING_KEYWORDS = /* @__PURE__ */ new Set([
937
+ "return",
938
+ "typeof",
939
+ "instanceof",
940
+ "in",
941
+ "of",
942
+ "new",
943
+ "delete",
944
+ "void",
945
+ "do",
946
+ "else",
947
+ "yield",
948
+ "await",
949
+ "case",
950
+ "throw"
951
+ ]);
952
+ }
953
+ });
954
+
576
955
  // src/build/route-types/router-processing.ts
577
956
  import {
578
957
  readFileSync as readFileSync3,
@@ -601,44 +980,52 @@ function countPublicRouteEntries(source) {
601
980
  return count;
602
981
  }
603
982
  function isRoutableSourceFile(name) {
604
- return (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".js") || name.endsWith(".jsx")) && !name.includes(".gen.");
983
+ return (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".js") || name.endsWith(".jsx")) && !name.includes(".gen.") && !name.includes(".test.") && !name.includes(".spec.");
605
984
  }
606
- function findRouterFilesRecursive(dir, filter, results) {
985
+ function isExcludedScanDir(name) {
986
+ return name === "node_modules" || name === "dist" || name === "coverage" || name === "__tests__" || name === "__mocks__" || name.startsWith(".");
987
+ }
988
+ function findCallSiteFilesRecursive(dir, pattern, patternG, stopAtMatchDir, filter, results) {
607
989
  let entries;
608
990
  try {
609
991
  entries = readdirSync2(dir, { withFileTypes: true });
610
992
  } catch (err) {
611
993
  console.warn(
612
- `[rsc-router] Failed to scan directory ${dir}: ${err.message}`
994
+ `[rango] Failed to scan directory ${dir}: ${err.message}`
613
995
  );
614
996
  return;
615
997
  }
616
998
  const childDirs = [];
617
- const routerFilesInDir = [];
999
+ const matchesInDir = [];
618
1000
  for (const entry of entries) {
619
1001
  const fullPath = join2(dir, entry.name);
620
1002
  if (entry.isDirectory()) {
621
- if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
622
- childDirs.push(fullPath);
1003
+ if (!isExcludedScanDir(entry.name)) childDirs.push(fullPath);
623
1004
  continue;
624
1005
  }
625
1006
  if (!isRoutableSourceFile(entry.name)) continue;
626
1007
  if (filter && !filter(fullPath)) continue;
627
1008
  try {
628
1009
  const source = readFileSync3(fullPath, "utf-8");
629
- if (ROUTER_CALL_PATTERN.test(source)) {
630
- routerFilesInDir.push(fullPath);
1010
+ if (pattern.test(source) && firstCodeMatchIndex(source, patternG) >= 0) {
1011
+ matchesInDir.push(fullPath);
631
1012
  }
632
1013
  } catch {
633
1014
  continue;
634
1015
  }
635
1016
  }
636
- if (routerFilesInDir.length > 0) {
637
- results.push(...routerFilesInDir);
638
- return;
639
- }
640
- for (const childDir of childDirs) {
641
- findRouterFilesRecursive(childDir, filter, results);
1017
+ results.push(...matchesInDir);
1018
+ if (!stopAtMatchDir || matchesInDir.length === 0) {
1019
+ for (const childDir of childDirs) {
1020
+ findCallSiteFilesRecursive(
1021
+ childDir,
1022
+ pattern,
1023
+ patternG,
1024
+ stopAtMatchDir,
1025
+ filter,
1026
+ results
1027
+ );
1028
+ }
642
1029
  }
643
1030
  }
644
1031
  function findNestedRouterConflict(routerFiles) {
@@ -664,13 +1051,13 @@ function findNestedRouterConflict(routerFiles) {
664
1051
  }
665
1052
  return null;
666
1053
  }
667
- function formatNestedRouterConflictError(conflict, prefix = "[rsc-router]") {
1054
+ function formatNestedRouterConflictError(conflict, prefix = "[rango]") {
668
1055
  return `${prefix} Nested router roots are not supported.
669
1056
  Router root: ${conflict.ancestor}
670
1057
  Nested router: ${conflict.nested}
671
1058
  Move the nested router into a sibling directory or configure it as a separate app root.`;
672
1059
  }
673
- function extractUrlsVariableFromRouter(code) {
1060
+ function extractUrlsFromRouter(code) {
674
1061
  const sourceFile = ts5.createSourceFile(
675
1062
  "router.tsx",
676
1063
  code,
@@ -684,24 +1071,70 @@ function extractUrlsVariableFromRouter(code) {
684
1071
  const callee = node.expression;
685
1072
  return ts5.isIdentifier(callee) && callee.text === "createRouter";
686
1073
  }
1074
+ function isInlineBuilder(node) {
1075
+ return ts5.isArrowFunction(node) || ts5.isFunctionExpression(node);
1076
+ }
1077
+ function isRoutesOnCreateRouter(node) {
1078
+ if (!ts5.isPropertyAccessExpression(node.expression) || node.expression.name.text !== "routes")
1079
+ return false;
1080
+ let inner = node.expression.expression;
1081
+ while (ts5.isCallExpression(inner) && ts5.isPropertyAccessExpression(inner.expression)) {
1082
+ inner = inner.expression.expression;
1083
+ }
1084
+ return isCreateRouterCall(inner);
1085
+ }
687
1086
  function visit(node) {
688
1087
  if (result) return;
689
- if (ts5.isCallExpression(node) && ts5.isPropertyAccessExpression(node.expression) && node.expression.name.text === "routes" && node.arguments.length >= 1 && ts5.isIdentifier(node.arguments[0])) {
690
- let inner = node.expression.expression;
691
- while (ts5.isCallExpression(inner) && ts5.isPropertyAccessExpression(inner.expression)) {
692
- inner = inner.expression.expression;
693
- }
694
- if (isCreateRouterCall(inner)) {
695
- result = node.arguments[0].text;
696
- return;
1088
+ if (ts5.isCallExpression(node) && node.arguments.length >= 1 && isRoutesOnCreateRouter(node)) {
1089
+ const arg = node.arguments[0];
1090
+ if (ts5.isIdentifier(arg)) {
1091
+ result = { kind: "variable", name: arg.text };
1092
+ } else if (isInlineBuilder(arg)) {
1093
+ result = { kind: "inline", block: arg.getText(sourceFile) };
697
1094
  }
1095
+ return;
698
1096
  }
699
1097
  if (isCreateRouterCall(node)) {
700
1098
  const callExpr = node;
701
- for (const arg of callExpr.arguments) {
1099
+ for (const callArg of callExpr.arguments) {
1100
+ if (ts5.isObjectLiteralExpression(callArg)) {
1101
+ for (const prop of callArg.properties) {
1102
+ if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "urls") {
1103
+ if (ts5.isIdentifier(prop.initializer)) {
1104
+ result = { kind: "variable", name: prop.initializer.text };
1105
+ } else if (isInlineBuilder(prop.initializer)) {
1106
+ result = {
1107
+ kind: "inline",
1108
+ block: prop.initializer.getText(sourceFile)
1109
+ };
1110
+ }
1111
+ return;
1112
+ }
1113
+ }
1114
+ }
1115
+ }
1116
+ }
1117
+ ts5.forEachChild(node, visit);
1118
+ }
1119
+ visit(sourceFile);
1120
+ return result;
1121
+ }
1122
+ function extractBasenameFromRouter(code) {
1123
+ const sourceFile = ts5.createSourceFile(
1124
+ "router.tsx",
1125
+ code,
1126
+ ts5.ScriptTarget.Latest,
1127
+ true,
1128
+ ts5.ScriptKind.TSX
1129
+ );
1130
+ let result;
1131
+ function visit(node) {
1132
+ if (result !== void 0) return;
1133
+ if (ts5.isCallExpression(node) && ts5.isIdentifier(node.expression) && node.expression.text === "createRouter") {
1134
+ for (const arg of node.arguments) {
702
1135
  if (ts5.isObjectLiteralExpression(arg)) {
703
1136
  for (const prop of arg.properties) {
704
- if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "urls" && ts5.isIdentifier(prop.initializer)) {
1137
+ if (ts5.isPropertyAssignment(prop) && ts5.isIdentifier(prop.name) && prop.name.text === "basename" && ts5.isStringLiteral(prop.initializer)) {
705
1138
  result = prop.initializer.text;
706
1139
  return;
707
1140
  }
@@ -714,6 +1147,38 @@ function extractUrlsVariableFromRouter(code) {
714
1147
  visit(sourceFile);
715
1148
  return result;
716
1149
  }
1150
+ function applyBasenameToRoutes(result, basename) {
1151
+ const prefixed = {};
1152
+ for (const [name, pattern] of Object.entries(result.routes)) {
1153
+ if (pattern === "/") {
1154
+ prefixed[name] = basename;
1155
+ } else if (basename.endsWith("/") && pattern.startsWith("/")) {
1156
+ prefixed[name] = basename + pattern.slice(1);
1157
+ } else {
1158
+ prefixed[name] = basename + pattern;
1159
+ }
1160
+ }
1161
+ return { routes: prefixed, searchSchemas: result.searchSchemas };
1162
+ }
1163
+ function genFileTsPath(sourceFile) {
1164
+ const base = pathBasename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
1165
+ return join2(dirname2(sourceFile), `${base}.named-routes.gen.ts`);
1166
+ }
1167
+ function resolveSearchSchemas(publicRouteNames, runtimeSchemas, sourceFile) {
1168
+ if (runtimeSchemas && Object.keys(runtimeSchemas).length > 0) {
1169
+ return runtimeSchemas;
1170
+ }
1171
+ const staticParsed = buildCombinedRouteMapForRouterFile(sourceFile);
1172
+ if (Object.keys(staticParsed.searchSchemas).length === 0) {
1173
+ return runtimeSchemas;
1174
+ }
1175
+ const filtered = {};
1176
+ for (const name of publicRouteNames) {
1177
+ const schema = staticParsed.searchSchemas[name];
1178
+ if (schema) filtered[name] = schema;
1179
+ }
1180
+ return Object.keys(filtered).length > 0 ? filtered : runtimeSchemas;
1181
+ }
717
1182
  function buildCombinedRouteMapForRouterFile(routerFilePath) {
718
1183
  let routerSource;
719
1184
  try {
@@ -721,19 +1186,40 @@ function buildCombinedRouteMapForRouterFile(routerFilePath) {
721
1186
  } catch {
722
1187
  return { routes: {}, searchSchemas: {} };
723
1188
  }
724
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
725
- if (!urlsVarName) {
1189
+ const extraction = extractUrlsFromRouter(routerSource);
1190
+ if (!extraction) {
726
1191
  return { routes: {}, searchSchemas: {} };
727
1192
  }
728
- const imported = resolveImportedVariable(routerSource, urlsVarName);
729
- if (imported) {
730
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
731
- if (!targetFile) {
732
- return { routes: {}, searchSchemas: {} };
1193
+ const rawBasename = extractBasenameFromRouter(routerSource);
1194
+ const basename = rawBasename ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "") : void 0;
1195
+ let result;
1196
+ if (extraction.kind === "inline") {
1197
+ result = buildCombinedRouteMapWithSearch(
1198
+ routerFilePath,
1199
+ void 0,
1200
+ void 0,
1201
+ void 0,
1202
+ extraction.block
1203
+ );
1204
+ } else {
1205
+ const imported = resolveImportedVariable(routerSource, extraction.name);
1206
+ if (imported) {
1207
+ const targetFile = resolveImportPath(imported.specifier, routerFilePath);
1208
+ if (!targetFile) {
1209
+ return { routes: {}, searchSchemas: {} };
1210
+ }
1211
+ result = buildCombinedRouteMapWithSearch(
1212
+ targetFile,
1213
+ imported.exportedName
1214
+ );
1215
+ } else {
1216
+ result = buildCombinedRouteMapWithSearch(routerFilePath, extraction.name);
733
1217
  }
734
- return buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
735
1218
  }
736
- return buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
1219
+ if (basename) {
1220
+ result = applyBasenameToRoutes(result, basename);
1221
+ }
1222
+ return result;
737
1223
  }
738
1224
  function detectUnresolvableIncludes(routerFilePath) {
739
1225
  const realPath = resolve2(routerFilePath);
@@ -743,9 +1229,20 @@ function detectUnresolvableIncludes(routerFilePath) {
743
1229
  } catch {
744
1230
  return [];
745
1231
  }
746
- const urlsVarName = extractUrlsVariableFromRouter(source);
747
- if (!urlsVarName) return [];
748
- const imported = resolveImportedVariable(source, urlsVarName);
1232
+ const extraction = extractUrlsFromRouter(source);
1233
+ if (!extraction) return [];
1234
+ const diagnostics = [];
1235
+ if (extraction.kind === "inline") {
1236
+ buildCombinedRouteMapWithSearch(
1237
+ realPath,
1238
+ void 0,
1239
+ /* @__PURE__ */ new Set(),
1240
+ diagnostics,
1241
+ extraction.block
1242
+ );
1243
+ return diagnostics;
1244
+ }
1245
+ const imported = resolveImportedVariable(source, extraction.name);
749
1246
  let targetFile;
750
1247
  let exportedName;
751
1248
  if (imported) {
@@ -765,9 +1262,8 @@ function detectUnresolvableIncludes(routerFilePath) {
765
1262
  exportedName = imported.exportedName;
766
1263
  } else {
767
1264
  targetFile = realPath;
768
- exportedName = urlsVarName;
1265
+ exportedName = extraction.name;
769
1266
  }
770
- const diagnostics = [];
771
1267
  buildCombinedRouteMapWithSearch(
772
1268
  targetFile,
773
1269
  exportedName,
@@ -794,7 +1290,14 @@ function detectUnresolvableIncludesForUrlsFile(filePath) {
794
1290
  }
795
1291
  function findRouterFiles(root, filter) {
796
1292
  const result = [];
797
- findRouterFilesRecursive(root, filter, result);
1293
+ findCallSiteFilesRecursive(
1294
+ root,
1295
+ ROUTER_CALL_PATTERN,
1296
+ ROUTER_CALL_PATTERN_G,
1297
+ true,
1298
+ filter,
1299
+ result
1300
+ );
798
1301
  return result;
799
1302
  }
800
1303
  function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
@@ -803,7 +1306,7 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
803
1306
  if (existsSync3(oldCombinedPath)) {
804
1307
  unlinkSync(oldCombinedPath);
805
1308
  console.log(
806
- `[rsc-router] Removed stale combined route types: ${oldCombinedPath}`
1309
+ `[rango] Removed stale combined route types: ${oldCombinedPath}`
807
1310
  );
808
1311
  }
809
1312
  } catch {
@@ -815,38 +1318,22 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
815
1318
  throw new Error(formatNestedRouterConflictError(nestedRouterConflict));
816
1319
  }
817
1320
  for (const routerFilePath of routerFilePaths) {
818
- let routerSource;
819
- try {
820
- routerSource = readFileSync3(routerFilePath, "utf-8");
821
- } catch {
822
- continue;
823
- }
824
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
825
- if (!urlsVarName) continue;
826
- let result;
827
- const imported = resolveImportedVariable(routerSource, urlsVarName);
828
- if (imported) {
829
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
830
- if (!targetFile) continue;
831
- result = buildCombinedRouteMapWithSearch(
832
- targetFile,
833
- imported.exportedName
834
- );
835
- } else {
836
- result = buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
1321
+ const result = buildCombinedRouteMapForRouterFile(routerFilePath);
1322
+ if (Object.keys(result.routes).length === 0 && Object.keys(result.searchSchemas).length === 0) {
1323
+ let routerSource;
1324
+ try {
1325
+ routerSource = readFileSync3(routerFilePath, "utf-8");
1326
+ } catch {
1327
+ continue;
1328
+ }
1329
+ if (!extractUrlsFromRouter(routerSource)) continue;
837
1330
  }
838
- const routerBasename = pathBasename(routerFilePath).replace(
839
- /\.(tsx?|jsx?)$/,
840
- ""
841
- );
842
- const outPath = join2(
843
- dirname2(routerFilePath),
844
- `${routerBasename}.named-routes.gen.ts`
845
- );
1331
+ const outPath = genFileTsPath(routerFilePath);
846
1332
  const existing = existsSync3(outPath) ? readFileSync3(outPath, "utf-8") : null;
847
1333
  if (Object.keys(result.routes).length === 0) {
848
1334
  if (!existing) {
849
1335
  const emptySource = generateRouteTypesSource({});
1336
+ opts?.onWrite?.(outPath, emptySource);
850
1337
  writeFileSync2(outPath, emptySource);
851
1338
  }
852
1339
  continue;
@@ -866,22 +1353,25 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
866
1353
  continue;
867
1354
  }
868
1355
  }
1356
+ opts?.onWrite?.(outPath, source);
869
1357
  writeFileSync2(outPath, source);
870
1358
  console.log(
871
- `[rsc-router] Generated route types (${Object.keys(result.routes).length} routes) -> ${outPath}`
1359
+ `[rango] Generated route types (${Object.keys(result.routes).length} routes) -> ${outPath}`
872
1360
  );
873
1361
  }
874
1362
  }
875
1363
  }
876
- var ROUTER_CALL_PATTERN;
1364
+ var ROUTER_CALL_PATTERN, ROUTER_CALL_PATTERN_G;
877
1365
  var init_router_processing = __esm({
878
1366
  "src/build/route-types/router-processing.ts"() {
879
1367
  "use strict";
880
1368
  init_codegen();
1369
+ init_source_scan();
881
1370
  init_include_resolution();
882
1371
  init_per_module_writer();
883
1372
  init_route_name();
884
1373
  ROUTER_CALL_PATTERN = /\bcreateRouter\s*[<(]/;
1374
+ ROUTER_CALL_PATTERN_G = /\bcreateRouter\s*[<(]/g;
885
1375
  }
886
1376
  });
887
1377
 
@@ -904,7 +1394,7 @@ var init_generate_route_types = __esm({
904
1394
  function getVirtualVersionContent(version) {
905
1395
  return `export const VERSION = ${JSON.stringify(version)};`;
906
1396
  }
907
- var VIRTUAL_ENTRY_BROWSER, VIRTUAL_ENTRY_SSR, VIRTUAL_IDS;
1397
+ var VIRTUAL_ENTRY_BROWSER, VIRTUAL_IDS;
908
1398
  var init_virtual_entries = __esm({
909
1399
  "src/vite/plugins/virtual-entries.ts"() {
910
1400
  "use strict";
@@ -919,7 +1409,7 @@ import {
919
1409
  import { createElement, StrictMode } from "react";
920
1410
  import { hydrateRoot } from "react-dom/client";
921
1411
  import { rscStream } from "@rangojs/router/internal/deps/html-stream-client";
922
- import { initBrowserApp, RSCRouter } from "@rangojs/router/browser";
1412
+ import { initBrowserApp, Rango } from "@rangojs/router/browser";
923
1413
 
924
1414
  async function initializeApp() {
925
1415
  const deps = {
@@ -930,29 +1420,30 @@ async function initializeApp() {
930
1420
  createTemporaryReferenceSet,
931
1421
  };
932
1422
 
933
- await initBrowserApp({ rscStream, deps });
1423
+ // initBrowserApp resolves the initial payload and returns the browser app
1424
+ // context, including strictMode (default true) from createRouter. StrictMode
1425
+ // is the default; createRouter({ strictMode: false }) ships the opt-out in the
1426
+ // payload metadata. StrictMode emits no DOM, so toggling never changes markup.
1427
+ const { strictMode, initialPayload } = await initBrowserApp({ rscStream, deps });
934
1428
 
1429
+ if (import.meta.hot) {
1430
+ const { startDevDiscoveryHandshake } = await import(
1431
+ "@rangojs/router/internal/browser/dev-discovery"
1432
+ );
1433
+ startDevDiscoveryHandshake(
1434
+ initialPayload.metadata?.devDiscoveryEpoch,
1435
+ import.meta.hot
1436
+ );
1437
+ }
1438
+
1439
+ const app = createElement(Rango);
935
1440
  hydrateRoot(
936
1441
  document,
937
- createElement(StrictMode, null, createElement(RSCRouter))
1442
+ strictMode === false ? app : createElement(StrictMode, null, app)
938
1443
  );
939
1444
  }
940
1445
 
941
1446
  initializeApp().catch(console.error);
942
- `.trim();
943
- VIRTUAL_ENTRY_SSR = `
944
- import { createFromReadableStream } from "@rangojs/router/internal/deps/ssr";
945
- import { renderToReadableStream } from "react-dom/server.edge";
946
- import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
947
- import { createSSRHandler } from "@rangojs/router/ssr";
948
-
949
- export const renderHTML = createSSRHandler({
950
- createFromReadableStream,
951
- renderToReadableStream,
952
- injectRSCPayload,
953
- loadBootstrapScriptContent: () =>
954
- import.meta.viteRsc.loadBootstrapScriptContent("index"),
955
- });
956
1447
  `.trim();
957
1448
  VIRTUAL_IDS = {
958
1449
  browser: "virtual:rsc-router/entry.browser.js",
@@ -963,12 +1454,37 @@ export const renderHTML = createSSRHandler({
963
1454
  }
964
1455
  });
965
1456
 
1457
+ // src/vite/utils/directive-prologue.ts
1458
+ import { parseAst } from "vite";
1459
+ function hasUseClientDirective(source) {
1460
+ let program;
1461
+ try {
1462
+ program = parseAst(source, { lang: "tsx" });
1463
+ } catch {
1464
+ return false;
1465
+ }
1466
+ for (const node of program.body ?? []) {
1467
+ if (node?.type === "ExpressionStatement" && node.expression?.type === "Literal" && typeof node.expression.value === "string") {
1468
+ if (node.expression.value === "use client") return true;
1469
+ continue;
1470
+ }
1471
+ break;
1472
+ }
1473
+ return false;
1474
+ }
1475
+ var init_directive_prologue = __esm({
1476
+ "src/vite/utils/directive-prologue.ts"() {
1477
+ "use strict";
1478
+ }
1479
+ });
1480
+
966
1481
  // src/vite/plugins/version-plugin.ts
967
1482
  var version_plugin_exports = {};
968
1483
  __export(version_plugin_exports, {
969
- createVersionPlugin: () => createVersionPlugin
1484
+ createVersionPlugin: () => createVersionPlugin,
1485
+ isViteDepCachePath: () => isViteDepCachePath
970
1486
  });
971
- import { parseAst } from "vite";
1487
+ import { parseAst as parseAst2 } from "vite";
972
1488
  function isCodeModule(id) {
973
1489
  return /\.(tsx?|jsx?)($|\?)/.test(id);
974
1490
  }
@@ -976,23 +1492,13 @@ function normalizeModuleId(id) {
976
1492
  return id.split("?", 1)[0];
977
1493
  }
978
1494
  function getClientModuleSignature(source) {
1495
+ if (!hasUseClientDirective(source)) return void 0;
979
1496
  let program;
980
1497
  try {
981
- program = parseAst(source, { jsx: true });
1498
+ program = parseAst2(source, { lang: "tsx" });
982
1499
  } catch {
983
1500
  return void 0;
984
1501
  }
985
- let isUseClient = false;
986
- for (const node of program.body ?? []) {
987
- if (node?.type === "ExpressionStatement" && node.expression?.type === "Literal" && typeof node.expression.value === "string") {
988
- if (node.expression.value === "use client") {
989
- isUseClient = true;
990
- }
991
- continue;
992
- }
993
- break;
994
- }
995
- if (!isUseClient) return void 0;
996
1502
  const exports = /* @__PURE__ */ new Set();
997
1503
  let hasDefault = false;
998
1504
  let hasExportAll = false;
@@ -1061,10 +1567,12 @@ function createVersionPlugin() {
1061
1567
  let currentVersion = buildVersion;
1062
1568
  let isDev = false;
1063
1569
  let server = null;
1570
+ let resolvedCacheDir;
1064
1571
  const clientModuleSignatures = /* @__PURE__ */ new Map();
1572
+ let versionCounter = 0;
1065
1573
  const bumpVersion = (reason) => {
1066
- currentVersion = Date.now().toString(16);
1067
- console.log(`[rsc-router] ${reason}, version updated: ${currentVersion}`);
1574
+ currentVersion = Date.now().toString(16) + String(++versionCounter);
1575
+ console.log(`[rango] ${reason}, version updated: ${currentVersion}`);
1068
1576
  const rscEnv = server?.environments?.rsc;
1069
1577
  const versionMod = rscEnv?.moduleGraph?.getModuleById(
1070
1578
  "\0" + VIRTUAL_IDS.version
@@ -1076,8 +1584,16 @@ function createVersionPlugin() {
1076
1584
  return {
1077
1585
  name: "@rangojs/router:version",
1078
1586
  enforce: "pre",
1587
+ // The build-time shell capture phase (producer B, #699) stamps entries
1588
+ // with THIS instance's version — the value folded into the shipped worker
1589
+ // — never the discovery temp server's own version-plugin value (a
1590
+ // different Date.now() stamp that would fail the serve-side gate).
1591
+ api: {
1592
+ getBuildVersion: () => currentVersion
1593
+ },
1079
1594
  configResolved(config) {
1080
1595
  isDev = config.command === "serve";
1596
+ resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;
1081
1597
  },
1082
1598
  configureServer(devServer) {
1083
1599
  server = devServer;
@@ -1114,11 +1630,14 @@ function createVersionPlugin() {
1114
1630
  }
1115
1631
  return null;
1116
1632
  },
1117
- // Track RSC module changes and update version
1118
1633
  async hotUpdate(ctx) {
1119
1634
  if (!isDev) return;
1120
1635
  const isRscModule = this.environment?.name === "rsc";
1121
1636
  if (!isRscModule) return;
1637
+ if (isViteDepCachePath(ctx.file, resolvedCacheDir)) return;
1638
+ if (ctx.modules.length === 1 && ctx.modules[0].id === "\0" + VIRTUAL_IDS.version) {
1639
+ return;
1640
+ }
1122
1641
  if (isCodeModule(ctx.file)) {
1123
1642
  const filePath = normalizeModuleId(ctx.file);
1124
1643
  const previousSignature = clientModuleSignatures.get(filePath);
@@ -1145,10 +1664,22 @@ function createVersionPlugin() {
1145
1664
  }
1146
1665
  };
1147
1666
  }
1667
+ function isViteDepCachePath(filePath, cacheDir) {
1668
+ if (!filePath) return false;
1669
+ const normalized = filePath.replace(/\\/g, "/");
1670
+ if (cacheDir) {
1671
+ const normalizedCacheDir = cacheDir.replace(/\\/g, "/").replace(/\/+$/, "");
1672
+ if (normalized === normalizedCacheDir || normalized.startsWith(normalizedCacheDir + "/")) {
1673
+ return true;
1674
+ }
1675
+ }
1676
+ return /\/node_modules\/\.vite[^/]*\//.test(normalized) || normalized.includes("/.vite-isolated/");
1677
+ }
1148
1678
  var init_version_plugin = __esm({
1149
1679
  "src/vite/plugins/version-plugin.ts"() {
1150
1680
  "use strict";
1151
1681
  init_virtual_entries();
1682
+ init_directive_prologue();
1152
1683
  }
1153
1684
  });
1154
1685
 
@@ -1190,7 +1721,7 @@ var runtime_discovery_exports = {};
1190
1721
  __export(runtime_discovery_exports, {
1191
1722
  discoverAndWriteRouteTypes: () => discoverAndWriteRouteTypes
1192
1723
  });
1193
- import { dirname as dirname3, join as join3, basename, resolve as resolve3 } from "node:path";
1724
+ import { resolve as resolve3 } from "node:path";
1194
1725
  import { existsSync as existsSync4, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
1195
1726
  async function discoverAndWriteRouteTypes(opts) {
1196
1727
  let createViteServer;
@@ -1276,7 +1807,10 @@ async function discoverAndWriteRouteTypes(opts) {
1276
1807
  let routerMountIndex = 0;
1277
1808
  for (const [id, router] of registry) {
1278
1809
  if (!router.urlpatterns) continue;
1279
- const manifest = generateManifest(router.urlpatterns, routerMountIndex);
1810
+ const manifest = await generateManifest(
1811
+ router.urlpatterns,
1812
+ routerMountIndex
1813
+ );
1280
1814
  routerMountIndex++;
1281
1815
  const rawManifest = manifest.routeManifest;
1282
1816
  const routeManifest = {};
@@ -1300,22 +1834,12 @@ This means createRouter() stack trace parsing matched an internal frame.
1300
1834
  Set an explicit \`id\` on createRouter() or check the call site.`
1301
1835
  );
1302
1836
  }
1303
- if (!routeSearchSchemas || Object.keys(routeSearchSchemas).length === 0) {
1304
- const staticParsed = buildCombinedRouteMapForRouterFile(sourceFile);
1305
- if (Object.keys(staticParsed.searchSchemas).length > 0) {
1306
- const filtered = {};
1307
- for (const name of Object.keys(routeManifest)) {
1308
- const schema = staticParsed.searchSchemas[name];
1309
- if (schema) filtered[name] = schema;
1310
- }
1311
- if (Object.keys(filtered).length > 0) {
1312
- routeSearchSchemas = filtered;
1313
- }
1314
- }
1315
- }
1316
- const routerDir = dirname3(sourceFile);
1317
- const routerBasename = basename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
1318
- const outPath = join3(routerDir, `${routerBasename}.named-routes.gen.ts`);
1837
+ routeSearchSchemas = resolveSearchSchemas(
1838
+ Object.keys(routeManifest),
1839
+ routeSearchSchemas,
1840
+ sourceFile
1841
+ );
1842
+ const outPath = genFileTsPath(sourceFile);
1319
1843
  const source = generateRouteTypesSource(
1320
1844
  routeManifest,
1321
1845
  routeSearchSchemas && Object.keys(routeSearchSchemas).length > 0 ? routeSearchSchemas : void 0
@@ -1352,7 +1876,7 @@ var init_runtime_discovery = __esm({
1352
1876
 
1353
1877
  // src/bin/rango.ts
1354
1878
  init_generate_route_types();
1355
- import { resolve as resolve4, dirname as dirname4 } from "node:path";
1879
+ import { resolve as resolve4, dirname as dirname3 } from "node:path";
1356
1880
  import { readFileSync as readFileSync5, statSync, existsSync as existsSync5 } from "node:fs";
1357
1881
  var [command, ...rawArgs] = process.argv.slice(2);
1358
1882
  if (command === "generate") {
@@ -1423,12 +1947,12 @@ Examples:
1423
1947
  );
1424
1948
  }
1425
1949
  function findProjectRoot(fromPath) {
1426
- let dir = dirname4(resolve4(fromPath));
1427
- while (dir !== dirname4(dir)) {
1950
+ let dir = dirname3(resolve4(fromPath));
1951
+ while (dir !== dirname3(dir)) {
1428
1952
  if (existsSync5(resolve4(dir, "package.json")) || existsSync5(resolve4(dir, "vite.config.ts")) || existsSync5(resolve4(dir, "vite.config.js"))) {
1429
1953
  return dir;
1430
1954
  }
1431
- dir = dirname4(dir);
1955
+ dir = dirname3(dir);
1432
1956
  }
1433
1957
  return process.cwd();
1434
1958
  }