@rangojs/router 0.0.0-experimental.f2337aef → 0.0.0-experimental.f2d1a2f1

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 (972) hide show
  1. package/README.md +126 -38
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +1183 -461
  4. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  5. package/package.json +7 -5
  6. package/skills/breadcrumbs/SKILL.md +3 -1
  7. package/skills/cache-guide/SKILL.md +32 -0
  8. package/skills/caching/SKILL.md +45 -4
  9. package/skills/handler-use/SKILL.md +362 -0
  10. package/skills/hooks/SKILL.md +28 -20
  11. package/skills/intercept/SKILL.md +20 -0
  12. package/skills/layout/SKILL.md +22 -0
  13. package/skills/links/SKILL.md +91 -17
  14. package/skills/loader/SKILL.md +88 -45
  15. package/skills/middleware/SKILL.md +34 -3
  16. package/skills/migrate-nextjs/SKILL.md +560 -0
  17. package/skills/migrate-react-router/SKILL.md +765 -0
  18. package/skills/parallel/SKILL.md +185 -0
  19. package/skills/prerender/SKILL.md +110 -68
  20. package/skills/rango/SKILL.md +24 -22
  21. package/skills/response-routes/SKILL.md +8 -0
  22. package/skills/route/SKILL.md +55 -0
  23. package/skills/router-setup/SKILL.md +87 -2
  24. package/skills/streams-and-websockets/SKILL.md +283 -0
  25. package/skills/typesafety/SKILL.md +13 -1
  26. package/src/__internal.ts +1 -1
  27. package/src/browser/app-shell.ts +52 -0
  28. package/src/browser/app-version.ts +14 -0
  29. package/src/browser/event-controller.ts +5 -0
  30. package/src/browser/navigation-bridge.ts +88 -9
  31. package/src/browser/navigation-client.ts +167 -59
  32. package/src/browser/navigation-store.ts +68 -9
  33. package/src/browser/navigation-transaction.ts +11 -9
  34. package/src/browser/partial-update.ts +109 -15
  35. package/src/browser/prefetch/cache.ts +175 -15
  36. package/src/browser/prefetch/fetch.ts +180 -33
  37. package/src/browser/prefetch/queue.ts +123 -20
  38. package/src/browser/prefetch/resource-ready.ts +77 -0
  39. package/src/browser/rango-state.ts +53 -13
  40. package/src/browser/react/Link.tsx +81 -9
  41. package/src/browser/react/NavigationProvider.tsx +89 -14
  42. package/src/browser/react/context.ts +7 -2
  43. package/src/browser/react/use-handle.ts +9 -58
  44. package/src/browser/react/use-navigation.ts +22 -2
  45. package/src/browser/react/use-params.ts +11 -1
  46. package/src/browser/react/use-router.ts +29 -9
  47. package/src/browser/rsc-router.tsx +168 -65
  48. package/src/browser/scroll-restoration.ts +30 -15
  49. package/src/browser/segment-reconciler.ts +36 -9
  50. package/src/browser/server-action-bridge.ts +8 -6
  51. package/src/browser/types.ts +49 -5
  52. package/src/build/generate-manifest.ts +6 -6
  53. package/src/build/generate-route-types.ts +3 -0
  54. package/src/build/route-trie.ts +50 -24
  55. package/src/build/route-types/include-resolution.ts +8 -1
  56. package/src/build/route-types/router-processing.ts +223 -74
  57. package/src/build/route-types/scan-filter.ts +8 -1
  58. package/src/cache/cache-runtime.ts +15 -11
  59. package/src/cache/cache-scope.ts +48 -7
  60. package/src/cache/cf/cf-cache-store.ts +455 -15
  61. package/src/cache/cf/index.ts +5 -1
  62. package/src/cache/document-cache.ts +17 -7
  63. package/src/cache/index.ts +1 -0
  64. package/src/cache/taint.ts +55 -0
  65. package/src/client.tsx +84 -230
  66. package/src/context-var.ts +72 -2
  67. package/src/debug.ts +2 -2
  68. package/src/handle.ts +40 -0
  69. package/src/index.rsc.ts +6 -1
  70. package/src/index.ts +49 -6
  71. package/src/outlet-context.ts +1 -1
  72. package/src/prerender/store.ts +5 -4
  73. package/src/prerender.ts +138 -77
  74. package/src/response-utils.ts +28 -0
  75. package/src/reverse.ts +27 -2
  76. package/src/route-definition/dsl-helpers.ts +240 -40
  77. package/src/route-definition/helpers-types.ts +67 -19
  78. package/src/route-definition/index.ts +3 -0
  79. package/src/route-definition/redirect.ts +11 -3
  80. package/src/route-definition/resolve-handler-use.ts +155 -0
  81. package/src/route-types.ts +18 -0
  82. package/src/router/content-negotiation.ts +100 -1
  83. package/src/router/handler-context.ts +101 -25
  84. package/src/router/intercept-resolution.ts +9 -4
  85. package/src/router/lazy-includes.ts +10 -7
  86. package/src/router/loader-resolution.ts +159 -21
  87. package/src/router/logging.ts +1 -1
  88. package/src/router/manifest.ts +31 -16
  89. package/src/router/match-api.ts +127 -192
  90. package/src/router/match-middleware/background-revalidation.ts +30 -2
  91. package/src/router/match-middleware/cache-lookup.ts +94 -17
  92. package/src/router/match-middleware/cache-store.ts +53 -10
  93. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  94. package/src/router/match-middleware/segment-resolution.ts +60 -5
  95. package/src/router/match-result.ts +104 -10
  96. package/src/router/metrics.ts +6 -1
  97. package/src/router/middleware-types.ts +8 -30
  98. package/src/router/middleware.ts +36 -10
  99. package/src/router/navigation-snapshot.ts +182 -0
  100. package/src/router/pattern-matching.ts +60 -9
  101. package/src/router/prerender-match.ts +110 -10
  102. package/src/router/preview-match.ts +30 -102
  103. package/src/router/request-classification.ts +310 -0
  104. package/src/router/route-snapshot.ts +245 -0
  105. package/src/router/router-context.ts +1 -0
  106. package/src/router/router-interfaces.ts +36 -4
  107. package/src/router/router-options.ts +37 -11
  108. package/src/router/segment-resolution/fresh.ts +198 -20
  109. package/src/router/segment-resolution/helpers.ts +29 -24
  110. package/src/router/segment-resolution/loader-cache.ts +1 -0
  111. package/src/router/segment-resolution/revalidation.ts +433 -296
  112. package/src/router/trie-matching.ts +10 -4
  113. package/src/router/types.ts +1 -0
  114. package/src/router/url-params.ts +49 -0
  115. package/src/router.ts +60 -8
  116. package/src/rsc/handler.ts +478 -374
  117. package/src/rsc/helpers.ts +69 -41
  118. package/src/rsc/loader-fetch.ts +23 -3
  119. package/src/rsc/manifest-init.ts +5 -1
  120. package/src/rsc/progressive-enhancement.ts +16 -2
  121. package/src/rsc/response-route-handler.ts +14 -1
  122. package/src/rsc/rsc-rendering.ts +17 -1
  123. package/src/rsc/server-action.ts +10 -0
  124. package/src/rsc/ssr-setup.ts +2 -2
  125. package/src/rsc/types.ts +9 -1
  126. package/src/segment-content-promise.ts +67 -0
  127. package/src/segment-loader-promise.ts +122 -0
  128. package/src/segment-system.tsx +109 -23
  129. package/src/server/context.ts +166 -17
  130. package/src/server/handle-store.ts +19 -0
  131. package/src/server/loader-registry.ts +9 -8
  132. package/src/server/request-context.ts +194 -60
  133. package/src/ssr/index.tsx +4 -0
  134. package/src/static-handler.ts +18 -6
  135. package/src/types/cache-types.ts +4 -4
  136. package/src/types/handler-context.ts +137 -65
  137. package/src/types/loader-types.ts +41 -15
  138. package/src/types/request-scope.ts +126 -0
  139. package/src/types/route-entry.ts +19 -1
  140. package/src/types/segments.ts +2 -0
  141. package/src/urls/include-helper.ts +24 -14
  142. package/src/urls/path-helper-types.ts +39 -6
  143. package/src/urls/path-helper.ts +48 -13
  144. package/src/urls/pattern-types.ts +12 -0
  145. package/src/urls/response-types.ts +18 -16
  146. package/src/use-loader.tsx +77 -5
  147. package/src/vite/debug.ts +86 -0
  148. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  149. package/src/vite/discovery/discover-routers.ts +5 -1
  150. package/src/vite/discovery/prerender-collection.ts +128 -74
  151. package/src/vite/discovery/state.ts +13 -6
  152. package/src/vite/index.ts +4 -0
  153. package/src/vite/plugin-types.ts +51 -79
  154. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  155. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  156. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  157. package/src/vite/plugins/expose-action-id.ts +1 -3
  158. package/src/vite/plugins/expose-id-utils.ts +12 -0
  159. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  160. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  161. package/src/vite/plugins/performance-tracks.ts +86 -0
  162. package/src/vite/plugins/refresh-cmd.ts +88 -26
  163. package/src/vite/plugins/version-plugin.ts +13 -1
  164. package/src/vite/rango.ts +204 -217
  165. package/src/vite/router-discovery.ts +335 -64
  166. package/src/vite/utils/banner.ts +4 -4
  167. package/src/vite/utils/package-resolution.ts +41 -1
  168. package/src/vite/utils/prerender-utils.ts +37 -5
  169. package/src/vite/utils/shared-utils.ts +3 -2
  170. package/dist/__internal.d.ts +0 -83
  171. package/dist/__internal.d.ts.map +0 -1
  172. package/dist/__internal.js +0 -19
  173. package/dist/__internal.js.map +0 -1
  174. package/dist/__mocks__/version.d.ts +0 -7
  175. package/dist/__mocks__/version.d.ts.map +0 -1
  176. package/dist/__mocks__/version.js +0 -7
  177. package/dist/__mocks__/version.js.map +0 -1
  178. package/dist/__tests__/client-href.test.d.ts +0 -2
  179. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  180. package/dist/__tests__/client-href.test.js +0 -74
  181. package/dist/__tests__/client-href.test.js.map +0 -1
  182. package/dist/__tests__/component-utils.test.d.ts +0 -2
  183. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  184. package/dist/__tests__/component-utils.test.js +0 -51
  185. package/dist/__tests__/component-utils.test.js.map +0 -1
  186. package/dist/__tests__/event-controller.test.d.ts +0 -2
  187. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  188. package/dist/__tests__/event-controller.test.js +0 -538
  189. package/dist/__tests__/event-controller.test.js.map +0 -1
  190. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  191. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  192. package/dist/__tests__/helpers/route-tree.js +0 -374
  193. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  194. package/dist/__tests__/match-result.test.d.ts +0 -2
  195. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  196. package/dist/__tests__/match-result.test.js +0 -154
  197. package/dist/__tests__/match-result.test.js.map +0 -1
  198. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  199. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  200. package/dist/__tests__/navigation-store.test.js +0 -440
  201. package/dist/__tests__/navigation-store.test.js.map +0 -1
  202. package/dist/__tests__/partial-update.test.d.ts +0 -2
  203. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  204. package/dist/__tests__/partial-update.test.js +0 -1009
  205. package/dist/__tests__/partial-update.test.js.map +0 -1
  206. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  207. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  208. package/dist/__tests__/reverse-types.test.js +0 -656
  209. package/dist/__tests__/reverse-types.test.js.map +0 -1
  210. package/dist/__tests__/route-definition.test.d.ts +0 -2
  211. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  212. package/dist/__tests__/route-definition.test.js +0 -55
  213. package/dist/__tests__/route-definition.test.js.map +0 -1
  214. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  215. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  216. package/dist/__tests__/router-helpers.test.js +0 -377
  217. package/dist/__tests__/router-helpers.test.js.map +0 -1
  218. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  219. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  220. package/dist/__tests__/router-integration-2.test.js +0 -426
  221. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  222. package/dist/__tests__/router-integration.test.d.ts +0 -2
  223. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  224. package/dist/__tests__/router-integration.test.js +0 -1051
  225. package/dist/__tests__/router-integration.test.js.map +0 -1
  226. package/dist/__tests__/search-params.test.d.ts +0 -5
  227. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  228. package/dist/__tests__/search-params.test.js +0 -306
  229. package/dist/__tests__/search-params.test.js.map +0 -1
  230. package/dist/__tests__/segment-system.test.d.ts +0 -2
  231. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  232. package/dist/__tests__/segment-system.test.js +0 -627
  233. package/dist/__tests__/segment-system.test.js.map +0 -1
  234. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  235. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  236. package/dist/__tests__/static-handler-types.test.js +0 -63
  237. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  238. package/dist/__tests__/urls.test.d.ts +0 -2
  239. package/dist/__tests__/urls.test.d.ts.map +0 -1
  240. package/dist/__tests__/urls.test.js +0 -421
  241. package/dist/__tests__/urls.test.js.map +0 -1
  242. package/dist/__tests__/use-mount.test.d.ts +0 -2
  243. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  244. package/dist/__tests__/use-mount.test.js +0 -35
  245. package/dist/__tests__/use-mount.test.js.map +0 -1
  246. package/dist/bin/rango.d.ts +0 -2
  247. package/dist/bin/rango.d.ts.map +0 -1
  248. package/dist/bin/rango.js.map +0 -1
  249. package/dist/browser/event-controller.d.ts +0 -191
  250. package/dist/browser/event-controller.d.ts.map +0 -1
  251. package/dist/browser/event-controller.js +0 -559
  252. package/dist/browser/event-controller.js.map +0 -1
  253. package/dist/browser/index.d.ts +0 -2
  254. package/dist/browser/index.d.ts.map +0 -1
  255. package/dist/browser/index.js +0 -14
  256. package/dist/browser/index.js.map +0 -1
  257. package/dist/browser/link-interceptor.d.ts +0 -38
  258. package/dist/browser/link-interceptor.d.ts.map +0 -1
  259. package/dist/browser/link-interceptor.js +0 -99
  260. package/dist/browser/link-interceptor.js.map +0 -1
  261. package/dist/browser/logging.d.ts +0 -10
  262. package/dist/browser/logging.d.ts.map +0 -1
  263. package/dist/browser/logging.js +0 -29
  264. package/dist/browser/logging.js.map +0 -1
  265. package/dist/browser/lru-cache.d.ts +0 -17
  266. package/dist/browser/lru-cache.d.ts.map +0 -1
  267. package/dist/browser/lru-cache.js +0 -50
  268. package/dist/browser/lru-cache.js.map +0 -1
  269. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  270. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  271. package/dist/browser/merge-segment-loaders.js +0 -102
  272. package/dist/browser/merge-segment-loaders.js.map +0 -1
  273. package/dist/browser/navigation-bridge.d.ts +0 -102
  274. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  275. package/dist/browser/navigation-bridge.js +0 -708
  276. package/dist/browser/navigation-bridge.js.map +0 -1
  277. package/dist/browser/navigation-client.d.ts +0 -25
  278. package/dist/browser/navigation-client.d.ts.map +0 -1
  279. package/dist/browser/navigation-client.js +0 -157
  280. package/dist/browser/navigation-client.js.map +0 -1
  281. package/dist/browser/navigation-store.d.ts +0 -101
  282. package/dist/browser/navigation-store.d.ts.map +0 -1
  283. package/dist/browser/navigation-store.js +0 -625
  284. package/dist/browser/navigation-store.js.map +0 -1
  285. package/dist/browser/partial-update.d.ts +0 -75
  286. package/dist/browser/partial-update.d.ts.map +0 -1
  287. package/dist/browser/partial-update.js +0 -426
  288. package/dist/browser/partial-update.js.map +0 -1
  289. package/dist/browser/react/Link.d.ts +0 -86
  290. package/dist/browser/react/Link.d.ts.map +0 -1
  291. package/dist/browser/react/Link.js +0 -128
  292. package/dist/browser/react/Link.js.map +0 -1
  293. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  294. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  295. package/dist/browser/react/NavigationProvider.js +0 -216
  296. package/dist/browser/react/NavigationProvider.js.map +0 -1
  297. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  298. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  299. package/dist/browser/react/ScrollRestoration.js +0 -57
  300. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  301. package/dist/browser/react/context.d.ts +0 -46
  302. package/dist/browser/react/context.d.ts.map +0 -1
  303. package/dist/browser/react/context.js +0 -10
  304. package/dist/browser/react/context.js.map +0 -1
  305. package/dist/browser/react/index.d.ts +0 -11
  306. package/dist/browser/react/index.d.ts.map +0 -1
  307. package/dist/browser/react/index.js +0 -22
  308. package/dist/browser/react/index.js.map +0 -1
  309. package/dist/browser/react/location-state-shared.d.ts +0 -63
  310. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  311. package/dist/browser/react/location-state-shared.js +0 -81
  312. package/dist/browser/react/location-state-shared.js.map +0 -1
  313. package/dist/browser/react/location-state.d.ts +0 -23
  314. package/dist/browser/react/location-state.d.ts.map +0 -1
  315. package/dist/browser/react/location-state.js +0 -29
  316. package/dist/browser/react/location-state.js.map +0 -1
  317. package/dist/browser/react/mount-context.d.ts +0 -24
  318. package/dist/browser/react/mount-context.d.ts.map +0 -1
  319. package/dist/browser/react/mount-context.js +0 -24
  320. package/dist/browser/react/mount-context.js.map +0 -1
  321. package/dist/browser/react/use-action.d.ts +0 -64
  322. package/dist/browser/react/use-action.d.ts.map +0 -1
  323. package/dist/browser/react/use-action.js +0 -134
  324. package/dist/browser/react/use-action.js.map +0 -1
  325. package/dist/browser/react/use-client-cache.d.ts +0 -41
  326. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  327. package/dist/browser/react/use-client-cache.js +0 -39
  328. package/dist/browser/react/use-client-cache.js.map +0 -1
  329. package/dist/browser/react/use-handle.d.ts +0 -31
  330. package/dist/browser/react/use-handle.d.ts.map +0 -1
  331. package/dist/browser/react/use-handle.js +0 -144
  332. package/dist/browser/react/use-handle.js.map +0 -1
  333. package/dist/browser/react/use-href.d.ts +0 -33
  334. package/dist/browser/react/use-href.d.ts.map +0 -1
  335. package/dist/browser/react/use-href.js +0 -39
  336. package/dist/browser/react/use-href.js.map +0 -1
  337. package/dist/browser/react/use-link-status.d.ts +0 -37
  338. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  339. package/dist/browser/react/use-link-status.js +0 -99
  340. package/dist/browser/react/use-link-status.js.map +0 -1
  341. package/dist/browser/react/use-mount.d.ts +0 -25
  342. package/dist/browser/react/use-mount.d.ts.map +0 -1
  343. package/dist/browser/react/use-mount.js +0 -30
  344. package/dist/browser/react/use-mount.js.map +0 -1
  345. package/dist/browser/react/use-navigation.d.ts +0 -27
  346. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  347. package/dist/browser/react/use-navigation.js +0 -87
  348. package/dist/browser/react/use-navigation.js.map +0 -1
  349. package/dist/browser/react/use-segments.d.ts +0 -38
  350. package/dist/browser/react/use-segments.d.ts.map +0 -1
  351. package/dist/browser/react/use-segments.js +0 -130
  352. package/dist/browser/react/use-segments.js.map +0 -1
  353. package/dist/browser/request-controller.d.ts +0 -26
  354. package/dist/browser/request-controller.d.ts.map +0 -1
  355. package/dist/browser/request-controller.js +0 -147
  356. package/dist/browser/request-controller.js.map +0 -1
  357. package/dist/browser/rsc-router.d.ts +0 -129
  358. package/dist/browser/rsc-router.d.ts.map +0 -1
  359. package/dist/browser/rsc-router.js +0 -195
  360. package/dist/browser/rsc-router.js.map +0 -1
  361. package/dist/browser/scroll-restoration.d.ts +0 -93
  362. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  363. package/dist/browser/scroll-restoration.js +0 -321
  364. package/dist/browser/scroll-restoration.js.map +0 -1
  365. package/dist/browser/segment-structure-assert.d.ts +0 -17
  366. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  367. package/dist/browser/segment-structure-assert.js +0 -59
  368. package/dist/browser/segment-structure-assert.js.map +0 -1
  369. package/dist/browser/server-action-bridge.d.ts +0 -26
  370. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  371. package/dist/browser/server-action-bridge.js +0 -668
  372. package/dist/browser/server-action-bridge.js.map +0 -1
  373. package/dist/browser/shallow.d.ts +0 -12
  374. package/dist/browser/shallow.d.ts.map +0 -1
  375. package/dist/browser/shallow.js +0 -34
  376. package/dist/browser/shallow.js.map +0 -1
  377. package/dist/browser/types.d.ts +0 -369
  378. package/dist/browser/types.d.ts.map +0 -1
  379. package/dist/browser/types.js +0 -2
  380. package/dist/browser/types.js.map +0 -1
  381. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  382. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  383. package/dist/build/__tests__/generate-cli.test.js +0 -237
  384. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  385. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  386. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  387. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  388. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  389. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  390. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  391. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  392. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  393. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  394. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  395. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  396. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  397. package/dist/build/generate-manifest.d.ts +0 -81
  398. package/dist/build/generate-manifest.d.ts.map +0 -1
  399. package/dist/build/generate-manifest.js +0 -276
  400. package/dist/build/generate-manifest.js.map +0 -1
  401. package/dist/build/generate-route-types.d.ts +0 -115
  402. package/dist/build/generate-route-types.d.ts.map +0 -1
  403. package/dist/build/generate-route-types.js +0 -740
  404. package/dist/build/generate-route-types.js.map +0 -1
  405. package/dist/build/index.d.ts +0 -21
  406. package/dist/build/index.d.ts.map +0 -1
  407. package/dist/build/index.js +0 -21
  408. package/dist/build/index.js.map +0 -1
  409. package/dist/build/route-trie.d.ts +0 -71
  410. package/dist/build/route-trie.d.ts.map +0 -1
  411. package/dist/build/route-trie.js +0 -175
  412. package/dist/build/route-trie.js.map +0 -1
  413. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  414. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  415. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  416. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  417. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  418. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  419. package/dist/cache/__tests__/document-cache.test.js +0 -345
  420. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  421. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  422. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  423. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  424. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  425. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  426. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  427. package/dist/cache/__tests__/memory-store.test.js +0 -367
  428. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  429. package/dist/cache/cache-scope.d.ts +0 -102
  430. package/dist/cache/cache-scope.d.ts.map +0 -1
  431. package/dist/cache/cache-scope.js +0 -440
  432. package/dist/cache/cache-scope.js.map +0 -1
  433. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  434. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  435. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  436. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  437. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  438. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  439. package/dist/cache/cf/cf-cache-store.js +0 -242
  440. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  441. package/dist/cache/cf/index.d.ts +0 -14
  442. package/dist/cache/cf/index.d.ts.map +0 -1
  443. package/dist/cache/cf/index.js +0 -17
  444. package/dist/cache/cf/index.js.map +0 -1
  445. package/dist/cache/document-cache.d.ts +0 -64
  446. package/dist/cache/document-cache.d.ts.map +0 -1
  447. package/dist/cache/document-cache.js +0 -228
  448. package/dist/cache/document-cache.js.map +0 -1
  449. package/dist/cache/index.d.ts +0 -19
  450. package/dist/cache/index.d.ts.map +0 -1
  451. package/dist/cache/index.js +0 -21
  452. package/dist/cache/index.js.map +0 -1
  453. package/dist/cache/memory-segment-store.d.ts +0 -110
  454. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  455. package/dist/cache/memory-segment-store.js +0 -117
  456. package/dist/cache/memory-segment-store.js.map +0 -1
  457. package/dist/cache/memory-store.d.ts +0 -41
  458. package/dist/cache/memory-store.d.ts.map +0 -1
  459. package/dist/cache/memory-store.js +0 -191
  460. package/dist/cache/memory-store.js.map +0 -1
  461. package/dist/cache/types.d.ts +0 -317
  462. package/dist/cache/types.d.ts.map +0 -1
  463. package/dist/cache/types.js +0 -12
  464. package/dist/cache/types.js.map +0 -1
  465. package/dist/client.d.ts +0 -248
  466. package/dist/client.d.ts.map +0 -1
  467. package/dist/client.js +0 -367
  468. package/dist/client.js.map +0 -1
  469. package/dist/client.rsc.d.ts +0 -26
  470. package/dist/client.rsc.d.ts.map +0 -1
  471. package/dist/client.rsc.js +0 -46
  472. package/dist/client.rsc.js.map +0 -1
  473. package/dist/component-utils.d.ts +0 -36
  474. package/dist/component-utils.d.ts.map +0 -1
  475. package/dist/component-utils.js +0 -61
  476. package/dist/component-utils.js.map +0 -1
  477. package/dist/components/DefaultDocument.d.ts +0 -13
  478. package/dist/components/DefaultDocument.d.ts.map +0 -1
  479. package/dist/components/DefaultDocument.js +0 -15
  480. package/dist/components/DefaultDocument.js.map +0 -1
  481. package/dist/debug.d.ts +0 -58
  482. package/dist/debug.d.ts.map +0 -1
  483. package/dist/debug.js +0 -157
  484. package/dist/debug.js.map +0 -1
  485. package/dist/default-error-boundary.d.ts +0 -11
  486. package/dist/default-error-boundary.d.ts.map +0 -1
  487. package/dist/default-error-boundary.js +0 -45
  488. package/dist/default-error-boundary.js.map +0 -1
  489. package/dist/deps/browser.d.ts +0 -2
  490. package/dist/deps/browser.d.ts.map +0 -1
  491. package/dist/deps/browser.js +0 -3
  492. package/dist/deps/browser.js.map +0 -1
  493. package/dist/deps/html-stream-client.d.ts +0 -2
  494. package/dist/deps/html-stream-client.d.ts.map +0 -1
  495. package/dist/deps/html-stream-client.js +0 -3
  496. package/dist/deps/html-stream-client.js.map +0 -1
  497. package/dist/deps/html-stream-server.d.ts +0 -2
  498. package/dist/deps/html-stream-server.d.ts.map +0 -1
  499. package/dist/deps/html-stream-server.js +0 -3
  500. package/dist/deps/html-stream-server.js.map +0 -1
  501. package/dist/deps/rsc.d.ts +0 -2
  502. package/dist/deps/rsc.d.ts.map +0 -1
  503. package/dist/deps/rsc.js +0 -4
  504. package/dist/deps/rsc.js.map +0 -1
  505. package/dist/deps/ssr.d.ts +0 -2
  506. package/dist/deps/ssr.d.ts.map +0 -1
  507. package/dist/deps/ssr.js +0 -3
  508. package/dist/deps/ssr.js.map +0 -1
  509. package/dist/errors.d.ts +0 -174
  510. package/dist/errors.d.ts.map +0 -1
  511. package/dist/errors.js +0 -241
  512. package/dist/errors.js.map +0 -1
  513. package/dist/handle.d.ts +0 -78
  514. package/dist/handle.d.ts.map +0 -1
  515. package/dist/handle.js +0 -82
  516. package/dist/handle.js.map +0 -1
  517. package/dist/handles/MetaTags.d.ts +0 -14
  518. package/dist/handles/MetaTags.d.ts.map +0 -1
  519. package/dist/handles/MetaTags.js +0 -136
  520. package/dist/handles/MetaTags.js.map +0 -1
  521. package/dist/handles/index.d.ts +0 -6
  522. package/dist/handles/index.d.ts.map +0 -1
  523. package/dist/handles/index.js +0 -6
  524. package/dist/handles/index.js.map +0 -1
  525. package/dist/handles/meta.d.ts +0 -39
  526. package/dist/handles/meta.d.ts.map +0 -1
  527. package/dist/handles/meta.js +0 -202
  528. package/dist/handles/meta.js.map +0 -1
  529. package/dist/host/__tests__/errors.test.d.ts +0 -2
  530. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  531. package/dist/host/__tests__/errors.test.js +0 -76
  532. package/dist/host/__tests__/errors.test.js.map +0 -1
  533. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  534. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  535. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  536. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  537. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  538. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  539. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  540. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  541. package/dist/host/__tests__/router.test.d.ts +0 -2
  542. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  543. package/dist/host/__tests__/router.test.js +0 -241
  544. package/dist/host/__tests__/router.test.js.map +0 -1
  545. package/dist/host/__tests__/testing.test.d.ts +0 -2
  546. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  547. package/dist/host/__tests__/testing.test.js +0 -64
  548. package/dist/host/__tests__/testing.test.js.map +0 -1
  549. package/dist/host/__tests__/utils.test.d.ts +0 -2
  550. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  551. package/dist/host/__tests__/utils.test.js +0 -29
  552. package/dist/host/__tests__/utils.test.js.map +0 -1
  553. package/dist/host/cookie-handler.d.ts +0 -34
  554. package/dist/host/cookie-handler.d.ts.map +0 -1
  555. package/dist/host/cookie-handler.js +0 -124
  556. package/dist/host/cookie-handler.js.map +0 -1
  557. package/dist/host/errors.d.ts +0 -56
  558. package/dist/host/errors.d.ts.map +0 -1
  559. package/dist/host/errors.js +0 -79
  560. package/dist/host/errors.js.map +0 -1
  561. package/dist/host/index.d.ts +0 -29
  562. package/dist/host/index.d.ts.map +0 -1
  563. package/dist/host/index.js +0 -32
  564. package/dist/host/index.js.map +0 -1
  565. package/dist/host/pattern-matcher.d.ts +0 -36
  566. package/dist/host/pattern-matcher.d.ts.map +0 -1
  567. package/dist/host/pattern-matcher.js +0 -172
  568. package/dist/host/pattern-matcher.js.map +0 -1
  569. package/dist/host/router.d.ts +0 -26
  570. package/dist/host/router.d.ts.map +0 -1
  571. package/dist/host/router.js +0 -218
  572. package/dist/host/router.js.map +0 -1
  573. package/dist/host/testing.d.ts +0 -36
  574. package/dist/host/testing.d.ts.map +0 -1
  575. package/dist/host/testing.js +0 -55
  576. package/dist/host/testing.js.map +0 -1
  577. package/dist/host/types.d.ts +0 -115
  578. package/dist/host/types.d.ts.map +0 -1
  579. package/dist/host/types.js +0 -7
  580. package/dist/host/types.js.map +0 -1
  581. package/dist/host/utils.d.ts +0 -21
  582. package/dist/host/utils.d.ts.map +0 -1
  583. package/dist/host/utils.js +0 -23
  584. package/dist/host/utils.js.map +0 -1
  585. package/dist/href-client.d.ts +0 -131
  586. package/dist/href-client.d.ts.map +0 -1
  587. package/dist/href-client.js +0 -64
  588. package/dist/href-client.js.map +0 -1
  589. package/dist/href-context.d.ts +0 -29
  590. package/dist/href-context.d.ts.map +0 -1
  591. package/dist/href-context.js +0 -21
  592. package/dist/href-context.js.map +0 -1
  593. package/dist/index.d.ts +0 -73
  594. package/dist/index.d.ts.map +0 -1
  595. package/dist/index.js +0 -91
  596. package/dist/index.js.map +0 -1
  597. package/dist/index.rsc.d.ts +0 -32
  598. package/dist/index.rsc.d.ts.map +0 -1
  599. package/dist/index.rsc.js +0 -40
  600. package/dist/index.rsc.js.map +0 -1
  601. package/dist/internal-debug.d.ts +0 -2
  602. package/dist/internal-debug.d.ts.map +0 -1
  603. package/dist/internal-debug.js +0 -5
  604. package/dist/internal-debug.js.map +0 -1
  605. package/dist/loader.d.ts +0 -14
  606. package/dist/loader.d.ts.map +0 -1
  607. package/dist/loader.js +0 -20
  608. package/dist/loader.js.map +0 -1
  609. package/dist/loader.rsc.d.ts +0 -19
  610. package/dist/loader.rsc.d.ts.map +0 -1
  611. package/dist/loader.rsc.js +0 -99
  612. package/dist/loader.rsc.js.map +0 -1
  613. package/dist/network-error-thrower.d.ts +0 -17
  614. package/dist/network-error-thrower.d.ts.map +0 -1
  615. package/dist/network-error-thrower.js +0 -14
  616. package/dist/network-error-thrower.js.map +0 -1
  617. package/dist/outlet-context.d.ts +0 -13
  618. package/dist/outlet-context.d.ts.map +0 -1
  619. package/dist/outlet-context.js +0 -3
  620. package/dist/outlet-context.js.map +0 -1
  621. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  622. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  623. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  624. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  625. package/dist/prerender/param-hash.d.ts +0 -16
  626. package/dist/prerender/param-hash.d.ts.map +0 -1
  627. package/dist/prerender/param-hash.js +0 -36
  628. package/dist/prerender/param-hash.js.map +0 -1
  629. package/dist/prerender/store.d.ts +0 -38
  630. package/dist/prerender/store.d.ts.map +0 -1
  631. package/dist/prerender/store.js +0 -61
  632. package/dist/prerender/store.js.map +0 -1
  633. package/dist/prerender.d.ts +0 -66
  634. package/dist/prerender.d.ts.map +0 -1
  635. package/dist/prerender.js +0 -57
  636. package/dist/prerender.js.map +0 -1
  637. package/dist/reverse.d.ts +0 -196
  638. package/dist/reverse.d.ts.map +0 -1
  639. package/dist/reverse.js +0 -78
  640. package/dist/reverse.js.map +0 -1
  641. package/dist/root-error-boundary.d.ts +0 -33
  642. package/dist/root-error-boundary.d.ts.map +0 -1
  643. package/dist/root-error-boundary.js +0 -165
  644. package/dist/root-error-boundary.js.map +0 -1
  645. package/dist/route-content-wrapper.d.ts +0 -46
  646. package/dist/route-content-wrapper.d.ts.map +0 -1
  647. package/dist/route-content-wrapper.js +0 -77
  648. package/dist/route-content-wrapper.js.map +0 -1
  649. package/dist/route-definition.d.ts +0 -421
  650. package/dist/route-definition.d.ts.map +0 -1
  651. package/dist/route-definition.js +0 -868
  652. package/dist/route-definition.js.map +0 -1
  653. package/dist/route-map-builder.d.ts +0 -155
  654. package/dist/route-map-builder.d.ts.map +0 -1
  655. package/dist/route-map-builder.js +0 -237
  656. package/dist/route-map-builder.js.map +0 -1
  657. package/dist/route-types.d.ts +0 -165
  658. package/dist/route-types.d.ts.map +0 -1
  659. package/dist/route-types.js +0 -7
  660. package/dist/route-types.js.map +0 -1
  661. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  662. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  663. package/dist/router/__tests__/handler-context.test.js +0 -65
  664. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  665. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  666. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  667. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  668. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  669. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  670. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  671. package/dist/router/__tests__/match-context.test.js +0 -92
  672. package/dist/router/__tests__/match-context.test.js.map +0 -1
  673. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  674. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  675. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  676. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  677. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  678. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  679. package/dist/router/__tests__/match-result.test.js +0 -457
  680. package/dist/router/__tests__/match-result.test.js.map +0 -1
  681. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  682. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  683. package/dist/router/__tests__/on-error.test.js +0 -678
  684. package/dist/router/__tests__/on-error.test.js.map +0 -1
  685. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  686. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  687. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  688. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  689. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  690. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  691. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  692. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  693. package/dist/router/error-handling.d.ts +0 -77
  694. package/dist/router/error-handling.d.ts.map +0 -1
  695. package/dist/router/error-handling.js +0 -202
  696. package/dist/router/error-handling.js.map +0 -1
  697. package/dist/router/handler-context.d.ts +0 -20
  698. package/dist/router/handler-context.d.ts.map +0 -1
  699. package/dist/router/handler-context.js +0 -198
  700. package/dist/router/handler-context.js.map +0 -1
  701. package/dist/router/intercept-resolution.d.ts +0 -66
  702. package/dist/router/intercept-resolution.d.ts.map +0 -1
  703. package/dist/router/intercept-resolution.js +0 -246
  704. package/dist/router/intercept-resolution.js.map +0 -1
  705. package/dist/router/loader-resolution.d.ts +0 -64
  706. package/dist/router/loader-resolution.d.ts.map +0 -1
  707. package/dist/router/loader-resolution.js +0 -284
  708. package/dist/router/loader-resolution.js.map +0 -1
  709. package/dist/router/logging.d.ts +0 -15
  710. package/dist/router/logging.d.ts.map +0 -1
  711. package/dist/router/logging.js +0 -99
  712. package/dist/router/logging.js.map +0 -1
  713. package/dist/router/manifest.d.ts +0 -22
  714. package/dist/router/manifest.d.ts.map +0 -1
  715. package/dist/router/manifest.js +0 -181
  716. package/dist/router/manifest.js.map +0 -1
  717. package/dist/router/match-api.d.ts +0 -35
  718. package/dist/router/match-api.d.ts.map +0 -1
  719. package/dist/router/match-api.js +0 -406
  720. package/dist/router/match-api.js.map +0 -1
  721. package/dist/router/match-context.d.ts +0 -206
  722. package/dist/router/match-context.d.ts.map +0 -1
  723. package/dist/router/match-context.js +0 -17
  724. package/dist/router/match-context.js.map +0 -1
  725. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  726. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  727. package/dist/router/match-middleware/background-revalidation.js +0 -75
  728. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  729. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  730. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  731. package/dist/router/match-middleware/cache-lookup.js +0 -257
  732. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  733. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  734. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  735. package/dist/router/match-middleware/cache-store.js +0 -108
  736. package/dist/router/match-middleware/cache-store.js.map +0 -1
  737. package/dist/router/match-middleware/index.d.ts +0 -81
  738. package/dist/router/match-middleware/index.d.ts.map +0 -1
  739. package/dist/router/match-middleware/index.js +0 -80
  740. package/dist/router/match-middleware/index.js.map +0 -1
  741. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  742. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  743. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  744. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  745. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  746. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  747. package/dist/router/match-middleware/segment-resolution.js +0 -53
  748. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  749. package/dist/router/match-pipelines.d.ts +0 -147
  750. package/dist/router/match-pipelines.d.ts.map +0 -1
  751. package/dist/router/match-pipelines.js +0 -82
  752. package/dist/router/match-pipelines.js.map +0 -1
  753. package/dist/router/match-result.d.ts +0 -126
  754. package/dist/router/match-result.d.ts.map +0 -1
  755. package/dist/router/match-result.js +0 -93
  756. package/dist/router/match-result.js.map +0 -1
  757. package/dist/router/metrics.d.ts +0 -20
  758. package/dist/router/metrics.d.ts.map +0 -1
  759. package/dist/router/metrics.js +0 -47
  760. package/dist/router/metrics.js.map +0 -1
  761. package/dist/router/middleware.d.ts +0 -249
  762. package/dist/router/middleware.d.ts.map +0 -1
  763. package/dist/router/middleware.js +0 -434
  764. package/dist/router/middleware.js.map +0 -1
  765. package/dist/router/middleware.test.d.ts +0 -2
  766. package/dist/router/middleware.test.d.ts.map +0 -1
  767. package/dist/router/middleware.test.js +0 -816
  768. package/dist/router/middleware.test.js.map +0 -1
  769. package/dist/router/pattern-matching.d.ts +0 -149
  770. package/dist/router/pattern-matching.d.ts.map +0 -1
  771. package/dist/router/pattern-matching.js +0 -349
  772. package/dist/router/pattern-matching.js.map +0 -1
  773. package/dist/router/revalidation.d.ts +0 -44
  774. package/dist/router/revalidation.d.ts.map +0 -1
  775. package/dist/router/revalidation.js +0 -147
  776. package/dist/router/revalidation.js.map +0 -1
  777. package/dist/router/router-context.d.ts +0 -135
  778. package/dist/router/router-context.d.ts.map +0 -1
  779. package/dist/router/router-context.js +0 -36
  780. package/dist/router/router-context.js.map +0 -1
  781. package/dist/router/segment-resolution.d.ts +0 -127
  782. package/dist/router/segment-resolution.d.ts.map +0 -1
  783. package/dist/router/segment-resolution.js +0 -919
  784. package/dist/router/segment-resolution.js.map +0 -1
  785. package/dist/router/trie-matching.d.ts +0 -40
  786. package/dist/router/trie-matching.d.ts.map +0 -1
  787. package/dist/router/trie-matching.js +0 -127
  788. package/dist/router/trie-matching.js.map +0 -1
  789. package/dist/router/types.d.ts +0 -136
  790. package/dist/router/types.d.ts.map +0 -1
  791. package/dist/router/types.js +0 -7
  792. package/dist/router/types.js.map +0 -1
  793. package/dist/router.d.ts +0 -753
  794. package/dist/router.d.ts.map +0 -1
  795. package/dist/router.gen.d.ts +0 -6
  796. package/dist/router.gen.d.ts.map +0 -1
  797. package/dist/router.gen.js +0 -6
  798. package/dist/router.gen.js.map +0 -1
  799. package/dist/router.js +0 -1304
  800. package/dist/router.js.map +0 -1
  801. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  802. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  803. package/dist/rsc/__tests__/helpers.test.js +0 -140
  804. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  805. package/dist/rsc/handler.d.ts +0 -45
  806. package/dist/rsc/handler.d.ts.map +0 -1
  807. package/dist/rsc/handler.js +0 -1172
  808. package/dist/rsc/handler.js.map +0 -1
  809. package/dist/rsc/helpers.d.ts +0 -16
  810. package/dist/rsc/helpers.d.ts.map +0 -1
  811. package/dist/rsc/helpers.js +0 -55
  812. package/dist/rsc/helpers.js.map +0 -1
  813. package/dist/rsc/index.d.ts +0 -22
  814. package/dist/rsc/index.d.ts.map +0 -1
  815. package/dist/rsc/index.js +0 -23
  816. package/dist/rsc/index.js.map +0 -1
  817. package/dist/rsc/nonce.d.ts +0 -9
  818. package/dist/rsc/nonce.d.ts.map +0 -1
  819. package/dist/rsc/nonce.js +0 -18
  820. package/dist/rsc/nonce.js.map +0 -1
  821. package/dist/rsc/types.d.ts +0 -206
  822. package/dist/rsc/types.d.ts.map +0 -1
  823. package/dist/rsc/types.js +0 -8
  824. package/dist/rsc/types.js.map +0 -1
  825. package/dist/search-params.d.ts +0 -103
  826. package/dist/search-params.d.ts.map +0 -1
  827. package/dist/search-params.js +0 -74
  828. package/dist/search-params.js.map +0 -1
  829. package/dist/segment-system.d.ts +0 -75
  830. package/dist/segment-system.d.ts.map +0 -1
  831. package/dist/segment-system.js +0 -336
  832. package/dist/segment-system.js.map +0 -1
  833. package/dist/server/context.d.ts +0 -245
  834. package/dist/server/context.d.ts.map +0 -1
  835. package/dist/server/context.js +0 -197
  836. package/dist/server/context.js.map +0 -1
  837. package/dist/server/fetchable-loader-store.d.ts +0 -18
  838. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  839. package/dist/server/fetchable-loader-store.js +0 -18
  840. package/dist/server/fetchable-loader-store.js.map +0 -1
  841. package/dist/server/handle-store.d.ts +0 -85
  842. package/dist/server/handle-store.d.ts.map +0 -1
  843. package/dist/server/handle-store.js +0 -142
  844. package/dist/server/handle-store.js.map +0 -1
  845. package/dist/server/loader-registry.d.ts +0 -55
  846. package/dist/server/loader-registry.d.ts.map +0 -1
  847. package/dist/server/loader-registry.js +0 -132
  848. package/dist/server/loader-registry.js.map +0 -1
  849. package/dist/server/request-context.d.ts +0 -226
  850. package/dist/server/request-context.d.ts.map +0 -1
  851. package/dist/server/request-context.js +0 -290
  852. package/dist/server/request-context.js.map +0 -1
  853. package/dist/server/root-layout.d.ts +0 -4
  854. package/dist/server/root-layout.d.ts.map +0 -1
  855. package/dist/server/root-layout.js +0 -5
  856. package/dist/server/root-layout.js.map +0 -1
  857. package/dist/server.d.ts +0 -15
  858. package/dist/server.d.ts.map +0 -1
  859. package/dist/server.js +0 -20
  860. package/dist/server.js.map +0 -1
  861. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  862. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  863. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  864. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  865. package/dist/ssr/index.d.ts +0 -98
  866. package/dist/ssr/index.d.ts.map +0 -1
  867. package/dist/ssr/index.js +0 -158
  868. package/dist/ssr/index.js.map +0 -1
  869. package/dist/static-handler.d.ts +0 -50
  870. package/dist/static-handler.d.ts.map +0 -1
  871. package/dist/static-handler.gen.d.ts +0 -5
  872. package/dist/static-handler.gen.d.ts.map +0 -1
  873. package/dist/static-handler.gen.js +0 -5
  874. package/dist/static-handler.gen.js.map +0 -1
  875. package/dist/static-handler.js +0 -29
  876. package/dist/static-handler.js.map +0 -1
  877. package/dist/theme/ThemeProvider.d.ts +0 -20
  878. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  879. package/dist/theme/ThemeProvider.js +0 -240
  880. package/dist/theme/ThemeProvider.js.map +0 -1
  881. package/dist/theme/ThemeScript.d.ts +0 -48
  882. package/dist/theme/ThemeScript.d.ts.map +0 -1
  883. package/dist/theme/ThemeScript.js +0 -13
  884. package/dist/theme/ThemeScript.js.map +0 -1
  885. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  886. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  887. package/dist/theme/__tests__/theme.test.js +0 -103
  888. package/dist/theme/__tests__/theme.test.js.map +0 -1
  889. package/dist/theme/constants.d.ts +0 -29
  890. package/dist/theme/constants.d.ts.map +0 -1
  891. package/dist/theme/constants.js +0 -48
  892. package/dist/theme/constants.js.map +0 -1
  893. package/dist/theme/index.d.ts +0 -31
  894. package/dist/theme/index.d.ts.map +0 -1
  895. package/dist/theme/index.js +0 -36
  896. package/dist/theme/index.js.map +0 -1
  897. package/dist/theme/theme-context.d.ts +0 -40
  898. package/dist/theme/theme-context.d.ts.map +0 -1
  899. package/dist/theme/theme-context.js +0 -60
  900. package/dist/theme/theme-context.js.map +0 -1
  901. package/dist/theme/theme-script.d.ts +0 -27
  902. package/dist/theme/theme-script.d.ts.map +0 -1
  903. package/dist/theme/theme-script.js +0 -147
  904. package/dist/theme/theme-script.js.map +0 -1
  905. package/dist/theme/types.d.ts +0 -163
  906. package/dist/theme/types.d.ts.map +0 -1
  907. package/dist/theme/types.js +0 -11
  908. package/dist/theme/types.js.map +0 -1
  909. package/dist/theme/use-theme.d.ts +0 -12
  910. package/dist/theme/use-theme.d.ts.map +0 -1
  911. package/dist/theme/use-theme.js +0 -40
  912. package/dist/theme/use-theme.js.map +0 -1
  913. package/dist/types.d.ts +0 -1479
  914. package/dist/types.d.ts.map +0 -1
  915. package/dist/types.js +0 -10
  916. package/dist/types.js.map +0 -1
  917. package/dist/urls.d.ts +0 -441
  918. package/dist/urls.d.ts.map +0 -1
  919. package/dist/urls.gen.d.ts +0 -8
  920. package/dist/urls.gen.d.ts.map +0 -1
  921. package/dist/urls.gen.js +0 -8
  922. package/dist/urls.gen.js.map +0 -1
  923. package/dist/urls.js +0 -443
  924. package/dist/urls.js.map +0 -1
  925. package/dist/use-loader.d.ts +0 -127
  926. package/dist/use-loader.d.ts.map +0 -1
  927. package/dist/use-loader.js +0 -237
  928. package/dist/use-loader.js.map +0 -1
  929. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  930. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  931. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  932. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  933. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  934. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  935. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  936. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  937. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  938. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  939. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  940. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  941. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  942. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  943. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  944. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  945. package/dist/vite/ast-handler-extract.d.ts +0 -49
  946. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  947. package/dist/vite/ast-handler-extract.js +0 -249
  948. package/dist/vite/ast-handler-extract.js.map +0 -1
  949. package/dist/vite/expose-action-id.d.ts +0 -19
  950. package/dist/vite/expose-action-id.d.ts.map +0 -1
  951. package/dist/vite/expose-action-id.js +0 -250
  952. package/dist/vite/expose-action-id.js.map +0 -1
  953. package/dist/vite/expose-id-utils.d.ts +0 -69
  954. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  955. package/dist/vite/expose-id-utils.js +0 -289
  956. package/dist/vite/expose-id-utils.js.map +0 -1
  957. package/dist/vite/expose-internal-ids.d.ts +0 -22
  958. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  959. package/dist/vite/expose-internal-ids.js +0 -886
  960. package/dist/vite/expose-internal-ids.js.map +0 -1
  961. package/dist/vite/index.d.ts +0 -149
  962. package/dist/vite/index.d.ts.map +0 -1
  963. package/dist/vite/index.js.map +0 -1
  964. package/dist/vite/index.named-routes.gen.ts +0 -103
  965. package/dist/vite/package-resolution.d.ts +0 -43
  966. package/dist/vite/package-resolution.d.ts.map +0 -1
  967. package/dist/vite/package-resolution.js +0 -112
  968. package/dist/vite/package-resolution.js.map +0 -1
  969. package/dist/vite/virtual-entries.d.ts +0 -25
  970. package/dist/vite/virtual-entries.d.ts.map +0 -1
  971. package/dist/vite/virtual-entries.js +0 -110
  972. package/dist/vite/virtual-entries.js.map +0 -1
