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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1186) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +57 -14
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +1632 -705
  6. package/package.json +64 -12
  7. package/skills/api-client/SKILL.md +211 -0
  8. package/skills/breadcrumbs/SKILL.md +61 -1
  9. package/skills/bundle-analysis/SKILL.md +159 -0
  10. package/skills/cache-guide/SKILL.md +224 -32
  11. package/skills/caching/SKILL.md +279 -17
  12. package/skills/composability/SKILL.md +27 -2
  13. package/skills/css/SKILL.md +76 -0
  14. package/skills/debug-manifest/SKILL.md +4 -2
  15. package/skills/document-cache/SKILL.md +78 -55
  16. package/skills/handler-use/SKILL.md +2 -2
  17. package/skills/hooks/SKILL.md +217 -31
  18. package/skills/host-router/SKILL.md +83 -23
  19. package/skills/intercept/SKILL.md +5 -6
  20. package/skills/layout/SKILL.md +11 -9
  21. package/skills/links/SKILL.md +22 -10
  22. package/skills/loader/SKILL.md +172 -23
  23. package/skills/middleware/SKILL.md +16 -10
  24. package/skills/migrate-nextjs/SKILL.md +38 -16
  25. package/skills/migrate-react-router/SKILL.md +4 -2
  26. package/skills/mime-routes/SKILL.md +28 -1
  27. package/skills/observability/SKILL.md +172 -0
  28. package/skills/parallel/SKILL.md +9 -7
  29. package/skills/prerender/SKILL.md +45 -43
  30. package/skills/rango/SKILL.md +251 -26
  31. package/skills/react-compiler/SKILL.md +168 -0
  32. package/skills/response-routes/SKILL.md +115 -48
  33. package/skills/route/SKILL.md +22 -5
  34. package/skills/router-setup/SKILL.md +29 -6
  35. package/skills/scripts/SKILL.md +179 -0
  36. package/skills/server-actions/SKILL.md +78 -42
  37. package/skills/tailwind/SKILL.md +27 -3
  38. package/skills/testing/SKILL.md +129 -0
  39. package/skills/testing/bindings.md +103 -0
  40. package/skills/testing/cache-prerender.md +127 -0
  41. package/skills/testing/client-components.md +124 -0
  42. package/skills/testing/e2e-parity.md +125 -0
  43. package/skills/testing/flight.md +91 -0
  44. package/skills/testing/handles.md +129 -0
  45. package/skills/testing/loader.md +128 -0
  46. package/skills/testing/middleware.md +99 -0
  47. package/skills/testing/render-handler.md +121 -0
  48. package/skills/testing/response-routes.md +95 -0
  49. package/skills/testing/reverse-and-types.md +84 -0
  50. package/skills/testing/server-actions.md +107 -0
  51. package/skills/testing/server-tree.md +128 -0
  52. package/skills/testing/setup.md +123 -0
  53. package/skills/typesafety/SKILL.md +313 -28
  54. package/skills/use-cache/SKILL.md +46 -14
  55. package/skills/view-transitions/SKILL.md +85 -3
  56. package/src/__augment-tests__/augment.ts +81 -0
  57. package/src/__augment-tests__/augmented.check.ts +116 -0
  58. package/src/__internal.ts +0 -65
  59. package/src/browser/action-coordinator.ts +53 -36
  60. package/src/browser/action-fence.ts +47 -0
  61. package/src/browser/app-shell.ts +14 -27
  62. package/src/browser/connection-warmup.ts +134 -0
  63. package/src/browser/cookie-name.ts +140 -0
  64. package/src/browser/event-controller.ts +151 -149
  65. package/src/browser/history-state.ts +21 -0
  66. package/src/browser/index.ts +3 -3
  67. package/src/browser/invalidate-client-cache.ts +52 -0
  68. package/src/browser/navigation-bridge.ts +67 -126
  69. package/src/browser/navigation-client.ts +110 -84
  70. package/src/browser/navigation-store-handle.ts +38 -0
  71. package/src/browser/navigation-store.ts +32 -82
  72. package/src/browser/navigation-transaction.ts +9 -59
  73. package/src/browser/network-error-handler.ts +34 -7
  74. package/src/browser/partial-update.ts +108 -144
  75. package/src/browser/prefetch/cache.ts +107 -72
  76. package/src/browser/prefetch/fetch.ts +186 -34
  77. package/src/browser/prefetch/queue.ts +6 -3
  78. package/src/browser/rango-state.ts +157 -115
  79. package/src/browser/react/Link.tsx +30 -7
  80. package/src/browser/react/NavigationProvider.tsx +173 -160
  81. package/src/browser/react/ScrollRestoration.tsx +10 -6
  82. package/src/browser/react/filter-segment-order.ts +17 -2
  83. package/src/browser/react/index.ts +0 -51
  84. package/src/browser/react/location-state-shared.ts +178 -8
  85. package/src/browser/react/location-state.ts +39 -14
  86. package/src/browser/react/use-action.ts +6 -15
  87. package/src/browser/react/use-handle.ts +17 -14
  88. package/src/browser/react/use-href.tsx +8 -1
  89. package/src/browser/react/use-link-status.ts +33 -8
  90. package/src/browser/react/use-navigation.ts +10 -5
  91. package/src/browser/react/use-params.ts +3 -6
  92. package/src/browser/react/use-reverse.ts +19 -12
  93. package/src/browser/react/use-router.ts +20 -5
  94. package/src/browser/react/use-search-params.ts +0 -5
  95. package/src/browser/react/use-segments.ts +0 -13
  96. package/src/browser/response-adapter.ts +80 -5
  97. package/src/browser/rsc-router.tsx +73 -34
  98. package/src/browser/scroll-restoration.ts +38 -28
  99. package/src/browser/segment-structure-assert.ts +2 -2
  100. package/src/browser/server-action-bridge.ts +214 -55
  101. package/src/browser/types.ts +51 -21
  102. package/src/browser/validate-redirect-origin.ts +43 -16
  103. package/src/build/collect-fallback-refs.ts +107 -0
  104. package/src/build/generate-manifest.ts +60 -35
  105. package/src/build/generate-route-types.ts +2 -1
  106. package/src/build/index.ts +8 -2
  107. package/src/build/prefix-tree-utils.ts +123 -0
  108. package/src/build/route-trie.ts +117 -15
  109. package/src/build/route-types/ast-route-extraction.ts +15 -8
  110. package/src/build/route-types/codegen.ts +16 -5
  111. package/src/build/route-types/include-resolution.ts +117 -23
  112. package/src/build/route-types/param-extraction.ts +6 -3
  113. package/src/build/route-types/per-module-writer.ts +22 -6
  114. package/src/build/route-types/router-processing.ts +55 -28
  115. package/src/build/route-types/scan-filter.ts +1 -1
  116. package/src/build/route-types/source-scan.ts +216 -0
  117. package/src/build/runtime-discovery.ts +9 -20
  118. package/src/cache/cache-error.ts +104 -0
  119. package/src/cache/cache-key-utils.ts +29 -13
  120. package/src/cache/cache-policy.ts +108 -34
  121. package/src/cache/cache-runtime.ts +199 -37
  122. package/src/cache/cache-scope.ts +188 -82
  123. package/src/cache/cache-tag.ts +103 -0
  124. package/src/cache/cf/cf-base64.ts +33 -0
  125. package/src/cache/cf/cf-cache-constants.ts +127 -0
  126. package/src/cache/cf/cf-cache-store.ts +1990 -377
  127. package/src/cache/cf/cf-cache-types.ts +349 -0
  128. package/src/cache/cf/cf-kv-utils.ts +46 -0
  129. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  130. package/src/cache/cf/index.ts +6 -16
  131. package/src/cache/document-cache.ts +72 -20
  132. package/src/cache/handle-snapshot.ts +70 -0
  133. package/src/cache/index.ts +10 -20
  134. package/src/cache/memory-segment-store.ts +136 -37
  135. package/src/cache/profile-registry.ts +31 -31
  136. package/src/cache/read-through-swr.ts +41 -11
  137. package/src/cache/segment-codec.ts +9 -17
  138. package/src/cache/tag-invalidation.ts +230 -0
  139. package/src/cache/types.ts +37 -100
  140. package/src/client.rsc.tsx +42 -22
  141. package/src/client.tsx +33 -62
  142. package/src/cloudflare/index.ts +11 -0
  143. package/src/cloudflare/tracing.ts +109 -0
  144. package/src/component-utils.ts +19 -0
  145. package/src/components/DefaultDocument.tsx +8 -2
  146. package/src/context-var.ts +18 -6
  147. package/src/decode-loader-results.ts +52 -0
  148. package/src/defer.ts +196 -0
  149. package/src/deps/ssr.ts +0 -1
  150. package/src/encode-kv.ts +49 -0
  151. package/src/errors.ts +30 -4
  152. package/src/escape-script.ts +52 -0
  153. package/src/handle.ts +31 -23
  154. package/src/handles/MetaTags.tsx +62 -19
  155. package/src/handles/Scripts.tsx +183 -0
  156. package/src/handles/breadcrumbs.ts +37 -8
  157. package/src/handles/is-thenable.ts +19 -0
  158. package/src/handles/meta.ts +51 -40
  159. package/src/handles/script.ts +244 -0
  160. package/src/host/cookie-handler.ts +9 -60
  161. package/src/host/errors.ts +0 -24
  162. package/src/host/index.ts +8 -2
  163. package/src/host/pattern-matcher.ts +23 -52
  164. package/src/host/router.ts +107 -99
  165. package/src/host/testing.ts +40 -27
  166. package/src/host/types.ts +37 -4
  167. package/src/host/utils.ts +1 -1
  168. package/src/href-client.ts +136 -24
  169. package/src/index.rsc.ts +87 -11
  170. package/src/index.ts +85 -10
  171. package/src/internal-debug.ts +11 -10
  172. package/src/loader-store.ts +500 -0
  173. package/src/loader.rsc.ts +20 -13
  174. package/src/loader.ts +12 -11
  175. package/src/missing-id-error.ts +68 -0
  176. package/src/outlet-provider.tsx +1 -5
  177. package/src/prerender/param-hash.ts +16 -16
  178. package/src/prerender/store.ts +32 -37
  179. package/src/prerender.ts +61 -6
  180. package/src/redirect-origin.ts +100 -0
  181. package/src/regex-escape.ts +8 -0
  182. package/src/render-error-thrower.tsx +20 -0
  183. package/src/response-utils.ts +34 -0
  184. package/src/reverse.ts +16 -13
  185. package/src/root-error-boundary.tsx +1 -19
  186. package/src/route-content-wrapper.tsx +7 -72
  187. package/src/route-definition/dsl-helpers.ts +276 -283
  188. package/src/route-definition/helper-factories.ts +29 -139
  189. package/src/route-definition/helpers-types.ts +40 -17
  190. package/src/route-definition/redirect.ts +44 -11
  191. package/src/route-definition/resolve-handler-use.ts +6 -0
  192. package/src/route-definition/use-item-types.ts +32 -0
  193. package/src/route-map-builder.ts +0 -16
  194. package/src/route-types.ts +19 -41
  195. package/src/router/basename.ts +14 -0
  196. package/src/router/content-negotiation.ts +73 -25
  197. package/src/router/error-handling.ts +45 -18
  198. package/src/router/find-match.ts +44 -23
  199. package/src/router/handler-context.ts +6 -1
  200. package/src/router/instrument.ts +350 -0
  201. package/src/router/intercept-resolution.ts +39 -20
  202. package/src/router/lazy-includes.ts +9 -46
  203. package/src/router/loader-resolution.ts +152 -72
  204. package/src/router/logging.ts +0 -6
  205. package/src/router/manifest.ts +18 -29
  206. package/src/router/match-api.ts +0 -20
  207. package/src/router/match-context.ts +0 -22
  208. package/src/router/match-handlers.ts +57 -58
  209. package/src/router/match-middleware/background-revalidation.ts +6 -7
  210. package/src/router/match-middleware/cache-lookup.ts +159 -285
  211. package/src/router/match-middleware/cache-store.ts +31 -34
  212. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  213. package/src/router/match-middleware/segment-resolution.ts +0 -22
  214. package/src/router/match-pipelines.ts +1 -42
  215. package/src/router/match-result.ts +31 -80
  216. package/src/router/metrics.ts +0 -34
  217. package/src/router/middleware-types.ts +0 -116
  218. package/src/router/middleware.ts +216 -163
  219. package/src/router/navigation-snapshot.ts +0 -51
  220. package/src/router/params-util.ts +23 -0
  221. package/src/router/pattern-matching.ts +47 -89
  222. package/src/router/prefetch-cache-ttl.ts +51 -0
  223. package/src/router/prerender-match.ts +104 -65
  224. package/src/router/preview-match.ts +3 -1
  225. package/src/router/request-classification.ts +28 -62
  226. package/src/router/revalidation.ts +110 -74
  227. package/src/router/route-snapshot.ts +0 -1
  228. package/src/router/router-context.ts +3 -28
  229. package/src/router/router-interfaces.ts +83 -35
  230. package/src/router/router-options.ts +136 -5
  231. package/src/router/router-registry.ts +2 -5
  232. package/src/router/segment-resolution/fresh.ts +85 -84
  233. package/src/router/segment-resolution/helpers.ts +86 -6
  234. package/src/router/segment-resolution/loader-cache.ts +62 -37
  235. package/src/router/segment-resolution/revalidation.ts +227 -306
  236. package/src/router/segment-resolution/static-store.ts +19 -5
  237. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  238. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  239. package/src/router/segment-resolution.ts +5 -1
  240. package/src/router/segment-wrappers.ts +6 -5
  241. package/src/router/state-cookie-name.ts +33 -0
  242. package/src/router/telemetry-otel.ts +161 -199
  243. package/src/router/telemetry.ts +96 -19
  244. package/src/router/timeout.ts +0 -20
  245. package/src/router/tracing.ts +206 -0
  246. package/src/router/trie-matching.ts +163 -64
  247. package/src/router/types.ts +9 -63
  248. package/src/router/url-params.ts +0 -5
  249. package/src/router.ts +109 -53
  250. package/src/rsc/handler-context.ts +3 -2
  251. package/src/rsc/handler.ts +262 -219
  252. package/src/rsc/helpers.ts +100 -6
  253. package/src/rsc/index.ts +2 -5
  254. package/src/rsc/json-route-result.ts +38 -0
  255. package/src/rsc/loader-fetch.ts +114 -38
  256. package/src/rsc/manifest-init.ts +28 -41
  257. package/src/rsc/origin-guard.ts +39 -25
  258. package/src/rsc/progressive-enhancement.ts +59 -9
  259. package/src/rsc/redirect-guard.ts +99 -0
  260. package/src/rsc/response-cache-serve.ts +238 -0
  261. package/src/rsc/response-error.ts +79 -12
  262. package/src/rsc/response-route-handler.ts +85 -188
  263. package/src/rsc/rsc-rendering.ts +91 -77
  264. package/src/rsc/runtime-warnings.ts +23 -10
  265. package/src/rsc/server-action.ts +256 -117
  266. package/src/rsc/ssr-setup.ts +16 -0
  267. package/src/rsc/types.ts +17 -5
  268. package/src/runtime-env.ts +18 -0
  269. package/src/search-params.ts +35 -30
  270. package/src/segment-loader-promise.ts +31 -4
  271. package/src/segment-system.tsx +151 -136
  272. package/src/serialize.ts +243 -0
  273. package/src/server/context.ts +150 -51
  274. package/src/server/cookie-parse.ts +32 -0
  275. package/src/server/cookie-store.ts +80 -5
  276. package/src/server/handle-store.ts +21 -38
  277. package/src/server/loader-registry.ts +21 -42
  278. package/src/server/request-context.ts +225 -133
  279. package/src/ssr/index.tsx +19 -18
  280. package/src/static-handler.ts +10 -13
  281. package/src/testing/cache-status.ts +162 -0
  282. package/src/testing/collect-handle.ts +40 -0
  283. package/src/testing/dispatch.ts +701 -0
  284. package/src/testing/dom.entry.ts +22 -0
  285. package/src/testing/e2e/fixture.ts +188 -0
  286. package/src/testing/e2e/index.ts +128 -0
  287. package/src/testing/e2e/matchers.ts +35 -0
  288. package/src/testing/e2e/page-helpers.ts +272 -0
  289. package/src/testing/e2e/parity.ts +387 -0
  290. package/src/testing/e2e/server.ts +195 -0
  291. package/src/testing/flight-matchers.ts +97 -0
  292. package/src/testing/flight-normalize.ts +11 -0
  293. package/src/testing/flight-runtime.d.ts +57 -0
  294. package/src/testing/flight-tree.ts +682 -0
  295. package/src/testing/flight.entry.ts +52 -0
  296. package/src/testing/flight.ts +257 -0
  297. package/src/testing/generated-routes.ts +183 -0
  298. package/src/testing/index.ts +99 -0
  299. package/src/testing/internal/context.ts +371 -0
  300. package/src/testing/internal/flight-client-globals.ts +30 -0
  301. package/src/testing/internal/seed-vars.ts +54 -0
  302. package/src/testing/render-handler.ts +343 -0
  303. package/src/testing/render-route.tsx +581 -0
  304. package/src/testing/run-loader.ts +385 -0
  305. package/src/testing/run-middleware.ts +205 -0
  306. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  307. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  308. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  309. package/src/testing/vitest-stubs/version.ts +5 -0
  310. package/src/testing/vitest.ts +305 -0
  311. package/src/theme/ThemeProvider.tsx +20 -58
  312. package/src/theme/ThemeScript.tsx +7 -9
  313. package/src/theme/constants.ts +52 -13
  314. package/src/theme/index.ts +0 -7
  315. package/src/theme/theme-context.ts +1 -5
  316. package/src/theme/theme-script.ts +22 -21
  317. package/src/theme/use-theme.ts +0 -3
  318. package/src/types/boundaries.ts +0 -35
  319. package/src/types/cache-types.ts +13 -4
  320. package/src/types/error-types.ts +30 -90
  321. package/src/types/global-namespace.ts +54 -41
  322. package/src/types/handler-context.ts +97 -22
  323. package/src/types/index.ts +1 -10
  324. package/src/types/loader-types.ts +6 -3
  325. package/src/types/request-scope.ts +8 -22
  326. package/src/types/route-config.ts +6 -50
  327. package/src/types/route-entry.ts +0 -6
  328. package/src/types/segments.ts +18 -14
  329. package/src/urls/include-helper.ts +9 -56
  330. package/src/urls/index.ts +1 -11
  331. package/src/urls/path-helper-types.ts +19 -5
  332. package/src/urls/path-helper.ts +17 -106
  333. package/src/urls/pattern-types.ts +36 -19
  334. package/src/urls/response-types.ts +20 -19
  335. package/src/urls/type-extraction.ts +58 -139
  336. package/src/urls/urls-function.ts +1 -18
  337. package/src/use-loader.tsx +292 -107
  338. package/src/vite/debug.ts +1 -0
  339. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  340. package/src/vite/discovery/discover-routers.ts +95 -82
  341. package/src/vite/discovery/discovery-errors.ts +194 -0
  342. package/src/vite/discovery/prerender-collection.ts +48 -67
  343. package/src/vite/discovery/route-types-writer.ts +40 -84
  344. package/src/vite/discovery/state.ts +44 -0
  345. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  346. package/src/vite/index.ts +2 -0
  347. package/src/vite/inject-client-debug.ts +36 -0
  348. package/src/vite/plugin-types.ts +126 -8
  349. package/src/vite/plugins/cjs-to-esm.ts +11 -19
  350. package/src/vite/plugins/client-ref-dedup.ts +0 -11
  351. package/src/vite/plugins/client-ref-hashing.ts +12 -11
  352. package/src/vite/plugins/cloudflare-protocol-stub.ts +1 -21
  353. package/src/vite/plugins/expose-action-id.ts +4 -75
  354. package/src/vite/plugins/expose-id-utils.ts +88 -55
  355. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  356. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  357. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  358. package/src/vite/plugins/expose-ids/router-transform.ts +98 -26
  359. package/src/vite/plugins/expose-internal-ids.ts +57 -68
  360. package/src/vite/plugins/performance-tracks.ts +9 -16
  361. package/src/vite/plugins/refresh-cmd.ts +1 -1
  362. package/src/vite/plugins/use-cache-transform.ts +26 -49
  363. package/src/vite/plugins/version-injector.ts +2 -32
  364. package/src/vite/plugins/version-plugin.ts +37 -40
  365. package/src/vite/plugins/virtual-entries.ts +13 -18
  366. package/src/vite/rango.ts +60 -104
  367. package/src/vite/router-discovery.ts +236 -83
  368. package/src/vite/utils/ast-handler-extract.ts +26 -35
  369. package/src/vite/utils/bundle-analysis.ts +10 -15
  370. package/src/vite/utils/client-chunks.ts +184 -0
  371. package/src/vite/utils/directive-prologue.ts +40 -0
  372. package/src/vite/utils/forward-user-plugins.ts +171 -0
  373. package/src/vite/utils/manifest-utils.ts +4 -59
  374. package/src/vite/utils/package-resolution.ts +1 -73
  375. package/src/vite/utils/prerender-utils.ts +54 -40
  376. package/src/vite/utils/shared-utils.ts +90 -41
  377. package/dist/__internal.d.ts +0 -83
  378. package/dist/__internal.d.ts.map +0 -1
  379. package/dist/__internal.js +0 -19
  380. package/dist/__internal.js.map +0 -1
  381. package/dist/__mocks__/version.d.ts +0 -7
  382. package/dist/__mocks__/version.d.ts.map +0 -1
  383. package/dist/__mocks__/version.js +0 -7
  384. package/dist/__mocks__/version.js.map +0 -1
  385. package/dist/__tests__/client-href.test.d.ts +0 -2
  386. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  387. package/dist/__tests__/client-href.test.js +0 -74
  388. package/dist/__tests__/client-href.test.js.map +0 -1
  389. package/dist/__tests__/component-utils.test.d.ts +0 -2
  390. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  391. package/dist/__tests__/component-utils.test.js +0 -51
  392. package/dist/__tests__/component-utils.test.js.map +0 -1
  393. package/dist/__tests__/event-controller.test.d.ts +0 -2
  394. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  395. package/dist/__tests__/event-controller.test.js +0 -538
  396. package/dist/__tests__/event-controller.test.js.map +0 -1
  397. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  398. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  399. package/dist/__tests__/helpers/route-tree.js +0 -374
  400. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  401. package/dist/__tests__/match-result.test.d.ts +0 -2
  402. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  403. package/dist/__tests__/match-result.test.js +0 -154
  404. package/dist/__tests__/match-result.test.js.map +0 -1
  405. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  406. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  407. package/dist/__tests__/navigation-store.test.js +0 -440
  408. package/dist/__tests__/navigation-store.test.js.map +0 -1
  409. package/dist/__tests__/partial-update.test.d.ts +0 -2
  410. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  411. package/dist/__tests__/partial-update.test.js +0 -1009
  412. package/dist/__tests__/partial-update.test.js.map +0 -1
  413. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  414. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  415. package/dist/__tests__/reverse-types.test.js +0 -656
  416. package/dist/__tests__/reverse-types.test.js.map +0 -1
  417. package/dist/__tests__/route-definition.test.d.ts +0 -2
  418. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  419. package/dist/__tests__/route-definition.test.js +0 -55
  420. package/dist/__tests__/route-definition.test.js.map +0 -1
  421. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  422. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  423. package/dist/__tests__/router-helpers.test.js +0 -377
  424. package/dist/__tests__/router-helpers.test.js.map +0 -1
  425. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  426. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  427. package/dist/__tests__/router-integration-2.test.js +0 -426
  428. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  429. package/dist/__tests__/router-integration.test.d.ts +0 -2
  430. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  431. package/dist/__tests__/router-integration.test.js +0 -1051
  432. package/dist/__tests__/router-integration.test.js.map +0 -1
  433. package/dist/__tests__/search-params.test.d.ts +0 -5
  434. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  435. package/dist/__tests__/search-params.test.js +0 -306
  436. package/dist/__tests__/search-params.test.js.map +0 -1
  437. package/dist/__tests__/segment-system.test.d.ts +0 -2
  438. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  439. package/dist/__tests__/segment-system.test.js +0 -627
  440. package/dist/__tests__/segment-system.test.js.map +0 -1
  441. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  442. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  443. package/dist/__tests__/static-handler-types.test.js +0 -63
  444. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  445. package/dist/__tests__/urls.test.d.ts +0 -2
  446. package/dist/__tests__/urls.test.d.ts.map +0 -1
  447. package/dist/__tests__/urls.test.js +0 -421
  448. package/dist/__tests__/urls.test.js.map +0 -1
  449. package/dist/__tests__/use-mount.test.d.ts +0 -2
  450. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  451. package/dist/__tests__/use-mount.test.js +0 -35
  452. package/dist/__tests__/use-mount.test.js.map +0 -1
  453. package/dist/bin/rango.d.ts +0 -2
  454. package/dist/bin/rango.d.ts.map +0 -1
  455. package/dist/bin/rango.js.map +0 -1
  456. package/dist/browser/event-controller.d.ts +0 -191
  457. package/dist/browser/event-controller.d.ts.map +0 -1
  458. package/dist/browser/event-controller.js +0 -559
  459. package/dist/browser/event-controller.js.map +0 -1
  460. package/dist/browser/index.d.ts +0 -2
  461. package/dist/browser/index.d.ts.map +0 -1
  462. package/dist/browser/index.js +0 -14
  463. package/dist/browser/index.js.map +0 -1
  464. package/dist/browser/link-interceptor.d.ts +0 -38
  465. package/dist/browser/link-interceptor.d.ts.map +0 -1
  466. package/dist/browser/link-interceptor.js +0 -99
  467. package/dist/browser/link-interceptor.js.map +0 -1
  468. package/dist/browser/logging.d.ts +0 -10
  469. package/dist/browser/logging.d.ts.map +0 -1
  470. package/dist/browser/logging.js +0 -29
  471. package/dist/browser/logging.js.map +0 -1
  472. package/dist/browser/lru-cache.d.ts +0 -17
  473. package/dist/browser/lru-cache.d.ts.map +0 -1
  474. package/dist/browser/lru-cache.js +0 -50
  475. package/dist/browser/lru-cache.js.map +0 -1
  476. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  477. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  478. package/dist/browser/merge-segment-loaders.js +0 -102
  479. package/dist/browser/merge-segment-loaders.js.map +0 -1
  480. package/dist/browser/navigation-bridge.d.ts +0 -102
  481. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  482. package/dist/browser/navigation-bridge.js +0 -708
  483. package/dist/browser/navigation-bridge.js.map +0 -1
  484. package/dist/browser/navigation-client.d.ts +0 -25
  485. package/dist/browser/navigation-client.d.ts.map +0 -1
  486. package/dist/browser/navigation-client.js +0 -157
  487. package/dist/browser/navigation-client.js.map +0 -1
  488. package/dist/browser/navigation-store.d.ts +0 -101
  489. package/dist/browser/navigation-store.d.ts.map +0 -1
  490. package/dist/browser/navigation-store.js +0 -625
  491. package/dist/browser/navigation-store.js.map +0 -1
  492. package/dist/browser/partial-update.d.ts +0 -75
  493. package/dist/browser/partial-update.d.ts.map +0 -1
  494. package/dist/browser/partial-update.js +0 -426
  495. package/dist/browser/partial-update.js.map +0 -1
  496. package/dist/browser/react/Link.d.ts +0 -86
  497. package/dist/browser/react/Link.d.ts.map +0 -1
  498. package/dist/browser/react/Link.js +0 -128
  499. package/dist/browser/react/Link.js.map +0 -1
  500. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  501. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  502. package/dist/browser/react/NavigationProvider.js +0 -216
  503. package/dist/browser/react/NavigationProvider.js.map +0 -1
  504. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  505. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  506. package/dist/browser/react/ScrollRestoration.js +0 -57
  507. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  508. package/dist/browser/react/context.d.ts +0 -46
  509. package/dist/browser/react/context.d.ts.map +0 -1
  510. package/dist/browser/react/context.js +0 -10
  511. package/dist/browser/react/context.js.map +0 -1
  512. package/dist/browser/react/index.d.ts +0 -11
  513. package/dist/browser/react/index.d.ts.map +0 -1
  514. package/dist/browser/react/index.js +0 -22
  515. package/dist/browser/react/index.js.map +0 -1
  516. package/dist/browser/react/location-state-shared.d.ts +0 -63
  517. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  518. package/dist/browser/react/location-state-shared.js +0 -81
  519. package/dist/browser/react/location-state-shared.js.map +0 -1
  520. package/dist/browser/react/location-state.d.ts +0 -23
  521. package/dist/browser/react/location-state.d.ts.map +0 -1
  522. package/dist/browser/react/location-state.js +0 -29
  523. package/dist/browser/react/location-state.js.map +0 -1
  524. package/dist/browser/react/mount-context.d.ts +0 -24
  525. package/dist/browser/react/mount-context.d.ts.map +0 -1
  526. package/dist/browser/react/mount-context.js +0 -24
  527. package/dist/browser/react/mount-context.js.map +0 -1
  528. package/dist/browser/react/use-action.d.ts +0 -64
  529. package/dist/browser/react/use-action.d.ts.map +0 -1
  530. package/dist/browser/react/use-action.js +0 -134
  531. package/dist/browser/react/use-action.js.map +0 -1
  532. package/dist/browser/react/use-client-cache.d.ts +0 -41
  533. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  534. package/dist/browser/react/use-client-cache.js +0 -39
  535. package/dist/browser/react/use-client-cache.js.map +0 -1
  536. package/dist/browser/react/use-handle.d.ts +0 -31
  537. package/dist/browser/react/use-handle.d.ts.map +0 -1
  538. package/dist/browser/react/use-handle.js +0 -144
  539. package/dist/browser/react/use-handle.js.map +0 -1
  540. package/dist/browser/react/use-href.d.ts +0 -33
  541. package/dist/browser/react/use-href.d.ts.map +0 -1
  542. package/dist/browser/react/use-href.js +0 -39
  543. package/dist/browser/react/use-href.js.map +0 -1
  544. package/dist/browser/react/use-link-status.d.ts +0 -37
  545. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  546. package/dist/browser/react/use-link-status.js +0 -99
  547. package/dist/browser/react/use-link-status.js.map +0 -1
  548. package/dist/browser/react/use-mount.d.ts +0 -25
  549. package/dist/browser/react/use-mount.d.ts.map +0 -1
  550. package/dist/browser/react/use-mount.js +0 -30
  551. package/dist/browser/react/use-mount.js.map +0 -1
  552. package/dist/browser/react/use-navigation.d.ts +0 -27
  553. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  554. package/dist/browser/react/use-navigation.js +0 -87
  555. package/dist/browser/react/use-navigation.js.map +0 -1
  556. package/dist/browser/react/use-segments.d.ts +0 -38
  557. package/dist/browser/react/use-segments.d.ts.map +0 -1
  558. package/dist/browser/react/use-segments.js +0 -130
  559. package/dist/browser/react/use-segments.js.map +0 -1
  560. package/dist/browser/request-controller.d.ts +0 -26
  561. package/dist/browser/request-controller.d.ts.map +0 -1
  562. package/dist/browser/request-controller.js +0 -147
  563. package/dist/browser/request-controller.js.map +0 -1
  564. package/dist/browser/rsc-router.d.ts +0 -129
  565. package/dist/browser/rsc-router.d.ts.map +0 -1
  566. package/dist/browser/rsc-router.js +0 -195
  567. package/dist/browser/rsc-router.js.map +0 -1
  568. package/dist/browser/scroll-restoration.d.ts +0 -93
  569. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  570. package/dist/browser/scroll-restoration.js +0 -321
  571. package/dist/browser/scroll-restoration.js.map +0 -1
  572. package/dist/browser/segment-structure-assert.d.ts +0 -17
  573. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  574. package/dist/browser/segment-structure-assert.js +0 -59
  575. package/dist/browser/segment-structure-assert.js.map +0 -1
  576. package/dist/browser/server-action-bridge.d.ts +0 -26
  577. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  578. package/dist/browser/server-action-bridge.js +0 -668
  579. package/dist/browser/server-action-bridge.js.map +0 -1
  580. package/dist/browser/shallow.d.ts +0 -12
  581. package/dist/browser/shallow.d.ts.map +0 -1
  582. package/dist/browser/shallow.js +0 -34
  583. package/dist/browser/shallow.js.map +0 -1
  584. package/dist/browser/types.d.ts +0 -369
  585. package/dist/browser/types.d.ts.map +0 -1
  586. package/dist/browser/types.js +0 -2
  587. package/dist/browser/types.js.map +0 -1
  588. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  589. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  590. package/dist/build/__tests__/generate-cli.test.js +0 -237
  591. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  592. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  593. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  594. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  595. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  596. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  597. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  598. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  599. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  600. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  601. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  602. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  603. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  604. package/dist/build/generate-manifest.d.ts +0 -81
  605. package/dist/build/generate-manifest.d.ts.map +0 -1
  606. package/dist/build/generate-manifest.js +0 -276
  607. package/dist/build/generate-manifest.js.map +0 -1
  608. package/dist/build/generate-route-types.d.ts +0 -115
  609. package/dist/build/generate-route-types.d.ts.map +0 -1
  610. package/dist/build/generate-route-types.js +0 -740
  611. package/dist/build/generate-route-types.js.map +0 -1
  612. package/dist/build/index.d.ts +0 -21
  613. package/dist/build/index.d.ts.map +0 -1
  614. package/dist/build/index.js +0 -21
  615. package/dist/build/index.js.map +0 -1
  616. package/dist/build/route-trie.d.ts +0 -71
  617. package/dist/build/route-trie.d.ts.map +0 -1
  618. package/dist/build/route-trie.js +0 -175
  619. package/dist/build/route-trie.js.map +0 -1
  620. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  621. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  622. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  623. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  624. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  625. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  626. package/dist/cache/__tests__/document-cache.test.js +0 -345
  627. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  628. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  629. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  630. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  631. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  632. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  633. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  634. package/dist/cache/__tests__/memory-store.test.js +0 -367
  635. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  636. package/dist/cache/cache-scope.d.ts +0 -102
  637. package/dist/cache/cache-scope.d.ts.map +0 -1
  638. package/dist/cache/cache-scope.js +0 -440
  639. package/dist/cache/cache-scope.js.map +0 -1
  640. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  641. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  642. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  643. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  644. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  645. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  646. package/dist/cache/cf/cf-cache-store.js +0 -242
  647. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  648. package/dist/cache/cf/index.d.ts +0 -14
  649. package/dist/cache/cf/index.d.ts.map +0 -1
  650. package/dist/cache/cf/index.js +0 -17
  651. package/dist/cache/cf/index.js.map +0 -1
  652. package/dist/cache/document-cache.d.ts +0 -64
  653. package/dist/cache/document-cache.d.ts.map +0 -1
  654. package/dist/cache/document-cache.js +0 -228
  655. package/dist/cache/document-cache.js.map +0 -1
  656. package/dist/cache/index.d.ts +0 -19
  657. package/dist/cache/index.d.ts.map +0 -1
  658. package/dist/cache/index.js +0 -21
  659. package/dist/cache/index.js.map +0 -1
  660. package/dist/cache/memory-segment-store.d.ts +0 -110
  661. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  662. package/dist/cache/memory-segment-store.js +0 -117
  663. package/dist/cache/memory-segment-store.js.map +0 -1
  664. package/dist/cache/memory-store.d.ts +0 -41
  665. package/dist/cache/memory-store.d.ts.map +0 -1
  666. package/dist/cache/memory-store.js +0 -191
  667. package/dist/cache/memory-store.js.map +0 -1
  668. package/dist/cache/types.d.ts +0 -317
  669. package/dist/cache/types.d.ts.map +0 -1
  670. package/dist/cache/types.js +0 -12
  671. package/dist/cache/types.js.map +0 -1
  672. package/dist/client.d.ts +0 -248
  673. package/dist/client.d.ts.map +0 -1
  674. package/dist/client.js +0 -367
  675. package/dist/client.js.map +0 -1
  676. package/dist/client.rsc.d.ts +0 -26
  677. package/dist/client.rsc.d.ts.map +0 -1
  678. package/dist/client.rsc.js +0 -46
  679. package/dist/client.rsc.js.map +0 -1
  680. package/dist/component-utils.d.ts +0 -36
  681. package/dist/component-utils.d.ts.map +0 -1
  682. package/dist/component-utils.js +0 -61
  683. package/dist/component-utils.js.map +0 -1
  684. package/dist/components/DefaultDocument.d.ts +0 -13
  685. package/dist/components/DefaultDocument.d.ts.map +0 -1
  686. package/dist/components/DefaultDocument.js +0 -15
  687. package/dist/components/DefaultDocument.js.map +0 -1
  688. package/dist/debug.d.ts +0 -58
  689. package/dist/debug.d.ts.map +0 -1
  690. package/dist/debug.js +0 -157
  691. package/dist/debug.js.map +0 -1
  692. package/dist/default-error-boundary.d.ts +0 -11
  693. package/dist/default-error-boundary.d.ts.map +0 -1
  694. package/dist/default-error-boundary.js +0 -45
  695. package/dist/default-error-boundary.js.map +0 -1
  696. package/dist/deps/browser.d.ts +0 -2
  697. package/dist/deps/browser.d.ts.map +0 -1
  698. package/dist/deps/browser.js +0 -3
  699. package/dist/deps/browser.js.map +0 -1
  700. package/dist/deps/html-stream-client.d.ts +0 -2
  701. package/dist/deps/html-stream-client.d.ts.map +0 -1
  702. package/dist/deps/html-stream-client.js +0 -3
  703. package/dist/deps/html-stream-client.js.map +0 -1
  704. package/dist/deps/html-stream-server.d.ts +0 -2
  705. package/dist/deps/html-stream-server.d.ts.map +0 -1
  706. package/dist/deps/html-stream-server.js +0 -3
  707. package/dist/deps/html-stream-server.js.map +0 -1
  708. package/dist/deps/rsc.d.ts +0 -2
  709. package/dist/deps/rsc.d.ts.map +0 -1
  710. package/dist/deps/rsc.js +0 -4
  711. package/dist/deps/rsc.js.map +0 -1
  712. package/dist/deps/ssr.d.ts +0 -2
  713. package/dist/deps/ssr.d.ts.map +0 -1
  714. package/dist/deps/ssr.js +0 -3
  715. package/dist/deps/ssr.js.map +0 -1
  716. package/dist/errors.d.ts +0 -174
  717. package/dist/errors.d.ts.map +0 -1
  718. package/dist/errors.js +0 -241
  719. package/dist/errors.js.map +0 -1
  720. package/dist/handle.d.ts +0 -78
  721. package/dist/handle.d.ts.map +0 -1
  722. package/dist/handle.js +0 -82
  723. package/dist/handle.js.map +0 -1
  724. package/dist/handles/MetaTags.d.ts +0 -14
  725. package/dist/handles/MetaTags.d.ts.map +0 -1
  726. package/dist/handles/MetaTags.js +0 -136
  727. package/dist/handles/MetaTags.js.map +0 -1
  728. package/dist/handles/index.d.ts +0 -6
  729. package/dist/handles/index.d.ts.map +0 -1
  730. package/dist/handles/index.js +0 -6
  731. package/dist/handles/index.js.map +0 -1
  732. package/dist/handles/meta.d.ts +0 -39
  733. package/dist/handles/meta.d.ts.map +0 -1
  734. package/dist/handles/meta.js +0 -202
  735. package/dist/handles/meta.js.map +0 -1
  736. package/dist/host/__tests__/errors.test.d.ts +0 -2
  737. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  738. package/dist/host/__tests__/errors.test.js +0 -76
  739. package/dist/host/__tests__/errors.test.js.map +0 -1
  740. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  741. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  742. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  743. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  744. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  745. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  746. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  747. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  748. package/dist/host/__tests__/router.test.d.ts +0 -2
  749. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  750. package/dist/host/__tests__/router.test.js +0 -241
  751. package/dist/host/__tests__/router.test.js.map +0 -1
  752. package/dist/host/__tests__/testing.test.d.ts +0 -2
  753. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  754. package/dist/host/__tests__/testing.test.js +0 -64
  755. package/dist/host/__tests__/testing.test.js.map +0 -1
  756. package/dist/host/__tests__/utils.test.d.ts +0 -2
  757. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  758. package/dist/host/__tests__/utils.test.js +0 -29
  759. package/dist/host/__tests__/utils.test.js.map +0 -1
  760. package/dist/host/cookie-handler.d.ts +0 -34
  761. package/dist/host/cookie-handler.d.ts.map +0 -1
  762. package/dist/host/cookie-handler.js +0 -124
  763. package/dist/host/cookie-handler.js.map +0 -1
  764. package/dist/host/errors.d.ts +0 -56
  765. package/dist/host/errors.d.ts.map +0 -1
  766. package/dist/host/errors.js +0 -79
  767. package/dist/host/errors.js.map +0 -1
  768. package/dist/host/index.d.ts +0 -29
  769. package/dist/host/index.d.ts.map +0 -1
  770. package/dist/host/index.js +0 -32
  771. package/dist/host/index.js.map +0 -1
  772. package/dist/host/pattern-matcher.d.ts +0 -36
  773. package/dist/host/pattern-matcher.d.ts.map +0 -1
  774. package/dist/host/pattern-matcher.js +0 -172
  775. package/dist/host/pattern-matcher.js.map +0 -1
  776. package/dist/host/router.d.ts +0 -26
  777. package/dist/host/router.d.ts.map +0 -1
  778. package/dist/host/router.js +0 -218
  779. package/dist/host/router.js.map +0 -1
  780. package/dist/host/testing.d.ts +0 -36
  781. package/dist/host/testing.d.ts.map +0 -1
  782. package/dist/host/testing.js +0 -55
  783. package/dist/host/testing.js.map +0 -1
  784. package/dist/host/types.d.ts +0 -115
  785. package/dist/host/types.d.ts.map +0 -1
  786. package/dist/host/types.js +0 -7
  787. package/dist/host/types.js.map +0 -1
  788. package/dist/host/utils.d.ts +0 -21
  789. package/dist/host/utils.d.ts.map +0 -1
  790. package/dist/host/utils.js +0 -23
  791. package/dist/host/utils.js.map +0 -1
  792. package/dist/href-client.d.ts +0 -131
  793. package/dist/href-client.d.ts.map +0 -1
  794. package/dist/href-client.js +0 -64
  795. package/dist/href-client.js.map +0 -1
  796. package/dist/href-context.d.ts +0 -29
  797. package/dist/href-context.d.ts.map +0 -1
  798. package/dist/href-context.js +0 -21
  799. package/dist/href-context.js.map +0 -1
  800. package/dist/index.d.ts +0 -73
  801. package/dist/index.d.ts.map +0 -1
  802. package/dist/index.js +0 -91
  803. package/dist/index.js.map +0 -1
  804. package/dist/index.rsc.d.ts +0 -32
  805. package/dist/index.rsc.d.ts.map +0 -1
  806. package/dist/index.rsc.js +0 -40
  807. package/dist/index.rsc.js.map +0 -1
  808. package/dist/internal-debug.d.ts +0 -2
  809. package/dist/internal-debug.d.ts.map +0 -1
  810. package/dist/internal-debug.js +0 -5
  811. package/dist/internal-debug.js.map +0 -1
  812. package/dist/loader.d.ts +0 -14
  813. package/dist/loader.d.ts.map +0 -1
  814. package/dist/loader.js +0 -20
  815. package/dist/loader.js.map +0 -1
  816. package/dist/loader.rsc.d.ts +0 -19
  817. package/dist/loader.rsc.d.ts.map +0 -1
  818. package/dist/loader.rsc.js +0 -99
  819. package/dist/loader.rsc.js.map +0 -1
  820. package/dist/network-error-thrower.d.ts +0 -17
  821. package/dist/network-error-thrower.d.ts.map +0 -1
  822. package/dist/network-error-thrower.js +0 -14
  823. package/dist/network-error-thrower.js.map +0 -1
  824. package/dist/outlet-context.d.ts +0 -13
  825. package/dist/outlet-context.d.ts.map +0 -1
  826. package/dist/outlet-context.js +0 -3
  827. package/dist/outlet-context.js.map +0 -1
  828. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  829. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  830. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  831. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  832. package/dist/prerender/param-hash.d.ts +0 -16
  833. package/dist/prerender/param-hash.d.ts.map +0 -1
  834. package/dist/prerender/param-hash.js +0 -36
  835. package/dist/prerender/param-hash.js.map +0 -1
  836. package/dist/prerender/store.d.ts +0 -38
  837. package/dist/prerender/store.d.ts.map +0 -1
  838. package/dist/prerender/store.js +0 -61
  839. package/dist/prerender/store.js.map +0 -1
  840. package/dist/prerender.d.ts +0 -66
  841. package/dist/prerender.d.ts.map +0 -1
  842. package/dist/prerender.js +0 -57
  843. package/dist/prerender.js.map +0 -1
  844. package/dist/reverse.d.ts +0 -196
  845. package/dist/reverse.d.ts.map +0 -1
  846. package/dist/reverse.js +0 -78
  847. package/dist/reverse.js.map +0 -1
  848. package/dist/root-error-boundary.d.ts +0 -33
  849. package/dist/root-error-boundary.d.ts.map +0 -1
  850. package/dist/root-error-boundary.js +0 -165
  851. package/dist/root-error-boundary.js.map +0 -1
  852. package/dist/route-content-wrapper.d.ts +0 -46
  853. package/dist/route-content-wrapper.d.ts.map +0 -1
  854. package/dist/route-content-wrapper.js +0 -77
  855. package/dist/route-content-wrapper.js.map +0 -1
  856. package/dist/route-definition.d.ts +0 -421
  857. package/dist/route-definition.d.ts.map +0 -1
  858. package/dist/route-definition.js +0 -868
  859. package/dist/route-definition.js.map +0 -1
  860. package/dist/route-map-builder.d.ts +0 -155
  861. package/dist/route-map-builder.d.ts.map +0 -1
  862. package/dist/route-map-builder.js +0 -237
  863. package/dist/route-map-builder.js.map +0 -1
  864. package/dist/route-types.d.ts +0 -165
  865. package/dist/route-types.d.ts.map +0 -1
  866. package/dist/route-types.js +0 -7
  867. package/dist/route-types.js.map +0 -1
  868. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  869. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  870. package/dist/router/__tests__/handler-context.test.js +0 -65
  871. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  872. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  873. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  874. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  875. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  876. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  877. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  878. package/dist/router/__tests__/match-context.test.js +0 -92
  879. package/dist/router/__tests__/match-context.test.js.map +0 -1
  880. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  881. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  882. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  883. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  884. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  885. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  886. package/dist/router/__tests__/match-result.test.js +0 -457
  887. package/dist/router/__tests__/match-result.test.js.map +0 -1
  888. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  889. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  890. package/dist/router/__tests__/on-error.test.js +0 -678
  891. package/dist/router/__tests__/on-error.test.js.map +0 -1
  892. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  893. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  894. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  895. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  896. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  897. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  898. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  899. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  900. package/dist/router/error-handling.d.ts +0 -77
  901. package/dist/router/error-handling.d.ts.map +0 -1
  902. package/dist/router/error-handling.js +0 -202
  903. package/dist/router/error-handling.js.map +0 -1
  904. package/dist/router/handler-context.d.ts +0 -20
  905. package/dist/router/handler-context.d.ts.map +0 -1
  906. package/dist/router/handler-context.js +0 -198
  907. package/dist/router/handler-context.js.map +0 -1
  908. package/dist/router/intercept-resolution.d.ts +0 -66
  909. package/dist/router/intercept-resolution.d.ts.map +0 -1
  910. package/dist/router/intercept-resolution.js +0 -246
  911. package/dist/router/intercept-resolution.js.map +0 -1
  912. package/dist/router/loader-resolution.d.ts +0 -64
  913. package/dist/router/loader-resolution.d.ts.map +0 -1
  914. package/dist/router/loader-resolution.js +0 -284
  915. package/dist/router/loader-resolution.js.map +0 -1
  916. package/dist/router/logging.d.ts +0 -15
  917. package/dist/router/logging.d.ts.map +0 -1
  918. package/dist/router/logging.js +0 -99
  919. package/dist/router/logging.js.map +0 -1
  920. package/dist/router/manifest.d.ts +0 -22
  921. package/dist/router/manifest.d.ts.map +0 -1
  922. package/dist/router/manifest.js +0 -181
  923. package/dist/router/manifest.js.map +0 -1
  924. package/dist/router/match-api.d.ts +0 -35
  925. package/dist/router/match-api.d.ts.map +0 -1
  926. package/dist/router/match-api.js +0 -406
  927. package/dist/router/match-api.js.map +0 -1
  928. package/dist/router/match-context.d.ts +0 -206
  929. package/dist/router/match-context.d.ts.map +0 -1
  930. package/dist/router/match-context.js +0 -17
  931. package/dist/router/match-context.js.map +0 -1
  932. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  933. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  934. package/dist/router/match-middleware/background-revalidation.js +0 -75
  935. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  936. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  937. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  938. package/dist/router/match-middleware/cache-lookup.js +0 -257
  939. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  940. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  941. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  942. package/dist/router/match-middleware/cache-store.js +0 -108
  943. package/dist/router/match-middleware/cache-store.js.map +0 -1
  944. package/dist/router/match-middleware/index.d.ts +0 -81
  945. package/dist/router/match-middleware/index.d.ts.map +0 -1
  946. package/dist/router/match-middleware/index.js +0 -80
  947. package/dist/router/match-middleware/index.js.map +0 -1
  948. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  949. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  950. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  951. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  952. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  953. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  954. package/dist/router/match-middleware/segment-resolution.js +0 -53
  955. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  956. package/dist/router/match-pipelines.d.ts +0 -147
  957. package/dist/router/match-pipelines.d.ts.map +0 -1
  958. package/dist/router/match-pipelines.js +0 -82
  959. package/dist/router/match-pipelines.js.map +0 -1
  960. package/dist/router/match-result.d.ts +0 -126
  961. package/dist/router/match-result.d.ts.map +0 -1
  962. package/dist/router/match-result.js +0 -93
  963. package/dist/router/match-result.js.map +0 -1
  964. package/dist/router/metrics.d.ts +0 -20
  965. package/dist/router/metrics.d.ts.map +0 -1
  966. package/dist/router/metrics.js +0 -47
  967. package/dist/router/metrics.js.map +0 -1
  968. package/dist/router/middleware.d.ts +0 -249
  969. package/dist/router/middleware.d.ts.map +0 -1
  970. package/dist/router/middleware.js +0 -434
  971. package/dist/router/middleware.js.map +0 -1
  972. package/dist/router/middleware.test.d.ts +0 -2
  973. package/dist/router/middleware.test.d.ts.map +0 -1
  974. package/dist/router/middleware.test.js +0 -816
  975. package/dist/router/middleware.test.js.map +0 -1
  976. package/dist/router/pattern-matching.d.ts +0 -149
  977. package/dist/router/pattern-matching.d.ts.map +0 -1
  978. package/dist/router/pattern-matching.js +0 -349
  979. package/dist/router/pattern-matching.js.map +0 -1
  980. package/dist/router/revalidation.d.ts +0 -44
  981. package/dist/router/revalidation.d.ts.map +0 -1
  982. package/dist/router/revalidation.js +0 -147
  983. package/dist/router/revalidation.js.map +0 -1
  984. package/dist/router/router-context.d.ts +0 -135
  985. package/dist/router/router-context.d.ts.map +0 -1
  986. package/dist/router/router-context.js +0 -36
  987. package/dist/router/router-context.js.map +0 -1
  988. package/dist/router/segment-resolution.d.ts +0 -127
  989. package/dist/router/segment-resolution.d.ts.map +0 -1
  990. package/dist/router/segment-resolution.js +0 -919
  991. package/dist/router/segment-resolution.js.map +0 -1
  992. package/dist/router/trie-matching.d.ts +0 -40
  993. package/dist/router/trie-matching.d.ts.map +0 -1
  994. package/dist/router/trie-matching.js +0 -127
  995. package/dist/router/trie-matching.js.map +0 -1
  996. package/dist/router/types.d.ts +0 -136
  997. package/dist/router/types.d.ts.map +0 -1
  998. package/dist/router/types.js +0 -7
  999. package/dist/router/types.js.map +0 -1
  1000. package/dist/router.d.ts +0 -753
  1001. package/dist/router.d.ts.map +0 -1
  1002. package/dist/router.gen.d.ts +0 -6
  1003. package/dist/router.gen.d.ts.map +0 -1
  1004. package/dist/router.gen.js +0 -6
  1005. package/dist/router.gen.js.map +0 -1
  1006. package/dist/router.js +0 -1304
  1007. package/dist/router.js.map +0 -1
  1008. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1009. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1010. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1011. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1012. package/dist/rsc/handler.d.ts +0 -45
  1013. package/dist/rsc/handler.d.ts.map +0 -1
  1014. package/dist/rsc/handler.js +0 -1172
  1015. package/dist/rsc/handler.js.map +0 -1
  1016. package/dist/rsc/helpers.d.ts +0 -16
  1017. package/dist/rsc/helpers.d.ts.map +0 -1
  1018. package/dist/rsc/helpers.js +0 -55
  1019. package/dist/rsc/helpers.js.map +0 -1
  1020. package/dist/rsc/index.d.ts +0 -22
  1021. package/dist/rsc/index.d.ts.map +0 -1
  1022. package/dist/rsc/index.js +0 -23
  1023. package/dist/rsc/index.js.map +0 -1
  1024. package/dist/rsc/nonce.d.ts +0 -9
  1025. package/dist/rsc/nonce.d.ts.map +0 -1
  1026. package/dist/rsc/nonce.js +0 -18
  1027. package/dist/rsc/nonce.js.map +0 -1
  1028. package/dist/rsc/types.d.ts +0 -206
  1029. package/dist/rsc/types.d.ts.map +0 -1
  1030. package/dist/rsc/types.js +0 -8
  1031. package/dist/rsc/types.js.map +0 -1
  1032. package/dist/search-params.d.ts +0 -103
  1033. package/dist/search-params.d.ts.map +0 -1
  1034. package/dist/search-params.js +0 -74
  1035. package/dist/search-params.js.map +0 -1
  1036. package/dist/segment-system.d.ts +0 -75
  1037. package/dist/segment-system.d.ts.map +0 -1
  1038. package/dist/segment-system.js +0 -336
  1039. package/dist/segment-system.js.map +0 -1
  1040. package/dist/server/context.d.ts +0 -245
  1041. package/dist/server/context.d.ts.map +0 -1
  1042. package/dist/server/context.js +0 -197
  1043. package/dist/server/context.js.map +0 -1
  1044. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1045. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1046. package/dist/server/fetchable-loader-store.js +0 -18
  1047. package/dist/server/fetchable-loader-store.js.map +0 -1
  1048. package/dist/server/handle-store.d.ts +0 -85
  1049. package/dist/server/handle-store.d.ts.map +0 -1
  1050. package/dist/server/handle-store.js +0 -142
  1051. package/dist/server/handle-store.js.map +0 -1
  1052. package/dist/server/loader-registry.d.ts +0 -55
  1053. package/dist/server/loader-registry.d.ts.map +0 -1
  1054. package/dist/server/loader-registry.js +0 -132
  1055. package/dist/server/loader-registry.js.map +0 -1
  1056. package/dist/server/request-context.d.ts +0 -226
  1057. package/dist/server/request-context.d.ts.map +0 -1
  1058. package/dist/server/request-context.js +0 -290
  1059. package/dist/server/request-context.js.map +0 -1
  1060. package/dist/server/root-layout.d.ts +0 -4
  1061. package/dist/server/root-layout.d.ts.map +0 -1
  1062. package/dist/server/root-layout.js +0 -5
  1063. package/dist/server/root-layout.js.map +0 -1
  1064. package/dist/server.d.ts +0 -15
  1065. package/dist/server.d.ts.map +0 -1
  1066. package/dist/server.js +0 -20
  1067. package/dist/server.js.map +0 -1
  1068. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1069. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1070. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1071. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1072. package/dist/ssr/index.d.ts +0 -98
  1073. package/dist/ssr/index.d.ts.map +0 -1
  1074. package/dist/ssr/index.js +0 -158
  1075. package/dist/ssr/index.js.map +0 -1
  1076. package/dist/static-handler.d.ts +0 -50
  1077. package/dist/static-handler.d.ts.map +0 -1
  1078. package/dist/static-handler.gen.d.ts +0 -5
  1079. package/dist/static-handler.gen.d.ts.map +0 -1
  1080. package/dist/static-handler.gen.js +0 -5
  1081. package/dist/static-handler.gen.js.map +0 -1
  1082. package/dist/static-handler.js +0 -29
  1083. package/dist/static-handler.js.map +0 -1
  1084. package/dist/theme/ThemeProvider.d.ts +0 -20
  1085. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1086. package/dist/theme/ThemeProvider.js +0 -240
  1087. package/dist/theme/ThemeProvider.js.map +0 -1
  1088. package/dist/theme/ThemeScript.d.ts +0 -48
  1089. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1090. package/dist/theme/ThemeScript.js +0 -13
  1091. package/dist/theme/ThemeScript.js.map +0 -1
  1092. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1093. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1094. package/dist/theme/__tests__/theme.test.js +0 -103
  1095. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1096. package/dist/theme/constants.d.ts +0 -29
  1097. package/dist/theme/constants.d.ts.map +0 -1
  1098. package/dist/theme/constants.js +0 -48
  1099. package/dist/theme/constants.js.map +0 -1
  1100. package/dist/theme/index.d.ts +0 -31
  1101. package/dist/theme/index.d.ts.map +0 -1
  1102. package/dist/theme/index.js +0 -36
  1103. package/dist/theme/index.js.map +0 -1
  1104. package/dist/theme/theme-context.d.ts +0 -40
  1105. package/dist/theme/theme-context.d.ts.map +0 -1
  1106. package/dist/theme/theme-context.js +0 -60
  1107. package/dist/theme/theme-context.js.map +0 -1
  1108. package/dist/theme/theme-script.d.ts +0 -27
  1109. package/dist/theme/theme-script.d.ts.map +0 -1
  1110. package/dist/theme/theme-script.js +0 -147
  1111. package/dist/theme/theme-script.js.map +0 -1
  1112. package/dist/theme/types.d.ts +0 -163
  1113. package/dist/theme/types.d.ts.map +0 -1
  1114. package/dist/theme/types.js +0 -11
  1115. package/dist/theme/types.js.map +0 -1
  1116. package/dist/theme/use-theme.d.ts +0 -12
  1117. package/dist/theme/use-theme.d.ts.map +0 -1
  1118. package/dist/theme/use-theme.js +0 -40
  1119. package/dist/theme/use-theme.js.map +0 -1
  1120. package/dist/types.d.ts +0 -1479
  1121. package/dist/types.d.ts.map +0 -1
  1122. package/dist/types.js +0 -10
  1123. package/dist/types.js.map +0 -1
  1124. package/dist/urls.d.ts +0 -441
  1125. package/dist/urls.d.ts.map +0 -1
  1126. package/dist/urls.gen.d.ts +0 -8
  1127. package/dist/urls.gen.d.ts.map +0 -1
  1128. package/dist/urls.gen.js +0 -8
  1129. package/dist/urls.gen.js.map +0 -1
  1130. package/dist/urls.js +0 -443
  1131. package/dist/urls.js.map +0 -1
  1132. package/dist/use-loader.d.ts +0 -127
  1133. package/dist/use-loader.d.ts.map +0 -1
  1134. package/dist/use-loader.js +0 -237
  1135. package/dist/use-loader.js.map +0 -1
  1136. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1137. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1138. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1139. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1140. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1141. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1142. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1143. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1144. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1145. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1146. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1147. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1148. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1149. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1150. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1151. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1152. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1153. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1154. package/dist/vite/ast-handler-extract.js +0 -249
  1155. package/dist/vite/ast-handler-extract.js.map +0 -1
  1156. package/dist/vite/expose-action-id.d.ts +0 -19
  1157. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1158. package/dist/vite/expose-action-id.js +0 -250
  1159. package/dist/vite/expose-action-id.js.map +0 -1
  1160. package/dist/vite/expose-id-utils.d.ts +0 -69
  1161. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1162. package/dist/vite/expose-id-utils.js +0 -289
  1163. package/dist/vite/expose-id-utils.js.map +0 -1
  1164. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1165. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1166. package/dist/vite/expose-internal-ids.js +0 -886
  1167. package/dist/vite/expose-internal-ids.js.map +0 -1
  1168. package/dist/vite/index.d.ts +0 -149
  1169. package/dist/vite/index.d.ts.map +0 -1
  1170. package/dist/vite/index.js.bak +0 -5448
  1171. package/dist/vite/index.js.map +0 -1
  1172. package/dist/vite/index.named-routes.gen.ts +0 -103
  1173. package/dist/vite/package-resolution.d.ts +0 -43
  1174. package/dist/vite/package-resolution.d.ts.map +0 -1
  1175. package/dist/vite/package-resolution.js +0 -112
  1176. package/dist/vite/package-resolution.js.map +0 -1
  1177. package/dist/vite/virtual-entries.d.ts +0 -25
  1178. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1179. package/dist/vite/virtual-entries.js +0 -110
  1180. package/dist/vite/virtual-entries.js.map +0 -1
  1181. package/src/browser/action-response-classifier.ts +0 -99
  1182. package/src/browser/react/use-client-cache.ts +0 -58
  1183. package/src/browser/shallow.ts +0 -40
  1184. package/src/handles/index.ts +0 -7
  1185. package/src/network-error-thrower.tsx +0 -23
  1186. package/src/router/middleware-cookies.ts +0 -55
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rangojs/router",
3
- "version": "0.0.0-experimental.d20dd405",
3
+ "version": "0.0.0-experimental.d5d3070a",
4
4
  "description": "Django-inspired RSC router with composable URL patterns",
