@rangojs/router 0.0.0-experimental.78a48627 → 0.0.0-experimental.78adc454

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 (863) hide show
  1. package/dist/bin/rango.js +8 -3
  2. package/dist/vite/index.js +155 -201
  3. package/package.json +1 -1
  4. package/skills/caching/SKILL.md +37 -4
  5. package/skills/parallel/SKILL.md +126 -0
  6. package/src/browser/event-controller.ts +5 -0
  7. package/src/browser/navigation-client.ts +60 -27
  8. package/src/browser/partial-update.ts +23 -16
  9. package/src/browser/prefetch/cache.ts +57 -5
  10. package/src/browser/prefetch/fetch.ts +30 -21
  11. package/src/browser/prefetch/queue.ts +53 -13
  12. package/src/browser/react/Link.tsx +9 -1
  13. package/src/browser/react/NavigationProvider.tsx +3 -3
  14. package/src/browser/rsc-router.tsx +109 -57
  15. package/src/browser/scroll-restoration.ts +11 -10
  16. package/src/browser/segment-reconciler.ts +6 -1
  17. package/src/build/route-types/router-processing.ts +12 -2
  18. package/src/cache/cache-runtime.ts +15 -11
  19. package/src/cache/cache-scope.ts +48 -7
  20. package/src/cache/cf/cf-cache-store.ts +453 -11
  21. package/src/cache/cf/index.ts +5 -1
  22. package/src/cache/document-cache.ts +17 -7
  23. package/src/cache/index.ts +1 -0
  24. package/src/cache/taint.ts +55 -0
  25. package/src/context-var.ts +72 -2
  26. package/src/debug.ts +2 -2
  27. package/src/route-definition/dsl-helpers.ts +32 -7
  28. package/src/route-definition/redirect.ts +2 -2
  29. package/src/router/handler-context.ts +31 -8
  30. package/src/router/lazy-includes.ts +2 -1
  31. package/src/router/logging.ts +1 -1
  32. package/src/router/manifest.ts +6 -2
  33. package/src/router/match-middleware/background-revalidation.ts +30 -2
  34. package/src/router/match-middleware/cache-lookup.ts +66 -9
  35. package/src/router/match-middleware/cache-store.ts +53 -10
  36. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  37. package/src/router/match-middleware/segment-resolution.ts +7 -5
  38. package/src/router/match-result.ts +22 -6
  39. package/src/router/metrics.ts +6 -1
  40. package/src/router/middleware-types.ts +6 -2
  41. package/src/router/middleware.ts +4 -3
  42. package/src/router/router-context.ts +1 -0
  43. package/src/router/segment-resolution/fresh.ts +130 -16
  44. package/src/router/segment-resolution/loader-cache.ts +1 -0
  45. package/src/router/segment-resolution/revalidation.ts +348 -289
  46. package/src/router.ts +1 -1
  47. package/src/segment-system.tsx +140 -4
  48. package/src/server/context.ts +101 -13
  49. package/src/server/request-context.ts +53 -11
  50. package/src/ssr/index.tsx +1 -0
  51. package/src/types/handler-context.ts +113 -19
  52. package/src/types/segments.ts +2 -0
  53. package/src/urls/path-helper.ts +1 -1
  54. package/src/vite/discovery/state.ts +0 -2
  55. package/src/vite/plugin-types.ts +0 -83
  56. package/src/vite/plugins/expose-action-id.ts +1 -3
  57. package/src/vite/plugins/version-plugin.ts +13 -1
  58. package/src/vite/rango.ts +144 -209
  59. package/src/vite/router-discovery.ts +0 -8
  60. package/src/vite/utils/banner.ts +3 -3
  61. package/dist/__internal.d.ts +0 -83
  62. package/dist/__internal.d.ts.map +0 -1
  63. package/dist/__internal.js +0 -19
  64. package/dist/__internal.js.map +0 -1
  65. package/dist/__mocks__/version.d.ts +0 -7
  66. package/dist/__mocks__/version.d.ts.map +0 -1
  67. package/dist/__mocks__/version.js +0 -7
  68. package/dist/__mocks__/version.js.map +0 -1
  69. package/dist/__tests__/client-href.test.d.ts +0 -2
  70. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  71. package/dist/__tests__/client-href.test.js +0 -74
  72. package/dist/__tests__/client-href.test.js.map +0 -1
  73. package/dist/__tests__/component-utils.test.d.ts +0 -2
  74. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  75. package/dist/__tests__/component-utils.test.js +0 -51
  76. package/dist/__tests__/component-utils.test.js.map +0 -1
  77. package/dist/__tests__/event-controller.test.d.ts +0 -2
  78. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  79. package/dist/__tests__/event-controller.test.js +0 -538
  80. package/dist/__tests__/event-controller.test.js.map +0 -1
  81. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  82. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  83. package/dist/__tests__/helpers/route-tree.js +0 -374
  84. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  85. package/dist/__tests__/match-result.test.d.ts +0 -2
  86. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  87. package/dist/__tests__/match-result.test.js +0 -154
  88. package/dist/__tests__/match-result.test.js.map +0 -1
  89. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  90. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  91. package/dist/__tests__/navigation-store.test.js +0 -440
  92. package/dist/__tests__/navigation-store.test.js.map +0 -1
  93. package/dist/__tests__/partial-update.test.d.ts +0 -2
  94. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  95. package/dist/__tests__/partial-update.test.js +0 -1009
  96. package/dist/__tests__/partial-update.test.js.map +0 -1
  97. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  98. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  99. package/dist/__tests__/reverse-types.test.js +0 -656
  100. package/dist/__tests__/reverse-types.test.js.map +0 -1
  101. package/dist/__tests__/route-definition.test.d.ts +0 -2
  102. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  103. package/dist/__tests__/route-definition.test.js +0 -55
  104. package/dist/__tests__/route-definition.test.js.map +0 -1
  105. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  106. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  107. package/dist/__tests__/router-helpers.test.js +0 -377
  108. package/dist/__tests__/router-helpers.test.js.map +0 -1
  109. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  110. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  111. package/dist/__tests__/router-integration-2.test.js +0 -426
  112. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  113. package/dist/__tests__/router-integration.test.d.ts +0 -2
  114. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  115. package/dist/__tests__/router-integration.test.js +0 -1051
  116. package/dist/__tests__/router-integration.test.js.map +0 -1
  117. package/dist/__tests__/search-params.test.d.ts +0 -5
  118. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  119. package/dist/__tests__/search-params.test.js +0 -306
  120. package/dist/__tests__/search-params.test.js.map +0 -1
  121. package/dist/__tests__/segment-system.test.d.ts +0 -2
  122. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  123. package/dist/__tests__/segment-system.test.js +0 -627
  124. package/dist/__tests__/segment-system.test.js.map +0 -1
  125. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  126. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  127. package/dist/__tests__/static-handler-types.test.js +0 -63
  128. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  129. package/dist/__tests__/urls.test.d.ts +0 -2
  130. package/dist/__tests__/urls.test.d.ts.map +0 -1
  131. package/dist/__tests__/urls.test.js +0 -421
  132. package/dist/__tests__/urls.test.js.map +0 -1
  133. package/dist/__tests__/use-mount.test.d.ts +0 -2
  134. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  135. package/dist/__tests__/use-mount.test.js +0 -35
  136. package/dist/__tests__/use-mount.test.js.map +0 -1
  137. package/dist/bin/rango.d.ts +0 -2
  138. package/dist/bin/rango.d.ts.map +0 -1
  139. package/dist/bin/rango.js.map +0 -1
  140. package/dist/browser/event-controller.d.ts +0 -191
  141. package/dist/browser/event-controller.d.ts.map +0 -1
  142. package/dist/browser/event-controller.js +0 -559
  143. package/dist/browser/event-controller.js.map +0 -1
  144. package/dist/browser/index.d.ts +0 -2
  145. package/dist/browser/index.d.ts.map +0 -1
  146. package/dist/browser/index.js +0 -14
  147. package/dist/browser/index.js.map +0 -1
  148. package/dist/browser/link-interceptor.d.ts +0 -38
  149. package/dist/browser/link-interceptor.d.ts.map +0 -1
  150. package/dist/browser/link-interceptor.js +0 -99
  151. package/dist/browser/link-interceptor.js.map +0 -1
  152. package/dist/browser/logging.d.ts +0 -10
  153. package/dist/browser/logging.d.ts.map +0 -1
  154. package/dist/browser/logging.js +0 -29
  155. package/dist/browser/logging.js.map +0 -1
  156. package/dist/browser/lru-cache.d.ts +0 -17
  157. package/dist/browser/lru-cache.d.ts.map +0 -1
  158. package/dist/browser/lru-cache.js +0 -50
  159. package/dist/browser/lru-cache.js.map +0 -1
  160. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  161. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  162. package/dist/browser/merge-segment-loaders.js +0 -102
  163. package/dist/browser/merge-segment-loaders.js.map +0 -1
  164. package/dist/browser/navigation-bridge.d.ts +0 -102
  165. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  166. package/dist/browser/navigation-bridge.js +0 -708
  167. package/dist/browser/navigation-bridge.js.map +0 -1
  168. package/dist/browser/navigation-client.d.ts +0 -25
  169. package/dist/browser/navigation-client.d.ts.map +0 -1
  170. package/dist/browser/navigation-client.js +0 -157
  171. package/dist/browser/navigation-client.js.map +0 -1
  172. package/dist/browser/navigation-store.d.ts +0 -101
  173. package/dist/browser/navigation-store.d.ts.map +0 -1
  174. package/dist/browser/navigation-store.js +0 -625
  175. package/dist/browser/navigation-store.js.map +0 -1
  176. package/dist/browser/partial-update.d.ts +0 -75
  177. package/dist/browser/partial-update.d.ts.map +0 -1
  178. package/dist/browser/partial-update.js +0 -426
  179. package/dist/browser/partial-update.js.map +0 -1
  180. package/dist/browser/react/Link.d.ts +0 -86
  181. package/dist/browser/react/Link.d.ts.map +0 -1
  182. package/dist/browser/react/Link.js +0 -128
  183. package/dist/browser/react/Link.js.map +0 -1
  184. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  185. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  186. package/dist/browser/react/NavigationProvider.js +0 -216
  187. package/dist/browser/react/NavigationProvider.js.map +0 -1
  188. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  189. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  190. package/dist/browser/react/ScrollRestoration.js +0 -57
  191. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  192. package/dist/browser/react/context.d.ts +0 -46
  193. package/dist/browser/react/context.d.ts.map +0 -1
  194. package/dist/browser/react/context.js +0 -10
  195. package/dist/browser/react/context.js.map +0 -1
  196. package/dist/browser/react/index.d.ts +0 -11
  197. package/dist/browser/react/index.d.ts.map +0 -1
  198. package/dist/browser/react/index.js +0 -22
  199. package/dist/browser/react/index.js.map +0 -1
  200. package/dist/browser/react/location-state-shared.d.ts +0 -63
  201. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  202. package/dist/browser/react/location-state-shared.js +0 -81
  203. package/dist/browser/react/location-state-shared.js.map +0 -1
  204. package/dist/browser/react/location-state.d.ts +0 -23
  205. package/dist/browser/react/location-state.d.ts.map +0 -1
  206. package/dist/browser/react/location-state.js +0 -29
  207. package/dist/browser/react/location-state.js.map +0 -1
  208. package/dist/browser/react/mount-context.d.ts +0 -24
  209. package/dist/browser/react/mount-context.d.ts.map +0 -1
  210. package/dist/browser/react/mount-context.js +0 -24
  211. package/dist/browser/react/mount-context.js.map +0 -1
  212. package/dist/browser/react/use-action.d.ts +0 -64
  213. package/dist/browser/react/use-action.d.ts.map +0 -1
  214. package/dist/browser/react/use-action.js +0 -134
  215. package/dist/browser/react/use-action.js.map +0 -1
  216. package/dist/browser/react/use-client-cache.d.ts +0 -41
  217. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  218. package/dist/browser/react/use-client-cache.js +0 -39
  219. package/dist/browser/react/use-client-cache.js.map +0 -1
  220. package/dist/browser/react/use-handle.d.ts +0 -31
  221. package/dist/browser/react/use-handle.d.ts.map +0 -1
  222. package/dist/browser/react/use-handle.js +0 -144
  223. package/dist/browser/react/use-handle.js.map +0 -1
  224. package/dist/browser/react/use-href.d.ts +0 -33
  225. package/dist/browser/react/use-href.d.ts.map +0 -1
  226. package/dist/browser/react/use-href.js +0 -39
  227. package/dist/browser/react/use-href.js.map +0 -1
  228. package/dist/browser/react/use-link-status.d.ts +0 -37
  229. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  230. package/dist/browser/react/use-link-status.js +0 -99
  231. package/dist/browser/react/use-link-status.js.map +0 -1
  232. package/dist/browser/react/use-mount.d.ts +0 -25
  233. package/dist/browser/react/use-mount.d.ts.map +0 -1
  234. package/dist/browser/react/use-mount.js +0 -30
  235. package/dist/browser/react/use-mount.js.map +0 -1
  236. package/dist/browser/react/use-navigation.d.ts +0 -27
  237. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  238. package/dist/browser/react/use-navigation.js +0 -87
  239. package/dist/browser/react/use-navigation.js.map +0 -1
  240. package/dist/browser/react/use-segments.d.ts +0 -38
  241. package/dist/browser/react/use-segments.d.ts.map +0 -1
  242. package/dist/browser/react/use-segments.js +0 -130
  243. package/dist/browser/react/use-segments.js.map +0 -1
  244. package/dist/browser/request-controller.d.ts +0 -26
  245. package/dist/browser/request-controller.d.ts.map +0 -1
  246. package/dist/browser/request-controller.js +0 -147
  247. package/dist/browser/request-controller.js.map +0 -1
  248. package/dist/browser/rsc-router.d.ts +0 -129
  249. package/dist/browser/rsc-router.d.ts.map +0 -1
  250. package/dist/browser/rsc-router.js +0 -195
  251. package/dist/browser/rsc-router.js.map +0 -1
  252. package/dist/browser/scroll-restoration.d.ts +0 -93
  253. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  254. package/dist/browser/scroll-restoration.js +0 -321
  255. package/dist/browser/scroll-restoration.js.map +0 -1
  256. package/dist/browser/segment-structure-assert.d.ts +0 -17
  257. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  258. package/dist/browser/segment-structure-assert.js +0 -59
  259. package/dist/browser/segment-structure-assert.js.map +0 -1
  260. package/dist/browser/server-action-bridge.d.ts +0 -26
  261. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  262. package/dist/browser/server-action-bridge.js +0 -668
  263. package/dist/browser/server-action-bridge.js.map +0 -1
  264. package/dist/browser/shallow.d.ts +0 -12
  265. package/dist/browser/shallow.d.ts.map +0 -1
  266. package/dist/browser/shallow.js +0 -34
  267. package/dist/browser/shallow.js.map +0 -1
  268. package/dist/browser/types.d.ts +0 -369
  269. package/dist/browser/types.d.ts.map +0 -1
  270. package/dist/browser/types.js +0 -2
  271. package/dist/browser/types.js.map +0 -1
  272. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  273. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  274. package/dist/build/__tests__/generate-cli.test.js +0 -237
  275. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  276. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  277. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  278. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  279. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  280. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  281. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  282. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  283. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  284. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  285. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  286. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  287. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  288. package/dist/build/generate-manifest.d.ts +0 -81
  289. package/dist/build/generate-manifest.d.ts.map +0 -1
  290. package/dist/build/generate-manifest.js +0 -276
  291. package/dist/build/generate-manifest.js.map +0 -1
  292. package/dist/build/generate-route-types.d.ts +0 -115
  293. package/dist/build/generate-route-types.d.ts.map +0 -1
  294. package/dist/build/generate-route-types.js +0 -740
  295. package/dist/build/generate-route-types.js.map +0 -1
  296. package/dist/build/index.d.ts +0 -21
  297. package/dist/build/index.d.ts.map +0 -1
  298. package/dist/build/index.js +0 -21
  299. package/dist/build/index.js.map +0 -1
  300. package/dist/build/route-trie.d.ts +0 -71
  301. package/dist/build/route-trie.d.ts.map +0 -1
  302. package/dist/build/route-trie.js +0 -175
  303. package/dist/build/route-trie.js.map +0 -1
  304. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  305. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  306. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  307. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  308. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  309. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  310. package/dist/cache/__tests__/document-cache.test.js +0 -345
  311. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  312. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  313. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  314. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  315. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  316. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  317. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  318. package/dist/cache/__tests__/memory-store.test.js +0 -367
  319. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  320. package/dist/cache/cache-scope.d.ts +0 -102
  321. package/dist/cache/cache-scope.d.ts.map +0 -1
  322. package/dist/cache/cache-scope.js +0 -440
  323. package/dist/cache/cache-scope.js.map +0 -1
  324. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  325. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  326. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  327. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  328. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  329. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  330. package/dist/cache/cf/cf-cache-store.js +0 -242
  331. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  332. package/dist/cache/cf/index.d.ts +0 -14
  333. package/dist/cache/cf/index.d.ts.map +0 -1
  334. package/dist/cache/cf/index.js +0 -17
  335. package/dist/cache/cf/index.js.map +0 -1
  336. package/dist/cache/document-cache.d.ts +0 -64
  337. package/dist/cache/document-cache.d.ts.map +0 -1
  338. package/dist/cache/document-cache.js +0 -228
  339. package/dist/cache/document-cache.js.map +0 -1
  340. package/dist/cache/index.d.ts +0 -19
  341. package/dist/cache/index.d.ts.map +0 -1
  342. package/dist/cache/index.js +0 -21
  343. package/dist/cache/index.js.map +0 -1
  344. package/dist/cache/memory-segment-store.d.ts +0 -110
  345. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  346. package/dist/cache/memory-segment-store.js +0 -117
  347. package/dist/cache/memory-segment-store.js.map +0 -1
  348. package/dist/cache/memory-store.d.ts +0 -41
  349. package/dist/cache/memory-store.d.ts.map +0 -1
  350. package/dist/cache/memory-store.js +0 -191
  351. package/dist/cache/memory-store.js.map +0 -1
  352. package/dist/cache/types.d.ts +0 -317
  353. package/dist/cache/types.d.ts.map +0 -1
  354. package/dist/cache/types.js +0 -12
  355. package/dist/cache/types.js.map +0 -1
  356. package/dist/client.d.ts +0 -248
  357. package/dist/client.d.ts.map +0 -1
  358. package/dist/client.js +0 -367
  359. package/dist/client.js.map +0 -1
  360. package/dist/client.rsc.d.ts +0 -26
  361. package/dist/client.rsc.d.ts.map +0 -1
  362. package/dist/client.rsc.js +0 -46
  363. package/dist/client.rsc.js.map +0 -1
  364. package/dist/component-utils.d.ts +0 -36
  365. package/dist/component-utils.d.ts.map +0 -1
  366. package/dist/component-utils.js +0 -61
  367. package/dist/component-utils.js.map +0 -1
  368. package/dist/components/DefaultDocument.d.ts +0 -13
  369. package/dist/components/DefaultDocument.d.ts.map +0 -1
  370. package/dist/components/DefaultDocument.js +0 -15
  371. package/dist/components/DefaultDocument.js.map +0 -1
  372. package/dist/debug.d.ts +0 -58
  373. package/dist/debug.d.ts.map +0 -1
  374. package/dist/debug.js +0 -157
  375. package/dist/debug.js.map +0 -1
  376. package/dist/default-error-boundary.d.ts +0 -11
  377. package/dist/default-error-boundary.d.ts.map +0 -1
  378. package/dist/default-error-boundary.js +0 -45
  379. package/dist/default-error-boundary.js.map +0 -1
  380. package/dist/deps/browser.d.ts +0 -2
  381. package/dist/deps/browser.d.ts.map +0 -1
  382. package/dist/deps/browser.js +0 -3
  383. package/dist/deps/browser.js.map +0 -1
  384. package/dist/deps/html-stream-client.d.ts +0 -2
  385. package/dist/deps/html-stream-client.d.ts.map +0 -1
  386. package/dist/deps/html-stream-client.js +0 -3
  387. package/dist/deps/html-stream-client.js.map +0 -1
  388. package/dist/deps/html-stream-server.d.ts +0 -2
  389. package/dist/deps/html-stream-server.d.ts.map +0 -1
  390. package/dist/deps/html-stream-server.js +0 -3
  391. package/dist/deps/html-stream-server.js.map +0 -1
  392. package/dist/deps/rsc.d.ts +0 -2
  393. package/dist/deps/rsc.d.ts.map +0 -1
  394. package/dist/deps/rsc.js +0 -4
  395. package/dist/deps/rsc.js.map +0 -1
  396. package/dist/deps/ssr.d.ts +0 -2
  397. package/dist/deps/ssr.d.ts.map +0 -1
  398. package/dist/deps/ssr.js +0 -3
  399. package/dist/deps/ssr.js.map +0 -1
  400. package/dist/errors.d.ts +0 -174
  401. package/dist/errors.d.ts.map +0 -1
  402. package/dist/errors.js +0 -241
  403. package/dist/errors.js.map +0 -1
  404. package/dist/handle.d.ts +0 -78
  405. package/dist/handle.d.ts.map +0 -1
  406. package/dist/handle.js +0 -82
  407. package/dist/handle.js.map +0 -1
  408. package/dist/handles/MetaTags.d.ts +0 -14
  409. package/dist/handles/MetaTags.d.ts.map +0 -1
  410. package/dist/handles/MetaTags.js +0 -136
  411. package/dist/handles/MetaTags.js.map +0 -1
  412. package/dist/handles/index.d.ts +0 -6
  413. package/dist/handles/index.d.ts.map +0 -1
  414. package/dist/handles/index.js +0 -6
  415. package/dist/handles/index.js.map +0 -1
  416. package/dist/handles/meta.d.ts +0 -39
  417. package/dist/handles/meta.d.ts.map +0 -1
  418. package/dist/handles/meta.js +0 -202
  419. package/dist/handles/meta.js.map +0 -1
  420. package/dist/host/__tests__/errors.test.d.ts +0 -2
  421. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  422. package/dist/host/__tests__/errors.test.js +0 -76
  423. package/dist/host/__tests__/errors.test.js.map +0 -1
  424. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  425. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  426. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  427. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  428. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  429. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  430. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  431. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  432. package/dist/host/__tests__/router.test.d.ts +0 -2
  433. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  434. package/dist/host/__tests__/router.test.js +0 -241
  435. package/dist/host/__tests__/router.test.js.map +0 -1
  436. package/dist/host/__tests__/testing.test.d.ts +0 -2
  437. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  438. package/dist/host/__tests__/testing.test.js +0 -64
  439. package/dist/host/__tests__/testing.test.js.map +0 -1
  440. package/dist/host/__tests__/utils.test.d.ts +0 -2
  441. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  442. package/dist/host/__tests__/utils.test.js +0 -29
  443. package/dist/host/__tests__/utils.test.js.map +0 -1
  444. package/dist/host/cookie-handler.d.ts +0 -34
  445. package/dist/host/cookie-handler.d.ts.map +0 -1
  446. package/dist/host/cookie-handler.js +0 -124
  447. package/dist/host/cookie-handler.js.map +0 -1
  448. package/dist/host/errors.d.ts +0 -56
  449. package/dist/host/errors.d.ts.map +0 -1
  450. package/dist/host/errors.js +0 -79
  451. package/dist/host/errors.js.map +0 -1
  452. package/dist/host/index.d.ts +0 -29
  453. package/dist/host/index.d.ts.map +0 -1
  454. package/dist/host/index.js +0 -32
  455. package/dist/host/index.js.map +0 -1
  456. package/dist/host/pattern-matcher.d.ts +0 -36
  457. package/dist/host/pattern-matcher.d.ts.map +0 -1
  458. package/dist/host/pattern-matcher.js +0 -172
  459. package/dist/host/pattern-matcher.js.map +0 -1
  460. package/dist/host/router.d.ts +0 -26
  461. package/dist/host/router.d.ts.map +0 -1
  462. package/dist/host/router.js +0 -218
  463. package/dist/host/router.js.map +0 -1
  464. package/dist/host/testing.d.ts +0 -36
  465. package/dist/host/testing.d.ts.map +0 -1
  466. package/dist/host/testing.js +0 -55
  467. package/dist/host/testing.js.map +0 -1
  468. package/dist/host/types.d.ts +0 -115
  469. package/dist/host/types.d.ts.map +0 -1
  470. package/dist/host/types.js +0 -7
  471. package/dist/host/types.js.map +0 -1
  472. package/dist/host/utils.d.ts +0 -21
  473. package/dist/host/utils.d.ts.map +0 -1
  474. package/dist/host/utils.js +0 -23
  475. package/dist/host/utils.js.map +0 -1
  476. package/dist/href-client.d.ts +0 -131
  477. package/dist/href-client.d.ts.map +0 -1
  478. package/dist/href-client.js +0 -64
  479. package/dist/href-client.js.map +0 -1
  480. package/dist/href-context.d.ts +0 -29
  481. package/dist/href-context.d.ts.map +0 -1
  482. package/dist/href-context.js +0 -21
  483. package/dist/href-context.js.map +0 -1
  484. package/dist/index.d.ts +0 -73
  485. package/dist/index.d.ts.map +0 -1
  486. package/dist/index.js +0 -91
  487. package/dist/index.js.map +0 -1
  488. package/dist/index.rsc.d.ts +0 -32
  489. package/dist/index.rsc.d.ts.map +0 -1
  490. package/dist/index.rsc.js +0 -40
  491. package/dist/index.rsc.js.map +0 -1
  492. package/dist/internal-debug.d.ts +0 -2
  493. package/dist/internal-debug.d.ts.map +0 -1
  494. package/dist/internal-debug.js +0 -5
  495. package/dist/internal-debug.js.map +0 -1
  496. package/dist/loader.d.ts +0 -14
  497. package/dist/loader.d.ts.map +0 -1
  498. package/dist/loader.js +0 -20
  499. package/dist/loader.js.map +0 -1
  500. package/dist/loader.rsc.d.ts +0 -19
  501. package/dist/loader.rsc.d.ts.map +0 -1
  502. package/dist/loader.rsc.js +0 -99
  503. package/dist/loader.rsc.js.map +0 -1
  504. package/dist/network-error-thrower.d.ts +0 -17
  505. package/dist/network-error-thrower.d.ts.map +0 -1
  506. package/dist/network-error-thrower.js +0 -14
  507. package/dist/network-error-thrower.js.map +0 -1
  508. package/dist/outlet-context.d.ts +0 -13
  509. package/dist/outlet-context.d.ts.map +0 -1
  510. package/dist/outlet-context.js +0 -3
  511. package/dist/outlet-context.js.map +0 -1
  512. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  513. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  514. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  515. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  516. package/dist/prerender/param-hash.d.ts +0 -16
  517. package/dist/prerender/param-hash.d.ts.map +0 -1
  518. package/dist/prerender/param-hash.js +0 -36
  519. package/dist/prerender/param-hash.js.map +0 -1
  520. package/dist/prerender/store.d.ts +0 -38
  521. package/dist/prerender/store.d.ts.map +0 -1
  522. package/dist/prerender/store.js +0 -61
  523. package/dist/prerender/store.js.map +0 -1
  524. package/dist/prerender.d.ts +0 -66
  525. package/dist/prerender.d.ts.map +0 -1
  526. package/dist/prerender.js +0 -57
  527. package/dist/prerender.js.map +0 -1
  528. package/dist/reverse.d.ts +0 -196
  529. package/dist/reverse.d.ts.map +0 -1
  530. package/dist/reverse.js +0 -78
  531. package/dist/reverse.js.map +0 -1
  532. package/dist/root-error-boundary.d.ts +0 -33
  533. package/dist/root-error-boundary.d.ts.map +0 -1
  534. package/dist/root-error-boundary.js +0 -165
  535. package/dist/root-error-boundary.js.map +0 -1
  536. package/dist/route-content-wrapper.d.ts +0 -46
  537. package/dist/route-content-wrapper.d.ts.map +0 -1
  538. package/dist/route-content-wrapper.js +0 -77
  539. package/dist/route-content-wrapper.js.map +0 -1
  540. package/dist/route-definition.d.ts +0 -421
  541. package/dist/route-definition.d.ts.map +0 -1
  542. package/dist/route-definition.js +0 -868
  543. package/dist/route-definition.js.map +0 -1
  544. package/dist/route-map-builder.d.ts +0 -155
  545. package/dist/route-map-builder.d.ts.map +0 -1
  546. package/dist/route-map-builder.js +0 -237
  547. package/dist/route-map-builder.js.map +0 -1
  548. package/dist/route-types.d.ts +0 -165
  549. package/dist/route-types.d.ts.map +0 -1
  550. package/dist/route-types.js +0 -7
  551. package/dist/route-types.js.map +0 -1
  552. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  553. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  554. package/dist/router/__tests__/handler-context.test.js +0 -65
  555. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  556. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  557. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  558. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  559. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  560. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  561. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  562. package/dist/router/__tests__/match-context.test.js +0 -92
  563. package/dist/router/__tests__/match-context.test.js.map +0 -1
  564. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  565. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  566. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  567. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  568. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  569. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  570. package/dist/router/__tests__/match-result.test.js +0 -457
  571. package/dist/router/__tests__/match-result.test.js.map +0 -1
  572. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  573. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  574. package/dist/router/__tests__/on-error.test.js +0 -678
  575. package/dist/router/__tests__/on-error.test.js.map +0 -1
  576. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  577. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  578. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  579. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  580. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  581. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  582. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  583. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  584. package/dist/router/error-handling.d.ts +0 -77
  585. package/dist/router/error-handling.d.ts.map +0 -1
  586. package/dist/router/error-handling.js +0 -202
  587. package/dist/router/error-handling.js.map +0 -1
  588. package/dist/router/handler-context.d.ts +0 -20
  589. package/dist/router/handler-context.d.ts.map +0 -1
  590. package/dist/router/handler-context.js +0 -198
  591. package/dist/router/handler-context.js.map +0 -1
  592. package/dist/router/intercept-resolution.d.ts +0 -66
  593. package/dist/router/intercept-resolution.d.ts.map +0 -1
  594. package/dist/router/intercept-resolution.js +0 -246
  595. package/dist/router/intercept-resolution.js.map +0 -1
  596. package/dist/router/loader-resolution.d.ts +0 -64
  597. package/dist/router/loader-resolution.d.ts.map +0 -1
  598. package/dist/router/loader-resolution.js +0 -284
  599. package/dist/router/loader-resolution.js.map +0 -1
  600. package/dist/router/logging.d.ts +0 -15
  601. package/dist/router/logging.d.ts.map +0 -1
  602. package/dist/router/logging.js +0 -99
  603. package/dist/router/logging.js.map +0 -1
  604. package/dist/router/manifest.d.ts +0 -22
  605. package/dist/router/manifest.d.ts.map +0 -1
  606. package/dist/router/manifest.js +0 -181
  607. package/dist/router/manifest.js.map +0 -1
  608. package/dist/router/match-api.d.ts +0 -35
  609. package/dist/router/match-api.d.ts.map +0 -1
  610. package/dist/router/match-api.js +0 -406
  611. package/dist/router/match-api.js.map +0 -1
  612. package/dist/router/match-context.d.ts +0 -206
  613. package/dist/router/match-context.d.ts.map +0 -1
  614. package/dist/router/match-context.js +0 -17
  615. package/dist/router/match-context.js.map +0 -1
  616. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  617. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  618. package/dist/router/match-middleware/background-revalidation.js +0 -75
  619. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  620. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  621. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  622. package/dist/router/match-middleware/cache-lookup.js +0 -257
  623. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  624. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  625. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  626. package/dist/router/match-middleware/cache-store.js +0 -108
  627. package/dist/router/match-middleware/cache-store.js.map +0 -1
  628. package/dist/router/match-middleware/index.d.ts +0 -81
  629. package/dist/router/match-middleware/index.d.ts.map +0 -1
  630. package/dist/router/match-middleware/index.js +0 -80
  631. package/dist/router/match-middleware/index.js.map +0 -1
  632. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  633. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  634. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  635. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  636. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  637. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  638. package/dist/router/match-middleware/segment-resolution.js +0 -53
  639. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  640. package/dist/router/match-pipelines.d.ts +0 -147
  641. package/dist/router/match-pipelines.d.ts.map +0 -1
  642. package/dist/router/match-pipelines.js +0 -82
  643. package/dist/router/match-pipelines.js.map +0 -1
  644. package/dist/router/match-result.d.ts +0 -126
  645. package/dist/router/match-result.d.ts.map +0 -1
  646. package/dist/router/match-result.js +0 -93
  647. package/dist/router/match-result.js.map +0 -1
  648. package/dist/router/metrics.d.ts +0 -20
  649. package/dist/router/metrics.d.ts.map +0 -1
  650. package/dist/router/metrics.js +0 -47
  651. package/dist/router/metrics.js.map +0 -1
  652. package/dist/router/middleware.d.ts +0 -249
  653. package/dist/router/middleware.d.ts.map +0 -1
  654. package/dist/router/middleware.js +0 -434
  655. package/dist/router/middleware.js.map +0 -1
  656. package/dist/router/middleware.test.d.ts +0 -2
  657. package/dist/router/middleware.test.d.ts.map +0 -1
  658. package/dist/router/middleware.test.js +0 -816
  659. package/dist/router/middleware.test.js.map +0 -1
  660. package/dist/router/pattern-matching.d.ts +0 -149
  661. package/dist/router/pattern-matching.d.ts.map +0 -1
  662. package/dist/router/pattern-matching.js +0 -349
  663. package/dist/router/pattern-matching.js.map +0 -1
  664. package/dist/router/revalidation.d.ts +0 -44
  665. package/dist/router/revalidation.d.ts.map +0 -1
  666. package/dist/router/revalidation.js +0 -147
  667. package/dist/router/revalidation.js.map +0 -1
  668. package/dist/router/router-context.d.ts +0 -135
  669. package/dist/router/router-context.d.ts.map +0 -1
  670. package/dist/router/router-context.js +0 -36
  671. package/dist/router/router-context.js.map +0 -1
  672. package/dist/router/segment-resolution.d.ts +0 -127
  673. package/dist/router/segment-resolution.d.ts.map +0 -1
  674. package/dist/router/segment-resolution.js +0 -919
  675. package/dist/router/segment-resolution.js.map +0 -1
  676. package/dist/router/trie-matching.d.ts +0 -40
  677. package/dist/router/trie-matching.d.ts.map +0 -1
  678. package/dist/router/trie-matching.js +0 -127
  679. package/dist/router/trie-matching.js.map +0 -1
  680. package/dist/router/types.d.ts +0 -136
  681. package/dist/router/types.d.ts.map +0 -1
  682. package/dist/router/types.js +0 -7
  683. package/dist/router/types.js.map +0 -1
  684. package/dist/router.d.ts +0 -753
  685. package/dist/router.d.ts.map +0 -1
  686. package/dist/router.gen.d.ts +0 -6
  687. package/dist/router.gen.d.ts.map +0 -1
  688. package/dist/router.gen.js +0 -6
  689. package/dist/router.gen.js.map +0 -1
  690. package/dist/router.js +0 -1304
  691. package/dist/router.js.map +0 -1
  692. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  693. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  694. package/dist/rsc/__tests__/helpers.test.js +0 -140
  695. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  696. package/dist/rsc/handler.d.ts +0 -45
  697. package/dist/rsc/handler.d.ts.map +0 -1
  698. package/dist/rsc/handler.js +0 -1172
  699. package/dist/rsc/handler.js.map +0 -1
  700. package/dist/rsc/helpers.d.ts +0 -16
  701. package/dist/rsc/helpers.d.ts.map +0 -1
  702. package/dist/rsc/helpers.js +0 -55
  703. package/dist/rsc/helpers.js.map +0 -1
  704. package/dist/rsc/index.d.ts +0 -22
  705. package/dist/rsc/index.d.ts.map +0 -1
  706. package/dist/rsc/index.js +0 -23
  707. package/dist/rsc/index.js.map +0 -1
  708. package/dist/rsc/nonce.d.ts +0 -9
  709. package/dist/rsc/nonce.d.ts.map +0 -1
  710. package/dist/rsc/nonce.js +0 -18
  711. package/dist/rsc/nonce.js.map +0 -1
  712. package/dist/rsc/types.d.ts +0 -206
  713. package/dist/rsc/types.d.ts.map +0 -1
  714. package/dist/rsc/types.js +0 -8
  715. package/dist/rsc/types.js.map +0 -1
  716. package/dist/search-params.d.ts +0 -103
  717. package/dist/search-params.d.ts.map +0 -1
  718. package/dist/search-params.js +0 -74
  719. package/dist/search-params.js.map +0 -1
  720. package/dist/segment-system.d.ts +0 -75
  721. package/dist/segment-system.d.ts.map +0 -1
  722. package/dist/segment-system.js +0 -336
  723. package/dist/segment-system.js.map +0 -1
  724. package/dist/server/context.d.ts +0 -245
  725. package/dist/server/context.d.ts.map +0 -1
  726. package/dist/server/context.js +0 -197
  727. package/dist/server/context.js.map +0 -1
  728. package/dist/server/fetchable-loader-store.d.ts +0 -18
  729. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  730. package/dist/server/fetchable-loader-store.js +0 -18
  731. package/dist/server/fetchable-loader-store.js.map +0 -1
  732. package/dist/server/handle-store.d.ts +0 -85
  733. package/dist/server/handle-store.d.ts.map +0 -1
  734. package/dist/server/handle-store.js +0 -142
  735. package/dist/server/handle-store.js.map +0 -1
  736. package/dist/server/loader-registry.d.ts +0 -55
  737. package/dist/server/loader-registry.d.ts.map +0 -1
  738. package/dist/server/loader-registry.js +0 -132
  739. package/dist/server/loader-registry.js.map +0 -1
  740. package/dist/server/request-context.d.ts +0 -226
  741. package/dist/server/request-context.d.ts.map +0 -1
  742. package/dist/server/request-context.js +0 -290
  743. package/dist/server/request-context.js.map +0 -1
  744. package/dist/server/root-layout.d.ts +0 -4
  745. package/dist/server/root-layout.d.ts.map +0 -1
  746. package/dist/server/root-layout.js +0 -5
  747. package/dist/server/root-layout.js.map +0 -1
  748. package/dist/server.d.ts +0 -15
  749. package/dist/server.d.ts.map +0 -1
  750. package/dist/server.js +0 -20
  751. package/dist/server.js.map +0 -1
  752. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  753. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  754. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  755. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  756. package/dist/ssr/index.d.ts +0 -98
  757. package/dist/ssr/index.d.ts.map +0 -1
  758. package/dist/ssr/index.js +0 -158
  759. package/dist/ssr/index.js.map +0 -1
  760. package/dist/static-handler.d.ts +0 -50
  761. package/dist/static-handler.d.ts.map +0 -1
  762. package/dist/static-handler.gen.d.ts +0 -5
  763. package/dist/static-handler.gen.d.ts.map +0 -1
  764. package/dist/static-handler.gen.js +0 -5
  765. package/dist/static-handler.gen.js.map +0 -1
  766. package/dist/static-handler.js +0 -29
  767. package/dist/static-handler.js.map +0 -1
  768. package/dist/theme/ThemeProvider.d.ts +0 -20
  769. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  770. package/dist/theme/ThemeProvider.js +0 -240
  771. package/dist/theme/ThemeProvider.js.map +0 -1
  772. package/dist/theme/ThemeScript.d.ts +0 -48
  773. package/dist/theme/ThemeScript.d.ts.map +0 -1
  774. package/dist/theme/ThemeScript.js +0 -13
  775. package/dist/theme/ThemeScript.js.map +0 -1
  776. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  777. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  778. package/dist/theme/__tests__/theme.test.js +0 -103
  779. package/dist/theme/__tests__/theme.test.js.map +0 -1
  780. package/dist/theme/constants.d.ts +0 -29
  781. package/dist/theme/constants.d.ts.map +0 -1
  782. package/dist/theme/constants.js +0 -48
  783. package/dist/theme/constants.js.map +0 -1
  784. package/dist/theme/index.d.ts +0 -31
  785. package/dist/theme/index.d.ts.map +0 -1
  786. package/dist/theme/index.js +0 -36
  787. package/dist/theme/index.js.map +0 -1
  788. package/dist/theme/theme-context.d.ts +0 -40
  789. package/dist/theme/theme-context.d.ts.map +0 -1
  790. package/dist/theme/theme-context.js +0 -60
  791. package/dist/theme/theme-context.js.map +0 -1
  792. package/dist/theme/theme-script.d.ts +0 -27
  793. package/dist/theme/theme-script.d.ts.map +0 -1
  794. package/dist/theme/theme-script.js +0 -147
  795. package/dist/theme/theme-script.js.map +0 -1
  796. package/dist/theme/types.d.ts +0 -163
  797. package/dist/theme/types.d.ts.map +0 -1
  798. package/dist/theme/types.js +0 -11
  799. package/dist/theme/types.js.map +0 -1
  800. package/dist/theme/use-theme.d.ts +0 -12
  801. package/dist/theme/use-theme.d.ts.map +0 -1
  802. package/dist/theme/use-theme.js +0 -40
  803. package/dist/theme/use-theme.js.map +0 -1
  804. package/dist/types.d.ts +0 -1479
  805. package/dist/types.d.ts.map +0 -1
  806. package/dist/types.js +0 -10
  807. package/dist/types.js.map +0 -1
  808. package/dist/urls.d.ts +0 -441
  809. package/dist/urls.d.ts.map +0 -1
  810. package/dist/urls.gen.d.ts +0 -8
  811. package/dist/urls.gen.d.ts.map +0 -1
  812. package/dist/urls.gen.js +0 -8
  813. package/dist/urls.gen.js.map +0 -1
  814. package/dist/urls.js +0 -443
  815. package/dist/urls.js.map +0 -1
  816. package/dist/use-loader.d.ts +0 -127
  817. package/dist/use-loader.d.ts.map +0 -1
  818. package/dist/use-loader.js +0 -237
  819. package/dist/use-loader.js.map +0 -1
  820. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  821. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  822. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  823. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  824. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  825. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  826. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  827. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  828. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  829. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  830. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  831. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  832. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  833. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  834. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  835. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  836. package/dist/vite/ast-handler-extract.d.ts +0 -49
  837. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  838. package/dist/vite/ast-handler-extract.js +0 -249
  839. package/dist/vite/ast-handler-extract.js.map +0 -1
  840. package/dist/vite/expose-action-id.d.ts +0 -19
  841. package/dist/vite/expose-action-id.d.ts.map +0 -1
  842. package/dist/vite/expose-action-id.js +0 -250
  843. package/dist/vite/expose-action-id.js.map +0 -1
  844. package/dist/vite/expose-id-utils.d.ts +0 -69
  845. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  846. package/dist/vite/expose-id-utils.js +0 -289
  847. package/dist/vite/expose-id-utils.js.map +0 -1
  848. package/dist/vite/expose-internal-ids.d.ts +0 -22
  849. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  850. package/dist/vite/expose-internal-ids.js +0 -886
  851. package/dist/vite/expose-internal-ids.js.map +0 -1
  852. package/dist/vite/index.d.ts +0 -149
  853. package/dist/vite/index.d.ts.map +0 -1
  854. package/dist/vite/index.js.map +0 -1
  855. package/dist/vite/index.named-routes.gen.ts +0 -103
  856. package/dist/vite/package-resolution.d.ts +0 -43
  857. package/dist/vite/package-resolution.d.ts.map +0 -1
  858. package/dist/vite/package-resolution.js +0 -112
  859. package/dist/vite/package-resolution.js.map +0 -1
  860. package/dist/vite/virtual-entries.d.ts +0 -25
  861. package/dist/vite/virtual-entries.d.ts.map +0 -1
  862. package/dist/vite/virtual-entries.js +0 -110
  863. package/dist/vite/virtual-entries.js.map +0 -1
