@rangojs/router 0.0.0-experimental.137 → 0.0.0-experimental.138

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 (838) hide show
  1. package/dist/bin/rango.js +237 -42
  2. package/dist/vite/index.js +239 -43
  3. package/package.json +19 -18
  4. package/skills/composability/SKILL.md +50 -0
  5. package/skills/migrate-nextjs/SKILL.md +12 -0
  6. package/skills/rango/SKILL.md +5 -1
  7. package/skills/response-routes/SKILL.md +14 -0
  8. package/skills/router-setup/SKILL.md +12 -0
  9. package/skills/testing/reverse-and-types.md +8 -7
  10. package/src/build/generate-manifest.ts +155 -131
  11. package/src/build/index.ts +3 -1
  12. package/src/build/route-types/include-resolution.ts +347 -47
  13. package/src/build/runtime-discovery.ts +4 -1
  14. package/src/cache/cf/cf-cache-store.ts +22 -0
  15. package/src/router/find-match.ts +71 -7
  16. package/src/router/lazy-includes.ts +64 -10
  17. package/src/router/manifest.ts +43 -6
  18. package/src/router/match-api.ts +2 -2
  19. package/src/router/navigation-snapshot.ts +7 -5
  20. package/src/router/prerender-match.ts +4 -2
  21. package/src/router/preview-match.ts +3 -1
  22. package/src/router/request-classification.ts +3 -1
  23. package/src/router/route-snapshot.ts +4 -2
  24. package/src/router/router-context.ts +3 -1
  25. package/src/router/router-interfaces.ts +9 -1
  26. package/src/router.ts +9 -2
  27. package/src/rsc/manifest-init.ts +1 -1
  28. package/src/testing/dispatch.ts +3 -3
  29. package/src/testing/generated-routes.ts +27 -11
  30. package/src/urls/include-helper.ts +10 -8
  31. package/src/urls/include-provider.ts +71 -0
  32. package/src/urls/path-helper-types.ts +25 -1
  33. package/src/vite/discovery/discover-routers.ts +1 -1
  34. package/src/vite/router-discovery.ts +8 -0
  35. package/dist/__internal.d.ts +0 -83
  36. package/dist/__internal.d.ts.map +0 -1
  37. package/dist/__internal.js +0 -19
  38. package/dist/__internal.js.map +0 -1
  39. package/dist/__mocks__/version.d.ts +0 -7
  40. package/dist/__mocks__/version.d.ts.map +0 -1
  41. package/dist/__mocks__/version.js +0 -7
  42. package/dist/__mocks__/version.js.map +0 -1
  43. package/dist/__tests__/client-href.test.d.ts +0 -2
  44. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  45. package/dist/__tests__/client-href.test.js +0 -74
  46. package/dist/__tests__/client-href.test.js.map +0 -1
  47. package/dist/__tests__/component-utils.test.d.ts +0 -2
  48. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  49. package/dist/__tests__/component-utils.test.js +0 -51
  50. package/dist/__tests__/component-utils.test.js.map +0 -1
  51. package/dist/__tests__/event-controller.test.d.ts +0 -2
  52. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  53. package/dist/__tests__/event-controller.test.js +0 -538
  54. package/dist/__tests__/event-controller.test.js.map +0 -1
  55. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  56. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  57. package/dist/__tests__/helpers/route-tree.js +0 -374
  58. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  59. package/dist/__tests__/match-result.test.d.ts +0 -2
  60. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  61. package/dist/__tests__/match-result.test.js +0 -154
  62. package/dist/__tests__/match-result.test.js.map +0 -1
  63. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  64. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  65. package/dist/__tests__/navigation-store.test.js +0 -440
  66. package/dist/__tests__/navigation-store.test.js.map +0 -1
  67. package/dist/__tests__/partial-update.test.d.ts +0 -2
  68. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  69. package/dist/__tests__/partial-update.test.js +0 -1009
  70. package/dist/__tests__/partial-update.test.js.map +0 -1
  71. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  72. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  73. package/dist/__tests__/reverse-types.test.js +0 -656
  74. package/dist/__tests__/reverse-types.test.js.map +0 -1
  75. package/dist/__tests__/route-definition.test.d.ts +0 -2
  76. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  77. package/dist/__tests__/route-definition.test.js +0 -55
  78. package/dist/__tests__/route-definition.test.js.map +0 -1
  79. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  80. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  81. package/dist/__tests__/router-helpers.test.js +0 -377
  82. package/dist/__tests__/router-helpers.test.js.map +0 -1
  83. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  84. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  85. package/dist/__tests__/router-integration-2.test.js +0 -426
  86. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  87. package/dist/__tests__/router-integration.test.d.ts +0 -2
  88. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  89. package/dist/__tests__/router-integration.test.js +0 -1051
  90. package/dist/__tests__/router-integration.test.js.map +0 -1
  91. package/dist/__tests__/search-params.test.d.ts +0 -5
  92. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  93. package/dist/__tests__/search-params.test.js +0 -306
  94. package/dist/__tests__/search-params.test.js.map +0 -1
  95. package/dist/__tests__/segment-system.test.d.ts +0 -2
  96. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  97. package/dist/__tests__/segment-system.test.js +0 -627
  98. package/dist/__tests__/segment-system.test.js.map +0 -1
  99. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  100. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  101. package/dist/__tests__/static-handler-types.test.js +0 -63
  102. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  103. package/dist/__tests__/urls.test.d.ts +0 -2
  104. package/dist/__tests__/urls.test.d.ts.map +0 -1
  105. package/dist/__tests__/urls.test.js +0 -421
  106. package/dist/__tests__/urls.test.js.map +0 -1
  107. package/dist/__tests__/use-mount.test.d.ts +0 -2
  108. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  109. package/dist/__tests__/use-mount.test.js +0 -35
  110. package/dist/__tests__/use-mount.test.js.map +0 -1
  111. package/dist/bin/rango.d.ts +0 -2
  112. package/dist/bin/rango.d.ts.map +0 -1
  113. package/dist/bin/rango.js.map +0 -1
  114. package/dist/browser/event-controller.d.ts +0 -191
  115. package/dist/browser/event-controller.d.ts.map +0 -1
  116. package/dist/browser/event-controller.js +0 -559
  117. package/dist/browser/event-controller.js.map +0 -1
  118. package/dist/browser/index.d.ts +0 -2
  119. package/dist/browser/index.d.ts.map +0 -1
  120. package/dist/browser/index.js +0 -14
  121. package/dist/browser/index.js.map +0 -1
  122. package/dist/browser/link-interceptor.d.ts +0 -38
  123. package/dist/browser/link-interceptor.d.ts.map +0 -1
  124. package/dist/browser/link-interceptor.js +0 -99
  125. package/dist/browser/link-interceptor.js.map +0 -1
  126. package/dist/browser/logging.d.ts +0 -10
  127. package/dist/browser/logging.d.ts.map +0 -1
  128. package/dist/browser/logging.js +0 -29
  129. package/dist/browser/logging.js.map +0 -1
  130. package/dist/browser/lru-cache.d.ts +0 -17
  131. package/dist/browser/lru-cache.d.ts.map +0 -1
  132. package/dist/browser/lru-cache.js +0 -50
  133. package/dist/browser/lru-cache.js.map +0 -1
  134. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  135. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  136. package/dist/browser/merge-segment-loaders.js +0 -102
  137. package/dist/browser/merge-segment-loaders.js.map +0 -1
  138. package/dist/browser/navigation-bridge.d.ts +0 -102
  139. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  140. package/dist/browser/navigation-bridge.js +0 -708
  141. package/dist/browser/navigation-bridge.js.map +0 -1
  142. package/dist/browser/navigation-client.d.ts +0 -25
  143. package/dist/browser/navigation-client.d.ts.map +0 -1
  144. package/dist/browser/navigation-client.js +0 -157
  145. package/dist/browser/navigation-client.js.map +0 -1
  146. package/dist/browser/navigation-store.d.ts +0 -101
  147. package/dist/browser/navigation-store.d.ts.map +0 -1
  148. package/dist/browser/navigation-store.js +0 -625
  149. package/dist/browser/navigation-store.js.map +0 -1
  150. package/dist/browser/partial-update.d.ts +0 -75
  151. package/dist/browser/partial-update.d.ts.map +0 -1
  152. package/dist/browser/partial-update.js +0 -426
  153. package/dist/browser/partial-update.js.map +0 -1
  154. package/dist/browser/react/Link.d.ts +0 -86
  155. package/dist/browser/react/Link.d.ts.map +0 -1
  156. package/dist/browser/react/Link.js +0 -128
  157. package/dist/browser/react/Link.js.map +0 -1
  158. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  159. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  160. package/dist/browser/react/NavigationProvider.js +0 -216
  161. package/dist/browser/react/NavigationProvider.js.map +0 -1
  162. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  163. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  164. package/dist/browser/react/ScrollRestoration.js +0 -57
  165. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  166. package/dist/browser/react/context.d.ts +0 -46
  167. package/dist/browser/react/context.d.ts.map +0 -1
  168. package/dist/browser/react/context.js +0 -10
  169. package/dist/browser/react/context.js.map +0 -1
  170. package/dist/browser/react/index.d.ts +0 -11
  171. package/dist/browser/react/index.d.ts.map +0 -1
  172. package/dist/browser/react/index.js +0 -22
  173. package/dist/browser/react/index.js.map +0 -1
  174. package/dist/browser/react/location-state-shared.d.ts +0 -63
  175. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  176. package/dist/browser/react/location-state-shared.js +0 -81
  177. package/dist/browser/react/location-state-shared.js.map +0 -1
  178. package/dist/browser/react/location-state.d.ts +0 -23
  179. package/dist/browser/react/location-state.d.ts.map +0 -1
  180. package/dist/browser/react/location-state.js +0 -29
  181. package/dist/browser/react/location-state.js.map +0 -1
  182. package/dist/browser/react/mount-context.d.ts +0 -24
  183. package/dist/browser/react/mount-context.d.ts.map +0 -1
  184. package/dist/browser/react/mount-context.js +0 -24
  185. package/dist/browser/react/mount-context.js.map +0 -1
  186. package/dist/browser/react/use-action.d.ts +0 -64
  187. package/dist/browser/react/use-action.d.ts.map +0 -1
  188. package/dist/browser/react/use-action.js +0 -134
  189. package/dist/browser/react/use-action.js.map +0 -1
  190. package/dist/browser/react/use-client-cache.d.ts +0 -41
  191. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  192. package/dist/browser/react/use-client-cache.js +0 -39
  193. package/dist/browser/react/use-client-cache.js.map +0 -1
  194. package/dist/browser/react/use-handle.d.ts +0 -31
  195. package/dist/browser/react/use-handle.d.ts.map +0 -1
  196. package/dist/browser/react/use-handle.js +0 -144
  197. package/dist/browser/react/use-handle.js.map +0 -1
  198. package/dist/browser/react/use-href.d.ts +0 -33
  199. package/dist/browser/react/use-href.d.ts.map +0 -1
  200. package/dist/browser/react/use-href.js +0 -39
  201. package/dist/browser/react/use-href.js.map +0 -1
  202. package/dist/browser/react/use-link-status.d.ts +0 -37
  203. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  204. package/dist/browser/react/use-link-status.js +0 -99
  205. package/dist/browser/react/use-link-status.js.map +0 -1
  206. package/dist/browser/react/use-mount.d.ts +0 -25
  207. package/dist/browser/react/use-mount.d.ts.map +0 -1
  208. package/dist/browser/react/use-mount.js +0 -30
  209. package/dist/browser/react/use-mount.js.map +0 -1
  210. package/dist/browser/react/use-navigation.d.ts +0 -27
  211. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  212. package/dist/browser/react/use-navigation.js +0 -87
  213. package/dist/browser/react/use-navigation.js.map +0 -1
  214. package/dist/browser/react/use-segments.d.ts +0 -38
  215. package/dist/browser/react/use-segments.d.ts.map +0 -1
  216. package/dist/browser/react/use-segments.js +0 -130
  217. package/dist/browser/react/use-segments.js.map +0 -1
  218. package/dist/browser/request-controller.d.ts +0 -26
  219. package/dist/browser/request-controller.d.ts.map +0 -1
  220. package/dist/browser/request-controller.js +0 -147
  221. package/dist/browser/request-controller.js.map +0 -1
  222. package/dist/browser/rsc-router.d.ts +0 -129
  223. package/dist/browser/rsc-router.d.ts.map +0 -1
  224. package/dist/browser/rsc-router.js +0 -195
  225. package/dist/browser/rsc-router.js.map +0 -1
  226. package/dist/browser/scroll-restoration.d.ts +0 -93
  227. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  228. package/dist/browser/scroll-restoration.js +0 -321
  229. package/dist/browser/scroll-restoration.js.map +0 -1
  230. package/dist/browser/segment-structure-assert.d.ts +0 -17
  231. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  232. package/dist/browser/segment-structure-assert.js +0 -59
  233. package/dist/browser/segment-structure-assert.js.map +0 -1
  234. package/dist/browser/server-action-bridge.d.ts +0 -26
  235. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  236. package/dist/browser/server-action-bridge.js +0 -668
  237. package/dist/browser/server-action-bridge.js.map +0 -1
  238. package/dist/browser/shallow.d.ts +0 -12
  239. package/dist/browser/shallow.d.ts.map +0 -1
  240. package/dist/browser/shallow.js +0 -34
  241. package/dist/browser/shallow.js.map +0 -1
  242. package/dist/browser/types.d.ts +0 -369
  243. package/dist/browser/types.d.ts.map +0 -1
  244. package/dist/browser/types.js +0 -2
  245. package/dist/browser/types.js.map +0 -1
  246. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  247. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  248. package/dist/build/__tests__/generate-cli.test.js +0 -237
  249. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  250. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  251. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  252. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  253. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  254. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  255. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  256. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  257. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  258. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  259. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  260. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  261. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  262. package/dist/build/generate-manifest.d.ts +0 -81
  263. package/dist/build/generate-manifest.d.ts.map +0 -1
  264. package/dist/build/generate-manifest.js +0 -276
  265. package/dist/build/generate-manifest.js.map +0 -1
  266. package/dist/build/generate-route-types.d.ts +0 -115
  267. package/dist/build/generate-route-types.d.ts.map +0 -1
  268. package/dist/build/generate-route-types.js +0 -740
  269. package/dist/build/generate-route-types.js.map +0 -1
  270. package/dist/build/index.d.ts +0 -21
  271. package/dist/build/index.d.ts.map +0 -1
  272. package/dist/build/index.js +0 -21
  273. package/dist/build/index.js.map +0 -1
  274. package/dist/build/route-trie.d.ts +0 -71
  275. package/dist/build/route-trie.d.ts.map +0 -1
  276. package/dist/build/route-trie.js +0 -175
  277. package/dist/build/route-trie.js.map +0 -1
  278. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  279. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  280. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  281. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  282. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  283. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  284. package/dist/cache/__tests__/document-cache.test.js +0 -345
  285. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  286. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  287. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  288. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  289. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  290. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  291. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  292. package/dist/cache/__tests__/memory-store.test.js +0 -367
  293. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  294. package/dist/cache/cache-scope.d.ts +0 -102
  295. package/dist/cache/cache-scope.d.ts.map +0 -1
  296. package/dist/cache/cache-scope.js +0 -440
  297. package/dist/cache/cache-scope.js.map +0 -1
  298. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  299. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  300. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  301. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  302. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  303. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  304. package/dist/cache/cf/cf-cache-store.js +0 -242
  305. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  306. package/dist/cache/cf/index.d.ts +0 -14
  307. package/dist/cache/cf/index.d.ts.map +0 -1
  308. package/dist/cache/cf/index.js +0 -17
  309. package/dist/cache/cf/index.js.map +0 -1
  310. package/dist/cache/document-cache.d.ts +0 -64
  311. package/dist/cache/document-cache.d.ts.map +0 -1
  312. package/dist/cache/document-cache.js +0 -228
  313. package/dist/cache/document-cache.js.map +0 -1
  314. package/dist/cache/index.d.ts +0 -19
  315. package/dist/cache/index.d.ts.map +0 -1
  316. package/dist/cache/index.js +0 -21
  317. package/dist/cache/index.js.map +0 -1
  318. package/dist/cache/memory-segment-store.d.ts +0 -110
  319. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  320. package/dist/cache/memory-segment-store.js +0 -117
  321. package/dist/cache/memory-segment-store.js.map +0 -1
  322. package/dist/cache/memory-store.d.ts +0 -41
  323. package/dist/cache/memory-store.d.ts.map +0 -1
  324. package/dist/cache/memory-store.js +0 -191
  325. package/dist/cache/memory-store.js.map +0 -1
  326. package/dist/cache/types.d.ts +0 -317
  327. package/dist/cache/types.d.ts.map +0 -1
  328. package/dist/cache/types.js +0 -12
  329. package/dist/cache/types.js.map +0 -1
  330. package/dist/client.d.ts +0 -248
  331. package/dist/client.d.ts.map +0 -1
  332. package/dist/client.js +0 -367
  333. package/dist/client.js.map +0 -1
  334. package/dist/client.rsc.d.ts +0 -26
  335. package/dist/client.rsc.d.ts.map +0 -1
  336. package/dist/client.rsc.js +0 -46
  337. package/dist/client.rsc.js.map +0 -1
  338. package/dist/component-utils.d.ts +0 -36
  339. package/dist/component-utils.d.ts.map +0 -1
  340. package/dist/component-utils.js +0 -61
  341. package/dist/component-utils.js.map +0 -1
  342. package/dist/components/DefaultDocument.d.ts +0 -13
  343. package/dist/components/DefaultDocument.d.ts.map +0 -1
  344. package/dist/components/DefaultDocument.js +0 -15
  345. package/dist/components/DefaultDocument.js.map +0 -1
  346. package/dist/debug.d.ts +0 -58
  347. package/dist/debug.d.ts.map +0 -1
  348. package/dist/debug.js +0 -157
  349. package/dist/debug.js.map +0 -1
  350. package/dist/default-error-boundary.d.ts +0 -11
  351. package/dist/default-error-boundary.d.ts.map +0 -1
  352. package/dist/default-error-boundary.js +0 -45
  353. package/dist/default-error-boundary.js.map +0 -1
  354. package/dist/deps/browser.d.ts +0 -2
  355. package/dist/deps/browser.d.ts.map +0 -1
  356. package/dist/deps/browser.js +0 -3
  357. package/dist/deps/browser.js.map +0 -1
  358. package/dist/deps/html-stream-client.d.ts +0 -2
  359. package/dist/deps/html-stream-client.d.ts.map +0 -1
  360. package/dist/deps/html-stream-client.js +0 -3
  361. package/dist/deps/html-stream-client.js.map +0 -1
  362. package/dist/deps/html-stream-server.d.ts +0 -2
  363. package/dist/deps/html-stream-server.d.ts.map +0 -1
  364. package/dist/deps/html-stream-server.js +0 -3
  365. package/dist/deps/html-stream-server.js.map +0 -1
  366. package/dist/deps/rsc.d.ts +0 -2
  367. package/dist/deps/rsc.d.ts.map +0 -1
  368. package/dist/deps/rsc.js +0 -4
  369. package/dist/deps/rsc.js.map +0 -1
  370. package/dist/deps/ssr.d.ts +0 -2
  371. package/dist/deps/ssr.d.ts.map +0 -1
  372. package/dist/deps/ssr.js +0 -3
  373. package/dist/deps/ssr.js.map +0 -1
  374. package/dist/errors.d.ts +0 -174
  375. package/dist/errors.d.ts.map +0 -1
  376. package/dist/errors.js +0 -241
  377. package/dist/errors.js.map +0 -1
  378. package/dist/handle.d.ts +0 -78
  379. package/dist/handle.d.ts.map +0 -1
  380. package/dist/handle.js +0 -82
  381. package/dist/handle.js.map +0 -1
  382. package/dist/handles/MetaTags.d.ts +0 -14
  383. package/dist/handles/MetaTags.d.ts.map +0 -1
  384. package/dist/handles/MetaTags.js +0 -136
  385. package/dist/handles/MetaTags.js.map +0 -1
  386. package/dist/handles/index.d.ts +0 -6
  387. package/dist/handles/index.d.ts.map +0 -1
  388. package/dist/handles/index.js +0 -6
  389. package/dist/handles/index.js.map +0 -1
  390. package/dist/handles/meta.d.ts +0 -39
  391. package/dist/handles/meta.d.ts.map +0 -1
  392. package/dist/handles/meta.js +0 -202
  393. package/dist/handles/meta.js.map +0 -1
  394. package/dist/host/__tests__/errors.test.d.ts +0 -2
  395. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  396. package/dist/host/__tests__/errors.test.js +0 -76
  397. package/dist/host/__tests__/errors.test.js.map +0 -1
  398. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  399. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  400. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  401. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  402. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  403. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  404. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  405. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  406. package/dist/host/__tests__/router.test.d.ts +0 -2
  407. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  408. package/dist/host/__tests__/router.test.js +0 -241
  409. package/dist/host/__tests__/router.test.js.map +0 -1
  410. package/dist/host/__tests__/testing.test.d.ts +0 -2
  411. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  412. package/dist/host/__tests__/testing.test.js +0 -64
  413. package/dist/host/__tests__/testing.test.js.map +0 -1
  414. package/dist/host/__tests__/utils.test.d.ts +0 -2
  415. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  416. package/dist/host/__tests__/utils.test.js +0 -29
  417. package/dist/host/__tests__/utils.test.js.map +0 -1
  418. package/dist/host/cookie-handler.d.ts +0 -34
  419. package/dist/host/cookie-handler.d.ts.map +0 -1
  420. package/dist/host/cookie-handler.js +0 -124
  421. package/dist/host/cookie-handler.js.map +0 -1
  422. package/dist/host/errors.d.ts +0 -56
  423. package/dist/host/errors.d.ts.map +0 -1
  424. package/dist/host/errors.js +0 -79
  425. package/dist/host/errors.js.map +0 -1
  426. package/dist/host/index.d.ts +0 -29
  427. package/dist/host/index.d.ts.map +0 -1
  428. package/dist/host/index.js +0 -32
  429. package/dist/host/index.js.map +0 -1
  430. package/dist/host/pattern-matcher.d.ts +0 -36
  431. package/dist/host/pattern-matcher.d.ts.map +0 -1
  432. package/dist/host/pattern-matcher.js +0 -172
  433. package/dist/host/pattern-matcher.js.map +0 -1
  434. package/dist/host/router.d.ts +0 -26
  435. package/dist/host/router.d.ts.map +0 -1
  436. package/dist/host/router.js +0 -218
  437. package/dist/host/router.js.map +0 -1
  438. package/dist/host/testing.d.ts +0 -36
  439. package/dist/host/testing.d.ts.map +0 -1
  440. package/dist/host/testing.js +0 -55
  441. package/dist/host/testing.js.map +0 -1
  442. package/dist/host/types.d.ts +0 -115
  443. package/dist/host/types.d.ts.map +0 -1
  444. package/dist/host/types.js +0 -7
  445. package/dist/host/types.js.map +0 -1
  446. package/dist/host/utils.d.ts +0 -21
  447. package/dist/host/utils.d.ts.map +0 -1
  448. package/dist/host/utils.js +0 -23
  449. package/dist/host/utils.js.map +0 -1
  450. package/dist/href-client.d.ts +0 -131
  451. package/dist/href-client.d.ts.map +0 -1
  452. package/dist/href-client.js +0 -64
  453. package/dist/href-client.js.map +0 -1
  454. package/dist/href-context.d.ts +0 -29
  455. package/dist/href-context.d.ts.map +0 -1
  456. package/dist/href-context.js +0 -21
  457. package/dist/href-context.js.map +0 -1
  458. package/dist/index.d.ts +0 -73
  459. package/dist/index.d.ts.map +0 -1
  460. package/dist/index.js +0 -91
  461. package/dist/index.js.map +0 -1
  462. package/dist/index.rsc.d.ts +0 -32
  463. package/dist/index.rsc.d.ts.map +0 -1
  464. package/dist/index.rsc.js +0 -40
  465. package/dist/index.rsc.js.map +0 -1
  466. package/dist/internal-debug.d.ts +0 -2
  467. package/dist/internal-debug.d.ts.map +0 -1
  468. package/dist/internal-debug.js +0 -5
  469. package/dist/internal-debug.js.map +0 -1
  470. package/dist/loader.d.ts +0 -14
  471. package/dist/loader.d.ts.map +0 -1
  472. package/dist/loader.js +0 -20
  473. package/dist/loader.js.map +0 -1
  474. package/dist/loader.rsc.d.ts +0 -19
  475. package/dist/loader.rsc.d.ts.map +0 -1
  476. package/dist/loader.rsc.js +0 -99
  477. package/dist/loader.rsc.js.map +0 -1
  478. package/dist/network-error-thrower.d.ts +0 -17
  479. package/dist/network-error-thrower.d.ts.map +0 -1
  480. package/dist/network-error-thrower.js +0 -14
  481. package/dist/network-error-thrower.js.map +0 -1
  482. package/dist/outlet-context.d.ts +0 -13
  483. package/dist/outlet-context.d.ts.map +0 -1
  484. package/dist/outlet-context.js +0 -3
  485. package/dist/outlet-context.js.map +0 -1
  486. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  487. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  488. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  489. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  490. package/dist/prerender/param-hash.d.ts +0 -16
  491. package/dist/prerender/param-hash.d.ts.map +0 -1
  492. package/dist/prerender/param-hash.js +0 -36
  493. package/dist/prerender/param-hash.js.map +0 -1
  494. package/dist/prerender/store.d.ts +0 -38
  495. package/dist/prerender/store.d.ts.map +0 -1
  496. package/dist/prerender/store.js +0 -61
  497. package/dist/prerender/store.js.map +0 -1
  498. package/dist/prerender.d.ts +0 -66
  499. package/dist/prerender.d.ts.map +0 -1
  500. package/dist/prerender.js +0 -57
  501. package/dist/prerender.js.map +0 -1
  502. package/dist/reverse.d.ts +0 -196
  503. package/dist/reverse.d.ts.map +0 -1
  504. package/dist/reverse.js +0 -78
  505. package/dist/reverse.js.map +0 -1
  506. package/dist/root-error-boundary.d.ts +0 -33
  507. package/dist/root-error-boundary.d.ts.map +0 -1
  508. package/dist/root-error-boundary.js +0 -165
  509. package/dist/root-error-boundary.js.map +0 -1
  510. package/dist/route-content-wrapper.d.ts +0 -46
  511. package/dist/route-content-wrapper.d.ts.map +0 -1
  512. package/dist/route-content-wrapper.js +0 -77
  513. package/dist/route-content-wrapper.js.map +0 -1
  514. package/dist/route-definition.d.ts +0 -421
  515. package/dist/route-definition.d.ts.map +0 -1
  516. package/dist/route-definition.js +0 -868
  517. package/dist/route-definition.js.map +0 -1
  518. package/dist/route-map-builder.d.ts +0 -155
  519. package/dist/route-map-builder.d.ts.map +0 -1
  520. package/dist/route-map-builder.js +0 -237
  521. package/dist/route-map-builder.js.map +0 -1
  522. package/dist/route-types.d.ts +0 -165
  523. package/dist/route-types.d.ts.map +0 -1
  524. package/dist/route-types.js +0 -7
  525. package/dist/route-types.js.map +0 -1
  526. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  527. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  528. package/dist/router/__tests__/handler-context.test.js +0 -65
  529. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  530. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  531. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  532. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  533. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  534. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  535. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  536. package/dist/router/__tests__/match-context.test.js +0 -92
  537. package/dist/router/__tests__/match-context.test.js.map +0 -1
  538. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  539. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  540. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  541. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  542. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  543. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  544. package/dist/router/__tests__/match-result.test.js +0 -457
  545. package/dist/router/__tests__/match-result.test.js.map +0 -1
  546. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  547. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  548. package/dist/router/__tests__/on-error.test.js +0 -678
  549. package/dist/router/__tests__/on-error.test.js.map +0 -1
  550. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  551. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  552. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  553. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  554. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  555. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  556. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  557. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  558. package/dist/router/error-handling.d.ts +0 -77
  559. package/dist/router/error-handling.d.ts.map +0 -1
  560. package/dist/router/error-handling.js +0 -202
  561. package/dist/router/error-handling.js.map +0 -1
  562. package/dist/router/handler-context.d.ts +0 -20
  563. package/dist/router/handler-context.d.ts.map +0 -1
  564. package/dist/router/handler-context.js +0 -198
  565. package/dist/router/handler-context.js.map +0 -1
  566. package/dist/router/intercept-resolution.d.ts +0 -66
  567. package/dist/router/intercept-resolution.d.ts.map +0 -1
  568. package/dist/router/intercept-resolution.js +0 -246
  569. package/dist/router/intercept-resolution.js.map +0 -1
  570. package/dist/router/loader-resolution.d.ts +0 -64
  571. package/dist/router/loader-resolution.d.ts.map +0 -1
  572. package/dist/router/loader-resolution.js +0 -284
  573. package/dist/router/loader-resolution.js.map +0 -1
  574. package/dist/router/logging.d.ts +0 -15
  575. package/dist/router/logging.d.ts.map +0 -1
  576. package/dist/router/logging.js +0 -99
  577. package/dist/router/logging.js.map +0 -1
  578. package/dist/router/manifest.d.ts +0 -22
  579. package/dist/router/manifest.d.ts.map +0 -1
  580. package/dist/router/manifest.js +0 -181
  581. package/dist/router/manifest.js.map +0 -1
  582. package/dist/router/match-api.d.ts +0 -35
  583. package/dist/router/match-api.d.ts.map +0 -1
  584. package/dist/router/match-api.js +0 -406
  585. package/dist/router/match-api.js.map +0 -1
  586. package/dist/router/match-context.d.ts +0 -206
  587. package/dist/router/match-context.d.ts.map +0 -1
  588. package/dist/router/match-context.js +0 -17
  589. package/dist/router/match-context.js.map +0 -1
  590. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  591. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  592. package/dist/router/match-middleware/background-revalidation.js +0 -75
  593. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  594. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  595. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  596. package/dist/router/match-middleware/cache-lookup.js +0 -257
  597. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  598. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  599. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  600. package/dist/router/match-middleware/cache-store.js +0 -108
  601. package/dist/router/match-middleware/cache-store.js.map +0 -1
  602. package/dist/router/match-middleware/index.d.ts +0 -81
  603. package/dist/router/match-middleware/index.d.ts.map +0 -1
  604. package/dist/router/match-middleware/index.js +0 -80
  605. package/dist/router/match-middleware/index.js.map +0 -1
  606. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  607. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  608. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  609. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  610. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  611. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  612. package/dist/router/match-middleware/segment-resolution.js +0 -53
  613. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  614. package/dist/router/match-pipelines.d.ts +0 -147
  615. package/dist/router/match-pipelines.d.ts.map +0 -1
  616. package/dist/router/match-pipelines.js +0 -82
  617. package/dist/router/match-pipelines.js.map +0 -1
  618. package/dist/router/match-result.d.ts +0 -126
  619. package/dist/router/match-result.d.ts.map +0 -1
  620. package/dist/router/match-result.js +0 -93
  621. package/dist/router/match-result.js.map +0 -1
  622. package/dist/router/metrics.d.ts +0 -20
  623. package/dist/router/metrics.d.ts.map +0 -1
  624. package/dist/router/metrics.js +0 -47
  625. package/dist/router/metrics.js.map +0 -1
  626. package/dist/router/middleware.d.ts +0 -249
  627. package/dist/router/middleware.d.ts.map +0 -1
  628. package/dist/router/middleware.js +0 -434
  629. package/dist/router/middleware.js.map +0 -1
  630. package/dist/router/middleware.test.d.ts +0 -2
  631. package/dist/router/middleware.test.d.ts.map +0 -1
  632. package/dist/router/middleware.test.js +0 -816
  633. package/dist/router/middleware.test.js.map +0 -1
  634. package/dist/router/pattern-matching.d.ts +0 -149
  635. package/dist/router/pattern-matching.d.ts.map +0 -1
  636. package/dist/router/pattern-matching.js +0 -349
  637. package/dist/router/pattern-matching.js.map +0 -1
  638. package/dist/router/revalidation.d.ts +0 -44
  639. package/dist/router/revalidation.d.ts.map +0 -1
  640. package/dist/router/revalidation.js +0 -147
  641. package/dist/router/revalidation.js.map +0 -1
  642. package/dist/router/router-context.d.ts +0 -135
  643. package/dist/router/router-context.d.ts.map +0 -1
  644. package/dist/router/router-context.js +0 -36
  645. package/dist/router/router-context.js.map +0 -1
  646. package/dist/router/segment-resolution.d.ts +0 -127
  647. package/dist/router/segment-resolution.d.ts.map +0 -1
  648. package/dist/router/segment-resolution.js +0 -919
  649. package/dist/router/segment-resolution.js.map +0 -1
  650. package/dist/router/trie-matching.d.ts +0 -40
  651. package/dist/router/trie-matching.d.ts.map +0 -1
  652. package/dist/router/trie-matching.js +0 -127
  653. package/dist/router/trie-matching.js.map +0 -1
  654. package/dist/router/types.d.ts +0 -136
  655. package/dist/router/types.d.ts.map +0 -1
  656. package/dist/router/types.js +0 -7
  657. package/dist/router/types.js.map +0 -1
  658. package/dist/router.d.ts +0 -753
  659. package/dist/router.d.ts.map +0 -1
  660. package/dist/router.gen.d.ts +0 -6
  661. package/dist/router.gen.d.ts.map +0 -1
  662. package/dist/router.gen.js +0 -6
  663. package/dist/router.gen.js.map +0 -1
  664. package/dist/router.js +0 -1304
  665. package/dist/router.js.map +0 -1
  666. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  667. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  668. package/dist/rsc/__tests__/helpers.test.js +0 -140
  669. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  670. package/dist/rsc/handler.d.ts +0 -45
  671. package/dist/rsc/handler.d.ts.map +0 -1
  672. package/dist/rsc/handler.js +0 -1172
  673. package/dist/rsc/handler.js.map +0 -1
  674. package/dist/rsc/helpers.d.ts +0 -16
  675. package/dist/rsc/helpers.d.ts.map +0 -1
  676. package/dist/rsc/helpers.js +0 -55
  677. package/dist/rsc/helpers.js.map +0 -1
  678. package/dist/rsc/index.d.ts +0 -22
  679. package/dist/rsc/index.d.ts.map +0 -1
  680. package/dist/rsc/index.js +0 -23
  681. package/dist/rsc/index.js.map +0 -1
  682. package/dist/rsc/nonce.d.ts +0 -9
  683. package/dist/rsc/nonce.d.ts.map +0 -1
  684. package/dist/rsc/nonce.js +0 -18
  685. package/dist/rsc/nonce.js.map +0 -1
  686. package/dist/rsc/types.d.ts +0 -206
  687. package/dist/rsc/types.d.ts.map +0 -1
  688. package/dist/rsc/types.js +0 -8
  689. package/dist/rsc/types.js.map +0 -1
  690. package/dist/search-params.d.ts +0 -103
  691. package/dist/search-params.d.ts.map +0 -1
  692. package/dist/search-params.js +0 -74
  693. package/dist/search-params.js.map +0 -1
  694. package/dist/segment-system.d.ts +0 -75
  695. package/dist/segment-system.d.ts.map +0 -1
  696. package/dist/segment-system.js +0 -336
  697. package/dist/segment-system.js.map +0 -1
  698. package/dist/server/context.d.ts +0 -245
  699. package/dist/server/context.d.ts.map +0 -1
  700. package/dist/server/context.js +0 -197
  701. package/dist/server/context.js.map +0 -1
  702. package/dist/server/fetchable-loader-store.d.ts +0 -18
  703. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  704. package/dist/server/fetchable-loader-store.js +0 -18
  705. package/dist/server/fetchable-loader-store.js.map +0 -1
  706. package/dist/server/handle-store.d.ts +0 -85
  707. package/dist/server/handle-store.d.ts.map +0 -1
  708. package/dist/server/handle-store.js +0 -142
  709. package/dist/server/handle-store.js.map +0 -1
  710. package/dist/server/loader-registry.d.ts +0 -55
  711. package/dist/server/loader-registry.d.ts.map +0 -1
  712. package/dist/server/loader-registry.js +0 -132
  713. package/dist/server/loader-registry.js.map +0 -1
  714. package/dist/server/request-context.d.ts +0 -226
  715. package/dist/server/request-context.d.ts.map +0 -1
  716. package/dist/server/request-context.js +0 -290
  717. package/dist/server/request-context.js.map +0 -1
  718. package/dist/server/root-layout.d.ts +0 -4
  719. package/dist/server/root-layout.d.ts.map +0 -1
  720. package/dist/server/root-layout.js +0 -5
  721. package/dist/server/root-layout.js.map +0 -1
  722. package/dist/server.d.ts +0 -15
  723. package/dist/server.d.ts.map +0 -1
  724. package/dist/server.js +0 -20
  725. package/dist/server.js.map +0 -1
  726. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  727. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  728. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  729. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  730. package/dist/ssr/index.d.ts +0 -98
  731. package/dist/ssr/index.d.ts.map +0 -1
  732. package/dist/ssr/index.js +0 -158
  733. package/dist/ssr/index.js.map +0 -1
  734. package/dist/static-handler.d.ts +0 -50
  735. package/dist/static-handler.d.ts.map +0 -1
  736. package/dist/static-handler.gen.d.ts +0 -5
  737. package/dist/static-handler.gen.d.ts.map +0 -1
  738. package/dist/static-handler.gen.js +0 -5
  739. package/dist/static-handler.gen.js.map +0 -1
  740. package/dist/static-handler.js +0 -29
  741. package/dist/static-handler.js.map +0 -1
  742. package/dist/theme/ThemeProvider.d.ts +0 -20
  743. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  744. package/dist/theme/ThemeProvider.js +0 -240
  745. package/dist/theme/ThemeProvider.js.map +0 -1
  746. package/dist/theme/ThemeScript.d.ts +0 -48
  747. package/dist/theme/ThemeScript.d.ts.map +0 -1
  748. package/dist/theme/ThemeScript.js +0 -13
  749. package/dist/theme/ThemeScript.js.map +0 -1
  750. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  751. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  752. package/dist/theme/__tests__/theme.test.js +0 -103
  753. package/dist/theme/__tests__/theme.test.js.map +0 -1
  754. package/dist/theme/constants.d.ts +0 -29
  755. package/dist/theme/constants.d.ts.map +0 -1
  756. package/dist/theme/constants.js +0 -48
  757. package/dist/theme/constants.js.map +0 -1
  758. package/dist/theme/index.d.ts +0 -31
  759. package/dist/theme/index.d.ts.map +0 -1
  760. package/dist/theme/index.js +0 -36
  761. package/dist/theme/index.js.map +0 -1
  762. package/dist/theme/theme-context.d.ts +0 -40
  763. package/dist/theme/theme-context.d.ts.map +0 -1
  764. package/dist/theme/theme-context.js +0 -60
  765. package/dist/theme/theme-context.js.map +0 -1
  766. package/dist/theme/theme-script.d.ts +0 -27
  767. package/dist/theme/theme-script.d.ts.map +0 -1
  768. package/dist/theme/theme-script.js +0 -147
  769. package/dist/theme/theme-script.js.map +0 -1
  770. package/dist/theme/types.d.ts +0 -163
  771. package/dist/theme/types.d.ts.map +0 -1
  772. package/dist/theme/types.js +0 -11
  773. package/dist/theme/types.js.map +0 -1
  774. package/dist/theme/use-theme.d.ts +0 -12
  775. package/dist/theme/use-theme.d.ts.map +0 -1
  776. package/dist/theme/use-theme.js +0 -40
  777. package/dist/theme/use-theme.js.map +0 -1
  778. package/dist/types.d.ts +0 -1479
  779. package/dist/types.d.ts.map +0 -1
  780. package/dist/types.js +0 -10
  781. package/dist/types.js.map +0 -1
  782. package/dist/urls.d.ts +0 -441
  783. package/dist/urls.d.ts.map +0 -1
  784. package/dist/urls.gen.d.ts +0 -8
  785. package/dist/urls.gen.d.ts.map +0 -1
  786. package/dist/urls.gen.js +0 -8
  787. package/dist/urls.gen.js.map +0 -1
  788. package/dist/urls.js +0 -443
  789. package/dist/urls.js.map +0 -1
  790. package/dist/use-loader.d.ts +0 -127
  791. package/dist/use-loader.d.ts.map +0 -1
  792. package/dist/use-loader.js +0 -237
  793. package/dist/use-loader.js.map +0 -1
  794. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  795. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  796. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  797. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  798. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  799. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  800. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  801. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  802. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  803. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  804. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  805. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  806. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  807. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  808. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  809. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  810. package/dist/vite/ast-handler-extract.d.ts +0 -49
  811. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  812. package/dist/vite/ast-handler-extract.js +0 -249
  813. package/dist/vite/ast-handler-extract.js.map +0 -1
  814. package/dist/vite/expose-action-id.d.ts +0 -19
  815. package/dist/vite/expose-action-id.d.ts.map +0 -1
  816. package/dist/vite/expose-action-id.js +0 -250
  817. package/dist/vite/expose-action-id.js.map +0 -1
  818. package/dist/vite/expose-id-utils.d.ts +0 -69
  819. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  820. package/dist/vite/expose-id-utils.js +0 -289
  821. package/dist/vite/expose-id-utils.js.map +0 -1
  822. package/dist/vite/expose-internal-ids.d.ts +0 -22
  823. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  824. package/dist/vite/expose-internal-ids.js +0 -886
  825. package/dist/vite/expose-internal-ids.js.map +0 -1
  826. package/dist/vite/index.d.ts +0 -149
  827. package/dist/vite/index.d.ts.map +0 -1
  828. package/dist/vite/index.js.bak +0 -5448
  829. package/dist/vite/index.js.map +0 -1
  830. package/dist/vite/index.named-routes.gen.ts +0 -103
  831. package/dist/vite/package-resolution.d.ts +0 -43
  832. package/dist/vite/package-resolution.d.ts.map +0 -1
  833. package/dist/vite/package-resolution.js +0 -112
  834. package/dist/vite/package-resolution.js.map +0 -1
  835. package/dist/vite/virtual-entries.d.ts +0 -25
  836. package/dist/vite/virtual-entries.d.ts.map +0 -1
  837. package/dist/vite/virtual-entries.js +0 -110
  838. package/dist/vite/virtual-entries.js.map +0 -1