5
5
  "keywords": [
6
6
  "react",
@@ -110,6 +110,11 @@
110
110
  "react-server": "./src/cache/cache-runtime.ts",
111
111
  "default": "./src/cache/cache-runtime.ts"
112
112
  },
113
+ "./cloudflare": {
114
+ "types": "./src/cloudflare/index.ts",
115
+ "react-server": "./src/cloudflare/index.ts",
116
+ "default": "./src/cloudflare/index.ts"
117
+ },
113
118
  "./theme": {
114
119
  "types": "./src/theme/index.ts",
115
120
  "default": "./src/theme/index.ts"
@@ -126,6 +131,31 @@
126
131
  "./host/testing": {
127
132
  "types": "./src/host/testing.ts",
128
133
  "default": "./src/host/testing.ts"
134
+ },
135
+ "./testing": {
136
+ "types": "./src/testing/index.ts",
137
+ "default": "./src/testing/index.ts"
138
+ },
139
+ "./testing/vitest": {
140
+ "types": "./src/testing/vitest.ts",
141
+ "default": "./dist/testing/vitest.js"
142
+ },
143
+ "./testing/dom": {
144
+ "types": "./src/testing/dom.entry.ts",
145
+ "default": "./src/testing/dom.entry.ts"
146
+ },
147
+ "./testing/e2e": {
148
+ "types": "./src/testing/e2e/index.ts",
149
+ "default": "./src/testing/e2e/index.ts"
150
+ },
151
+ "./testing/flight": {
152
+ "types": "./src/testing/flight.entry.ts",
153
+ "react-server": "./src/testing/flight.entry.ts",
154
+ "default": "./src/testing/flight.entry.ts"
155
+ },
156
+ "./testing/flight-matchers": {
157
+ "types": "./src/testing/flight-matchers.ts",
158
+ "default": "./src/testing/flight-matchers.ts"
129
159
  }
130
160
  },
