@rangojs/router 0.0.0-experimental.8678bb02 → 0.0.0-experimental.88a3b2f7

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 (897) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +408 -259
  4. package/package.json +2 -2
  5. package/skills/links/SKILL.md +3 -1
  6. package/skills/middleware/SKILL.md +2 -0
  7. package/skills/prerender/SKILL.md +110 -68
  8. package/skills/router-setup/SKILL.md +35 -0
  9. package/src/__internal.ts +1 -1
  10. package/src/browser/app-version.ts +14 -0
  11. package/src/browser/navigation-bridge.ts +16 -3
  12. package/src/browser/navigation-client.ts +64 -64
  13. package/src/browser/navigation-store.ts +43 -8
  14. package/src/browser/partial-update.ts +27 -5
  15. package/src/browser/prefetch/fetch.ts +8 -2
  16. package/src/browser/react/Link.tsx +44 -8
  17. package/src/browser/react/NavigationProvider.tsx +8 -1
  18. package/src/browser/react/context.ts +7 -2
  19. package/src/browser/react/use-handle.ts +9 -58
  20. package/src/browser/react/use-router.ts +21 -8
  21. package/src/browser/rsc-router.tsx +26 -3
  22. package/src/browser/scroll-restoration.ts +10 -8
  23. package/src/browser/server-action-bridge.ts +8 -18
  24. package/src/browser/types.ts +20 -5
  25. package/src/build/generate-manifest.ts +6 -6
  26. package/src/build/generate-route-types.ts +3 -0
  27. package/src/build/route-types/include-resolution.ts +8 -1
  28. package/src/build/route-types/router-processing.ts +211 -72
  29. package/src/build/route-types/scan-filter.ts +8 -1
  30. package/src/deps/browser.ts +0 -1
  31. package/src/handle.ts +40 -0
  32. package/src/index.rsc.ts +3 -1
  33. package/src/index.ts +8 -0
  34. package/src/prerender/store.ts +5 -4
  35. package/src/prerender.ts +138 -77
  36. package/src/reverse.ts +22 -1
  37. package/src/route-definition/dsl-helpers.ts +37 -18
  38. package/src/route-definition/index.ts +3 -0
  39. package/src/route-definition/redirect.ts +9 -1
  40. package/src/route-definition/resolve-handler-use.ts +149 -0
  41. package/src/route-types.ts +11 -0
  42. package/src/router/content-negotiation.ts +100 -1
  43. package/src/router/handler-context.ts +48 -15
  44. package/src/router/intercept-resolution.ts +9 -4
  45. package/src/router/loader-resolution.ts +115 -10
  46. package/src/router/match-api.ts +124 -189
  47. package/src/router/match-middleware/cache-lookup.ts +22 -7
  48. package/src/router/match-middleware/segment-resolution.ts +53 -0
  49. package/src/router/middleware-types.ts +0 -6
  50. package/src/router/middleware.ts +0 -3
  51. package/src/router/navigation-snapshot.ts +182 -0
  52. package/src/router/prerender-match.ts +110 -10
  53. package/src/router/preview-match.ts +30 -102
  54. package/src/router/request-classification.ts +310 -0
  55. package/src/router/route-snapshot.ts +245 -0
  56. package/src/router/router-interfaces.ts +36 -4
  57. package/src/router/router-options.ts +37 -11
  58. package/src/router/segment-resolution/fresh.ts +18 -5
  59. package/src/router/segment-resolution/revalidation.ts +18 -8
  60. package/src/router.ts +53 -5
  61. package/src/rsc/handler.ts +460 -393
  62. package/src/rsc/loader-fetch.ts +2 -7
  63. package/src/rsc/manifest-init.ts +5 -1
  64. package/src/rsc/progressive-enhancement.ts +5 -4
  65. package/src/rsc/rsc-rendering.ts +6 -4
  66. package/src/rsc/server-action.ts +2 -2
  67. package/src/rsc/ssr-setup.ts +2 -2
  68. package/src/rsc/types.ts +5 -4
  69. package/src/server/context.ts +39 -2
  70. package/src/server/loader-registry.ts +9 -8
  71. package/src/server/request-context.ts +91 -12
  72. package/src/ssr/index.tsx +3 -0
  73. package/src/static-handler.ts +18 -6
  74. package/src/types/cache-types.ts +4 -4
  75. package/src/types/handler-context.ts +17 -11
  76. package/src/types/loader-types.ts +32 -5
  77. package/src/types/route-entry.ts +1 -1
  78. package/src/urls/path-helper-types.ts +5 -1
  79. package/src/urls/path-helper.ts +47 -12
  80. package/src/urls/pattern-types.ts +12 -0
  81. package/src/urls/response-types.ts +16 -6
  82. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  83. package/src/vite/discovery/discover-routers.ts +5 -1
  84. package/src/vite/discovery/prerender-collection.ts +14 -1
  85. package/src/vite/discovery/state.ts +13 -4
  86. package/src/vite/index.ts +4 -0
  87. package/src/vite/plugin-types.ts +60 -5
  88. package/src/vite/plugins/performance-tracks.ts +64 -206
  89. package/src/vite/plugins/refresh-cmd.ts +88 -26
  90. package/src/vite/rango.ts +17 -11
  91. package/src/vite/router-discovery.ts +153 -34
  92. package/src/vite/utils/prerender-utils.ts +18 -0
  93. package/src/vite/utils/shared-utils.ts +3 -2
  94. package/dist/__internal.d.ts +0 -83
  95. package/dist/__internal.d.ts.map +0 -1
  96. package/dist/__internal.js +0 -19
  97. package/dist/__internal.js.map +0 -1
  98. package/dist/__mocks__/version.d.ts +0 -7
  99. package/dist/__mocks__/version.d.ts.map +0 -1
  100. package/dist/__mocks__/version.js +0 -7
  101. package/dist/__mocks__/version.js.map +0 -1
  102. package/dist/__tests__/client-href.test.d.ts +0 -2
  103. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  104. package/dist/__tests__/client-href.test.js +0 -74
  105. package/dist/__tests__/client-href.test.js.map +0 -1
  106. package/dist/__tests__/component-utils.test.d.ts +0 -2
  107. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  108. package/dist/__tests__/component-utils.test.js +0 -51
  109. package/dist/__tests__/component-utils.test.js.map +0 -1
  110. package/dist/__tests__/event-controller.test.d.ts +0 -2
  111. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  112. package/dist/__tests__/event-controller.test.js +0 -538
  113. package/dist/__tests__/event-controller.test.js.map +0 -1
  114. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  115. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  116. package/dist/__tests__/helpers/route-tree.js +0 -374
  117. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  118. package/dist/__tests__/match-result.test.d.ts +0 -2
  119. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  120. package/dist/__tests__/match-result.test.js +0 -154
  121. package/dist/__tests__/match-result.test.js.map +0 -1
  122. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  123. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  124. package/dist/__tests__/navigation-store.test.js +0 -440
  125. package/dist/__tests__/navigation-store.test.js.map +0 -1
  126. package/dist/__tests__/partial-update.test.d.ts +0 -2
  127. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  128. package/dist/__tests__/partial-update.test.js +0 -1009
  129. package/dist/__tests__/partial-update.test.js.map +0 -1
  130. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  131. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  132. package/dist/__tests__/reverse-types.test.js +0 -656
  133. package/dist/__tests__/reverse-types.test.js.map +0 -1
  134. package/dist/__tests__/route-definition.test.d.ts +0 -2
  135. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  136. package/dist/__tests__/route-definition.test.js +0 -55
  137. package/dist/__tests__/route-definition.test.js.map +0 -1
  138. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  139. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  140. package/dist/__tests__/router-helpers.test.js +0 -377
  141. package/dist/__tests__/router-helpers.test.js.map +0 -1
  142. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  143. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  144. package/dist/__tests__/router-integration-2.test.js +0 -426
  145. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  146. package/dist/__tests__/router-integration.test.d.ts +0 -2
  147. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  148. package/dist/__tests__/router-integration.test.js +0 -1051
  149. package/dist/__tests__/router-integration.test.js.map +0 -1
  150. package/dist/__tests__/search-params.test.d.ts +0 -5
  151. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  152. package/dist/__tests__/search-params.test.js +0 -306
  153. package/dist/__tests__/search-params.test.js.map +0 -1
  154. package/dist/__tests__/segment-system.test.d.ts +0 -2
  155. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  156. package/dist/__tests__/segment-system.test.js +0 -627
  157. package/dist/__tests__/segment-system.test.js.map +0 -1
  158. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  159. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  160. package/dist/__tests__/static-handler-types.test.js +0 -63
  161. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  162. package/dist/__tests__/urls.test.d.ts +0 -2
  163. package/dist/__tests__/urls.test.d.ts.map +0 -1
  164. package/dist/__tests__/urls.test.js +0 -421
  165. package/dist/__tests__/urls.test.js.map +0 -1
  166. package/dist/__tests__/use-mount.test.d.ts +0 -2
  167. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  168. package/dist/__tests__/use-mount.test.js +0 -35
  169. package/dist/__tests__/use-mount.test.js.map +0 -1
  170. package/dist/bin/rango.d.ts +0 -2
  171. package/dist/bin/rango.d.ts.map +0 -1
  172. package/dist/bin/rango.js.map +0 -1
  173. package/dist/browser/event-controller.d.ts +0 -191
  174. package/dist/browser/event-controller.d.ts.map +0 -1
  175. package/dist/browser/event-controller.js +0 -559
  176. package/dist/browser/event-controller.js.map +0 -1
  177. package/dist/browser/index.d.ts +0 -2
  178. package/dist/browser/index.d.ts.map +0 -1
  179. package/dist/browser/index.js +0 -14
  180. package/dist/browser/index.js.map +0 -1
  181. package/dist/browser/link-interceptor.d.ts +0 -38
  182. package/dist/browser/link-interceptor.d.ts.map +0 -1
  183. package/dist/browser/link-interceptor.js +0 -99
  184. package/dist/browser/link-interceptor.js.map +0 -1
  185. package/dist/browser/logging.d.ts +0 -10
  186. package/dist/browser/logging.d.ts.map +0 -1
  187. package/dist/browser/logging.js +0 -29
  188. package/dist/browser/logging.js.map +0 -1
  189. package/dist/browser/lru-cache.d.ts +0 -17
  190. package/dist/browser/lru-cache.d.ts.map +0 -1
  191. package/dist/browser/lru-cache.js +0 -50
  192. package/dist/browser/lru-cache.js.map +0 -1
  193. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  194. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  195. package/dist/browser/merge-segment-loaders.js +0 -102
  196. package/dist/browser/merge-segment-loaders.js.map +0 -1
  197. package/dist/browser/navigation-bridge.d.ts +0 -102
  198. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  199. package/dist/browser/navigation-bridge.js +0 -708
  200. package/dist/browser/navigation-bridge.js.map +0 -1
  201. package/dist/browser/navigation-client.d.ts +0 -25
  202. package/dist/browser/navigation-client.d.ts.map +0 -1
  203. package/dist/browser/navigation-client.js +0 -157
  204. package/dist/browser/navigation-client.js.map +0 -1
  205. package/dist/browser/navigation-store.d.ts +0 -101
  206. package/dist/browser/navigation-store.d.ts.map +0 -1
  207. package/dist/browser/navigation-store.js +0 -625
  208. package/dist/browser/navigation-store.js.map +0 -1
  209. package/dist/browser/partial-update.d.ts +0 -75
  210. package/dist/browser/partial-update.d.ts.map +0 -1
  211. package/dist/browser/partial-update.js +0 -426
  212. package/dist/browser/partial-update.js.map +0 -1
  213. package/dist/browser/react/Link.d.ts +0 -86
  214. package/dist/browser/react/Link.d.ts.map +0 -1
  215. package/dist/browser/react/Link.js +0 -128
  216. package/dist/browser/react/Link.js.map +0 -1
  217. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  218. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  219. package/dist/browser/react/NavigationProvider.js +0 -216
  220. package/dist/browser/react/NavigationProvider.js.map +0 -1
  221. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  222. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  223. package/dist/browser/react/ScrollRestoration.js +0 -57
  224. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  225. package/dist/browser/react/context.d.ts +0 -46
  226. package/dist/browser/react/context.d.ts.map +0 -1
  227. package/dist/browser/react/context.js +0 -10
  228. package/dist/browser/react/context.js.map +0 -1
  229. package/dist/browser/react/index.d.ts +0 -11
  230. package/dist/browser/react/index.d.ts.map +0 -1
  231. package/dist/browser/react/index.js +0 -22
  232. package/dist/browser/react/index.js.map +0 -1
  233. package/dist/browser/react/location-state-shared.d.ts +0 -63
  234. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  235. package/dist/browser/react/location-state-shared.js +0 -81
  236. package/dist/browser/react/location-state-shared.js.map +0 -1
  237. package/dist/browser/react/location-state.d.ts +0 -23
  238. package/dist/browser/react/location-state.d.ts.map +0 -1
  239. package/dist/browser/react/location-state.js +0 -29
  240. package/dist/browser/react/location-state.js.map +0 -1
  241. package/dist/browser/react/mount-context.d.ts +0 -24
  242. package/dist/browser/react/mount-context.d.ts.map +0 -1
  243. package/dist/browser/react/mount-context.js +0 -24
  244. package/dist/browser/react/mount-context.js.map +0 -1
  245. package/dist/browser/react/use-action.d.ts +0 -64
  246. package/dist/browser/react/use-action.d.ts.map +0 -1
  247. package/dist/browser/react/use-action.js +0 -134
  248. package/dist/browser/react/use-action.js.map +0 -1
  249. package/dist/browser/react/use-client-cache.d.ts +0 -41
  250. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  251. package/dist/browser/react/use-client-cache.js +0 -39
  252. package/dist/browser/react/use-client-cache.js.map +0 -1
  253. package/dist/browser/react/use-handle.d.ts +0 -31
  254. package/dist/browser/react/use-handle.d.ts.map +0 -1
  255. package/dist/browser/react/use-handle.js +0 -144
  256. package/dist/browser/react/use-handle.js.map +0 -1
  257. package/dist/browser/react/use-href.d.ts +0 -33
  258. package/dist/browser/react/use-href.d.ts.map +0 -1
  259. package/dist/browser/react/use-href.js +0 -39
  260. package/dist/browser/react/use-href.js.map +0 -1
  261. package/dist/browser/react/use-link-status.d.ts +0 -37
  262. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  263. package/dist/browser/react/use-link-status.js +0 -99
  264. package/dist/browser/react/use-link-status.js.map +0 -1
  265. package/dist/browser/react/use-mount.d.ts +0 -25
  266. package/dist/browser/react/use-mount.d.ts.map +0 -1
  267. package/dist/browser/react/use-mount.js +0 -30
  268. package/dist/browser/react/use-mount.js.map +0 -1
  269. package/dist/browser/react/use-navigation.d.ts +0 -27
  270. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  271. package/dist/browser/react/use-navigation.js +0 -87
  272. package/dist/browser/react/use-navigation.js.map +0 -1
  273. package/dist/browser/react/use-segments.d.ts +0 -38
  274. package/dist/browser/react/use-segments.d.ts.map +0 -1
  275. package/dist/browser/react/use-segments.js +0 -130
  276. package/dist/browser/react/use-segments.js.map +0 -1
  277. package/dist/browser/request-controller.d.ts +0 -26
  278. package/dist/browser/request-controller.d.ts.map +0 -1
  279. package/dist/browser/request-controller.js +0 -147
  280. package/dist/browser/request-controller.js.map +0 -1
  281. package/dist/browser/rsc-router.d.ts +0 -129
  282. package/dist/browser/rsc-router.d.ts.map +0 -1
  283. package/dist/browser/rsc-router.js +0 -195
  284. package/dist/browser/rsc-router.js.map +0 -1
  285. package/dist/browser/scroll-restoration.d.ts +0 -93
  286. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  287. package/dist/browser/scroll-restoration.js +0 -321
  288. package/dist/browser/scroll-restoration.js.map +0 -1
  289. package/dist/browser/segment-structure-assert.d.ts +0 -17
  290. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  291. package/dist/browser/segment-structure-assert.js +0 -59
  292. package/dist/browser/segment-structure-assert.js.map +0 -1
  293. package/dist/browser/server-action-bridge.d.ts +0 -26
  294. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  295. package/dist/browser/server-action-bridge.js +0 -668
  296. package/dist/browser/server-action-bridge.js.map +0 -1
  297. package/dist/browser/shallow.d.ts +0 -12
  298. package/dist/browser/shallow.d.ts.map +0 -1
  299. package/dist/browser/shallow.js +0 -34
  300. package/dist/browser/shallow.js.map +0 -1
  301. package/dist/browser/types.d.ts +0 -369
  302. package/dist/browser/types.d.ts.map +0 -1
  303. package/dist/browser/types.js +0 -2
  304. package/dist/browser/types.js.map +0 -1
  305. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  306. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  307. package/dist/build/__tests__/generate-cli.test.js +0 -237
  308. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  309. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  310. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  311. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  312. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  313. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  314. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  315. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  316. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  317. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  318. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  319. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  320. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  321. package/dist/build/generate-manifest.d.ts +0 -81
  322. package/dist/build/generate-manifest.d.ts.map +0 -1
  323. package/dist/build/generate-manifest.js +0 -276
  324. package/dist/build/generate-manifest.js.map +0 -1
  325. package/dist/build/generate-route-types.d.ts +0 -115
  326. package/dist/build/generate-route-types.d.ts.map +0 -1
  327. package/dist/build/generate-route-types.js +0 -740
  328. package/dist/build/generate-route-types.js.map +0 -1
  329. package/dist/build/index.d.ts +0 -21
  330. package/dist/build/index.d.ts.map +0 -1
  331. package/dist/build/index.js +0 -21
  332. package/dist/build/index.js.map +0 -1
  333. package/dist/build/route-trie.d.ts +0 -71
  334. package/dist/build/route-trie.d.ts.map +0 -1
  335. package/dist/build/route-trie.js +0 -175
  336. package/dist/build/route-trie.js.map +0 -1
  337. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  338. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  339. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  340. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  341. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  342. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  343. package/dist/cache/__tests__/document-cache.test.js +0 -345
  344. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  345. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  346. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  347. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  348. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  349. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  350. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  351. package/dist/cache/__tests__/memory-store.test.js +0 -367
  352. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  353. package/dist/cache/cache-scope.d.ts +0 -102
  354. package/dist/cache/cache-scope.d.ts.map +0 -1
  355. package/dist/cache/cache-scope.js +0 -440
  356. package/dist/cache/cache-scope.js.map +0 -1
  357. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  358. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  359. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  360. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  361. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  362. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  363. package/dist/cache/cf/cf-cache-store.js +0 -242
  364. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  365. package/dist/cache/cf/index.d.ts +0 -14
  366. package/dist/cache/cf/index.d.ts.map +0 -1
  367. package/dist/cache/cf/index.js +0 -17
  368. package/dist/cache/cf/index.js.map +0 -1
  369. package/dist/cache/document-cache.d.ts +0 -64
  370. package/dist/cache/document-cache.d.ts.map +0 -1
  371. package/dist/cache/document-cache.js +0 -228
  372. package/dist/cache/document-cache.js.map +0 -1
  373. package/dist/cache/index.d.ts +0 -19
  374. package/dist/cache/index.d.ts.map +0 -1
  375. package/dist/cache/index.js +0 -21
  376. package/dist/cache/index.js.map +0 -1
  377. package/dist/cache/memory-segment-store.d.ts +0 -110
  378. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  379. package/dist/cache/memory-segment-store.js +0 -117
  380. package/dist/cache/memory-segment-store.js.map +0 -1
  381. package/dist/cache/memory-store.d.ts +0 -41
  382. package/dist/cache/memory-store.d.ts.map +0 -1
  383. package/dist/cache/memory-store.js +0 -191
  384. package/dist/cache/memory-store.js.map +0 -1
  385. package/dist/cache/types.d.ts +0 -317
  386. package/dist/cache/types.d.ts.map +0 -1
  387. package/dist/cache/types.js +0 -12
  388. package/dist/cache/types.js.map +0 -1
  389. package/dist/client.d.ts +0 -248
  390. package/dist/client.d.ts.map +0 -1
  391. package/dist/client.js +0 -367
  392. package/dist/client.js.map +0 -1
  393. package/dist/client.rsc.d.ts +0 -26
  394. package/dist/client.rsc.d.ts.map +0 -1
  395. package/dist/client.rsc.js +0 -46
  396. package/dist/client.rsc.js.map +0 -1
  397. package/dist/component-utils.d.ts +0 -36
  398. package/dist/component-utils.d.ts.map +0 -1
  399. package/dist/component-utils.js +0 -61
  400. package/dist/component-utils.js.map +0 -1
  401. package/dist/components/DefaultDocument.d.ts +0 -13
  402. package/dist/components/DefaultDocument.d.ts.map +0 -1
  403. package/dist/components/DefaultDocument.js +0 -15
  404. package/dist/components/DefaultDocument.js.map +0 -1
  405. package/dist/debug.d.ts +0 -58
  406. package/dist/debug.d.ts.map +0 -1
  407. package/dist/debug.js +0 -157
  408. package/dist/debug.js.map +0 -1
  409. package/dist/default-error-boundary.d.ts +0 -11
  410. package/dist/default-error-boundary.d.ts.map +0 -1
  411. package/dist/default-error-boundary.js +0 -45
  412. package/dist/default-error-boundary.js.map +0 -1
  413. package/dist/deps/browser.d.ts +0 -2
  414. package/dist/deps/browser.d.ts.map +0 -1
  415. package/dist/deps/browser.js +0 -3
  416. package/dist/deps/browser.js.map +0 -1
  417. package/dist/deps/html-stream-client.d.ts +0 -2
  418. package/dist/deps/html-stream-client.d.ts.map +0 -1
  419. package/dist/deps/html-stream-client.js +0 -3
  420. package/dist/deps/html-stream-client.js.map +0 -1
  421. package/dist/deps/html-stream-server.d.ts +0 -2
  422. package/dist/deps/html-stream-server.d.ts.map +0 -1
  423. package/dist/deps/html-stream-server.js +0 -3
  424. package/dist/deps/html-stream-server.js.map +0 -1
  425. package/dist/deps/rsc.d.ts +0 -2
  426. package/dist/deps/rsc.d.ts.map +0 -1
  427. package/dist/deps/rsc.js +0 -4
  428. package/dist/deps/rsc.js.map +0 -1
  429. package/dist/deps/ssr.d.ts +0 -2
  430. package/dist/deps/ssr.d.ts.map +0 -1
  431. package/dist/deps/ssr.js +0 -3
  432. package/dist/deps/ssr.js.map +0 -1
  433. package/dist/errors.d.ts +0 -174
  434. package/dist/errors.d.ts.map +0 -1
  435. package/dist/errors.js +0 -241
  436. package/dist/errors.js.map +0 -1
  437. package/dist/handle.d.ts +0 -78
  438. package/dist/handle.d.ts.map +0 -1
  439. package/dist/handle.js +0 -82
  440. package/dist/handle.js.map +0 -1
  441. package/dist/handles/MetaTags.d.ts +0 -14
  442. package/dist/handles/MetaTags.d.ts.map +0 -1
  443. package/dist/handles/MetaTags.js +0 -136
  444. package/dist/handles/MetaTags.js.map +0 -1
  445. package/dist/handles/index.d.ts +0 -6
  446. package/dist/handles/index.d.ts.map +0 -1
  447. package/dist/handles/index.js +0 -6
  448. package/dist/handles/index.js.map +0 -1
  449. package/dist/handles/meta.d.ts +0 -39
  450. package/dist/handles/meta.d.ts.map +0 -1
  451. package/dist/handles/meta.js +0 -202
  452. package/dist/handles/meta.js.map +0 -1
  453. package/dist/host/__tests__/errors.test.d.ts +0 -2
  454. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  455. package/dist/host/__tests__/errors.test.js +0 -76
  456. package/dist/host/__tests__/errors.test.js.map +0 -1
  457. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  458. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  459. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  460. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  461. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  462. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  463. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  464. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  465. package/dist/host/__tests__/router.test.d.ts +0 -2
  466. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  467. package/dist/host/__tests__/router.test.js +0 -241
  468. package/dist/host/__tests__/router.test.js.map +0 -1
  469. package/dist/host/__tests__/testing.test.d.ts +0 -2
  470. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  471. package/dist/host/__tests__/testing.test.js +0 -64
  472. package/dist/host/__tests__/testing.test.js.map +0 -1
  473. package/dist/host/__tests__/utils.test.d.ts +0 -2
  474. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  475. package/dist/host/__tests__/utils.test.js +0 -29
  476. package/dist/host/__tests__/utils.test.js.map +0 -1
  477. package/dist/host/cookie-handler.d.ts +0 -34
  478. package/dist/host/cookie-handler.d.ts.map +0 -1
  479. package/dist/host/cookie-handler.js +0 -124
  480. package/dist/host/cookie-handler.js.map +0 -1
  481. package/dist/host/errors.d.ts +0 -56
  482. package/dist/host/errors.d.ts.map +0 -1
  483. package/dist/host/errors.js +0 -79
  484. package/dist/host/errors.js.map +0 -1
  485. package/dist/host/index.d.ts +0 -29
  486. package/dist/host/index.d.ts.map +0 -1
  487. package/dist/host/index.js +0 -32
  488. package/dist/host/index.js.map +0 -1
  489. package/dist/host/pattern-matcher.d.ts +0 -36
  490. package/dist/host/pattern-matcher.d.ts.map +0 -1
  491. package/dist/host/pattern-matcher.js +0 -172
  492. package/dist/host/pattern-matcher.js.map +0 -1
  493. package/dist/host/router.d.ts +0 -26
  494. package/dist/host/router.d.ts.map +0 -1
  495. package/dist/host/router.js +0 -218
  496. package/dist/host/router.js.map +0 -1
  497. package/dist/host/testing.d.ts +0 -36
  498. package/dist/host/testing.d.ts.map +0 -1
  499. package/dist/host/testing.js +0 -55
  500. package/dist/host/testing.js.map +0 -1
  501. package/dist/host/types.d.ts +0 -115
  502. package/dist/host/types.d.ts.map +0 -1
  503. package/dist/host/types.js +0 -7
  504. package/dist/host/types.js.map +0 -1
  505. package/dist/host/utils.d.ts +0 -21
  506. package/dist/host/utils.d.ts.map +0 -1
  507. package/dist/host/utils.js +0 -23
  508. package/dist/host/utils.js.map +0 -1
  509. package/dist/href-client.d.ts +0 -131
  510. package/dist/href-client.d.ts.map +0 -1
  511. package/dist/href-client.js +0 -64
  512. package/dist/href-client.js.map +0 -1
  513. package/dist/href-context.d.ts +0 -29
  514. package/dist/href-context.d.ts.map +0 -1
  515. package/dist/href-context.js +0 -21
  516. package/dist/href-context.js.map +0 -1
  517. package/dist/index.d.ts +0 -73
  518. package/dist/index.d.ts.map +0 -1
  519. package/dist/index.js +0 -91
  520. package/dist/index.js.map +0 -1
  521. package/dist/index.rsc.d.ts +0 -32
  522. package/dist/index.rsc.d.ts.map +0 -1
  523. package/dist/index.rsc.js +0 -40
  524. package/dist/index.rsc.js.map +0 -1
  525. package/dist/internal-debug.d.ts +0 -2
  526. package/dist/internal-debug.d.ts.map +0 -1
  527. package/dist/internal-debug.js +0 -5
  528. package/dist/internal-debug.js.map +0 -1
  529. package/dist/loader.d.ts +0 -14
  530. package/dist/loader.d.ts.map +0 -1
  531. package/dist/loader.js +0 -20
  532. package/dist/loader.js.map +0 -1
  533. package/dist/loader.rsc.d.ts +0 -19
  534. package/dist/loader.rsc.d.ts.map +0 -1
  535. package/dist/loader.rsc.js +0 -99
  536. package/dist/loader.rsc.js.map +0 -1
  537. package/dist/network-error-thrower.d.ts +0 -17
  538. package/dist/network-error-thrower.d.ts.map +0 -1
  539. package/dist/network-error-thrower.js +0 -14
  540. package/dist/network-error-thrower.js.map +0 -1
  541. package/dist/outlet-context.d.ts +0 -13
  542. package/dist/outlet-context.d.ts.map +0 -1
  543. package/dist/outlet-context.js +0 -3
  544. package/dist/outlet-context.js.map +0 -1
  545. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  546. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  547. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  548. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  549. package/dist/prerender/param-hash.d.ts +0 -16
  550. package/dist/prerender/param-hash.d.ts.map +0 -1
  551. package/dist/prerender/param-hash.js +0 -36
  552. package/dist/prerender/param-hash.js.map +0 -1
  553. package/dist/prerender/store.d.ts +0 -38
  554. package/dist/prerender/store.d.ts.map +0 -1
  555. package/dist/prerender/store.js +0 -61
  556. package/dist/prerender/store.js.map +0 -1
  557. package/dist/prerender.d.ts +0 -66
  558. package/dist/prerender.d.ts.map +0 -1
  559. package/dist/prerender.js +0 -57
  560. package/dist/prerender.js.map +0 -1
  561. package/dist/reverse.d.ts +0 -196
  562. package/dist/reverse.d.ts.map +0 -1
  563. package/dist/reverse.js +0 -78
  564. package/dist/reverse.js.map +0 -1
  565. package/dist/root-error-boundary.d.ts +0 -33
  566. package/dist/root-error-boundary.d.ts.map +0 -1
  567. package/dist/root-error-boundary.js +0 -165
  568. package/dist/root-error-boundary.js.map +0 -1
  569. package/dist/route-content-wrapper.d.ts +0 -46
  570. package/dist/route-content-wrapper.d.ts.map +0 -1
  571. package/dist/route-content-wrapper.js +0 -77
  572. package/dist/route-content-wrapper.js.map +0 -1
  573. package/dist/route-definition.d.ts +0 -421
  574. package/dist/route-definition.d.ts.map +0 -1
  575. package/dist/route-definition.js +0 -868
  576. package/dist/route-definition.js.map +0 -1
  577. package/dist/route-map-builder.d.ts +0 -155
  578. package/dist/route-map-builder.d.ts.map +0 -1
  579. package/dist/route-map-builder.js +0 -237
  580. package/dist/route-map-builder.js.map +0 -1
  581. package/dist/route-types.d.ts +0 -165
  582. package/dist/route-types.d.ts.map +0 -1
  583. package/dist/route-types.js +0 -7
  584. package/dist/route-types.js.map +0 -1
  585. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  586. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  587. package/dist/router/__tests__/handler-context.test.js +0 -65
  588. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  589. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  590. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  591. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  592. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  593. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  594. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  595. package/dist/router/__tests__/match-context.test.js +0 -92
  596. package/dist/router/__tests__/match-context.test.js.map +0 -1
  597. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  598. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  599. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  600. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  601. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  602. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  603. package/dist/router/__tests__/match-result.test.js +0 -457
  604. package/dist/router/__tests__/match-result.test.js.map +0 -1
  605. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  606. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  607. package/dist/router/__tests__/on-error.test.js +0 -678
  608. package/dist/router/__tests__/on-error.test.js.map +0 -1
  609. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  610. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  611. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  612. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  613. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  614. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  615. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  616. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  617. package/dist/router/error-handling.d.ts +0 -77
  618. package/dist/router/error-handling.d.ts.map +0 -1
  619. package/dist/router/error-handling.js +0 -202
  620. package/dist/router/error-handling.js.map +0 -1
  621. package/dist/router/handler-context.d.ts +0 -20
  622. package/dist/router/handler-context.d.ts.map +0 -1
  623. package/dist/router/handler-context.js +0 -198
  624. package/dist/router/handler-context.js.map +0 -1
  625. package/dist/router/intercept-resolution.d.ts +0 -66
  626. package/dist/router/intercept-resolution.d.ts.map +0 -1
  627. package/dist/router/intercept-resolution.js +0 -246
  628. package/dist/router/intercept-resolution.js.map +0 -1
  629. package/dist/router/loader-resolution.d.ts +0 -64
  630. package/dist/router/loader-resolution.d.ts.map +0 -1
  631. package/dist/router/loader-resolution.js +0 -284
  632. package/dist/router/loader-resolution.js.map +0 -1
  633. package/dist/router/logging.d.ts +0 -15
  634. package/dist/router/logging.d.ts.map +0 -1
  635. package/dist/router/logging.js +0 -99
  636. package/dist/router/logging.js.map +0 -1
  637. package/dist/router/manifest.d.ts +0 -22
  638. package/dist/router/manifest.d.ts.map +0 -1
  639. package/dist/router/manifest.js +0 -181
  640. package/dist/router/manifest.js.map +0 -1
  641. package/dist/router/match-api.d.ts +0 -35
  642. package/dist/router/match-api.d.ts.map +0 -1
  643. package/dist/router/match-api.js +0 -406
  644. package/dist/router/match-api.js.map +0 -1
  645. package/dist/router/match-context.d.ts +0 -206
  646. package/dist/router/match-context.d.ts.map +0 -1
  647. package/dist/router/match-context.js +0 -17
  648. package/dist/router/match-context.js.map +0 -1
  649. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  650. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  651. package/dist/router/match-middleware/background-revalidation.js +0 -75
  652. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  653. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  654. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  655. package/dist/router/match-middleware/cache-lookup.js +0 -257
  656. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  657. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  658. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  659. package/dist/router/match-middleware/cache-store.js +0 -108
  660. package/dist/router/match-middleware/cache-store.js.map +0 -1
  661. package/dist/router/match-middleware/index.d.ts +0 -81
  662. package/dist/router/match-middleware/index.d.ts.map +0 -1
  663. package/dist/router/match-middleware/index.js +0 -80
  664. package/dist/router/match-middleware/index.js.map +0 -1
  665. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  666. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  667. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  668. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  669. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  670. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  671. package/dist/router/match-middleware/segment-resolution.js +0 -53
  672. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  673. package/dist/router/match-pipelines.d.ts +0 -147
  674. package/dist/router/match-pipelines.d.ts.map +0 -1
  675. package/dist/router/match-pipelines.js +0 -82
  676. package/dist/router/match-pipelines.js.map +0 -1
  677. package/dist/router/match-result.d.ts +0 -126
  678. package/dist/router/match-result.d.ts.map +0 -1
  679. package/dist/router/match-result.js +0 -93
  680. package/dist/router/match-result.js.map +0 -1
  681. package/dist/router/metrics.d.ts +0 -20
  682. package/dist/router/metrics.d.ts.map +0 -1
  683. package/dist/router/metrics.js +0 -47
  684. package/dist/router/metrics.js.map +0 -1
  685. package/dist/router/middleware.d.ts +0 -249
  686. package/dist/router/middleware.d.ts.map +0 -1
  687. package/dist/router/middleware.js +0 -434
  688. package/dist/router/middleware.js.map +0 -1
  689. package/dist/router/middleware.test.d.ts +0 -2
  690. package/dist/router/middleware.test.d.ts.map +0 -1
  691. package/dist/router/middleware.test.js +0 -816
  692. package/dist/router/middleware.test.js.map +0 -1
  693. package/dist/router/pattern-matching.d.ts +0 -149
  694. package/dist/router/pattern-matching.d.ts.map +0 -1
  695. package/dist/router/pattern-matching.js +0 -349
  696. package/dist/router/pattern-matching.js.map +0 -1
  697. package/dist/router/revalidation.d.ts +0 -44
  698. package/dist/router/revalidation.d.ts.map +0 -1
  699. package/dist/router/revalidation.js +0 -147
  700. package/dist/router/revalidation.js.map +0 -1
  701. package/dist/router/router-context.d.ts +0 -135
  702. package/dist/router/router-context.d.ts.map +0 -1
  703. package/dist/router/router-context.js +0 -36
  704. package/dist/router/router-context.js.map +0 -1
  705. package/dist/router/segment-resolution.d.ts +0 -127
  706. package/dist/router/segment-resolution.d.ts.map +0 -1
  707. package/dist/router/segment-resolution.js +0 -919
  708. package/dist/router/segment-resolution.js.map +0 -1
  709. package/dist/router/trie-matching.d.ts +0 -40
  710. package/dist/router/trie-matching.d.ts.map +0 -1
  711. package/dist/router/trie-matching.js +0 -127
  712. package/dist/router/trie-matching.js.map +0 -1
  713. package/dist/router/types.d.ts +0 -136
  714. package/dist/router/types.d.ts.map +0 -1
  715. package/dist/router/types.js +0 -7
  716. package/dist/router/types.js.map +0 -1
  717. package/dist/router.d.ts +0 -753
  718. package/dist/router.d.ts.map +0 -1
  719. package/dist/router.gen.d.ts +0 -6
  720. package/dist/router.gen.d.ts.map +0 -1
  721. package/dist/router.gen.js +0 -6
  722. package/dist/router.gen.js.map +0 -1
  723. package/dist/router.js +0 -1304
  724. package/dist/router.js.map +0 -1
  725. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  726. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  727. package/dist/rsc/__tests__/helpers.test.js +0 -140
  728. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  729. package/dist/rsc/handler.d.ts +0 -45
  730. package/dist/rsc/handler.d.ts.map +0 -1
  731. package/dist/rsc/handler.js +0 -1172
  732. package/dist/rsc/handler.js.map +0 -1
  733. package/dist/rsc/helpers.d.ts +0 -16
  734. package/dist/rsc/helpers.d.ts.map +0 -1
  735. package/dist/rsc/helpers.js +0 -55
  736. package/dist/rsc/helpers.js.map +0 -1
  737. package/dist/rsc/index.d.ts +0 -22
  738. package/dist/rsc/index.d.ts.map +0 -1
  739. package/dist/rsc/index.js +0 -23
  740. package/dist/rsc/index.js.map +0 -1
  741. package/dist/rsc/nonce.d.ts +0 -9
  742. package/dist/rsc/nonce.d.ts.map +0 -1
  743. package/dist/rsc/nonce.js +0 -18
  744. package/dist/rsc/nonce.js.map +0 -1
  745. package/dist/rsc/types.d.ts +0 -206
  746. package/dist/rsc/types.d.ts.map +0 -1
  747. package/dist/rsc/types.js +0 -8
  748. package/dist/rsc/types.js.map +0 -1
  749. package/dist/search-params.d.ts +0 -103
  750. package/dist/search-params.d.ts.map +0 -1
  751. package/dist/search-params.js +0 -74
  752. package/dist/search-params.js.map +0 -1
  753. package/dist/segment-system.d.ts +0 -75
  754. package/dist/segment-system.d.ts.map +0 -1
  755. package/dist/segment-system.js +0 -336
  756. package/dist/segment-system.js.map +0 -1
  757. package/dist/server/context.d.ts +0 -245
  758. package/dist/server/context.d.ts.map +0 -1
  759. package/dist/server/context.js +0 -197
  760. package/dist/server/context.js.map +0 -1
  761. package/dist/server/fetchable-loader-store.d.ts +0 -18
  762. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  763. package/dist/server/fetchable-loader-store.js +0 -18
  764. package/dist/server/fetchable-loader-store.js.map +0 -1
  765. package/dist/server/handle-store.d.ts +0 -85
  766. package/dist/server/handle-store.d.ts.map +0 -1
  767. package/dist/server/handle-store.js +0 -142
  768. package/dist/server/handle-store.js.map +0 -1
  769. package/dist/server/loader-registry.d.ts +0 -55
  770. package/dist/server/loader-registry.d.ts.map +0 -1
  771. package/dist/server/loader-registry.js +0 -132
  772. package/dist/server/loader-registry.js.map +0 -1
  773. package/dist/server/request-context.d.ts +0 -226
  774. package/dist/server/request-context.d.ts.map +0 -1
  775. package/dist/server/request-context.js +0 -290
  776. package/dist/server/request-context.js.map +0 -1
  777. package/dist/server/root-layout.d.ts +0 -4
  778. package/dist/server/root-layout.d.ts.map +0 -1
  779. package/dist/server/root-layout.js +0 -5
  780. package/dist/server/root-layout.js.map +0 -1
  781. package/dist/server.d.ts +0 -15
  782. package/dist/server.d.ts.map +0 -1
  783. package/dist/server.js +0 -20
  784. package/dist/server.js.map +0 -1
  785. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  786. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  787. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  788. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  789. package/dist/ssr/index.d.ts +0 -98
  790. package/dist/ssr/index.d.ts.map +0 -1
  791. package/dist/ssr/index.js +0 -158
  792. package/dist/ssr/index.js.map +0 -1
  793. package/dist/static-handler.d.ts +0 -50
  794. package/dist/static-handler.d.ts.map +0 -1
  795. package/dist/static-handler.gen.d.ts +0 -5
  796. package/dist/static-handler.gen.d.ts.map +0 -1
  797. package/dist/static-handler.gen.js +0 -5
  798. package/dist/static-handler.gen.js.map +0 -1
  799. package/dist/static-handler.js +0 -29
  800. package/dist/static-handler.js.map +0 -1
  801. package/dist/theme/ThemeProvider.d.ts +0 -20
  802. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  803. package/dist/theme/ThemeProvider.js +0 -240
  804. package/dist/theme/ThemeProvider.js.map +0 -1
  805. package/dist/theme/ThemeScript.d.ts +0 -48
  806. package/dist/theme/ThemeScript.d.ts.map +0 -1
  807. package/dist/theme/ThemeScript.js +0 -13
  808. package/dist/theme/ThemeScript.js.map +0 -1
  809. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  810. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  811. package/dist/theme/__tests__/theme.test.js +0 -103
  812. package/dist/theme/__tests__/theme.test.js.map +0 -1
  813. package/dist/theme/constants.d.ts +0 -29
  814. package/dist/theme/constants.d.ts.map +0 -1
  815. package/dist/theme/constants.js +0 -48
  816. package/dist/theme/constants.js.map +0 -1
  817. package/dist/theme/index.d.ts +0 -31
  818. package/dist/theme/index.d.ts.map +0 -1
  819. package/dist/theme/index.js +0 -36
  820. package/dist/theme/index.js.map +0 -1
  821. package/dist/theme/theme-context.d.ts +0 -40
  822. package/dist/theme/theme-context.d.ts.map +0 -1
  823. package/dist/theme/theme-context.js +0 -60
  824. package/dist/theme/theme-context.js.map +0 -1
  825. package/dist/theme/theme-script.d.ts +0 -27
  826. package/dist/theme/theme-script.d.ts.map +0 -1
  827. package/dist/theme/theme-script.js +0 -147
  828. package/dist/theme/theme-script.js.map +0 -1
  829. package/dist/theme/types.d.ts +0 -163
  830. package/dist/theme/types.d.ts.map +0 -1
  831. package/dist/theme/types.js +0 -11
  832. package/dist/theme/types.js.map +0 -1
  833. package/dist/theme/use-theme.d.ts +0 -12
  834. package/dist/theme/use-theme.d.ts.map +0 -1
  835. package/dist/theme/use-theme.js +0 -40
  836. package/dist/theme/use-theme.js.map +0 -1
  837. package/dist/types.d.ts +0 -1479
  838. package/dist/types.d.ts.map +0 -1
  839. package/dist/types.js +0 -10
  840. package/dist/types.js.map +0 -1
  841. package/dist/urls.d.ts +0 -441
  842. package/dist/urls.d.ts.map +0 -1
  843. package/dist/urls.gen.d.ts +0 -8
  844. package/dist/urls.gen.d.ts.map +0 -1
  845. package/dist/urls.gen.js +0 -8
  846. package/dist/urls.gen.js.map +0 -1
  847. package/dist/urls.js +0 -443
  848. package/dist/urls.js.map +0 -1
  849. package/dist/use-loader.d.ts +0 -127
  850. package/dist/use-loader.d.ts.map +0 -1
  851. package/dist/use-loader.js +0 -237
  852. package/dist/use-loader.js.map +0 -1
  853. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  854. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  855. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  856. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  857. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  858. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  859. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  860. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  861. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  862. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  863. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  864. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  865. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  866. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  867. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  868. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  869. package/dist/vite/ast-handler-extract.d.ts +0 -49
  870. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  871. package/dist/vite/ast-handler-extract.js +0 -249
  872. package/dist/vite/ast-handler-extract.js.map +0 -1
  873. package/dist/vite/expose-action-id.d.ts +0 -19
  874. package/dist/vite/expose-action-id.d.ts.map +0 -1
  875. package/dist/vite/expose-action-id.js +0 -250
  876. package/dist/vite/expose-action-id.js.map +0 -1
  877. package/dist/vite/expose-id-utils.d.ts +0 -69
  878. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  879. package/dist/vite/expose-id-utils.js +0 -289
  880. package/dist/vite/expose-id-utils.js.map +0 -1
  881. package/dist/vite/expose-internal-ids.d.ts +0 -22
  882. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  883. package/dist/vite/expose-internal-ids.js +0 -886
  884. package/dist/vite/expose-internal-ids.js.map +0 -1
  885. package/dist/vite/index.d.ts +0 -149
  886. package/dist/vite/index.d.ts.map +0 -1
  887. package/dist/vite/index.js.map +0 -1
  888. package/dist/vite/index.named-routes.gen.ts +0 -103
  889. package/dist/vite/package-resolution.d.ts +0 -43
  890. package/dist/vite/package-resolution.d.ts.map +0 -1
  891. package/dist/vite/package-resolution.js +0 -112
  892. package/dist/vite/package-resolution.js.map +0 -1
  893. package/dist/vite/virtual-entries.d.ts +0 -25
  894. package/dist/vite/virtual-entries.d.ts.map +0 -1
  895. package/dist/vite/virtual-entries.js +0 -110
  896. package/dist/vite/virtual-entries.js.map +0 -1
  897. package/src/browser/debug-channel.ts +0 -93
