@rangojs/router 0.0.0-experimental.c8906ead → 0.0.0-experimental.c9471f9b

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 (435) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +297 -888
  3. package/dist/bin/rango.js +603 -145
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +2535 -812
  6. package/package.json +84 -15
  7. package/skills/api-client/SKILL.md +211 -0
  8. package/skills/breadcrumbs/SKILL.md +82 -5
  9. package/skills/bundle-analysis/SKILL.md +159 -0
  10. package/skills/cache-guide/SKILL.md +228 -33
  11. package/skills/caching/SKILL.md +336 -19
  12. package/skills/catalog.json +271 -0
  13. package/skills/comparison/SKILL.md +50 -0
  14. package/skills/comparison/agents/openai.yaml +4 -0
  15. package/skills/comparison/references/framework-comparison.md +837 -0
  16. package/skills/composability/SKILL.md +110 -4
  17. package/skills/css/SKILL.md +76 -0
  18. package/skills/debug-manifest/SKILL.md +5 -3
  19. package/skills/defer-hydration/SKILL.md +235 -0
  20. package/skills/document-cache/SKILL.md +87 -56
  21. package/skills/fonts/SKILL.md +1 -1
  22. package/skills/handler-use/SKILL.md +12 -10
  23. package/skills/hooks/SKILL.md +73 -704
  24. package/skills/hooks/data.md +273 -0
  25. package/skills/hooks/handle-and-actions.md +103 -0
  26. package/skills/hooks/navigation.md +110 -0
  27. package/skills/hooks/outlets.md +41 -0
  28. package/skills/hooks/state.md +228 -0
  29. package/skills/hooks/urls.md +135 -0
  30. package/skills/host-router/SKILL.md +129 -27
  31. package/skills/i18n/SKILL.md +1 -1
  32. package/skills/intercept/SKILL.md +75 -19
  33. package/skills/layout/SKILL.md +40 -19
  34. package/skills/links/SKILL.md +173 -17
  35. package/skills/loader/SKILL.md +195 -24
  36. package/skills/middleware/SKILL.md +23 -13
  37. package/skills/migrate-nextjs/SKILL.md +203 -20
  38. package/skills/migrate-react-router/SKILL.md +59 -675
  39. package/skills/migrate-react-router/cloudflare-workers.md +129 -0
  40. package/skills/migrate-react-router/component-migration.md +196 -0
  41. package/skills/migrate-react-router/data-and-actions.md +225 -0
  42. package/skills/migrate-react-router/route-mapping.md +271 -0
  43. package/skills/mime-routes/SKILL.md +29 -2
  44. package/skills/observability/SKILL.md +202 -0
  45. package/skills/parallel/SKILL.md +33 -10
  46. package/skills/ppr/SKILL.md +622 -0
  47. package/skills/prerender/SKILL.md +72 -60
  48. package/skills/rango/SKILL.md +318 -28
  49. package/skills/react-compiler/SKILL.md +168 -0
  50. package/skills/response-routes/SKILL.md +130 -49
  51. package/skills/route/SKILL.md +97 -9
  52. package/skills/router-setup/SKILL.md +44 -9
  53. package/skills/scripts/SKILL.md +179 -0
  54. package/skills/server-actions/SKILL.md +81 -44
  55. package/skills/shell-manifest/SKILL.md +185 -0
  56. package/skills/streams-and-websockets/SKILL.md +1 -1
  57. package/skills/tailwind/SKILL.md +28 -4
  58. package/skills/testing/SKILL.md +130 -0
  59. package/skills/testing/bindings.md +103 -0
  60. package/skills/testing/cache-prerender.md +127 -0
  61. package/skills/testing/client-components.md +124 -0
  62. package/skills/testing/e2e-parity.md +125 -0
  63. package/skills/testing/flight.md +91 -0
  64. package/skills/testing/handles.md +131 -0
  65. package/skills/testing/loader.md +128 -0
  66. package/skills/testing/middleware.md +99 -0
  67. package/skills/testing/render-handler.md +122 -0
  68. package/skills/testing/response-routes.md +95 -0
  69. package/skills/testing/reverse-and-types.md +85 -0
  70. package/skills/testing/server-actions.md +107 -0
  71. package/skills/testing/server-tree.md +128 -0
  72. package/skills/testing/setup.md +123 -0
  73. package/skills/theme/SKILL.md +1 -1
  74. package/skills/typesafety/SKILL.md +45 -634
  75. package/skills/typesafety/env-and-bindings.md +254 -0
  76. package/skills/typesafety/generated-files-and-cli.md +335 -0
  77. package/skills/typesafety/params-and-search.md +153 -0
  78. package/skills/typesafety/route-types.md +209 -0
  79. package/skills/use-cache/SKILL.md +74 -15
  80. package/skills/vercel/SKILL.md +128 -0
  81. package/skills/view-transitions/SKILL.md +337 -0
  82. package/src/__augment-tests__/augment.ts +81 -0
  83. package/src/__augment-tests__/augmented.check.ts +116 -0
  84. package/src/__internal.ts +0 -65
  85. package/src/browser/action-coordinator.ts +53 -36
  86. package/src/browser/action-fence.ts +47 -0
  87. package/src/browser/app-shell.ts +14 -27
  88. package/src/browser/connection-warmup.ts +134 -0
  89. package/src/browser/cookie-name.ts +140 -0
  90. package/src/browser/event-controller.ts +211 -157
  91. package/src/browser/history-state.ts +21 -0
  92. package/src/browser/index.ts +3 -3
  93. package/src/browser/invalidate-client-cache.ts +52 -0
  94. package/src/browser/logging.ts +28 -0
  95. package/src/browser/merge-segment-loaders.ts +6 -4
  96. package/src/browser/navigation-bridge.ts +87 -74
  97. package/src/browser/navigation-client.ts +127 -85
  98. package/src/browser/navigation-store-handle.ts +38 -0
  99. package/src/browser/navigation-store.ts +160 -96
  100. package/src/browser/navigation-transaction.ts +9 -59
  101. package/src/browser/network-error-handler.ts +34 -7
  102. package/src/browser/partial-update.ts +167 -164
  103. package/src/browser/prefetch/cache.ts +148 -81
  104. package/src/browser/prefetch/fetch.ts +231 -51
  105. package/src/browser/prefetch/queue.ts +25 -7
  106. package/src/browser/rango-state.ts +157 -115
  107. package/src/browser/react/Link.tsx +40 -7
  108. package/src/browser/react/NavigationProvider.tsx +167 -137
  109. package/src/browser/react/ScrollRestoration.tsx +10 -6
  110. package/src/browser/react/filter-segment-order.ts +17 -2
  111. package/src/browser/react/index.ts +0 -48
  112. package/src/browser/react/location-state-shared.ts +178 -8
  113. package/src/browser/react/location-state.ts +39 -14
  114. package/src/browser/react/use-action.ts +6 -15
  115. package/src/browser/react/use-handle.ts +17 -14
  116. package/src/browser/react/use-href.tsx +8 -1
  117. package/src/browser/react/use-link-status.ts +33 -8
  118. package/src/browser/react/use-navigation.ts +10 -5
  119. package/src/browser/react/use-params.ts +3 -6
  120. package/src/browser/react/use-reverse.ts +106 -0
  121. package/src/browser/react/use-router.ts +20 -5
  122. package/src/browser/react/use-search-params.ts +0 -5
  123. package/src/browser/react/use-segments.ts +0 -13
  124. package/src/browser/response-adapter.ts +99 -8
  125. package/src/browser/rsc-router.tsx +127 -38
  126. package/src/browser/scroll-restoration.ts +37 -22
  127. package/src/browser/segment-reconciler.ts +31 -21
  128. package/src/browser/segment-structure-assert.ts +2 -2
  129. package/src/browser/server-action-bridge.ts +236 -65
  130. package/src/browser/types.ts +96 -22
  131. package/src/browser/validate-redirect-origin.ts +43 -16
  132. package/src/build/collect-fallback-refs.ts +107 -0
  133. package/src/build/generate-manifest.ts +203 -154
  134. package/src/build/generate-route-types.ts +3 -1
  135. package/src/build/index.ts +11 -3
  136. package/src/build/prefix-tree-utils.ts +123 -0
  137. package/src/build/route-trie.ts +152 -22
  138. package/src/build/route-types/ast-route-extraction.ts +15 -8
  139. package/src/build/route-types/codegen.ts +16 -5
  140. package/src/build/route-types/include-resolution.ts +456 -62
  141. package/src/build/route-types/param-extraction.ts +6 -3
  142. package/src/build/route-types/per-module-writer.ts +22 -6
  143. package/src/build/route-types/router-processing.ts +128 -51
  144. package/src/build/route-types/scan-filter.ts +1 -1
  145. package/src/build/route-types/source-scan.ts +216 -0
  146. package/src/build/runtime-discovery.ts +13 -21
  147. package/src/cache/cache-error.ts +104 -0
  148. package/src/cache/cache-key-utils.ts +58 -13
  149. package/src/cache/cache-policy.ts +108 -34
  150. package/src/cache/cache-runtime.ts +454 -101
  151. package/src/cache/cache-scope.ts +187 -96
  152. package/src/cache/cache-tag.ts +149 -0
  153. package/src/cache/cf/cf-base64.ts +33 -0
  154. package/src/cache/cf/cf-cache-constants.ts +127 -0
  155. package/src/cache/cf/cf-cache-store.ts +2208 -372
  156. package/src/cache/cf/cf-cache-types.ts +349 -0
  157. package/src/cache/cf/cf-kv-utils.ts +46 -0
  158. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  159. package/src/cache/cf/index.ts +6 -16
  160. package/src/cache/document-cache.ts +126 -41
  161. package/src/cache/handle-snapshot.ts +70 -0
  162. package/src/cache/index.ts +23 -20
  163. package/src/cache/memory-segment-store.ts +243 -37
  164. package/src/cache/profile-registry.ts +46 -31
  165. package/src/cache/read-through-swr.ts +56 -12
  166. package/src/cache/segment-codec.ts +13 -21
  167. package/src/cache/shell-snapshot.ts +417 -0
  168. package/src/cache/tag-invalidation.ts +230 -0
  169. package/src/cache/types.ts +194 -99
  170. package/src/cache/vercel/index.ts +11 -0
  171. package/src/cache/vercel/vercel-cache-store.ts +1132 -0
  172. package/src/client.rsc.tsx +41 -21
  173. package/src/client.tsx +33 -61
  174. package/src/cloudflare/index.ts +11 -0
  175. package/src/cloudflare/tracing.ts +108 -0
  176. package/src/component-utils.ts +19 -0
  177. package/src/components/DefaultDocument.tsx +8 -2
  178. package/src/context-var.ts +18 -6
  179. package/src/decode-loader-results.ts +52 -0
  180. package/src/defer.ts +185 -0
  181. package/src/deps/ssr.ts +0 -1
  182. package/src/encode-kv.ts +49 -0
  183. package/src/errors.ts +30 -4
  184. package/src/escape-script.ts +52 -0
  185. package/src/handle.ts +67 -37
  186. package/src/handles/MetaTags.tsx +24 -53
  187. package/src/handles/Scripts.tsx +183 -0
  188. package/src/handles/breadcrumbs.ts +35 -8
  189. package/src/handles/deferred-resolution.ts +127 -0
  190. package/src/handles/is-thenable.ts +18 -0
  191. package/src/handles/meta.ts +14 -40
  192. package/src/handles/script.ts +244 -0
  193. package/src/host/cookie-handler.ts +9 -60
  194. package/src/host/errors.ts +13 -22
  195. package/src/host/index.ts +9 -2
  196. package/src/host/pattern-matcher.ts +23 -52
  197. package/src/host/router.ts +107 -99
  198. package/src/host/testing.ts +40 -27
  199. package/src/host/types.ts +37 -4
  200. package/src/host/utils.ts +1 -1
  201. package/src/href-client.ts +137 -22
  202. package/src/index.rsc.ts +94 -12
  203. package/src/index.ts +95 -14
  204. package/src/internal-debug.ts +11 -10
  205. package/src/loader-store.ts +500 -0
  206. package/src/loader.rsc.ts +20 -13
  207. package/src/loader.ts +12 -11
  208. package/src/missing-id-error.ts +68 -0
  209. package/src/outlet-provider.tsx +1 -5
  210. package/src/prerender/param-hash.ts +16 -16
  211. package/src/prerender/store.ts +32 -37
  212. package/src/prerender.ts +78 -10
  213. package/src/redirect-origin.ts +114 -0
  214. package/src/regex-escape.ts +8 -0
  215. package/src/render-error-thrower.tsx +20 -0
  216. package/src/response-utils.ts +34 -0
  217. package/src/reverse.ts +65 -41
  218. package/src/root-error-boundary.tsx +1 -19
  219. package/src/route-content-wrapper.tsx +19 -77
  220. package/src/route-definition/dsl-helpers.ts +293 -311
  221. package/src/route-definition/helper-factories.ts +28 -140
  222. package/src/route-definition/helpers-types.ts +81 -58
  223. package/src/route-definition/index.ts +1 -2
  224. package/src/route-definition/redirect.ts +44 -11
  225. package/src/route-definition/resolve-handler-use.ts +6 -1
  226. package/src/route-definition/use-item-types.ts +29 -0
  227. package/src/route-map-builder.ts +41 -20
  228. package/src/route-types.ts +19 -46
  229. package/src/router/basename.ts +14 -0
  230. package/src/router/content-negotiation.ts +73 -25
  231. package/src/router/error-handling.ts +45 -18
  232. package/src/router/find-match.ts +129 -30
  233. package/src/router/handler-context.ts +10 -43
  234. package/src/router/instrument.ts +355 -0
  235. package/src/router/intercept-resolution.ts +39 -20
  236. package/src/router/lazy-includes.ts +81 -58
  237. package/src/router/loader-resolution.ts +164 -72
  238. package/src/router/logging.ts +0 -6
  239. package/src/router/manifest.ts +74 -40
  240. package/src/router/match-api.ts +76 -52
  241. package/src/router/match-context.ts +0 -22
  242. package/src/router/match-handlers.ts +210 -165
  243. package/src/router/match-middleware/background-revalidation.ts +40 -24
  244. package/src/router/match-middleware/cache-lookup.ts +159 -285
  245. package/src/router/match-middleware/cache-store.ts +64 -52
  246. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  247. package/src/router/match-middleware/segment-resolution.ts +0 -22
  248. package/src/router/match-pipelines.ts +1 -42
  249. package/src/router/match-result.ts +66 -95
  250. package/src/router/metrics.ts +0 -34
  251. package/src/router/middleware-types.ts +0 -116
  252. package/src/router/middleware.ts +272 -193
  253. package/src/router/navigation-snapshot.ts +7 -56
  254. package/src/router/params-util.ts +23 -0
  255. package/src/router/parse-pattern.ts +115 -0
  256. package/src/router/pattern-matching.ts +99 -152
  257. package/src/router/prefetch-cache-ttl.ts +51 -0
  258. package/src/router/prefetch-limits.ts +37 -0
  259. package/src/router/prerender-match.ts +112 -67
  260. package/src/router/preview-match.ts +6 -2
  261. package/src/router/request-classification.ts +50 -69
  262. package/src/router/revalidation.ts +110 -74
  263. package/src/router/route-snapshot.ts +14 -3
  264. package/src/router/router-context.ts +6 -29
  265. package/src/router/router-interfaces.ts +115 -36
  266. package/src/router/router-options.ts +166 -5
  267. package/src/router/router-registry.ts +2 -5
  268. package/src/router/segment-resolution/fresh.ts +123 -86
  269. package/src/router/segment-resolution/helpers.ts +86 -6
  270. package/src/router/segment-resolution/loader-cache.ts +155 -39
  271. package/src/router/segment-resolution/loader-mask.ts +60 -0
  272. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  273. package/src/router/segment-resolution/mask-nested.ts +83 -0
  274. package/src/router/segment-resolution/revalidation.ts +230 -306
  275. package/src/router/segment-resolution/static-store.ts +19 -5
  276. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  277. package/src/router/segment-resolution/view-transition-default.ts +56 -0
  278. package/src/router/segment-resolution.ts +5 -1
  279. package/src/router/segment-wrappers.ts +6 -5
  280. package/src/router/state-cookie-name.ts +33 -0
  281. package/src/router/substitute-pattern-params.ts +75 -0
  282. package/src/router/telemetry-otel.ts +160 -200
  283. package/src/router/telemetry.ts +105 -20
  284. package/src/router/timeout.ts +0 -20
  285. package/src/router/tracing.ts +215 -0
  286. package/src/router/trie-matching.ts +171 -64
  287. package/src/router/types.ts +9 -63
  288. package/src/router/url-params.ts +13 -5
  289. package/src/router.ts +156 -69
  290. package/src/rsc/full-payload.ts +70 -0
  291. package/src/rsc/handler-context.ts +3 -2
  292. package/src/rsc/handler.ts +287 -217
  293. package/src/rsc/helpers.ts +100 -6
  294. package/src/rsc/index.ts +2 -5
  295. package/src/rsc/json-route-result.ts +38 -0
  296. package/src/rsc/loader-fetch.ts +114 -38
  297. package/src/rsc/manifest-init.ts +29 -42
  298. package/src/rsc/nonce.ts +10 -1
  299. package/src/rsc/origin-guard.ts +39 -25
  300. package/src/rsc/progressive-enhancement.ts +120 -13
  301. package/src/rsc/redirect-guard.ts +100 -0
  302. package/src/rsc/response-cache-serve.ts +238 -0
  303. package/src/rsc/response-error.ts +79 -12
  304. package/src/rsc/response-route-handler.ts +85 -188
  305. package/src/rsc/rsc-rendering.ts +495 -78
  306. package/src/rsc/runtime-warnings.ts +23 -10
  307. package/src/rsc/server-action.ts +280 -118
  308. package/src/rsc/shell-capture.ts +1190 -0
  309. package/src/rsc/shell-serve.ts +181 -0
  310. package/src/rsc/ssr-setup.ts +16 -0
  311. package/src/rsc/transition-gate.ts +89 -0
  312. package/src/rsc/types.ts +47 -5
  313. package/src/runtime-env.ts +18 -0
  314. package/src/search-params.ts +35 -30
  315. package/src/segment-loader-promise.ts +49 -4
  316. package/src/segment-system.tsx +381 -150
  317. package/src/serialize.ts +243 -0
  318. package/src/server/context.ts +208 -51
  319. package/src/server/cookie-parse.ts +32 -0
  320. package/src/server/cookie-store.ts +152 -5
  321. package/src/server/handle-store.ts +21 -38
  322. package/src/server/loader-registry.ts +33 -42
  323. package/src/server/request-context.ts +389 -138
  324. package/src/ssr/index.tsx +467 -182
  325. package/src/ssr/inject-rsc-eager.ts +167 -0
  326. package/src/ssr/ssr-root.tsx +228 -0
  327. package/src/static-handler.ts +10 -13
  328. package/src/testing/cache-status.ts +162 -0
  329. package/src/testing/collect-handle.ts +46 -0
  330. package/src/testing/dispatch.ts +813 -0
  331. package/src/testing/dom.entry.ts +22 -0
  332. package/src/testing/e2e/fixture.ts +188 -0
  333. package/src/testing/e2e/index.ts +128 -0
  334. package/src/testing/e2e/matchers.ts +35 -0
  335. package/src/testing/e2e/page-helpers.ts +272 -0
  336. package/src/testing/e2e/parity.ts +387 -0
  337. package/src/testing/e2e/server.ts +195 -0
  338. package/src/testing/flight-matchers.ts +97 -0
  339. package/src/testing/flight-normalize.ts +11 -0
  340. package/src/testing/flight-runtime.d.ts +57 -0
  341. package/src/testing/flight-tree.ts +682 -0
  342. package/src/testing/flight.entry.ts +52 -0
  343. package/src/testing/flight.ts +257 -0
  344. package/src/testing/generated-routes.ts +199 -0
  345. package/src/testing/index.ts +105 -0
  346. package/src/testing/internal/context.ts +371 -0
  347. package/src/testing/internal/flight-client-globals.ts +30 -0
  348. package/src/testing/internal/seed-vars.ts +54 -0
  349. package/src/testing/render-handler.ts +357 -0
  350. package/src/testing/render-route.tsx +584 -0
  351. package/src/testing/run-loader.ts +385 -0
  352. package/src/testing/run-middleware.ts +205 -0
  353. package/src/testing/run-transition-when.ts +164 -0
  354. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  355. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  356. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  357. package/src/testing/vitest-stubs/version.ts +5 -0
  358. package/src/testing/vitest.ts +305 -0
  359. package/src/theme/ThemeProvider.tsx +56 -84
  360. package/src/theme/ThemeScript.tsx +7 -9
  361. package/src/theme/constants.ts +52 -13
  362. package/src/theme/index.ts +0 -7
  363. package/src/theme/theme-context.ts +1 -5
  364. package/src/theme/theme-script.ts +22 -21
  365. package/src/theme/use-theme.ts +0 -3
  366. package/src/types/boundaries.ts +0 -35
  367. package/src/types/cache-types.ts +13 -4
  368. package/src/types/error-types.ts +30 -90
  369. package/src/types/global-namespace.ts +54 -41
  370. package/src/types/handler-context.ts +98 -23
  371. package/src/types/index.ts +3 -10
  372. package/src/types/loader-types.ts +6 -3
  373. package/src/types/request-scope.ts +8 -22
  374. package/src/types/route-config.ts +20 -52
  375. package/src/types/route-entry.ts +0 -6
  376. package/src/types/segments.ts +118 -14
  377. package/src/urls/include-helper.ts +19 -64
  378. package/src/urls/include-provider.ts +71 -0
  379. package/src/urls/index.ts +2 -11
  380. package/src/urls/path-helper-types.ts +63 -17
  381. package/src/urls/path-helper.ts +22 -106
  382. package/src/urls/pattern-types.ts +72 -19
  383. package/src/urls/response-types.ts +20 -19
  384. package/src/urls/type-extraction.ts +98 -154
  385. package/src/urls/urls-function.ts +1 -19
  386. package/src/use-loader.tsx +292 -107
  387. package/src/vercel/index.ts +11 -0
  388. package/src/vercel/tracing.ts +88 -0
  389. package/src/vite/debug.ts +1 -0
  390. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  391. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  392. package/src/vite/discovery/discover-routers.ts +96 -83
  393. package/src/vite/discovery/discovery-errors.ts +255 -0
  394. package/src/vite/discovery/prerender-collection.ts +48 -67
  395. package/src/vite/discovery/route-types-writer.ts +40 -84
  396. package/src/vite/discovery/state.ts +45 -1
  397. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  398. package/src/vite/index.ts +11 -0
  399. package/src/vite/inject-client-debug.ts +88 -0
  400. package/src/vite/plugin-types.ts +210 -10
  401. package/src/vite/plugins/cjs-to-esm.ts +11 -19
  402. package/src/vite/plugins/client-ref-dedup.ts +0 -11
  403. package/src/vite/plugins/client-ref-hashing.ts +12 -11
  404. package/src/vite/plugins/cloudflare-protocol-stub.ts +1 -21
  405. package/src/vite/plugins/expose-action-id.ts +4 -75
  406. package/src/vite/plugins/expose-id-utils.ts +88 -55
  407. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  408. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  409. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  410. package/src/vite/plugins/expose-ids/router-transform.ts +98 -26
  411. package/src/vite/plugins/expose-internal-ids.ts +57 -68
  412. package/src/vite/plugins/performance-tracks.ts +9 -16
  413. package/src/vite/plugins/refresh-cmd.ts +1 -1
  414. package/src/vite/plugins/use-cache-transform.ts +26 -49
  415. package/src/vite/plugins/vercel-output.ts +384 -0
  416. package/src/vite/plugins/version-injector.ts +24 -39
  417. package/src/vite/plugins/version-plugin.ts +37 -40
  418. package/src/vite/plugins/virtual-entries.ts +138 -27
  419. package/src/vite/rango.ts +187 -124
  420. package/src/vite/router-discovery.ts +394 -108
  421. package/src/vite/utils/ast-handler-extract.ts +26 -35
  422. package/src/vite/utils/bundle-analysis.ts +10 -15
  423. package/src/vite/utils/client-chunks.ts +184 -0
  424. package/src/vite/utils/directive-prologue.ts +40 -0
  425. package/src/vite/utils/forward-user-plugins.ts +171 -0
  426. package/src/vite/utils/manifest-utils.ts +4 -59
  427. package/src/vite/utils/package-resolution.ts +1 -73
  428. package/src/vite/utils/prerender-utils.ts +71 -44
  429. package/src/vite/utils/shared-utils.ts +142 -43
  430. package/src/browser/action-response-classifier.ts +0 -99
  431. package/src/browser/react/use-client-cache.ts +0 -58
  432. package/src/browser/shallow.ts +0 -40
  433. package/src/handles/index.ts +0 -7
  434. package/src/network-error-thrower.tsx +0 -23
  435. package/src/router/middleware-cookies.ts +0 -55