131
161
  "publishConfig": {
@@ -133,47 +163,69 @@
133
163
  "tag": "experimental"
134
164
  },
135
165
  "scripts": {
136
- "build": "pnpm dlx esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm dlx esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
166
+ "build": "pnpm exec esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm exec esbuild src/testing/vitest.ts --bundle --format=esm --outfile=dist/testing/vitest.js --platform=node --packages=external && pnpm exec esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
137
167
  "prepublishOnly": "pnpm build",
138
- "typecheck": "tsc --noEmit && tsc -p tsconfig.strict-check.json --noEmit",
168
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.strict-check.json --noEmit && tsc -p tsconfig.augment-check.json --noEmit",
139
169
  "test": "playwright test",
140
170
  "test:ui": "playwright test --ui",
171
+ "test:hmr-local": "playwright test --project=dev-warmup --project=hmr-routes --project=hmr-basename --project=hmr-prerender --no-deps --workers=1",
141
172
  "test:unit": "vitest run",
142
- "test:unit:watch": "vitest"
173
+ "test:unit:watch": "vitest",
174
+ "test:unit:rsc": "vitest run --config vitest.rsc.config.ts"
143
175
  },
144
176
  "dependencies": {
145
177
  "@types/debug": "^4.1.12",
146
- "@vitejs/plugin-rsc": "^0.5.23",
178
+ "@vitejs/plugin-rsc": "^0.5.26",
147
179
  "debug": "^4.4.1",
148
180
  "magic-string": "^0.30.17",
149
- "picomatch": "^4.0.3",
150
- "rsc-html-stream": "^0.0.7"
181
+ "picomatch": "^4.0.4",
182
+ "rsc-html-stream": "^0.0.7",
183
+ "tinyexec": "^0.3.2"
151
184
  },