@@ -10,7 +10,11 @@ import type { ReactNode } from "react";
10
10
  import { invariant } from "../../errors";
11
11
  import { revalidate } from "../loader-resolution.js";
12
12
  import { evaluateRevalidation } from "../revalidation.js";
13
- import type { EntryData } from "../../server/context";
13
+ import {
14
+ getParallelEntries,
15
+ getParallelSlotEntries,
16
+ type EntryData,
17
+ } from "../../server/context";
14
18
  import type {
15
19
  HandlerContext,
16
20
  InternalHandlerContext,
@@ -38,6 +42,7 @@ import {
38
42
  import { getRouterContext } from "../router-context.js";
39
43
  import { resolveSink, safeEmit } from "../telemetry.js";
40
44
  import { track } from "../../server/context.js";
45
+ import { RSCRouterContext } from "../../server/context.js";
41
46
 
42
47
  // ---------------------------------------------------------------------------
43
48
  // Telemetry helpers
@@ -258,26 +263,62 @@ export async function resolveLoadersOnlyWithRevalidation<TEnv>(
258
263
  ): Promise<{ segments: ResolvedSegment[]; matchedIds: string[] }> {
259
264
  const allLoaderSegments: ResolvedSegment[] = [];
260
265
  const allMatchedIds: string[] = [];
266
+ const seenIds = new Set<string>();
267
+
268
+ async function collectEntryLoaders(
269
+ entry: EntryData,
270
+ belongsToRoute: boolean,
271
+ shortCodeOverride?: string,
272
+ ): Promise<void> {
273
+ // Skip if all loaders from this entry have already been resolved
274
+ // via a parent (e.g., cache boundary wrapping a layout with shared loaders).
275
+ const loaderEntries = entry.loader ?? [];
276
+ const sc = shortCodeOverride ?? entry.shortCode;
277
+ const allAlreadySeen =
278
+ loaderEntries.length > 0 &&
279
+ loaderEntries.every((le, i) =>
280
+ seenIds.has(`${sc}D${i}.${le.loader.$$id}`),
281
+ );
282
+ if (!allAlreadySeen) {
283
+ const { segments, matchedIds } = await resolveLoadersWithRevalidation(
284
+ entry,
285
+ context,
286
+ belongsToRoute,
287
+ clientSegmentIds,
288
+ prevParams,
289
+ request,
290
+ prevUrl,
291
+ nextUrl,
292
+ routeKey,
293
+ deps,
294
+ actionContext,
295
+ shortCodeOverride,
296
+ stale,
297
+ );
298
+ for (const seg of segments) {
299
+ if (!seenIds.has(seg.id)) {
300
+ seenIds.add(seg.id);
301
+ allLoaderSegments.push(seg);
302
+ }
303
+ }
304
+ allMatchedIds.push(...matchedIds);
305
+ }
306
+
307
+ const seenParallelEntryIds = new Set<string>();
308
+ for (const parallelEntry of getParallelEntries(entry.parallel)) {
309
+ if (seenParallelEntryIds.has(parallelEntry.id)) continue;
310
+ seenParallelEntryIds.add(parallelEntry.id);
311
+ await collectEntryLoaders(parallelEntry, belongsToRoute, entry.shortCode);
312
+ }
313
+
314
+ const childBelongsToRoute = belongsToRoute || entry.type === "route";
315
+ for (const layoutEntry of entry.layout) {
316
+ await collectEntryLoaders(layoutEntry, childBelongsToRoute);
317
+ }
318
+ }
261
319
 
262
320
  for (const entry of entries) {
263
- const belongsToRoute = entry.type === "route";
264
- const { segments, matchedIds } = await resolveLoadersWithRevalidation(
265
- entry,
266
- context,
267
- belongsToRoute,
268
- clientSegmentIds,
269
- prevParams,
270
- request,
271
- prevUrl,
272
- nextUrl,
273
- routeKey,
274
- deps,
275
- actionContext,
276
- undefined, // shortCodeOverride
277
- stale,
278
- );
279
- allLoaderSegments.push(...segments);
280
- allMatchedIds.push(...matchedIds);
321
+ await collectEntryLoaders(entry, entry.type === "route");
281
322
  }
282
323
 
283
324
  return { segments: allLoaderSegments, matchedIds: allMatchedIds };
@@ -301,22 +342,20 @@ export function buildEntryRevalidateMap(
301
342
  map.set(entry.shortCode, { entry, revalidate: entry.revalidate });
302
343
 
303
344
  if (entry.type !== "parallel") {
304
- for (const parallelEntry of entry.parallel) {
305
- if (parallelEntry.type === "parallel") {
306
- const slots = Object.keys(parallelEntry.handler) as `@${string}`[];
307
- for (const slot of slots) {
308
- const parallelId = `${parallelEntry.shortCode}.${slot}`;
309
- map.set(parallelId, {
310
- entry: parallelEntry,
311
- revalidate: parallelEntry.revalidate,
312
- });
313
- }
314
- }
345
+ for (const { slot, entry: parallelEntry } of getParallelSlotEntries(
346
+ entry.parallel,
347
+ )) {
348
+ const parallelParentShortCode = parentShortCode ?? entry.shortCode;
349
+ const parallelId = `${parallelParentShortCode}.${slot}`;
350
+ map.set(parallelId, {
351
+ entry: parallelEntry,
352
+ revalidate: parallelEntry.revalidate,
353
+ });
315
354
  }
316
355
  }
317
356
 
318
357
  for (const layoutEntry of entry.layout) {
319
- processEntry(layoutEntry);
358
+ processEntry(layoutEntry, entry.shortCode);
320
359
  }
321
360
  }
322
361
 
@@ -348,7 +387,10 @@ export async function resolveParallelSegmentsWithRevalidation<TEnv>(
348
387
  const segments: ResolvedSegment[] = [];
349
388
  const matchedIds: string[] = [];
350
389
 
351
- for (const parallelEntry of entry.parallel) {
390
+ const resolvedParallelEntries = new Set<string>();
391
+ for (const { slot, entry: parallelEntry } of getParallelSlotEntries(
392
+ entry.parallel,
393
+ )) {
352
394
  invariant(
353
395
  parallelEntry.type === "parallel",
354
396
  `Expected parallel entry, got: ${parallelEntry.type}`,
@@ -359,141 +401,61 @@ export async function resolveParallelSegmentsWithRevalidation<TEnv>(
359
401
  | ((ctx: HandlerContext<any, TEnv>) => ReactNode | Promise<ReactNode>)
360
402
  | ReactNode
361
403
  >;
404
+ // In production, static handler bodies are evicted and the slot value
405
+ // may be undefined. The static store holds the pre-rendered component.
406
+ // We defer the handler check until after tryStaticSlot.
407
+ const handler = slots[slot];
408
+
409
+ const parallelId = `${entry.shortCode}.${slot}`;
410
+
411
+ const isFullRefetch = clientSegmentIds.size === 0;
412
+ const isNewParent = !clientSegmentIds.has(entry.shortCode);
413
+ if (
414
+ isFullRefetch ||
415
+ clientSegmentIds.has(parallelId) ||
416
+ belongsToRoute ||
417
+ isNewParent
418
+ ) {
419
+ matchedIds.push(parallelId);
420
+ }
362
421
 
363
- for (const [slot, handler] of Object.entries(slots)) {
364
- const parallelId = `${entry.shortCode}.${slot}`;
365
-
366
- const isFullRefetch = clientSegmentIds.size === 0;
367
- // When the parent layout is new (not in client's segment set),
368
- // all its parallel children must be resolved and tracked.
369
- // Without this, navigating to a new layout with parallels
370
- // (e.g., BlogLayout with @sidebar) from a different route
371
- // would silently drop those parallel segments.
372
- const isNewParent = !clientSegmentIds.has(entry.shortCode);
373
- if (
374
- isFullRefetch ||
375
- clientSegmentIds.has(parallelId) ||
376
- belongsToRoute ||
377
- isNewParent
378
- ) {
379
- matchedIds.push(parallelId);
380
- }
381
-
382
- const shouldResolve = await (async () => {
383
- if (isFullRefetch) {
384
- if (isTraceActive()) {
385
- pushRevalidationTraceEntry({
386
- segmentId: parallelId,
387
- segmentType: "parallel",
388
- belongsToRoute,
389
- source: "parallel",
390
- defaultShouldRevalidate: true,
391
- finalShouldRevalidate: true,
392
- reason: "full-refetch",
393
- });
394
- }
395
- return true;
396
- }
397
- if (!clientSegmentIds.has(parallelId)) {
398
- const result = belongsToRoute || isNewParent;
399
- if (isTraceActive()) {
400
- pushRevalidationTraceEntry({
401
- segmentId: parallelId,
402
- segmentType: "parallel",
403
- belongsToRoute,
404
- source: "parallel",
405
- defaultShouldRevalidate: result,
406
- finalShouldRevalidate: result,
407
- reason: result ? "new-segment" : "skip-parent-chain",
408
- });
409
- }
410
- return result;
422
+ const shouldResolve = await (async () => {
423
+ if (isFullRefetch) {
424
+ if (isTraceActive()) {
425
+ pushRevalidationTraceEntry({
426
+ segmentId: parallelId,
427
+ segmentType: "parallel",
428
+ belongsToRoute,
429
+ source: "parallel",
430
+ defaultShouldRevalidate: true,
431
+ finalShouldRevalidate: true,
432
+ reason: "full-refetch",
433
+ });
411
434
  }
412
-
413
- const dummySegment: ResolvedSegment = {
414
- id: parallelId,
415
- namespace: parallelEntry.id,
416
- type: "parallel",
417
- index: 0,
418
- component: null as any,
419
- params,
420
- slot,
421
- belongsToRoute,
422
- parallelName: `${parallelEntry.id}.${slot}`,
423
- ...(parallelEntry.mountPath
424
- ? { mountPath: parallelEntry.mountPath }
425
- : {}),
426
- };
427
-
428
- return await evaluateRevalidation({
429
- segment: dummySegment,
430
- prevParams,
431
- getPrevSegment: null,
432
- request,
433
- prevUrl,
434
- nextUrl,
435
- revalidations: parallelEntry.revalidate.map((fn, i) => ({
436
- name: `revalidate${i}`,
437
- fn,
438
- })),
439
- routeKey,
440
- context,
441
- actionContext,
442
- stale,
443
- traceSource: "parallel",
444
- });
445
- })();
446
- emitRevalidationDecision(
447
- parallelId,
448
- context.pathname,
449
- routeKey,
450
- shouldResolve,
451
- );
452
-
453
- let component: ReactNode | undefined;
454
- if (shouldResolve) {
455
- component = await tryStaticSlot(parallelEntry, slot, parallelId);
435
+ return true;
456
436
  }
457
- if (component === undefined) {
458
- const hasLoadingFallback =
459
- parallelEntry.loading !== undefined &&
460
- parallelEntry.loading !== false;
461
- if (!shouldResolve) {
462
- component = null;
463
- } else if (hasLoadingFallback) {
464
- const result =
465
- typeof handler === "function" ? handler(context) : handler;
466
- if (result instanceof Promise) {
467
- const tracked = deps.trackHandler(result, {
468
- segmentId: parallelId,
469
- segmentType: "parallel",
470
- });
471
- observeStreamedHandler(
472
- tracked,
473
- parallelId,
474
- "parallel",
475
- context.pathname,
476
- routeKey,
477
- params,
478
- );
479
- component = tracked as ReactNode;
480
- } else {
481
- component = result as ReactNode;
482
- }
483
- } else {
484
- component =
485
- typeof handler === "function" ? await handler(context) : handler;
437
+ if (!clientSegmentIds.has(parallelId)) {
438
+ const result = belongsToRoute || isNewParent;
439
+ if (isTraceActive()) {
440
+ pushRevalidationTraceEntry({
441
+ segmentId: parallelId,
442
+ segmentType: "parallel",
443
+ belongsToRoute,
444
+ source: "parallel",
445
+ defaultShouldRevalidate: result,
446
+ finalShouldRevalidate: result,
447
+ reason: result ? "new-segment" : "skip-parent-chain",
448
+ });
486
449
  }
450
+ return result;
487
451
  }
488
452
 
489
- segments.push({
453
+ const dummySegment: ResolvedSegment = {
490
454
  id: parallelId,
491
455
  namespace: parallelEntry.id,
492
456
  type: "parallel",
493
457
  index: 0,
494
- component,
495
- loading: parallelEntry.loading === false ? null : parallelEntry.loading,
496
- transition: parallelEntry.transition,
458
+ component: null as any,
497
459
  params,
498
460
  slot,
499
461
  belongsToRoute,
@@ -501,28 +463,111 @@ export async function resolveParallelSegmentsWithRevalidation<TEnv>(
501
463
  ...(parallelEntry.mountPath
502
464
  ? { mountPath: parallelEntry.mountPath }
503
465
  : {}),
504
- });
505
- }
466
+ };
506
467
 
507
- if (!parallelEntry.loading) {
508
- const loaderResult = await resolveLoadersWithRevalidation(
509
- parallelEntry,
510
- context,
511
- belongsToRoute,
512
- clientSegmentIds,
468
+ return await evaluateRevalidation({
469
+ segment: dummySegment,
513
470
  prevParams,
471
+ getPrevSegment: null,
514
472
  request,
515
473
  prevUrl,
516
474
  nextUrl,
475
+ revalidations: parallelEntry.revalidate.map((fn, i) => ({
476
+ name: `revalidate${i}`,
477
+ fn,
478
+ })),
517
479
  routeKey,
518
- deps,
480
+ context,
519
481
  actionContext,
520
- entry.shortCode,
521
482
  stale,
522
- );
523
- segments.push(...loaderResult.segments);
524
- matchedIds.push(...loaderResult.matchedIds);
483
+ traceSource: "parallel",
484
+ });
485
+ })();
486
+ emitRevalidationDecision(
487
+ parallelId,
488
+ context.pathname,
489
+ routeKey,
490
+ shouldResolve,
491
+ );
492
+
493
+ let component: ReactNode | undefined;
494
+ if (shouldResolve) {
495
+ component = await tryStaticSlot(parallelEntry, slot, parallelId);
496
+ }
497
+ if (component === undefined) {
498
+ const hasLoadingFallback =
499
+ parallelEntry.loading !== undefined && parallelEntry.loading !== false;
500
+ if (!shouldResolve) {
501
+ component = null;
502
+ } else if (handler === undefined) {
503
+ // Handler evicted (production static slot) but static lookup missed.
504
+ // Nothing to render — use null so the client keeps its cached version.
505
+ component = null;
506
+ } else if (hasLoadingFallback) {
507
+ const result =
508
+ typeof handler === "function" ? handler(context) : handler;
509
+ if (result instanceof Promise) {
510
+ const tracked = deps.trackHandler(result, {
511
+ segmentId: parallelId,
512
+ segmentType: "parallel",
513
+ });
514
+ observeStreamedHandler(
515
+ tracked,
516
+ parallelId,
517
+ "parallel",
518
+ context.pathname,
519
+ routeKey,
520
+ params,
521
+ );
522
+ component = tracked as ReactNode;
523
+ } else {
524
+ component = result as ReactNode;
525
+ }
526
+ } else {
527
+ component =
528
+ typeof handler === "function" ? await handler(context) : handler;
529
+ }
525
530
  }
531
+
532
+ segments.push({
533
+ id: parallelId,
534
+ namespace: parallelEntry.id,
535
+ type: "parallel",
536
+ index: 0,
537
+ component,
538
+ loading: parallelEntry.loading === false ? null : parallelEntry.loading,
539
+ transition: parallelEntry.transition,
540
+ params,
541
+ slot,
542
+ belongsToRoute,
543
+ parallelName: `${parallelEntry.id}.${slot}`,
544
+ ...(parallelEntry.mountPath
545
+ ? { mountPath: parallelEntry.mountPath }
546
+ : {}),
547
+ });
548
+
549
+ if (resolvedParallelEntries.has(parallelEntry.id)) {
550
+ continue;
551
+ }
552
+
553
+ const loaderResult = await resolveLoadersWithRevalidation(
554
+ parallelEntry,
555
+ context,
556
+ belongsToRoute,
557
+ clientSegmentIds,
558
+ prevParams,
559
+ request,
560
+ prevUrl,
561
+ nextUrl,
562
+ routeKey,
563
+ deps,
564
+ actionContext,
565
+ entry.shortCode,
566
+ stale,
567
+ );
568
+ segments.push(...loaderResult.segments);
569
+ matchedIds.push(...loaderResult.matchedIds);
570
+ resolvedParallelEntries.add(parallelEntry.id);
526
571
  }
527
572
 
528
573
  return { segments, matchedIds };
@@ -678,10 +723,12 @@ export async function resolveEntryHandlerWithRevalidation<TEnv>(
678
723
  () => null,
679
724
  );
680
725
 
726
+ // Normalize void handlers (undefined) to null so the reconciler's
727
+ // component === null checks work consistently for both void and explicit null.
681
728
  const resolvedComponent =
682
729
  component && typeof component === "object" && "content" in component
683
- ? (component as { content: ReactNode }).content
684
- : component;
730
+ ? ((component as { content: ReactNode }).content ?? null)
731
+ : (component ?? null);
685
732
 
686
733
  const segment: ResolvedSegment = {
687
734
  id: entry.shortCode,
@@ -997,143 +1044,72 @@ export async function resolveOrphanLayoutWithRevalidation<TEnv>(
997
1044
  ...(orphan.mountPath ? { mountPath: orphan.mountPath } : {}),
998
1045
  });
999
1046
 
1000
- for (const parallelEntry of orphan.parallel) {
1047
+ const resolvedParallelEntries = new Set<string>();
1048
+ for (const { slot, entry: parallelEntry } of getParallelSlotEntries(
1049
+ orphan.parallel,
1050
+ )) {
1001
1051
  invariant(
1002
1052
  parallelEntry.type === "parallel",
1003
1053
  `Expected parallel entry, got: ${parallelEntry.type}`,
1004
1054
  );
1005
1055
 
1006
- const loaderResult = await resolveLoadersWithRevalidation(
1007
- parallelEntry,
1008
- context,
1009
- belongsToRoute,
1010
- clientSegmentIds,
1011
- prevParams,
1012
- request,
1013
- prevUrl,
1014
- nextUrl,
1015
- routeKey,
1016
- deps,
1017
- actionContext,
1018
- undefined,
1019
- stale,
1020
- );
1021
- segments.push(...loaderResult.segments);
1022
- matchedIds.push(...loaderResult.matchedIds);
1056
+ if (!resolvedParallelEntries.has(parallelEntry.id)) {
1057
+ const loaderResult = await resolveLoadersWithRevalidation(
1058
+ parallelEntry,
1059
+ context,
1060
+ belongsToRoute,
1061
+ clientSegmentIds,
1062
+ prevParams,
1063
+ request,
1064
+ prevUrl,
1065
+ nextUrl,
1066
+ routeKey,
1067
+ deps,
1068
+ actionContext,
1069
+ undefined,
1070
+ stale,
1071
+ );
1072
+ segments.push(...loaderResult.segments);
1073
+ matchedIds.push(...loaderResult.matchedIds);
1074
+ resolvedParallelEntries.add(parallelEntry.id);
1075
+ }
1023
1076
 
1024
1077
  const slots = parallelEntry.handler as Record<
1025
1078
  `@${string}`,
1026
1079
  | ((ctx: HandlerContext<any, TEnv>) => ReactNode | Promise<ReactNode>)
1027
1080
  | ReactNode
1028
1081
  >;
1082
+ // Handler may be undefined in production after static handler eviction.
1083
+ const handler = slots[slot];
1029
1084
 
1030
- for (const [slot, handler] of Object.entries(slots)) {
1031
- // Use orphan.shortCode (the parent layout) to match the SSR path
1032
- // (resolveParallelEntry receives parentShortCode = orphan.shortCode).
1033
- // Using parallelEntry.shortCode would generate IDs the client doesn't know about.
1034
- const parallelId = `${orphan.shortCode}.${slot}`;
1035
- matchedIds.push(parallelId);
1036
-
1037
- const shouldResolve = await (async () => {
1038
- if (!clientSegmentIds.has(parallelId)) {
1039
- if (isTraceActive()) {
1040
- pushRevalidationTraceEntry({
1041
- segmentId: parallelId,
1042
- segmentType: "parallel",
1043
- belongsToRoute,
1044
- source: "parallel",
1045
- defaultShouldRevalidate: true,
1046
- finalShouldRevalidate: true,
1047
- reason: "new-segment",
1048
- });
1049
- }
1050
- return true;
1051
- }
1052
-
1053
- const dummySegment: ResolvedSegment = {
1054
- id: parallelId,
1055
- namespace: parallelEntry.id,
1056
- type: "parallel",
1057
- index: 0,
1058
- component: null as any,
1059
- params,
1060
- slot,
1061
- belongsToRoute,
1062
- parallelName: `${parallelEntry.id}.${slot}`,
1063
- ...(parallelEntry.mountPath
1064
- ? { mountPath: parallelEntry.mountPath }
1065
- : {}),
1066
- };
1067
-
1068
- return await evaluateRevalidation({
1069
- segment: dummySegment,
1070
- prevParams,
1071
- getPrevSegment: null,
1072
- request,
1073
- prevUrl,
1074
- nextUrl,
1075
- revalidations: parallelEntry.revalidate.map((fn, i) => ({
1076
- name: `revalidate${i}`,
1077
- fn,
1078
- })),
1079
- routeKey,
1080
- context,
1081
- actionContext,
1082
- stale,
1083
- traceSource: "parallel",
1084
- });
1085
- })();
1086
- emitRevalidationDecision(
1087
- parallelId,
1088
- context.pathname,
1089
- routeKey,
1090
- shouldResolve,
1091
- );
1085
+ // Use orphan.shortCode (the parent layout) to match the SSR path
1086
+ // (resolveParallelEntry receives parentShortCode = orphan.shortCode).
1087
+ // Using parallelEntry.shortCode would generate IDs the client doesn't know about.
1088
+ const parallelId = `${orphan.shortCode}.${slot}`;
1089
+ matchedIds.push(parallelId);
1092
1090
 
1093
- let component: ReactNode | undefined;
1094
- if (shouldResolve) {
1095
- component = await tryStaticSlot(parallelEntry, slot, parallelId);
1096
- }
1097
- if (component === undefined) {
1098
- const hasLoadingFallback =
1099
- parallelEntry.loading !== undefined &&
1100
- parallelEntry.loading !== false;
1101
- if (!shouldResolve) {
1102
- component = null;
1103
- } else if (hasLoadingFallback) {
1104
- const result =
1105
- typeof handler === "function" ? handler(context) : handler;
1106
- if (result instanceof Promise) {
1107
- const tracked = deps.trackHandler(result, {
1108
- segmentId: parallelId,
1109
- segmentType: "parallel",
1110
- });
1111
- observeStreamedHandler(
1112
- tracked,
1113
- parallelId,
1114
- "parallel",
1115
- context.pathname,
1116
- routeKey,
1117
- params,
1118
- );
1119
- component = tracked as ReactNode;
1120
- } else {
1121
- component = result as ReactNode;
1122
- }
1123
- } else {
1124
- component =
1125
- typeof handler === "function" ? await handler(context) : handler;
1091
+ const shouldResolve = await (async () => {
1092
+ if (!clientSegmentIds.has(parallelId)) {
1093
+ if (isTraceActive()) {
1094
+ pushRevalidationTraceEntry({
1095
+ segmentId: parallelId,
1096
+ segmentType: "parallel",
1097
+ belongsToRoute,
1098
+ source: "parallel",
1099
+ defaultShouldRevalidate: true,
1100
+ finalShouldRevalidate: true,
1101
+ reason: "new-segment",
1102
+ });
1126
1103
  }
1104
+ return true;
1127
1105
  }
1128
1106
 
1129
- segments.push({
1107
+ const dummySegment: ResolvedSegment = {
1130
1108
  id: parallelId,
1131
1109
  namespace: parallelEntry.id,
1132
1110
  type: "parallel",
1133
1111
  index: 0,
1134
- component,
1135
- loading: parallelEntry.loading === false ? null : parallelEntry.loading,
1136
- transition: parallelEntry.transition,
1112
+ component: null as any,
1137
1113
  params,
1138
1114
  slot,
1139
1115
  belongsToRoute,
@@ -1141,8 +1117,87 @@ export async function resolveOrphanLayoutWithRevalidation<TEnv>(
1141
1117
  ...(parallelEntry.mountPath
1142
1118
  ? { mountPath: parallelEntry.mountPath }
1143
1119
  : {}),
1120
+ };
1121
+
1122
+ return await evaluateRevalidation({
1123
+ segment: dummySegment,
1124
+ prevParams,
1125
+ getPrevSegment: null,
1126
+ request,
1127
+ prevUrl,
1128
+ nextUrl,
1129
+ revalidations: parallelEntry.revalidate.map((fn, i) => ({
1130
+ name: `revalidate${i}`,
1131
+ fn,
1132
+ })),
1133
+ routeKey,
1134
+ context,
1135
+ actionContext,
1136
+ stale,
1137
+ traceSource: "parallel",
1144
1138
  });
1139
+ })();
1140
+ emitRevalidationDecision(
1141
+ parallelId,
1142
+ context.pathname,
1143
+ routeKey,
1144
+ shouldResolve,
1145
+ );
1146
+
1147
+ let component: ReactNode | undefined;
1148
+ if (shouldResolve) {
1149
+ component = await tryStaticSlot(parallelEntry, slot, parallelId);
1150
+ }
1151
+ if (component === undefined) {
1152
+ const hasLoadingFallback =
1153
+ parallelEntry.loading !== undefined && parallelEntry.loading !== false;
1154
+ if (!shouldResolve) {
1155
+ component = null;
1156
+ } else if (handler === undefined) {
1157
+ // Handler evicted (production static slot) but static lookup missed.
1158
+ component = null;
1159
+ } else if (hasLoadingFallback) {
1160
+ const result =
1161
+ typeof handler === "function" ? handler(context) : handler;
1162
+ if (result instanceof Promise) {
1163
+ const tracked = deps.trackHandler(result, {
1164
+ segmentId: parallelId,
1165
+ segmentType: "parallel",
1166
+ });
1167
+ observeStreamedHandler(
1168
+ tracked,
1169
+ parallelId,
1170
+ "parallel",
1171
+ context.pathname,
1172
+ routeKey,
1173
+ params,
1174
+ );
1175
+ component = tracked as ReactNode;
1176
+ } else {
1177
+ component = result as ReactNode;
1178
+ }
1179
+ } else {
1180
+ component =
1181
+ typeof handler === "function" ? await handler(context) : handler;
1182
+ }
1145
1183
  }
1184
+
1185
+ segments.push({
1186
+ id: parallelId,
1187
+ namespace: parallelEntry.id,
1188
+ type: "parallel",
1189
+ index: 0,
1190
+ component,
1191
+ loading: parallelEntry.loading === false ? null : parallelEntry.loading,
1192
+ transition: parallelEntry.transition,
1193
+ params,
1194
+ slot,
1195
+ belongsToRoute,
1196
+ parallelName: `${parallelEntry.id}.${slot}`,
1197
+ ...(parallelEntry.mountPath
1198
+ ? { mountPath: parallelEntry.mountPath }
1199
+ : {}),
1200
+ });
1146
1201
  }
1147
1202
 
1148
1203
  return { segments, matchedIds };
@@ -1194,6 +1249,10 @@ export async function resolveAllSegmentsWithRevalidation<TEnv>(
1194
1249
  }
1195
1250
 
1196
1251
  const nonParallelEntry = entry as Exclude<EntryData, { type: "parallel" }>;
1252
+ if (entry.type === "cache") {
1253
+ const store = RSCRouterContext.getStore();
1254
+ if (store) store.insideCacheScope = true;
1255
+ }
1197
1256
  const doneEntry = track(`segment:${entry.id}`, 1);
1198
1257
  const resolved = await resolveWithErrorBoundary(
1199
1258
  nonParallelEntry,