@rangojs/router 0.0.0-experimental.78a48627 → 0.0.0-experimental.7dc955ec

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