@@ -9,6 +9,10 @@ import {
9
9
  import type { UrlPatterns } from "../urls.js";
10
10
  import type { AllUseItems, IncludeItem } from "../route-types.js";
11
11
  import type { ResolvedRouteMap, RouteEntry, TrailingSlashMode } from "../types";
12
+ import {
13
+ isIncludeProvider,
14
+ resolveIncludeModule,
15
+ } from "../urls/include-provider.js";
12
16
 
13
17
  export interface LazyEvalDeps<TEnv = any> {
14
18
  routesEntries: RouteEntry<TEnv>[];
@@ -69,7 +73,7 @@ export function findLazyIncludes<TEnv = any>(
69
73
  export function evaluateLazyEntry<TEnv = any>(
70
74
  entry: RouteEntry<TEnv>,
71
75
  deps: LazyEvalDeps<TEnv>,
72
- ): void {
76
+ ): void | Promise<void> {
73
77
  if (!entry.lazy || entry.lazyEvaluated || !entry.lazyPatterns) {
74
78
  return;
75
79
  }
@@ -93,9 +97,52 @@ export function evaluateLazyEntry<TEnv = any>(
93
97
  }
94
98
  }
95
99
 
96
- entry.lazyEvaluated = true;
100
+ // Async provider (`() => import("./routes")`): the route module is evaluated
101
+ // off the startup path, on the first request reaching this prefix. Concurrent
102
+ // first-hits share one in-flight promise so the import + expansion run exactly
103
+ // once. The eager path below stays fully synchronous (no Promise), so the
104
+ // per-entry match loop pays no microtask for normal includes.
105
+ const lazyPatterns = entry.lazyPatterns;
106
+ if (isIncludeProvider(lazyPatterns)) {
107
+ const inflight = (entry as { _lazyInflight?: Promise<void> })._lazyInflight;
108
+ if (inflight) return inflight;
109
+ const work = (async () => {
110
+ const resolved = resolveIncludeModule(
111
+ await lazyPatterns(),
112
+ entry.staticPrefix,
113
+ );
114
+ // Cache the resolved patterns: any later re-entry expands synchronously.
115
+ entry.lazyPatterns = resolved as unknown as UrlPatterns<TEnv>;
116
+ runExpansion(entry, deps, resolved as UrlPatterns<TEnv>);
117
+ })();
118
+ (entry as { _lazyInflight?: Promise<void> })._lazyInflight = work;
119
+ const clear = () => {
120
+ (entry as { _lazyInflight?: Promise<void> })._lazyInflight = undefined;
121
+ };
122
+ // On failure, clear the flag (lazyEvaluated stays false) so a later request
123
+ // can retry the import rather than wedging the route permanently.
124
+ work.then(clear, clear);
125
+ return work;
126
+ }
127
+
128
+ runExpansion(entry, deps, lazyPatterns as UrlPatterns<TEnv>);
129
+ }
97
130
 
98
- const lazyPatterns = entry.lazyPatterns as UrlPatterns<TEnv>;
131
+ /**
132
+ * Synchronously expand a lazy entry's (already-resolved) patterns into routes
133
+ * and splice any nested lazy includes as new entries. Runs once per entry.
134
+ */
135
+ function runExpansion<TEnv = any>(
136
+ entry: RouteEntry<TEnv>,
137
+ deps: LazyEvalDeps<TEnv>,
138
+ lazyPatterns: UrlPatterns<TEnv>,
139
+ ): void {
140
+ // lazyEvaluated is set at the END, only after the handler ran and the routes
141
+ // (and any nested includes) were spliced. Setting it up-front would mark the
142
+ // entry done even if the handler throws mid-expansion: the async provider
143
+ // path clears _lazyInflight on rejection so a later request can retry, but a
144
+ // premature lazyEvaluated=true would make evaluateLazyEntry short-circuit
145
+ // (line ~77) forever, wedging the route at 404 until the isolate restarts.
99
146
  const lazyContext = entry.lazyContext;
100
147
 
101
148
  const manifest = new Map<string, EntryData>();
@@ -105,12 +152,9 @@ export function evaluateLazyEntry<TEnv = any>(
105
152
 
106
153
  let handlerResult: AllUseItems[] = [];
107
154
 
108
- const lazyCounters: Record<string, number> = {};
109
- if (lazyContext?.counters) {
110
- for (const [key, value] of Object.entries(lazyContext.counters)) {
111
- lazyCounters[key] = value;
112
- }
113
- }
155
+ const lazyCounters: Record<string, number> = lazyContext?.counters
156
+ ? { ...lazyContext.counters }
157
+ : {};
114
158
 
115
159
  RangoContext.run(
116
160
  {
@@ -170,7 +214,12 @@ export function evaluateLazyEntry<TEnv = any>(
170
214
  staticPrefix: extractStaticPrefix(fullPrefix),
171
215
  routes: {} as ResolvedRouteMap<any>,
172
216
  trailingSlash: entry.trailingSlash,
173
- handler: (lazyInclude.patterns as UrlPatterns<TEnv>).handler,
217
+ // include entries don't invoke their own handler (real handlers come from
218
+ // the expanded routes); use the parent's placeholder. A provider has no
219
+ // `.handler` until resolved, so never read it here.
220
+ handler: isIncludeProvider(lazyInclude.patterns)
221
+ ? entry.handler
222
+ : (lazyInclude.patterns as UrlPatterns<TEnv>).handler,
174
223
  mountIndex: deps.nextMountIndex(),
175
224
  routerId: deps.routerId,
176
225
  lazy: true,
@@ -197,4 +246,9 @@ export function evaluateLazyEntry<TEnv = any>(
197
246
  }
198
247
 
199
248
  registerRouteMap(deps.mergedRouteMap);
249
+
250
+ // Expansion fully succeeded (handler ran, routes + nested includes spliced) —
251
+ // mark done now so a mid-expansion throw above leaves lazyEvaluated=false and
252
+ // the entry retriable.
253
+ entry.lazyEvaluated = true;
200
254
  }
@@ -11,8 +11,17 @@ import MapRootLayout from "../server/root-layout";
11
11
  import { joinPrefix } from "./pattern-matching.js";
12
12
  import type { RouteEntry } from "../types";
13
13
  import type { UrlPatterns } from "../urls";
14
+ import {
15
+ isIncludeProvider,
16
+ resolveIncludeModule,
17
+ } from "../urls/include-provider.js";
14
18
  import { VERSION } from "@rangojs/router:version";
15
19
 
20
+ // Tags an error thrown while dynamically importing an async include's module
21
+ // (`() => import("./routes")`) so loadManifest's outer catch re-raises it as a
22
+ // server error rather than masking it as a RouteNotFoundError (404).
23
+ const MODULE_LOAD_FAILURE = Symbol.for("rango.moduleLoadFailure");
24
+
16
25
  // Module-level manifest cache: avoids re-executing DSL handler on every request.
17
26
  // Handler execution is deterministic (components, loaders, middleware are module-level
18
27
  // stable references), so the resulting EntryData tree can be safely cached and reused
@@ -165,6 +174,29 @@ export async function loadManifest(
165
174
  // not exist in the non-lazy (root handler) path and would produce
166
175
  // mismatched shortCodes.
167
176
  if (entry.lazy && entry.lazyPatterns) {
177
+ // Resolve an async include provider (`() => import("./routes")`) before
178
+ // running its handler. The match-time precomputed shortcut can skip
179
+ // evaluateLazyEntry's resolution, so render-time must resolve it here;
180
+ // cache the resolved patterns on the entry so later renders reuse them.
181
+ if (isIncludeProvider(entry.lazyPatterns)) {
182
+ try {
183
+ entry.lazyPatterns = resolveIncludeModule(
184
+ await entry.lazyPatterns(),
185
+ entry.staticPrefix,
186
+ ) as unknown as UrlPatterns<any>;
187
+ } catch (err) {
188
+ // A failed dynamic import of a REAL, matched route's module is a
189
+ // server error, not a missing route. Tag it so the outer catch
190
+ // surfaces it as a 5xx instead of masking it as a
191
+ // RouteNotFoundError — which renders the 404 page (monitoring
192
+ // misses the failure and a CDN could cache the 404).
193
+ if (err && typeof err === "object") {
194
+ (err as Record<PropertyKey, unknown>)[MODULE_LOAD_FAILURE] =
195
+ true;
196
+ }
197
+ throw err;
198
+ }
199
+ }
168
200
  const lazyPatterns = entry.lazyPatterns as UrlPatterns<any>;
169
201
  const includePrefix = (entry as any)._lazyPrefix || "";
170
202
  // Slash-collapsing join so a trailing-slash parent prefix does not
@@ -192,12 +224,7 @@ export async function loadManifest(
192
224
 
193
225
  if (promiseResult !== null) {
194
226
  const load = await (promiseResult as Promise<any>);
195
- if (
196
- load &&
197
- load !== null &&
198
- typeof load === "object" &&
199
- "default" in load
200
- ) {
227
+ if (load && typeof load === "object" && "default" in load) {
201
228
  // Promise<{ default: () => Array }> - e.g., dynamic import
202
229
  if (typeof load.default !== "function") {
203
230
  throw new Error(
@@ -255,6 +282,16 @@ export async function loadManifest(
255
282
 
256
283
  return Store.manifest.get(routeKey)!;
257
284
  } catch (e) {
285
+ // A tagged async-include module-load failure is a server error for a REAL
286
+ // matched route — re-raise it unchanged (becomes a 5xx) instead of masking
287
+ // it as a RouteNotFoundError (which renders/caches a 404).
288
+ if (
289
+ e &&
290
+ typeof e === "object" &&
291
+ (e as Record<PropertyKey, unknown>)[MODULE_LOAD_FAILURE]
292
+ ) {
293
+ throw e;
294
+ }
258
295
  throw new RouteNotFoundError(
259
296
  `Failed to load route handlers for ${path}: ${(e as Error).message}`,
260
297
  {
@@ -220,7 +220,7 @@ export async function createMatchContextForPartial<TEnv>(
220
220
  matched.pt = true;
221
221
  }
222
222
 
223
- const nav = resolveNavigation(request, url, matched.routeKey, {
223
+ const nav = await resolveNavigation(request, url, matched.routeKey, {
224
224
  findMatch: deps.findMatch,
225
225
  });
226
226
  if (!nav) {
@@ -404,7 +404,7 @@ export async function matchError<TEnv>(
404
404
 
405
405
  debugLog("matchError", "matching error", { pathname });
406
406
 
407
- const matched = deps.findMatch(pathname);
407
+ const matched = await deps.findMatch(pathname);
408
408
  if (!matched) {
409
409
  debugWarn("matchError", "no route matched", { pathname });
410
410
  return null;
@@ -25,15 +25,17 @@ export interface NavigationSnapshot {
25
25
  }
26
26
 
27
27
  export interface ResolveNavigationDeps {
28
- findMatch: (pathname: string) => RouteMatchResult | null;
28
+ findMatch: (
29
+ pathname: string,
30
+ ) => RouteMatchResult | null | Promise<RouteMatchResult | null>;
29
31
  }
30
32
 
31
- export function resolveNavigation(
33
+ export async function resolveNavigation(
32
34
  request: Request,
33
35
  url: URL,
34
36
  currentRouteKey: string,
35
37
  deps: ResolveNavigationDeps,
36
- ): NavigationSnapshot | null {
38
+ ): Promise<NavigationSnapshot | null> {
37
39
  const clientSegmentIds =
38
40
  url.searchParams.get("_rsc_segments")?.split(",").filter(Boolean) || [];
39
41
  const stale = url.searchParams.get("_rsc_stale") === "true";
@@ -65,10 +67,10 @@ export function resolveNavigation(
65
67
  interceptContextUrl = prevUrl;
66
68
  }
67
69
 
68
- const prevMatch = deps.findMatch(prevUrl.pathname);
70
+ const prevMatch = await deps.findMatch(prevUrl.pathname);
69
71
  const prevParams = prevMatch?.params || {};
70
72
  const interceptContextMatch = interceptSourceUrl
71
- ? deps.findMatch(interceptContextUrl.pathname)
73
+ ? await deps.findMatch(interceptContextUrl.pathname)
72
74
  : prevMatch;
73
75
 
74
76
  const isSameRouteNavigation = !!(
@@ -33,7 +33,9 @@ import type {
33
33
  import type { RouteMatchResult } from "./pattern-matching.js";
34
34
 
35
35
  export interface PrerenderMatchDeps<TEnv = any> {
36
- findMatch: (pathname: string) => RouteMatchResult<TEnv> | null;
36
+ findMatch: (
37
+ pathname: string,
38
+ ) => RouteMatchResult<TEnv> | null | Promise<RouteMatchResult<TEnv> | null>;
37
39
  buildRouterContext: () => RouterContext<TEnv>;
38
40
  mergedRouteMap: Record<string, string>;
39
41
  resolveAllSegments: (
@@ -74,7 +76,7 @@ export async function matchForPrerender<TEnv = any>(
74
76
  passthrough?: true;
75
77
  } | null> {
76
78
  // 1. Find the matching route entry
77
- const matched = deps.findMatch(pathname);
79
+ const matched = await deps.findMatch(pathname);
78
80
  if (!matched) return null;
79
81
 
80
82
  // Use params from trie match if available, fall back to provided params
@@ -6,7 +6,9 @@ import type { MiddlewareFn } from "./middleware.js";
6
6
  import { resolveRoute } from "./route-snapshot.js";
7
7
 
8
8
  export interface PreviewMatchDeps<TEnv = any> {
9
- findMatch: (pathname: string) => RouteMatchResult<TEnv> | null;
9
+ findMatch: (
10
+ pathname: string,
11
+ ) => RouteMatchResult<TEnv> | null | Promise<RouteMatchResult<TEnv> | null>;
10
12
  }
11
13
 
12
14
  /**
@@ -121,7 +121,9 @@ export type {
121
121
  };
122
122
 
123
123
  export interface ClassifyRequestDeps<TEnv = any> {
124
- findMatch: (pathname: string) => RouteMatchResult<TEnv> | null;
124
+ findMatch: (
125
+ pathname: string,
126
+ ) => RouteMatchResult<TEnv> | null | Promise<RouteMatchResult<TEnv> | null>;
125
127
  routerVersion: string;
126
128
  routerId: string;
127
129
  }
@@ -56,7 +56,9 @@ export type ResolveRouteResult<TEnv = any> =
56
56
  | null;
57
57
 
58
58
  export interface ResolveRouteDeps<TEnv = any> {
59
- findMatch: (pathname: string) => RouteMatchResult<TEnv> | null;
59
+ findMatch: (
60
+ pathname: string,
61
+ ) => RouteMatchResult<TEnv> | null | Promise<RouteMatchResult<TEnv> | null>;
60
62
  metricsStore?: MetricsStore;
61
63
  isSSR?: boolean;
62
64
  /**
@@ -105,7 +107,7 @@ export async function resolveRoute<TEnv = any>(
105
107
 
106
108
  const routeMatchStart =
107
109
  metricsStore && !skipRouteMatchMetric ? performance.now() : 0;
108
- const matched = deps.findMatch(pathname);
110
+ const matched = await deps.findMatch(pathname);
109
111
  if (metricsStore && !skipRouteMatchMetric) {
110
112
  metricsStore.metrics.push({
111
113
  label: "route-matching",
@@ -55,7 +55,9 @@ export interface InterceptResult {
55
55
  * Instead of passing 20+ parameters, middleware calls getRouterContext() to access them.
56
56
  */
57
57
  export interface RouterContext<TEnv = any> {
58
- findMatch: (pathname: string) => RouteMatchResult | null;
58
+ findMatch: (
59
+ pathname: string,
60
+ ) => RouteMatchResult | null | Promise<RouteMatchResult | null>;
59
61
 
60
62
  loadManifest: (
61
63
  entry: any,
@@ -9,6 +9,7 @@ import type { NonceProvider } from "../rsc/types.js";
9
9
  import type { ExecutionContext } from "../server/request-context.js";
10
10
  import type { SerializedSegmentData } from "../cache/types.js";
11
11
  import type { MiddlewareEntry, MiddlewareFn } from "./middleware.js";
12
+ import type { RouteMatchResult } from "./pattern-matching.js";
12
13
  import type { ExtractParams } from "../types/route-config.js";
13
14
  import { RSC_ROUTER_BRAND } from "./router-registry.js";
14
15
  import type { RangoOptions, RootLayoutProps } from "./router-options.js";
@@ -516,7 +517,14 @@ export interface RangoInternal<
516
517
  * Used by classifyRequest() for request classification without
517
518
  * entering the full match pipeline.
518
519
  */
519
- findMatch(pathname: string, metricsStore?: any): any;
520
+ // Async since a lazy async include (`() => import()`) must resolve before its
521
+ // routes can match. Typed (not `any`) so a consumer doing
522
+ // `const m = router.findMatch(p); if (!m) ...; m.entry` gets a compile error
523
+ // (m is a Promise) instead of the silent always-truthy bug.
524
+ findMatch(
525
+ pathname: string,
526
+ metricsStore?: any,
527
+ ): Promise<RouteMatchResult<TEnv> | null>;
520
528
 
521
529
  /**
522
530
  * Debug utility to serialize the manifest for inspection
package/src/router.ts CHANGED
@@ -620,8 +620,15 @@ export function createRouter<TEnv = any>(
620
620
  routerId,
621
621
  };
622
622
 
623
- function evaluateLazyEntry(entry: RouteEntry<TEnv>): void {
624
- _evaluateLazyEntry(entry, lazyEvalDeps);
623
+ // Must return the Promise from _evaluateLazyEntry: an async include provider
624
+ // (`() => import("./routes")`) resolves off the startup path, and createFindMatch
625
+ // awaits this to know when the import + expansion have completed. Dropping it
626
+ // (typing this `void`) makes the import fire-and-forget, so findMatch spins the
627
+ // lazy-eval retry loop to its cap and returns null on the first request to any
628
+ // async include whose prefix isn't already covered by a unique precomputed entry
629
+ // (nested includes, shared prefixes, regex fallback).
630
+ function evaluateLazyEntry(entry: RouteEntry<TEnv>): void | Promise<void> {
631
+ return _evaluateLazyEntry(entry, lazyEvalDeps);
625
632
  }
626
633
 
627
634
  // Create findMatch with single-entry cache, bound to router state
@@ -32,7 +32,7 @@ export async function buildRouterTrieFromUrlpatterns(
32
32
  ): Promise<void> {
33
33
  const { generateManifestFull } =
34
34
  await import("../build/generate-manifest.js");
35
- const generated = generateManifestFull(
35
+ const generated = await generateManifestFull(
36
36
  router.urlpatterns,
37
37
  undefined,
38
38
  router.basename ? { urlPrefix: router.basename } : undefined,
@@ -140,11 +140,11 @@ interface DispatchableRouter<TEnv> {
140
140
  routeMap: Record<string, unknown>;
141
141
  middleware: MiddlewareEntry<TEnv>[];
142
142
  onError?: OnErrorCallback<TEnv>;
143
- findMatch(pathname: string): {
143
+ findMatch(pathname: string): Promise<{
144
144
  redirectTo?: string;
145
145
  routeKey?: string;
146
146
  params?: Record<string, string>;
147
- } | null;
147
+ } | null>;
148
148
  previewMatch(
149
149
  request: Request,
150
150
  input?: { env?: TEnv },
@@ -351,7 +351,7 @@ export async function dispatch<TEnv = any>(
351
351
 
352
352
  // findMatch carries trailing-slash/redirect targets and null on no match.
353
353
  // previewMatch swallows redirects, so detect them here first.
354
- const match = router.findMatch(url.pathname);
354
+ const match = await router.findMatch(url.pathname);
355
355
  const redirectTo = match?.redirectTo;
356
356
  const isUnmatched = !match;
357
357
 
@@ -29,6 +29,10 @@ import { isAutoGeneratedRouteName } from "../route-name.js";
29
29
  */
30
30
  interface RouterWithRouteMap {
31
31
  routeMap: Record<string, unknown>;
32
+ // findMatch is async (it may await an async include provider's import before
33
+ // the route's names are spliced into routeMap), so expandLazyIncludes awaits
34
+ // it. Typed `unknown` (not `unknown | Promise<unknown>`, which collapses to
35
+ // the same thing) — the awaited value is never read, only its side effect.
32
36
  findMatch?: (pathname: string) => unknown;
33
37
  }
34
38
 
@@ -42,16 +46,28 @@ function concretePath(pattern: string): string {
42
46
  );
43
47
  }
44
48
 
45
- function expandLazyIncludes(
49
+ async function expandLazyIncludes(
46
50
  router: RouterWithRouteMap,
47
51
  patterns: Iterable<string>,
48
- ): void {
52
+ ): Promise<void> {
49
53
  const findMatch = router.findMatch;
50
54
  if (typeof findMatch !== "function") return;
51
55
  for (const pattern of patterns) {
52
56
  try {
53
- findMatch.call(router, concretePath(pattern));
54
- } catch {}
57
+ // Await: an async include(`() => import()`) resolves its module + splices
58
+ // its routes into routeMap only after findMatch's Promise settles. Without
59
+ // the await, the routeMap read below races the import and reports the
60
+ // split-group routes as missing.
61
+ await findMatch.call(router, concretePath(pattern));
62
+ } catch (e) {
63
+ // A findMatch throw here is almost always a failing async include()
64
+ // provider (its `() => import()` rejected). Surface it — swallowed, it
65
+ // resurfaces downstream as a misleading "missing route" in the diff.
66
+ console.warn(
67
+ `[@rangojs/router] assertGeneratedRoutesMatch: could not expand include ` +
68
+ `for "${pattern}": ${(e as Error)?.message ?? String(e)}`,
69
+ );
70
+ }
55
71
  }
56
72
  }
57
73
 
@@ -91,13 +107,13 @@ function patternOf(value: unknown): string {
91
107
  return String(value);
92
108
  }
93
109
 
94
- export function diffGeneratedRoutes(
110
+ export async function diffGeneratedRoutes(
95
111
  router: RouterWithRouteMap,
96
112
  generatedMap?: Record<string, unknown>,
97
- ): GeneratedRoutesDiff {
113
+ ): Promise<GeneratedRoutesDiff> {
98
114
  const generated = generatedMap ?? getGlobalRouteMap();
99
115
 
100
- expandLazyIncludes(
116
+ await expandLazyIncludes(
101
117
  router,
102
118
  Object.values(generated).map((v) => patternOf(v)),
103
119
  );
@@ -145,14 +161,14 @@ export function diffGeneratedRoutes(
145
161
  * import generated from "./router.named-routes.gen";
146
162
  * import { router } from "./router";
147
163
  *
148
- * assertGeneratedRoutesMatch(router, generated);
164
+ * await assertGeneratedRoutesMatch(router, generated);
149
165
  * ```
150
166
  */
151
- export function assertGeneratedRoutesMatch(
167
+ export async function assertGeneratedRoutesMatch(
152
168
  router: RouterWithRouteMap,
153
169
  generatedMap?: Record<string, unknown>,
154
- ): void {
155
- const diff = diffGeneratedRoutes(router, generatedMap);
170
+ ): Promise<void> {
171
+ const diff = await diffGeneratedRoutes(router, generatedMap);
156
172
  if (diff.ok) return;
157
173
 
158
174
  const lines: string[] = [
@@ -9,6 +9,7 @@ import {
9
9
  validateUserRouteName,
10
10
  } from "../route-name.js";
11
11
  import type { UrlPatterns, IncludeOptions } from "./pattern-types.js";
12
+ import type { IncludeProvider } from "./include-provider.js";
12
13
  import type { IncludeFn } from "./path-helper-types.js";
13
14
 
14
15
  function hasExplicitNameOption(options: IncludeOptions | undefined): boolean {
@@ -60,7 +61,11 @@ export function processItems(items: readonly AllUseItems[]): AllUseItems[] {
60
61
  export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
61
62
  return (
62
63
  prefix: string,
63
- patterns: UrlPatterns<TEnv>,
64
+ // A `urls()` value (eager) OR an async provider thunk
65
+ // (`() => import("./routes")`) whose evaluation is deferred to the first
66
+ // request matching `prefix`. The provider is stored unevaluated and
67
+ // resolved by the runtime lazy-include expansion / build-time discovery.
68
+ patterns: UrlPatterns<TEnv> | IncludeProvider<TEnv>,
64
69
  options?: IncludeOptions,
65
70
  ): IncludeItem => {
66
71
  const { ctx } = requireDslContext("include() must be called inside urls()");
@@ -81,10 +86,9 @@ export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
81
86
  ? capturedUrlPrefix + prefix.slice(1)
82
87
  : capturedUrlPrefix + prefix
83
88
  : prefix;
84
- const internalScope = !hasExplicitName
85
- ? allocateInternalIncludeScopeId(ctx.counters)
86
- : undefined;
87
- const nextSegment = hasExplicitName ? explicitName : internalScope;
89
+ const nextSegment = hasExplicitName
90
+ ? explicitName
91
+ : allocateInternalIncludeScopeId(ctx.counters);
88
92
  const fullNamePrefix =
89
93
  nextSegment !== undefined && nextSegment !== ""
90
94
  ? capturedNamePrefix
@@ -117,9 +121,7 @@ export function createIncludeHelper<TEnv>(): IncludeFn<TEnv> {
117
121
  if (capturedParent?.shortCode) {
118
122
  const includeCounterKey = `${capturedParent.shortCode}${parentScope}_include`;
119
123
  ctx.counters[includeCounterKey] ??= 0;
120
- const includeIdx = ctx.counters[includeCounterKey];
121
- ctx.counters[includeCounterKey] = includeIdx + 1;
122
- includeScope = `${parentScope}I${includeIdx}`;
124
+ includeScope = `${parentScope}I${ctx.counters[includeCounterKey]++}`;
123
125
  }
124
126
 
125
127
  // Snapshot parent's counters AFTER allocating the include scope so lazy
@@ -0,0 +1,71 @@
1
+ import type { UrlPatterns } from "./pattern-types.js";
2
+
3
+ /**
4
+ * What an async `include()` provider may resolve to: a `urls()` value directly,
5
+ * or a module namespace whose `default` export is a `urls()` value (the shape
6
+ * produced by `() => import("./routes")` when the route module does
7
+ * `export default urls(...)`).
8
+ */
9
+ export type IncludeModule<TEnv = any> =
10
+ | UrlPatterns<TEnv>
11
+ | { default: UrlPatterns<TEnv> };
12
+
13
+ /**
14
+ * An async/lazy include provider: a thunk returning a `urls()` value (or a
15
+ * Promise of one). The thunk is stored unevaluated by `include()` and called
16
+ * once, on the first request that matches the prefix — so the route module and
17
+ * its (code-split) subtree are not evaluated at startup.
18
+ *
19
+ * Forward-compatible: `() => import("./routes")` today (async, separate chunk);
20
+ * `() => m.routes` with native `import defer` later (sync, deferred eval).
21
+ */
22
+ export type IncludeProvider<TEnv = any> = () =>
23
+ | IncludeModule<TEnv>
24
+ | Promise<IncludeModule<TEnv>>;
25
+
26
+ /** True when the include() argument is a provider thunk rather than a value. */
27
+ export function isIncludeProvider(value: unknown): value is IncludeProvider {
28
+ // A `urls()` value is a (branded) object; a provider is a function.
29
+ return typeof value === "function";
30
+ }
31
+
32
+ /** A `urls()` value is an object exposing a synchronous `handler()`. */
33
+ function isUrlPatterns(value: unknown): value is UrlPatterns {
34
+ return (
35
+ !!value && typeof (value as { handler?: unknown }).handler === "function"
36
+ );
37
+ }
38
+
39
+ /**
40
+ * Normalize an async provider's resolved value to a `UrlPatterns`. Accepts a
41
+ * `urls()` value directly or a module whose `default` export is one.
42
+ */
43
+ export function resolveIncludeModule<TEnv = any>(
44
+ mod: IncludeModule<TEnv>,
45
+ id?: string,
46
+ ): UrlPatterns<TEnv> {
47
+ // Prefer an explicit `default` export (the `export default urls(...)`
48
+ // convention) BEFORE duck-typing the namespace. isUrlPatterns() keys on a
49
+ // `.handler` function, but a routes module can legitimately carry a NAMED
50
+ // `export function handler(...)` alongside its `export default urls(...)`;
51
+ // checking the namespace first would then misidentify the whole module as the
52
+ // urls() value and invoke the user's helper as the DSL handler (the group
53
+ // 404s with a misleading error). A bare `() => urls(...)` provider (no
54
+ // module) has no `default`, so it still resolves via the mod-as-value branch.
55
+ const def = (mod as { default?: unknown })?.default;
56
+ if (isUrlPatterns(def)) return def as UrlPatterns<TEnv>;
57
+ if (isUrlPatterns(mod)) return mod as UrlPatterns<TEnv>;
58
+ // The common failure is a module namespace whose `default` is missing or not a
59
+ // urls() value (e.g. only named exports); `typeof` alone says "object" and
60
+ // hides that, so name the keys present. "provider" (not "async provider") —
61
+ // synchronous providers are supported (see IncludeProvider).
62
+ const got =
63
+ mod && typeof mod === "object"
64
+ ? `a module with keys [${Object.keys(mod).join(", ") || "none"}] but no valid \`default\``
65
+ : typeof mod;
66
+ throw new Error(
67
+ `[@rangojs/router] include() provider${id ? ` for "${id}"` : ""} must ` +
68
+ `resolve to a urls() value — either returned directly or as the module's ` +
69
+ `\`default\` export (e.g. \`export default urls(...)\`). Got ${got}.`,
70
+ );
71
+ }
@@ -152,6 +152,30 @@ export type TextResponsePathFn<TEnv> = <
152
152
  use?: () => UseItems<ResponseRouteUseItem>,
153
153
  ) => TypedRouteItem<TName, TPattern, string, TSearch>;
154
154
 
155
+ /**
156
+ * What an async include() provider resolves to. Route types (`TRoutes`) are
157
+ * inferred from the resolved `urls()` value so `href()` and named routes stay
158
+ * type-safe through a code-split module (`() => import("./routes")`).
159
+ */
160
+ type IncludeResolved<
161
+ TEnv,
162
+ TRoutes extends Record<string, any>,
163
+ TResponses extends Record<string, unknown>,
164
+ > =
165
+ | UrlPatterns<TEnv, TRoutes, TResponses>
166
+ | { default: UrlPatterns<TEnv, TRoutes, TResponses> };
167
+
168
+ /** include() argument: an eager `urls()` value or an async provider thunk. */
169
+ export type IncludeArg<
170
+ TEnv,
171
+ TRoutes extends Record<string, any>,
172
+ TResponses extends Record<string, unknown>,
173
+ > =
174
+ | UrlPatterns<TEnv, TRoutes, TResponses>
175
+ | (() =>
176
+ | IncludeResolved<TEnv, TRoutes, TResponses>
177
+ | Promise<IncludeResolved<TEnv, TRoutes, TResponses>>);
178
+
155
179
  /**
156
180
  * Base include function signature.
157
181
  */
@@ -162,7 +186,7 @@ export type IncludeFn<TEnv> = <
162
186
  TResponses extends Record<string, unknown> = Record<string, unknown>,
163
187
  >(
164
188
  prefix: TUrlPrefix,
165
- patterns: UrlPatterns<TEnv, TRoutes, TResponses>,
189
+ patterns: IncludeArg<TEnv, TRoutes, TResponses>,
166
190
  options?: IncludeOptions<TNamePrefix>,
167
191
  ) => TypedIncludeItem<TRoutes, TNamePrefix, TUrlPrefix, TResponses>;
168
192
 
@@ -186,7 +186,7 @@ export async function discoverRouters(
186
186
  continue;
187
187
  }
188
188
 
189
- const manifest = generateManifestFull(
189
+ const manifest = await generateManifestFull(
190
190
  router.urlpatterns,
191
191
  routerMountIndex,
192
192
  {
@@ -544,6 +544,14 @@ export function createRouterDiscoveryPlugin(
544
544
  );
545
545
  console.warn(`[rango] Failed to create temp runner: ${err.message}`);
546
546
  }
547
+ // Reached only on failure (runner unavailable, or create/import threw
548
+ // AFTER the server was created). Close the just-created server so a
549
+ // failed discovery does not leak it until the next call or dev shutdown,
550
+ // and null the refs so the reuse path above starts clean. Mirrors the
551
+ // close pattern used when an existing server is discarded (above).
552
+ await prerenderTempServer?.close().catch(() => {});
553
+ prerenderTempServer = null;
554
+ prerenderNodeRegistry = null;
547
555
  return null;
548
556
  }
549
557