152
185
  "devDependencies": {
153
186
  "@playwright/test": "^1.49.1",
187
+ "@shared/e2e": "workspace:*",
188
+ "@testing-library/dom": "^10.4.1",
189
+ "@testing-library/react": "^16.3.2",
154
190
  "@types/node": "^24.10.1",
155
191
  "@types/react": "catalog:",
156
192
  "@types/react-dom": "catalog:",
157
193
  "esbuild": "^0.27.0",
194
+ "happy-dom": "^20.10.1",
158
195
  "jiti": "^2.6.1",
159
196
  "react": "catalog:",
160
197
  "react-dom": "catalog:",
161
- "tinyexec": "^0.3.2",
162
198
  "typescript": "^5.3.0",
163
199
  "vitest": "^4.0.0"
164
200
  },
165
201
  "peerDependencies": {
166
- "@cloudflare/vite-plugin": "^1.25.0",
167
- "@vitejs/plugin-rsc": "^0.5.23",
168
- "react": "^18.0.0 || ^19.0.0",
169
- "vite": "^7.3.0"
202
+ "@cloudflare/vite-plugin": "^1.38.0",
203
+ "@playwright/test": "^1.49.1",
204
+ "@testing-library/react": ">=16",
205
+ "@vitejs/plugin-rsc": "^0.5.26",
206
+ "react": ">=19.2.6 <20",
207
+ "react-dom": ">=19.2.6 <20",
208
+ "vite": "^8.0.0",
209
+ "vitest": ">=3"
170
210
  },
