@rangojs/router 0.0.0-experimental.fa8a383a → 0.0.0-experimental.fb6e2f40

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