@benjavicente/router-core 1.168.9

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 (380) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/bin/intent.js +25 -0
  4. package/dist/cjs/Matches.cjs +17 -0
  5. package/dist/cjs/Matches.cjs.map +1 -0
  6. package/dist/cjs/Matches.d.cts +139 -0
  7. package/dist/cjs/RouterProvider.d.cts +27 -0
  8. package/dist/cjs/config.cjs +11 -0
  9. package/dist/cjs/config.cjs.map +1 -0
  10. package/dist/cjs/config.d.cts +17 -0
  11. package/dist/cjs/defer.cjs +41 -0
  12. package/dist/cjs/defer.cjs.map +1 -0
  13. package/dist/cjs/defer.d.cts +37 -0
  14. package/dist/cjs/fileRoute.d.cts +24 -0
  15. package/dist/cjs/global.d.cts +7 -0
  16. package/dist/cjs/hash-scroll.cjs +20 -0
  17. package/dist/cjs/hash-scroll.cjs.map +1 -0
  18. package/dist/cjs/hash-scroll.d.cts +7 -0
  19. package/dist/cjs/history.d.cts +8 -0
  20. package/dist/cjs/index.cjs +96 -0
  21. package/dist/cjs/index.d.cts +53 -0
  22. package/dist/cjs/invariant.cjs +8 -0
  23. package/dist/cjs/invariant.cjs.map +1 -0
  24. package/dist/cjs/invariant.d.cts +1 -0
  25. package/dist/cjs/isServer/client.cjs +7 -0
  26. package/dist/cjs/isServer/client.cjs.map +1 -0
  27. package/dist/cjs/isServer/client.d.cts +1 -0
  28. package/dist/cjs/isServer/development.cjs +7 -0
  29. package/dist/cjs/isServer/development.cjs.map +1 -0
  30. package/dist/cjs/isServer/development.d.cts +1 -0
  31. package/dist/cjs/isServer/server.cjs +7 -0
  32. package/dist/cjs/isServer/server.cjs.map +1 -0
  33. package/dist/cjs/isServer/server.d.cts +1 -0
  34. package/dist/cjs/link.cjs +6 -0
  35. package/dist/cjs/link.cjs.map +1 -0
  36. package/dist/cjs/link.d.cts +221 -0
  37. package/dist/cjs/load-matches.cjs +659 -0
  38. package/dist/cjs/load-matches.cjs.map +1 -0
  39. package/dist/cjs/load-matches.d.cts +18 -0
  40. package/dist/cjs/location.d.cts +50 -0
  41. package/dist/cjs/lru-cache.cjs +70 -0
  42. package/dist/cjs/lru-cache.cjs.map +1 -0
  43. package/dist/cjs/lru-cache.d.cts +6 -0
  44. package/dist/cjs/manifest.cjs +18 -0
  45. package/dist/cjs/manifest.cjs.map +1 -0
  46. package/dist/cjs/manifest.d.cts +35 -0
  47. package/dist/cjs/new-process-route-tree.cjs +754 -0
  48. package/dist/cjs/new-process-route-tree.cjs.map +1 -0
  49. package/dist/cjs/new-process-route-tree.d.cts +236 -0
  50. package/dist/cjs/not-found.cjs +26 -0
  51. package/dist/cjs/not-found.cjs.map +1 -0
  52. package/dist/cjs/not-found.d.cts +32 -0
  53. package/dist/cjs/path.cjs +252 -0
  54. package/dist/cjs/path.cjs.map +1 -0
  55. package/dist/cjs/path.d.cts +56 -0
  56. package/dist/cjs/qss.cjs +70 -0
  57. package/dist/cjs/qss.cjs.map +1 -0
  58. package/dist/cjs/qss.d.cts +33 -0
  59. package/dist/cjs/redirect.cjs +56 -0
  60. package/dist/cjs/redirect.cjs.map +1 -0
  61. package/dist/cjs/redirect.d.cts +77 -0
  62. package/dist/cjs/rewrite.cjs +68 -0
  63. package/dist/cjs/rewrite.cjs.map +1 -0
  64. package/dist/cjs/rewrite.d.cts +30 -0
  65. package/dist/cjs/root.cjs +7 -0
  66. package/dist/cjs/root.cjs.map +1 -0
  67. package/dist/cjs/root.d.cts +3 -0
  68. package/dist/cjs/route.cjs +100 -0
  69. package/dist/cjs/route.cjs.map +1 -0
  70. package/dist/cjs/route.d.cts +552 -0
  71. package/dist/cjs/routeInfo.d.cts +54 -0
  72. package/dist/cjs/router.cjs +1173 -0
  73. package/dist/cjs/router.cjs.map +1 -0
  74. package/dist/cjs/router.d.cts +734 -0
  75. package/dist/cjs/scroll-restoration-inline.cjs +6 -0
  76. package/dist/cjs/scroll-restoration-inline.cjs.map +1 -0
  77. package/dist/cjs/scroll-restoration-inline.d.cts +6 -0
  78. package/dist/cjs/scroll-restoration-script/client.cjs +9 -0
  79. package/dist/cjs/scroll-restoration-script/client.cjs.map +1 -0
  80. package/dist/cjs/scroll-restoration-script/client.d.cts +2 -0
  81. package/dist/cjs/scroll-restoration-script/server.cjs +30 -0
  82. package/dist/cjs/scroll-restoration-script/server.cjs.map +1 -0
  83. package/dist/cjs/scroll-restoration-script/server.d.cts +2 -0
  84. package/dist/cjs/scroll-restoration.cjs +191 -0
  85. package/dist/cjs/scroll-restoration.cjs.map +1 -0
  86. package/dist/cjs/scroll-restoration.d.cts +38 -0
  87. package/dist/cjs/searchMiddleware.cjs +55 -0
  88. package/dist/cjs/searchMiddleware.cjs.map +1 -0
  89. package/dist/cjs/searchMiddleware.d.cts +25 -0
  90. package/dist/cjs/searchParams.cjs +65 -0
  91. package/dist/cjs/searchParams.cjs.map +1 -0
  92. package/dist/cjs/searchParams.d.cts +31 -0
  93. package/dist/cjs/ssr/client.cjs +7 -0
  94. package/dist/cjs/ssr/client.d.cts +6 -0
  95. package/dist/cjs/ssr/constants.cjs +8 -0
  96. package/dist/cjs/ssr/constants.cjs.map +1 -0
  97. package/dist/cjs/ssr/constants.d.cts +3 -0
  98. package/dist/cjs/ssr/createRequestHandler.cjs +44 -0
  99. package/dist/cjs/ssr/createRequestHandler.cjs.map +1 -0
  100. package/dist/cjs/ssr/createRequestHandler.d.cts +9 -0
  101. package/dist/cjs/ssr/handlerCallback.cjs +8 -0
  102. package/dist/cjs/ssr/handlerCallback.cjs.map +1 -0
  103. package/dist/cjs/ssr/handlerCallback.d.cts +9 -0
  104. package/dist/cjs/ssr/headers.cjs +21 -0
  105. package/dist/cjs/ssr/headers.cjs.map +1 -0
  106. package/dist/cjs/ssr/headers.d.cts +3 -0
  107. package/dist/cjs/ssr/json.cjs +11 -0
  108. package/dist/cjs/ssr/json.cjs.map +1 -0
  109. package/dist/cjs/ssr/json.d.cts +10 -0
  110. package/dist/cjs/ssr/serializer/RawStream.cjs +287 -0
  111. package/dist/cjs/ssr/serializer/RawStream.cjs.map +1 -0
  112. package/dist/cjs/ssr/serializer/RawStream.d.cts +64 -0
  113. package/dist/cjs/ssr/serializer/ShallowErrorPlugin.cjs +32 -0
  114. package/dist/cjs/ssr/serializer/ShallowErrorPlugin.cjs.map +1 -0
  115. package/dist/cjs/ssr/serializer/ShallowErrorPlugin.d.cts +9 -0
  116. package/dist/cjs/ssr/serializer/seroval-plugins.cjs +13 -0
  117. package/dist/cjs/ssr/serializer/seroval-plugins.cjs.map +1 -0
  118. package/dist/cjs/ssr/serializer/seroval-plugins.d.cts +2 -0
  119. package/dist/cjs/ssr/serializer/transformer.cjs +53 -0
  120. package/dist/cjs/ssr/serializer/transformer.cjs.map +1 -0
  121. package/dist/cjs/ssr/serializer/transformer.d.cts +91 -0
  122. package/dist/cjs/ssr/server.cjs +13 -0
  123. package/dist/cjs/ssr/server.d.cts +6 -0
  124. package/dist/cjs/ssr/ssr-client.cjs +183 -0
  125. package/dist/cjs/ssr/ssr-client.cjs.map +1 -0
  126. package/dist/cjs/ssr/ssr-client.d.cts +10 -0
  127. package/dist/cjs/ssr/ssr-match-id.cjs +12 -0
  128. package/dist/cjs/ssr/ssr-match-id.cjs.map +1 -0
  129. package/dist/cjs/ssr/ssr-match-id.d.cts +2 -0
  130. package/dist/cjs/ssr/ssr-server.cjs +279 -0
  131. package/dist/cjs/ssr/ssr-server.cjs.map +1 -0
  132. package/dist/cjs/ssr/ssr-server.d.cts +42 -0
  133. package/dist/cjs/ssr/transformStreamWithRouter.cjs +327 -0
  134. package/dist/cjs/ssr/transformStreamWithRouter.cjs.map +1 -0
  135. package/dist/cjs/ssr/transformStreamWithRouter.d.cts +11 -0
  136. package/dist/cjs/ssr/tsrScript.cjs +6 -0
  137. package/dist/cjs/ssr/tsrScript.cjs.map +1 -0
  138. package/dist/cjs/ssr/tsrScript.d.cts +1 -0
  139. package/dist/cjs/ssr/types.d.cts +30 -0
  140. package/dist/cjs/stores.cjs +148 -0
  141. package/dist/cjs/stores.cjs.map +1 -0
  142. package/dist/cjs/stores.d.cts +70 -0
  143. package/dist/cjs/structuralSharing.d.cts +4 -0
  144. package/dist/cjs/typePrimitives.d.cts +65 -0
  145. package/dist/cjs/useLoaderData.d.cts +5 -0
  146. package/dist/cjs/useLoaderDeps.d.cts +5 -0
  147. package/dist/cjs/useNavigate.d.cts +3 -0
  148. package/dist/cjs/useParams.d.cts +5 -0
  149. package/dist/cjs/useRouteContext.d.cts +9 -0
  150. package/dist/cjs/useSearch.d.cts +5 -0
  151. package/dist/cjs/utils.cjs +339 -0
  152. package/dist/cjs/utils.cjs.map +1 -0
  153. package/dist/cjs/utils.d.cts +178 -0
  154. package/dist/cjs/validators.d.cts +51 -0
  155. package/dist/esm/Matches.d.ts +139 -0
  156. package/dist/esm/Matches.js +17 -0
  157. package/dist/esm/Matches.js.map +1 -0
  158. package/dist/esm/RouterProvider.d.ts +27 -0
  159. package/dist/esm/config.d.ts +17 -0
  160. package/dist/esm/config.js +11 -0
  161. package/dist/esm/config.js.map +1 -0
  162. package/dist/esm/defer.d.ts +37 -0
  163. package/dist/esm/defer.js +40 -0
  164. package/dist/esm/defer.js.map +1 -0
  165. package/dist/esm/fileRoute.d.ts +24 -0
  166. package/dist/esm/global.d.ts +7 -0
  167. package/dist/esm/hash-scroll.d.ts +7 -0
  168. package/dist/esm/hash-scroll.js +20 -0
  169. package/dist/esm/hash-scroll.js.map +1 -0
  170. package/dist/esm/history.d.ts +8 -0
  171. package/dist/esm/index.d.ts +53 -0
  172. package/dist/esm/index.js +24 -0
  173. package/dist/esm/invariant.d.ts +1 -0
  174. package/dist/esm/invariant.js +8 -0
  175. package/dist/esm/invariant.js.map +1 -0
  176. package/dist/esm/isServer/client.d.ts +1 -0
  177. package/dist/esm/isServer/client.js +6 -0
  178. package/dist/esm/isServer/client.js.map +1 -0
  179. package/dist/esm/isServer/development.d.ts +1 -0
  180. package/dist/esm/isServer/development.js +6 -0
  181. package/dist/esm/isServer/development.js.map +1 -0
  182. package/dist/esm/isServer/server.d.ts +1 -0
  183. package/dist/esm/isServer/server.js +6 -0
  184. package/dist/esm/isServer/server.js.map +1 -0
  185. package/dist/esm/link.d.ts +221 -0
  186. package/dist/esm/link.js +6 -0
  187. package/dist/esm/link.js.map +1 -0
  188. package/dist/esm/load-matches.d.ts +18 -0
  189. package/dist/esm/load-matches.js +657 -0
  190. package/dist/esm/load-matches.js.map +1 -0
  191. package/dist/esm/location.d.ts +50 -0
  192. package/dist/esm/lru-cache.d.ts +6 -0
  193. package/dist/esm/lru-cache.js +70 -0
  194. package/dist/esm/lru-cache.js.map +1 -0
  195. package/dist/esm/manifest.d.ts +35 -0
  196. package/dist/esm/manifest.js +17 -0
  197. package/dist/esm/manifest.js.map +1 -0
  198. package/dist/esm/new-process-route-tree.d.ts +236 -0
  199. package/dist/esm/new-process-route-tree.js +749 -0
  200. package/dist/esm/new-process-route-tree.js.map +1 -0
  201. package/dist/esm/not-found.d.ts +32 -0
  202. package/dist/esm/not-found.js +25 -0
  203. package/dist/esm/not-found.js.map +1 -0
  204. package/dist/esm/path.d.ts +56 -0
  205. package/dist/esm/path.js +243 -0
  206. package/dist/esm/path.js.map +1 -0
  207. package/dist/esm/qss.d.ts +33 -0
  208. package/dist/esm/qss.js +69 -0
  209. package/dist/esm/qss.js.map +1 -0
  210. package/dist/esm/redirect.d.ts +77 -0
  211. package/dist/esm/redirect.js +53 -0
  212. package/dist/esm/redirect.js.map +1 -0
  213. package/dist/esm/rewrite.d.ts +30 -0
  214. package/dist/esm/rewrite.js +65 -0
  215. package/dist/esm/rewrite.js.map +1 -0
  216. package/dist/esm/root.d.ts +3 -0
  217. package/dist/esm/root.js +7 -0
  218. package/dist/esm/root.js.map +1 -0
  219. package/dist/esm/route.d.ts +552 -0
  220. package/dist/esm/route.js +98 -0
  221. package/dist/esm/route.js.map +1 -0
  222. package/dist/esm/routeInfo.d.ts +54 -0
  223. package/dist/esm/router.d.ts +734 -0
  224. package/dist/esm/router.js +1165 -0
  225. package/dist/esm/router.js.map +1 -0
  226. package/dist/esm/scroll-restoration-inline.d.ts +6 -0
  227. package/dist/esm/scroll-restoration-inline.js +6 -0
  228. package/dist/esm/scroll-restoration-inline.js.map +1 -0
  229. package/dist/esm/scroll-restoration-script/client.d.ts +2 -0
  230. package/dist/esm/scroll-restoration-script/client.js +8 -0
  231. package/dist/esm/scroll-restoration-script/client.js.map +1 -0
  232. package/dist/esm/scroll-restoration-script/server.d.ts +2 -0
  233. package/dist/esm/scroll-restoration-script/server.js +29 -0
  234. package/dist/esm/scroll-restoration-script/server.js.map +1 -0
  235. package/dist/esm/scroll-restoration.d.ts +38 -0
  236. package/dist/esm/scroll-restoration.js +187 -0
  237. package/dist/esm/scroll-restoration.js.map +1 -0
  238. package/dist/esm/searchMiddleware.d.ts +25 -0
  239. package/dist/esm/searchMiddleware.js +54 -0
  240. package/dist/esm/searchMiddleware.js.map +1 -0
  241. package/dist/esm/searchParams.d.ts +31 -0
  242. package/dist/esm/searchParams.js +62 -0
  243. package/dist/esm/searchParams.js.map +1 -0
  244. package/dist/esm/ssr/client.d.ts +6 -0
  245. package/dist/esm/ssr/client.js +4 -0
  246. package/dist/esm/ssr/constants.d.ts +3 -0
  247. package/dist/esm/ssr/constants.js +7 -0
  248. package/dist/esm/ssr/constants.js.map +1 -0
  249. package/dist/esm/ssr/createRequestHandler.d.ts +9 -0
  250. package/dist/esm/ssr/createRequestHandler.js +44 -0
  251. package/dist/esm/ssr/createRequestHandler.js.map +1 -0
  252. package/dist/esm/ssr/handlerCallback.d.ts +9 -0
  253. package/dist/esm/ssr/handlerCallback.js +8 -0
  254. package/dist/esm/ssr/handlerCallback.js.map +1 -0
  255. package/dist/esm/ssr/headers.d.ts +3 -0
  256. package/dist/esm/ssr/headers.js +21 -0
  257. package/dist/esm/ssr/headers.js.map +1 -0
  258. package/dist/esm/ssr/json.d.ts +10 -0
  259. package/dist/esm/ssr/json.js +11 -0
  260. package/dist/esm/ssr/json.js.map +1 -0
  261. package/dist/esm/ssr/serializer/RawStream.d.ts +64 -0
  262. package/dist/esm/ssr/serializer/RawStream.js +282 -0
  263. package/dist/esm/ssr/serializer/RawStream.js.map +1 -0
  264. package/dist/esm/ssr/serializer/ShallowErrorPlugin.d.ts +9 -0
  265. package/dist/esm/ssr/serializer/ShallowErrorPlugin.js +33 -0
  266. package/dist/esm/ssr/serializer/ShallowErrorPlugin.js.map +1 -0
  267. package/dist/esm/ssr/serializer/seroval-plugins.d.ts +2 -0
  268. package/dist/esm/ssr/serializer/seroval-plugins.js +13 -0
  269. package/dist/esm/ssr/serializer/seroval-plugins.js.map +1 -0
  270. package/dist/esm/ssr/serializer/transformer.d.ts +91 -0
  271. package/dist/esm/ssr/serializer/transformer.js +51 -0
  272. package/dist/esm/ssr/serializer/transformer.js.map +1 -0
  273. package/dist/esm/ssr/server.d.ts +6 -0
  274. package/dist/esm/ssr/server.js +5 -0
  275. package/dist/esm/ssr/ssr-client.d.ts +10 -0
  276. package/dist/esm/ssr/ssr-client.js +183 -0
  277. package/dist/esm/ssr/ssr-client.js.map +1 -0
  278. package/dist/esm/ssr/ssr-match-id.d.ts +2 -0
  279. package/dist/esm/ssr/ssr-match-id.js +11 -0
  280. package/dist/esm/ssr/ssr-match-id.js.map +1 -0
  281. package/dist/esm/ssr/ssr-server.d.ts +42 -0
  282. package/dist/esm/ssr/ssr-server.js +277 -0
  283. package/dist/esm/ssr/ssr-server.js.map +1 -0
  284. package/dist/esm/ssr/transformStreamWithRouter.d.ts +11 -0
  285. package/dist/esm/ssr/transformStreamWithRouter.js +325 -0
  286. package/dist/esm/ssr/transformStreamWithRouter.js.map +1 -0
  287. package/dist/esm/ssr/tsrScript.d.ts +0 -0
  288. package/dist/esm/ssr/tsrScript.js +6 -0
  289. package/dist/esm/ssr/tsrScript.js.map +1 -0
  290. package/dist/esm/ssr/types.d.ts +30 -0
  291. package/dist/esm/stores.d.ts +70 -0
  292. package/dist/esm/stores.js +146 -0
  293. package/dist/esm/stores.js.map +1 -0
  294. package/dist/esm/structuralSharing.d.ts +4 -0
  295. package/dist/esm/typePrimitives.d.ts +65 -0
  296. package/dist/esm/useLoaderData.d.ts +5 -0
  297. package/dist/esm/useLoaderDeps.d.ts +5 -0
  298. package/dist/esm/useNavigate.d.ts +3 -0
  299. package/dist/esm/useParams.d.ts +5 -0
  300. package/dist/esm/useRouteContext.d.ts +9 -0
  301. package/dist/esm/useSearch.d.ts +5 -0
  302. package/dist/esm/utils.d.ts +178 -0
  303. package/dist/esm/utils.js +322 -0
  304. package/dist/esm/utils.js.map +1 -0
  305. package/dist/esm/validators.d.ts +51 -0
  306. package/package.json +200 -0
  307. package/skills/router-core/SKILL.md +139 -0
  308. package/skills/router-core/auth-and-guards/SKILL.md +458 -0
  309. package/skills/router-core/code-splitting/SKILL.md +322 -0
  310. package/skills/router-core/data-loading/SKILL.md +485 -0
  311. package/skills/router-core/navigation/SKILL.md +448 -0
  312. package/skills/router-core/not-found-and-errors/SKILL.md +435 -0
  313. package/skills/router-core/path-params/SKILL.md +382 -0
  314. package/skills/router-core/search-params/SKILL.md +349 -0
  315. package/skills/router-core/search-params/references/validation-patterns.md +379 -0
  316. package/skills/router-core/ssr/SKILL.md +437 -0
  317. package/skills/router-core/type-safety/SKILL.md +497 -0
  318. package/src/Matches.ts +291 -0
  319. package/src/RouterProvider.ts +47 -0
  320. package/src/config.ts +42 -0
  321. package/src/defer.ts +69 -0
  322. package/src/fileRoute.ts +164 -0
  323. package/src/global.ts +9 -0
  324. package/src/hash-scroll.ts +21 -0
  325. package/src/history.ts +9 -0
  326. package/src/index.ts +471 -0
  327. package/src/invariant.ts +3 -0
  328. package/src/isServer/client.ts +1 -0
  329. package/src/isServer/development.ts +2 -0
  330. package/src/isServer/server.ts +1 -0
  331. package/src/link.ts +704 -0
  332. package/src/load-matches.ts +1281 -0
  333. package/src/location.ts +51 -0
  334. package/src/lru-cache.ts +74 -0
  335. package/src/manifest.ts +68 -0
  336. package/src/new-process-route-tree.ts +1387 -0
  337. package/src/not-found.ts +41 -0
  338. package/src/path.ts +436 -0
  339. package/src/qss.ts +81 -0
  340. package/src/redirect.ts +179 -0
  341. package/src/rewrite.ts +93 -0
  342. package/src/root.ts +3 -0
  343. package/src/route.ts +2235 -0
  344. package/src/routeInfo.ts +235 -0
  345. package/src/router.ts +3207 -0
  346. package/src/scroll-restoration-inline.ts +81 -0
  347. package/src/scroll-restoration-script/client.ts +5 -0
  348. package/src/scroll-restoration-script/server.ts +64 -0
  349. package/src/scroll-restoration.ts +357 -0
  350. package/src/searchMiddleware.ts +76 -0
  351. package/src/searchParams.ts +90 -0
  352. package/src/ssr/client.ts +6 -0
  353. package/src/ssr/constants.ts +3 -0
  354. package/src/ssr/createRequestHandler.ts +98 -0
  355. package/src/ssr/handlerCallback.ts +15 -0
  356. package/src/ssr/headers.ts +40 -0
  357. package/src/ssr/json.ts +16 -0
  358. package/src/ssr/serializer/RawStream.ts +464 -0
  359. package/src/ssr/serializer/ShallowErrorPlugin.ts +43 -0
  360. package/src/ssr/serializer/seroval-plugins.ts +12 -0
  361. package/src/ssr/serializer/transformer.ts +312 -0
  362. package/src/ssr/server.ts +14 -0
  363. package/src/ssr/ssr-client.ts +313 -0
  364. package/src/ssr/ssr-match-id.ts +7 -0
  365. package/src/ssr/ssr-server.ts +425 -0
  366. package/src/ssr/transformStreamWithRouter.ts +493 -0
  367. package/src/ssr/tsrScript.ts +20 -0
  368. package/src/ssr/types.ts +41 -0
  369. package/src/stores.ts +342 -0
  370. package/src/structuralSharing.ts +7 -0
  371. package/src/typePrimitives.ts +181 -0
  372. package/src/useLoaderData.ts +20 -0
  373. package/src/useLoaderDeps.ts +13 -0
  374. package/src/useNavigate.ts +13 -0
  375. package/src/useParams.ts +20 -0
  376. package/src/useRouteContext.ts +39 -0
  377. package/src/useSearch.ts +20 -0
  378. package/src/utils.ts +708 -0
  379. package/src/validators.ts +121 -0
  380. package/src/vite-env.d.ts +4 -0
