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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (906) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +689 -361
  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 +86 -63
  13. package/src/browser/navigation-store.ts +43 -8
  14. package/src/browser/partial-update.ts +27 -5
  15. package/src/browser/prefetch/cache.ts +21 -6
  16. package/src/browser/prefetch/fetch.ts +46 -6
  17. package/src/browser/react/Link.tsx +58 -8
  18. package/src/browser/react/NavigationProvider.tsx +8 -1
  19. package/src/browser/react/context.ts +7 -2
  20. package/src/browser/react/use-handle.ts +9 -58
  21. package/src/browser/react/use-router.ts +21 -8
  22. package/src/browser/rsc-router.tsx +26 -3
  23. package/src/browser/scroll-restoration.ts +10 -8
  24. package/src/browser/server-action-bridge.ts +8 -17
  25. package/src/browser/types.ts +24 -5
  26. package/src/build/generate-manifest.ts +6 -6
  27. package/src/build/generate-route-types.ts +3 -0
  28. package/src/build/route-types/include-resolution.ts +8 -1
  29. package/src/build/route-types/router-processing.ts +211 -72
  30. package/src/build/route-types/scan-filter.ts +8 -1
  31. package/src/client.tsx +2 -56
  32. package/src/handle.ts +40 -0
  33. package/src/index.rsc.ts +3 -1
  34. package/src/index.ts +12 -0
  35. package/src/prerender/store.ts +5 -4
  36. package/src/prerender.ts +138 -77
  37. package/src/reverse.ts +22 -1
  38. package/src/route-definition/dsl-helpers.ts +42 -19
  39. package/src/route-definition/helpers-types.ts +4 -1
  40. package/src/route-definition/index.ts +3 -0
  41. package/src/route-definition/redirect.ts +9 -1
  42. package/src/route-definition/resolve-handler-use.ts +149 -0
  43. package/src/route-types.ts +11 -0
  44. package/src/router/content-negotiation.ts +100 -1
  45. package/src/router/handler-context.ts +48 -15
  46. package/src/router/intercept-resolution.ts +9 -4
  47. package/src/router/loader-resolution.ts +150 -21
  48. package/src/router/match-api.ts +124 -189
  49. package/src/router/match-middleware/cache-lookup.ts +26 -7
  50. package/src/router/match-middleware/segment-resolution.ts +53 -0
  51. package/src/router/match-result.ts +82 -4
  52. package/src/router/middleware-types.ts +0 -6
  53. package/src/router/middleware.ts +0 -3
  54. package/src/router/navigation-snapshot.ts +182 -0
  55. package/src/router/prerender-match.ts +110 -10
  56. package/src/router/preview-match.ts +30 -102
  57. package/src/router/request-classification.ts +310 -0
  58. package/src/router/route-snapshot.ts +245 -0
  59. package/src/router/router-interfaces.ts +36 -4
  60. package/src/router/router-options.ts +37 -11
  61. package/src/router/segment-resolution/fresh.ts +70 -5
  62. package/src/router/segment-resolution/revalidation.ts +87 -9
  63. package/src/router.ts +53 -5
  64. package/src/rsc/handler.ts +472 -393
  65. package/src/rsc/loader-fetch.ts +18 -3
  66. package/src/rsc/manifest-init.ts +5 -1
  67. package/src/rsc/progressive-enhancement.ts +12 -3
  68. package/src/rsc/rsc-rendering.ts +8 -2
  69. package/src/rsc/server-action.ts +8 -2
  70. package/src/rsc/ssr-setup.ts +2 -2
  71. package/src/rsc/types.ts +6 -4
  72. package/src/server/context.ts +39 -2
  73. package/src/server/handle-store.ts +19 -0
  74. package/src/server/loader-registry.ts +9 -8
  75. package/src/server/request-context.ts +132 -13
  76. package/src/ssr/index.tsx +3 -0
  77. package/src/static-handler.ts +18 -6
  78. package/src/types/cache-types.ts +4 -4
  79. package/src/types/handler-context.ts +17 -11
  80. package/src/types/loader-types.ts +32 -5
  81. package/src/types/route-entry.ts +1 -1
  82. package/src/types/segments.ts +1 -0
  83. package/src/urls/path-helper-types.ts +9 -2
  84. package/src/urls/path-helper.ts +47 -12
  85. package/src/urls/pattern-types.ts +12 -0
  86. package/src/urls/response-types.ts +16 -6
  87. package/src/use-loader.tsx +77 -5
  88. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  89. package/src/vite/discovery/discover-routers.ts +5 -1
  90. package/src/vite/discovery/prerender-collection.ts +128 -74
  91. package/src/vite/discovery/state.ts +13 -4
  92. package/src/vite/index.ts +4 -0
  93. package/src/vite/plugin-types.ts +60 -5
  94. package/src/vite/plugins/expose-id-utils.ts +12 -0
  95. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  96. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  97. package/src/vite/plugins/performance-tracks.ts +66 -198
  98. package/src/vite/plugins/refresh-cmd.ts +88 -26
  99. package/src/vite/rango.ts +18 -5
  100. package/src/vite/router-discovery.ts +178 -37
  101. package/src/vite/utils/prerender-utils.ts +18 -0
  102. package/src/vite/utils/shared-utils.ts +3 -2
  103. package/dist/__internal.d.ts +0 -83
  104. package/dist/__internal.d.ts.map +0 -1
  105. package/dist/__internal.js +0 -19
  106. package/dist/__internal.js.map +0 -1
  107. package/dist/__mocks__/version.d.ts +0 -7
  108. package/dist/__mocks__/version.d.ts.map +0 -1
  109. package/dist/__mocks__/version.js +0 -7
  110. package/dist/__mocks__/version.js.map +0 -1
  111. package/dist/__tests__/client-href.test.d.ts +0 -2
  112. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  113. package/dist/__tests__/client-href.test.js +0 -74
  114. package/dist/__tests__/client-href.test.js.map +0 -1
  115. package/dist/__tests__/component-utils.test.d.ts +0 -2
  116. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  117. package/dist/__tests__/component-utils.test.js +0 -51
  118. package/dist/__tests__/component-utils.test.js.map +0 -1
  119. package/dist/__tests__/event-controller.test.d.ts +0 -2
  120. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  121. package/dist/__tests__/event-controller.test.js +0 -538
  122. package/dist/__tests__/event-controller.test.js.map +0 -1
  123. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  124. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  125. package/dist/__tests__/helpers/route-tree.js +0 -374
  126. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  127. package/dist/__tests__/match-result.test.d.ts +0 -2
  128. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  129. package/dist/__tests__/match-result.test.js +0 -154
  130. package/dist/__tests__/match-result.test.js.map +0 -1
  131. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  132. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  133. package/dist/__tests__/navigation-store.test.js +0 -440
  134. package/dist/__tests__/navigation-store.test.js.map +0 -1
  135. package/dist/__tests__/partial-update.test.d.ts +0 -2
  136. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  137. package/dist/__tests__/partial-update.test.js +0 -1009
  138. package/dist/__tests__/partial-update.test.js.map +0 -1
  139. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  140. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  141. package/dist/__tests__/reverse-types.test.js +0 -656
  142. package/dist/__tests__/reverse-types.test.js.map +0 -1
  143. package/dist/__tests__/route-definition.test.d.ts +0 -2
  144. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  145. package/dist/__tests__/route-definition.test.js +0 -55
  146. package/dist/__tests__/route-definition.test.js.map +0 -1
  147. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  148. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  149. package/dist/__tests__/router-helpers.test.js +0 -377
  150. package/dist/__tests__/router-helpers.test.js.map +0 -1
  151. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  152. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  153. package/dist/__tests__/router-integration-2.test.js +0 -426
  154. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  155. package/dist/__tests__/router-integration.test.d.ts +0 -2
  156. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  157. package/dist/__tests__/router-integration.test.js +0 -1051
  158. package/dist/__tests__/router-integration.test.js.map +0 -1
  159. package/dist/__tests__/search-params.test.d.ts +0 -5
  160. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  161. package/dist/__tests__/search-params.test.js +0 -306
  162. package/dist/__tests__/search-params.test.js.map +0 -1
  163. package/dist/__tests__/segment-system.test.d.ts +0 -2
  164. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  165. package/dist/__tests__/segment-system.test.js +0 -627
  166. package/dist/__tests__/segment-system.test.js.map +0 -1
  167. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  168. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  169. package/dist/__tests__/static-handler-types.test.js +0 -63
  170. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  171. package/dist/__tests__/urls.test.d.ts +0 -2
  172. package/dist/__tests__/urls.test.d.ts.map +0 -1
  173. package/dist/__tests__/urls.test.js +0 -421
  174. package/dist/__tests__/urls.test.js.map +0 -1
  175. package/dist/__tests__/use-mount.test.d.ts +0 -2
  176. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  177. package/dist/__tests__/use-mount.test.js +0 -35
  178. package/dist/__tests__/use-mount.test.js.map +0 -1
  179. package/dist/bin/rango.d.ts +0 -2
  180. package/dist/bin/rango.d.ts.map +0 -1
  181. package/dist/bin/rango.js.map +0 -1
  182. package/dist/browser/event-controller.d.ts +0 -191
  183. package/dist/browser/event-controller.d.ts.map +0 -1
  184. package/dist/browser/event-controller.js +0 -559
  185. package/dist/browser/event-controller.js.map +0 -1
  186. package/dist/browser/index.d.ts +0 -2
  187. package/dist/browser/index.d.ts.map +0 -1
  188. package/dist/browser/index.js +0 -14
  189. package/dist/browser/index.js.map +0 -1
  190. package/dist/browser/link-interceptor.d.ts +0 -38
  191. package/dist/browser/link-interceptor.d.ts.map +0 -1
  192. package/dist/browser/link-interceptor.js +0 -99
  193. package/dist/browser/link-interceptor.js.map +0 -1
  194. package/dist/browser/logging.d.ts +0 -10
  195. package/dist/browser/logging.d.ts.map +0 -1
  196. package/dist/browser/logging.js +0 -29
  197. package/dist/browser/logging.js.map +0 -1
  198. package/dist/browser/lru-cache.d.ts +0 -17
  199. package/dist/browser/lru-cache.d.ts.map +0 -1
  200. package/dist/browser/lru-cache.js +0 -50
  201. package/dist/browser/lru-cache.js.map +0 -1
  202. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  203. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  204. package/dist/browser/merge-segment-loaders.js +0 -102
  205. package/dist/browser/merge-segment-loaders.js.map +0 -1
  206. package/dist/browser/navigation-bridge.d.ts +0 -102
  207. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  208. package/dist/browser/navigation-bridge.js +0 -708
  209. package/dist/browser/navigation-bridge.js.map +0 -1
  210. package/dist/browser/navigation-client.d.ts +0 -25
  211. package/dist/browser/navigation-client.d.ts.map +0 -1
  212. package/dist/browser/navigation-client.js +0 -157
  213. package/dist/browser/navigation-client.js.map +0 -1
  214. package/dist/browser/navigation-store.d.ts +0 -101
  215. package/dist/browser/navigation-store.d.ts.map +0 -1
  216. package/dist/browser/navigation-store.js +0 -625
  217. package/dist/browser/navigation-store.js.map +0 -1
  218. package/dist/browser/partial-update.d.ts +0 -75
  219. package/dist/browser/partial-update.d.ts.map +0 -1
  220. package/dist/browser/partial-update.js +0 -426
  221. package/dist/browser/partial-update.js.map +0 -1
  222. package/dist/browser/react/Link.d.ts +0 -86
  223. package/dist/browser/react/Link.d.ts.map +0 -1
  224. package/dist/browser/react/Link.js +0 -128
  225. package/dist/browser/react/Link.js.map +0 -1
  226. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  227. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  228. package/dist/browser/react/NavigationProvider.js +0 -216
  229. package/dist/browser/react/NavigationProvider.js.map +0 -1
  230. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  231. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  232. package/dist/browser/react/ScrollRestoration.js +0 -57
  233. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  234. package/dist/browser/react/context.d.ts +0 -46
  235. package/dist/browser/react/context.d.ts.map +0 -1
  236. package/dist/browser/react/context.js +0 -10
  237. package/dist/browser/react/context.js.map +0 -1
  238. package/dist/browser/react/index.d.ts +0 -11
  239. package/dist/browser/react/index.d.ts.map +0 -1
  240. package/dist/browser/react/index.js +0 -22
  241. package/dist/browser/react/index.js.map +0 -1
  242. package/dist/browser/react/location-state-shared.d.ts +0 -63
  243. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  244. package/dist/browser/react/location-state-shared.js +0 -81
  245. package/dist/browser/react/location-state-shared.js.map +0 -1
  246. package/dist/browser/react/location-state.d.ts +0 -23
  247. package/dist/browser/react/location-state.d.ts.map +0 -1
  248. package/dist/browser/react/location-state.js +0 -29
  249. package/dist/browser/react/location-state.js.map +0 -1
  250. package/dist/browser/react/mount-context.d.ts +0 -24
  251. package/dist/browser/react/mount-context.d.ts.map +0 -1
  252. package/dist/browser/react/mount-context.js +0 -24
  253. package/dist/browser/react/mount-context.js.map +0 -1
  254. package/dist/browser/react/use-action.d.ts +0 -64
  255. package/dist/browser/react/use-action.d.ts.map +0 -1
  256. package/dist/browser/react/use-action.js +0 -134
  257. package/dist/browser/react/use-action.js.map +0 -1
  258. package/dist/browser/react/use-client-cache.d.ts +0 -41
  259. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  260. package/dist/browser/react/use-client-cache.js +0 -39
  261. package/dist/browser/react/use-client-cache.js.map +0 -1
  262. package/dist/browser/react/use-handle.d.ts +0 -31
  263. package/dist/browser/react/use-handle.d.ts.map +0 -1
  264. package/dist/browser/react/use-handle.js +0 -144
  265. package/dist/browser/react/use-handle.js.map +0 -1
  266. package/dist/browser/react/use-href.d.ts +0 -33
  267. package/dist/browser/react/use-href.d.ts.map +0 -1
  268. package/dist/browser/react/use-href.js +0 -39
  269. package/dist/browser/react/use-href.js.map +0 -1
  270. package/dist/browser/react/use-link-status.d.ts +0 -37
  271. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  272. package/dist/browser/react/use-link-status.js +0 -99
  273. package/dist/browser/react/use-link-status.js.map +0 -1
  274. package/dist/browser/react/use-mount.d.ts +0 -25
  275. package/dist/browser/react/use-mount.d.ts.map +0 -1
  276. package/dist/browser/react/use-mount.js +0 -30
  277. package/dist/browser/react/use-mount.js.map +0 -1
  278. package/dist/browser/react/use-navigation.d.ts +0 -27
  279. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  280. package/dist/browser/react/use-navigation.js +0 -87
  281. package/dist/browser/react/use-navigation.js.map +0 -1
  282. package/dist/browser/react/use-segments.d.ts +0 -38
  283. package/dist/browser/react/use-segments.d.ts.map +0 -1
  284. package/dist/browser/react/use-segments.js +0 -130
  285. package/dist/browser/react/use-segments.js.map +0 -1
  286. package/dist/browser/request-controller.d.ts +0 -26
  287. package/dist/browser/request-controller.d.ts.map +0 -1
  288. package/dist/browser/request-controller.js +0 -147
  289. package/dist/browser/request-controller.js.map +0 -1
  290. package/dist/browser/rsc-router.d.ts +0 -129
  291. package/dist/browser/rsc-router.d.ts.map +0 -1
  292. package/dist/browser/rsc-router.js +0 -195
  293. package/dist/browser/rsc-router.js.map +0 -1
  294. package/dist/browser/scroll-restoration.d.ts +0 -93
  295. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  296. package/dist/browser/scroll-restoration.js +0 -321
  297. package/dist/browser/scroll-restoration.js.map +0 -1
  298. package/dist/browser/segment-structure-assert.d.ts +0 -17
  299. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  300. package/dist/browser/segment-structure-assert.js +0 -59
  301. package/dist/browser/segment-structure-assert.js.map +0 -1
  302. package/dist/browser/server-action-bridge.d.ts +0 -26
  303. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  304. package/dist/browser/server-action-bridge.js +0 -668
  305. package/dist/browser/server-action-bridge.js.map +0 -1
  306. package/dist/browser/shallow.d.ts +0 -12
  307. package/dist/browser/shallow.d.ts.map +0 -1
  308. package/dist/browser/shallow.js +0 -34
  309. package/dist/browser/shallow.js.map +0 -1
  310. package/dist/browser/types.d.ts +0 -369
  311. package/dist/browser/types.d.ts.map +0 -1
  312. package/dist/browser/types.js +0 -2
  313. package/dist/browser/types.js.map +0 -1
  314. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  315. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  316. package/dist/build/__tests__/generate-cli.test.js +0 -237
  317. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  318. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  319. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  320. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  321. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  322. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  323. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  324. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  325. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  326. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  327. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  328. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  329. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  330. package/dist/build/generate-manifest.d.ts +0 -81
  331. package/dist/build/generate-manifest.d.ts.map +0 -1
  332. package/dist/build/generate-manifest.js +0 -276
  333. package/dist/build/generate-manifest.js.map +0 -1
  334. package/dist/build/generate-route-types.d.ts +0 -115
  335. package/dist/build/generate-route-types.d.ts.map +0 -1
  336. package/dist/build/generate-route-types.js +0 -740
  337. package/dist/build/generate-route-types.js.map +0 -1
  338. package/dist/build/index.d.ts +0 -21
  339. package/dist/build/index.d.ts.map +0 -1
  340. package/dist/build/index.js +0 -21
  341. package/dist/build/index.js.map +0 -1
  342. package/dist/build/route-trie.d.ts +0 -71
  343. package/dist/build/route-trie.d.ts.map +0 -1
  344. package/dist/build/route-trie.js +0 -175
  345. package/dist/build/route-trie.js.map +0 -1
  346. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  347. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  348. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  349. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  350. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  351. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  352. package/dist/cache/__tests__/document-cache.test.js +0 -345
  353. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  354. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  355. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  356. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  357. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  358. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  359. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  360. package/dist/cache/__tests__/memory-store.test.js +0 -367
  361. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  362. package/dist/cache/cache-scope.d.ts +0 -102
  363. package/dist/cache/cache-scope.d.ts.map +0 -1
  364. package/dist/cache/cache-scope.js +0 -440
  365. package/dist/cache/cache-scope.js.map +0 -1
  366. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  367. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  368. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  369. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  370. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  371. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  372. package/dist/cache/cf/cf-cache-store.js +0 -242
  373. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  374. package/dist/cache/cf/index.d.ts +0 -14
  375. package/dist/cache/cf/index.d.ts.map +0 -1
  376. package/dist/cache/cf/index.js +0 -17
  377. package/dist/cache/cf/index.js.map +0 -1
  378. package/dist/cache/document-cache.d.ts +0 -64
  379. package/dist/cache/document-cache.d.ts.map +0 -1
  380. package/dist/cache/document-cache.js +0 -228
  381. package/dist/cache/document-cache.js.map +0 -1
  382. package/dist/cache/index.d.ts +0 -19
  383. package/dist/cache/index.d.ts.map +0 -1
  384. package/dist/cache/index.js +0 -21
  385. package/dist/cache/index.js.map +0 -1
  386. package/dist/cache/memory-segment-store.d.ts +0 -110
  387. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  388. package/dist/cache/memory-segment-store.js +0 -117
  389. package/dist/cache/memory-segment-store.js.map +0 -1
  390. package/dist/cache/memory-store.d.ts +0 -41
  391. package/dist/cache/memory-store.d.ts.map +0 -1
  392. package/dist/cache/memory-store.js +0 -191
  393. package/dist/cache/memory-store.js.map +0 -1
  394. package/dist/cache/types.d.ts +0 -317
  395. package/dist/cache/types.d.ts.map +0 -1
  396. package/dist/cache/types.js +0 -12
  397. package/dist/cache/types.js.map +0 -1
  398. package/dist/client.d.ts +0 -248
  399. package/dist/client.d.ts.map +0 -1
  400. package/dist/client.js +0 -367
  401. package/dist/client.js.map +0 -1
  402. package/dist/client.rsc.d.ts +0 -26
  403. package/dist/client.rsc.d.ts.map +0 -1
  404. package/dist/client.rsc.js +0 -46
  405. package/dist/client.rsc.js.map +0 -1
  406. package/dist/component-utils.d.ts +0 -36
  407. package/dist/component-utils.d.ts.map +0 -1
  408. package/dist/component-utils.js +0 -61
  409. package/dist/component-utils.js.map +0 -1
  410. package/dist/components/DefaultDocument.d.ts +0 -13
  411. package/dist/components/DefaultDocument.d.ts.map +0 -1
  412. package/dist/components/DefaultDocument.js +0 -15
  413. package/dist/components/DefaultDocument.js.map +0 -1
  414. package/dist/debug.d.ts +0 -58
  415. package/dist/debug.d.ts.map +0 -1
  416. package/dist/debug.js +0 -157
  417. package/dist/debug.js.map +0 -1
  418. package/dist/default-error-boundary.d.ts +0 -11
  419. package/dist/default-error-boundary.d.ts.map +0 -1
  420. package/dist/default-error-boundary.js +0 -45
  421. package/dist/default-error-boundary.js.map +0 -1
  422. package/dist/deps/browser.d.ts +0 -2
  423. package/dist/deps/browser.d.ts.map +0 -1
  424. package/dist/deps/browser.js +0 -3
  425. package/dist/deps/browser.js.map +0 -1
  426. package/dist/deps/html-stream-client.d.ts +0 -2
  427. package/dist/deps/html-stream-client.d.ts.map +0 -1
  428. package/dist/deps/html-stream-client.js +0 -3
  429. package/dist/deps/html-stream-client.js.map +0 -1
  430. package/dist/deps/html-stream-server.d.ts +0 -2
  431. package/dist/deps/html-stream-server.d.ts.map +0 -1
  432. package/dist/deps/html-stream-server.js +0 -3
  433. package/dist/deps/html-stream-server.js.map +0 -1
  434. package/dist/deps/rsc.d.ts +0 -2
  435. package/dist/deps/rsc.d.ts.map +0 -1
  436. package/dist/deps/rsc.js +0 -4
  437. package/dist/deps/rsc.js.map +0 -1
  438. package/dist/deps/ssr.d.ts +0 -2
  439. package/dist/deps/ssr.d.ts.map +0 -1
  440. package/dist/deps/ssr.js +0 -3
  441. package/dist/deps/ssr.js.map +0 -1
  442. package/dist/errors.d.ts +0 -174
  443. package/dist/errors.d.ts.map +0 -1
  444. package/dist/errors.js +0 -241
  445. package/dist/errors.js.map +0 -1
  446. package/dist/handle.d.ts +0 -78
  447. package/dist/handle.d.ts.map +0 -1
  448. package/dist/handle.js +0 -82
  449. package/dist/handle.js.map +0 -1
  450. package/dist/handles/MetaTags.d.ts +0 -14
  451. package/dist/handles/MetaTags.d.ts.map +0 -1
  452. package/dist/handles/MetaTags.js +0 -136
  453. package/dist/handles/MetaTags.js.map +0 -1
  454. package/dist/handles/index.d.ts +0 -6
  455. package/dist/handles/index.d.ts.map +0 -1
  456. package/dist/handles/index.js +0 -6
  457. package/dist/handles/index.js.map +0 -1
  458. package/dist/handles/meta.d.ts +0 -39
  459. package/dist/handles/meta.d.ts.map +0 -1
  460. package/dist/handles/meta.js +0 -202
  461. package/dist/handles/meta.js.map +0 -1
  462. package/dist/host/__tests__/errors.test.d.ts +0 -2
  463. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  464. package/dist/host/__tests__/errors.test.js +0 -76
  465. package/dist/host/__tests__/errors.test.js.map +0 -1
  466. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  467. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  468. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  469. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  470. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  471. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  472. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  473. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  474. package/dist/host/__tests__/router.test.d.ts +0 -2
  475. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  476. package/dist/host/__tests__/router.test.js +0 -241
  477. package/dist/host/__tests__/router.test.js.map +0 -1
  478. package/dist/host/__tests__/testing.test.d.ts +0 -2
  479. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  480. package/dist/host/__tests__/testing.test.js +0 -64
  481. package/dist/host/__tests__/testing.test.js.map +0 -1
  482. package/dist/host/__tests__/utils.test.d.ts +0 -2
  483. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  484. package/dist/host/__tests__/utils.test.js +0 -29
  485. package/dist/host/__tests__/utils.test.js.map +0 -1
  486. package/dist/host/cookie-handler.d.ts +0 -34
  487. package/dist/host/cookie-handler.d.ts.map +0 -1
  488. package/dist/host/cookie-handler.js +0 -124
  489. package/dist/host/cookie-handler.js.map +0 -1
  490. package/dist/host/errors.d.ts +0 -56
  491. package/dist/host/errors.d.ts.map +0 -1
  492. package/dist/host/errors.js +0 -79
  493. package/dist/host/errors.js.map +0 -1
  494. package/dist/host/index.d.ts +0 -29
  495. package/dist/host/index.d.ts.map +0 -1
  496. package/dist/host/index.js +0 -32
  497. package/dist/host/index.js.map +0 -1
  498. package/dist/host/pattern-matcher.d.ts +0 -36
  499. package/dist/host/pattern-matcher.d.ts.map +0 -1
  500. package/dist/host/pattern-matcher.js +0 -172
  501. package/dist/host/pattern-matcher.js.map +0 -1
  502. package/dist/host/router.d.ts +0 -26
  503. package/dist/host/router.d.ts.map +0 -1
  504. package/dist/host/router.js +0 -218
  505. package/dist/host/router.js.map +0 -1
  506. package/dist/host/testing.d.ts +0 -36
  507. package/dist/host/testing.d.ts.map +0 -1
  508. package/dist/host/testing.js +0 -55
  509. package/dist/host/testing.js.map +0 -1
  510. package/dist/host/types.d.ts +0 -115
  511. package/dist/host/types.d.ts.map +0 -1
  512. package/dist/host/types.js +0 -7
  513. package/dist/host/types.js.map +0 -1
  514. package/dist/host/utils.d.ts +0 -21
  515. package/dist/host/utils.d.ts.map +0 -1
  516. package/dist/host/utils.js +0 -23
  517. package/dist/host/utils.js.map +0 -1
  518. package/dist/href-client.d.ts +0 -131
  519. package/dist/href-client.d.ts.map +0 -1
  520. package/dist/href-client.js +0 -64
  521. package/dist/href-client.js.map +0 -1
  522. package/dist/href-context.d.ts +0 -29
  523. package/dist/href-context.d.ts.map +0 -1
  524. package/dist/href-context.js +0 -21
  525. package/dist/href-context.js.map +0 -1
  526. package/dist/index.d.ts +0 -73
  527. package/dist/index.d.ts.map +0 -1
  528. package/dist/index.js +0 -91
  529. package/dist/index.js.map +0 -1
  530. package/dist/index.rsc.d.ts +0 -32
  531. package/dist/index.rsc.d.ts.map +0 -1
  532. package/dist/index.rsc.js +0 -40
  533. package/dist/index.rsc.js.map +0 -1
  534. package/dist/internal-debug.d.ts +0 -2
  535. package/dist/internal-debug.d.ts.map +0 -1
  536. package/dist/internal-debug.js +0 -5
  537. package/dist/internal-debug.js.map +0 -1
  538. package/dist/loader.d.ts +0 -14
  539. package/dist/loader.d.ts.map +0 -1
  540. package/dist/loader.js +0 -20
  541. package/dist/loader.js.map +0 -1
  542. package/dist/loader.rsc.d.ts +0 -19
  543. package/dist/loader.rsc.d.ts.map +0 -1
  544. package/dist/loader.rsc.js +0 -99
  545. package/dist/loader.rsc.js.map +0 -1
  546. package/dist/network-error-thrower.d.ts +0 -17
  547. package/dist/network-error-thrower.d.ts.map +0 -1
  548. package/dist/network-error-thrower.js +0 -14
  549. package/dist/network-error-thrower.js.map +0 -1
  550. package/dist/outlet-context.d.ts +0 -13
  551. package/dist/outlet-context.d.ts.map +0 -1
  552. package/dist/outlet-context.js +0 -3
  553. package/dist/outlet-context.js.map +0 -1
  554. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  555. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  556. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  557. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  558. package/dist/prerender/param-hash.d.ts +0 -16
  559. package/dist/prerender/param-hash.d.ts.map +0 -1
  560. package/dist/prerender/param-hash.js +0 -36
  561. package/dist/prerender/param-hash.js.map +0 -1
  562. package/dist/prerender/store.d.ts +0 -38
  563. package/dist/prerender/store.d.ts.map +0 -1
  564. package/dist/prerender/store.js +0 -61
  565. package/dist/prerender/store.js.map +0 -1
  566. package/dist/prerender.d.ts +0 -66
  567. package/dist/prerender.d.ts.map +0 -1
  568. package/dist/prerender.js +0 -57
  569. package/dist/prerender.js.map +0 -1
  570. package/dist/reverse.d.ts +0 -196
  571. package/dist/reverse.d.ts.map +0 -1
  572. package/dist/reverse.js +0 -78
  573. package/dist/reverse.js.map +0 -1
  574. package/dist/root-error-boundary.d.ts +0 -33
  575. package/dist/root-error-boundary.d.ts.map +0 -1
  576. package/dist/root-error-boundary.js +0 -165
  577. package/dist/root-error-boundary.js.map +0 -1
  578. package/dist/route-content-wrapper.d.ts +0 -46
  579. package/dist/route-content-wrapper.d.ts.map +0 -1
  580. package/dist/route-content-wrapper.js +0 -77
  581. package/dist/route-content-wrapper.js.map +0 -1
  582. package/dist/route-definition.d.ts +0 -421
  583. package/dist/route-definition.d.ts.map +0 -1
  584. package/dist/route-definition.js +0 -868
  585. package/dist/route-definition.js.map +0 -1
  586. package/dist/route-map-builder.d.ts +0 -155
  587. package/dist/route-map-builder.d.ts.map +0 -1
  588. package/dist/route-map-builder.js +0 -237
  589. package/dist/route-map-builder.js.map +0 -1
  590. package/dist/route-types.d.ts +0 -165
  591. package/dist/route-types.d.ts.map +0 -1
  592. package/dist/route-types.js +0 -7
  593. package/dist/route-types.js.map +0 -1
  594. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  595. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  596. package/dist/router/__tests__/handler-context.test.js +0 -65
  597. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  598. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  599. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  600. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  601. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  602. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  603. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  604. package/dist/router/__tests__/match-context.test.js +0 -92
  605. package/dist/router/__tests__/match-context.test.js.map +0 -1
  606. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  607. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  608. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  609. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  610. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  611. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  612. package/dist/router/__tests__/match-result.test.js +0 -457
  613. package/dist/router/__tests__/match-result.test.js.map +0 -1
  614. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  615. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  616. package/dist/router/__tests__/on-error.test.js +0 -678
  617. package/dist/router/__tests__/on-error.test.js.map +0 -1
  618. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  619. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  620. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  621. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  622. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  623. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  624. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  625. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  626. package/dist/router/error-handling.d.ts +0 -77
  627. package/dist/router/error-handling.d.ts.map +0 -1
  628. package/dist/router/error-handling.js +0 -202
  629. package/dist/router/error-handling.js.map +0 -1
  630. package/dist/router/handler-context.d.ts +0 -20
  631. package/dist/router/handler-context.d.ts.map +0 -1
  632. package/dist/router/handler-context.js +0 -198
  633. package/dist/router/handler-context.js.map +0 -1
  634. package/dist/router/intercept-resolution.d.ts +0 -66
  635. package/dist/router/intercept-resolution.d.ts.map +0 -1
  636. package/dist/router/intercept-resolution.js +0 -246
  637. package/dist/router/intercept-resolution.js.map +0 -1
  638. package/dist/router/loader-resolution.d.ts +0 -64
  639. package/dist/router/loader-resolution.d.ts.map +0 -1
  640. package/dist/router/loader-resolution.js +0 -284
  641. package/dist/router/loader-resolution.js.map +0 -1
  642. package/dist/router/logging.d.ts +0 -15
  643. package/dist/router/logging.d.ts.map +0 -1
  644. package/dist/router/logging.js +0 -99
  645. package/dist/router/logging.js.map +0 -1
  646. package/dist/router/manifest.d.ts +0 -22
  647. package/dist/router/manifest.d.ts.map +0 -1
  648. package/dist/router/manifest.js +0 -181
  649. package/dist/router/manifest.js.map +0 -1
  650. package/dist/router/match-api.d.ts +0 -35
  651. package/dist/router/match-api.d.ts.map +0 -1
  652. package/dist/router/match-api.js +0 -406
  653. package/dist/router/match-api.js.map +0 -1
  654. package/dist/router/match-context.d.ts +0 -206
  655. package/dist/router/match-context.d.ts.map +0 -1
  656. package/dist/router/match-context.js +0 -17
  657. package/dist/router/match-context.js.map +0 -1
  658. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  659. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  660. package/dist/router/match-middleware/background-revalidation.js +0 -75
  661. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  662. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  663. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  664. package/dist/router/match-middleware/cache-lookup.js +0 -257
  665. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  666. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  667. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  668. package/dist/router/match-middleware/cache-store.js +0 -108
  669. package/dist/router/match-middleware/cache-store.js.map +0 -1
  670. package/dist/router/match-middleware/index.d.ts +0 -81
  671. package/dist/router/match-middleware/index.d.ts.map +0 -1
  672. package/dist/router/match-middleware/index.js +0 -80
  673. package/dist/router/match-middleware/index.js.map +0 -1
  674. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  675. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  676. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  677. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  678. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  679. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  680. package/dist/router/match-middleware/segment-resolution.js +0 -53
  681. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  682. package/dist/router/match-pipelines.d.ts +0 -147
  683. package/dist/router/match-pipelines.d.ts.map +0 -1
  684. package/dist/router/match-pipelines.js +0 -82
  685. package/dist/router/match-pipelines.js.map +0 -1
  686. package/dist/router/match-result.d.ts +0 -126
  687. package/dist/router/match-result.d.ts.map +0 -1
  688. package/dist/router/match-result.js +0 -93
  689. package/dist/router/match-result.js.map +0 -1
  690. package/dist/router/metrics.d.ts +0 -20
  691. package/dist/router/metrics.d.ts.map +0 -1
  692. package/dist/router/metrics.js +0 -47
  693. package/dist/router/metrics.js.map +0 -1
  694. package/dist/router/middleware.d.ts +0 -249
  695. package/dist/router/middleware.d.ts.map +0 -1
  696. package/dist/router/middleware.js +0 -434
  697. package/dist/router/middleware.js.map +0 -1
  698. package/dist/router/middleware.test.d.ts +0 -2
  699. package/dist/router/middleware.test.d.ts.map +0 -1
  700. package/dist/router/middleware.test.js +0 -816
  701. package/dist/router/middleware.test.js.map +0 -1
  702. package/dist/router/pattern-matching.d.ts +0 -149
  703. package/dist/router/pattern-matching.d.ts.map +0 -1
  704. package/dist/router/pattern-matching.js +0 -349
  705. package/dist/router/pattern-matching.js.map +0 -1
  706. package/dist/router/revalidation.d.ts +0 -44
  707. package/dist/router/revalidation.d.ts.map +0 -1
  708. package/dist/router/revalidation.js +0 -147
  709. package/dist/router/revalidation.js.map +0 -1
  710. package/dist/router/router-context.d.ts +0 -135
  711. package/dist/router/router-context.d.ts.map +0 -1
  712. package/dist/router/router-context.js +0 -36
  713. package/dist/router/router-context.js.map +0 -1
  714. package/dist/router/segment-resolution.d.ts +0 -127
  715. package/dist/router/segment-resolution.d.ts.map +0 -1
  716. package/dist/router/segment-resolution.js +0 -919
  717. package/dist/router/segment-resolution.js.map +0 -1
  718. package/dist/router/trie-matching.d.ts +0 -40
  719. package/dist/router/trie-matching.d.ts.map +0 -1
  720. package/dist/router/trie-matching.js +0 -127
  721. package/dist/router/trie-matching.js.map +0 -1
  722. package/dist/router/types.d.ts +0 -136
  723. package/dist/router/types.d.ts.map +0 -1
  724. package/dist/router/types.js +0 -7
  725. package/dist/router/types.js.map +0 -1
  726. package/dist/router.d.ts +0 -753
  727. package/dist/router.d.ts.map +0 -1
  728. package/dist/router.gen.d.ts +0 -6
  729. package/dist/router.gen.d.ts.map +0 -1
  730. package/dist/router.gen.js +0 -6
  731. package/dist/router.gen.js.map +0 -1
  732. package/dist/router.js +0 -1304
  733. package/dist/router.js.map +0 -1
  734. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  735. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  736. package/dist/rsc/__tests__/helpers.test.js +0 -140
  737. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  738. package/dist/rsc/handler.d.ts +0 -45
  739. package/dist/rsc/handler.d.ts.map +0 -1
  740. package/dist/rsc/handler.js +0 -1172
  741. package/dist/rsc/handler.js.map +0 -1
  742. package/dist/rsc/helpers.d.ts +0 -16
  743. package/dist/rsc/helpers.d.ts.map +0 -1
  744. package/dist/rsc/helpers.js +0 -55
  745. package/dist/rsc/helpers.js.map +0 -1
  746. package/dist/rsc/index.d.ts +0 -22
  747. package/dist/rsc/index.d.ts.map +0 -1
  748. package/dist/rsc/index.js +0 -23
  749. package/dist/rsc/index.js.map +0 -1
  750. package/dist/rsc/nonce.d.ts +0 -9
  751. package/dist/rsc/nonce.d.ts.map +0 -1
  752. package/dist/rsc/nonce.js +0 -18
  753. package/dist/rsc/nonce.js.map +0 -1
  754. package/dist/rsc/types.d.ts +0 -206
  755. package/dist/rsc/types.d.ts.map +0 -1
  756. package/dist/rsc/types.js +0 -8
  757. package/dist/rsc/types.js.map +0 -1
  758. package/dist/search-params.d.ts +0 -103
  759. package/dist/search-params.d.ts.map +0 -1
  760. package/dist/search-params.js +0 -74
  761. package/dist/search-params.js.map +0 -1
  762. package/dist/segment-system.d.ts +0 -75
  763. package/dist/segment-system.d.ts.map +0 -1
  764. package/dist/segment-system.js +0 -336
  765. package/dist/segment-system.js.map +0 -1
  766. package/dist/server/context.d.ts +0 -245
  767. package/dist/server/context.d.ts.map +0 -1
  768. package/dist/server/context.js +0 -197
  769. package/dist/server/context.js.map +0 -1
  770. package/dist/server/fetchable-loader-store.d.ts +0 -18
  771. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  772. package/dist/server/fetchable-loader-store.js +0 -18
  773. package/dist/server/fetchable-loader-store.js.map +0 -1
  774. package/dist/server/handle-store.d.ts +0 -85
  775. package/dist/server/handle-store.d.ts.map +0 -1
  776. package/dist/server/handle-store.js +0 -142
  777. package/dist/server/handle-store.js.map +0 -1
  778. package/dist/server/loader-registry.d.ts +0 -55
  779. package/dist/server/loader-registry.d.ts.map +0 -1
  780. package/dist/server/loader-registry.js +0 -132
  781. package/dist/server/loader-registry.js.map +0 -1
  782. package/dist/server/request-context.d.ts +0 -226
  783. package/dist/server/request-context.d.ts.map +0 -1
  784. package/dist/server/request-context.js +0 -290
  785. package/dist/server/request-context.js.map +0 -1
  786. package/dist/server/root-layout.d.ts +0 -4
  787. package/dist/server/root-layout.d.ts.map +0 -1
  788. package/dist/server/root-layout.js +0 -5
  789. package/dist/server/root-layout.js.map +0 -1
  790. package/dist/server.d.ts +0 -15
  791. package/dist/server.d.ts.map +0 -1
  792. package/dist/server.js +0 -20
  793. package/dist/server.js.map +0 -1
  794. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  795. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  796. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  797. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  798. package/dist/ssr/index.d.ts +0 -98
  799. package/dist/ssr/index.d.ts.map +0 -1
  800. package/dist/ssr/index.js +0 -158
  801. package/dist/ssr/index.js.map +0 -1
  802. package/dist/static-handler.d.ts +0 -50
  803. package/dist/static-handler.d.ts.map +0 -1
  804. package/dist/static-handler.gen.d.ts +0 -5
  805. package/dist/static-handler.gen.d.ts.map +0 -1
  806. package/dist/static-handler.gen.js +0 -5
  807. package/dist/static-handler.gen.js.map +0 -1
  808. package/dist/static-handler.js +0 -29
  809. package/dist/static-handler.js.map +0 -1
  810. package/dist/theme/ThemeProvider.d.ts +0 -20
  811. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  812. package/dist/theme/ThemeProvider.js +0 -240
  813. package/dist/theme/ThemeProvider.js.map +0 -1
  814. package/dist/theme/ThemeScript.d.ts +0 -48
  815. package/dist/theme/ThemeScript.d.ts.map +0 -1
  816. package/dist/theme/ThemeScript.js +0 -13
  817. package/dist/theme/ThemeScript.js.map +0 -1
  818. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  819. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  820. package/dist/theme/__tests__/theme.test.js +0 -103
  821. package/dist/theme/__tests__/theme.test.js.map +0 -1
  822. package/dist/theme/constants.d.ts +0 -29
  823. package/dist/theme/constants.d.ts.map +0 -1
  824. package/dist/theme/constants.js +0 -48
  825. package/dist/theme/constants.js.map +0 -1
  826. package/dist/theme/index.d.ts +0 -31
  827. package/dist/theme/index.d.ts.map +0 -1
  828. package/dist/theme/index.js +0 -36
  829. package/dist/theme/index.js.map +0 -1
  830. package/dist/theme/theme-context.d.ts +0 -40
  831. package/dist/theme/theme-context.d.ts.map +0 -1
  832. package/dist/theme/theme-context.js +0 -60
  833. package/dist/theme/theme-context.js.map +0 -1
  834. package/dist/theme/theme-script.d.ts +0 -27
  835. package/dist/theme/theme-script.d.ts.map +0 -1
  836. package/dist/theme/theme-script.js +0 -147
  837. package/dist/theme/theme-script.js.map +0 -1
  838. package/dist/theme/types.d.ts +0 -163
  839. package/dist/theme/types.d.ts.map +0 -1
  840. package/dist/theme/types.js +0 -11
  841. package/dist/theme/types.js.map +0 -1
  842. package/dist/theme/use-theme.d.ts +0 -12
  843. package/dist/theme/use-theme.d.ts.map +0 -1
  844. package/dist/theme/use-theme.js +0 -40
  845. package/dist/theme/use-theme.js.map +0 -1
  846. package/dist/types.d.ts +0 -1479
  847. package/dist/types.d.ts.map +0 -1
  848. package/dist/types.js +0 -10
  849. package/dist/types.js.map +0 -1
  850. package/dist/urls.d.ts +0 -441
  851. package/dist/urls.d.ts.map +0 -1
  852. package/dist/urls.gen.d.ts +0 -8
  853. package/dist/urls.gen.d.ts.map +0 -1
  854. package/dist/urls.gen.js +0 -8
  855. package/dist/urls.gen.js.map +0 -1
  856. package/dist/urls.js +0 -443
  857. package/dist/urls.js.map +0 -1
  858. package/dist/use-loader.d.ts +0 -127
  859. package/dist/use-loader.d.ts.map +0 -1
  860. package/dist/use-loader.js +0 -237
  861. package/dist/use-loader.js.map +0 -1
  862. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  863. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  864. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  865. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  866. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  867. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  868. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  869. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  870. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  871. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  872. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  873. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  874. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  875. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  876. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  877. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  878. package/dist/vite/ast-handler-extract.d.ts +0 -49
  879. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  880. package/dist/vite/ast-handler-extract.js +0 -249
  881. package/dist/vite/ast-handler-extract.js.map +0 -1
  882. package/dist/vite/expose-action-id.d.ts +0 -19
  883. package/dist/vite/expose-action-id.d.ts.map +0 -1
  884. package/dist/vite/expose-action-id.js +0 -250
  885. package/dist/vite/expose-action-id.js.map +0 -1
  886. package/dist/vite/expose-id-utils.d.ts +0 -69
  887. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  888. package/dist/vite/expose-id-utils.js +0 -289
  889. package/dist/vite/expose-id-utils.js.map +0 -1
  890. package/dist/vite/expose-internal-ids.d.ts +0 -22
  891. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  892. package/dist/vite/expose-internal-ids.js +0 -886
  893. package/dist/vite/expose-internal-ids.js.map +0 -1
  894. package/dist/vite/index.d.ts +0 -149
  895. package/dist/vite/index.d.ts.map +0 -1
  896. package/dist/vite/index.js.map +0 -1
  897. package/dist/vite/index.named-routes.gen.ts +0 -103
  898. package/dist/vite/package-resolution.d.ts +0 -43
  899. package/dist/vite/package-resolution.d.ts.map +0 -1
  900. package/dist/vite/package-resolution.js +0 -112
  901. package/dist/vite/package-resolution.js.map +0 -1
  902. package/dist/vite/virtual-entries.d.ts +0 -25
  903. package/dist/vite/virtual-entries.d.ts.map +0 -1
  904. package/dist/vite/virtual-entries.js +0 -110
  905. package/dist/vite/virtual-entries.js.map +0 -1
  906. 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