package/AGENTS.md CHANGED
@@ -1,9 +1,13 @@
1
- # @rangojs/router
1
+ # @rangojs/router — agent guide
2
2
 
3
- A file-system based React Server Components router.
3
+ Django-inspired React Server Components router: routes are an explicit `urls()` tree (`path()`, `layout()`, `include()`) — not a file-system convention with type-safe named routes and `href`/`reverse`.
4
4
 
5
- Run `/rango` to understand the API. Detailed guides for each feature are in the `skills/` directory (e.g. `node_modules/@rangojs/router/skills/loader`, `skills/caching`, `skills/middleware`, etc.).
5
+ Start with the mental model at `node_modules/@rangojs/router/skills/rango/SKILL.md`, then the per-feature guides in the sibling directories (`skills/loader`, `skills/caching`, `skills/middleware`, etc.). If your harness supports slash-command skills, `/rango` is the same document.
6
6
 
7
7
  ## Development rules
8
8
 
9
- - Always commit generated files (e.g. `*.gen.ts`) alongside the source changes that produced them.
9
+ - After adding, removing, or renaming routes, run `npx rango generate src/` and commit the regenerated `*.gen.ts` files alongside the source change.
10
+
11
+ ## Contributing
12
+
13
+ This package is developed in the monorepo at https://github.com/ivogt/vite-rsc. If you are contributing there rather than consuming the published package, read the root `AGENTS.md` in that repo for the pre-push gate and e2e rules — they apply to the monorepo, not to consumer apps.