package/src/Matches.ts ADDED
@@ -0,0 +1,291 @@
1
+ import type { AnyRoute, StaticDataRouteOption } from './route'
2
+ import type {
3
+ AllContext,
4
+ AllLoaderData,
5
+ AllParams,
6
+ FullSearchSchema,
7
+ ParseRoute,
8
+ RouteById,
9
+ RouteIds,
10
+ } from './routeInfo'
11
+ import type { AnyRouter, RegisteredRouter, SSROption } from './router'
12
+ import type { Constrain, ControlledPromise } from './utils'
13
+
14
+ export type AnyMatchAndValue = { match: any; value: any }
15
+
16
+ export type FindValueByIndex<
17
+ TKey,
18
+ TValue extends ReadonlyArray<any>,
19
+ > = TKey extends `${infer TIndex extends number}` ? TValue[TIndex] : never
20
+
21
+ export type FindValueByKey<TKey, TValue> =
22
+ TValue extends ReadonlyArray<any>
23
+ ? FindValueByIndex<TKey, TValue>
24
+ : TValue[TKey & keyof TValue]
25
+
26
+ export type CreateMatchAndValue<TMatch, TValue> = TValue extends any
27
+ ? {
28
+ match: TMatch
29
+ value: TValue
30
+ }
31
+ : never
32
+
33
+ export type NextMatchAndValue<
34
+ TKey,
35
+ TMatchAndValue extends AnyMatchAndValue,
36
+ > = TMatchAndValue extends any
37
+ ? CreateMatchAndValue<
38
+ TMatchAndValue['match'],
39
+ FindValueByKey<TKey, TMatchAndValue['value']>
40
+ >
41
+ : never
42
+
43
+ export type IsMatchKeyOf<TValue> =
44
+ TValue extends ReadonlyArray<any>
45
+ ? number extends TValue['length']
46
+ ? `${number}`
47
+ : keyof TValue & `${number}`
48
+ : TValue extends object
49
+ ? keyof TValue & string
50
+ : never
51
+
52
+ export type IsMatchPath<
53
+ TParentPath extends string,
54
+ TMatchAndValue extends AnyMatchAndValue,
55
+ > = `${TParentPath}${IsMatchKeyOf<TMatchAndValue['value']>}`
56
+
57
+ export type IsMatchResult<
58
+ TKey,
59
+ TMatchAndValue extends AnyMatchAndValue,
60
+ > = TMatchAndValue extends any
61
+ ? TKey extends keyof TMatchAndValue['value']
62
+ ? TMatchAndValue['match']
63
+ : never
64
+ : never
65
+
66
+ export type IsMatchParse<
67
+ TPath,
68
+ TMatchAndValue extends AnyMatchAndValue,
69
+ TParentPath extends string = '',
70
+ > = TPath extends `${string}.${string}`
71
+ ? TPath extends `${infer TFirst}.${infer TRest}`
72
+ ? IsMatchParse<
73
+ TRest,
74
+ NextMatchAndValue<TFirst, TMatchAndValue>,
75
+ `${TParentPath}${TFirst}.`
76
+ >
77
+ : never
78
+ : {
79
+ path: IsMatchPath<TParentPath, TMatchAndValue>
80
+ result: IsMatchResult<TPath, TMatchAndValue>
81
+ }
82
+
83
+ export type IsMatch<TMatch, TPath> = IsMatchParse<
84
+ TPath,
85
+ TMatch extends any ? { match: TMatch; value: TMatch } : never
86
+ >
87
+
88
+ /**
89
+ * Narrows matches based on a path
90
+ * @experimental
91
+ */
92
+ export const isMatch = <TMatch, TPath extends string>(
93
+ match: TMatch,
94
+ path: Constrain<TPath, IsMatch<TMatch, TPath>['path']>,
95
+ ): match is IsMatch<TMatch, TPath>['result'] => {
96
+ const parts = (path as string).split('.')
97
+ let part
98
+ let i = 0
99
+ let value: any = match
100
+
101
+ while ((part = parts[i++]) != null && value != null) {
102
+ value = value[part]
103
+ }
104
+
105
+ return value != null
106
+ }
107
+
108
+ export interface DefaultRouteMatchExtensions {
109
+ scripts?: unknown
110
+ links?: unknown
111
+ headScripts?: unknown
112
+ meta?: unknown
113
+ styles?: unknown
114
+ }
115
+
116
+ export interface RouteMatchExtensions extends DefaultRouteMatchExtensions {}
117
+
118
+ export interface RouteMatch<
119
+ out TRouteId,
120
+ out TFullPath,
121
+ out TAllParams,
122
+ out TFullSearchSchema,
123
+ out TLoaderData,
124
+ out TAllContext,
125
+ out TLoaderDeps,
126
+ > extends RouteMatchExtensions {
127
+ id: string
128
+ routeId: TRouteId
129
+ fullPath: TFullPath
130
+ index: number
131
+ pathname: string
132
+ params: TAllParams
133
+ _strictParams: TAllParams
134
+ status: 'pending' | 'success' | 'error' | 'redirected' | 'notFound'
135
+ isFetching: false | 'beforeLoad' | 'loader'
136
+ error: unknown
137
+ paramsError: unknown
138
+ searchError: unknown
139
+ updatedAt: number
140
+ _nonReactive: {
141
+ /** @internal */
142
+ beforeLoadPromise?: ControlledPromise<void>
143
+ /** @internal */
144
+ loaderPromise?: ControlledPromise<void>
145
+ /** @internal */
146
+ pendingTimeout?: ReturnType<typeof setTimeout>
147
+ loadPromise?: ControlledPromise<void>
148
+ displayPendingPromise?: Promise<void>
149
+ minPendingPromise?: ControlledPromise<void>
150
+ dehydrated?: boolean
151
+ /** @internal */
152
+ error?: unknown
153
+ }
154
+ loaderData?: TLoaderData
155
+ /** @internal */
156
+ __routeContext?: Record<string, unknown>
157
+ /** @internal */
158
+ __beforeLoadContext?: Record<string, unknown>
159
+ context: TAllContext
160
+ search: TFullSearchSchema
161
+ _strictSearch: TFullSearchSchema
162
+ fetchCount: number
163
+ abortController: AbortController
164
+ cause: 'preload' | 'enter' | 'stay'
165
+ loaderDeps: TLoaderDeps
166
+ preload: boolean
167
+ invalid: boolean
168
+ headers?: Record<string, string>
169
+ globalNotFound?: boolean
170
+ staticData: StaticDataRouteOption
171
+ /** This attribute is not reactive */
172
+ ssr?: SSROption
173
+ _forcePending?: boolean
174
+ _displayPending?: boolean
175
+ }
176
+
177
+ export interface PreValidationErrorHandlingRouteMatch<
178
+ TRouteId,
179
+ TFullPath,
180
+ TAllParams,
181
+ TFullSearchSchema,
182
+ > {
183
+ id: string
184
+ routeId: TRouteId
185
+ fullPath: TFullPath
186
+ index: number
187
+ pathname: string
188
+ search:
189
+ | { status: 'success'; value: TFullSearchSchema }
190
+ | { status: 'error'; error: unknown }
191
+ params:
192
+ | { status: 'success'; value: TAllParams }
193
+ | { status: 'error'; error: unknown }
194
+ staticData: StaticDataRouteOption
195
+ ssr?: boolean | 'data-only'
196
+ }
197
+
198
+ export type MakePreValidationErrorHandlingRouteMatchUnion<
199
+ TRouter extends AnyRouter = RegisteredRouter,
200
+ TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,
201
+ > = TRoute extends any
202
+ ? PreValidationErrorHandlingRouteMatch<
203
+ TRoute['id'],
204
+ TRoute['fullPath'],
205
+ TRoute['types']['allParams'],
206
+ TRoute['types']['fullSearchSchema']
207
+ >
208
+ : never
209
+
210
+ export type MakeRouteMatchFromRoute<TRoute extends AnyRoute> = RouteMatch<
211
+ TRoute['types']['id'],
212
+ TRoute['types']['fullPath'],
213
+ TRoute['types']['allParams'],
214
+ TRoute['types']['fullSearchSchema'],
215
+ TRoute['types']['loaderData'],
216
+ TRoute['types']['allContext'],
217
+ TRoute['types']['loaderDeps']
218
+ >
219
+
220
+ export type MakeRouteMatch<
221
+ TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],
222
+ TRouteId = RouteIds<TRouteTree>,
223
+ TStrict extends boolean = true,
224
+ > = RouteMatch<
225
+ TRouteId,
226
+ RouteById<TRouteTree, TRouteId>['types']['fullPath'],
227
+ TStrict extends false
228
+ ? AllParams<TRouteTree>
229
+ : RouteById<TRouteTree, TRouteId>['types']['allParams'],
230
+ TStrict extends false
231
+ ? FullSearchSchema<TRouteTree>
232
+ : RouteById<TRouteTree, TRouteId>['types']['fullSearchSchema'],
233
+ TStrict extends false
234
+ ? AllLoaderData<TRouteTree>
235
+ : RouteById<TRouteTree, TRouteId>['types']['loaderData'],
236
+ TStrict extends false
237
+ ? AllContext<TRouteTree>
238
+ : RouteById<TRouteTree, TRouteId>['types']['allContext'],
239
+ RouteById<TRouteTree, TRouteId>['types']['loaderDeps']
240
+ >
241
+
242
+ export type AnyRouteMatch = RouteMatch<any, any, any, any, any, any, any>
243
+
244
+ export type MakeRouteMatchUnion<
245
+ TRouter extends AnyRouter = RegisteredRouter,
246
+ TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,
247
+ > = TRoute extends any
248
+ ? RouteMatch<
249
+ TRoute['id'],
250
+ TRoute['fullPath'],
251
+ TRoute['types']['allParams'],
252
+ TRoute['types']['fullSearchSchema'],
253
+ TRoute['types']['loaderData'],
254
+ TRoute['types']['allContext'],
255
+ TRoute['types']['loaderDeps']
256
+ >
257
+ : never
258
+
259
+ /**
260
+ * The `MatchRouteOptions` type is used to describe the options that can be used when matching a route.
261
+ *
262
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/MatchRouteOptionsType#matchrouteoptions-type)
263
+ */
264
+ export interface MatchRouteOptions {
265
+ /**
266
+ * If `true`, will match against pending location instead of the current location.
267
+ *
268
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/MatchRouteOptionsType#pending-property)
269
+ */
270
+ pending?: boolean
271
+ /**
272
+ * If `true`, will match against the current location with case sensitivity.
273
+ *
274
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/MatchRouteOptionsType#casesensitive-property)
275
+ *
276
+ * @deprecated Declare case sensitivity in the route definition instead, or globally for all routes using the `caseSensitive` option on the router.
277
+ */
278
+ caseSensitive?: boolean
279
+ /**
280
+ * If `true`, will match against the current location's search params using a deep inclusive check. e.g. `{ a: 1 }` will match for a current location of `{ a: 1, b: 2 }`.
281
+ *
282
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/MatchRouteOptionsType#includesearch-property)
283
+ */
284
+ includeSearch?: boolean
285
+ /**
286
+ * If `true`, will match against the current location using a fuzzy match. e.g. `/posts` will match for a current location of `/posts/123`.
287
+ *
288
+ * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/MatchRouteOptionsType#fuzzy-property)
289
+ */
290
+ fuzzy?: boolean
291
+ }
@@ -0,0 +1,47 @@
1
+ import type { NavigateOptions, ToOptions } from './link'
2
+ import type { ParsedLocation } from './location'
3
+ import type { RoutePaths } from './routeInfo'
4
+ import type { RegisteredRouter, ViewTransitionOptions } from './router'
5
+
6
+ export interface MatchLocation {
7
+ to?: string | number | null
8
+ fuzzy?: boolean
9
+ caseSensitive?: boolean
10
+ from?: string
11
+ }
12
+
13
+ export interface CommitLocationOptions {
14
+ replace?: boolean
15
+ resetScroll?: boolean
16
+ hashScrollIntoView?: boolean | ScrollIntoViewOptions
17
+ viewTransition?: boolean | ViewTransitionOptions
18
+ /**
19
+ * @deprecated All navigations use transitions under the hood now
20
+ **/
21
+ startTransition?: boolean
22
+ ignoreBlocker?: boolean
23
+ }
24
+
25
+ export type NavigateFn = <
26
+ TRouter extends RegisteredRouter,
27
+ TTo extends string | undefined,
28
+ TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
29
+ TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
30
+ TMaskTo extends string = '',
31
+ >(
32
+ opts: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
33
+ ) => Promise<void>
34
+
35
+ export type BuildLocationFn = <
36
+ TRouter extends RegisteredRouter,
37
+ TTo extends string | undefined,
38
+ TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
39
+ TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
40
+ TMaskTo extends string = '',
41
+ >(
42
+ opts: ToOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
43
+ leaveParams?: boolean
44
+ _includeValidateSearch?: boolean
45
+ _isNavigate?: boolean
46
+ },
47
+ ) => ParsedLocation
package/src/config.ts ADDED
@@ -0,0 +1,42 @@
1
+ import type { SSROption } from './router'
2
+ import type { AnySerializationAdapter } from './ssr/serializer/transformer'
3
+
4
+ export interface RouterConfigOptions<
5
+ in out TSerializationAdapters,
6
+ in out TDefaultSsr,
7
+ > {
8
+ serializationAdapters?: TSerializationAdapters
9
+ defaultSsr?: TDefaultSsr
10
+ }
11
+
12
+ export interface RouterConfig<
13
+ in out TSerializationAdapters,
14
+ in out TDefaultSsr,
15
+ > {
16
+ '~types': RouterConfigTypes<TSerializationAdapters, TDefaultSsr>
17
+ serializationAdapters: TSerializationAdapters
18
+ defaultSsr: TDefaultSsr | undefined
19
+ }
20
+
21
+ export interface RouterConfigTypes<
22
+ in out TSerializationAdapters,
23
+ in out TDefaultSsr,
24
+ > {
25
+ serializationAdapters: TSerializationAdapters
26
+ defaultSsr: TDefaultSsr
27
+ }
28
+
29
+ export const createRouterConfig = <
30
+ const TSerializationAdapters extends ReadonlyArray<AnySerializationAdapter> =
31
+ [],
32
+ TDefaultSsr extends SSROption = SSROption,
33
+ >(
34
+ options: RouterConfigOptions<TSerializationAdapters, TDefaultSsr>,
35
+ ): RouterConfig<TSerializationAdapters, TDefaultSsr> => {
36
+ return {
37
+ serializationAdapters: options.serializationAdapters,
38
+ defaultSsr: options.defaultSsr,
39
+ } as RouterConfig<TSerializationAdapters, TDefaultSsr>
40
+ }
41
+
42
+ export type AnyRouterConfig = RouterConfig<any, any>
package/src/defer.ts ADDED
@@ -0,0 +1,69 @@
1
+ import { defaultSerializeError } from './router'
2
+
3
+ /**
4
+ * Well-known symbol used by {@link defer} to tag a promise with
5
+ * its deferred state. Consumers can read `promise[TSR_DEFERRED_PROMISE]`
6
+ * to access `status`, `data`, or `error`.
7
+ */
8
+ export const TSR_DEFERRED_PROMISE = Symbol.for('TSR_DEFERRED_PROMISE')
9
+
10
+ export type DeferredPromiseState<T> =
11
+ | {
12
+ status: 'pending'
13
+ data?: T
14
+ error?: unknown
15
+ }
16
+ | {
17
+ status: 'success'
18
+ data: T
19
+ }
20
+ | {
21
+ status: 'error'
22
+ data?: T
23
+ error: unknown
24
+ }
25
+
26
+ export type DeferredPromise<T> = Promise<T> & {
27
+ [TSR_DEFERRED_PROMISE]: DeferredPromiseState<T>
28
+ }
29
+
30
+ /**
31
+ * Wrap a promise with a deferred state for use with `<Await>` and `useAwaited`.
32
+ *
33
+ * The returned promise is augmented with internal state (status/data/error)
34
+ * so UI can read progress or suspend until it settles.
35
+ *
36
+ * @param _promise The promise to wrap.
37
+ * @param options Optional config. Provide `serializeError` to customize how
38
+ * errors are serialized for transfer.
39
+ * @returns The same promise with attached deferred metadata.
40
+ * @link https://tanstack.com/router/latest/docs/framework/react/api/router/deferFunction
41
+ */
42
+ export function defer<T>(
43
+ _promise: Promise<T>,
44
+ options?: {
45
+ serializeError?: typeof defaultSerializeError
46
+ },
47
+ ) {
48
+ const promise = _promise as DeferredPromise<T>
49
+ // this is already deferred promise
50
+ if ((promise as any)[TSR_DEFERRED_PROMISE]) {
51
+ return promise
52
+ }
53
+ promise[TSR_DEFERRED_PROMISE] = { status: 'pending' }
54
+
55
+ promise
56
+ .then((data) => {
57
+ promise[TSR_DEFERRED_PROMISE].status = 'success'
58
+ promise[TSR_DEFERRED_PROMISE].data = data
59
+ })
60
+ .catch((error) => {
61
+ promise[TSR_DEFERRED_PROMISE].status = 'error'
62
+ ;(promise[TSR_DEFERRED_PROMISE] as any).error = {
63
+ data: (options?.serializeError ?? defaultSerializeError)(error),
64
+ __isServerError: true,
65
+ }
66
+ })
67
+
68
+ return promise
69
+ }
@@ -0,0 +1,164 @@
1
+ import type { Register } from './router'
2
+ import type {
3
+ AnyContext,
4
+ AnyPathParams,
5
+ AnyRoute,
6
+ FileBaseRouteOptions,
7
+ ResolveParams,
8
+ Route,
9
+ RouteConstraints,
10
+ UpdatableRouteOptions,
11
+ } from './route'
12
+ import type { AnyValidator } from './validators'
13
+
14
+ export interface FileRouteTypes {
15
+ fileRoutesByFullPath: any
16
+ fullPaths: any
17
+ to: any
18
+ fileRoutesByTo: any
19
+ id: any
20
+ fileRoutesById: any
21
+ }
22
+
23
+ export type InferFileRouteTypes<TRouteTree extends AnyRoute> =
24
+ unknown extends TRouteTree['types']['fileRouteTypes']
25
+ ? never
26
+ : TRouteTree['types']['fileRouteTypes'] extends FileRouteTypes
27
+ ? TRouteTree['types']['fileRouteTypes']
28
+ : never
29
+
30
+ export interface FileRoutesByPath {
31
+ // '/': {
32
+ // parentRoute: typeof rootRoute
33
+ // }
34
+ }
35
+
36
+ export interface FileRouteOptions<
37
+ TRegister,
38
+ TFilePath extends string,
39
+ TParentRoute extends AnyRoute,
40
+ TId extends RouteConstraints['TId'],
41
+ TPath extends RouteConstraints['TPath'],
42
+ TFullPath extends RouteConstraints['TFullPath'],
43
+ TSearchValidator = undefined,
44
+ TParams = ResolveParams<TPath>,
45
+ TRouteContextFn = AnyContext,
46
+ TBeforeLoadFn = AnyContext,
47
+ TLoaderDeps extends Record<string, any> = {},
48
+ TLoaderFn = undefined,
49
+ TSSR = unknown,
50
+ TServerMiddlewares = unknown,
51
+ THandlers = undefined,
52
+ >
53
+ extends
54
+ FileBaseRouteOptions<
55
+ TRegister,
56
+ TParentRoute,
57
+ TId,
58
+ TPath,
59
+ TSearchValidator,
60
+ TParams,
61
+ TLoaderDeps,
62
+ TLoaderFn,
63
+ AnyContext,
64
+ TRouteContextFn,
65
+ TBeforeLoadFn,
66
+ AnyContext,
67
+ TSSR,
68
+ TServerMiddlewares,
69
+ THandlers
70
+ >,
71
+ UpdatableRouteOptions<
72
+ TParentRoute,
73
+ TId,
74
+ TFullPath,
75
+ TParams,
76
+ TSearchValidator,
77
+ TLoaderFn,
78
+ TLoaderDeps,
79
+ AnyContext,
80
+ TRouteContextFn,
81
+ TBeforeLoadFn
82
+ > {}
83
+
84
+ export type CreateFileRoute<
85
+ TFilePath extends string,
86
+ TParentRoute extends AnyRoute,
87
+ TId extends RouteConstraints['TId'],
88
+ TPath extends RouteConstraints['TPath'],
89
+ TFullPath extends RouteConstraints['TFullPath'],
90
+ > = <
91
+ TRegister = Register,
92
+ TSearchValidator = undefined,
93
+ TParams = ResolveParams<TPath>,
94
+ TRouteContextFn = AnyContext,
95
+ TBeforeLoadFn = AnyContext,
96
+ TLoaderDeps extends Record<string, any> = {},
97
+ TLoaderFn = undefined,
98
+ TSSR = unknown,
99
+ TServerMiddlewares = unknown,
100
+ THandlers = undefined,
101
+ >(
102
+ options?: FileRouteOptions<
103
+ TRegister,
104
+ TFilePath,
105
+ TParentRoute,
106
+ TId,
107
+ TPath,
108
+ TFullPath,
109
+ TSearchValidator,
110
+ TParams,
111
+ TRouteContextFn,
112
+ TBeforeLoadFn,
113
+ TLoaderDeps,
114
+ TLoaderFn,
115
+ TSSR,
116
+ TServerMiddlewares,
117
+ THandlers
118
+ >,
119
+ ) => Route<
120
+ TRegister,
121
+ TParentRoute,
122
+ TPath,
123
+ TFullPath,
124
+ TFilePath,
125
+ TId,
126
+ TSearchValidator,
127
+ TParams,
128
+ AnyContext,
129
+ TRouteContextFn,
130
+ TBeforeLoadFn,
131
+ TLoaderDeps,
132
+ TLoaderFn,
133
+ unknown,
134
+ unknown,
135
+ TSSR,
136
+ TServerMiddlewares,
137
+ THandlers
138
+ >
139
+
140
+ export type LazyRouteOptions = Pick<
141
+ UpdatableRouteOptions<
142
+ AnyRoute,
143
+ string,
144
+ string,
145
+ AnyPathParams,
146
+ AnyValidator,
147
+ {},
148
+ AnyContext,
149
+ AnyContext,
150
+ AnyContext,
151
+ AnyContext
152
+ >,
153
+ 'component' | 'errorComponent' | 'pendingComponent' | 'notFoundComponent'
154
+ >
155
+
156
+ export interface LazyRoute<in out TRoute extends AnyRoute> {
157
+ options: {
158
+ id: string
159
+ } & LazyRouteOptions
160
+ }
161
+
162
+ export type CreateLazyFileRoute<TRoute extends AnyRoute> = (
163
+ opts: LazyRouteOptions,
164
+ ) => LazyRoute<TRoute>
package/src/global.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { AnyRouter } from './router'
2
+
3
+ declare global {
4
+ interface Window {
5
+ __TSR_ROUTER__?: AnyRouter
6
+ }
7
+ }
8
+
9
+ export {}
@@ -0,0 +1,21 @@
1
+ import type { AnyRouter } from './router'
2
+
3
+ /**
4
+ * @private
5
+ * Handles hash-based scrolling after navigation completes.
6
+ * To be used in framework-specific <Transitioner> components during the onResolved event.
7
+ */
8
+ export function handleHashScroll(router: AnyRouter) {
9
+ if (typeof document !== 'undefined' && (document as any).querySelector) {
10
+ const location = router.stores.location.state
11
+ const hashScrollIntoViewOptions =
12
+ location.state.__hashScrollIntoViewOptions ?? true
13
+
14
+ if (hashScrollIntoViewOptions && location.hash !== '') {
15
+ const el = document.getElementById(location.hash)
16
+ if (el) {
17
+ el.scrollIntoView(hashScrollIntoViewOptions)
18
+ }
19
+ }
20
+ }
21
+ }
package/src/history.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { HistoryLocation } from '@benjavicente/history'
2
+
3
+ declare module '@benjavicente/history' {
4
+ interface HistoryState {
5
+ __tempLocation?: HistoryLocation
6
+ __tempKey?: string
7
+ __hashScrollIntoViewOptions?: boolean | ScrollIntoViewOptions
8
+ }
9
+ }