@rangojs/router 0.0.0-experimental.0b82333f → 0.0.0-experimental.0e02cd4e

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 (943) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +839 -429
  4. package/package.json +2 -2
  5. package/skills/cache-guide/SKILL.md +32 -0
  6. package/skills/caching/SKILL.md +45 -4
  7. package/skills/links/SKILL.md +3 -1
  8. package/skills/loader/SKILL.md +53 -43
  9. package/skills/middleware/SKILL.md +2 -0
  10. package/skills/parallel/SKILL.md +126 -0
  11. package/skills/prerender/SKILL.md +110 -68
  12. package/skills/route/SKILL.md +31 -0
  13. package/skills/router-setup/SKILL.md +87 -2
  14. package/skills/typesafety/SKILL.md +10 -0
  15. package/src/__internal.ts +1 -1
  16. package/src/browser/app-version.ts +14 -0
  17. package/src/browser/event-controller.ts +5 -0
  18. package/src/browser/navigation-bridge.ts +17 -6
  19. package/src/browser/navigation-client.ts +132 -61
  20. package/src/browser/navigation-store.ts +43 -8
  21. package/src/browser/navigation-transaction.ts +11 -9
  22. package/src/browser/partial-update.ts +76 -13
  23. package/src/browser/prefetch/cache.ts +78 -11
  24. package/src/browser/prefetch/fetch.ts +76 -27
  25. package/src/browser/prefetch/queue.ts +92 -20
  26. package/src/browser/prefetch/resource-ready.ts +77 -0
  27. package/src/browser/react/Link.tsx +67 -9
  28. package/src/browser/react/NavigationProvider.tsx +40 -4
  29. package/src/browser/react/context.ts +7 -2
  30. package/src/browser/react/use-handle.ts +9 -58
  31. package/src/browser/react/use-router.ts +21 -8
  32. package/src/browser/rsc-router.tsx +134 -59
  33. package/src/browser/scroll-restoration.ts +30 -15
  34. package/src/browser/segment-reconciler.ts +6 -1
  35. package/src/browser/server-action-bridge.ts +8 -6
  36. package/src/browser/types.ts +36 -5
  37. package/src/build/generate-manifest.ts +6 -6
  38. package/src/build/generate-route-types.ts +3 -0
  39. package/src/build/route-types/include-resolution.ts +8 -1
  40. package/src/build/route-types/router-processing.ts +223 -74
  41. package/src/build/route-types/scan-filter.ts +8 -1
  42. package/src/cache/cache-runtime.ts +15 -11
  43. package/src/cache/cache-scope.ts +48 -7
  44. package/src/cache/cf/cf-cache-store.ts +453 -11
  45. package/src/cache/cf/index.ts +5 -1
  46. package/src/cache/document-cache.ts +17 -7
  47. package/src/cache/index.ts +1 -0
  48. package/src/cache/taint.ts +55 -0
  49. package/src/client.tsx +2 -56
  50. package/src/context-var.ts +72 -2
  51. package/src/debug.ts +2 -2
  52. package/src/handle.ts +40 -0
  53. package/src/index.rsc.ts +3 -1
  54. package/src/index.ts +12 -0
  55. package/src/prerender/store.ts +5 -4
  56. package/src/prerender.ts +138 -77
  57. package/src/reverse.ts +22 -1
  58. package/src/route-definition/dsl-helpers.ts +73 -25
  59. package/src/route-definition/helpers-types.ts +10 -6
  60. package/src/route-definition/index.ts +3 -0
  61. package/src/route-definition/redirect.ts +11 -3
  62. package/src/route-definition/resolve-handler-use.ts +149 -0
  63. package/src/route-map-builder.ts +7 -1
  64. package/src/route-types.ts +11 -0
  65. package/src/router/content-negotiation.ts +100 -1
  66. package/src/router/find-match.ts +4 -2
  67. package/src/router/handler-context.ts +79 -23
  68. package/src/router/intercept-resolution.ts +11 -4
  69. package/src/router/lazy-includes.ts +4 -1
  70. package/src/router/loader-resolution.ts +156 -21
  71. package/src/router/logging.ts +5 -2
  72. package/src/router/manifest.ts +9 -3
  73. package/src/router/match-api.ts +124 -189
  74. package/src/router/match-middleware/background-revalidation.ts +30 -2
  75. package/src/router/match-middleware/cache-lookup.ts +92 -16
  76. package/src/router/match-middleware/cache-store.ts +53 -10
  77. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  78. package/src/router/match-middleware/segment-resolution.ts +61 -5
  79. package/src/router/match-result.ts +104 -10
  80. package/src/router/metrics.ts +6 -1
  81. package/src/router/middleware-types.ts +6 -8
  82. package/src/router/middleware.ts +4 -6
  83. package/src/router/navigation-snapshot.ts +182 -0
  84. package/src/router/prerender-match.ts +110 -10
  85. package/src/router/preview-match.ts +30 -102
  86. package/src/router/request-classification.ts +310 -0
  87. package/src/router/route-snapshot.ts +245 -0
  88. package/src/router/router-context.ts +6 -1
  89. package/src/router/router-interfaces.ts +36 -4
  90. package/src/router/router-options.ts +37 -11
  91. package/src/router/segment-resolution/fresh.ts +198 -20
  92. package/src/router/segment-resolution/helpers.ts +29 -24
  93. package/src/router/segment-resolution/loader-cache.ts +1 -0
  94. package/src/router/segment-resolution/revalidation.ts +437 -297
  95. package/src/router/segment-wrappers.ts +2 -0
  96. package/src/router/types.ts +1 -0
  97. package/src/router.ts +59 -6
  98. package/src/rsc/handler.ts +472 -372
  99. package/src/rsc/loader-fetch.ts +23 -3
  100. package/src/rsc/manifest-init.ts +5 -1
  101. package/src/rsc/progressive-enhancement.ts +14 -2
  102. package/src/rsc/rsc-rendering.ts +10 -1
  103. package/src/rsc/server-action.ts +8 -0
  104. package/src/rsc/ssr-setup.ts +2 -2
  105. package/src/rsc/types.ts +9 -1
  106. package/src/segment-system.tsx +140 -4
  107. package/src/server/context.ts +140 -14
  108. package/src/server/handle-store.ts +19 -0
  109. package/src/server/loader-registry.ts +9 -8
  110. package/src/server/request-context.ts +185 -19
  111. package/src/ssr/index.tsx +4 -0
  112. package/src/static-handler.ts +18 -6
  113. package/src/types/cache-types.ts +4 -4
  114. package/src/types/handler-context.ts +137 -33
  115. package/src/types/loader-types.ts +36 -9
  116. package/src/types/route-entry.ts +8 -1
  117. package/src/types/segments.ts +3 -0
  118. package/src/urls/path-helper-types.ts +9 -2
  119. package/src/urls/path-helper.ts +48 -13
  120. package/src/urls/pattern-types.ts +12 -0
  121. package/src/urls/response-types.ts +16 -6
  122. package/src/use-loader.tsx +77 -5
  123. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  124. package/src/vite/discovery/discover-routers.ts +5 -1
  125. package/src/vite/discovery/prerender-collection.ts +128 -74
  126. package/src/vite/discovery/state.ts +13 -6
  127. package/src/vite/index.ts +4 -0
  128. package/src/vite/plugin-types.ts +51 -79
  129. package/src/vite/plugins/expose-action-id.ts +1 -3
  130. package/src/vite/plugins/expose-id-utils.ts +12 -0
  131. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  132. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  133. package/src/vite/plugins/performance-tracks.ts +88 -0
  134. package/src/vite/plugins/refresh-cmd.ts +88 -26
  135. package/src/vite/plugins/version-plugin.ts +13 -1
  136. package/src/vite/rango.ts +163 -211
  137. package/src/vite/router-discovery.ts +178 -45
  138. package/src/vite/utils/banner.ts +3 -3
  139. package/src/vite/utils/prerender-utils.ts +18 -0
  140. package/src/vite/utils/shared-utils.ts +3 -2
  141. package/dist/__internal.d.ts +0 -83
  142. package/dist/__internal.d.ts.map +0 -1
  143. package/dist/__internal.js +0 -19
  144. package/dist/__internal.js.map +0 -1
  145. package/dist/__mocks__/version.d.ts +0 -7
  146. package/dist/__mocks__/version.d.ts.map +0 -1
  147. package/dist/__mocks__/version.js +0 -7
  148. package/dist/__mocks__/version.js.map +0 -1
  149. package/dist/__tests__/client-href.test.d.ts +0 -2
  150. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  151. package/dist/__tests__/client-href.test.js +0 -74
  152. package/dist/__tests__/client-href.test.js.map +0 -1
  153. package/dist/__tests__/component-utils.test.d.ts +0 -2
  154. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  155. package/dist/__tests__/component-utils.test.js +0 -51
  156. package/dist/__tests__/component-utils.test.js.map +0 -1
  157. package/dist/__tests__/event-controller.test.d.ts +0 -2
  158. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  159. package/dist/__tests__/event-controller.test.js +0 -538
  160. package/dist/__tests__/event-controller.test.js.map +0 -1
  161. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  162. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  163. package/dist/__tests__/helpers/route-tree.js +0 -374
  164. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  165. package/dist/__tests__/match-result.test.d.ts +0 -2
  166. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  167. package/dist/__tests__/match-result.test.js +0 -154
  168. package/dist/__tests__/match-result.test.js.map +0 -1
  169. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  170. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  171. package/dist/__tests__/navigation-store.test.js +0 -440
  172. package/dist/__tests__/navigation-store.test.js.map +0 -1
  173. package/dist/__tests__/partial-update.test.d.ts +0 -2
  174. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  175. package/dist/__tests__/partial-update.test.js +0 -1009
  176. package/dist/__tests__/partial-update.test.js.map +0 -1
  177. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  178. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  179. package/dist/__tests__/reverse-types.test.js +0 -656
  180. package/dist/__tests__/reverse-types.test.js.map +0 -1
  181. package/dist/__tests__/route-definition.test.d.ts +0 -2
  182. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  183. package/dist/__tests__/route-definition.test.js +0 -55
  184. package/dist/__tests__/route-definition.test.js.map +0 -1
  185. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  186. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  187. package/dist/__tests__/router-helpers.test.js +0 -377
  188. package/dist/__tests__/router-helpers.test.js.map +0 -1
  189. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  190. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  191. package/dist/__tests__/router-integration-2.test.js +0 -426
  192. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  193. package/dist/__tests__/router-integration.test.d.ts +0 -2
  194. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  195. package/dist/__tests__/router-integration.test.js +0 -1051
  196. package/dist/__tests__/router-integration.test.js.map +0 -1
  197. package/dist/__tests__/search-params.test.d.ts +0 -5
  198. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  199. package/dist/__tests__/search-params.test.js +0 -306
  200. package/dist/__tests__/search-params.test.js.map +0 -1
  201. package/dist/__tests__/segment-system.test.d.ts +0 -2
  202. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  203. package/dist/__tests__/segment-system.test.js +0 -627
  204. package/dist/__tests__/segment-system.test.js.map +0 -1
  205. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  206. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  207. package/dist/__tests__/static-handler-types.test.js +0 -63
  208. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  209. package/dist/__tests__/urls.test.d.ts +0 -2
  210. package/dist/__tests__/urls.test.d.ts.map +0 -1
  211. package/dist/__tests__/urls.test.js +0 -421
  212. package/dist/__tests__/urls.test.js.map +0 -1
  213. package/dist/__tests__/use-mount.test.d.ts +0 -2
  214. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  215. package/dist/__tests__/use-mount.test.js +0 -35
  216. package/dist/__tests__/use-mount.test.js.map +0 -1
  217. package/dist/bin/rango.d.ts +0 -2
  218. package/dist/bin/rango.d.ts.map +0 -1
  219. package/dist/bin/rango.js.map +0 -1
  220. package/dist/browser/event-controller.d.ts +0 -191
  221. package/dist/browser/event-controller.d.ts.map +0 -1
  222. package/dist/browser/event-controller.js +0 -559
  223. package/dist/browser/event-controller.js.map +0 -1
  224. package/dist/browser/index.d.ts +0 -2
  225. package/dist/browser/index.d.ts.map +0 -1
  226. package/dist/browser/index.js +0 -14
  227. package/dist/browser/index.js.map +0 -1
  228. package/dist/browser/link-interceptor.d.ts +0 -38
  229. package/dist/browser/link-interceptor.d.ts.map +0 -1
  230. package/dist/browser/link-interceptor.js +0 -99
  231. package/dist/browser/link-interceptor.js.map +0 -1
  232. package/dist/browser/logging.d.ts +0 -10
  233. package/dist/browser/logging.d.ts.map +0 -1
  234. package/dist/browser/logging.js +0 -29
  235. package/dist/browser/logging.js.map +0 -1
  236. package/dist/browser/lru-cache.d.ts +0 -17
  237. package/dist/browser/lru-cache.d.ts.map +0 -1
  238. package/dist/browser/lru-cache.js +0 -50
  239. package/dist/browser/lru-cache.js.map +0 -1
  240. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  241. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  242. package/dist/browser/merge-segment-loaders.js +0 -102
  243. package/dist/browser/merge-segment-loaders.js.map +0 -1
  244. package/dist/browser/navigation-bridge.d.ts +0 -102
  245. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  246. package/dist/browser/navigation-bridge.js +0 -708
  247. package/dist/browser/navigation-bridge.js.map +0 -1
  248. package/dist/browser/navigation-client.d.ts +0 -25
  249. package/dist/browser/navigation-client.d.ts.map +0 -1
  250. package/dist/browser/navigation-client.js +0 -157
  251. package/dist/browser/navigation-client.js.map +0 -1
  252. package/dist/browser/navigation-store.d.ts +0 -101
  253. package/dist/browser/navigation-store.d.ts.map +0 -1
  254. package/dist/browser/navigation-store.js +0 -625
  255. package/dist/browser/navigation-store.js.map +0 -1
  256. package/dist/browser/partial-update.d.ts +0 -75
  257. package/dist/browser/partial-update.d.ts.map +0 -1
  258. package/dist/browser/partial-update.js +0 -426
  259. package/dist/browser/partial-update.js.map +0 -1
  260. package/dist/browser/react/Link.d.ts +0 -86
  261. package/dist/browser/react/Link.d.ts.map +0 -1
  262. package/dist/browser/react/Link.js +0 -128
  263. package/dist/browser/react/Link.js.map +0 -1
  264. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  265. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  266. package/dist/browser/react/NavigationProvider.js +0 -216
  267. package/dist/browser/react/NavigationProvider.js.map +0 -1
  268. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  269. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  270. package/dist/browser/react/ScrollRestoration.js +0 -57
  271. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  272. package/dist/browser/react/context.d.ts +0 -46
  273. package/dist/browser/react/context.d.ts.map +0 -1
  274. package/dist/browser/react/context.js +0 -10
  275. package/dist/browser/react/context.js.map +0 -1
  276. package/dist/browser/react/index.d.ts +0 -11
  277. package/dist/browser/react/index.d.ts.map +0 -1
  278. package/dist/browser/react/index.js +0 -22
  279. package/dist/browser/react/index.js.map +0 -1
  280. package/dist/browser/react/location-state-shared.d.ts +0 -63
  281. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  282. package/dist/browser/react/location-state-shared.js +0 -81
  283. package/dist/browser/react/location-state-shared.js.map +0 -1
  284. package/dist/browser/react/location-state.d.ts +0 -23
  285. package/dist/browser/react/location-state.d.ts.map +0 -1
  286. package/dist/browser/react/location-state.js +0 -29
  287. package/dist/browser/react/location-state.js.map +0 -1
  288. package/dist/browser/react/mount-context.d.ts +0 -24
  289. package/dist/browser/react/mount-context.d.ts.map +0 -1
  290. package/dist/browser/react/mount-context.js +0 -24
  291. package/dist/browser/react/mount-context.js.map +0 -1
  292. package/dist/browser/react/use-action.d.ts +0 -64
  293. package/dist/browser/react/use-action.d.ts.map +0 -1
  294. package/dist/browser/react/use-action.js +0 -134
  295. package/dist/browser/react/use-action.js.map +0 -1
  296. package/dist/browser/react/use-client-cache.d.ts +0 -41
  297. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  298. package/dist/browser/react/use-client-cache.js +0 -39
  299. package/dist/browser/react/use-client-cache.js.map +0 -1
  300. package/dist/browser/react/use-handle.d.ts +0 -31
  301. package/dist/browser/react/use-handle.d.ts.map +0 -1
  302. package/dist/browser/react/use-handle.js +0 -144
  303. package/dist/browser/react/use-handle.js.map +0 -1
  304. package/dist/browser/react/use-href.d.ts +0 -33
  305. package/dist/browser/react/use-href.d.ts.map +0 -1
  306. package/dist/browser/react/use-href.js +0 -39
  307. package/dist/browser/react/use-href.js.map +0 -1
  308. package/dist/browser/react/use-link-status.d.ts +0 -37
  309. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  310. package/dist/browser/react/use-link-status.js +0 -99
  311. package/dist/browser/react/use-link-status.js.map +0 -1
  312. package/dist/browser/react/use-mount.d.ts +0 -25
  313. package/dist/browser/react/use-mount.d.ts.map +0 -1
  314. package/dist/browser/react/use-mount.js +0 -30
  315. package/dist/browser/react/use-mount.js.map +0 -1
  316. package/dist/browser/react/use-navigation.d.ts +0 -27
  317. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  318. package/dist/browser/react/use-navigation.js +0 -87
  319. package/dist/browser/react/use-navigation.js.map +0 -1
  320. package/dist/browser/react/use-segments.d.ts +0 -38
  321. package/dist/browser/react/use-segments.d.ts.map +0 -1
  322. package/dist/browser/react/use-segments.js +0 -130
  323. package/dist/browser/react/use-segments.js.map +0 -1
  324. package/dist/browser/request-controller.d.ts +0 -26
  325. package/dist/browser/request-controller.d.ts.map +0 -1
  326. package/dist/browser/request-controller.js +0 -147
  327. package/dist/browser/request-controller.js.map +0 -1
  328. package/dist/browser/rsc-router.d.ts +0 -129
  329. package/dist/browser/rsc-router.d.ts.map +0 -1
  330. package/dist/browser/rsc-router.js +0 -195
  331. package/dist/browser/rsc-router.js.map +0 -1
  332. package/dist/browser/scroll-restoration.d.ts +0 -93
  333. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  334. package/dist/browser/scroll-restoration.js +0 -321
  335. package/dist/browser/scroll-restoration.js.map +0 -1
  336. package/dist/browser/segment-structure-assert.d.ts +0 -17
  337. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  338. package/dist/browser/segment-structure-assert.js +0 -59
  339. package/dist/browser/segment-structure-assert.js.map +0 -1
  340. package/dist/browser/server-action-bridge.d.ts +0 -26
  341. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  342. package/dist/browser/server-action-bridge.js +0 -668
  343. package/dist/browser/server-action-bridge.js.map +0 -1
  344. package/dist/browser/shallow.d.ts +0 -12
  345. package/dist/browser/shallow.d.ts.map +0 -1
  346. package/dist/browser/shallow.js +0 -34
  347. package/dist/browser/shallow.js.map +0 -1
  348. package/dist/browser/types.d.ts +0 -369
  349. package/dist/browser/types.d.ts.map +0 -1
  350. package/dist/browser/types.js +0 -2
  351. package/dist/browser/types.js.map +0 -1
  352. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  353. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  354. package/dist/build/__tests__/generate-cli.test.js +0 -237
  355. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  356. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  357. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  358. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  359. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  360. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  361. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  362. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  363. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  364. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  365. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  366. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  367. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  368. package/dist/build/generate-manifest.d.ts +0 -81
  369. package/dist/build/generate-manifest.d.ts.map +0 -1
  370. package/dist/build/generate-manifest.js +0 -276
  371. package/dist/build/generate-manifest.js.map +0 -1
  372. package/dist/build/generate-route-types.d.ts +0 -115
  373. package/dist/build/generate-route-types.d.ts.map +0 -1
  374. package/dist/build/generate-route-types.js +0 -740
  375. package/dist/build/generate-route-types.js.map +0 -1
  376. package/dist/build/index.d.ts +0 -21
  377. package/dist/build/index.d.ts.map +0 -1
  378. package/dist/build/index.js +0 -21
  379. package/dist/build/index.js.map +0 -1
  380. package/dist/build/route-trie.d.ts +0 -71
  381. package/dist/build/route-trie.d.ts.map +0 -1
  382. package/dist/build/route-trie.js +0 -175
  383. package/dist/build/route-trie.js.map +0 -1
  384. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  385. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  386. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  387. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  388. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  389. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  390. package/dist/cache/__tests__/document-cache.test.js +0 -345
  391. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  392. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  393. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  394. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  395. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  396. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  397. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  398. package/dist/cache/__tests__/memory-store.test.js +0 -367
  399. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  400. package/dist/cache/cache-scope.d.ts +0 -102
  401. package/dist/cache/cache-scope.d.ts.map +0 -1
  402. package/dist/cache/cache-scope.js +0 -440
  403. package/dist/cache/cache-scope.js.map +0 -1
  404. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  405. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  406. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  407. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  408. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  409. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  410. package/dist/cache/cf/cf-cache-store.js +0 -242
  411. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  412. package/dist/cache/cf/index.d.ts +0 -14
  413. package/dist/cache/cf/index.d.ts.map +0 -1
  414. package/dist/cache/cf/index.js +0 -17
  415. package/dist/cache/cf/index.js.map +0 -1
  416. package/dist/cache/document-cache.d.ts +0 -64
  417. package/dist/cache/document-cache.d.ts.map +0 -1
  418. package/dist/cache/document-cache.js +0 -228
  419. package/dist/cache/document-cache.js.map +0 -1
  420. package/dist/cache/index.d.ts +0 -19
  421. package/dist/cache/index.d.ts.map +0 -1
  422. package/dist/cache/index.js +0 -21
  423. package/dist/cache/index.js.map +0 -1
  424. package/dist/cache/memory-segment-store.d.ts +0 -110
  425. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  426. package/dist/cache/memory-segment-store.js +0 -117
  427. package/dist/cache/memory-segment-store.js.map +0 -1
  428. package/dist/cache/memory-store.d.ts +0 -41
  429. package/dist/cache/memory-store.d.ts.map +0 -1
  430. package/dist/cache/memory-store.js +0 -191
  431. package/dist/cache/memory-store.js.map +0 -1
  432. package/dist/cache/types.d.ts +0 -317
  433. package/dist/cache/types.d.ts.map +0 -1
  434. package/dist/cache/types.js +0 -12
  435. package/dist/cache/types.js.map +0 -1
  436. package/dist/client.d.ts +0 -248
  437. package/dist/client.d.ts.map +0 -1
  438. package/dist/client.js +0 -367
  439. package/dist/client.js.map +0 -1
  440. package/dist/client.rsc.d.ts +0 -26
  441. package/dist/client.rsc.d.ts.map +0 -1
  442. package/dist/client.rsc.js +0 -46
  443. package/dist/client.rsc.js.map +0 -1
  444. package/dist/component-utils.d.ts +0 -36
  445. package/dist/component-utils.d.ts.map +0 -1
  446. package/dist/component-utils.js +0 -61
  447. package/dist/component-utils.js.map +0 -1
  448. package/dist/components/DefaultDocument.d.ts +0 -13
  449. package/dist/components/DefaultDocument.d.ts.map +0 -1
  450. package/dist/components/DefaultDocument.js +0 -15
  451. package/dist/components/DefaultDocument.js.map +0 -1
  452. package/dist/debug.d.ts +0 -58
  453. package/dist/debug.d.ts.map +0 -1
  454. package/dist/debug.js +0 -157
  455. package/dist/debug.js.map +0 -1
  456. package/dist/default-error-boundary.d.ts +0 -11
  457. package/dist/default-error-boundary.d.ts.map +0 -1
  458. package/dist/default-error-boundary.js +0 -45
  459. package/dist/default-error-boundary.js.map +0 -1
  460. package/dist/deps/browser.d.ts +0 -2
  461. package/dist/deps/browser.d.ts.map +0 -1
  462. package/dist/deps/browser.js +0 -3
  463. package/dist/deps/browser.js.map +0 -1
  464. package/dist/deps/html-stream-client.d.ts +0 -2
  465. package/dist/deps/html-stream-client.d.ts.map +0 -1
  466. package/dist/deps/html-stream-client.js +0 -3
  467. package/dist/deps/html-stream-client.js.map +0 -1
  468. package/dist/deps/html-stream-server.d.ts +0 -2
  469. package/dist/deps/html-stream-server.d.ts.map +0 -1
  470. package/dist/deps/html-stream-server.js +0 -3
  471. package/dist/deps/html-stream-server.js.map +0 -1
  472. package/dist/deps/rsc.d.ts +0 -2
  473. package/dist/deps/rsc.d.ts.map +0 -1
  474. package/dist/deps/rsc.js +0 -4
  475. package/dist/deps/rsc.js.map +0 -1
  476. package/dist/deps/ssr.d.ts +0 -2
  477. package/dist/deps/ssr.d.ts.map +0 -1
  478. package/dist/deps/ssr.js +0 -3
  479. package/dist/deps/ssr.js.map +0 -1
  480. package/dist/errors.d.ts +0 -174
  481. package/dist/errors.d.ts.map +0 -1
  482. package/dist/errors.js +0 -241
  483. package/dist/errors.js.map +0 -1
  484. package/dist/handle.d.ts +0 -78
  485. package/dist/handle.d.ts.map +0 -1
  486. package/dist/handle.js +0 -82
  487. package/dist/handle.js.map +0 -1
  488. package/dist/handles/MetaTags.d.ts +0 -14
  489. package/dist/handles/MetaTags.d.ts.map +0 -1
  490. package/dist/handles/MetaTags.js +0 -136
  491. package/dist/handles/MetaTags.js.map +0 -1
  492. package/dist/handles/index.d.ts +0 -6
  493. package/dist/handles/index.d.ts.map +0 -1
  494. package/dist/handles/index.js +0 -6
  495. package/dist/handles/index.js.map +0 -1
  496. package/dist/handles/meta.d.ts +0 -39
  497. package/dist/handles/meta.d.ts.map +0 -1
  498. package/dist/handles/meta.js +0 -202
  499. package/dist/handles/meta.js.map +0 -1
  500. package/dist/host/__tests__/errors.test.d.ts +0 -2
  501. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  502. package/dist/host/__tests__/errors.test.js +0 -76
  503. package/dist/host/__tests__/errors.test.js.map +0 -1
  504. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  505. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  506. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  507. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  508. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  509. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  510. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  511. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  512. package/dist/host/__tests__/router.test.d.ts +0 -2
  513. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  514. package/dist/host/__tests__/router.test.js +0 -241
  515. package/dist/host/__tests__/router.test.js.map +0 -1
  516. package/dist/host/__tests__/testing.test.d.ts +0 -2
  517. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  518. package/dist/host/__tests__/testing.test.js +0 -64
  519. package/dist/host/__tests__/testing.test.js.map +0 -1
  520. package/dist/host/__tests__/utils.test.d.ts +0 -2
  521. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  522. package/dist/host/__tests__/utils.test.js +0 -29
  523. package/dist/host/__tests__/utils.test.js.map +0 -1
  524. package/dist/host/cookie-handler.d.ts +0 -34
  525. package/dist/host/cookie-handler.d.ts.map +0 -1
  526. package/dist/host/cookie-handler.js +0 -124
  527. package/dist/host/cookie-handler.js.map +0 -1
  528. package/dist/host/errors.d.ts +0 -56
  529. package/dist/host/errors.d.ts.map +0 -1
  530. package/dist/host/errors.js +0 -79
  531. package/dist/host/errors.js.map +0 -1
  532. package/dist/host/index.d.ts +0 -29
  533. package/dist/host/index.d.ts.map +0 -1
  534. package/dist/host/index.js +0 -32
  535. package/dist/host/index.js.map +0 -1
  536. package/dist/host/pattern-matcher.d.ts +0 -36
  537. package/dist/host/pattern-matcher.d.ts.map +0 -1
  538. package/dist/host/pattern-matcher.js +0 -172
  539. package/dist/host/pattern-matcher.js.map +0 -1
  540. package/dist/host/router.d.ts +0 -26
  541. package/dist/host/router.d.ts.map +0 -1
  542. package/dist/host/router.js +0 -218
  543. package/dist/host/router.js.map +0 -1
  544. package/dist/host/testing.d.ts +0 -36
  545. package/dist/host/testing.d.ts.map +0 -1
  546. package/dist/host/testing.js +0 -55
  547. package/dist/host/testing.js.map +0 -1
  548. package/dist/host/types.d.ts +0 -115
  549. package/dist/host/types.d.ts.map +0 -1
  550. package/dist/host/types.js +0 -7
  551. package/dist/host/types.js.map +0 -1
  552. package/dist/host/utils.d.ts +0 -21
  553. package/dist/host/utils.d.ts.map +0 -1
  554. package/dist/host/utils.js +0 -23
  555. package/dist/host/utils.js.map +0 -1
  556. package/dist/href-client.d.ts +0 -131
  557. package/dist/href-client.d.ts.map +0 -1
  558. package/dist/href-client.js +0 -64
  559. package/dist/href-client.js.map +0 -1
  560. package/dist/href-context.d.ts +0 -29
  561. package/dist/href-context.d.ts.map +0 -1
  562. package/dist/href-context.js +0 -21
  563. package/dist/href-context.js.map +0 -1
  564. package/dist/index.d.ts +0 -73
  565. package/dist/index.d.ts.map +0 -1
  566. package/dist/index.js +0 -91
  567. package/dist/index.js.map +0 -1
  568. package/dist/index.rsc.d.ts +0 -32
  569. package/dist/index.rsc.d.ts.map +0 -1
  570. package/dist/index.rsc.js +0 -40
  571. package/dist/index.rsc.js.map +0 -1
  572. package/dist/internal-debug.d.ts +0 -2
  573. package/dist/internal-debug.d.ts.map +0 -1
  574. package/dist/internal-debug.js +0 -5
  575. package/dist/internal-debug.js.map +0 -1
  576. package/dist/loader.d.ts +0 -14
  577. package/dist/loader.d.ts.map +0 -1
  578. package/dist/loader.js +0 -20
  579. package/dist/loader.js.map +0 -1
  580. package/dist/loader.rsc.d.ts +0 -19
  581. package/dist/loader.rsc.d.ts.map +0 -1
  582. package/dist/loader.rsc.js +0 -99
  583. package/dist/loader.rsc.js.map +0 -1
  584. package/dist/network-error-thrower.d.ts +0 -17
  585. package/dist/network-error-thrower.d.ts.map +0 -1
  586. package/dist/network-error-thrower.js +0 -14
  587. package/dist/network-error-thrower.js.map +0 -1
  588. package/dist/outlet-context.d.ts +0 -13
  589. package/dist/outlet-context.d.ts.map +0 -1
  590. package/dist/outlet-context.js +0 -3
  591. package/dist/outlet-context.js.map +0 -1
  592. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  593. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  594. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  595. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  596. package/dist/prerender/param-hash.d.ts +0 -16
  597. package/dist/prerender/param-hash.d.ts.map +0 -1
  598. package/dist/prerender/param-hash.js +0 -36
  599. package/dist/prerender/param-hash.js.map +0 -1
  600. package/dist/prerender/store.d.ts +0 -38
  601. package/dist/prerender/store.d.ts.map +0 -1
  602. package/dist/prerender/store.js +0 -61
  603. package/dist/prerender/store.js.map +0 -1
  604. package/dist/prerender.d.ts +0 -66
  605. package/dist/prerender.d.ts.map +0 -1
  606. package/dist/prerender.js +0 -57
  607. package/dist/prerender.js.map +0 -1
  608. package/dist/reverse.d.ts +0 -196
  609. package/dist/reverse.d.ts.map +0 -1
  610. package/dist/reverse.js +0 -78
  611. package/dist/reverse.js.map +0 -1
  612. package/dist/root-error-boundary.d.ts +0 -33
  613. package/dist/root-error-boundary.d.ts.map +0 -1
  614. package/dist/root-error-boundary.js +0 -165
  615. package/dist/root-error-boundary.js.map +0 -1
  616. package/dist/route-content-wrapper.d.ts +0 -46
  617. package/dist/route-content-wrapper.d.ts.map +0 -1
  618. package/dist/route-content-wrapper.js +0 -77
  619. package/dist/route-content-wrapper.js.map +0 -1
  620. package/dist/route-definition.d.ts +0 -421
  621. package/dist/route-definition.d.ts.map +0 -1
  622. package/dist/route-definition.js +0 -868
  623. package/dist/route-definition.js.map +0 -1
  624. package/dist/route-map-builder.d.ts +0 -155
  625. package/dist/route-map-builder.d.ts.map +0 -1
  626. package/dist/route-map-builder.js +0 -237
  627. package/dist/route-map-builder.js.map +0 -1
  628. package/dist/route-types.d.ts +0 -165
  629. package/dist/route-types.d.ts.map +0 -1
  630. package/dist/route-types.js +0 -7
  631. package/dist/route-types.js.map +0 -1
  632. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  633. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  634. package/dist/router/__tests__/handler-context.test.js +0 -65
  635. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  636. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  637. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  638. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  639. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  640. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  641. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  642. package/dist/router/__tests__/match-context.test.js +0 -92
  643. package/dist/router/__tests__/match-context.test.js.map +0 -1
  644. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  645. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  646. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  647. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  648. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  649. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  650. package/dist/router/__tests__/match-result.test.js +0 -457
  651. package/dist/router/__tests__/match-result.test.js.map +0 -1
  652. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  653. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  654. package/dist/router/__tests__/on-error.test.js +0 -678
  655. package/dist/router/__tests__/on-error.test.js.map +0 -1
  656. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  657. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  658. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  659. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  660. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  661. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  662. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  663. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  664. package/dist/router/error-handling.d.ts +0 -77
  665. package/dist/router/error-handling.d.ts.map +0 -1
  666. package/dist/router/error-handling.js +0 -202
  667. package/dist/router/error-handling.js.map +0 -1
  668. package/dist/router/handler-context.d.ts +0 -20
  669. package/dist/router/handler-context.d.ts.map +0 -1
  670. package/dist/router/handler-context.js +0 -198
  671. package/dist/router/handler-context.js.map +0 -1
  672. package/dist/router/intercept-resolution.d.ts +0 -66
  673. package/dist/router/intercept-resolution.d.ts.map +0 -1
  674. package/dist/router/intercept-resolution.js +0 -246
  675. package/dist/router/intercept-resolution.js.map +0 -1
  676. package/dist/router/loader-resolution.d.ts +0 -64
  677. package/dist/router/loader-resolution.d.ts.map +0 -1
  678. package/dist/router/loader-resolution.js +0 -284
  679. package/dist/router/loader-resolution.js.map +0 -1
  680. package/dist/router/logging.d.ts +0 -15
  681. package/dist/router/logging.d.ts.map +0 -1
  682. package/dist/router/logging.js +0 -99
  683. package/dist/router/logging.js.map +0 -1
  684. package/dist/router/manifest.d.ts +0 -22
  685. package/dist/router/manifest.d.ts.map +0 -1
  686. package/dist/router/manifest.js +0 -181
  687. package/dist/router/manifest.js.map +0 -1
  688. package/dist/router/match-api.d.ts +0 -35
  689. package/dist/router/match-api.d.ts.map +0 -1
  690. package/dist/router/match-api.js +0 -406
  691. package/dist/router/match-api.js.map +0 -1
  692. package/dist/router/match-context.d.ts +0 -206
  693. package/dist/router/match-context.d.ts.map +0 -1
  694. package/dist/router/match-context.js +0 -17
  695. package/dist/router/match-context.js.map +0 -1
  696. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  697. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  698. package/dist/router/match-middleware/background-revalidation.js +0 -75
  699. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  700. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  701. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  702. package/dist/router/match-middleware/cache-lookup.js +0 -257
  703. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  704. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  705. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  706. package/dist/router/match-middleware/cache-store.js +0 -108
  707. package/dist/router/match-middleware/cache-store.js.map +0 -1
  708. package/dist/router/match-middleware/index.d.ts +0 -81
  709. package/dist/router/match-middleware/index.d.ts.map +0 -1
  710. package/dist/router/match-middleware/index.js +0 -80
  711. package/dist/router/match-middleware/index.js.map +0 -1
  712. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  713. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  714. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  715. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  716. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  717. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  718. package/dist/router/match-middleware/segment-resolution.js +0 -53
  719. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  720. package/dist/router/match-pipelines.d.ts +0 -147
  721. package/dist/router/match-pipelines.d.ts.map +0 -1
  722. package/dist/router/match-pipelines.js +0 -82
  723. package/dist/router/match-pipelines.js.map +0 -1
  724. package/dist/router/match-result.d.ts +0 -126
  725. package/dist/router/match-result.d.ts.map +0 -1
  726. package/dist/router/match-result.js +0 -93
  727. package/dist/router/match-result.js.map +0 -1
  728. package/dist/router/metrics.d.ts +0 -20
  729. package/dist/router/metrics.d.ts.map +0 -1
  730. package/dist/router/metrics.js +0 -47
  731. package/dist/router/metrics.js.map +0 -1
  732. package/dist/router/middleware.d.ts +0 -249
  733. package/dist/router/middleware.d.ts.map +0 -1
  734. package/dist/router/middleware.js +0 -434
  735. package/dist/router/middleware.js.map +0 -1
  736. package/dist/router/middleware.test.d.ts +0 -2
  737. package/dist/router/middleware.test.d.ts.map +0 -1
  738. package/dist/router/middleware.test.js +0 -816
  739. package/dist/router/middleware.test.js.map +0 -1
  740. package/dist/router/pattern-matching.d.ts +0 -149
  741. package/dist/router/pattern-matching.d.ts.map +0 -1
  742. package/dist/router/pattern-matching.js +0 -349
  743. package/dist/router/pattern-matching.js.map +0 -1
  744. package/dist/router/revalidation.d.ts +0 -44
  745. package/dist/router/revalidation.d.ts.map +0 -1
  746. package/dist/router/revalidation.js +0 -147
  747. package/dist/router/revalidation.js.map +0 -1
  748. package/dist/router/router-context.d.ts +0 -135
  749. package/dist/router/router-context.d.ts.map +0 -1
  750. package/dist/router/router-context.js +0 -36
  751. package/dist/router/router-context.js.map +0 -1
  752. package/dist/router/segment-resolution.d.ts +0 -127
  753. package/dist/router/segment-resolution.d.ts.map +0 -1
  754. package/dist/router/segment-resolution.js +0 -919
  755. package/dist/router/segment-resolution.js.map +0 -1
  756. package/dist/router/trie-matching.d.ts +0 -40
  757. package/dist/router/trie-matching.d.ts.map +0 -1
  758. package/dist/router/trie-matching.js +0 -127
  759. package/dist/router/trie-matching.js.map +0 -1
  760. package/dist/router/types.d.ts +0 -136
  761. package/dist/router/types.d.ts.map +0 -1
  762. package/dist/router/types.js +0 -7
  763. package/dist/router/types.js.map +0 -1
  764. package/dist/router.d.ts +0 -753
  765. package/dist/router.d.ts.map +0 -1
  766. package/dist/router.gen.d.ts +0 -6
  767. package/dist/router.gen.d.ts.map +0 -1
  768. package/dist/router.gen.js +0 -6
  769. package/dist/router.gen.js.map +0 -1
  770. package/dist/router.js +0 -1304
  771. package/dist/router.js.map +0 -1
  772. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  773. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  774. package/dist/rsc/__tests__/helpers.test.js +0 -140
  775. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  776. package/dist/rsc/handler.d.ts +0 -45
  777. package/dist/rsc/handler.d.ts.map +0 -1
  778. package/dist/rsc/handler.js +0 -1172
  779. package/dist/rsc/handler.js.map +0 -1
  780. package/dist/rsc/helpers.d.ts +0 -16
  781. package/dist/rsc/helpers.d.ts.map +0 -1
  782. package/dist/rsc/helpers.js +0 -55
  783. package/dist/rsc/helpers.js.map +0 -1
  784. package/dist/rsc/index.d.ts +0 -22
  785. package/dist/rsc/index.d.ts.map +0 -1
  786. package/dist/rsc/index.js +0 -23
  787. package/dist/rsc/index.js.map +0 -1
  788. package/dist/rsc/nonce.d.ts +0 -9
  789. package/dist/rsc/nonce.d.ts.map +0 -1
  790. package/dist/rsc/nonce.js +0 -18
  791. package/dist/rsc/nonce.js.map +0 -1
  792. package/dist/rsc/types.d.ts +0 -206
  793. package/dist/rsc/types.d.ts.map +0 -1
  794. package/dist/rsc/types.js +0 -8
  795. package/dist/rsc/types.js.map +0 -1
  796. package/dist/search-params.d.ts +0 -103
  797. package/dist/search-params.d.ts.map +0 -1
  798. package/dist/search-params.js +0 -74
  799. package/dist/search-params.js.map +0 -1
  800. package/dist/segment-system.d.ts +0 -75
  801. package/dist/segment-system.d.ts.map +0 -1
  802. package/dist/segment-system.js +0 -336
  803. package/dist/segment-system.js.map +0 -1
  804. package/dist/server/context.d.ts +0 -245
  805. package/dist/server/context.d.ts.map +0 -1
  806. package/dist/server/context.js +0 -197
  807. package/dist/server/context.js.map +0 -1
  808. package/dist/server/fetchable-loader-store.d.ts +0 -18
  809. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  810. package/dist/server/fetchable-loader-store.js +0 -18
  811. package/dist/server/fetchable-loader-store.js.map +0 -1
  812. package/dist/server/handle-store.d.ts +0 -85
  813. package/dist/server/handle-store.d.ts.map +0 -1
  814. package/dist/server/handle-store.js +0 -142
  815. package/dist/server/handle-store.js.map +0 -1
  816. package/dist/server/loader-registry.d.ts +0 -55
  817. package/dist/server/loader-registry.d.ts.map +0 -1
  818. package/dist/server/loader-registry.js +0 -132
  819. package/dist/server/loader-registry.js.map +0 -1
  820. package/dist/server/request-context.d.ts +0 -226
  821. package/dist/server/request-context.d.ts.map +0 -1
  822. package/dist/server/request-context.js +0 -290
  823. package/dist/server/request-context.js.map +0 -1
  824. package/dist/server/root-layout.d.ts +0 -4
  825. package/dist/server/root-layout.d.ts.map +0 -1
  826. package/dist/server/root-layout.js +0 -5
  827. package/dist/server/root-layout.js.map +0 -1
  828. package/dist/server.d.ts +0 -15
  829. package/dist/server.d.ts.map +0 -1
  830. package/dist/server.js +0 -20
  831. package/dist/server.js.map +0 -1
  832. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  833. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  834. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  835. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  836. package/dist/ssr/index.d.ts +0 -98
  837. package/dist/ssr/index.d.ts.map +0 -1
  838. package/dist/ssr/index.js +0 -158
  839. package/dist/ssr/index.js.map +0 -1
  840. package/dist/static-handler.d.ts +0 -50
  841. package/dist/static-handler.d.ts.map +0 -1
  842. package/dist/static-handler.gen.d.ts +0 -5
  843. package/dist/static-handler.gen.d.ts.map +0 -1
  844. package/dist/static-handler.gen.js +0 -5
  845. package/dist/static-handler.gen.js.map +0 -1
  846. package/dist/static-handler.js +0 -29
  847. package/dist/static-handler.js.map +0 -1
  848. package/dist/theme/ThemeProvider.d.ts +0 -20
  849. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  850. package/dist/theme/ThemeProvider.js +0 -240
  851. package/dist/theme/ThemeProvider.js.map +0 -1
  852. package/dist/theme/ThemeScript.d.ts +0 -48
  853. package/dist/theme/ThemeScript.d.ts.map +0 -1
  854. package/dist/theme/ThemeScript.js +0 -13
  855. package/dist/theme/ThemeScript.js.map +0 -1
  856. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  857. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  858. package/dist/theme/__tests__/theme.test.js +0 -103
  859. package/dist/theme/__tests__/theme.test.js.map +0 -1
  860. package/dist/theme/constants.d.ts +0 -29
  861. package/dist/theme/constants.d.ts.map +0 -1
  862. package/dist/theme/constants.js +0 -48
  863. package/dist/theme/constants.js.map +0 -1
  864. package/dist/theme/index.d.ts +0 -31
  865. package/dist/theme/index.d.ts.map +0 -1
  866. package/dist/theme/index.js +0 -36
  867. package/dist/theme/index.js.map +0 -1
  868. package/dist/theme/theme-context.d.ts +0 -40
  869. package/dist/theme/theme-context.d.ts.map +0 -1
  870. package/dist/theme/theme-context.js +0 -60
  871. package/dist/theme/theme-context.js.map +0 -1
  872. package/dist/theme/theme-script.d.ts +0 -27
  873. package/dist/theme/theme-script.d.ts.map +0 -1
  874. package/dist/theme/theme-script.js +0 -147
  875. package/dist/theme/theme-script.js.map +0 -1
  876. package/dist/theme/types.d.ts +0 -163
  877. package/dist/theme/types.d.ts.map +0 -1
  878. package/dist/theme/types.js +0 -11
  879. package/dist/theme/types.js.map +0 -1
  880. package/dist/theme/use-theme.d.ts +0 -12
  881. package/dist/theme/use-theme.d.ts.map +0 -1
  882. package/dist/theme/use-theme.js +0 -40
  883. package/dist/theme/use-theme.js.map +0 -1
  884. package/dist/types.d.ts +0 -1479
  885. package/dist/types.d.ts.map +0 -1
  886. package/dist/types.js +0 -10
  887. package/dist/types.js.map +0 -1
  888. package/dist/urls.d.ts +0 -441
  889. package/dist/urls.d.ts.map +0 -1
  890. package/dist/urls.gen.d.ts +0 -8
  891. package/dist/urls.gen.d.ts.map +0 -1
  892. package/dist/urls.gen.js +0 -8
  893. package/dist/urls.gen.js.map +0 -1
  894. package/dist/urls.js +0 -443
  895. package/dist/urls.js.map +0 -1
  896. package/dist/use-loader.d.ts +0 -127
  897. package/dist/use-loader.d.ts.map +0 -1
  898. package/dist/use-loader.js +0 -237
  899. package/dist/use-loader.js.map +0 -1
  900. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  901. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  902. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  903. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  904. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  905. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  906. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  907. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  908. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  909. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  910. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  911. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  912. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  913. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  914. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  915. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  916. package/dist/vite/ast-handler-extract.d.ts +0 -49
  917. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  918. package/dist/vite/ast-handler-extract.js +0 -249
  919. package/dist/vite/ast-handler-extract.js.map +0 -1
  920. package/dist/vite/expose-action-id.d.ts +0 -19
  921. package/dist/vite/expose-action-id.d.ts.map +0 -1
  922. package/dist/vite/expose-action-id.js +0 -250
  923. package/dist/vite/expose-action-id.js.map +0 -1
  924. package/dist/vite/expose-id-utils.d.ts +0 -69
  925. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  926. package/dist/vite/expose-id-utils.js +0 -289
  927. package/dist/vite/expose-id-utils.js.map +0 -1
  928. package/dist/vite/expose-internal-ids.d.ts +0 -22
  929. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  930. package/dist/vite/expose-internal-ids.js +0 -886
  931. package/dist/vite/expose-internal-ids.js.map +0 -1
  932. package/dist/vite/index.d.ts +0 -149
  933. package/dist/vite/index.d.ts.map +0 -1
  934. package/dist/vite/index.js.map +0 -1
  935. package/dist/vite/index.named-routes.gen.ts +0 -103
  936. package/dist/vite/package-resolution.d.ts +0 -43
  937. package/dist/vite/package-resolution.d.ts.map +0 -1
  938. package/dist/vite/package-resolution.js +0 -112
  939. package/dist/vite/package-resolution.js.map +0 -1
  940. package/dist/vite/virtual-entries.d.ts +0 -25
  941. package/dist/vite/virtual-entries.d.ts.map +0 -1
  942. package/dist/vite/virtual-entries.js +0 -110
  943. package/dist/vite/virtual-entries.js.map +0 -1
