@rangojs/router 0.0.0-experimental.760a71d9 → 0.0.0-experimental.77

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 (926) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +716 -237
  4. package/package.json +3 -3
  5. package/skills/cache-guide/SKILL.md +32 -0
  6. package/skills/caching/SKILL.md +8 -0
  7. package/skills/handler-use/SKILL.md +362 -0
  8. package/skills/intercept/SKILL.md +20 -0
  9. package/skills/layout/SKILL.md +22 -0
  10. package/skills/links/SKILL.md +3 -1
  11. package/skills/loader/SKILL.md +53 -43
  12. package/skills/middleware/SKILL.md +2 -0
  13. package/skills/parallel/SKILL.md +126 -0
  14. package/skills/prerender/SKILL.md +110 -68
  15. package/skills/route/SKILL.md +55 -0
  16. package/skills/router-setup/SKILL.md +87 -2
  17. package/skills/typesafety/SKILL.md +10 -0
  18. package/src/__internal.ts +1 -1
  19. package/src/browser/app-version.ts +14 -0
  20. package/src/browser/navigation-bridge.ts +23 -4
  21. package/src/browser/navigation-client.ts +98 -46
  22. package/src/browser/navigation-store.ts +43 -8
  23. package/src/browser/partial-update.ts +32 -5
  24. package/src/browser/prefetch/cache.ts +16 -6
  25. package/src/browser/prefetch/fetch.ts +68 -6
  26. package/src/browser/prefetch/queue.ts +61 -29
  27. package/src/browser/prefetch/resource-ready.ts +77 -0
  28. package/src/browser/react/Link.tsx +67 -8
  29. package/src/browser/react/NavigationProvider.tsx +13 -4
  30. package/src/browser/react/context.ts +7 -2
  31. package/src/browser/react/use-handle.ts +9 -58
  32. package/src/browser/react/use-router.ts +21 -8
  33. package/src/browser/rsc-router.tsx +26 -3
  34. package/src/browser/scroll-restoration.ts +10 -8
  35. package/src/browser/segment-reconciler.ts +26 -0
  36. package/src/browser/server-action-bridge.ts +8 -6
  37. package/src/browser/types.ts +27 -5
  38. package/src/build/generate-manifest.ts +6 -6
  39. package/src/build/generate-route-types.ts +3 -0
  40. package/src/build/route-trie.ts +50 -24
  41. package/src/build/route-types/include-resolution.ts +8 -1
  42. package/src/build/route-types/router-processing.ts +211 -72
  43. package/src/build/route-types/scan-filter.ts +8 -1
  44. package/src/cache/cache-scope.ts +46 -5
  45. package/src/cache/taint.ts +55 -0
  46. package/src/client.tsx +2 -56
  47. package/src/context-var.ts +72 -2
  48. package/src/handle.ts +40 -0
  49. package/src/index.rsc.ts +3 -1
  50. package/src/index.ts +46 -6
  51. package/src/prerender/store.ts +5 -4
  52. package/src/prerender.ts +138 -77
  53. package/src/reverse.ts +25 -1
  54. package/src/route-definition/dsl-helpers.ts +194 -32
  55. package/src/route-definition/helpers-types.ts +67 -19
  56. package/src/route-definition/index.ts +3 -0
  57. package/src/route-definition/redirect.ts +9 -1
  58. package/src/route-definition/resolve-handler-use.ts +149 -0
  59. package/src/route-types.ts +11 -0
  60. package/src/router/content-negotiation.ts +100 -1
  61. package/src/router/handler-context.ts +82 -23
  62. package/src/router/intercept-resolution.ts +9 -4
  63. package/src/router/loader-resolution.ts +156 -21
  64. package/src/router/match-api.ts +124 -189
  65. package/src/router/match-middleware/background-revalidation.ts +12 -1
  66. package/src/router/match-middleware/cache-lookup.ts +40 -13
  67. package/src/router/match-middleware/cache-store.ts +21 -4
  68. package/src/router/match-middleware/segment-resolution.ts +53 -0
  69. package/src/router/match-result.ts +82 -4
  70. package/src/router/middleware-types.ts +6 -8
  71. package/src/router/middleware.ts +2 -5
  72. package/src/router/navigation-snapshot.ts +182 -0
  73. package/src/router/prerender-match.ts +110 -10
  74. package/src/router/preview-match.ts +30 -102
  75. package/src/router/request-classification.ts +310 -0
  76. package/src/router/route-snapshot.ts +245 -0
  77. package/src/router/router-context.ts +1 -0
  78. package/src/router/router-interfaces.ts +36 -4
  79. package/src/router/router-options.ts +37 -11
  80. package/src/router/segment-resolution/fresh.ts +80 -9
  81. package/src/router/segment-resolution/helpers.ts +29 -24
  82. package/src/router/segment-resolution/revalidation.ts +91 -8
  83. package/src/router/types.ts +1 -0
  84. package/src/router.ts +54 -5
  85. package/src/rsc/handler.ts +472 -372
  86. package/src/rsc/loader-fetch.ts +23 -3
  87. package/src/rsc/manifest-init.ts +5 -1
  88. package/src/rsc/progressive-enhancement.ts +14 -2
  89. package/src/rsc/rsc-rendering.ts +10 -1
  90. package/src/rsc/server-action.ts +8 -0
  91. package/src/rsc/ssr-setup.ts +2 -2
  92. package/src/rsc/types.ts +9 -1
  93. package/src/server/context.ts +50 -1
  94. package/src/server/handle-store.ts +19 -0
  95. package/src/server/loader-registry.ts +9 -8
  96. package/src/server/request-context.ts +175 -15
  97. package/src/ssr/index.tsx +3 -0
  98. package/src/static-handler.ts +18 -6
  99. package/src/types/cache-types.ts +4 -4
  100. package/src/types/handler-context.ts +37 -19
  101. package/src/types/loader-types.ts +36 -9
  102. package/src/types/route-entry.ts +1 -1
  103. package/src/types/segments.ts +1 -0
  104. package/src/urls/path-helper-types.ts +39 -6
  105. package/src/urls/path-helper.ts +47 -12
  106. package/src/urls/pattern-types.ts +12 -0
  107. package/src/urls/response-types.ts +16 -6
  108. package/src/use-loader.tsx +77 -5
  109. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  110. package/src/vite/discovery/discover-routers.ts +5 -1
  111. package/src/vite/discovery/prerender-collection.ts +128 -74
  112. package/src/vite/discovery/state.ts +13 -4
  113. package/src/vite/index.ts +4 -0
  114. package/src/vite/plugin-types.ts +60 -5
  115. package/src/vite/plugins/expose-id-utils.ts +12 -0
  116. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  117. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  118. package/src/vite/plugins/performance-tracks.ts +88 -0
  119. package/src/vite/plugins/refresh-cmd.ts +88 -26
  120. package/src/vite/rango.ts +19 -2
  121. package/src/vite/router-discovery.ts +178 -37
  122. package/src/vite/utils/prerender-utils.ts +37 -5
  123. package/src/vite/utils/shared-utils.ts +3 -2
  124. package/dist/__internal.d.ts +0 -83
  125. package/dist/__internal.d.ts.map +0 -1
  126. package/dist/__internal.js +0 -19
  127. package/dist/__internal.js.map +0 -1
  128. package/dist/__mocks__/version.d.ts +0 -7
  129. package/dist/__mocks__/version.d.ts.map +0 -1
  130. package/dist/__mocks__/version.js +0 -7
  131. package/dist/__mocks__/version.js.map +0 -1
  132. package/dist/__tests__/client-href.test.d.ts +0 -2
  133. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  134. package/dist/__tests__/client-href.test.js +0 -74
  135. package/dist/__tests__/client-href.test.js.map +0 -1
  136. package/dist/__tests__/component-utils.test.d.ts +0 -2
  137. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  138. package/dist/__tests__/component-utils.test.js +0 -51
  139. package/dist/__tests__/component-utils.test.js.map +0 -1
  140. package/dist/__tests__/event-controller.test.d.ts +0 -2
  141. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  142. package/dist/__tests__/event-controller.test.js +0 -538
  143. package/dist/__tests__/event-controller.test.js.map +0 -1
  144. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  145. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  146. package/dist/__tests__/helpers/route-tree.js +0 -374
  147. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  148. package/dist/__tests__/match-result.test.d.ts +0 -2
  149. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  150. package/dist/__tests__/match-result.test.js +0 -154
  151. package/dist/__tests__/match-result.test.js.map +0 -1
  152. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  153. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  154. package/dist/__tests__/navigation-store.test.js +0 -440
  155. package/dist/__tests__/navigation-store.test.js.map +0 -1
  156. package/dist/__tests__/partial-update.test.d.ts +0 -2
  157. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  158. package/dist/__tests__/partial-update.test.js +0 -1009
  159. package/dist/__tests__/partial-update.test.js.map +0 -1
  160. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  161. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  162. package/dist/__tests__/reverse-types.test.js +0 -656
  163. package/dist/__tests__/reverse-types.test.js.map +0 -1
  164. package/dist/__tests__/route-definition.test.d.ts +0 -2
  165. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  166. package/dist/__tests__/route-definition.test.js +0 -55
  167. package/dist/__tests__/route-definition.test.js.map +0 -1
  168. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  169. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  170. package/dist/__tests__/router-helpers.test.js +0 -377
  171. package/dist/__tests__/router-helpers.test.js.map +0 -1
  172. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  173. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  174. package/dist/__tests__/router-integration-2.test.js +0 -426
  175. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  176. package/dist/__tests__/router-integration.test.d.ts +0 -2
  177. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  178. package/dist/__tests__/router-integration.test.js +0 -1051
  179. package/dist/__tests__/router-integration.test.js.map +0 -1
  180. package/dist/__tests__/search-params.test.d.ts +0 -5
  181. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  182. package/dist/__tests__/search-params.test.js +0 -306
  183. package/dist/__tests__/search-params.test.js.map +0 -1
  184. package/dist/__tests__/segment-system.test.d.ts +0 -2
  185. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  186. package/dist/__tests__/segment-system.test.js +0 -627
  187. package/dist/__tests__/segment-system.test.js.map +0 -1
  188. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  189. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  190. package/dist/__tests__/static-handler-types.test.js +0 -63
  191. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  192. package/dist/__tests__/urls.test.d.ts +0 -2
  193. package/dist/__tests__/urls.test.d.ts.map +0 -1
  194. package/dist/__tests__/urls.test.js +0 -421
  195. package/dist/__tests__/urls.test.js.map +0 -1
  196. package/dist/__tests__/use-mount.test.d.ts +0 -2
  197. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  198. package/dist/__tests__/use-mount.test.js +0 -35
  199. package/dist/__tests__/use-mount.test.js.map +0 -1
  200. package/dist/bin/rango.d.ts +0 -2
  201. package/dist/bin/rango.d.ts.map +0 -1
  202. package/dist/bin/rango.js.map +0 -1
  203. package/dist/browser/event-controller.d.ts +0 -191
  204. package/dist/browser/event-controller.d.ts.map +0 -1
  205. package/dist/browser/event-controller.js +0 -559
  206. package/dist/browser/event-controller.js.map +0 -1
  207. package/dist/browser/index.d.ts +0 -2
  208. package/dist/browser/index.d.ts.map +0 -1
  209. package/dist/browser/index.js +0 -14
  210. package/dist/browser/index.js.map +0 -1
  211. package/dist/browser/link-interceptor.d.ts +0 -38
  212. package/dist/browser/link-interceptor.d.ts.map +0 -1
  213. package/dist/browser/link-interceptor.js +0 -99
  214. package/dist/browser/link-interceptor.js.map +0 -1
  215. package/dist/browser/logging.d.ts +0 -10
  216. package/dist/browser/logging.d.ts.map +0 -1
  217. package/dist/browser/logging.js +0 -29
  218. package/dist/browser/logging.js.map +0 -1
  219. package/dist/browser/lru-cache.d.ts +0 -17
  220. package/dist/browser/lru-cache.d.ts.map +0 -1
  221. package/dist/browser/lru-cache.js +0 -50
  222. package/dist/browser/lru-cache.js.map +0 -1
  223. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  224. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  225. package/dist/browser/merge-segment-loaders.js +0 -102
  226. package/dist/browser/merge-segment-loaders.js.map +0 -1
  227. package/dist/browser/navigation-bridge.d.ts +0 -102
  228. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  229. package/dist/browser/navigation-bridge.js +0 -708
  230. package/dist/browser/navigation-bridge.js.map +0 -1
  231. package/dist/browser/navigation-client.d.ts +0 -25
  232. package/dist/browser/navigation-client.d.ts.map +0 -1
  233. package/dist/browser/navigation-client.js +0 -157
  234. package/dist/browser/navigation-client.js.map +0 -1
  235. package/dist/browser/navigation-store.d.ts +0 -101
  236. package/dist/browser/navigation-store.d.ts.map +0 -1
  237. package/dist/browser/navigation-store.js +0 -625
  238. package/dist/browser/navigation-store.js.map +0 -1
  239. package/dist/browser/partial-update.d.ts +0 -75
  240. package/dist/browser/partial-update.d.ts.map +0 -1
  241. package/dist/browser/partial-update.js +0 -426
  242. package/dist/browser/partial-update.js.map +0 -1
  243. package/dist/browser/react/Link.d.ts +0 -86
  244. package/dist/browser/react/Link.d.ts.map +0 -1
  245. package/dist/browser/react/Link.js +0 -128
  246. package/dist/browser/react/Link.js.map +0 -1
  247. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  248. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  249. package/dist/browser/react/NavigationProvider.js +0 -216
  250. package/dist/browser/react/NavigationProvider.js.map +0 -1
  251. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  252. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  253. package/dist/browser/react/ScrollRestoration.js +0 -57
  254. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  255. package/dist/browser/react/context.d.ts +0 -46
  256. package/dist/browser/react/context.d.ts.map +0 -1
  257. package/dist/browser/react/context.js +0 -10
  258. package/dist/browser/react/context.js.map +0 -1
  259. package/dist/browser/react/index.d.ts +0 -11
  260. package/dist/browser/react/index.d.ts.map +0 -1
  261. package/dist/browser/react/index.js +0 -22
  262. package/dist/browser/react/index.js.map +0 -1
  263. package/dist/browser/react/location-state-shared.d.ts +0 -63
  264. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  265. package/dist/browser/react/location-state-shared.js +0 -81
  266. package/dist/browser/react/location-state-shared.js.map +0 -1
  267. package/dist/browser/react/location-state.d.ts +0 -23
  268. package/dist/browser/react/location-state.d.ts.map +0 -1
  269. package/dist/browser/react/location-state.js +0 -29
  270. package/dist/browser/react/location-state.js.map +0 -1
  271. package/dist/browser/react/mount-context.d.ts +0 -24
  272. package/dist/browser/react/mount-context.d.ts.map +0 -1
  273. package/dist/browser/react/mount-context.js +0 -24
  274. package/dist/browser/react/mount-context.js.map +0 -1
  275. package/dist/browser/react/use-action.d.ts +0 -64
  276. package/dist/browser/react/use-action.d.ts.map +0 -1
  277. package/dist/browser/react/use-action.js +0 -134
  278. package/dist/browser/react/use-action.js.map +0 -1
  279. package/dist/browser/react/use-client-cache.d.ts +0 -41
  280. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  281. package/dist/browser/react/use-client-cache.js +0 -39
  282. package/dist/browser/react/use-client-cache.js.map +0 -1
  283. package/dist/browser/react/use-handle.d.ts +0 -31
  284. package/dist/browser/react/use-handle.d.ts.map +0 -1
  285. package/dist/browser/react/use-handle.js +0 -144
  286. package/dist/browser/react/use-handle.js.map +0 -1
  287. package/dist/browser/react/use-href.d.ts +0 -33
  288. package/dist/browser/react/use-href.d.ts.map +0 -1
  289. package/dist/browser/react/use-href.js +0 -39
  290. package/dist/browser/react/use-href.js.map +0 -1
  291. package/dist/browser/react/use-link-status.d.ts +0 -37
  292. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  293. package/dist/browser/react/use-link-status.js +0 -99
  294. package/dist/browser/react/use-link-status.js.map +0 -1
  295. package/dist/browser/react/use-mount.d.ts +0 -25
  296. package/dist/browser/react/use-mount.d.ts.map +0 -1
  297. package/dist/browser/react/use-mount.js +0 -30
  298. package/dist/browser/react/use-mount.js.map +0 -1
  299. package/dist/browser/react/use-navigation.d.ts +0 -27
  300. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  301. package/dist/browser/react/use-navigation.js +0 -87
  302. package/dist/browser/react/use-navigation.js.map +0 -1
  303. package/dist/browser/react/use-segments.d.ts +0 -38
  304. package/dist/browser/react/use-segments.d.ts.map +0 -1
  305. package/dist/browser/react/use-segments.js +0 -130
  306. package/dist/browser/react/use-segments.js.map +0 -1
  307. package/dist/browser/request-controller.d.ts +0 -26
  308. package/dist/browser/request-controller.d.ts.map +0 -1
  309. package/dist/browser/request-controller.js +0 -147
  310. package/dist/browser/request-controller.js.map +0 -1
  311. package/dist/browser/rsc-router.d.ts +0 -129
  312. package/dist/browser/rsc-router.d.ts.map +0 -1
  313. package/dist/browser/rsc-router.js +0 -195
  314. package/dist/browser/rsc-router.js.map +0 -1
  315. package/dist/browser/scroll-restoration.d.ts +0 -93
  316. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  317. package/dist/browser/scroll-restoration.js +0 -321
  318. package/dist/browser/scroll-restoration.js.map +0 -1
  319. package/dist/browser/segment-structure-assert.d.ts +0 -17
  320. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  321. package/dist/browser/segment-structure-assert.js +0 -59
  322. package/dist/browser/segment-structure-assert.js.map +0 -1
  323. package/dist/browser/server-action-bridge.d.ts +0 -26
  324. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  325. package/dist/browser/server-action-bridge.js +0 -668
  326. package/dist/browser/server-action-bridge.js.map +0 -1
  327. package/dist/browser/shallow.d.ts +0 -12
  328. package/dist/browser/shallow.d.ts.map +0 -1
  329. package/dist/browser/shallow.js +0 -34
  330. package/dist/browser/shallow.js.map +0 -1
  331. package/dist/browser/types.d.ts +0 -369
  332. package/dist/browser/types.d.ts.map +0 -1
  333. package/dist/browser/types.js +0 -2
  334. package/dist/browser/types.js.map +0 -1
  335. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  336. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  337. package/dist/build/__tests__/generate-cli.test.js +0 -237
  338. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  339. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  340. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  341. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  342. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  343. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  344. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  345. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  346. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  347. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  348. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  349. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  350. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  351. package/dist/build/generate-manifest.d.ts +0 -81
  352. package/dist/build/generate-manifest.d.ts.map +0 -1
  353. package/dist/build/generate-manifest.js +0 -276
  354. package/dist/build/generate-manifest.js.map +0 -1
  355. package/dist/build/generate-route-types.d.ts +0 -115
  356. package/dist/build/generate-route-types.d.ts.map +0 -1
  357. package/dist/build/generate-route-types.js +0 -740
  358. package/dist/build/generate-route-types.js.map +0 -1
  359. package/dist/build/index.d.ts +0 -21
  360. package/dist/build/index.d.ts.map +0 -1
  361. package/dist/build/index.js +0 -21
  362. package/dist/build/index.js.map +0 -1
  363. package/dist/build/route-trie.d.ts +0 -71
  364. package/dist/build/route-trie.d.ts.map +0 -1
  365. package/dist/build/route-trie.js +0 -175
  366. package/dist/build/route-trie.js.map +0 -1
  367. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  368. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  369. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  370. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  371. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  372. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  373. package/dist/cache/__tests__/document-cache.test.js +0 -345
  374. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  375. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  376. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  377. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  378. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  379. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  380. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  381. package/dist/cache/__tests__/memory-store.test.js +0 -367
  382. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  383. package/dist/cache/cache-scope.d.ts +0 -102
  384. package/dist/cache/cache-scope.d.ts.map +0 -1
  385. package/dist/cache/cache-scope.js +0 -440
  386. package/dist/cache/cache-scope.js.map +0 -1
  387. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  388. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  389. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  390. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  391. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  392. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  393. package/dist/cache/cf/cf-cache-store.js +0 -242
  394. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  395. package/dist/cache/cf/index.d.ts +0 -14
  396. package/dist/cache/cf/index.d.ts.map +0 -1
  397. package/dist/cache/cf/index.js +0 -17
  398. package/dist/cache/cf/index.js.map +0 -1
  399. package/dist/cache/document-cache.d.ts +0 -64
  400. package/dist/cache/document-cache.d.ts.map +0 -1
  401. package/dist/cache/document-cache.js +0 -228
  402. package/dist/cache/document-cache.js.map +0 -1
  403. package/dist/cache/index.d.ts +0 -19
  404. package/dist/cache/index.d.ts.map +0 -1
  405. package/dist/cache/index.js +0 -21
  406. package/dist/cache/index.js.map +0 -1
  407. package/dist/cache/memory-segment-store.d.ts +0 -110
  408. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  409. package/dist/cache/memory-segment-store.js +0 -117
  410. package/dist/cache/memory-segment-store.js.map +0 -1
  411. package/dist/cache/memory-store.d.ts +0 -41
  412. package/dist/cache/memory-store.d.ts.map +0 -1
  413. package/dist/cache/memory-store.js +0 -191
  414. package/dist/cache/memory-store.js.map +0 -1
  415. package/dist/cache/types.d.ts +0 -317
  416. package/dist/cache/types.d.ts.map +0 -1
  417. package/dist/cache/types.js +0 -12
  418. package/dist/cache/types.js.map +0 -1
  419. package/dist/client.d.ts +0 -248
  420. package/dist/client.d.ts.map +0 -1
  421. package/dist/client.js +0 -367
  422. package/dist/client.js.map +0 -1
  423. package/dist/client.rsc.d.ts +0 -26
  424. package/dist/client.rsc.d.ts.map +0 -1
  425. package/dist/client.rsc.js +0 -46
  426. package/dist/client.rsc.js.map +0 -1
  427. package/dist/component-utils.d.ts +0 -36
  428. package/dist/component-utils.d.ts.map +0 -1
  429. package/dist/component-utils.js +0 -61
  430. package/dist/component-utils.js.map +0 -1
  431. package/dist/components/DefaultDocument.d.ts +0 -13
  432. package/dist/components/DefaultDocument.d.ts.map +0 -1
  433. package/dist/components/DefaultDocument.js +0 -15
  434. package/dist/components/DefaultDocument.js.map +0 -1
  435. package/dist/debug.d.ts +0 -58
  436. package/dist/debug.d.ts.map +0 -1
  437. package/dist/debug.js +0 -157
  438. package/dist/debug.js.map +0 -1
  439. package/dist/default-error-boundary.d.ts +0 -11
  440. package/dist/default-error-boundary.d.ts.map +0 -1
  441. package/dist/default-error-boundary.js +0 -45
  442. package/dist/default-error-boundary.js.map +0 -1
  443. package/dist/deps/browser.d.ts +0 -2
  444. package/dist/deps/browser.d.ts.map +0 -1
  445. package/dist/deps/browser.js +0 -3
  446. package/dist/deps/browser.js.map +0 -1
  447. package/dist/deps/html-stream-client.d.ts +0 -2
  448. package/dist/deps/html-stream-client.d.ts.map +0 -1
  449. package/dist/deps/html-stream-client.js +0 -3
  450. package/dist/deps/html-stream-client.js.map +0 -1
  451. package/dist/deps/html-stream-server.d.ts +0 -2
  452. package/dist/deps/html-stream-server.d.ts.map +0 -1
  453. package/dist/deps/html-stream-server.js +0 -3
  454. package/dist/deps/html-stream-server.js.map +0 -1
  455. package/dist/deps/rsc.d.ts +0 -2
  456. package/dist/deps/rsc.d.ts.map +0 -1
  457. package/dist/deps/rsc.js +0 -4
  458. package/dist/deps/rsc.js.map +0 -1
  459. package/dist/deps/ssr.d.ts +0 -2
  460. package/dist/deps/ssr.d.ts.map +0 -1
  461. package/dist/deps/ssr.js +0 -3
  462. package/dist/deps/ssr.js.map +0 -1
  463. package/dist/errors.d.ts +0 -174
  464. package/dist/errors.d.ts.map +0 -1
  465. package/dist/errors.js +0 -241
  466. package/dist/errors.js.map +0 -1
  467. package/dist/handle.d.ts +0 -78
  468. package/dist/handle.d.ts.map +0 -1
  469. package/dist/handle.js +0 -82
  470. package/dist/handle.js.map +0 -1
  471. package/dist/handles/MetaTags.d.ts +0 -14
  472. package/dist/handles/MetaTags.d.ts.map +0 -1
  473. package/dist/handles/MetaTags.js +0 -136
  474. package/dist/handles/MetaTags.js.map +0 -1
  475. package/dist/handles/index.d.ts +0 -6
  476. package/dist/handles/index.d.ts.map +0 -1
  477. package/dist/handles/index.js +0 -6
  478. package/dist/handles/index.js.map +0 -1
  479. package/dist/handles/meta.d.ts +0 -39
  480. package/dist/handles/meta.d.ts.map +0 -1
  481. package/dist/handles/meta.js +0 -202
  482. package/dist/handles/meta.js.map +0 -1
  483. package/dist/host/__tests__/errors.test.d.ts +0 -2
  484. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  485. package/dist/host/__tests__/errors.test.js +0 -76
  486. package/dist/host/__tests__/errors.test.js.map +0 -1
  487. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  488. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  489. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  490. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  491. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  492. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  493. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  494. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  495. package/dist/host/__tests__/router.test.d.ts +0 -2
  496. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  497. package/dist/host/__tests__/router.test.js +0 -241
  498. package/dist/host/__tests__/router.test.js.map +0 -1
  499. package/dist/host/__tests__/testing.test.d.ts +0 -2
  500. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  501. package/dist/host/__tests__/testing.test.js +0 -64
  502. package/dist/host/__tests__/testing.test.js.map +0 -1
  503. package/dist/host/__tests__/utils.test.d.ts +0 -2
  504. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  505. package/dist/host/__tests__/utils.test.js +0 -29
  506. package/dist/host/__tests__/utils.test.js.map +0 -1
  507. package/dist/host/cookie-handler.d.ts +0 -34
  508. package/dist/host/cookie-handler.d.ts.map +0 -1
  509. package/dist/host/cookie-handler.js +0 -124
  510. package/dist/host/cookie-handler.js.map +0 -1
  511. package/dist/host/errors.d.ts +0 -56
  512. package/dist/host/errors.d.ts.map +0 -1
  513. package/dist/host/errors.js +0 -79
  514. package/dist/host/errors.js.map +0 -1
  515. package/dist/host/index.d.ts +0 -29
  516. package/dist/host/index.d.ts.map +0 -1
  517. package/dist/host/index.js +0 -32
  518. package/dist/host/index.js.map +0 -1
  519. package/dist/host/pattern-matcher.d.ts +0 -36
  520. package/dist/host/pattern-matcher.d.ts.map +0 -1
  521. package/dist/host/pattern-matcher.js +0 -172
  522. package/dist/host/pattern-matcher.js.map +0 -1
  523. package/dist/host/router.d.ts +0 -26
  524. package/dist/host/router.d.ts.map +0 -1
  525. package/dist/host/router.js +0 -218
  526. package/dist/host/router.js.map +0 -1
  527. package/dist/host/testing.d.ts +0 -36
  528. package/dist/host/testing.d.ts.map +0 -1
  529. package/dist/host/testing.js +0 -55
  530. package/dist/host/testing.js.map +0 -1
  531. package/dist/host/types.d.ts +0 -115
  532. package/dist/host/types.d.ts.map +0 -1
  533. package/dist/host/types.js +0 -7
  534. package/dist/host/types.js.map +0 -1
  535. package/dist/host/utils.d.ts +0 -21
  536. package/dist/host/utils.d.ts.map +0 -1
  537. package/dist/host/utils.js +0 -23
  538. package/dist/host/utils.js.map +0 -1
  539. package/dist/href-client.d.ts +0 -131
  540. package/dist/href-client.d.ts.map +0 -1
  541. package/dist/href-client.js +0 -64
  542. package/dist/href-client.js.map +0 -1
  543. package/dist/href-context.d.ts +0 -29
  544. package/dist/href-context.d.ts.map +0 -1
  545. package/dist/href-context.js +0 -21
  546. package/dist/href-context.js.map +0 -1
  547. package/dist/index.d.ts +0 -73
  548. package/dist/index.d.ts.map +0 -1
  549. package/dist/index.js +0 -91
  550. package/dist/index.js.map +0 -1
  551. package/dist/index.rsc.d.ts +0 -32
  552. package/dist/index.rsc.d.ts.map +0 -1
  553. package/dist/index.rsc.js +0 -40
  554. package/dist/index.rsc.js.map +0 -1
  555. package/dist/internal-debug.d.ts +0 -2
  556. package/dist/internal-debug.d.ts.map +0 -1
  557. package/dist/internal-debug.js +0 -5
  558. package/dist/internal-debug.js.map +0 -1
  559. package/dist/loader.d.ts +0 -14
  560. package/dist/loader.d.ts.map +0 -1
  561. package/dist/loader.js +0 -20
  562. package/dist/loader.js.map +0 -1
  563. package/dist/loader.rsc.d.ts +0 -19
  564. package/dist/loader.rsc.d.ts.map +0 -1
  565. package/dist/loader.rsc.js +0 -99
  566. package/dist/loader.rsc.js.map +0 -1
  567. package/dist/network-error-thrower.d.ts +0 -17
  568. package/dist/network-error-thrower.d.ts.map +0 -1
  569. package/dist/network-error-thrower.js +0 -14
  570. package/dist/network-error-thrower.js.map +0 -1
  571. package/dist/outlet-context.d.ts +0 -13
  572. package/dist/outlet-context.d.ts.map +0 -1
  573. package/dist/outlet-context.js +0 -3
  574. package/dist/outlet-context.js.map +0 -1
  575. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  576. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  577. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  578. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  579. package/dist/prerender/param-hash.d.ts +0 -16
  580. package/dist/prerender/param-hash.d.ts.map +0 -1
  581. package/dist/prerender/param-hash.js +0 -36
  582. package/dist/prerender/param-hash.js.map +0 -1
  583. package/dist/prerender/store.d.ts +0 -38
  584. package/dist/prerender/store.d.ts.map +0 -1
  585. package/dist/prerender/store.js +0 -61
  586. package/dist/prerender/store.js.map +0 -1
  587. package/dist/prerender.d.ts +0 -66
  588. package/dist/prerender.d.ts.map +0 -1
  589. package/dist/prerender.js +0 -57
  590. package/dist/prerender.js.map +0 -1
  591. package/dist/reverse.d.ts +0 -196
  592. package/dist/reverse.d.ts.map +0 -1
  593. package/dist/reverse.js +0 -78
  594. package/dist/reverse.js.map +0 -1
  595. package/dist/root-error-boundary.d.ts +0 -33
  596. package/dist/root-error-boundary.d.ts.map +0 -1
  597. package/dist/root-error-boundary.js +0 -165
  598. package/dist/root-error-boundary.js.map +0 -1
  599. package/dist/route-content-wrapper.d.ts +0 -46
  600. package/dist/route-content-wrapper.d.ts.map +0 -1
  601. package/dist/route-content-wrapper.js +0 -77
  602. package/dist/route-content-wrapper.js.map +0 -1
  603. package/dist/route-definition.d.ts +0 -421
  604. package/dist/route-definition.d.ts.map +0 -1
  605. package/dist/route-definition.js +0 -868
  606. package/dist/route-definition.js.map +0 -1
  607. package/dist/route-map-builder.d.ts +0 -155
  608. package/dist/route-map-builder.d.ts.map +0 -1
  609. package/dist/route-map-builder.js +0 -237
  610. package/dist/route-map-builder.js.map +0 -1
  611. package/dist/route-types.d.ts +0 -165
  612. package/dist/route-types.d.ts.map +0 -1
  613. package/dist/route-types.js +0 -7
  614. package/dist/route-types.js.map +0 -1
  615. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  616. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  617. package/dist/router/__tests__/handler-context.test.js +0 -65
  618. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  619. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  620. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  621. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  622. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  623. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  624. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  625. package/dist/router/__tests__/match-context.test.js +0 -92
  626. package/dist/router/__tests__/match-context.test.js.map +0 -1
  627. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  628. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  629. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  630. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  631. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  632. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  633. package/dist/router/__tests__/match-result.test.js +0 -457
  634. package/dist/router/__tests__/match-result.test.js.map +0 -1
  635. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  636. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  637. package/dist/router/__tests__/on-error.test.js +0 -678
  638. package/dist/router/__tests__/on-error.test.js.map +0 -1
  639. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  640. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  641. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  642. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  643. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  644. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  645. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  646. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  647. package/dist/router/error-handling.d.ts +0 -77
  648. package/dist/router/error-handling.d.ts.map +0 -1
  649. package/dist/router/error-handling.js +0 -202
  650. package/dist/router/error-handling.js.map +0 -1
  651. package/dist/router/handler-context.d.ts +0 -20
  652. package/dist/router/handler-context.d.ts.map +0 -1
  653. package/dist/router/handler-context.js +0 -198
  654. package/dist/router/handler-context.js.map +0 -1
  655. package/dist/router/intercept-resolution.d.ts +0 -66
  656. package/dist/router/intercept-resolution.d.ts.map +0 -1
  657. package/dist/router/intercept-resolution.js +0 -246
  658. package/dist/router/intercept-resolution.js.map +0 -1
  659. package/dist/router/loader-resolution.d.ts +0 -64
  660. package/dist/router/loader-resolution.d.ts.map +0 -1
  661. package/dist/router/loader-resolution.js +0 -284
  662. package/dist/router/loader-resolution.js.map +0 -1
  663. package/dist/router/logging.d.ts +0 -15
  664. package/dist/router/logging.d.ts.map +0 -1
  665. package/dist/router/logging.js +0 -99
  666. package/dist/router/logging.js.map +0 -1
  667. package/dist/router/manifest.d.ts +0 -22
  668. package/dist/router/manifest.d.ts.map +0 -1
  669. package/dist/router/manifest.js +0 -181
  670. package/dist/router/manifest.js.map +0 -1
  671. package/dist/router/match-api.d.ts +0 -35
  672. package/dist/router/match-api.d.ts.map +0 -1
  673. package/dist/router/match-api.js +0 -406
  674. package/dist/router/match-api.js.map +0 -1
  675. package/dist/router/match-context.d.ts +0 -206
  676. package/dist/router/match-context.d.ts.map +0 -1
  677. package/dist/router/match-context.js +0 -17
  678. package/dist/router/match-context.js.map +0 -1
  679. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  680. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  681. package/dist/router/match-middleware/background-revalidation.js +0 -75
  682. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  683. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  684. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  685. package/dist/router/match-middleware/cache-lookup.js +0 -257
  686. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  687. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  688. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  689. package/dist/router/match-middleware/cache-store.js +0 -108
  690. package/dist/router/match-middleware/cache-store.js.map +0 -1
  691. package/dist/router/match-middleware/index.d.ts +0 -81
  692. package/dist/router/match-middleware/index.d.ts.map +0 -1
  693. package/dist/router/match-middleware/index.js +0 -80
  694. package/dist/router/match-middleware/index.js.map +0 -1
  695. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  696. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  697. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  698. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  699. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  700. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  701. package/dist/router/match-middleware/segment-resolution.js +0 -53
  702. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  703. package/dist/router/match-pipelines.d.ts +0 -147
  704. package/dist/router/match-pipelines.d.ts.map +0 -1
  705. package/dist/router/match-pipelines.js +0 -82
  706. package/dist/router/match-pipelines.js.map +0 -1
  707. package/dist/router/match-result.d.ts +0 -126
  708. package/dist/router/match-result.d.ts.map +0 -1
  709. package/dist/router/match-result.js +0 -93
  710. package/dist/router/match-result.js.map +0 -1
  711. package/dist/router/metrics.d.ts +0 -20
  712. package/dist/router/metrics.d.ts.map +0 -1
  713. package/dist/router/metrics.js +0 -47
  714. package/dist/router/metrics.js.map +0 -1
  715. package/dist/router/middleware.d.ts +0 -249
  716. package/dist/router/middleware.d.ts.map +0 -1
  717. package/dist/router/middleware.js +0 -434
  718. package/dist/router/middleware.js.map +0 -1
  719. package/dist/router/middleware.test.d.ts +0 -2
  720. package/dist/router/middleware.test.d.ts.map +0 -1
  721. package/dist/router/middleware.test.js +0 -816
  722. package/dist/router/middleware.test.js.map +0 -1
  723. package/dist/router/pattern-matching.d.ts +0 -149
  724. package/dist/router/pattern-matching.d.ts.map +0 -1
  725. package/dist/router/pattern-matching.js +0 -349
  726. package/dist/router/pattern-matching.js.map +0 -1
  727. package/dist/router/revalidation.d.ts +0 -44
  728. package/dist/router/revalidation.d.ts.map +0 -1
  729. package/dist/router/revalidation.js +0 -147
  730. package/dist/router/revalidation.js.map +0 -1
  731. package/dist/router/router-context.d.ts +0 -135
  732. package/dist/router/router-context.d.ts.map +0 -1
  733. package/dist/router/router-context.js +0 -36
  734. package/dist/router/router-context.js.map +0 -1
  735. package/dist/router/segment-resolution.d.ts +0 -127
  736. package/dist/router/segment-resolution.d.ts.map +0 -1
  737. package/dist/router/segment-resolution.js +0 -919
  738. package/dist/router/segment-resolution.js.map +0 -1
  739. package/dist/router/trie-matching.d.ts +0 -40
  740. package/dist/router/trie-matching.d.ts.map +0 -1
  741. package/dist/router/trie-matching.js +0 -127
  742. package/dist/router/trie-matching.js.map +0 -1
  743. package/dist/router/types.d.ts +0 -136
  744. package/dist/router/types.d.ts.map +0 -1
  745. package/dist/router/types.js +0 -7
  746. package/dist/router/types.js.map +0 -1
  747. package/dist/router.d.ts +0 -753
  748. package/dist/router.d.ts.map +0 -1
  749. package/dist/router.gen.d.ts +0 -6
  750. package/dist/router.gen.d.ts.map +0 -1
  751. package/dist/router.gen.js +0 -6
  752. package/dist/router.gen.js.map +0 -1
  753. package/dist/router.js +0 -1304
  754. package/dist/router.js.map +0 -1
  755. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  756. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  757. package/dist/rsc/__tests__/helpers.test.js +0 -140
  758. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  759. package/dist/rsc/handler.d.ts +0 -45
  760. package/dist/rsc/handler.d.ts.map +0 -1
  761. package/dist/rsc/handler.js +0 -1172
  762. package/dist/rsc/handler.js.map +0 -1
  763. package/dist/rsc/helpers.d.ts +0 -16
  764. package/dist/rsc/helpers.d.ts.map +0 -1
  765. package/dist/rsc/helpers.js +0 -55
  766. package/dist/rsc/helpers.js.map +0 -1
  767. package/dist/rsc/index.d.ts +0 -22
  768. package/dist/rsc/index.d.ts.map +0 -1
  769. package/dist/rsc/index.js +0 -23
  770. package/dist/rsc/index.js.map +0 -1
  771. package/dist/rsc/nonce.d.ts +0 -9
  772. package/dist/rsc/nonce.d.ts.map +0 -1
  773. package/dist/rsc/nonce.js +0 -18
  774. package/dist/rsc/nonce.js.map +0 -1
  775. package/dist/rsc/types.d.ts +0 -206
  776. package/dist/rsc/types.d.ts.map +0 -1
  777. package/dist/rsc/types.js +0 -8
  778. package/dist/rsc/types.js.map +0 -1
  779. package/dist/search-params.d.ts +0 -103
  780. package/dist/search-params.d.ts.map +0 -1
  781. package/dist/search-params.js +0 -74
  782. package/dist/search-params.js.map +0 -1
  783. package/dist/segment-system.d.ts +0 -75
  784. package/dist/segment-system.d.ts.map +0 -1
  785. package/dist/segment-system.js +0 -336
  786. package/dist/segment-system.js.map +0 -1
  787. package/dist/server/context.d.ts +0 -245
  788. package/dist/server/context.d.ts.map +0 -1
  789. package/dist/server/context.js +0 -197
  790. package/dist/server/context.js.map +0 -1
  791. package/dist/server/fetchable-loader-store.d.ts +0 -18
  792. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  793. package/dist/server/fetchable-loader-store.js +0 -18
  794. package/dist/server/fetchable-loader-store.js.map +0 -1
  795. package/dist/server/handle-store.d.ts +0 -85
  796. package/dist/server/handle-store.d.ts.map +0 -1
  797. package/dist/server/handle-store.js +0 -142
  798. package/dist/server/handle-store.js.map +0 -1
  799. package/dist/server/loader-registry.d.ts +0 -55
  800. package/dist/server/loader-registry.d.ts.map +0 -1
  801. package/dist/server/loader-registry.js +0 -132
  802. package/dist/server/loader-registry.js.map +0 -1
  803. package/dist/server/request-context.d.ts +0 -226
  804. package/dist/server/request-context.d.ts.map +0 -1
  805. package/dist/server/request-context.js +0 -290
  806. package/dist/server/request-context.js.map +0 -1
  807. package/dist/server/root-layout.d.ts +0 -4
  808. package/dist/server/root-layout.d.ts.map +0 -1
  809. package/dist/server/root-layout.js +0 -5
  810. package/dist/server/root-layout.js.map +0 -1
  811. package/dist/server.d.ts +0 -15
  812. package/dist/server.d.ts.map +0 -1
  813. package/dist/server.js +0 -20
  814. package/dist/server.js.map +0 -1
  815. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  816. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  817. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  818. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  819. package/dist/ssr/index.d.ts +0 -98
  820. package/dist/ssr/index.d.ts.map +0 -1
  821. package/dist/ssr/index.js +0 -158
  822. package/dist/ssr/index.js.map +0 -1
  823. package/dist/static-handler.d.ts +0 -50
  824. package/dist/static-handler.d.ts.map +0 -1
  825. package/dist/static-handler.gen.d.ts +0 -5
  826. package/dist/static-handler.gen.d.ts.map +0 -1
  827. package/dist/static-handler.gen.js +0 -5
  828. package/dist/static-handler.gen.js.map +0 -1
  829. package/dist/static-handler.js +0 -29
  830. package/dist/static-handler.js.map +0 -1
  831. package/dist/theme/ThemeProvider.d.ts +0 -20
  832. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  833. package/dist/theme/ThemeProvider.js +0 -240
  834. package/dist/theme/ThemeProvider.js.map +0 -1
  835. package/dist/theme/ThemeScript.d.ts +0 -48
  836. package/dist/theme/ThemeScript.d.ts.map +0 -1
  837. package/dist/theme/ThemeScript.js +0 -13
  838. package/dist/theme/ThemeScript.js.map +0 -1
  839. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  840. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  841. package/dist/theme/__tests__/theme.test.js +0 -103
  842. package/dist/theme/__tests__/theme.test.js.map +0 -1
  843. package/dist/theme/constants.d.ts +0 -29
  844. package/dist/theme/constants.d.ts.map +0 -1
  845. package/dist/theme/constants.js +0 -48
  846. package/dist/theme/constants.js.map +0 -1
  847. package/dist/theme/index.d.ts +0 -31
  848. package/dist/theme/index.d.ts.map +0 -1
  849. package/dist/theme/index.js +0 -36
  850. package/dist/theme/index.js.map +0 -1
  851. package/dist/theme/theme-context.d.ts +0 -40
  852. package/dist/theme/theme-context.d.ts.map +0 -1
  853. package/dist/theme/theme-context.js +0 -60
  854. package/dist/theme/theme-context.js.map +0 -1
  855. package/dist/theme/theme-script.d.ts +0 -27
  856. package/dist/theme/theme-script.d.ts.map +0 -1
  857. package/dist/theme/theme-script.js +0 -147
  858. package/dist/theme/theme-script.js.map +0 -1
  859. package/dist/theme/types.d.ts +0 -163
  860. package/dist/theme/types.d.ts.map +0 -1
  861. package/dist/theme/types.js +0 -11
  862. package/dist/theme/types.js.map +0 -1
  863. package/dist/theme/use-theme.d.ts +0 -12
  864. package/dist/theme/use-theme.d.ts.map +0 -1
  865. package/dist/theme/use-theme.js +0 -40
  866. package/dist/theme/use-theme.js.map +0 -1
  867. package/dist/types.d.ts +0 -1479
  868. package/dist/types.d.ts.map +0 -1
  869. package/dist/types.js +0 -10
  870. package/dist/types.js.map +0 -1
  871. package/dist/urls.d.ts +0 -441
  872. package/dist/urls.d.ts.map +0 -1
  873. package/dist/urls.gen.d.ts +0 -8
  874. package/dist/urls.gen.d.ts.map +0 -1
  875. package/dist/urls.gen.js +0 -8
  876. package/dist/urls.gen.js.map +0 -1
  877. package/dist/urls.js +0 -443
  878. package/dist/urls.js.map +0 -1
  879. package/dist/use-loader.d.ts +0 -127
  880. package/dist/use-loader.d.ts.map +0 -1
  881. package/dist/use-loader.js +0 -237
  882. package/dist/use-loader.js.map +0 -1
  883. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  884. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  885. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  886. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  887. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  888. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  889. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  890. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  891. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  892. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  893. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  894. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  895. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  896. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  897. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  898. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  899. package/dist/vite/ast-handler-extract.d.ts +0 -49
  900. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  901. package/dist/vite/ast-handler-extract.js +0 -249
  902. package/dist/vite/ast-handler-extract.js.map +0 -1
  903. package/dist/vite/expose-action-id.d.ts +0 -19
  904. package/dist/vite/expose-action-id.d.ts.map +0 -1
  905. package/dist/vite/expose-action-id.js +0 -250
  906. package/dist/vite/expose-action-id.js.map +0 -1
  907. package/dist/vite/expose-id-utils.d.ts +0 -69
  908. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  909. package/dist/vite/expose-id-utils.js +0 -289
  910. package/dist/vite/expose-id-utils.js.map +0 -1
  911. package/dist/vite/expose-internal-ids.d.ts +0 -22
  912. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  913. package/dist/vite/expose-internal-ids.js +0 -886
  914. package/dist/vite/expose-internal-ids.js.map +0 -1
  915. package/dist/vite/index.d.ts +0 -149
  916. package/dist/vite/index.d.ts.map +0 -1
  917. package/dist/vite/index.js.map +0 -1
  918. package/dist/vite/index.named-routes.gen.ts +0 -103
  919. package/dist/vite/package-resolution.d.ts +0 -43
  920. package/dist/vite/package-resolution.d.ts.map +0 -1
  921. package/dist/vite/package-resolution.js +0 -112
  922. package/dist/vite/package-resolution.js.map +0 -1
  923. package/dist/vite/virtual-entries.d.ts +0 -25
  924. package/dist/vite/virtual-entries.d.ts.map +0 -1
  925. package/dist/vite/virtual-entries.js +0 -110
  926. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,678 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { wrapLoaderWithErrorHandling } from "../loader-resolution";