@@ -7,6 +7,7 @@
7
7
  import type { ReactNode } from "react";
8
8
  import { track } from "../server/context";
9
9
  import type { EntryData } from "../server/context";
10
+ import { contextGet } from "../context-var.js";
10
11
  import type {
11
12
  ResolvedSegment,
12
13
  HandlerContext,
@@ -19,10 +20,11 @@ import type {
19
20
  ErrorInfo,
20
21
  } from "../types";
21
22
  import type { LoaderRevalidationResult, ActionContext } from "./types";
22
- import { isHandle, type Handle } from "../handle.js";
23
- import type { HandleStore } from "../server/handle-store.js";
23
+ import { isHandle, collectHandleData, type Handle } from "../handle.js";
24
+ import { buildHandleSnapshot } from "../server/handle-store.js";
24
25
  import { getFetchableLoader } from "../server/fetchable-loader-store.js";
25
26
  import { _getRequestContext } from "../server/request-context.js";
27
+ import { isInsideLoaderScope } from "../server/context.js";
26
28
  import { debugLog } from "./logging.js";
27
29
 
28
30
  /**
@@ -241,6 +243,21 @@ function createLoaderExecutor<TEnv>(
241
243
  pendingLoaders.add(loader.$$id);
242
244
 
243
245
  const currentLoaderId = loader.$$id;
246
+ const variables = (ctx as InternalHandlerContext<any, TEnv>)._variables;
247
+
248
+ // Capture whether this loader is being started from a DSL loader scope
249
+ // (runInsideLoaderScope in fresh.ts). Handler-invoked loaders are NOT
250
+ // inside loader scope. This determines whether rendered() is allowed.
251
+ const isDslLoader = isInsideLoaderScope();
252
+
253
+ let renderedResolved = false;
254
+ let renderedPromise: Promise<void> | null = null;
255
+
256
+ // Loader functions are always fresh (never cached), so they get an
257
+ // unguarded get that bypasses non-cacheable read guards. This applies
258
+ // to ALL loaders — DSL and handler-called — because the loader
259
+ // function itself always re-executes. Also handles nested deps
260
+ // (loaderA → use(loaderB)) since all share this unguarded get.
244
261
  const loaderCtx: LoaderContext<Record<string, string | undefined>, TEnv> = {
245
262
  params: ctx.params,
246
263
  routeParams: (ctx.params ?? {}) as Record<string, string>,
@@ -249,17 +266,90 @@ function createLoaderExecutor<TEnv>(
249
266
  search: (ctx as any).search,
250
267
  pathname: ctx.pathname,
251
268
  url: ctx.url,
269
+ originalUrl: ctx.originalUrl,
252
270
  env: ctx.env,
253
- var: ctx.var,
254
- get: ctx.get,
255
- use: <TDep, TDepParams = any>(
256
- dep: LoaderDefinition<TDep, TDepParams>,
257
- ): Promise<TDep> => {
258
- return useLoader(dep, currentLoaderId);
259
- },
271
+ waitUntil: ctx.waitUntil.bind(ctx),
272
+ executionContext: ctx.executionContext,
273
+ get: ((keyOrVar: any) =>
274
+ contextGet(variables, keyOrVar)) as typeof ctx.get,
275
+ use: ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
276
+ if (isHandle(item)) {
277
+ if (!renderedResolved) {
278
+ throw new Error(
279
+ `ctx.use(handle) in a loader requires "await ctx.rendered()" first. ` +
280
+ `Handle "${item.$$id}" cannot be read until the render tree has settled.`,
281
+ );
282
+ }
283
+ const reqCtx = reqCtxRef ?? _getRequestContext();
284
+ if (!reqCtx) {
285
+ throw new Error(
286
+ `ctx.use(handle) failed: request context not available.`,
287
+ );
288
+ }
289
+ const segmentOrder = reqCtx._renderBarrierSegmentOrder ?? [];
290
+ const snapshot =
291
+ reqCtx._renderBarrierHandleSnapshot ??
292
+ buildHandleSnapshot(reqCtx._handleStore, segmentOrder);
293
+ return collectHandleData(item, snapshot, segmentOrder);
294
+ }
295
+
296
+ // Loader case
297
+ return useLoader(item as LoaderDefinition<any, any>, currentLoaderId);
298
+ }) as LoaderContext["use"],
260
299
  method: "GET",
261
300
  body: undefined,
262
301
  reverse: ctx.reverse as LoaderContext["reverse"],
302
+ rendered: (): Promise<void> => {
303
+ // Guard: only DSL loaders may use rendered()
304
+ if (!isDslLoader) {
305
+ throw new Error(
306
+ `ctx.rendered() is only available in DSL loaders (registered via loader() in urls()). ` +
307
+ `Handler-invoked loaders (ctx.use(Loader) inside a handler) cannot use rendered().`,
308
+ );
309
+ }
310
+
311
+ // Guard: reject streaming trees
312
+ const reqCtx = reqCtxRef ?? _getRequestContext();
313
+ if (reqCtx?._treeHasStreaming) {
314
+ throw new Error(
315
+ `ctx.rendered() is not supported when the matched route tree uses loading(). ` +
316
+ `Streaming handlers may not have settled when rendered() resolves. ` +
317
+ `Remove loading() from the route tree or restructure to avoid rendered().`,
318
+ );
319
+ }
320
+
321
+ if (renderedPromise) return renderedPromise;
322
+
323
+ if (!reqCtx) {
324
+ throw new Error(
325
+ `ctx.rendered() failed: request context not available.`,
326
+ );
327
+ }
328
+
329
+ // Bidirectional deadlock check: if a handler already started
330
+ // awaiting this loader, calling rendered() would deadlock.
331
+ if (reqCtx._handlerLoaderDeps?.has(currentLoaderId)) {
332
+ throw new Error(
333
+ `Deadlock: loader "${currentLoaderId}" called ctx.rendered() but a handler ` +
334
+ `is already awaiting this loader via ctx.use(). The handler blocks ` +
335
+ `segment resolution, which blocks the barrier, which blocks this loader. ` +
336
+ `Move the data dependency to a loader-to-loader pattern instead.`,
337
+ );
338
+ }
339
+
340
+ // Register this loader as waiting for the barrier so that
341
+ // setupLoaderAccess can detect deadlocks when a handler
342
+ // tries to await the same loader via ctx.use().
343
+ if (!reqCtx._renderBarrierWaiters) {
344
+ reqCtx._renderBarrierWaiters = new Set();
345
+ }
346
+ reqCtx._renderBarrierWaiters.add(currentLoaderId);
347
+
348
+ renderedPromise = reqCtx._renderBarrier.then(() => {
349
+ renderedResolved = true;
350
+ });
351
+ return renderedPromise;
352
+ },
263
353
  };
264
354
 
265
355
  const doneLoader = track(`loader:${loader.$$id}`, 2);
@@ -290,15 +380,22 @@ export function setupLoaderAccess<TEnv>(
290
380
  ctx: HandlerContext<any, TEnv>,
291
381
  loaderPromises: Map<string, Promise<any>>,
292
382
  ): void {
293
- // Eagerly capture the HandleStore at setup time (before pipeline async ops).
294
- // In workerd/Cloudflare, dynamic imports and fetch() in the match pipeline
295
- // can disrupt AsyncLocalStorage, causing getRequestContext() to return
296
- // undefined when handlers later call ctx.use(handle). Capturing early
297
- // ensures the store reference survives ALS disruption.
298
- const handleStoreRef = _getRequestContext()?._handleStore;
383
+ // Eagerly capture the request context and HandleStore at setup time
384
+ // (before pipeline async ops). In workerd/Cloudflare, dynamic imports and
385
+ // fetch() in the match pipeline can disrupt AsyncLocalStorage, causing
386
+ // getRequestContext() to return undefined when handlers later call
387
+ // ctx.use(handle). Capturing early ensures references survive ALS disruption.
388
+ const reqCtxRef = _getRequestContext();
389
+ const handleStoreRef = reqCtxRef?._handleStore;
299
390
 
300
391
  const useLoader = createLoaderExecutor(ctx, loaderPromises);
301
392
 
393
+ // Track whether we're inside a handle push callback. Loaders started
394
+ // from push callbacks (e.g. push(async () => ctx.use(Loader))) do NOT
395
+ // block segment resolution, so they must not be registered as handler
396
+ // dependencies for deadlock detection.
397
+ let insideHandlePush = false;
398
+
302
399
  ctx.use = ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
303
400
  if (isHandle(item)) {
304
401
  const handle = item;
@@ -318,16 +415,57 @@ export function setupLoaderAccess<TEnv>(
318
415
  ) => {
319
416
  if (!store) return;
320
417
 
321
- const valueOrPromise =
322
- typeof dataOrFn === "function"
323
- ? (dataOrFn as () => Promise<unknown>)()
324
- : dataOrFn;
418
+ if (typeof dataOrFn === "function") {
419
+ // Mark scope so ctx.use(loader) calls inside the callback
420
+ // are not registered as handler-to-loader deps.
421
+ insideHandlePush = true;
422
+ try {
423
+ const result = (dataOrFn as () => Promise<unknown>)();
424
+ store.push(handle.$$id, segmentId, result);
425
+ } finally {
426
+ insideHandlePush = false;
427
+ }
428
+ return;
429
+ }
325
430
 
326
- store.push(handle.$$id, segmentId, valueOrPromise);
431
+ store.push(handle.$$id, segmentId, dataOrFn);
327
432
  };
328
433
  }
329
434
 
330
- return useLoader(item as LoaderDefinition<any, any>, null);
435
+ // Deadlock guard and handler-to-loader dependency tracking.
436
+ // Skip when inside a DSL loader scope (resolveLoaderData also calls
437
+ // ctx.use() but that's DSL-to-DSL, not handler-to-loader) or when
438
+ // inside a handle push callback (push callbacks don't block segment
439
+ // resolution so they can't cause rendered() deadlocks).
440
+ const loader = item as LoaderDefinition<any, any>;
441
+ if (!isInsideLoaderScope() && !insideHandlePush) {
442
+ const reqCtx = reqCtxRef ?? _getRequestContext();
443
+ if (reqCtx) {
444
+ // Direction 1: handler awaits loader that already called rendered()
445
+ if (
446
+ loaderPromises.has(loader.$$id) &&
447
+ reqCtx._renderBarrierWaiters?.has(loader.$$id)
448
+ ) {
449
+ throw new Error(
450
+ `Deadlock: handler is awaiting loader "${loader.$$id}" which called ctx.rendered(). ` +
451
+ `The loader is waiting for segment resolution, but the handler blocks resolution. ` +
452
+ `Move the data dependency to a loader-to-loader pattern instead.`,
453
+ );
454
+ }
455
+ // Direction 2: track dep so rendered() can detect the deadlock
456
+ // if the loader calls it later. Skip when the barrier has already
457
+ // resolved — no deadlock is possible (rendered() resolves immediately).
458
+ // _renderBarrierSegmentOrder is undefined before resolution, string[]
459
+ // after. This also prevents false positives from handle push callbacks
460
+ // that resume after their first await (post-barrier-resolution).
461
+ if (reqCtx._renderBarrierSegmentOrder === undefined) {
462
+ if (!reqCtx._handlerLoaderDeps) reqCtx._handlerLoaderDeps = new Set();
463
+ reqCtx._handlerLoaderDeps.add(loader.$$id);
464
+ }
465
+ }
466
+ }
467
+
468
+ return useLoader(loader, null);
331
469
  }) as typeof ctx.use;
332
470
  }
333
471
 
@@ -74,7 +74,7 @@ function getHeaderRequestId(request: Request): string | null {
74
74
  return trimmed.length > 0 ? trimmed : null;
75
75
  }
76
76
 
77
- function getOrCreateRequestId(request: Request): string {
77
+ export function getOrCreateRequestId(request: Request): string {
78
78
  const existing = requestIds.get(request);
79
79
  if (existing) return existing;
80
80
 
@@ -9,6 +9,7 @@ import { createRouteHelpers } from "../route-definition";
9
9
  import {
10
10
  getContext,
11
11
  runWithPrefixes,
12
+ getIsolatedLazyParent,
12
13
  type EntryData,
13
14
  type MetricsStore,
14
15
  } from "../server/context";
@@ -65,7 +66,9 @@ export async function loadManifest(
65
66
  const mountIndex = entry.mountIndex;
66
67
 
67
68
  // Check module-level cache (persists across requests within same isolate)
68
- const cacheKey = `${VERSION}:${mountIndex ?? ""}:${routeKey}:${isSSR ? 1 : 0}`;
69
+ // Include routerId so multi-router setups (host routing) don't share cached
70
+ // EntryData across routers with overlapping mountIndex + routeKey combinations.
71
+ const cacheKey = `${VERSION}:${entry.routerId ?? ""}:${mountIndex ?? ""}:${routeKey}:${isSSR ? 1 : 0}`;
69
72
  const cached = manifestModuleCache.get(cacheKey);
70
73
  if (cached) {
71
74
  const cacheStart = performance.now();
@@ -112,36 +115,48 @@ export async function loadManifest(
112
115
  // This ensures routes are registered under the correct layout hierarchy
113
116
  const lazyContext =
114
117
  entry.lazy && entry.lazyPatterns ? entry.lazyContext : null;
115
- const parentForContext =
116
- (lazyContext?.parent as EntryData | null) ?? Store.parent;
118
+ const parentForContext = lazyContext
119
+ ? getIsolatedLazyParent(
120
+ (lazyContext.parent as EntryData | null) ?? Store.parent,
121
+ )
122
+ : Store.parent;
117
123
 
118
124
  // For lazy entries, merge captured counters from include() so the
119
125
  // handler's entries get shortCode indices after sibling entries that
120
126
  // were created during pattern extraction. This prevents shortCode
121
127
  // collisions between lazy and non-lazy entries under the same parent
122
128
  // (e.g., ArticlesLayout and BlogLayout both under NavLayout).
123
- if (lazyContext && (lazyContext as any).counters) {
124
- const captured = (lazyContext as any).counters as Record<string, number>;
125
- for (const [key, value] of Object.entries(captured)) {
129
+ if (lazyContext?.counters) {
130
+ for (const [key, value] of Object.entries(lazyContext.counters)) {
126
131
  Store.counters[key] = Math.max(Store.counters[key] ?? 0, value);
127
132
  }
128
133
  }
129
134
 
130
135
  // Propagate cache profiles for DSL-time cache("profileName") resolution.
131
136
  // Non-lazy entries carry profiles directly; lazy entries carry them
132
- // in the captured lazyContext from include() time.
133
- const entryProfiles =
134
- entry.cacheProfiles ?? (lazyContext as any)?.cacheProfiles;
135
- if (entryProfiles) {
136
- Store.cacheProfiles = entryProfiles;
137
- }
137
+ // in the captured lazyContext from include() time. Always write
138
+ // (including clearing to undefined) so a prior lazy build's profile
139
+ // map cannot leak into a later non-lazy build on the same ALS-backed
140
+ // Store — which would otherwise let cache("name") resolve a profile
141
+ // from an unrelated entry.
142
+ Store.cacheProfiles = entry.cacheProfiles ?? lazyContext?.cacheProfiles;
138
143
 
139
144
  // Propagate rootScoped from lazyContext so that routes inside
140
145
  // nested { name: "sub" } under { name: "" } keep inherited root scope
141
- // when the manifest is rebuilt on each request.
142
- if (lazyContext && (lazyContext as any).rootScoped !== undefined) {
143
- Store.rootScoped = (lazyContext as any).rootScoped;
144
- }
146
+ // when the manifest is rebuilt on each request. Always write
147
+ // (including clearing to undefined, which makes getRootScoped()
148
+ // return its true default) so a prior lazy build's scope cannot leak
149
+ // into a later non-lazy build on the same ALS-backed Store — which
150
+ // would otherwise mis-register plain routes as non-root-scoped and
151
+ // break dot-local reverse resolution.
152
+ Store.rootScoped = lazyContext?.rootScoped;
153
+
154
+ // Propagate includeScope from lazyContext so that direct-descendant
155
+ // shortCodes of this include use the correct scoped counter namespace
156
+ // on every manifest rebuild. Always write (including clearing to
157
+ // undefined) so a prior lazy build's scope cannot leak into a later
158
+ // non-lazy build on the same ALS-backed Store.
159
+ Store.includeScope = lazyContext?.includeScope;
145
160
 
146
161
  const handlerExecStart = performance.now();
147
162
  const useItems = await getContext().runWithStore(