@@ -45,7 +45,9 @@ function isRoutableSourceFile(name: string): boolean {
45
45
  name.endsWith(".tsx") ||
46
46
  name.endsWith(".js") ||
47
47
  name.endsWith(".jsx")) &&
48
- !name.includes(".gen.")
48
+ !name.includes(".gen.") &&
49
+ !name.includes(".test.") &&
50
+ !name.includes(".spec.")
49
51
  );
50
52
  }
51
53
 
@@ -70,7 +72,15 @@ function findRouterFilesRecursive(
70
72
  for (const entry of entries) {
71
73
  const fullPath = join(dir, entry.name);
72
74
  if (entry.isDirectory()) {
73
- if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
75
+ if (
76
+ entry.name === "node_modules" ||
77
+ entry.name === "dist" ||
78
+ entry.name === "coverage" ||
79
+ entry.name === "__tests__" ||
80
+ entry.name === "__mocks__" ||
81
+ entry.name.startsWith(".")
82
+ )
83
+ continue;
74
84
  childDirs.push(fullPath);
75
85
  continue;
76
86
  }
@@ -147,13 +157,26 @@ export function formatNestedRouterConflictError(
147
157
  // ---------------------------------------------------------------------------
148
158
 
149
159
  /**
150
- * Extract the url patterns variable from a router file using AST.
151
- * Detects two patterns:
160
+ * Result of extracting URL patterns from a router file.
161
+ * - "variable": a named variable reference (e.g., `.routes(patterns)` or `urls: patterns`)
162
+ * - "inline": an inline builder function (e.g., `.routes(({ path }) => [...])` or `urls: ({ path }) => [...]`)
163
+ */
164
+ export type UrlsExtractionResult =
165
+ | { kind: "variable"; name: string }
166
+ | { kind: "inline"; block: string };
167
+
168
+ /**
169
+ * Extract the url patterns from a router file using AST.
170
+ * Detects four patterns:
152
171
  * 1. createRouter(...).routes(variableName)
153
172
  * 2. createRouter({ urls: variableName, ... })
154
- * Returns the local variable name.
173
+ * 3. createRouter(...).routes(({ path, ... }) => [...])
174
+ * 4. createRouter({ urls: ({ path, ... }) => [...], ... })
175
+ * Returns either a variable name or an inline code block.
155
176
  */
156
- export function extractUrlsVariableFromRouter(code: string): string | null {
177
+ export function extractUrlsFromRouter(
178
+ code: string,
179
+ ): UrlsExtractionResult | null {
157
180
  const sourceFile = ts.createSourceFile(
158
181
  "router.tsx",
159
182
  code,
@@ -161,7 +184,7 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
161
184
  true,
162
185
  ts.ScriptKind.TSX,
163
186
  );
164
- let result: string | null = null;
187
+ let result: UrlsExtractionResult | null = null;
165
188
 
166
189
  function isCreateRouterCall(node: ts.Node): boolean {
167
190
  if (!ts.isCallExpression(node)) return false;
@@ -169,44 +192,108 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
169
192
  return ts.isIdentifier(callee) && callee.text === "createRouter";
170
193
  }
171
194
 
195
+ /** Check if a node is an arrow/function expression (inline builder). */
196
+ function isInlineBuilder(node: ts.Node): boolean {
197
+ return ts.isArrowFunction(node) || ts.isFunctionExpression(node);
198
+ }
199
+
200
+ /** Check if a .routes() call chains from createRouter(). */
201
+ function isRoutesOnCreateRouter(node: ts.CallExpression): boolean {
202
+ if (
203
+ !ts.isPropertyAccessExpression(node.expression) ||
204
+ node.expression.name.text !== "routes"
205
+ )
206
+ return false;
207
+ let inner: ts.Expression = node.expression.expression;
208
+ while (
209
+ ts.isCallExpression(inner) &&
210
+ ts.isPropertyAccessExpression(inner.expression)
211
+ ) {
212
+ inner = inner.expression.expression;
213
+ }
214
+ return isCreateRouterCall(inner);
215
+ }
216
+
172
217
  function visit(node: ts.Node) {
173
218
  if (result) return;
174
219
 
175
- // Pattern 1: createRouter(...).routes(variableName)
176
- // The AST shape is CallExpression(.routes) -> PropertyAccessExpression -> CallExpression(createRouter)
220
+ // Pattern 1 & 3: createRouter(...).routes(variableName | builder)
177
221
  if (
178
222
  ts.isCallExpression(node) &&
179
- ts.isPropertyAccessExpression(node.expression) &&
180
- node.expression.name.text === "routes" &&
181
223
  node.arguments.length >= 1 &&
182
- ts.isIdentifier(node.arguments[0])
224
+ isRoutesOnCreateRouter(node)
183
225
  ) {
184
- // Walk up the chain: createRouter().middleware(...).routes(x) etc.
185
- // The innermost call should be createRouter(...)
186
- let inner: ts.Expression = node.expression.expression;
187
- while (
188
- ts.isCallExpression(inner) &&
189
- ts.isPropertyAccessExpression(inner.expression)
190
- ) {
191
- inner = inner.expression.expression;
192
- }
193
- if (isCreateRouterCall(inner)) {
194
- result = (node.arguments[0] as ts.Identifier).text;
195
- return;
226
+ const arg = node.arguments[0];
227
+ if (ts.isIdentifier(arg)) {
228
+ result = { kind: "variable", name: arg.text };
229
+ } else if (isInlineBuilder(arg)) {
230
+ result = { kind: "inline", block: arg.getText(sourceFile) };
196
231
  }
232
+ return;
197
233
  }
198
234
 
199
- // Pattern 2: createRouter({ urls: variableName, ... })
235
+ // Pattern 2 & 4: createRouter({ urls: variableName | builder, ... })
200
236
  if (isCreateRouterCall(node)) {
201
237
  const callExpr = node as ts.CallExpression;
202
- for (const arg of callExpr.arguments) {
238
+ for (const callArg of callExpr.arguments) {
239
+ if (ts.isObjectLiteralExpression(callArg)) {
240
+ for (const prop of callArg.properties) {
241
+ if (
242
+ ts.isPropertyAssignment(prop) &&
243
+ ts.isIdentifier(prop.name) &&
244
+ prop.name.text === "urls"
245
+ ) {
246
+ if (ts.isIdentifier(prop.initializer)) {
247
+ result = { kind: "variable", name: prop.initializer.text };
248
+ } else if (isInlineBuilder(prop.initializer)) {
249
+ result = {
250
+ kind: "inline",
251
+ block: prop.initializer.getText(sourceFile),
252
+ };
253
+ }
254
+ return;
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+ ts.forEachChild(node, visit);
262
+ }
263
+
264
+ visit(sourceFile);
265
+ return result;
266
+ }
267
+
268
+ /**
269
+ * Extract the `basename` string literal from createRouter({ basename: "..." }).
270
+ * Returns the basename value or undefined if not present.
271
+ */
272
+ export function extractBasenameFromRouter(code: string): string | undefined {
273
+ const sourceFile = ts.createSourceFile(
274
+ "router.tsx",
275
+ code,
276
+ ts.ScriptTarget.Latest,
277
+ true,
278
+ ts.ScriptKind.TSX,
279
+ );
280
+ let result: string | undefined;
281
+
282
+ function visit(node: ts.Node) {
283
+ if (result !== undefined) return;
284
+ if (
285
+ ts.isCallExpression(node) &&
286
+ ts.isIdentifier(node.expression) &&
287
+ node.expression.text === "createRouter"
288
+ ) {
289
+ for (const arg of node.arguments) {
203
290
  if (ts.isObjectLiteralExpression(arg)) {
204
291
  for (const prop of arg.properties) {
205
292
  if (
206
293
  ts.isPropertyAssignment(prop) &&
207
294
  ts.isIdentifier(prop.name) &&
208
- prop.name.text === "urls" &&
209
- ts.isIdentifier(prop.initializer)
295
+ prop.name.text === "basename" &&
296
+ ts.isStringLiteral(prop.initializer)
210
297
  ) {
211
298
  result = prop.initializer.text;
212
299
  return;
@@ -215,7 +302,6 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
215
302
  }
216
303
  }
217
304
  }
218
-
219
305
  ts.forEachChild(node, visit);
220
306
  }
221
307
 
@@ -223,9 +309,40 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
223
309
  return result;
224
310
  }
225
311
 
312
+ /** @deprecated Use extractUrlsFromRouter instead */
313
+ export function extractUrlsVariableFromRouter(code: string): string | null {
314
+ const result = extractUrlsFromRouter(code);
315
+ return result?.kind === "variable" ? result.name : null;
316
+ }
317
+
318
+ /** Apply a basename prefix to all route patterns in a result set. */
319
+ function applyBasenameToRoutes(
320
+ result: {
321
+ routes: Record<string, string>;
322
+ searchSchemas: Record<string, Record<string, string>>;
323
+ },
324
+ basename: string,
325
+ ): {
326
+ routes: Record<string, string>;
327
+ searchSchemas: Record<string, Record<string, string>>;
328
+ } {
329
+ const prefixed: Record<string, string> = {};
330
+ for (const [name, pattern] of Object.entries(result.routes)) {
331
+ if (pattern === "/") {
332
+ prefixed[name] = basename;
333
+ } else if (basename.endsWith("/") && pattern.startsWith("/")) {
334
+ prefixed[name] = basename + pattern.slice(1);
335
+ } else {
336
+ prefixed[name] = basename + pattern;
337
+ }
338
+ }
339
+ return { routes: prefixed, searchSchemas: result.searchSchemas };
340
+ }
341
+
226
342
  /**
227
343
  * Resolve routes and search schemas from a router source file by following the
228
- * variable passed to `.routes(...)` or `urls: ...` in createRouter options.
344
+ * variable passed to `.routes(...)` or `urls: ...` in createRouter options,
345
+ * or by parsing an inline builder function directly.
229
346
  */
230
347
  export function buildCombinedRouteMapForRouterFile(routerFilePath: string): {
231
348
  routes: Record<string, string>;
@@ -238,21 +355,54 @@ export function buildCombinedRouteMapForRouterFile(routerFilePath: string): {
238
355
  return { routes: {}, searchSchemas: {} };
239
356
  }
240
357
 
241
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
242
- if (!urlsVarName) {
358
+ const extraction = extractUrlsFromRouter(routerSource);
359
+ if (!extraction) {
243
360
  return { routes: {}, searchSchemas: {} };
244
361
  }
245
362
 
246
- const imported = resolveImportedVariable(routerSource, urlsVarName);
247
- if (imported) {
248
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
249
- if (!targetFile) {
250
- return { routes: {}, searchSchemas: {} };
363
+ // Detect basename from createRouter({ basename: "..." })
364
+ const rawBasename = extractBasenameFromRouter(routerSource);
365
+ const basename = rawBasename
366
+ ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "")
367
+ : undefined;
368
+
369
+ let result: {
370
+ routes: Record<string, string>;
371
+ searchSchemas: Record<string, Record<string, string>>;
372
+ };
373
+
374
+ // Inline builder: extract routes directly from the function body
375
+ if (extraction.kind === "inline") {
376
+ result = buildCombinedRouteMapWithSearch(
377
+ routerFilePath,
378
+ undefined,
379
+ undefined,
380
+ undefined,
381
+ extraction.block,
382
+ );
383
+ } else {
384
+ // Variable reference: follow imports or same-file declaration
385
+ const imported = resolveImportedVariable(routerSource, extraction.name);
386
+ if (imported) {
387
+ const targetFile = resolveImportPath(imported.specifier, routerFilePath);
388
+ if (!targetFile) {
389
+ return { routes: {}, searchSchemas: {} };
390
+ }
391
+ result = buildCombinedRouteMapWithSearch(
392
+ targetFile,
393
+ imported.exportedName,
394
+ );
395
+ } else {
396
+ result = buildCombinedRouteMapWithSearch(routerFilePath, extraction.name);
251
397
  }
252
- return buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
253
398
  }
254
399
 
255
- return buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
400
+ // Apply basename prefix to all extracted route patterns
401
+ if (basename) {
402
+ result = applyBasenameToRoutes(result, basename);
403
+ }
404
+
405
+ return result;
256
406
  }
257
407
 
258
408
  // ---------------------------------------------------------------------------
@@ -275,12 +425,26 @@ export function detectUnresolvableIncludes(
275
425
  return [];
276
426
  }
277
427
 
278
- // Extract the urls variable from the router file
279
- const urlsVarName = extractUrlsVariableFromRouter(source);
280
- if (!urlsVarName) return [];
428
+ // Extract the urls source from the router file
429
+ const extraction = extractUrlsFromRouter(source);
430
+ if (!extraction) return [];
431
+
432
+ const diagnostics: UnresolvableInclude[] = [];
433
+
434
+ if (extraction.kind === "inline") {
435
+ // Inline builder: parse directly
436
+ buildCombinedRouteMapWithSearch(
437
+ realPath,
438
+ undefined,
439
+ new Set(),
440
+ diagnostics,
441
+ extraction.block,
442
+ );
443
+ return diagnostics;
444
+ }
281
445
 
282
- // Resolve where the urls variable comes from
283
- const imported = resolveImportedVariable(source, urlsVarName);
446
+ // Variable reference: resolve where it comes from
447
+ const imported = resolveImportedVariable(source, extraction.name);
284
448
  let targetFile: string;
285
449
  let exportedName: string | undefined;
286
450
 
@@ -302,10 +466,9 @@ export function detectUnresolvableIncludes(
302
466
  } else {
303
467
  // Same-file urls() definition
304
468
  targetFile = realPath;
305
- exportedName = urlsVarName;
469
+ exportedName = extraction.name;
306
470
  }
307
471
 
308
- const diagnostics: UnresolvableInclude[] = [];
309
472
  buildCombinedRouteMapWithSearch(
310
473
  targetFile,
311
474
  exportedName,
@@ -387,34 +550,20 @@ export function writeCombinedRouteTypes(
387
550
  }
388
551
 
389
552
  for (const routerFilePath of routerFilePaths) {
390
- let routerSource: string;
391
- try {
392
- routerSource = readFileSync(routerFilePath, "utf-8");
393
- } catch {
394
- continue;
395
- }
396
- // Extract the urls variable name from .routes(varName) or urls: varName
397
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
398
- if (!urlsVarName) continue;
399
-
400
- // Resolve the variable to its source module
401
- let result: {
402
- routes: Record<string, string>;
403
- searchSchemas: Record<string, Record<string, string>>;
404
- };
405
-
406
- const imported = resolveImportedVariable(routerSource, urlsVarName);
407
- if (imported) {
408
- // Variable is imported from another module
409
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
410
- if (!targetFile) continue;
411
- result = buildCombinedRouteMapWithSearch(
412
- targetFile,
413
- imported.exportedName,
414
- );
415
- } else {
416
- // Variable is defined in the same file
417
- result = buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
553
+ const result = buildCombinedRouteMapForRouterFile(routerFilePath);
554
+ if (
555
+ Object.keys(result.routes).length === 0 &&
556
+ Object.keys(result.searchSchemas).length === 0
557
+ ) {
558
+ // Check if the file even has a createRouter call — if not, skip entirely.
559
+ // If it does, fall through to write an empty placeholder below.
560
+ let routerSource: string;
561
+ try {
562
+ routerSource = readFileSync(routerFilePath, "utf-8");
563
+ } catch {
564
+ continue;
565
+ }
566
+ if (!extractUrlsFromRouter(routerSource)) continue;
418
567
  }
419
568
 
420
569
  const routerBasename = pathBasename(routerFilePath).replace(
@@ -61,7 +61,14 @@ export function findTsFiles(dir: string, filter?: ScanFilter): string[] {
61
61
  for (const entry of entries) {
62
62
  const fullPath = join(dir, entry.name);
63
63
  if (entry.isDirectory()) {
64
- if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
64
+ if (
65
+ entry.name === "node_modules" ||
66
+ entry.name.startsWith(".") ||
67
+ entry.name === "dist" ||
68
+ entry.name === "build" ||
69
+ entry.name === "coverage"
70
+ )
71
+ continue;
65
72
  results.push(...findTsFiles(fullPath, filter));
66
73
  } else if (
67
74
  (entry.name.endsWith(".ts") ||
@@ -214,11 +214,21 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
214
214
  bgStopCapture = c.stop;
215
215
  }
216
216
 
217
- // Stamp tainted args and RequestContext so request-scoped
218
- // reads (cookies, headers) and side effects (ctx.set, etc.)
219
- // throw inside background revalidation, same as the miss path.
220
- // Uses ref-counted stamp/unstamp so overlapping executions
221
- // sharing the same ctx don't clear each other's guards.
217
+ // Stamp tainted ARGS only not requestCtx. The args stamp guards
218
+ // direct ctx method calls (ctx.set, ctx.header, ctx.onResponse, etc.)
219
+ // which is sufficient for correctness.
220
+ //
221
+ // We intentionally skip stamping requestCtx here because:
222
+ // 1. runBackground starts the async task synchronously (before the
223
+ // first await), so stampCacheExec would pollute the shared
224
+ // requestCtx while the foreground pipeline is still running.
225
+ // This causes assertNotInsideCacheExec to fire when cache-store
226
+ // later calls requestCtx.onResponse().
227
+ // 2. requestCtx methods are closure-bound to the original ctx, so
228
+ // neither Object.create() nor a proxy can isolate the stamp.
229
+ // 3. The foreground miss path already stamps requestCtx and catches
230
+ // cookies()/headers() misuse on first execution. The background
231
+ // re-runs the same function with the same request.
222
232
  const bgTaintedArgs: unknown[] = [];
223
233
  for (const arg of args) {
224
234
  if (isTainted(arg)) {
@@ -226,9 +236,6 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
226
236
  bgTaintedArgs.push(arg);
227
237
  }
228
238
  }
229
- if (requestCtx) {
230
- stampCacheExec(requestCtx as object);
231
- }
232
239
 
233
240
  try {
234
241
  const freshResult = await fn.apply(this, args);
@@ -249,9 +256,6 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
249
256
  for (const arg of bgTaintedArgs) {
250
257
  unstampCacheExec(arg as object);
251
258
  }
252
- if (requestCtx) {
253
- unstampCacheExec(requestCtx as object);
254
- }
255
259
  // Restore original handle store
256
260
  if (originalHandleStore && requestCtx) {
257
261
  requestCtx._handleStore = originalHandleStore;
@@ -73,7 +73,7 @@ function getDefaultRouteCacheKey(
73
73
  isIntercept?: boolean,
74
74
  ): string {
75
75
  const ctx = getRequestContext();
76
- const isPartial = ctx?.url.searchParams.has("_rsc_partial") ?? false;
76
+ const isPartial = ctx?.originalUrl?.searchParams.has("_rsc_partial") ?? false;
77
77
  const searchParams = ctx?.url.searchParams;
78
78
  const host = ctx?.url.host ?? "localhost";
79
79
 
@@ -326,24 +326,61 @@ export class CacheScope {
326
326
  const key = await this.resolveKey(pathname, params, isIntercept);
327
327
 
328
328
  // Check if this is a partial request (navigation) vs document request
329
- const isPartial = requestCtx.url.searchParams.has("_rsc_partial");
329
+ const isPartial = requestCtx.originalUrl.searchParams.has("_rsc_partial");
330
+
331
+ if (INTERNAL_RANGO_DEBUG) {
332
+ debugCacheLog(
333
+ `[CacheScope] cacheRoute: scheduling waitUntil for ${key} (${nonLoaderSegments.length} segments, isPartial=${isPartial})`,
334
+ );
335
+ }
330
336
 
331
337
  requestCtx.waitUntil(async () => {
338
+ if (INTERNAL_RANGO_DEBUG) {
339
+ debugCacheLog(
340
+ `[CacheScope] waitUntil: awaiting handleStore.settled for ${key}`,
341
+ );
342
+ }
343
+
332
344
  await handleStore.settled;
333
345
 
334
- // For document requests: only cache if ALL segments have components (complete render)
335
- // For partial requests: null components are expected (client already has them)
346
+ if (INTERNAL_RANGO_DEBUG) {
347
+ debugCacheLog(`[CacheScope] waitUntil: handleStore settled for ${key}`);
348
+ }
349
+
350
+ // For document requests: only cache if layout segments have components
351
+ // (complete render). Parallel and route segments may legitimately have
352
+ // null components — UI-less @meta parallels return null, and void route
353
+ // handlers produce null when the UI lives in parallel slots/layouts.
354
+ // Partial requests always allow null components (client already has them).
336
355
  if (!isPartial) {
337
- const hasAllComponents = nonLoaderSegments.every(
338
- (s) => s.component !== null,
356
+ const hasIncompleteLayouts = nonLoaderSegments.some(
357
+ (s) => s.component === null && s.type === "layout",
339
358
  );
340
- if (!hasAllComponents) return;
359
+ if (hasIncompleteLayouts) {
360
+ const nullSegments = nonLoaderSegments
361
+ .filter((s) => s.component === null && s.type === "layout")
362
+ .map((s) => s.id);
363
+ const error = new Error(
364
+ `[CacheScope] Cache write skipped: layout segments have null components ` +
365
+ `(${nullSegments.join(", ")}). This indicates an incomplete render — ` +
366
+ `layout handlers must return JSX for document requests to be cacheable.`,
367
+ );
368
+ error.name = "CacheScopeInvariantError";
369
+ console.error(error.message);
370
+ return;
371
+ }
341
372
  }
342
373
 
343
374
  // Collect handle data for non-loader segments only
344
375
  const handles = captureHandles(nonLoaderSegments, handleStore);
345
376
 
346
377
  try {
378
+ if (INTERNAL_RANGO_DEBUG) {
379
+ debugCacheLog(
380
+ `[CacheScope] waitUntil: serializing ${nonLoaderSegments.length} segments for ${key}`,
381
+ );
382
+ }
383
+
347
384
  // Serialize non-loader segments only
348
385
  const serializedSegments = await serializeSegments(nonLoaderSegments);
349
386
 
@@ -353,6 +390,10 @@ export class CacheScope {
353
390
  expiresAt: Date.now() + ttl * 1000,
354
391
  };
355
392
 
393
+ if (INTERNAL_RANGO_DEBUG) {
394
+ debugCacheLog(`[CacheScope] waitUntil: calling store.set for ${key}`);
395
+ }
396
+
356
397
  await store.set(key, data, ttl, swr);
357
398
 
358
399
  if (INTERNAL_RANGO_DEBUG) {