@@ -1,919 +0,0 @@
1
- /**
2
- * Segment Resolution
3
- *
4
- * Extracted from createRouter closure. Contains all segment resolution functions
5
- * for both fresh (full match) and revalidation (partial match) paths.
6
- *
7
- * Functions receive a `deps` parameter for closure-bound helpers from createRouter.
8
- */
9
- import { DataNotFoundError, invariant, } from "../errors";
10
- import { createErrorInfo, createErrorSegment, createNotFoundInfo, createNotFoundSegment, } from "./error-handling.js";
11
- import { revalidate, } from "./loader-resolution.js";
12
- import { evaluateRevalidation } from "./revalidation.js";
13
- import { getRequestContext } from "../server/request-context.js";
14
- import { DefaultErrorFallback } from "../default-error-boundary.js";
15
- import { debugLog } from "./logging.js";
16
- /**
17
- * Handle Response returns from handlers.
18
- * When a handler returns a Response (e.g., redirect), throw it to trigger
19
- * the short-circuit mechanism. Otherwise return the ReactNode.
20
- */
21
- export function handleHandlerResult(result) {
22
- if (result instanceof Response) {
23
- throw result;
24
- }
25
- if (result instanceof Promise) {
26
- return result.then((resolved) => {
27
- if (resolved instanceof Response) {
28
- throw resolved;
29
- }
30
- return resolved;
31
- });
32
- }
33
- return result;
34
- }
35
- // ---------------------------------------------------------------------------
36
- // Fresh path (full match, no revalidation)
37
- // ---------------------------------------------------------------------------
38
- /**
39
- * Resolve loaders for an entry and emit segments.
40
- * Loaders are run lazily via ctx.use() and memoized for parallel execution.
41
- */
42
- export async function resolveLoaders(entry, ctx, belongsToRoute, deps, shortCodeOverride) {
43
- const loaderEntries = entry.loader ?? [];
44
- if (loaderEntries.length === 0)
45
- return [];
46
- const shortCode = shortCodeOverride ?? entry.shortCode;
47
- const hasLoading = "loading" in entry && entry.loading !== undefined;
48
- const loadingDisabled = hasLoading && entry.loading === false;
49
- return Promise.all(loaderEntries.map(async ({ loader }, i) => {
50
- const segmentId = `${shortCode}D${i}.${loader.$$id}`;
51
- return {
52
- id: segmentId,
53
- namespace: entry.id,
54
- type: "loader",
55
- index: i,
56
- component: null,
57
- params: ctx.params,
58
- loaderId: loader.$$id,
59
- loaderData: deps.wrapLoaderPromise(loadingDisabled ? await ctx.use(loader) : ctx.use(loader), entry, segmentId, ctx.pathname),
60
- belongsToRoute,
61
- };
62
- }));
63
- }
64
- /**
65
- * Resolve segments from EntryData.
66
- * Executes middlewares, loaders, parallels, and handlers in correct order.
67
- * Returns array: [main segment, ...orphan layout segments]
68
- */
69
- export async function resolveSegment(entry, routeKey, params, context, loaderPromises, deps, isRouteEntry = false, options) {
70
- const segments = [];
71
- if (entry.type === "layout" || entry.type === "cache") {
72
- if (!options?.skipLoaders) {
73
- const loaderSegments = await resolveLoaders(entry, context, false, deps);
74
- segments.push(...loaderSegments);
75
- }
76
- for (const parallelEntry of entry.parallel) {
77
- const parallelSegments = await resolveParallelEntry(parallelEntry, params, context, false, entry.shortCode, deps);
78
- segments.push(...parallelSegments);
79
- }
80
- context._currentSegmentId = entry.shortCode;
81
- const component = typeof entry.handler === "function"
82
- ? handleHandlerResult(await entry.handler(context))
83
- : entry.handler;
84
- segments.push({
85
- id: entry.shortCode,
86
- namespace: entry.id,
87
- type: "layout",
88
- index: 0,
89
- component,
90
- loading: entry.loading === false ? null : entry.loading,
91
- params,
92
- belongsToRoute: false,
93
- layoutName: entry.id,
94
- ...(entry.mountPath ? { mountPath: entry.mountPath } : {}),
95
- });
96
- for (const orphan of entry.layout) {
97
- const orphanSegments = await resolveOrphanLayout(orphan, params, context, loaderPromises, false, deps);
98
- segments.push(...orphanSegments);
99
- }
100
- }
101
- else if (entry.type === "route") {
102
- if (!options?.skipLoaders) {
103
- const loaderSegments = await resolveLoaders(entry, context, true, deps);
104
- segments.push(...loaderSegments);
105
- }
106
- for (const orphan of entry.layout) {
107
- const orphanSegments = await resolveOrphanLayout(orphan, params, context, loaderPromises, true, deps);
108
- segments.push(...orphanSegments);
109
- }
110
- for (const parallelEntry of entry.parallel) {
111
- const parallelSegments = await resolveParallelEntry(parallelEntry, params, context, true, entry.shortCode, deps);
112
- segments.push(...parallelSegments);
113
- }
114
- context._currentSegmentId = entry.shortCode;
115
- let component;
116
- if (entry.loading) {
117
- const result = handleHandlerResult(entry.handler(context));
118
- component = result instanceof Promise ? deps.trackHandler(result) : result;
119
- }
120
- else {
121
- component = handleHandlerResult(await entry.handler(context));
122
- }
123
- segments.push({
124
- id: entry.shortCode,
125
- namespace: entry.id,
126
- type: "route",
127
- index: 0,
128
- component,
129
- loading: entry.loading === false ? null : entry.loading,
130
- params,
131
- belongsToRoute: true,
132
- ...(entry.mountPath ? { mountPath: entry.mountPath } : {}),
133
- });
134
- }
135
- else {
136
- throw new Error(`Unknown entry type: ${entry.type}`);
137
- }
138
- return segments;
139
- }
140
- /**
141
- * Resolve orphan layout with its middlewares, loaders, and parallels.
142
- */
143
- export async function resolveOrphanLayout(orphan, params, context, loaderPromises, belongsToRoute, deps) {
144
- invariant(orphan.type === "layout" || orphan.type === "cache", `Expected orphan to be a layout or cache, got: ${orphan.type}`);
145
- const loaderSegments = await resolveLoaders(orphan, context, belongsToRoute, deps);
146
- const segments = [...loaderSegments];
147
- for (const parallelEntry of orphan.parallel) {
148
- const parallelSegments = await resolveParallelEntry(parallelEntry, params, context, belongsToRoute, orphan.shortCode, deps);
149
- segments.push(...parallelSegments);
150
- }
151
- const component = typeof orphan.handler === "function"
152
- ? handleHandlerResult(await orphan.handler(context))
153
- : orphan.handler;
154
- segments.push({
155
- id: orphan.shortCode,
156
- namespace: orphan.id,
157
- type: "layout",
158
- index: 0,
159
- component,
160
- params,
161
- belongsToRoute,
162
- layoutName: orphan.id,
163
- loading: orphan.loading === false ? null : orphan.loading,
164
- ...(orphan.mountPath ? { mountPath: orphan.mountPath } : {}),
165
- });
166
- return segments;
167
- }
168
- /**
169
- * Resolve parallel EntryData with its loaders and slot handlers.
170
- */
171
- export async function resolveParallelEntry(parallelEntry, params, context, belongsToRoute, parentShortCode, deps) {
172
- invariant(parallelEntry.type === "parallel", `Expected parallel entry, got: ${parallelEntry.type}`);
173
- const segments = [];
174
- const slots = parallelEntry.handler;
175
- for (const [slot, handler] of Object.entries(slots)) {
176
- let component;
177
- const hasLoadingFallback = parallelEntry.loading !== undefined && parallelEntry.loading !== false;
178
- if (hasLoadingFallback) {
179
- const result = typeof handler === "function" ? handler(context) : handler;
180
- component = result;
181
- }
182
- else {
183
- component =
184
- typeof handler === "function" ? await handler(context) : handler;
185
- }
186
- segments.push({
187
- id: `${parentShortCode}.${slot}`,
188
- namespace: parallelEntry.id,
189
- type: "parallel",
190
- index: 0,
191
- component,
192
- loading: parallelEntry.loading === false ? null : parallelEntry.loading,
193
- params,
194
- slot,
195
- belongsToRoute,
196
- parallelName: `${parallelEntry.id}.${slot}`,
197
- ...(parallelEntry.mountPath
198
- ? { mountPath: parallelEntry.mountPath }
199
- : {}),
200
- });
201
- }
202
- if (!parallelEntry.loading) {
203
- const loaderSegments = await resolveLoaders(parallelEntry, context, belongsToRoute, deps, parentShortCode);
204
- segments.push(...loaderSegments);
205
- }
206
- return segments;
207
- }
208
- /**
209
- * Wrapper that adds error boundary handling to segment resolution.
210
- */
211
- export async function resolveWithErrorHandling(entry, routeKey, params, context, loaderPromises, resolveFn, deps, errorContext) {
212
- try {
213
- return await resolveFn();
214
- }
215
- catch (error) {
216
- if (error instanceof Response) {
217
- throw error;
218
- }
219
- if (error instanceof DataNotFoundError) {
220
- const notFoundFallback = deps.findNearestNotFoundBoundary(entry);
221
- if (notFoundFallback) {
222
- const notFoundInfo = createNotFoundInfo(error, entry.shortCode, entry.type, context.pathname);
223
- deps.callOnError(error, "handler", {
224
- request: context.request,
225
- url: context.url,
226
- routeKey,
227
- params,
228
- segmentId: entry.shortCode,
229
- segmentType: entry.type,
230
- env: errorContext?.env,
231
- isPartial: errorContext?.isPartial,
232
- handledByBoundary: true,
233
- metadata: { notFound: true, message: notFoundInfo.message },
234
- requestStartTime: errorContext?.requestStartTime,
235
- });
236
- debugLog("segment", "notFound boundary handled error", {
237
- segmentId: entry.shortCode,
238
- message: notFoundInfo.message,
239
- });
240
- const reqCtx = getRequestContext();
241
- if (reqCtx) {
242
- reqCtx.res = new Response(null, {
243
- status: 404,
244
- headers: reqCtx.res.headers,
245
- });
246
- }
247
- const notFoundSegment = createNotFoundSegment(notFoundInfo, notFoundFallback, entry, params);
248
- return [notFoundSegment];
249
- }
250
- }
251
- const fallback = deps.findNearestErrorBoundary(entry);
252
- const segmentType = entry.type;
253
- const errorInfo = createErrorInfo(error, entry.shortCode, segmentType);
254
- const effectiveFallback = fallback ?? DefaultErrorFallback;
255
- deps.callOnError(error, "handler", {
256
- request: context.request,
257
- url: context.url,
258
- routeKey,
259
- params,
260
- segmentId: entry.shortCode,
261
- segmentType: entry.type,
262
- env: errorContext?.env,
263
- isPartial: errorContext?.isPartial,
264
- handledByBoundary: !!fallback,
265
- requestStartTime: errorContext?.requestStartTime,
266
- });
267
- debugLog("segment", "error boundary handled error", {
268
- segmentId: entry.shortCode,
269
- boundary: fallback ? "custom" : "default",
270
- message: errorInfo.message,
271
- });
272
- {
273
- const reqCtx = getRequestContext();
274
- if (reqCtx) {
275
- reqCtx.res = new Response(null, {
276
- status: 500,
277
- headers: reqCtx.res.headers,
278
- });
279
- }
280
- }
281
- const errorSegment = createErrorSegment(errorInfo, effectiveFallback, entry, params);
282
- return [errorSegment];
283
- }
284
- }
285
- /**
286
- * Resolve all segments for a route (used for single-cache-per-request pattern).
287
- */
288
- export async function resolveAllSegments(entries, routeKey, params, context, loaderPromises, deps, options) {
289
- const allSegments = [];
290
- const seenIds = new Set();
291
- for (const entry of entries) {
292
- const resolvedSegments = await resolveWithErrorHandling(entry, routeKey, params, context, loaderPromises, () => resolveSegment(entry, routeKey, params, context, loaderPromises, deps, false, options), deps);
293
- // Deduplicate by segment ID. include() scopes can produce entries that
294
- // resolve the same shared layout/loader segment. Duplicates in the segment
295
- // array propagate to the client's matched[] and change the React tree depth.
296
- for (const seg of resolvedSegments) {
297
- if (!seenIds.has(seg.id)) {
298
- seenIds.add(seg.id);
299
- allSegments.push(seg);
300
- }
301
- }
302
- }
303
- return allSegments;
304
- }
305
- /**
306
- * Resolve only loader segments for all entries (used when serving cached non-loader segments).
307
- */
308
- export async function resolveLoadersOnly(entries, context, deps) {
309
- const loaderSegments = [];
310
- for (const entry of entries) {
311
- const belongsToRoute = entry.type === "route";
312
- const segments = await resolveLoaders(entry, context, belongsToRoute, deps);
313
- loaderSegments.push(...segments);
314
- }
315
- return loaderSegments;
316
- }
317
- // ---------------------------------------------------------------------------
318
- // Revalidation path (partial match)
319
- // ---------------------------------------------------------------------------
320
- /**
321
- * Resolve loaders with revalidation awareness (for partial rendering).
322
- * Returns both segments to render AND all matched segment IDs.
323
- */
324
- export async function resolveLoadersWithRevalidation(entry, ctx, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, shortCodeOverride, stale) {
325
- const loaderEntries = entry.loader ?? [];
326
- if (loaderEntries.length === 0)
327
- return { segments: [], matchedIds: [] };
328
- const shortCode = shortCodeOverride ?? entry.shortCode;
329
- const loaderMeta = loaderEntries.map(({ loader, revalidate: loaderRevalidateFns }, i) => ({
330
- loader,
331
- loaderRevalidateFns,
332
- segmentId: `${shortCode}D${i}.${loader.$$id}`,
333
- index: i,
334
- }));
335
- const matchedIds = loaderMeta.map((m) => m.segmentId);
336
- const revalidationChecks = await Promise.all(loaderMeta.map(async ({ loader, loaderRevalidateFns, segmentId, index }) => {
337
- const shouldRun = await revalidate(async () => {
338
- if (!clientSegmentIds.has(segmentId))
339
- return true;
340
- const dummySegment = {
341
- id: segmentId,
342
- namespace: entry.id,
343
- type: "loader",
344
- index,
345
- component: null,
346
- params: ctx.params,
347
- loaderId: loader.$$id,
348
- belongsToRoute,
349
- };
350
- return await evaluateRevalidation({
351
- segment: dummySegment,
352
- prevParams,
353
- getPrevSegment: null,
354
- request,
355
- prevUrl,
356
- nextUrl,
357
- revalidations: loaderRevalidateFns.map((fn, j) => ({
358
- name: `loader-revalidate${j}`,
359
- fn,
360
- })),
361
- routeKey,
362
- context: ctx,
363
- actionContext,
364
- stale,
365
- });
366
- }, async () => true, () => false);
367
- return { shouldRun, loader, segmentId, index };
368
- }));
369
- const loadersToRun = revalidationChecks.filter((c) => c.shouldRun);
370
- const segments = loadersToRun.map(({ loader, segmentId, index }) => ({
371
- id: segmentId,
372
- namespace: entry.id,
373
- type: "loader",
374
- index,
375
- component: null,
376
- params: ctx.params,
377
- loaderId: loader.$$id,
378
- loaderData: deps.wrapLoaderPromise(ctx.use(loader), entry, segmentId, ctx.pathname),
379
- belongsToRoute,
380
- }));
381
- return { segments, matchedIds };
382
- }
383
- /**
384
- * Resolve only loader segments for all entries with revalidation logic.
385
- */
386
- export async function resolveLoadersOnlyWithRevalidation(entries, context, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext) {
387
- const allLoaderSegments = [];
388
- const allMatchedIds = [];
389
- for (const entry of entries) {
390
- const belongsToRoute = entry.type === "route";
391
- const { segments, matchedIds } = await resolveLoadersWithRevalidation(entry, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext);
392
- allLoaderSegments.push(...segments);
393
- allMatchedIds.push(...matchedIds);
394
- }
395
- return { segments: allLoaderSegments, matchedIds: allMatchedIds };
396
- }
397
- /**
398
- * Build a map of segment shortCode -> entry with revalidate functions.
399
- */
400
- export function buildEntryRevalidateMap(entries) {
401
- const map = new Map();
402
- function processEntry(entry, parentShortCode) {
403
- map.set(entry.shortCode, { entry, revalidate: entry.revalidate });
404
- if (entry.type !== "parallel") {
405
- for (const parallelEntry of entry.parallel) {
406
- if (parallelEntry.type === "parallel") {
407
- const slots = Object.keys(parallelEntry.handler);
408
- for (const slot of slots) {
409
- const parallelId = `${parallelEntry.shortCode}.${slot}`;
410
- map.set(parallelId, {
411
- entry: parallelEntry,
412
- revalidate: parallelEntry.revalidate,
413
- });
414
- }
415
- }
416
- }
417
- }
418
- for (const layoutEntry of entry.layout) {
419
- processEntry(layoutEntry);
420
- }
421
- }
422
- for (const entry of entries) {
423
- processEntry(entry);
424
- }
425
- return map;
426
- }
427
- /**
428
- * Resolve parallel segments with revalidation.
429
- */
430
- export async function resolveParallelSegmentsWithRevalidation(entry, params, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, stale) {
431
- const segments = [];
432
- const matchedIds = [];
433
- for (const parallelEntry of entry.parallel) {
434
- invariant(parallelEntry.type === "parallel", `Expected parallel entry, got: ${parallelEntry.type}`);
435
- const slots = parallelEntry.handler;
436
- for (const [slot, handler] of Object.entries(slots)) {
437
- const parallelId = `${entry.shortCode}.${slot}`;
438
- const isFullRefetch = clientSegmentIds.size === 0;
439
- // When the parent layout is new (not in client's segment set),
440
- // all its parallel children must be resolved and tracked.
441
- // Without this, navigating to a new layout with parallels
442
- // (e.g., BlogLayout with @sidebar) from a different route
443
- // would silently drop those parallel segments.
444
- const isNewParent = !clientSegmentIds.has(entry.shortCode);
445
- if (isFullRefetch ||
446
- clientSegmentIds.has(parallelId) ||
447
- belongsToRoute ||
448
- isNewParent) {
449
- matchedIds.push(parallelId);
450
- }
451
- const shouldResolve = await (async () => {
452
- if (isFullRefetch)
453
- return true;
454
- if (!clientSegmentIds.has(parallelId))
455
- return belongsToRoute || isNewParent;
456
- const dummySegment = {
457
- id: parallelId,
458
- namespace: parallelEntry.id,
459
- type: "parallel",
460
- index: 0,
461
- component: null,
462
- params,
463
- slot,
464
- belongsToRoute,
465
- parallelName: `${parallelEntry.id}.${slot}`,
466
- ...(parallelEntry.mountPath
467
- ? { mountPath: parallelEntry.mountPath }
468
- : {}),
469
- };
470
- return await evaluateRevalidation({
471
- segment: dummySegment,
472
- prevParams,
473
- getPrevSegment: null,
474
- request,
475
- prevUrl,
476
- nextUrl,
477
- revalidations: parallelEntry.revalidate.map((fn, i) => ({
478
- name: `revalidate${i}`,
479
- fn,
480
- })),
481
- routeKey,
482
- context,
483
- actionContext,
484
- stale,
485
- });
486
- })();
487
- let component;
488
- const hasLoadingFallback = parallelEntry.loading !== undefined && parallelEntry.loading !== false;
489
- if (!shouldResolve) {
490
- component = null;
491
- }
492
- else if (hasLoadingFallback) {
493
- component =
494
- (typeof handler === "function"
495
- ? handler(context)
496
- : handler);
497
- }
498
- else {
499
- component =
500
- typeof handler === "function"
501
- ? await handler(context)
502
- : handler;
503
- }
504
- segments.push({
505
- id: parallelId,
506
- namespace: parallelEntry.id,
507
- type: "parallel",
508
- index: 0,
509
- component,
510
- loading: parallelEntry.loading === false ? null : parallelEntry.loading,
511
- params,
512
- slot,
513
- belongsToRoute,
514
- parallelName: `${parallelEntry.id}.${slot}`,
515
- ...(parallelEntry.mountPath
516
- ? { mountPath: parallelEntry.mountPath }
517
- : {}),
518
- });
519
- }
520
- if (!parallelEntry.loading) {
521
- const loaderResult = await resolveLoadersWithRevalidation(parallelEntry, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, entry.shortCode, stale);
522
- segments.push(...loaderResult.segments);
523
- matchedIds.push(...loaderResult.matchedIds);
524
- }
525
- }
526
- return { segments, matchedIds };
527
- }
528
- /**
529
- * Resolve entry handler (layout, cache, or route) with revalidation.
530
- */
531
- export async function resolveEntryHandlerWithRevalidation(entry, params, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, stale) {
532
- const matchedId = entry.shortCode;
533
- const component = await revalidate(async () => {
534
- const hasSegment = clientSegmentIds.has(entry.shortCode);
535
- debugLog("segment.revalidate", "entry presence check", {
536
- segmentId: entry.shortCode,
537
- entryType: entry.type,
538
- clientHasSegment: hasSegment,
539
- belongsToRoute,
540
- });
541
- if (!hasSegment)
542
- return true;
543
- const dummySegment = {
544
- id: entry.shortCode,
545
- namespace: entry.id,
546
- type: entry.type === "cache"
547
- ? "layout"
548
- : entry.type,
549
- index: 0,
550
- component: null,
551
- params,
552
- belongsToRoute,
553
- ...(entry.type === "layout" || entry.type === "cache"
554
- ? { layoutName: entry.id }
555
- : {}),
556
- ...(entry.mountPath ? { mountPath: entry.mountPath } : {}),
557
- };
558
- const shouldRevalidate = await evaluateRevalidation({
559
- segment: dummySegment,
560
- prevParams,
561
- getPrevSegment: null,
562
- request,
563
- prevUrl,
564
- nextUrl,
565
- revalidations: entry.revalidate.map((fn, i) => ({
566
- name: `revalidate${i}`,
567
- fn,
568
- })),
569
- routeKey,
570
- context,
571
- actionContext,
572
- stale,
573
- });
574
- debugLog("segment.revalidate", "entry revalidation decision", {
575
- segmentId: entry.shortCode,
576
- shouldRevalidate,
577
- });
578
- return shouldRevalidate;
579
- }, async () => {
580
- context._currentSegmentId = entry.shortCode;
581
- if (entry.type === "layout" || entry.type === "cache") {
582
- return typeof entry.handler === "function"
583
- ? handleHandlerResult(await entry.handler(context))
584
- : entry.handler;
585
- }
586
- const routeEntry = entry;
587
- if (!routeEntry.loading) {
588
- return handleHandlerResult(await routeEntry.handler(context));
589
- }
590
- if (!actionContext) {
591
- const result = handleHandlerResult(routeEntry.handler(context));
592
- return {
593
- content: result instanceof Promise ? deps.trackHandler(result) : result,
594
- };
595
- }
596
- debugLog("segment.action", "resolving action route with awaited value", {
597
- entryId: entry.id,
598
- });
599
- return {
600
- content: Promise.resolve(handleHandlerResult(await routeEntry.handler(context))),
601
- };
602
- }, () => null);
603
- const resolvedComponent = component && typeof component === "object" && "content" in component
604
- ? component.content
605
- : component;
606
- const segment = {
607
- id: entry.shortCode,
608
- namespace: entry.id,
609
- type: entry.type === "cache" ? "layout" : entry.type,
610
- index: 0,
611
- component: resolvedComponent,
612
- loading: entry.loading === false ? null : entry.loading,
613
- params,
614
- belongsToRoute,
615
- ...(entry.type === "layout" || entry.type === "cache"
616
- ? { layoutName: entry.id }
617
- : {}),
618
- ...(entry.mountPath ? { mountPath: entry.mountPath } : {}),
619
- };
620
- return { segment, matchedId };
621
- }
622
- /**
623
- * Resolve segments with revalidation awareness (for partial rendering).
624
- */
625
- export async function resolveSegmentWithRevalidation(entry, routeKey, params, context, clientSegmentIds, prevParams, request, prevUrl, nextUrl, loaderPromises, deps, actionContext, stale) {
626
- const segments = [];
627
- const matchedIds = [];
628
- const belongsToRoute = entry.type === "route";
629
- const loaderResult = await resolveLoadersWithRevalidation(entry, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, undefined, stale);
630
- segments.push(...loaderResult.segments);
631
- matchedIds.push(...loaderResult.matchedIds);
632
- if (entry.type === "route") {
633
- for (const orphan of entry.layout) {
634
- const orphanResult = await resolveOrphanLayoutWithRevalidation(orphan, params, context, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, loaderPromises, true, deps, actionContext, stale);
635
- segments.push(...orphanResult.segments);
636
- matchedIds.push(...orphanResult.matchedIds);
637
- }
638
- }
639
- const parallelResult = await resolveParallelSegmentsWithRevalidation(entry, params, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, stale);
640
- segments.push(...parallelResult.segments);
641
- matchedIds.push(...parallelResult.matchedIds);
642
- if (entry.type === "layout" || entry.type === "cache") {
643
- for (const orphan of entry.layout) {
644
- const orphanResult = await resolveOrphanLayoutWithRevalidation(orphan, params, context, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, loaderPromises, false, deps, actionContext, stale);
645
- segments.push(...orphanResult.segments);
646
- matchedIds.push(...orphanResult.matchedIds);
647
- }
648
- }
649
- const handlerResult = await resolveEntryHandlerWithRevalidation(entry, params, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, stale);
650
- segments.push(handlerResult.segment);
651
- matchedIds.push(handlerResult.matchedId);
652
- return { segments, matchedIds };
653
- }
654
- /**
655
- * Resolve orphan layout with revalidation.
656
- */
657
- export async function resolveOrphanLayoutWithRevalidation(orphan, params, context, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, loaderPromises, belongsToRoute, deps, actionContext, stale) {
658
- invariant(orphan.type === "layout" || orphan.type === "cache", `Expected orphan to be a layout or cache, got: ${orphan.type}`);
659
- const segments = [];
660
- const matchedIds = [];
661
- const loaderResult = await resolveLoadersWithRevalidation(orphan, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, undefined, stale);
662
- segments.push(...loaderResult.segments);
663
- matchedIds.push(...loaderResult.matchedIds);
664
- for (const parallelEntry of orphan.parallel) {
665
- invariant(parallelEntry.type === "parallel", `Expected parallel entry, got: ${parallelEntry.type}`);
666
- const loaderResult = await resolveLoadersWithRevalidation(parallelEntry, context, belongsToRoute, clientSegmentIds, prevParams, request, prevUrl, nextUrl, routeKey, deps, actionContext, undefined, stale);
667
- segments.push(...loaderResult.segments);
668
- matchedIds.push(...loaderResult.matchedIds);
669
- const slots = parallelEntry.handler;
670
- for (const [slot, handler] of Object.entries(slots)) {
671
- // Use orphan.shortCode (the parent layout) to match the SSR path
672
- // (resolveParallelEntry receives parentShortCode = orphan.shortCode).
673
- // Using parallelEntry.shortCode would generate IDs the client doesn't know about.
674
- const parallelId = `${orphan.shortCode}.${slot}`;
675
- matchedIds.push(parallelId);
676
- const shouldResolve = await (async () => {
677
- if (!clientSegmentIds.has(parallelId))
678
- return true;
679
- const dummySegment = {
680
- id: parallelId,
681
- namespace: parallelEntry.id,
682
- type: "parallel",
683
- index: 0,
684
- component: null,
685
- params,
686
- slot,
687
- belongsToRoute,
688
- parallelName: `${parallelEntry.id}.${slot}`,
689
- ...(parallelEntry.mountPath
690
- ? { mountPath: parallelEntry.mountPath }
691
- : {}),
692
- };
693
- return await evaluateRevalidation({
694
- segment: dummySegment,
695
- prevParams,
696
- getPrevSegment: null,
697
- request,
698
- prevUrl,
699
- nextUrl,
700
- revalidations: parallelEntry.revalidate.map((fn, i) => ({
701
- name: `revalidate${i}`,
702
- fn,
703
- })),
704
- routeKey,
705
- context,
706
- actionContext,
707
- stale,
708
- });
709
- })();
710
- let component;
711
- const hasLoadingFallback = parallelEntry.loading !== undefined && parallelEntry.loading !== false;
712
- if (!shouldResolve) {
713
- component = null;
714
- }
715
- else if (hasLoadingFallback) {
716
- component =
717
- (typeof handler === "function"
718
- ? handler(context)
719
- : handler);
720
- }
721
- else {
722
- component =
723
- typeof handler === "function"
724
- ? await handler(context)
725
- : handler;
726
- }
727
- segments.push({
728
- id: parallelId,
729
- namespace: parallelEntry.id,
730
- type: "parallel",
731
- index: 0,
732
- component,
733
- loading: parallelEntry.loading === false ? null : parallelEntry.loading,
734
- params,
735
- slot,
736
- belongsToRoute,
737
- parallelName: `${parallelEntry.id}.${slot}`,
738
- ...(parallelEntry.mountPath
739
- ? { mountPath: parallelEntry.mountPath }
740
- : {}),
741
- });
742
- }
743
- }
744
- matchedIds.push(orphan.shortCode);
745
- const component = await revalidate(async () => {
746
- if (!clientSegmentIds.has(orphan.shortCode))
747
- return true;
748
- const dummySegment = {
749
- id: orphan.shortCode,
750
- namespace: orphan.id,
751
- type: "layout",
752
- index: 0,
753
- component: null,
754
- params,
755
- belongsToRoute,
756
- layoutName: orphan.id,
757
- ...(orphan.mountPath ? { mountPath: orphan.mountPath } : {}),
758
- };
759
- return await evaluateRevalidation({
760
- segment: dummySegment,
761
- prevParams,
762
- getPrevSegment: null,
763
- request,
764
- prevUrl,
765
- nextUrl,
766
- revalidations: orphan.revalidate.map((fn, i) => ({
767
- name: `revalidate${i}`,
768
- fn,
769
- })),
770
- routeKey,
771
- context,
772
- actionContext,
773
- stale,
774
- });
775
- }, async () => typeof orphan.handler === "function"
776
- ? handleHandlerResult(await orphan.handler(context))
777
- : orphan.handler, () => null);
778
- segments.push({
779
- id: orphan.shortCode,
780
- namespace: orphan.id,
781
- type: "layout",
782
- index: 0,
783
- component,
784
- params,
785
- belongsToRoute,
786
- layoutName: orphan.id,
787
- loading: orphan.loading === false ? null : orphan.loading,
788
- ...(orphan.mountPath ? { mountPath: orphan.mountPath } : {}),
789
- });
790
- return { segments, matchedIds };
791
- }
792
- /**
793
- * Wrapper for segment resolution with revalidation that adds error boundary handling.
794
- */
795
- export async function resolveWithRevalidationErrorHandling(entry, params, resolveFn, deps, pathname, errorContext) {
796
- try {
797
- return await resolveFn();
798
- }
799
- catch (error) {
800
- if (error instanceof Response) {
801
- throw error;
802
- }
803
- if (error instanceof DataNotFoundError) {
804
- const notFoundFallback = deps.findNearestNotFoundBoundary(entry);
805
- if (notFoundFallback) {
806
- const notFoundInfo = createNotFoundInfo(error, entry.shortCode, entry.type, pathname);
807
- if (errorContext) {
808
- deps.callOnError(error, "handler", {
809
- request: errorContext.request,
810
- url: errorContext.url,
811
- routeKey: errorContext.routeKey,
812
- params,
813
- segmentId: entry.shortCode,
814
- segmentType: entry.type,
815
- env: errorContext.env,
816
- isPartial: errorContext.isPartial,
817
- handledByBoundary: true,
818
- metadata: { notFound: true, message: notFoundInfo.message },
819
- requestStartTime: errorContext.requestStartTime,
820
- });
821
- }
822
- debugLog("segment", "notFound boundary handled error", {
823
- segmentId: entry.shortCode,
824
- message: notFoundInfo.message,
825
- });
826
- const reqCtx = getRequestContext();
827
- if (reqCtx) {
828
- reqCtx.res = new Response(null, {
829
- status: 404,
830
- headers: reqCtx.res.headers,
831
- });
832
- }
833
- const notFoundSegment = createNotFoundSegment(notFoundInfo, notFoundFallback, entry, params);
834
- return {
835
- segments: [notFoundSegment],
836
- matchedIds: [notFoundSegment.id],
837
- };
838
- }
839
- }
840
- const fallback = deps.findNearestErrorBoundary(entry);
841
- const segmentType = entry.type;
842
- const errorInfo = createErrorInfo(error, entry.shortCode, segmentType);
843
- const effectiveFallback = fallback ?? DefaultErrorFallback;
844
- if (errorContext) {
845
- deps.callOnError(error, "handler", {
846
- request: errorContext.request,
847
- url: errorContext.url,
848
- routeKey: errorContext.routeKey,
849
- params,
850
- segmentId: entry.shortCode,
851
- segmentType: entry.type,
852
- env: errorContext.env,
853
- isPartial: errorContext.isPartial,
854
- handledByBoundary: !!fallback,
855
- requestStartTime: errorContext.requestStartTime,
856
- });
857
- }
858
- debugLog("segment", "error boundary handled error", {
859
- segmentId: entry.shortCode,
860
- boundary: fallback ? "custom" : "default",
861
- message: errorInfo.message,
862
- });
863
- {
864
- const reqCtx = getRequestContext();
865
- if (reqCtx) {
866
- reqCtx.res = new Response(null, {
867
- status: 500,
868
- headers: reqCtx.res.headers,
869
- });
870
- }
871
- }
872
- const errorSegment = createErrorSegment(errorInfo, effectiveFallback, entry, params);
873
- return {
874
- segments: [errorSegment],
875
- matchedIds: [errorSegment.id],
876
- };
877
- }
878
- }
879
- /**
880
- * Resolve all segments for a route with revalidation logic (for matchPartial).
881
- */
882
- export async function resolveAllSegmentsWithRevalidation(entries, routeKey, params, context, clientSegmentSet, prevParams, request, prevUrl, nextUrl, loaderPromises, actionContext, interceptResult, localRouteName, pathname, deps) {
883
- const allSegments = [];
884
- const matchedIds = [];
885
- const seenSegIds = new Set();
886
- const seenMatchIds = new Set();
887
- for (const entry of entries) {
888
- if (entry.type === "route" && interceptResult) {
889
- debugLog("matchPartial.intercept", "skipping route handler during intercept", {
890
- localRouteName,
891
- segmentId: entry.shortCode,
892
- });
893
- if (!seenMatchIds.has(entry.shortCode)) {
894
- seenMatchIds.add(entry.shortCode);
895
- matchedIds.push(entry.shortCode);
896
- }
897
- continue;
898
- }
899
- const nonParallelEntry = entry;
900
- const resolved = await resolveWithRevalidationErrorHandling(nonParallelEntry, params, () => resolveSegmentWithRevalidation(nonParallelEntry, routeKey, params, context, clientSegmentSet, prevParams, request, prevUrl, nextUrl, loaderPromises, deps, actionContext, false), deps, pathname);
901
- // Deduplicate segments and matchedIds by ID, matching resolveAllSegments.
902
- // include() scopes can produce entries that resolve the same shared
903
- // layout/loader segment. Duplicates cause React tree depth changes.
904
- for (const seg of resolved.segments) {
905
- if (!seenSegIds.has(seg.id)) {
906
- seenSegIds.add(seg.id);
907
- allSegments.push(seg);
908
- }
909
- }
910
- for (const id of resolved.matchedIds) {
911
- if (!seenMatchIds.has(id)) {
912
- seenMatchIds.add(id);
913
- matchedIds.push(id);
914
- }
915
- }
916
- }
917
- return { segments: allSegments, matchedIds };
918
- }
919
- //# sourceMappingURL=segment-resolution.js.map