171
211
  "peerDependenciesMeta": {
172
212
  "@cloudflare/vite-plugin": {
173
213
  "optional": true
174
214
  },
215
+ "@playwright/test": {
216
+ "optional": true
217
+ },
218
+ "@testing-library/react": {
219
+ "optional": true
220
+ },
175
221
  "vite": {
176
222
  "optional": true
223
+ },
224
+ "vitest": {
225
+ "optional": true
177
226
  }
227
+ },
228
+ "engines": {
229
+ "node": "^20.19.0 || >=22.12.0"
178
230
  }
179
231
  }
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: api-client
3
+ description: Build a typed client for consuming your own response-route JSON APIs (no codegen)
4
+ ---
5
+
6
+ # Typed API Client
7
+
8
+ Response routes (`path.json()`) already ship typed responses — `RouteResponse<typeof patterns, "name">` resolves to the **bare payload**, inferred from your handler with no codegen. This skill wraps that inference in a small **typed client** so first-party TypeScript code calls your endpoints like functions instead of hand-writing `fetch` + URL building per call site.
9
+
10
+ This is a **recipe, not a framework feature** — copy the helper below into your app. It depends only on **type-only** imports from `@rangojs/router` (`RouteResponse`, `ExtractParams`, `ProblemDetails`), which are erased at build time, so it runs anywhere a `fetch` does — **browser, worker, or server**. Nothing new to install or version.
11
+
12
+ > **Scope:** the typed client is a **first-party TypeScript** convenience. External/third-party consumers use the plain wire directly — bare JSON on success, RFC 9457 `application/problem+json` on error — which needs no client. (Language-agnostic OpenAPI generation is a separate, future feature.)
13
+
14
+ ## What you get
15
+
16
+ ```ts
17
+ const api = createApiClient(apiShopPatterns, routes, { baseUrl });
18
+
19
+ await api.health.get(); // no params → callable bare
20
+ await api.product.get({ params: { productId } }); // params typed + required
21
+ await api.cart.post({ body: { productId, qty: 2 } }); // body sent as JSON
22
+ // ^ result is the bare payload type (RouteResponse), not `any`, no `.data`
23
+ ```
24
+
25
+ - **Output typed** from the handler's return (`RouteResponse`), zero codegen.
26
+ - **Params required + typed** from the route pattern (`/catalog/:productId` → `{ productId: string }`); a missing or misspelled param is a **compile error**, not a runtime 404.
27
+ - **Autocomplete** over every route name; rename-safe.
28
+ - **Errors throw a typed `ApiError`** carrying the `ProblemDetails` body.
29
+
30
+ (`search` and `body` are _not_ route-typed — see Notes.)
31
+
32
+ ## The two inputs
33
+
34
+ 1. **The `urls()` patterns value** — the type source. `typeof apiShopPatterns` carries the per-route response payloads (`_responses`) and patterns (`_routes`).
35
+ 2. **The generated route map** — the name → pattern source. `rango generate` emits a per-module `<name>.gen.ts` exporting `routes`:
36
+
37
+ ```ts
38
+ // api-shop.gen.ts (generated — do not edit)
39
+ export const routes = {
40
+ catalog: "/catalog",
41
+ product: "/catalog/:productId",
42
+ cart: "/cart",
43
+ // ...
44
+ } as const;
45
+ ```
46
+
47
+ Routes that declare a **search schema** are generated as objects instead — `index: { path: "/", search: { q: "string" } }`. The helper accepts both the string and `{ path }` forms. If a `urls()` block is mounted under a name prefix, build a local-keyed map from your global `NamedRoutes` so the keys match the block's route names (e.g. `{ catalog: NamedRoutes["apiShop.catalog"], ... } as const`).
48
+
49
+ ## The helper (copy into your app)
50
+
51
+ ```ts
52
+ // lib/api-client.ts
53
+ import type {
54
+ RouteResponse,
55
+ ExtractParams,
56
+ ProblemDetails,
57
+ } from "@rangojs/router";
58
+
59
+ type SearchParams = Record<string, string | number | boolean>;
60
+
61
+ // A generated route-map entry is a pattern string, or an object with `path`
62
+ // (routes that declare a search schema generate the object form).
63
+ type RouteMapEntry = string | { readonly path: string };
64
+ type PatternOf<E> = E extends string
65
+ ? E
66
+ : E extends { readonly path: infer P extends string }
67
+ ? P
68
+ : never;
69
+
70
+ // `params` is optional when the route has no *required* params (incl.
71
+ // optional-only routes like `/:locale?`), required otherwise. Typed as
72
+ // `ExtractParams` (not `undefined`) so optional params can still be passed.
73
+ type Args<TPattern extends string> =
74
+ {} extends ExtractParams<TPattern>
75
+ ? {
76
+ params?: ExtractParams<TPattern>;
77
+ search?: SearchParams;
78
+ body?: unknown;
79
+ }
80
+ : {
81
+ params: ExtractParams<TPattern>;
82
+ search?: SearchParams;
83
+ body?: unknown;
84
+ };
85
+
86
+ type Method<TPatterns, K extends string, TEntry> =
87
+ {} extends ExtractParams<PatternOf<TEntry>>
88
+ ? (args?: Args<PatternOf<TEntry>>) => Promise<RouteResponse<TPatterns, K>>
89
+ : (args: Args<PatternOf<TEntry>>) => Promise<RouteResponse<TPatterns, K>>;
90
+
91
+ type ApiClient<TPatterns, TRouteMap extends Record<string, RouteMapEntry>> = {
92
+ [K in keyof TRouteMap & string]: {
93
+ get: Method<TPatterns, K, TRouteMap[K]>;
94
+ post: Method<TPatterns, K, TRouteMap[K]>;
95
+ put: Method<TPatterns, K, TRouteMap[K]>;
96
+ patch: Method<TPatterns, K, TRouteMap[K]>;
97
+ delete: Method<TPatterns, K, TRouteMap[K]>;
98
+ };
99
+ };
100
+
101
+ /** Thrown on a non-2xx response; carries the RFC 9457 problem body. */
102
+ export class ApiError extends Error {
103
+ status: number;
104
+ problem: ProblemDetails;
105
+ constructor(status: number, problem: ProblemDetails) {
106
+ super(problem.detail || `HTTP ${status}`);
107
+ this.name = "ApiError";
108
+ this.status = status;
109
+ this.problem = problem;
110
+ }
111
+ }
112
+
113
+ // Client-safe path builder: substitutes :params (incl. optional/constrained
114
+ // forms) into the pattern. No dependency on the server-only createReverse.
115
+ function fillPath(pattern: string, params?: Record<string, string>): string {
116
+ return pattern
117
+ .replace(/:([A-Za-z0-9_]+)(?:\([^)]*\))?\??/g, (_m, name: string) => {
118
+ const v = params?.[name];
119
+ return v == null ? "" : encodeURIComponent(String(v));
120
+ })
121
+ .replace(/\/{2,}/g, "/");
122
+ }
123
+
124
+ export function createApiClient<
125
+ TPatterns,
126
+ const TRouteMap extends Record<string, RouteMapEntry>,
127
+ >(
128
+ _patterns: TPatterns,
129
+ routeMap: TRouteMap,
130
+ opts: { baseUrl?: string; fetch?: typeof fetch } = {},
131
+ ): ApiClient<TPatterns, TRouteMap> {
132
+ const doFetch = opts.fetch ?? fetch;
133
+ const baseUrl = opts.baseUrl ?? "";
134
+ const call =
135
+ (name: string, method: string) =>
136
+ async (args?: {
137
+ params?: Record<string, string>;
138
+ search?: SearchParams;
139
+ body?: unknown;
140
+ }) => {
141
+ const entry = routeMap[name];
142
+ const pattern = typeof entry === "string" ? entry : entry.path;
143
+ let url = baseUrl + fillPath(pattern, args?.params);
144
+ if (args?.search) {
145
+ const qs = new URLSearchParams();
146
+ for (const [k, v] of Object.entries(args.search)) {
147
+ if (v != null) qs.append(k, String(v));
148
+ }
149
+ const s = qs.toString();
150
+ if (s) url += (url.includes("?") ? "&" : "?") + s;
151
+ }
152
+ const res = await doFetch(url, {
153
+ method,
154
+ ...(args?.body !== undefined
155
+ ? {
156
+ body: JSON.stringify(args.body),
157
+ headers: { "content-type": "application/json" },
158
+ }
159
+ : {}),
160
+ });
161
+ if (!res.ok) {
162
+ const problem = (await res.json().catch(() => ({}))) as ProblemDetails;
163
+ throw new ApiError(res.status, problem);
164
+ }
165
+ return res.json();
166
+ };
167
+ return new Proxy({} as any, {
168
+ get: (_t, name: string) => ({
169
+ get: call(name, "GET"),
170
+ post: call(name, "POST"),
171
+ put: call(name, "PUT"),
172
+ patch: call(name, "PATCH"),
173
+ delete: call(name, "DELETE"),
174
+ }),
175
+ }) as ApiClient<TPatterns, TRouteMap>;
176
+ }
177
+ ```
178
+
179
+ ## Using it
180
+
181
+ ```ts
182
+ import { apiShopPatterns } from "./urls/api-shop";
183
+ import { routes } from "./urls/api-shop.gen";
184
+ import { createApiClient, ApiError } from "./lib/api-client";
185
+
186
+ const api = createApiClient(apiShopPatterns, routes, {
187
+ baseUrl: import.meta.env.VITE_API_URL ?? "",
188
+ });
189
+
190
+ try {
191
+ const product = await api.product.get({ params: { productId: "42" } });
192
+ // `product` is the handler's bare return type — e.g. `product.name` is typed.
193
+ } catch (err) {
194
+ if (err instanceof ApiError && err.status === 404) {
195
+ console.warn(err.problem.code, err.problem.detail); // typed ProblemDetails
196
+ } else {
197
+ throw err;
198
+ }
199
+ }
200
+ ```
201
+
202
+ ## Notes
203
+
204
+ - **Client-safe by construction.** The helper imports only **types** from `@rangojs/router` (erased at build) and builds URLs itself by substituting `:params` into the pattern — it does **not** use `createReverse`, which is a server/RSC-only export that throws in the browser. So `createApiClient` works in client components, workers, and on the server alike.
205
+ - **Params are route-typed; search and body are not.** Path params come from the route pattern (`ExtractParams`), so they are precise and required. `search` is generically typed (`Record<string, string | number | boolean>`), and `body` is `unknown` (serialized to JSON). Typed request **input** needs a declared schema layer, which is intentionally out of scope here — thread per-route schemas in yourself if you want typed search/body.
206
+ - **Verb-agnostic wire.** Rango response routes do not dispatch on HTTP method — `.get`/`.post`/etc. set the request method but hit the same handler. Use whichever verb reads best for the operation.
207
+ - **Path building.** `fillPath` handles standard `:param`, optional `:param?`, and constrained `:param(a|b)` forms. For exotic patterns or strict trailing-slash policies, swap in your own builder (or the router's `reverse` on the server).
208
+ - **Want a return-based style instead of throwing?** Branch on `res.ok` yourself: the wire is the bare value on 2xx and `ProblemDetails` on non-2xx (see `/response-routes`). Wrapping the calls in a `{ ok, data } | { ok: false, error }` result type is a small variation on the same helper.
209
+ - **Third parties.** The typed client is TypeScript-only and needs your route types. External consumers in any language use the plain wire as-is (bare JSON + problem+json); no client required.
210
+
211
+ See `/response-routes` for the endpoint side and `/typesafety` for how `RouteResponse` / `PathResponse` inference works.
@@ -81,6 +81,66 @@ path("/product/:id", async (ctx) => {
81
81
  Async content is a `Promise<ReactNode>`. Resolve it in your component
82
82
  with React's `use()` hook wrapped in `<Suspense>`.
83
83
 
84
+ ### Deferred content (decide now, resolve from a deep component)
85
+
86
+ When the handler should DECIDE to push a crumb (it holds `ctx`, so the decision
87
+ must land before the handles stream seals) but the value is produced far away — by
88
+ a deep async component, not the handler — call `.defer()` on the push function.
89
+ `ctx.use(Handle)` returns the push function; `.defer(options)` reserves the crumb's
90
+ slot synchronously and returns a **resolver that is push-equal** — you call it
91
+ later, anywhere in the render, with the same argument you'd have passed to the
92
+ push (a value, a `Promise`, or a thunk). The only added behavior is a timeout, so a
93
+ forgotten resolve can't hold the Flight stream (and the HTTP response) open forever.
94
+
95
+ Reserve the slot in the handler, then resolve it from a nested async component
96
+ that closes over the resolver — no extra wiring (the resolver is a plain closure,
97
+ not outlet context):
98
+
99
+ ```tsx
100
+ import { Breadcrumbs } from "@rangojs/router";
101
+ import { Outlet } from "@rangojs/router/client";
102
+ import { Suspense } from "react";
103
+
104
+ function DocsLayout(ctx) {
105
+ const breadcrumb = ctx.use(Breadcrumbs);
106
+ // Decide now (the slot is reserved before the stream seals); resolve later.
107
+ const resolveCrumb = breadcrumb.defer({ timeoutMs: 5000, else: null });
108
+
109
+ // Deep, async, far from the handler — closes over the resolver, never touches ctx.
110
+ // Same call shape as breadcrumb({ ... }), just deferred:
111
+ async function LiveCrumb() {
112
+ const n = await countOpenIssues();
113
+ resolveCrumb({ label: "Docs", href: "/docs", content: <span>{n}</span> });
114
+ return null;
115
+ }
116
+
117
+ return (
118
+ <>
119
+ <Suspense>
120
+ <LiveCrumb />
121
+ </Suspense>
122
+ <Outlet />
123
+ </>
124
+ );
125
+ }
126
+ ```
127
+
128
+ If the resolver is never called, the slot auto-resolves to `else` after
129
+ `timeoutMs` (default 10s) and warns in dev — graceful degradation instead of a
130
+ hung request. `timeoutMs: 0` or `Infinity` disable the timeout intentionally; any
131
+ other non-finite or negative value falls back to the default rather than silently
132
+ disabling the safety net.
133
+
134
+ **Consumer note:** because `.defer()` reserves the slot for the WHOLE item, a
135
+ client reading the handle (`useHandle(Breadcrumbs)`) sees that entry as a
136
+ `Promise` until it resolves. Type such reads with the exported
137
+ `DeferredHandleEntry<BreadcrumbItem>` (from `@rangojs/router/client`); a
138
+ deferred-aware consumer should `use()` thenable entries inside `<Suspense>`, while
139
+ a simple one can skip them (`typeof entry.then === "function"`). Use `.defer()`
140
+ only when even `label`/`href` are unknown at handler time — if you know them and
141
+ only the `content` is async, push a concrete item with a `Promise` `content` field
142
+ instead (no `.defer()` needed).
143
+
84
144
  ## Consuming Breadcrumbs (Client)
85
145
 
86
146
  Use `useHandle(Breadcrumbs)` in a client component to read the accumulated items:
@@ -146,7 +206,7 @@ path("/dashboard", (ctx) => {
146
206
  ```tsx
147
207
  // Client component
148
208
  "use client";
149
- import { useHandle, type Breadcrumbs } from "@rangojs/router/client";
209
+ import { useHandle, Breadcrumbs } from "@rangojs/router/client";
150
210
 
151
211
  function DashboardNav({ handle }: { handle: typeof Breadcrumbs }) {
152
212
  const crumbs = useHandle(handle);
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: bundle-analysis
3
+ description: Audit a Rango app's production bundle for server-side code leaking into the client, dev/prod React duplication, oversized chunks, and inefficient client-reference grouping. Use when investigating bundle size growth, before a production deploy, or when the client/SSR/RSC output suddenly balloons.
4
+ argument-hint: "<app-dir>"
5
+ ---
6
+
7
+ # Bundle Analysis
8
+
9
+ Use this when you want **proof** that your Rango app is shipping the bundles you expect: small client, no server leaks, no doubled React, reasonable RSC worker size.
10
+
11
+ ## What this checks
12
+
13
+ Your app builds in three Vite environments — `client`, `ssr`, and `rsc` — and each ships its own bundle. The most common bundle bugs in a Rango app are:
14
+
15
+ 1. **Server code leaking into the client.** A file that imports `node:fs`, calls a database, or contains action logic ends up in the client bundle because a client component pulled it in transitively. Symptom: your client bundle is much larger than expected, sometimes with imports that fail at runtime.
16
+ 2. **Both dev and prod React in the SSR/RSC bundle.** When `process.env.NODE_ENV` isn't folded at build time, React's CJS files ship both `.development.js` _and_ `.production.js` variants — doubling React's footprint. The Cloudflare vite plugin folds NODE_ENV automatically; vanilla `vite build` does it for client but not always for SSR/RSC.
17
+ 3. **An oversized routes-manifest in your RSC worker.** The `virtual:rsc-router/routes-manifest/<routerId>` chunk holds your route trie and precomputed entries — large only in proportion to your route count. If it's surprisingly big, you may have unintentionally generated routes (e.g., parametrized fixtures) that bloated the trie.
18
+ 4. **Inefficient client-reference grouping.** Each `"use client"` boundary becomes a chunk. Too many small client components = many tiny chunks; one giant client component = one giant chunk that defeats code-splitting.
19
+
20
+ Tree-shaking does _not_ catch (1) generated data inlined as string literals or (2) data-dependent conditionals like React's. You need a visualizer.
21
+
22
+ ## Step 1: Install the visualizer
23
+
24
+ In your app's directory:
25
+
26
+ ```bash
27
+ pnpm add -D rollup-plugin-visualizer
28
+ # or: npm install --save-dev rollup-plugin-visualizer
29
+ # or: yarn add -D rollup-plugin-visualizer
30
+ ```
31
+
32
+ ## Step 2: Wire it into your `vite.config.ts`
33
+
34
+ Add a small helper that registers one visualizer instance **per Vite environment** (not just one global). The plugin caches its options after the first call, so a single instance can't handle multi-environment builds — you'll get a report for one environment and silence for the others.
35
+
36
+ ```ts
37
+ // vite.config.ts
38
+ import { defineConfig, type PluginOption, type Plugin } from "vite";
39
+ import { visualizer } from "rollup-plugin-visualizer";
40
+ import { join } from "node:path";
41
+ // ... your other imports ...
42
+
43
+ function analyze(): PluginOption[] {
44
+ if (!process.env.RANGO_ANALYZE) return [];
45
+ return (["client", "ssr", "rsc"] as const).map((envName) => {
46
+ const inner = visualizer({
47
+ filename: join("bundle-stats", `${envName}.html`),
48
+ template: "treemap",
49
+ gzipSize: true,
50
+ brotliSize: true,
51
+ }) as Plugin;
52
+ return {
53
+ ...inner,
54
+ name: `analyze-${envName}`,
55
+ applyToEnvironment(env) {
56
+ return env.name === envName;
57
+ },
58
+ } as Plugin;
59
+ });
60
+ }
61
+
62
+ export default defineConfig(({ command }) => ({
63
+ plugins: [
64
+ // your existing plugins...
65
+ ...analyze(),
66
+ ],
67
+ // For non-Cloudflare apps, fold NODE_ENV explicitly so React's CJS files
68
+ // emit only the .production.js variants in SSR/RSC. Skip if your build
69
+ // setup already does this (the Cloudflare vite plugin does).
70
+ define:
71
+ command === "build"
72
+ ? { "process.env.NODE_ENV": JSON.stringify("production") }
73
+ : undefined,
74
+ }));
75
+ ```
76
+
77
+ Add `bundle-stats/` to your `.gitignore`.
78
+
79
+ ## Step 3: Build with the analyzer enabled
80
+
81
+ ```bash
82
+ RANGO_ANALYZE=1 pnpm exec vite build
83
+ ```
84
+
85
+ You'll get three HTML reports in `bundle-stats/`:
86
+
87
+ - `bundle-stats/client.html` — what runs in the browser
88
+ - `bundle-stats/ssr.html` — what runs during HTML stream
89
+ - `bundle-stats/rsc.html` — what runs in your RSC server (Worker / Node)
90
+
91
+ Open them with a quick local server (file:// has CORS issues with the embedded scripts):
92
+
93
+ ```bash
94
+ pnpm dlx serve -l 5050 .
95
+ # then visit http://localhost:5050/bundle-stats/client.html
96
+ ```
97
+
98
+ ## Step 4: Triage the reports
99
+
100
+ ### Open `client.html` first
101
+
102
+ The treemap shows nested boxes; box area = uncompressed size. Hover for gzip/brotli numbers.
103
+
104
+ **Look for:**
105
+
106
+ - **Your server code.** Any of your own files that contain database queries, secret keys, server actions implementation (not the action _reference_), or `node:` imports. If they appear in the client treemap with non-zero bytes, they leaked. Common causes:
107
+ - A shared module that mixes client and server code without a `"use client"` or `"use server"` directive.
108
+ - A barrel file (`index.ts`) that re-exports both client and server symbols. Tree-shaking should help, but `JSON.parse('{...}')` data and side-effecting top-level statements survive.
109
+ - Client component imports a server-only utility through an indirect path (e.g., shared types file that pulls server modules).
110
+ - **Multiple copies of the same package.** Look for two boxes with the same package name but different version paths. Usually means a transitive dep pinned a different version.
111
+ - **The `@rangojs/router` chunk** should be roughly **50 KB gzip** (74 files). If significantly larger, you might be importing client-incompatible APIs from the wrong subpath.
112
+ - **Per-route client-reference chunks** (named like `chunk-<hash>.js`). Each `"use client"` boundary can become its own chunk. If you have hundreds of tiny chunks, you may have over-split (every leaf component as a client component); if you have one massive 200 KB chunk, you've under-split (a wide client tree behind one boundary).
113
+
114
+ ### Now check `ssr.html`
115
+
116
+ **Look for:**
117
+
118
+ - **`react-dom-server.edge.development-*.js`** (or any `*.development*.js` chunk). This is the dev/prod React doubling. Fix: add `define: { "process.env.NODE_ENV": '"production"' }` to your vite config (see Step 2).
119
+ - **Your client components** appearing in SSR. They're _expected_ here — SSR hydration needs to produce HTML for them. The same components show up in `client.html` too because the browser hydrates them. This is not a leak.
120
+ - **Total SSR size**: a reasonable Rango SSR is ~140 KB gzip plus your app code. If it's >300 KB, almost always (1) dev/prod React duplication or (2) a giant data structure being inlined.
121
+
122
+ ### Now check `rsc.html`
123
+
124
+ **Look for:**
125
+
126
+ - **`virtual:rsc-router/routes-manifest`** should be **tiny** (< 1 KB). If it's > 100 KB, you're on an old version of `@rangojs/router` that inlined the trie eagerly — upgrade to a release that includes commit `d10a2470`.
127
+ - **`virtual:rsc-router/routes-manifest/<hash>`** is the lazy per-router chunk. Its size is proportional to your route count. For a typical app: 5–50 KB gzip. For a stress-test app with thousands of routes: hundreds of KB. If yours is unexpectedly huge, check whether you're generating routes you don't need.
128
+ - **`<your-router>.named-routes.gen.ts`** — generated route map. Should match your route count.
129
+ - **Your action and loader implementations** — these run server-side. Expected to be here, not in client.
130
+ - **Worker-incompatible code** (Node-only imports like `node:fs` that Cloudflare doesn't support). The build will usually fail before the analyzer runs, but if you're seeing runtime errors at the edge, the RSC treemap shows what made it in.
131
+
132
+ ## Step 5: Fix what you find
133
+
134
+ | Finding | Fix |
135
+ | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
136
+ | Your server code in `client.html` (non-zero bytes) | Audit the import chain. Add `"use server"` to server-only files. Move shared data out of barrel files. Use the `@rangojs/router/server` subpath for explicitly server APIs. |
137
+ | Your server code in `client.html` listed but 0 bytes | Tree-shaking already eliminated it. Cosmetic. Leave it. |
138
+ | `react-dom-server.edge.development-*.js` in SSR or RSC | Add the `define` block from Step 2 to your vite config. |
139
+ | Routes-manifest > 100 KB gzip in RSC eager chunk | Update `@rangojs/router` to a release that includes the lazy-only manifest fix. |
140
+ | Same package version present twice | Run `pnpm dedupe` (or `npm dedupe`). If the duplication persists, a transitive dep pins an incompatible version — open a PR upstream or pin the resolution. |
141
+ | Client chunk > 500 KB gzip with a single dominant module | That module is your largest client component. Consider lazy-loading via dynamic `import()` or moving non-interactive parts to server components. |
142
+ | Hundreds of tiny client chunks | You've sprinkled `"use client"` too liberally. Hoist directives to higher boundaries so React groups them. |
143
+
144
+ ## When to re-run
145
+
146
+ - Before every production deploy, especially after adding new dependencies.
147
+ - After upgrading `@rangojs/router`, React, or `@vitejs/plugin-rsc`.
148
+ - After adding routes that scale with data (e.g., one route per item from a content directory) — the manifest may have grown.
149
+ - When CI starts reporting larger artifact sizes.
150
+
151
+ ## Reporting Rango regressions
152
+
153
+ If a finding looks like a `@rangojs/router` regression (the framework is shipping more than it should, not your app), open an issue at the [@rangojs/router GitHub](https://github.com/ivogt/vite-rsc/issues) and include:
154
+
155
+ - The output of `client.html` / `rsc.html` (screenshots or the JSON `data = {...}` block from the HTML).
156
+ - The `@rangojs/router` version (`pnpm why @rangojs/router`).
157
+ - Your `vite.config.ts`.
158
+
159
+ The framework maintainers run a similar audit internally — the methodology in this skill mirrors what they use to validate every release.