3
- import { invokeOnError } from "../error-handling";
4
- describe("OnError Types", () => {
5
- describe("OnErrorContext", () => {
6
- it("should have all required properties", () => {
7
- const context = {
8
- error: new Error("Test error"),
9
- phase: "routing",
10
- request: new Request("https://example.com/test"),
11
- url: new URL("https://example.com/test"),
12
- pathname: "/test",
13
- method: "GET",
14
- };
15
- expect(context.error).toBeInstanceOf(Error);
16
- expect(context.phase).toBe("routing");
17
- expect(context.request).toBeInstanceOf(Request);
18
- expect(context.url).toBeInstanceOf(URL);
19
- expect(context.pathname).toBe("/test");
20
- expect(context.method).toBe("GET");
21
- });
22
- it("should support optional properties", () => {
23
- const context = {
24
- error: new Error("Test error"),
25
- phase: "loader",
26
- request: new Request("https://example.com/products/123"),
27
- url: new URL("https://example.com/products/123"),
28
- pathname: "/products/123",
29
- method: "GET",
30
- routeKey: "products.detail",
31
- params: { id: "123" },
32
- segmentId: "M1L0R0",
33
- segmentType: "loader",
34
- loaderName: "ProductLoader",
35
- duration: 150.5,
36
- isPartial: true,
37
- handledByBoundary: true,
38
- stack: "Error: Test error\n at ...",
39
- metadata: { custom: "data" },
40
- };
41
- expect(context.routeKey).toBe("products.detail");
42
- expect(context.params).toEqual({ id: "123" });
43
- expect(context.segmentId).toBe("M1L0R0");
44
- expect(context.segmentType).toBe("loader");
45
- expect(context.loaderName).toBe("ProductLoader");
46
- expect(context.duration).toBe(150.5);
47
- expect(context.isPartial).toBe(true);
48
- expect(context.handledByBoundary).toBe(true);
49
- expect(context.stack).toBeDefined();
50
- expect(context.metadata).toEqual({ custom: "data" });
51
- });
52
- it("should support action-specific properties", () => {
53
- const context = {
54
- error: new Error("Action failed"),
55
- phase: "action",
56
- request: new Request("https://example.com/api", { method: "POST" }),
57
- url: new URL("https://example.com/api"),
58
- pathname: "/api",
59
- method: "POST",
60
- actionId: "src/actions.ts#addToCart",
61
- };
62
- expect(context.phase).toBe("action");
63
- expect(context.actionId).toBe("src/actions.ts#addToCart");
64
- expect(context.method).toBe("POST");
65
- });
66
- it("should support middleware-specific properties", () => {
67
- const context = {
68
- error: new Error("Auth failed"),
69
- phase: "middleware",
70
- request: new Request("https://example.com/admin"),
71
- url: new URL("https://example.com/admin"),
72
- pathname: "/admin",
73
- method: "GET",
74
- middlewareId: "auth",
75
- segmentType: "middleware",
76
- };
77
- expect(context.phase).toBe("middleware");
78
- expect(context.middlewareId).toBe("auth");
79
- expect(context.segmentType).toBe("middleware");
80
- });
81
- it("should support typed env", () => {
82
- const context = {
83
- error: new Error("DB error"),
84
- phase: "loader",
85
- request: new Request("https://example.com"),
86
- url: new URL("https://example.com"),
87
- pathname: "/",
88
- method: "GET",
89
- env: {
90
- DB: { query: () => { } },
91
- USER_ID: "user-123",
92
- },
93
- };
94
- expect(context.env?.DB).toBeDefined();
95
- expect(context.env?.USER_ID).toBe("user-123");
96
- });
97
- });
98
- describe("ErrorPhase", () => {
99
- it("should include all valid phases", () => {
100
- const phases = [
101
- "routing",
102
- "manifest",
103
- "middleware",
104
- "loader",
105
- "handler",
106
- "rendering",
107
- "action",
108
- "revalidation",
109
- "unknown",
110
- ];
111
- expect(phases).toHaveLength(9);
112
- phases.forEach((phase) => {
113
- expect(typeof phase).toBe("string");
114
- });
115
- });
116
- });
117
- describe("OnErrorCallback", () => {
118
- it("should accept sync callback", () => {
119
- const errors = [];
120
- const callback = (context) => {
121
- errors.push(context);
122
- };
123
- const context = {
124
- error: new Error("Test"),
125
- phase: "routing",
126
- request: new Request("https://example.com"),
127
- url: new URL("https://example.com"),
128
- pathname: "/",
129
- method: "GET",
130
- };
131
- callback(context);
132
- expect(errors).toHaveLength(1);
133
- });
134
- it("should accept async callback", async () => {
135
- const errors = [];
136
- const callback = async (context) => {
137
- await Promise.resolve();
138
- errors.push(context);
139
- };
140
- const context = {
141
- error: new Error("Test"),
142
- phase: "action",
143
- request: new Request("https://example.com"),
144
- url: new URL("https://example.com"),
145
- pathname: "/",
146
- method: "POST",
147
- };
148
- await callback(context);
149
- expect(errors).toHaveLength(1);
150
- });
151
- it("should work with typed env", () => {
152
- const callback = (context) => {
153
- // Type-safe access to env
154
- const secret = context.env?.secret;
155
- expect(typeof secret).toBe("string");
156
- };
157
- callback({
158
- error: new Error("Test"),
159
- phase: "routing",
160
- request: new Request("https://example.com"),
161
- url: new URL("https://example.com"),
162
- pathname: "/",
163
- method: "GET",
164
- env: { secret: "test-secret" },
165
- });
166
- });
167
- });
168
- });
169
- describe("OnError Callback Integration", () => {
170
- it("should capture error details from context", () => {
171
- const capturedErrors = [];
172
- const onError = (context) => {
173
- capturedErrors.push({
174
- message: context.error.message,
175
- phase: context.phase,
176
- route: context.routeKey,
177
- duration: context.duration,
178
- });
179
- };
180
- // Simulate errors from different phases
181
- onError({
182
- error: new Error("Route not found"),
183
- phase: "routing",
184
- request: new Request("https://example.com/unknown"),
185
- url: new URL("https://example.com/unknown"),
186
- pathname: "/unknown",
187
- method: "GET",
188
- });
189
- onError({
190
- error: new Error("Loader failed"),
191
- phase: "loader",
192
- request: new Request("https://example.com/products"),
193
- url: new URL("https://example.com/products"),
194
- pathname: "/products",
195
- method: "GET",
196
- routeKey: "products.list",
197
- loaderName: "ProductsLoader",
198
- duration: 100,
199
- });
200
- onError({
201
- error: new Error("Action failed"),
202
- phase: "action",
203
- request: new Request("https://example.com/cart", { method: "POST" }),
204
- url: new URL("https://example.com/cart"),
205
- pathname: "/cart",
206
- method: "POST",
207
- actionId: "addToCart",
208
- duration: 50,
209
- });
210
- expect(capturedErrors).toHaveLength(3);
211
- expect(capturedErrors[0]).toEqual({
212
- message: "Route not found",
213
- phase: "routing",
214
- route: undefined,
215
- duration: undefined,
216
- });
217
- expect(capturedErrors[1]).toEqual({
218
- message: "Loader failed",
219
- phase: "loader",
220
- route: "products.list",
221
- duration: 100,
222
- });
223
- expect(capturedErrors[2]).toEqual({
224
- message: "Action failed",
225
- phase: "action",
226
- route: undefined,
227
- duration: 50,
228
- });
229
- });
230
- it("should handle errors thrown in callback gracefully", () => {
231
- const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => { });
232
- const badCallback = () => {
233
- throw new Error("Callback error");
234
- };
235
- // The callback throws, but it shouldn't propagate
236
- // In real implementation, this is caught by invokeOnError
237
- expect(() => {
238
- try {
239
- badCallback({
240
- error: new Error("Original error"),
241
- phase: "routing",
242
- request: new Request("https://example.com"),
243
- url: new URL("https://example.com"),
244
- pathname: "/",
245
- method: "GET",
246
- });
247
- }
248
- catch (e) {
249
- // In real code, invokeOnError catches this
250
- console.error("[Router.onError] Callback error:", e);
251
- }
252
- }).not.toThrow();
253
- consoleErrorSpy.mockRestore();
254
- });
255
- it("should handle async callback rejection gracefully", async () => {
256
- const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => { });
257
- const badAsyncCallback = async () => {
258
- await Promise.reject(new Error("Async callback error"));
259
- };
260
- const context = {
261
- error: new Error("Original error"),
262
- phase: "action",
263
- request: new Request("https://example.com"),
264
- url: new URL("https://example.com"),
265
- pathname: "/",
266
- method: "POST",
267
- };
268
- // In real implementation, the promise rejection is caught
269
- const result = badAsyncCallback(context);
270
- if (result instanceof Promise) {
271
- await result.catch((e) => {
272
- console.error("[Router.onError] Callback error:", e);
273
- });
274
- }
275
- consoleErrorSpy.mockRestore();
276
- });
277
- });
278
- describe("wrapLoaderWithErrorHandling", () => {
279
- const mockEntry = { id: "test-entry" };
280
- const mockPathname = "/test";
281
- const createMockErrorInfo = (error, segmentId, segmentType) => ({
282
- message: error instanceof Error ? error.message : String(error),
283
- name: error instanceof Error ? error.name : "Error",
284
- segmentId,
285
- segmentType,
286
- });
287
- describe("successful resolution", () => {
288
- it("should return ok: true with data on success", async () => {
289
- const promise = Promise.resolve({ name: "Test Product" });
290
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.ProductLoader", mockPathname, () => null, createMockErrorInfo);
291
- expect(result).toEqual({
292
- __loaderResult: true,
293
- ok: true,
294
- data: { name: "Test Product" },
295
- });
296
- });
297
- it("should not invoke onError on success", async () => {
298
- const onError = vi.fn();
299
- const promise = Promise.resolve("success");
300
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.TestLoader", mockPathname, () => null, createMockErrorInfo, onError);
301
- expect(onError).not.toHaveBeenCalled();
302
- });
303
- });
304
- describe("error handling without boundary", () => {
305
- it("should return ok: false with error info when no boundary", async () => {
306
- const promise = Promise.reject(new Error("Loader failed"));
307
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.FailingLoader", mockPathname, () => null, // No error boundary
308
- createMockErrorInfo);
309
- expect(result).toEqual({
310
- __loaderResult: true,
311
- ok: false,
312
- error: {
313
- message: "Loader failed",
314
- name: "Error",
315
- segmentId: "M1L0.FailingLoader",
316
- segmentType: "loader",
317
- },
318
- fallback: null,
319
- });
320
- });
321
- it("should invoke onError with handledByBoundary: false", async () => {
322
- const onError = vi.fn();
323
- const testError = new Error("Test error");
324
- const promise = Promise.reject(testError);
325
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.TestLoader", mockPathname, () => null, // No boundary
326
- createMockErrorInfo, onError);
327
- expect(onError).toHaveBeenCalledWith(testError, {
328
- segmentId: "M1L0.TestLoader",
329
- loaderName: "TestLoader",
330
- handledByBoundary: false,
331
- });
332
- });
333
- });
334
- describe("error handling with boundary", () => {
335
- it("should return fallback when error boundary exists", async () => {
336
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
337
- const promise = Promise.reject(new Error("Handled error"));
338
- const fallbackElement = "Error Fallback UI";
339
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.HandledLoader", mockPathname, () => fallbackElement, // Has error boundary
340
- createMockErrorInfo);
341
- expect(result).toEqual({
342
- __loaderResult: true,
343
- ok: false,
344
- error: {
345
- message: "Handled error",
346
- name: "Error",
347
- segmentId: "M1L0.HandledLoader",
348
- segmentType: "loader",
349
- },
350
- fallback: fallbackElement,
351
- });
352
- consoleSpy.mockRestore();
353
- });
354
- it("should invoke onError with handledByBoundary: true", async () => {
355
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
356
- const onError = vi.fn();
357
- const testError = new Error("Boundary handled");
358
- const promise = Promise.reject(testError);
359
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.BoundaryLoader", mockPathname, () => "Fallback", // Has boundary
360
- createMockErrorInfo, onError);
361
- expect(onError).toHaveBeenCalledWith(testError, {
362
- segmentId: "M1L0.BoundaryLoader",
363
- loaderName: "BoundaryLoader",
364
- handledByBoundary: true,
365
- });
366
- consoleSpy.mockRestore();
367
- });
368
- it("should call ErrorBoundaryHandler function with error props", async () => {
369
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
370
- const promise = Promise.reject(new Error("Handler error"));
371
- const boundaryHandler = vi.fn().mockReturnValue("Rendered Fallback");
372
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.HandlerLoader", mockPathname, () => boundaryHandler, createMockErrorInfo);
373
- expect(boundaryHandler).toHaveBeenCalledWith({
374
- error: {
375
- message: "Handler error",
376
- name: "Error",
377
- segmentId: "M1L0.HandlerLoader",
378
- segmentType: "loader",
379
- },
380
- });
381
- if (!result.ok) {
382
- expect(result.fallback).toBe("Rendered Fallback");
383
- }
384
- consoleSpy.mockRestore();
385
- });
386
- });
387
- describe("loaderName extraction", () => {
388
- it("should extract loader name from segmentId with dot notation", async () => {
389
- const onError = vi.fn();
390
- const promise = Promise.reject(new Error("test"));
391
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0D0.ProductLoader", mockPathname, () => null, createMockErrorInfo, onError);
392
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "ProductLoader" }));
393
- });
394
- it("should handle segmentId without dots", async () => {
395
- const onError = vi.fn();
396
- const promise = Promise.reject(new Error("test"));
397
- await wrapLoaderWithErrorHandling(promise, mockEntry, "SimpleLoader", mockPathname, () => null, createMockErrorInfo, onError);
398
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "SimpleLoader" }));
399
- });
400
- it("should return 'unknown' for empty segmentId", async () => {
401
- const onError = vi.fn();
402
- const promise = Promise.reject(new Error("test"));
403
- await wrapLoaderWithErrorHandling(promise, mockEntry, "", mockPathname, () => null, createMockErrorInfo, onError);
404
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "unknown" }));
405
- });
406
- });
407
- describe("non-Error objects", () => {
408
- it("should handle string errors", async () => {
409
- const promise = Promise.reject("String error message");
410
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.StringErrorLoader", mockPathname, () => null, createMockErrorInfo);
411
- expect(result.ok).toBe(false);
412
- if (!result.ok) {
413
- expect(result.error?.message).toBe("String error message");
414
- }
415
- });
416
- it("should handle object errors", async () => {
417
- const promise = Promise.reject({ code: "ERR_001", detail: "Failed" });
418
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.ObjectErrorLoader", mockPathname, () => null, (error) => ({
419
- message: String(error),
420
- name: "Error",
421
- segmentId: "test",
422
- segmentType: "loader",
423
- }));
424
- expect(result.ok).toBe(false);
425
- });
426
- it("should handle null/undefined errors", async () => {
427
- const promise = Promise.reject(null);
428
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.NullErrorLoader", mockPathname, () => null, (error) => ({
429
- message: String(error),
430
- name: "Error",
431
- segmentId: "test",
432
- segmentType: "loader",
433
- }));
434
- expect(result.ok).toBe(false);
435
- if (!result.ok) {
436
- expect(result.error?.message).toBe("null");
437
- }
438
- });
439
- });
440
- });
441
- describe("Error Context Edge Cases", () => {
442
- it("should handle errors with circular references in metadata", () => {
443
- const circular = { name: "test" };
444
- circular.self = circular;
445
- const context = {
446
- error: new Error("Circular test"),
447
- phase: "loader",
448
- request: new Request("https://example.com"),
449
- url: new URL("https://example.com"),
450
- pathname: "/",
451
- method: "GET",
452
- metadata: { circular }, // This shouldn't crash serialization
453
- };
454
- expect(context.metadata?.circular).toBe(circular);
455
- });
456
- it("should handle errors without stack traces", () => {
457
- const errorWithoutStack = new Error("No stack");
458
- delete errorWithoutStack.stack;
459
- const context = {
460
- error: errorWithoutStack,
461
- phase: "routing",
462
- request: new Request("https://example.com"),
463
- url: new URL("https://example.com"),
464
- pathname: "/",
465
- method: "GET",
466
- stack: errorWithoutStack.stack,
467
- };
468
- expect(context.stack).toBeUndefined();
469
- });
470
- it("should handle very long error messages", () => {
471
- const longMessage = "x".repeat(10000);
472
- const context = {
473
- error: new Error(longMessage),
474
- phase: "handler",
475
- request: new Request("https://example.com"),
476
- url: new URL("https://example.com"),
477
- pathname: "/",
478
- method: "GET",
479
- };
480
- expect(context.error.message.length).toBe(10000);
481
- });
482
- it("should preserve error cause chain", () => {
483
- const rootCause = new Error("Root cause");
484
- const wrappedError = new Error("Wrapped error", { cause: rootCause });
485
- const context = {
486
- error: wrappedError,
487
- phase: "loader",
488
- request: new Request("https://example.com"),
489
- url: new URL("https://example.com"),
490
- pathname: "/",
491
- method: "GET",
492
- };
493
- expect(context.error.cause).toBe(rootCause);
494
- });
495
- });
496
- describe("invokeOnError Shared Utility", () => {
497
- const createMockContext = () => ({
498
- request: new Request("https://example.com/test"),
499
- url: new URL("https://example.com/test"),
500
- });
501
- describe("callback invocation", () => {
502
- it("should not call callback if undefined", () => {
503
- const context = createMockContext();
504
- expect(() => {
505
- invokeOnError(undefined, new Error("test"), "routing", context);
506
- }).not.toThrow();
507
- });
508
- it("should invoke callback with full context", () => {
509
- const callback = vi.fn();
510
- const error = new Error("Test error");
511
- const context = {
512
- request: new Request("https://example.com/products/123"),
513
- url: new URL("https://example.com/products/123"),
514
- routeKey: "products.detail",
515
- params: { id: "123" },
516
- segmentId: "M1R0",
517
- segmentType: "route",
518
- env: { DB: "test" },
519
- isPartial: true,
520
- handledByBoundary: false,
521
- };
522
- invokeOnError(callback, error, "handler", context);
523
- expect(callback).toHaveBeenCalledTimes(1);
524
- const receivedContext = callback.mock.calls[0][0];
525
- expect(receivedContext.error).toBe(error);
526
- expect(receivedContext.phase).toBe("handler");
527
- expect(receivedContext.pathname).toBe("/products/123");
528
- expect(receivedContext.method).toBe("GET");
529
- expect(receivedContext.routeKey).toBe("products.detail");
530
- expect(receivedContext.params).toEqual({ id: "123" });
531
- expect(receivedContext.segmentId).toBe("M1R0");
532
- expect(receivedContext.segmentType).toBe("route");
533
- expect(receivedContext.env).toEqual({ DB: "test" });
534
- expect(receivedContext.isPartial).toBe(true);
535
- expect(receivedContext.handledByBoundary).toBe(false);
536
- expect(receivedContext.stack).toBeDefined();
537
- });
538
- it("should convert non-Error objects to Error", () => {
539
- const callback = vi.fn();
540
- const context = createMockContext();
541
- invokeOnError(callback, "string error", "routing", context);
542
- const receivedContext = callback.mock.calls[0][0];
543
- expect(receivedContext.error).toBeInstanceOf(Error);
544
- expect(receivedContext.error.message).toBe("string error");
545
- });
546
- it("should calculate duration from requestStartTime", () => {
547
- const callback = vi.fn();
548
- const context = {
549
- ...createMockContext(),
550
- requestStartTime: performance.now() - 100, // 100ms ago
551
- };
552
- invokeOnError(callback, new Error("test"), "loader", context);
553
- const receivedContext = callback.mock.calls[0][0];
554
- expect(receivedContext.duration).toBeGreaterThanOrEqual(100);
555
- expect(receivedContext.duration).toBeLessThan(200);
556
- });
557
- it("should not set duration if requestStartTime is not provided", () => {
558
- const callback = vi.fn();
559
- const context = createMockContext();
560
- invokeOnError(callback, new Error("test"), "loader", context);
561
- const receivedContext = callback.mock.calls[0][0];
562
- expect(receivedContext.duration).toBeUndefined();
563
- });
564
- });
565
- describe("error handling in callback", () => {
566
- it("should catch sync callback errors and log them", () => {
567
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
568
- const callback = () => {
569
- throw new Error("Callback sync error");
570
- };
571
- const context = createMockContext();
572
- expect(() => {
573
- invokeOnError(callback, new Error("original"), "routing", context);
574
- }).not.toThrow();
575
- expect(consoleSpy).toHaveBeenCalledWith("[Router.onError] Callback error:", expect.any(Error));
576
- consoleSpy.mockRestore();
577
- });
578
- it("should catch async callback rejections and log them", async () => {
579
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
580
- const callback = async () => {
581
- throw new Error("Callback async error");
582
- };
583
- const context = createMockContext();
584
- invokeOnError(callback, new Error("original"), "routing", context);
585
- // Wait for the async rejection to be caught
586
- await new Promise((resolve) => setTimeout(resolve, 10));
587
- expect(consoleSpy).toHaveBeenCalledWith("[Router.onError] Callback error:", expect.any(Error));
588
- consoleSpy.mockRestore();
589
- });
590
- it("should use custom log prefix", () => {
591
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
592
- const callback = () => {
593
- throw new Error("Callback error");
594
- };
595
- const context = createMockContext();
596
- invokeOnError(callback, new Error("original"), "rendering", context, "RSC");
597
- expect(consoleSpy).toHaveBeenCalledWith("[RSC.onError] Callback error:", expect.any(Error));
598
- consoleSpy.mockRestore();
599
- });
600
- });
601
- describe("all phases", () => {
602
- const phases = [
603
- "routing",
604
- "manifest",
605
- "middleware",
606
- "loader",
607
- "handler",
608
- "rendering",
609
- "action",
610
- "revalidation",
611
- "unknown",
612
- ];
613
- phases.forEach((phase) => {
614
- it(`should accept phase: ${phase}`, () => {
615
- const callback = vi.fn();
616
- const context = createMockContext();
617
- invokeOnError(callback, new Error("test"), phase, context);
618
- expect(callback).toHaveBeenCalledWith(expect.objectContaining({ phase }));
619
- });
620
- });
621
- });
622
- describe("optional context fields", () => {
623
- it("should pass through all optional fields", () => {
624
- const callback = vi.fn();
625
- const context = {
626
- request: new Request("https://example.com/api", { method: "POST" }),
627
- url: new URL("https://example.com/api"),
628
- routeKey: "api.action",
629
- params: { id: "1" },
630
- segmentId: "M1A0",
631
- segmentType: "middleware",
632
- loaderName: "TestLoader",
633
- middlewareId: "auth",
634
- actionId: "createItem",
635
- env: { secret: "123" },
636
- isPartial: false,
637
- handledByBoundary: true,
638
- metadata: { custom: "data" },
639
- requestStartTime: performance.now() - 50,
640
- };
641
- invokeOnError(callback, new Error("test"), "action", context);
642
- const received = callback.mock.calls[0][0];
643
- expect(received.method).toBe("POST");
644
- expect(received.loaderName).toBe("TestLoader");
645
- expect(received.middlewareId).toBe("auth");
646
- expect(received.actionId).toBe("createItem");
647
- expect(received.metadata).toEqual({ custom: "data" });
648
- });
649
- it("should handle minimal context", () => {
650
- const callback = vi.fn();
651
- const context = {
652
- request: new Request("https://example.com"),
653
- url: new URL("https://example.com"),
654
- };
655
- invokeOnError(callback, new Error("test"), "unknown", context);
656
- const received = callback.mock.calls[0][0];
657
- expect(received.routeKey).toBeUndefined();
658
- expect(received.params).toBeUndefined();
659
- expect(received.segmentId).toBeUndefined();
660
- expect(received.duration).toBeUndefined();
661
- });
662
- });
663
- });
664
- describe("LoaderErrorCallback Type", () => {
665
- it("should accept valid callback signature", () => {
666
- const callback = (error, context) => {
667
- expect(typeof context.segmentId).toBe("string");
668
- expect(typeof context.loaderName).toBe("string");
669
- expect(typeof context.handledByBoundary).toBe("boolean");
670
- };
671
- callback(new Error("test"), {
672
- segmentId: "M1L0.TestLoader",
673
- loaderName: "TestLoader",
674
- handledByBoundary: false,
675
- });
676
- });
677
- });
678
- //# sourceMappingURL=on-error.test.js.map